はぜにっき

日記です。(毎日更新ではない)

米の食べる量を減らす

hazediary.hateblo.jp

今週に入ってからほとんど米を食べていない.
その分多めに肉とか野菜類を食べるようにしている.
昼過ぎの眠気が食べていた頃と比べると明らかに減っていて, いい感じ. ただしその代わり食費が上がる.
米は安いなーというのを実感.
あと, サラダというものがあんまり好きじゃないことに気付いてしまって野菜をどう取ろうか悩んでいる.
基本的に炒めるか煮るでなんとかやっているけど来月になる前に飽きそう. どうしようかな.

上の記事の生活リズムは, 多少前後はあれど一応うまいことやっていけている.
ただ睡眠時間は6時間あれば良い(というか自動的に起きる)ので, その空いた分を朝に本を読んだり, インターネットをして過ごしている.
GWは特に予定がなくて, 生活環境の改善とかバランス調整をやっていけたらいいなと思う.

追記

独り言

昔から自己分析をしていて思うのは,自分は
 基本的にどんなに良い状態でも危機感を持って生活をしている.
言い換えればどれだけ恵まれていようが辛い気持ちになる人間で.

焦燥感 とか 危機感 とかを原動力として動くので, 自分を追い詰めれば追い詰めるほどアウトプットが出てくるようになる.
情熱プログラマでいう「一番下手くそなプレイヤーでいろ」っていう考え方を極限まで突き進めたような状態になっている.

自分に限らず似たような性質の人はいるだろうけども この性質はかなり危うい,
具体的に言うと
 歯止めが効かない っていう危うさ  環境による依存が大きすぎる っていう危ういさの
2つの危うさがある.

歯止めが効かないっていうのは, パフォーマンスが最高の状態っていうのは本当にやばくて危機的な状態だということなので, その状態の時はうまくコントロールができなくなるということ.
そしてその歯止めが効かない状態っていうのも, 結局は環境によってヤバイとかやばくないが決まるので, 自分の想定外のことが起きて環境が激変するとそれに耐えきれない可能性があるということ.

これらをまとめると, 現状自分は自分の中だけでパフォーマンスを上げる方法を持っていなくて, 周りへの依存度が大きいということ.
最初にまとめてあるツイートにアイデンティティという言葉を入れているが, それが無いからこうなっているのではないかと思う.

で, 一番問題なのはこれを解決する方法が全く浮かばないところ.
その状態でも頑張り続けるしか無いっていうのはよくわかっていて, その状態でまあ2年間働いて来たわけなんだけども
一向に改善をする感覚はないし, むしろ悪化の一方を辿っている.
半年前ぐらいからは何かきっかけが欲しくてIT系の専門職大学院を行こうと考えたり, 最近は全く手を触れられなかった学術的な研究に関わりたいと思い始めて夜間大学を探し出したりしている.
別にその選択肢が悪いことではないんだけども, 進学の選択肢は本来そういう理論で行くところではなくて, ちゃんと具体的にやりたいことが決まった状態でないと行くべきではないだろうし, 行っても無駄になるんじゃないかなと思う.
ただそういって, そのまま仕事を続けて行くのもなんだかなあという感じではある.
最近は色々と動いていて, 関わったことのない会社の考え方を聞いたりとか, 昔憧れていたような文化を持つところで互いに話をしてみたりとかしているのだが, そういうことをすればするほど自分の大元の考えとか理念というのがわからなくなってくる.
今まで頭の中で考えて来たものも, その場その場の環境下での最適解を探し求めていただけな気がしないでもないし, もっと先を見据えて走り続けていきたい.

なんか思ってた方向とはだいぶ違うところに飛んで行った気がするけどつらくなってきたので寝ます.

生活リズムを正しい方向に持っていく

はぜです.

先月微妙に忙しかったり色々あったりで睡眠時間がバラけたり土日昼寝しまくってたりで, なんとかしていきたいという話.

6:50起床  
→  
朝ごはん作ったりシャワー浴びたりコーヒー飲んだり本読んだりインターネットしたり  
→  
準備  
→  
出社(8:30~)


→  
退社  
→  
晩御飯作って食べる  
→  
インターネットか本読む  
→  
22:00に風呂  
→  
音楽とか聞いたり静かに過ごす  
→  
23:00 寝る

