いつもどこに何があるか迷うので備忘録
リソース
オンラインセミナー
- AWS オンラインセミナースケジュール
-
- 各種オンライントレーニング動画
直近のイベント
- AWS INNOVATE
- 2019年4月8日(月)〜5月7日 (火)
- オンラインカンファレンス
- AWS Summit Tokyo
- 2019年6月12(水)〜14(金)
- 幕張メッセ
いつもどこに何があるか迷うので備忘録
Google Domainsでmasasuzu.dev
を取得した。まだ何もない。何も設定してない。
もともと持ってたのがmasasuzu.net
。どう使い分けていくかな。
インフラって言葉はもの
自体をを指してる。でも、日々業務に追われる我々はもの
そのものの仕組みよりそれをどう扱うかの運用
の方に興味を持ってかれている。
それ自体は優先度という観点では正しい。いくらインフラそのものを知っていてもどういうときにどうすれば良いのか分からなかったらお仕事にならない。
インフラは基礎
そのもので運用はいわば応用
と考えることができる。最低限の基礎とその応用だけでお仕事はなんとかこなせるだろう。だが、高いレベルの仕事をするには、深い基礎への理解が必要ではないかなと。
運用に行き詰まったとき立ち返る基礎がインフラなのかな。
って、なんとなく頭の中に浮かんだことを書き連ねた。
何も推敲してないし、なんもオチはない。下手すると何の意味もない。
何気なくつぶやいたらgfxさんに教えてもらったのでメモを残しておく。
もともとLog::Minimalのコードを見てたときにタブやLF、CRをエスケープシークエンス使わずに16進コード使ってるんだろうってふと疑問に思ったのが始まりでした。 lib/Log/Minimal.pm - metacpan.org
昔にどっか聞いて忘れてしまっただけかもですが、
— masasuzu 🍶🐫 (@masasuz) February 1, 2019
perlで改行をエスケープするときに下記みたいに¥n¥r使わずに16進文字コード使う理由ってなんでしたっけ。
s/¥x0a/¥¥n/g
s/¥x0d/¥¥r/g
\r\n はプラットフォーム依存の値なので、ポータブルにするには16進数じゃないといけないんです。実際には \n != \x0a なプラットフォームはmac OS 9.x とかしかないので、「仕様に忠実なコードを書くか、現実に動けば問題ないか」というポリシーの違いですかね。
— FUJI Goro (@__gfx__) February 1, 2019
ドキュメント的にはこのあたりです。 https://t.co/nxsrG0FOJX
— FUJI Goro (@__gfx__) February 1, 2019
> Perl uses \n to represent the "logical" newline, where what is logical may depend on the platform in use.
なるほど。perlで¥nがいわゆるLFだけ表現するとは限らないと。
— masasuzu 🍶🐫 (@masasuz) February 1, 2019
16進数使うのが良さそうですね。
ありがとうございます。
ということで、これからは16進コード使うようにする。
これ買った。
2,3日使った感じすごい使いやすい。コンパクトだし、カード類もわりかし多めに入るのでよほどポイントカード類を大量に持ってない限りは十分だと思う。
だいぶ満足度の高いお買い物をした。
先日、元同僚と資産運用報告会という謎の飲み会をしてた。
お金の話ってなかなかできる機会少ないので良い会であった。
自分の資産運用は基本的には毎月の積み立てでやってく感じで個別株は手を出してない。 内訳はこんな感じ
月5万円の積み立てで現金預金がないのでちょっとリスキーではあることは認識してる。 まあでも、1週間以内には出金できるし特に問題ないとは思ってる。
ここで面白いのはTHEOで、AIというかロボアドバイザーの力を試してみたくなったところある。半分遊びだけど、今のところまあまあの運用成績。
もう少し余裕が出てきたら他のロボアドバイザーも試したいし、個別銘柄株も手を出してみたいところ。
そんな感じ。
半年後また資産運用報告会したいね。
知ってる人には当たり前だとは思うんですが、AWS サービス活用資料集に各種プレゼン資料があって、だいぶ便利。 各サービスの概要を知るにはかなり良いと思いまする。
今まで、調べ物するときに各サービスのドキュメントをいきなり見て、イマイチ全体像が分からないなって思うことが多かったので、 これからはまずこっちを見るようにしようかな。
例えば、以下のコード、直感的には$hoge
が真なら$hoge
が返り、偽の場合は$fuga
が返ると思いますよね?
return $hoge or $fuga;
実際には以下のように解釈され、常に$hoge
が返ることとなります。
(return $hoge) or $fuga;
この問題5.20から警告が出るようになったので、気づけるのですが、それ以前だと見逃してる可能性があります。 まあ実際5.20使ってみてから問題があるコードを見つけたのですが。
perl5200delta - perl v5.20.0 での変更点 - perldoc.jp
で、これを実際にDeparseしてみるとこんな感じですね。
% perl -MO=Deparse,-print -e 'return $hoge or $fuga' $fuga unless return $hoge;
解決方法としては、括弧使うか、||
を使ってください。
return ($hoge or $fuga); # or return $hoge || $fuga;
% perl -MO=Deparse,-print -e 'return $hoge || $fuga' return $hoge || $fuga; % perl -MO=Deparse,-print -e 'return ($hoge or $fuga)' return $hoge || $fuga;
そんな感じ。 演算子の優先度はちゃんと意識しないとね。
演算子の優先順位 むつかしい
— masasuzu 🍶🐫 (@masasuz) 2018年7月27日
return $aaa or $bbb; って$aaaが偽なら$bbbが返ってくると思うじゃないですか。
— masasuzu 🍶🐫 (@masasuz) 2018年7月27日
ところが常に$aaaが返ってくるんですよ。5.20まで警告が出ないから気がつかなかったという話。(社内モジュールでそういうのがあった)
優先度の問題ですね。
`Possible precedence issue with control flow operator`https://t.co/NcAy0oHVZC
— masasuzu 🍶🐫 (@masasuz) July 27, 2018
なので、
— masasuzu 🍶🐫 (@masasuz) 2018年7月27日
`return $aaa || $bbb`
とするか、
`return ($aaa or $bbb)`
とするのが正しい。らしい。
へー。またperlに詳しくなってしまった。
— masasuzu 🍶🐫 (@masasuz) July 27, 2018
apt-get installってローカルにあるdebパッケージもインストールできたんだ。初めて知った。依存も入れてくれるからこっちの方が良いな。
— masasuzu 🍶🐫 (@masasuz) 2018年8月9日
dpkg -iをいつもしてた。
このページの下記の記述を見て、apt-get install
ってローカルなdebもインストールできることを初めて知りました。
dpkg -i
と違って、apt-get install
なら依存パッケージもインストールしてくれるので、より適切かと思います。
ちなみにaptitude install
だとだめっぽい。
% sudo aptitude install ./build/amazon-efs-utils*deb Couldn't find any package whose name or description matched "./build" Couldn't find any package whose name or description matched "./build" No packages will be installed, upgraded, or removed. 0 packages upgraded, 0 newly installed, 0 to remove and 88 not upgraded. Need to get 0 B of archives. After unpacking 0 B will be used. sudo aptitude install ./build/amazon-efs-utils*deb 4.08s user 1.69s system 96% cpu 5.997 total
ちなみにバージョン情報はこんな感じ。
% aptitude --version aptitude 0.7.4 compiled at Dec 9 2015 19:30:45 % apt-get --version apt 1.2.26 (amd64)