買って良かったもの2020
AirPods Pro
- 購入に至った経緯は以下
- 前から少し興味があった
- 政府による特別定額給付金10万円をGetできた
- ワイヤレスなので動き回っても平気なのが快適
- ノイズキャンセリングも結構強力
- マイクも内蔵されているので、オンラインでの面接で役に立った
- 気付かないうちにバッテリー切れになっていたりするので、そこが難点…
jEnvでJavaの複数バージョンを管理する
環境設定
- config.fishに以下を追加
set -x PATH $HOME/.jenv/bin:$PATH eval (jenv init - | source)
- 設定を反映
$ source ~/.config/fish/config.fish
管理方法
- (主にScalaでしか使わないが)Java1.8を追加
$ jenv add (/usr/libexec/java_home -v 1.8) openjdk64-1.8.0.275 added 1.8.0.275 added 1.8 added
- 追加されたバージョンを表示(選択されているものにアスタリスクが付いている)
$ jenv versions * system (set by /Users/hchuno/.jenv/version) 1.8 1.8.0.275 openjdk64-1.8.0.275
- 特定のディレクトリ以下のみ変更(ココではJava1.8に変更)する方法
$ jenv local 1.8 $ jenv versions system * 1.8 (set by /Users/hchuno/dir//.java-version) 1.8.0.275 openjdk64-1.8.0.275 $ java -version openjdk version "1.8.0_275" OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_275-b01) OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.275-b01, mixed mode)
- 全体を変えたい時(ココではデフォルトのJava11に変える)
$ jenv global system $ jenv versions * system (set by /Users/hchuno/.jenv/version) 1.8 1.8.0.275 openjdk64-1.8.0.275 $ java -version openjdk version "11.0.9" 2020-10-20 OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9+11) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9+11, mixed mode)
DynamoDBにアクセスして書き込み等を行う
Perlからアクセスするのは面倒この上ない Perl5系でDynamoDBを良い感じに扱えるツールが無かったので、低レベルAPIを使ったアクセスを行った。
AWSのドキュメント
エンドポイント
Perl
必要なもの
- DynamoDBのIAM情報(アクセスキー、シークレットキー)
- Net::Amazon::Signature::V4 - Implements the Amazon Web Services signature version 4, AWS4-HMAC-SHA256 - metacpan.org
コード
use Net::Amazon::Signature::V4; use HTTP::Request; use Furl; my $access_key = 'hogehoge'; my $secret_key = 'gehogeho'; my $signature = Net::Amazon::Signature::V4->new( $access_key, $secret_key, 'ap-northeast-1', 'dynamodb' ); my $furl = Furl->new( timeout => 2 ); my $uri = 'https://dynamodb.ap-northeast-1.amazonaws.com/'; my $request = HTTP::Request->new( 'POST', $uri ); $request->header( 'X-Amz-Target' => 'DynamoDB_20120810.PutItem' ); $request->header( 'Content-Type' => 'application/x-amz-json-1.0' ); my $content_string = <<'EOS'; { "TableName": "hchuno_table", "Item": { "id": {"N":"1"}, "hchuno_ids" : { "L":[ {"N":"1"}, {"N":"2"}, {"N":"3"} ] } } } EOS $request->content($content_string); my $signed_request = $signature->sign($request); my $response = $furl->request($signed_request);
↑最後の$responseをダンプすると、処理が成功した時に
'message' => 'OK',
という文字列が入っている。
【IntelliJ IDEA】ファイル保存時にPerlTidyが走るようにする
前提
当初はIntelliJのプラグイン「File Watchers」で以下のような設定をしていた。
ところが以下のような状況になったので、マクロを活用することにした。
- 意図しないコードフォーマットが行われる(for文の中のコメント行のインデントが消える等)
- 色々オプションを付けるのが面倒なので「-pbp(=--perl-best-practices)」のみにしてみたところ、無反応になった
- ローカルの「.perltidyrc」と喧嘩してる説
- コードフォーマットショートカット(command + option + l)を使うと以下の設定のPerlTidyが走った
設定方法
- メニューバーの「Edit」→「Macros」→「Start Macro Recording」
- 上記のコードフォーマットショートカットを実行
- マクロの名前を入力するダイアログが表示されるので適当なものを入力
- 「Preference」→「KeyMap」で、上で入力したMacrosを選択し、右クリックして「Add Keyboard Shortcut」を選択
- 表示されたダイアログの「First Stroke」で「command + s」を実行すると、赤色の警告文字が表示されるが無視してOKボタンを押す
- 警告ダイアログが表示されるが無視して「Remove」ボタンを押す
- 以下のように設定される
サーバの日付を変更する
任意の日時に変更する
$ sudo su - # date -s "06/26 21:52 2020" Fri Jun 26 21:52:00 JST 2020
時刻合わせをする(元の日時に戻す)
# ntpdate ntp.nict.jp -bash: ntpdate: command not found ← ntpdateが使えなかった… # hwclock --hctosys # date Sat Jun 20 14:15:20 JST 2020
タイムゾーンを変更する
作業内容
なる早で変更
rootに変身 $ sudo su - 現在のタイムゾーンを確認 # date Fri Jun 19 02:39:43 UTC 2020 現在の設定をバックアップ # cp /etc/localtime /etc/localtime.org タイムゾーンファイルを変更する(実行後に即タイムゾーンが変わる) # ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
reboot等しても設定が残るようにしておく
現在の設定をバックアップ # cp /etc/sysconfig/clock /etc/sysconfig/clock.org ファイルを編集 # vi /etc/sysconfig/clock ZONE="Asia/Tokyo" UTC=false 再起動する # reboot 確認 $ strings /etc/localtime TZif2 TZif2 JST-9 $ date 2020年 6月 19日 金曜日 11:43:46 JST