こんな感じで生きていきたい. 最近は6時台に自動的に目が覚めてけど8:00ぐらいまで布団から出られない. とてもつらい.

hazediary.hateblo.jp

先日バリスタも買ったことだし, 朝にパン焼いてコーヒー飲みながらゆっくり買った本を読む時間を作りたい. 最近本を読むペースが落ちてきているのをなんとかしたい.
ということでうまく生きていくための方法を考えていきたい


指定の時間に音楽をかける

基本的に家にいるときは音楽をかけっぱなしにしているのだが, 4月に入ってからは寝るときは消すようにしている.
これをスイッチとして, 6時40分〜50分ぐらいから自動で音楽を流すようにすれば起きやすくなるのではないかという考え.

自動で流すのは, iMacを指定時間に自動で起動するように設定して, Automatorで起動時にitunesの音楽を再生するようにした.
PCを落とし忘れた時が最悪だが, 最近は毎日消して寝ているのでなんとかなるだろう.
落とさなくても指定時間に再生する機能があるのなら教えてほしい.

どうでもいいけど, 朝になったら機械が自動で色々動いてくれるの近未来感があって良い. バリスタの起動とか電気周りとか風呂とか全部自動で動いて欲しい.
俺...お金いっぱい稼げるようになったら電気をHueにしたりタイマー付きの良いバリスタ買ったり風呂が指定時間に自動で湧いてくれる家に引っ越すんだ.......

コーヒー / 食パン

買ってからは毎日朝にコーヒーを飲んでいる. 割と良い.
ネスカフェは結構好きで, UCCとか他のその辺に売ってるやつよりは全然うまいと思う. 次点でカルディ.
全然詳しくないので基本的に飲み比べとかはできないし高いコーヒーの味とかわかんないけど気にしない. ネスカフェはブラックでも美味いしこれでええんや.

食パンはかなりの頻度で買い忘れるので気をつける. 今日も買い忘れたのでさっき買ってきた.
健康診断で引っかかって以降, ほとんど米を食べていないけど割と健康. そろそろラーメンを減らさないといけない.

運動

なんてことはないただの運動不足. 先月はほとんど運動もしていなかった. というか秋〜冬の終わりまでは全く運動しなくなる. 良くない.
最近は少しずつ暖かくなってきていて, 運動をするようになってきた.

先週末は少し走ったり自転車で横浜まで行ったりした. あとカラオケ. カラオケは運動.
この調子で毎週1回ペースぐらいでちゃんとした運動をしていきたい.


上記以外にも寝られるように23時超えたらスマホの通知全部消したり とか シャワーじゃなくてちゃんと風呂に入るとかできる範囲でやっていきたい.
目的としては 本を読む時間を増やしたい / 布団にこもる時間をなんとかして減らしたい / 健康になりたい とか.
精神的につらくなってきた時に生活リズムが崩れているとぶっ壊れるので, それをなんとか回避したいというのもある.

がんばっていきていこうな

「LINE Pay APIによる決済機能を実装しよう」勉強会に行った

はぜです. いつもの雑な日記です.

【東京】LINE Pay APIによる決済機能を実装しよう というLINE Payの勉強会に行ってきました.

内容としては,

  • LINE Payの仕組みや概要の説明
  • Web上でLINE Payを実装する
  • Bot上でLINE Payを実装する
  • 懇親会

といった感じでした.
かなり細かい説明してもらいつつ, 参考のQiita記事を眺めながら進められたので特に問題なく実装ができました.

以下は自分用のメモです.


決済の流れ

  • 1: 決済予約

    • ユーザが決済手続きを始める動きをした際に行われる
    • サービスプロバイダがLINE Payに決済予約を行うリクエストを送信する
    • そのレスポンスとして, 「トランザクションID」と「決済URL」が返却される
    • トランザクションIDは, その決済手続き一つを表すためのIDで, 決済URLはその決済手続きをユーザが行うためのURL
  • 2: ユーザの決済承認

    • サービスプロバイダがユーザに決済URLを渡し, リダイレクトするとかしてそのページにアクセスをする
    • LINE IDによるアカウント認証を行い, 決済の承認を行う(=PAY NOWボタンを押す)
  • 3: 決済の実行と通知

    • ユーザによる決済の承認が行われると, LINE Payに承認したことが通知される
    • その際に送られるトランザクションIDを元に, 承認したトランザクションを特定し, サービスプロバイダに決済が行われたことを通知をする

