2017年6月20日

HTTPS の時代なので、itkq.jpHTTPS にした。 AWS で全部やった。

  • AWS Certificate Manager で証明書発行
    • メールを受け取る必要があったので SES でドメイン登録と S3 へ転送のルール作成
  • CloudFront で新規 Distribution 作成
    • origin: “itkq.github.io”
    • path: “/itkq.jp”
    • policy: Redirect HTTP to HTTPS
    • 発行した証明書をセット
  • Route 53 で A (ALIAS) レコードを追加して CloudFront に向ける

Route 53 の設定でリソースレコードとかがよく分かっていないことが分かったので DNS & BIND を図書館で借りて読んでいる。 逆引きの仕組み知らなくて、改めて知ってこんな感じだったのか、という気持ち。

2017年6月

下記エントリで書いたように、最近は Linux やネットワークについて学んでいる。

itkq.hatenablog.com

具体的には、まず Unix の歴史や位置づけについてまとめた (Unix の歴史と思想, Unix 以外のオペレーティングシステム)。 その後 Linuxシステムプログラミング を読んだ。プロセスやメモリ関連の基本は理解していたつもりだったが、 システムプログラミング上で必要だが知らなかったこと (fork() するとファイルディスクリプタは引き継がれる、とか) を知った。 まとめとして、ファイル I/O について書いた (Linux におけるファイル I/O の基礎)。

これまでに得た知識を基に、実践的なネットワーク内容として、HTTP/1.0 サーバを C で書いてみることにした。 RFC1945 をまず読んでから、Macbook に入れた Ubuntu でおよそ5年ぶりぐらいに C を書いた。 可能な限り man を読んだ。man 7 はかなり役に立つことを知った。 前に読んだ Working with TCP Sockets1 を参考にして prefork を実装した。 しかし文字列操作などで消耗して、学びたかった本質ではなくなっているように感じたため、HTTP/0.9 ぐらいの実装で一旦終わりにした。

github.com

今後は HTTP/0.9 から HTTP/2 まで、どのように変遷してきたかを、RFC を読みながらまとめる予定だったが、 いいタイミングで Real World HTTP が出たので、購入して読んでいる。 まさに学びたかった内容が体系的に整理されており、参考になる部分が多い。

ところで、最近は Go 言語に興味がある。 正確には Go 1.6 ぐらいから興味はあって、Go で Web アプリケーションを書いたこともあったのだが、今回はシステムプログラミングという文脈である。 Go はその特徴から、現代でシステムプログラミングを学ぶいい教材と言われている[要出典]。 色々良し悪しはあると思うが、インフラレイヤーにおける Go 製のアプリケーションが増えていることから、今後まともに読み書きできるようになっておいて損はないと思うし、 Rust はまず学習が大変だと思った。

今は下記の特集を読んでいる。素直に面白い。 ascii.jp

今度は Go でなんか書くか読むかしようと思う。


  1. この本は英語で書かれており、Ruby を使って TCP ソケットを学ぶという内容だが、取っ掛かりとしてはわかりやすく、興味を持てるのでいい本だと思う。

Arch Linux を捨てて Ubuntu を入れた

数日前に Arch Linux を捨てて Ubuntu 16.04 LTS を入れた。

元々 Linux を Macbookpro に入れたかったのは、Linux プログラミングをちょっとやりたかったのと、 別にもう macOS じゃなくてもいいかなという気持ちがあったからである。 Arch Linux にしたのは、やっぱり余計なものが入ってないからいいのと なんとなくカッコイイのが良かった。Wiki は情報豊富だし、Macbook に Arch Linux を入れてる記事も 多くて助かった。しかし、自分でなかなか解決できない問題もあった。具体的には、全体的な発熱と サスペンド(ハイバネート)しない問題である。

前者については、起動直後は CPU が 50~60度で、 i3wm を起動してブラウザを開くと 70度ぐらいになっていた。CPUスケーリングやファン制御デーモン、 省電力設定を色々やったけどあまり改善しなかった。無理やりファン回転数を上げれば温度は下がったけど 騒音と電力的に良くなかった。

後者は、具体的には数秒 CPU がストップした後数秒ですぐに復帰してしまう問題だった。 /proc/acpi/wakeup で余計な復帰要因を消したけどダメで、dmesg をみてもよくわからん状態だった。 Arch Linux に詳しい後輩によるとたぶんスワップの設定がおかしかったらしい。

こんな感じで、元々の目的を忘れて環境構築にふけっていたわけだけど、色々やっていたらある日 OS が起動 しなくなってしまった。EFI Bootable USB で chroot すれば復旧はできたかもしれないけど、面倒になって 勢いで Ubuntu をバーンとやったというのが経緯である。Arch Linux が上級者向けというのがよくわかった。

Ubuntu にした理由は、まず標準のおもてなしがあって楽なところと、 Web サービスの本番環境にも使われるメジャーな OS なので、詳しくなっておいても損はないと思ったところが ある。下記事を参考にしながら、k0kubun/dotfiles をクローンしてドーンとやったらターミナル周辺がいい感じになったので 助かった。

k0kubun.hatenablog.com

今のところ大きな問題は発生していない。しかし、外部ディスプレイの扱いが面倒なのと 外部キーボードを付けたときのリマップがうまくいっていないので早急になんとかしたい。

パリに行った

昨年10月頃に出した原稿が今年1月頃にアクセプトされて、5月に開催された学会に行ってきた。 場所はパリ。

パリへ行く

