ArchlinuxでWindowsで作成したZIPを文字化けなく開く方法
linuxとの日々だったり : unzip -O CP932 *
ArchlinuxというかLinuxでWindowsで圧縮されたzipファイルをunzipで展開すると容赦なくファイル名が文字化けする。 これに対応するには上記のサイトに記載されている通り、文字コードを指定して開けるようにパッチがあたった状態のunzipが必要になる。
AURにパッケージ名unzip-iconvでパッチがあたった状態のunzipがある。 2018/11/23現在ではyaourtは非推奨なので、yayを使用したインストールを行う。
yay -S unzip-iconv
インストール後、unzip -O CP932 test.zipで文字化けなく展開可能になる。 なお、複数のzipファイルを一気に展開するのは以下のコマンド。 unzip -O CP932 '*.zip'
NEW HORIZON
ようやくブログを更新する気力と時間が取れたので新しく学ぼうと思ったことについて書いてみます。
ブログには全く書いていなかった気がするのですが、7月から転職活動をはじめ9月になんとか今の会社に拾ってもらい、現在は忙しい毎日を過ごしています。 転職活動中に流石に勉強しないとマズいよなという気待ちでReactを学ぼうと考えた訳ですが、ドキュメントや記事の読み込み部分で英語がボトルネックとなりなかなか学習が進まない現実がありました。
そんなわけで英語を再学習する必要性をヒシヒシと感じながら今の会社に入社しましたが、入社後に海外出身の社員との会話や海外への研修などがあり、これは真面目に英語を学ばなければならないと考えました。 早速何冊か英語の書籍をポチり自分のスキルレベルを見つめ直すと、これあかんやつや…という事がわかり、中学英語の学習から(要はアルファベットから)学びなおすことにしました。
決意したは良いのですが、正直に英語を1から学ぶに当たってどんな教材を使って勉強をすれば良いのか分からなかった為、英語学習のガイドブックをまず購入しました。
それがこれ。
英語上達完全マップ―初級からTOEIC900点レベルまでの効果的勉強法
- 作者: 森沢洋介
- 出版社/メーカー: ベレ出版
- 発売日: 2005/10/01
- メディア: 単行本
- 購入: 56人 クリック: 1,306回
- この商品を含むブログ (114件) を見る
この本には、英語の学習方法だけでなくオススメ教材が書いてあり、1からの学習には中学の教科書が良いとのことなので、記事タイトルのNEW HORIZON(東京書籍)を教材屋で買うに至りました。
数ある教科書の中でNEW HORIZONをなぜ買ったのか?という点についてはエレン・ベーカー先生が可愛かったからです。
さて、NEW HORIZONの感想ですが、内容としてはそれぞれの章ごとに短いドラマ仕立てのストーリーが展開する構造になっており、簡単かつ実践的な英語でキャラクター同士が会話をするという点が強みかなと思いました。 例えばNEW HORIZON 1のユニット3パート2では転校生のディーパ・ミトラちゃんとサキちゃんがDo you...を使って相手の趣味や普段やっていることを尋ねるという構成なのですが、話の構成次第でDo youだけでここまで会話が出来るのか!と目からウロコが落ちました。
私の勉強の仕方としては教科書ガイドのリスニングCDを聴きながら本書を読み、単語や言い回しをノートと単語帳に書き込みながら何回も声に出す、といった中学生と同じ勉強方法になりますが、中学時代と異なるのは質問が出来る先生がいないという事だけかもしれません。
初歩の初歩から英語を学び、結果的にいつまでにどこまでのレベルに達するかなどの展望は全く見えていませんが、次のプログのネタにする際にはもう少し詳しく語れるものを得ていたいと思います。
ReactとSpring Bootのプロジェクトを作成した
目的
ReactとSpring Bootのプロジェクトを作成しました。
かなり荒い構成と思いますが、取り急ぎGitHubにて公開します。
github.com
説明
参考にした記事
本プロジェクトのソースは下記の記事を参考に作成しました。
React部分
Tutorial: Django REST with React (Django 2.0 and a sprinkle of testing)Spring Boot部分
Spring Bootでデータベースに接続 | Developers.IO
アプリケーションの動作内容
ReactからRestにてSpring BootにアクセスしJsonを取得してブラウザに表示します。
Spring BootではPostgreSQLにアクセスしテーブル内のデータを取得しています。
動作環境
Amazon Linux AMI release 2018.03
JDK 10
Node v10.6.0
PostgreSQL 9.6
Spring Boot 2.0.4.RELEASE
React 16.4.1
Gradle 4.9 & Gradle Wrapper
プロジェクトの構成
プロジェクトの各フォルダの役割は下記です。
- GitHubにコミットしてあるもの
spring-react-sample/frontend/src/ Reactのソースを格納
spring-react-sample/src/main/resources/public/ Javaのソースを格納
spring-react-sample/src/main/resources/public/ 静的ファイル(index.html)を格納。Spring Boot組み込みTomcatはこのフォルダを読み込んで静的ファイルを表示します。
- GitHubにコミットしていないもの
spring-react-sample/build "./gradlew build"でビルドされたjarファイルが格納されています
application.yml
下記のファイルはセキュリティの都合push指定いません。
実際に動作させる場合は下記内容のファイルが必要になります。
spring-react-sample/src/main/resources/config/application.yml
spring: datasource: url: jdbc:postgresql://localhost/データベース名 username: ユーザー password: パスワード driverClassName: org.postgresql.Driver server: port: 8080
Amazon LinuxにインストールしたPostgreSQLを使えるようにする
参考
記事の作成にあたって以下の記事を参考にさせていただきました。
http://jason4zhu.blogspot.com/2017/10/airflow-notes-from-0-to-1.html
https://dev.classmethod.jp/cloud/aws/install-postgresql-on-aws-ec2/
http://www.utsushiiro.jp/blog/archives/327
目的
インストールが完了したPostgreSQLを使用できるようにしていく。
なお、学習環境なのであまりセキュリティに関しては考えないでおく。
手順
いろいろと弄っていたので手順が正確ではないかもしれないが、下記でテーブルの作成が行える状態まで設定を行うことが出来た(と思う)。
最初に、PostgreSQLをインストール後デフォルトで作成されているpostgresユーザのパスワードを変更する。
合わせて、実際に使用するpostgresuserを作成した。
sudo passwd postgres sudo adduser postgresuser sudo passwd postgresuser
次に下記コマンドでPostgreSQL内にpostgresuserユーザを作成した。
この際に、実際に使用するmydbデータベースの作成時にpostgreuserというデータベースも作成した。
postgreuserデータベースがないと何かでエラーが出た気がするけども正直よくわからない 。
createuser -AdPE postgresuser createdb -E UTF8 -U postgresuser -W mydb createdb -E UTF8 -U postgresuser -W postgreuser
PostgreSQLにpostgresユーザで接続し、postgresユーザのパスワード変更と、postgresuser ロールの作成(名前が紛らわしい)、postgresuserロールへのall権限の追加を行った。
sudo -u postgres psql postgres
下記操作はpsql内で実行。
ALTER USER postgres WITH ENCRYPTED PASSWORD 'some password'; CREATE ROLE postgresuser WITH LOGIN ENCRYPTED PASSWORD 'some password'; GRANT all ON DATABASE mydb TO postgresuser;
psqlから抜ける。
Ctrl + D
peer認証という認証方式が新規に作成したユーザでのログインを阻んでくるので、パスワード認証に変更する。
(このへんはちょっと知識が足りません…)
vimでpg_hba.confを修正する。
sudo vim /var/lib/pgsql96/data/pg_hba.conf
pg_hba.confを下記のようにpeerとidentの部分をmd5に変更した。
# "local" is for Unix domain socket connections only #local all all peer local all all md5 # IPv4 local connections: #host all all 127.0.0.1/32 ident host all all 127.0.0.1/32 md5 # IPv6 local connections: #host all all ::1/128 ident host all all ::1/128 md5
PostgreSQLサービスのリスタート
sudo service postgresql96 restart
あとは、postgresuserユーザでpsqlに接続してテーブルを作成したりして確認する。
sudo -u postgresuser psql mydb create tableなど…
Amazon Linux AMI release 2018.03にPostgreSQL9.6をインストールする
参考(8/4追加しました)
記事の作成にあたって以下の記事を参考にさせていただきました。
http://jason4zhu.blogspot.com/2017/10/airflow-notes-from-0-to-1.html
https://dev.classmethod.jp/cloud/aws/install-postgresql-on-aws-ec2/
http://www.utsushiiro.jp/blog/archives/327
目的
HerokuなどでPostgreSQLを使いそうなので学習環境のAmazon Linuxにインストールを行った。
本当は10を使用したかったが、リポジトリにデフォルトで登録されておらずめんどくさそうだったのでやめた。
Amazon Linuxのバージョン確認
下記コマンドを発行
cat /etc/system-release
Yumを使用してインストール
下記コマンドでPostgreSQLに関するパッケージの一覧が取得できる模様。
yum list postgresql*
インストールを行うパッケージは下記の2つで良い模様。
sudo yum install postgresql96-server.x86_64 sudo yum install postgresql96.x86_64
初期化とサービスの自動起動設定を行う。
なお、サービス名は「postgresql96」として登録されている。
sudo service postgresql96 initdb sudo chkconfig postgresql96 on
サービスを起動してエラーにならなければインストールは完了。
sudo service postgresql96 start
※使用して不足があれば追記します。
Spring Bootのチュートリアルをやる
長年Javaのプロジェクトに関わりながらSpringを使った経験が無かったため求職期間中にSpring Bootを触ってみることにした。
今回試すチュートリアル
動作確認を行った環境
Amazon Linuxで動作確認を行った(Cloud9環境で開発しているため)
チュートリアルを試す上で行ったこと
Open JDK10のインストール
当初Open JDK9で試したもののSSL証明書が古い?バグがあるらしく、gradle buildで Mavenリポジトリにアクセスすると下記の接続エラーが発生した。
java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
面倒なので、最新の安定版のOpen JDK10をインストールすることにした。
Amazon LinuxへのJDKのインストールはカンタンで、Open JDKのサイトからLinux用バイナリを取得して展開する。
その後、環境変数のPATHとJAVA_HOMEを設定して終わり。
(お勉強環境なのでホームディレクトリにそのまま配置しました)
bashで実行
wget https://download.java.net/java/GA/jdk10/10.0.2/19aef61b38124481863b1413dce1855f/13/openjdk-10.0.2_linux-x64_bin.tar.gz tar -zxvf openjdk-10.0.2_linux-x64_bin.tar.gz
.bash_profileに下記を追加
export JAVA_HOME="$HOME/jdk-10.0.2/" export PATH="$HOME/jdk-10.0.2/bin:$PATH"
Gradleのインストール
今回はビルドツールにGradleを利用することにした。
最新版のGradle4.9をインストールする手順はJDKの手順とほぼ同じ。
bashで実行
wget https://services.gradle.org/distributions/gradle-4.9-all.zip unzip gradle-4.9-all.zip
.bash_profileに下記を追加
export PATH="$HOME/gradle-4.9/bin:$PATH"
build.gradleの変更
チュートリアルのbuild.gradleは若干古い&今回インストールを行ったJavaバージョンの関係でbuild.gradleの一部を修正。
なお、SpringはJava10に正式に対応している模様。
build.gradle(一部)
buildscript { repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.4.RELEASE") } } sourceCompatibility = 10 targetCompatibility = 10
gradle build
あとは、チュートリアル通りにプロジェクトを作成してgradle build && java -jar build/libs/gs-spring-boot-0.1.0.jarするだけでテストサーバが立ち上がるのでlocalhost:8080にアクセスをして動作確認をするだけ。かんたんですね!
所感
実際にチュートリアルを試してみて思っていた以上にカンタンで驚きました。
Spring Bootのサイトを見るとガイドも豊富そうなのでじっくり読んでみたいと思います。
https://spring.io/guides