テスト用のアカウント

  • 実際に決済を行うことができるようにするには「加盟店登録」が必要
  • この辺の手続きは飛ばしているのでわからない.
  • テストとして決済を行いたい場合, 開発用の環境が欲しい場合はサンドボックスを用意することになる
  • LINE Pay Developers : Sandbox creation

実装する上での気をつける点

  • nodeのバージョンが古いと動かないことがある
  • (ハンズオンでは)環境変数で設定するCHANNEL ID, SECRET, CONFIRM_URLは当たり前だけど間違えないこと
  • サンドボックス生成時に設定するIPアドレスも間違えると死ぬ. 2桁ずつ入力欄が分かれているためコピペしづらい
  • トランザクションIDは消失すると最悪なので気をつける.

所感/感想

仕組みとしてはかなりシンプルで, 実装が簡単.
LINE上で何か取引をする上では間違いなく最高の選択肢になるかとは思うが, Web上ではどうかはわからない. どうであれ楽に運用できるような仕組みはなっている
実際使う際の加盟店登録がどれだけ面倒臭いか, 登録に当たっての条件や制限事項によって実用性は大きく変わりそう. ひとまずやってみないとわからない

初めてherokuを使ったが, クラウドサーバとサーバレスの中間ぐらいのものでとても良い. 適当にサクッと物を作る時には最高っぽい.
色々ぐぐりながら何ができるかを調べる

LINEはセミナールームが綺麗でよかった.

LINE Community lab なる, 個人orチームで数ヶ月ぐらいでLINEを使ったアプリケーションを作るプロジェクトみたいなものが立ち上がるらしく, 面白そうなので参加しようと思っています.

おわり

フロントエンドの知識が全くなくてつらい

はぜです.

hazediary.hateblo.jp

ちょうど一ヶ月前に

「ホームページを作れるようになろう」と「Javascriptから始めるお手軽プログラミング」を3月末までには終わらせたい.

とか言っていたが全く進んでいない.

Twitterでは言い訳をしている.

今はReal World HTTPを読んでいる. 知らないことが多くて面白い.


haze-page.tokyo haze-page.tokyo を多少それっぽくした.
中学校の頃にFC2ホームページでサーバ(?)借りてHTMLを書いていたのを思い出した. 懐かしい. 削除しといてよかった.

背景写真は近所で咲いていた桜を撮ったもの. その時々で変えたくなったら変えます.
最寄駅が結構花見スポットになっているっぽくて, 家族連れの人たちとかが昼間にわいわいしているのを眺めて平和な気持ちになっていた.


最近仕事でもそれ以外でもJavascriptを書くようになり始めていて, せっかくなのでちゃんと理解しようと思って書籍を買った.

初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発

初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発

これより以前に出ているJSの本は闇に近いらしく, これだと比較的最近の「嫌いにならないJavaScript」を学べるらしく激推しされた.
実際かなりわかりやすく, 付録のコードの変数名が日本語で書かれているところ以外はとても良いと思う.

非同期処理がデフォルトの言語を触るのが初めてだったことがありそこそこハマったりしたが何とか理解することができた.
async/await がとても良いと思った. 早く全ての環境がES2016対応になってほしいところ.


[追記]

背景画像がくそみたいに重かった(Lightroomで編集し終わったやつをそのまんま表示していた)ので品質を落とした.
あと, nginxの設定で include mime.types; を入れておらずCSSが読み込まれない現象が起きて10分ぐらい悩んだ. 無知すぎる. つれえ.

雑記 ( つらみ編 )

ここ最近良くない方向に考えが行きやすくて困っている........つらい...人生とは.....

ここ最近, 仕事面でもそれ以外の面でもあまり上手く行かないことが多くて凹むことが多い.
だいたい自分の能力不足が原因だったり, 精神的に弱いところが露出しているだけっていうのを自覚してしまうのがつらいところ.
助け舟を出す先がないんだけども, 元々そういう生まれというか, そういう生き方を選んでしてきたのでどうしようもないかなあと.