そもそも海外に行ったことが無かったので結構心配だった。 一方で大して調べずに空港へ行ったら、トラベレックスで両替できるのが JCB のカードだけで、JCB のカードを家に忘れたので有り金をすべて両替する羽目になった。

機内では、開幕よっしゃいくぞと思って白ワインを頼んだら結構派手目に服にこぼされてしまい、服を着替えさせられるという事件があった。出鼻をくじかれてしまい、以降行きの機内では酒を飲まなかった。

入国審査は余裕だった。 部屋の写真は撮り忘れたけど結構いい感じの部屋だった。

パリ

シャルル・ド・ゴール空港はなんか異様だった。f:id:itkq:20170520003447j:plain

街並みはヨーロッパと言う感じで綺麗だったが道とかは汚く、はっきりいって臭いがひどかった。特に地下鉄構内。 駅はかっこいい。f:id:itkq:20170520173629j:plain 夜は時計が光ってた。f:id:itkq:20170525230300j:plain

これは夜の8時の写真だけど、このくらい明るい。f:id:itkq:20170523194251j:plain

学会

これが学会の様子です。f:id:itkq:20170522105800j:plain これはレセプションの様子です。f:id:itkq:20170521182446j:plain

美術館

ルーブル美術館オルセー美術館、近代美術館の3大美術館に行った。 ルーブル美術館は異常に広かったけど、建物自体の雰囲気とか装飾の迫力が凄くて一番印象に残っている。 f:id:itkq:20170525165502j:plainf:id:itkq:20170524152626j:plainf:id:itkq:20170520153241j:plain

画像です。95%ぐらいの飯はうまかった。昼からワインを飲めるのがいい。 f:id:itkq:20170520133302j:plainf:id:itkq:20170520135415j:plainf:id:itkq:20170520143013j:plainf:id:itkq:20170520202701j:plainf:id:itkq:20170520203603j:plainf:id:itkq:20170520222528j:plainf:id:itkq:20170521091750j:plainf:id:itkq:20170521143930j:plainf:id:itkq:20170521145931j:plainf:id:itkq:20170524121535j:plainf:id:itkq:20170524125304j:plainf:id:itkq:20170524134207j:plainf:id:itkq:20170524204306j:plainf:id:itkq:20170524205203j:plainf:id:itkq:20170524212142j:plainf:id:itkq:20170524212504j:plainf:id:itkq:20170524234928j:plainf:id:itkq:20170525122353j:plainf:id:itkq:20170525124105j:plainf:id:itkq:20170525200719j:plain f:id:itkq:20170525203223j:plainf:id:itkq:20170525214018j:plain

パリから帰る

日本⇔パリは直行便で11時間かかるが、行きも帰りも時差ボケが発生しなくて良かった。 パリでは英語は通じたけどまだまだだなと思うところもあった。その結果英語に対するモチベーションが上がって今は海外ドラマを英語字幕で見ている。

2017年5月5日

高専同期で集まってゴールデンウィーク2017をやりました。

*1:ボックスを新規に買ってきて開封しながらデッキを作った後対戦するみたいな貴族ゲーム

2017年5月2日

Arch Linux

やりたかったことを色々やった。

  • ターミナルエミュレータ
    mlterm というのが見えたのでそれを入れた。

  • 日本語IME
    fcitx と mozc で設定した。fcitx は advanced option で Mac の英数/かなみたいにトグルではなく inactive/active を設定できて良かった。

  • i3
    ステータスバーをいい感じにした。ランチャーは dmenu から rofi に変えてみたら非常に快適になった。参考:普段使いのArchLinux · Mi's blog

  • Twitter クライアント
    k0kubun先生作の nocturn を入れてみた。UI は使いやすいが機能が色々足りなかったので今は web の tweetdeck を使ってみている。

  • 外部ディスプレイ
    現状繋ぐときに xrandr を使って手でやっている。最終的には自動で繋ぐスクリプトを書きたいが今のところはあまり頻繁に繋がないので困っていない。

  • メーラー
    とりあえず Thunderbird を入れた。特に何も設定してないけど通知が動いてくれて便利。

  • キーリマップ
    これも k0kubun 先生の xremap を試してみた。だいたいいい感じだけどまだ調整が不完全。

  • トラックパッド
    タップや水平スクロールを有効にした。参考:Arch LinuxのTouchPadを快適にする設定 - MBA-HACK2

  • フォント
    Noto Sans Japanese と等幅の source-han-code-jp を入れた。

TODO

  • ボリュームと輝度調整をハードウェアキーからやれるようにしたい (軽く調べてもあまりでてこなかった)
  • スリープ復帰でパスワードを要求させたいのでディスプレイマネージャを検討する
  • スクロール量が多すぎるので調整する
  • macOS 的にアプリケーションスイッチしたい

Ever17

勢いでポチってしまったのでこれからやります(未プレイ)

2017年4月30日

ホームページ

http://itkq.jp

エロマンガ先生4話が良すぎたのをきっかけに新しくした。URI がまともな感じになった。 Hugo + Github pages + Circle CI というありきたり構成。このブログには主に日記を書く運用にします。

github.com

夜は短し歩けよ乙女

昨日だけど原作を全く知らない状態で見た。大学に進学した酒が異常に強い千反田える花澤香菜が演じるという話。 アジカンのエンディングテーマがよく合っている感じのアニメーションで、20歳の時に見たら面白く感じなかっただろうけど 今の自分はとても面白く感じた。

バームーンウォーク行きたいっすね。

年齢確認

今までされたことなかったけどここ一週間で2回もされててまだ若者だった。