買って良かったもの2020

STEADY

item.rakuten.co.jp

  • MADUREZが販売しているフィットネスバイク
  • 新型コロナウイルスのせいで外出すらままならない状況になり、自宅でも運動できるようにということで購入

AirPods Pro

hchuno.hatenablog.com

  • 購入に至った経緯は以下
    • 前から少し興味があった
    • 政府による特別定額給付金10万円をGetできた
  • ワイヤレスなので動き回っても平気なのが快適
  • ノイズキャンセリングも結構強力
  • マイクも内蔵されているので、オンラインでの面接で役に立った
  • 気付かないうちにバッテリー切れになっていたりするので、そこが難点…

チョコレート効果カカオ72%大袋×12

  • チョコレート効果」自体は前から知っていて買ったこともあったが、安価で大量に購入できるのでチョコレート切れのタイミングで試してみた
  • やはり個包装はありがたい

FFX

  • たまたま値下げ手していたSwitch版を購入
  • 当初はティーダの喋り方が気に入らなかったものの、ストーリーが面白くて気にならなくなっていった
  • FFシリーズの中で一番マトモなシナリオだと思う
  • FFX-2は少しやってみたけどミニゲームをやらざるを得ない状況が辛くて断念…

ヒートテック毛布

  • ユニクロオンラインで購入
  • 去年は品切れで買えなかったので、ずっと目をつけていた
  • 想像以上に暖かくて、就寝時のエアコンが不要になった

マクドナルド@出前館

  • 自宅が配達対象地域になったことを知って試してみたのがキッカケ
  • 店で食べるより割高だし冬場は商品が冷えてしまいがちではあるが、比較的スグに届けてもらえるので重宝している

みかん

item.rakuten.co.jp

  • 久しぶりに食べたいなと思ったので箱買い
  • ついリピートしてしまった

iCloudの50GBストレージプラン

  • サブスクリプション系サービスについては良い印象を持っていなかったが、以下の理由から契約開始
    • iPhone11Proが会社から貸与されバックアップの量が増えた
    • iPhone11Proの恩恵に比べたら安いもんだと思えた

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)

【IntelliJ IDEA】ハマりポイント

コンパイルエラーが発生する件

RunやDebugを実行した際に、

object ○○ is not a member of package com
cannot resolve symbol △△

といったコンパイルエラーが発生して色々試したが、以下の方法で解決できた。

  1. JDKの再インストール
    • プロジェクトの都合でJDK8を使っていたのだが、これを再インストール
  2. プロジェクトルートにある「.idea」ディレクトリを削除し、IntelliJ IDEAでプロジェクトを再インポート

DynamoDBにアクセスして書き込み等を行う

Perlからアクセスするのは面倒この上ない Perl5系でDynamoDBを良い感じに扱えるツールが無かったので、低レベルAPIを使ったアクセスを行った。

Perl

必要なもの

コード

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」で以下のような設定をしていた。
f:id:hchuno:20200721161937j:plain
ところが以下のような状況になったので、マクロを活用することにした。

  1. 意図しないコードフォーマットが行われる(for文の中のコメント行のインデントが消える等)
  2. 色々オプションを付けるのが面倒なので「-pbp(=--perl-best-practices)」のみにしてみたところ、無反応になった
    • ローカルの「.perltidyrc」と喧嘩してる説
  3. コードフォーマットショートカット(command + option + l)を使うと以下の設定のPerlTidyが走った

f:id:hchuno:20200721162200j:plain

設定方法

  1. メニューバーの「Edit」→「Macros」→「Start Macro Recording」
  2. 上記のコードフォーマットショートカットを実行
  3. マクロの名前を入力するダイアログが表示されるので適当なものを入力
  4. 「Preference」→「KeyMap」で、上で入力したMacrosを選択し、右クリックして「Add Keyboard Shortcut」を選択
  5. 表示されたダイアログの「First Stroke」で「command + s」を実行すると、赤色の警告文字が表示されるが無視してOKボタンを押す
  6. 警告ダイアログが表示されるが無視して「Remove」ボタンを押す
  7. 以下のように設定される

f:id:hchuno:20200721162333j:plain
f:id:hchuno:20200721162419j:plain

サーバの日付を変更する

任意の日時に変更する

$ 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

タイムゾーンを変更する

前提

  • CentOSのバージョンは6.10
$ cat /etc/redhat-release
CentOS release 6.10 (Final)

作業内容

なる早で変更

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
2020619日 金曜日 11:43:46 JST