ひとまず出来ることは, 自分が潰れない程度にやることをやりつつ, 地道に技術を身につけたり知識を増やしたり, 考えをまとめたりして一歩一歩進んで行くということなので.
死にたくならない程度にやっていこうと思います.

雑記 ( 買い物編 )

天気も良いし, 軽く走るついでに近所のブックオフとかドンキを散策していたら, このバリスタが新品1980円で売っていて思わず買ってしまった.
友達の家で飲んだことがあって, 美味しいし, (カプセルより)コスパ良いからいつか買おうと思っていたのでよかった.
毎朝起きたらこれのスイッチを押してコーヒー飲んでから生活することになりそう. QOLが結構上がる. 嬉しい.


何買うか悩みながらツイートしたら著者の方々から圧力のRTといいねとリプが飛んできて焦った. 今年の前半中に全部買って読みます. たぶん.

とりあえず以下のものを買った

最初に Real World HTTPを読んでいる.
サンプルコードが主にGoで書かれている. Goの本と一緒に買ったのは正解だったっぽくて, これ読み終わってからGoの本を読めば一気に理解ができそう.

この3冊を読み終わったら次はカイゼンジャーニーとSRE本だろうか. どっちも内容が最高に濃いようなので時間を掛けて読みたい(SREは物理的にでかいし文量もとんでもないので大変っぽい)


バリスタ買ったブックオフMacbook Air Mid 2013 / もりもりタイプが綺麗な状態で4万円台で売っていて即購入.
付属品全て付いて, 充電回数28回! めっちゃ当たり引いた. あと2年戦える.
外に持ち運ぶ用のMacbookを買うかずっと悩んでいたので歓喜している. それ用のお金置いといてよかった.

シールについての考えは以下の通りです.

普段お世話になっている/興味を持っているツール類を少しずつ貼っていきたい. GCPとか.

「試して理解 Linuxのしくみ」 読んだ

はぜです.

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識

読みました.


自分について

買おうか悩んでいる人向けに参考程度ですが, 自分の情報を書いておくと

という感じです. 所謂「スーパーマン」ではない.
プログラミング自体には長く触れているが, 「がっつり」ではない. ゆるふわエンジニアです.

自宅サーバはこの前破棄しちゃったのでmacで可能な限り試した. 他に動いている処理が結構あるので正確な実験ではないだろうけど, まあ良いでしょう.

以下, 各章ごとの自分用メモと簡単な感想


1章 コンピュータシステムの概要

  • アプリケーション, ミドルウェア, OS, ハードウェアの繋がりの話
  • なぜ「ドライバ」が必要なのか?
  • ユーザモードとカーネルモードの話

大体知ってた. そうだねーっていう感じで軽く読み飛ばし.
文章も図もまとまっていてわかりやすい. 人に説明するときに参考にしたい.

2章 ユーザモードで実現する機能

  • OSの機能とかプロセス発行をしたいときはシステムコールを使ってカーネルモードで処理をするんだよっていう話
  • strace を使ってHello,World!を表示するときにどんなコールが呼ばれているかを確認
  • sar コマンドでユーザモードとカーネルモードのどちらでプロセスを実行しているかを確認する
  • システムコールのラッパー, OSが提供するライブラリとプログラムについて

strace コマンド初めて知った. すごい. よくわからない
無限ループでシステムコールを使う処理を回した時の実験は, 思ったよりuser率高いなーという感想.

3章 プロセス管理

  • fork()について

    • 子プロセス用のメモリ領域を作る
    • 親プロセスのメモリ領域を子プロセスのメモリ領域にコピー
    • 親と子が別々の処理として動く
  • execve()について

    • 実行ファイルを読んで, その内容を実行中のプロセスに上書き
    • 実行
    • プロセス数は増えない.
    • readelf でコマンドの開始アドレスを見る
  • 実行時に生成されたプロセスのメモリ情報(マップ)は /proc/[pid]/maps に書き出される

  • プログラムを終了するには _exit() システムコールが使われる

いわゆる forkexec の話.
forkはすぐイメージできるけど, execは別プロセス化して動くっていうのがなんとなくイメージ付きづらいところがある.

4章 プロセススケジューラ

  • taskset ... 指定したプログラムを指定したCPU上でのみ動作させるコマンド
  • 複数のプロセスを1CPUで同時に実行させた時の進捗度合いを実験する

    • 一定時間ごとにプロセスが順番に切り替わっていく(コンテキストスイッチが発生する)ことを確認
    • 実行が完了する時間はプロセスが増える分に比例して増えていくことを確認
  • 実行状態, 実行待ち状態, スリープ状態, ゾンビ状態について

  • アイドルプロセス: 何もしないことでCPUを休止状態にし, 消費電量を抑えた状態にするプロセス

  • スループットとレイテンシについて

    • スループット: 実行完了プロセス数/経過時間
    • レイテンシ: 実行完了時間 - 実行開始時間
  • 複数CPUでの複数プロセス同時実行 

  • nice(): 優先順位
    • 優先順位を下げることは誰でもできるが, あげるのはroot権限持ちユーザのみ

プロセスの実行順序と掛かる時間についてのお話.
頭の中では理解しているが, 実際にグラフを見ると面白い. 実際こんな綺麗に結果が出てくるものなんだなーと思った.
macの上にvagrant/virtualboxCentOSを立ち上げてやってみると, 書籍に書いてあるほど綺麗ではないがそれっぽい挙動を見ることができた.

5章 メモリ管理

  • free コマンドでメモリの状態を見る
  • OOM Killer 「君はたぶんいらない子
  • 仮想記憶の仕組みを用いない単純なメモリ割り当ての問題点

    • メモリの断片化
    • 割り当てられた領域以外の領域へのアクセス可
    • メモリの断片化によるプロセスのメモリ配置ができなくなる問題
  • 仮想記憶について

    • プロセスから見えるアドレスを仮想アドレス, 自裁のアドレスを物理アドレスと呼ぶ
    • ユーザが物理アドレスを確認する方法はない: 見れたら他の領域へのアクセスが可能になるかもしれないので
    • カーネルが使うメモリ領域の中にある「ページテーブル」で管理する
    • もらった領域の外にアクセスしようとするとSIGSEGV(ページフォールト)が発生してプロセスは強制終了される
    • 追加割り当てはプロセスが要求(mmap)すれば, 対応するページテーブルを作成して仮想アドレスをもらえる
  • ファイルマップ

  • デマントページング

    • 領域を確保したが, ユーザに使われなかった領域が出た場合に他のプロセスにその領域を割り当てる機能
  • 仮想メモリ, 物理メモリの枯渇

  • forkの高速化

    • forkシステムコール実行時には親プロセスのメモリを全てコピーするのではなく, ページテーブルのみをコピーする
    • どちらかがメモリ上への書き込みを行おうとした場合にはページフォールトが発生し, 新しく物理ページが用意され書き換えられる
    • コピーオンライト(CoW)と言う
  • スワップ

  • ヒュージページ

    • ページテーブルの中身が増えてくるとforkシステムコールが遅くなる
    • ページテーブルを階層化して一度で見なければならない範囲を減らすことで高速化する
    • トランスペアレントヒュージページという, 仮想アドレス空間内の連続する4KBのページを良い感じにヒュージページにしてくれる機能があるけど使わない様にもできる

普通に知らないことが多くて良い. デマントページングとか初めて聞いた.
OOM Killerとかswapとかは仕事でサーバ削減をしていたときに結構気を付けていたので知ってはいたが, ぼんやりした理解だったので確認.
ちゃんと理解して使えるようになりたいと思う反面, この辺を真面目に意識してプログラムを書く機会ってそんな無いよなあ と思ってしまう.
メモリを極力使わないようなコードを書くとか, メモリ領域に合わせて使う分を考えてとかはやると思うけど. 忘れないようにしたい.

6章 記憶階層

  • レジスタ
  • メモリキャッシュ
  • メモリ
  • ストレージデバイス

    • の速度の話
  • キャッシュメモリの話, 階層型の話

  • 参照の局所性

    • 時間的局所性: アクセスされたデータは近いうちに再びアクセスされる可能性が高い
    • 空間的局所性: 次にアクセスされるデータは, 前回アクセスされたデータの近くにある可能性が高い
  • Translation Lookaside Buffer

    • ページテーブルを参照して, 仮想アドレスを物理アドレスに変換する処理を高速化するための領域
    • 詳細はぐぐる
  • ページキャッシュ

    • ストレージ上のファイルデータをメモリにキャッシュする.
    • ダーティページの説明
    • open()でファイルを開くときにO_SYNCフラグを立てると可能な限り同期書き込みをする
    • vm.dirty_writeback_centisecs パラメータでダーティページのライトバックを行うタイミングを変更できる
    • /proc/sys/vm/drop_caches
    • ハイパースレッド

プログラムの高速化, ISUCONでよく考える系の話. fujiwaraさんの資料がとてもわかりやすくて良い.
http://isucon.net/archives/50648750.html

Translation Lookaside Bufferとハイパースレッドがよくわかってないので調べてまとめたい
/proc/sys/vm/drop_cache は仕事でお世話になった.

7章 ファイルシステム

  • 雑に言えばファイル名/場所/サイズ のリレーションを保管しておいてくれるもの
  • ユーザモードで ファイル名, ファイルのオフセット, サイズ を指定しシステムコールを発行すると, カーネルモードでストレージに行って読み出してくれる
  • Linuxはファイル名の部分をディレクトリを使ったツリー構造で保管

  • データ: 文書, 画像, プログラムなど

  • メタデータ: ファイルの名前とかストレージ上の位置, サイズなどの補助情報

    • df コマンドで表示されるストレージ使用率はデータ+メタデータの総量
  • クォータ: 用途ごとにファイルシステムの使用料を制限する機能

    • ユーザクォータ: ユーザごとに容量を制限する. ext4とXFSで利用可
    • ディレクトリクォータ: ディレクトリごとに容量を制限する
    • サブボリュームクォータ: ファイルシステム内のサブボリューム単位ごとに容量を制限する. Btrfsで利用可
  • mvコマンドによるファイル移動の流れ

    • mv /bar /foo
    • foo -> bar リンクを貼る
    • / -> bar リンクを削除
    • 〜完〜
  • リンクを貼り終わった瞬間に電源が強制的に切られた場合, 二箇所からリンクが貼られた不整合な状態となる

    • マウントで検出したらマウントができなくなる, アクセス中に検出すると読み出し専用モードでの再マウントorパニック
  • シャーナリング

    • ファイルシステム内に, ユーザに認識できないジャーナル領域というものを用意する
    • 更新処理の一覧を書き出す(ジャーナルログ)
    • その内容に基づいてファイルシステムを更新する
    • 更新が完了したらジャーナルログを削除する
  • 更新中に強制断が発生した場合, ジャーナルログを最初から再生することで処理を完了させることができる.

  • コピーオンライト

    • コピーオンライト型のファイルシステムとそうでないものがあり, コピーオンライト型のものは Btrfs など.
    • ファイルを更新するごとに別の場所にデータを書き込むというもの. ext4やXFSは同じ場所に書き込む
    • 更新処理は, 更新された後のデータを別の場所に全て書き込んでから, リンクを張り替える処理となるため, 途中で死んでも作りかけのものを削除すれば大丈夫
  • 不整合で死んだとき: バックアップを戻す or fsck で直す

    • fsckは復旧のためにファイルシステムを全て見るので, システムが大きいとめっちゃ時間かかる
    • 失敗する確率もそこそこある
    • 望んだ通りに復旧する可能性がそんなに高くない(あくまで不整合を直すだけなので)
  • バイスファイルについて

    • Linuxは大体のデバイスをファイルとして認識している(ネットワークアダプタは例外)
    • バイスファイルは, 以下の二つに分類される
      • キャラクタデバイス: 読み/書き ができるもの. マウス, キーボード, ウィンドウなど
      • ブロックデバイス: 読み書きに加え, ランダムアクセスが可能なもの. HDD, SSDなど
  • tmpfs

  • ネットワークファイルシステム

    • いわゆるnfs.
  • 仮想ファイルシステム

    • procfs: プロセスの情報を得るためのもの. /proc以下. maps, cmdline, stat など
    • sysfs: カーネルのプロセスに関係しない情報を置くためのもの. /sys以下. devices, fsなど
    • cgroupfs: cgroupの情報が置かれている. rootのみ使用可
  • Btrfsについて

    • ext4, XFSと異なる部分の紹介
    • マルチボリューム, スナップショット, RAID, データ破損検知と修復機能などがある

この章が一番知らないことが多かった.
journal ってそういう意味のものなのね... というのがこの本読んでの一番の驚きだった. プロセス死んでるときに見るためのログとしか理解していなかった.
普段あんまり意識していないなーという気持ちで読んでいた. 各ファイルシステムのこと(ext4とかXFSとかBtrfs)もある程度は理解しておくべきなんだろうなあ

第8章 ストレージデバイス

  • HDDのセクタ
  • I/O スケジューラについて
    • ブロックデバイスへのアクセス要求をある程度溜めてからアクセスする仕組み
    • 連続するセクタへのアクセスを一つにまとめる, 不連続なセクタへの要求を番号順に並べることで性能を高める
  • 先読みについて

    • ストレージデバイス内のどこかにアクセスした際, 同時にその周りの領域を先に読んでおく機能
    • 空間的局所性
    • 読んでおいたところにアクセスが来なかったら捨てる
  • HDDとSSDの違い

    • SSD: アームもないし回転もしない
    • 比較的高い
    • ランダムアクセスだと差は顕著

基本情報技術者の午前試験思い出した. 懐かしい
HDDはどう動いていて, SSDはどう動いているのかを大雑把にでも理解しておくと, I/Oを考えるときに良いと思う.


数日で, 多少実験しながら読んだ.
覚えるというよりも, 正しく理解するための書籍で, 実験も面白くて良い.
学生のときに読みたかったな. 4月に入ってくる新人の人に貸してあげたりとか, プログラム書いたことあるけどインフラ系触ったことないような人に勧めてみても良い本なんじゃないかなーと思った.

一年半で17kg太ったら案の定健康診断に引っかかったので生活習慣を改めていく

雑記です. タイトル通り.

新卒で東京に来てから, 飲み潰れないのを良いことにひたすら酒を飲み続けたり, つけ麺750gとかラーメン大盛りとかを頻繁に食べていたらめっちゃ太りました.
元がやせ細っていたので17kg太っても標準体重 (BMI21.2) なのが逆に恐ろしいところですが.

まあ特に冬場の間はずっと引きこもりつつ, 毎食1~1.5合の米を食べ続けていたので引っかかって当然です.
酒は今年に入ってからはかなり減って, 自炊もしているので米は多いけど野菜は食べている.

引っかかったのは「HDLコレステロール」と「中性脂肪」です. 両方 脂質代謝 の欄.
善玉コレステロールが基準値をギリギリ下回っていて, 中性脂肪は大幅に基準値を超えていてかなりよろしくない感じになっています.

脂質代謝以外はほぼ全て基準値ど真ん中なので, 生活習慣さえ改めれば健康そのものに戻れると思う. がんばる.
暖かくなってきたしロードバイクで都内ふらふらするのも再開できそうだし, 米を食べたくなるのを我慢して野菜を食べまくっていこうと思います.

雑にdeployツールを作った

https://haze-page.tokyo/ のデザインをいじって遊ぼうかと思っていたんですが, 直接htmlいじったりscpとかrsyncを毎回するのも面倒だなーってことで,
Goの勉強ついでにデプロイツールを自作してみた.

github.com


README.mdに書いてある通りなんですが, 使い方.

  1. デプロイしたいリポジトリに移動する
    f:id:hazeblog:20180310170944p:plain

  2. コマンドを叩いて y を押す f:id:hazeblog:20180310171150p:plain

おわり.

初めてcloneするリポジトリ( = 指定したディレクトリにファイルが存在しない) は, ディレクトリ無いけどcloneするか聞いてくれる. f:id:hazeblog:20180310171550p:plain

ただ, 初めてGitHub等にアクセスする場合に聞かれる, The authenticity of host 'HOSTNAME(***.***.***.***)' cant' be established. は突破できない. 作るのはすぐできるけど確認めんどくさい
他にもいくつか制限事項みたいなところはあって, 詳しくはREADMEを読んでください. 使いたい人そんないないと思うけど.

そのうちテストコードを書きたい. 書き方を調べたけどめんどくさそうだったのでやめてしまった. 良くない...