2017年12月27日のブックマーク (8件)

  • Nonblocking I/O

    What really are descriptors?The fundamental building block of all I/O in Unix is a sequence of bytes. Most programs work with an even simpler abstraction — a stream of bytes or an I/O stream. A process references I/O streams with the help of descriptors, also known as file descriptors. Pipes, files, FIFOs, POSIX IPC’s (message queues, semaphores, shared memory), event queues are all examples of I/

    Nonblocking I/O
    hayajo_77
    hayajo_77 2017/12/27
  • Terraform & Azure デプロイ設計4原則

    注: 2018/1/8にサンプルを更新しました。更新エントリはこちら。 情報がありそうでない 以前のエントリで書いたとおり、TerraformでAzureへデプロイする方式をClassicからResource Managerへ移行しているところです。 今後も継続して試行錯誤するとは思うのですが、ふらふらしないように原則を作りました。この手の情報はありそうでないので、参考になればと思いこのエントリを書いています。 なお、考え方は他のクラウドやデプロイツールでも応用できるかと。 4原則 セキュリティファースト 手順書をなくそう 分割境界にこだわりすぎない 早すぎる最適化は悪 なお、サンプルのTerraformファイル群を、Githubに置いておきました。 今後ガラガラポンする可能性は大いにありますが、現時点ではこんな構造です。 . ├── .gitignore ├── main.tf ├──

    hayajo_77
    hayajo_77 2017/12/27
  • Sparse File (スパースファイル) の仕組み

    最近かなり流行っている「Linux プログラミングインタフェース」を読んでたら、lseek(2) の解説で Sparse File (スパースファイル) の話が出てきたので、実装が気になって調べてみた。 ファイル末尾を越えた位置へシークするとどうなるでしょうか? そしてその位置で I/O を実行すると? … (略) 意外 に思われるかもしれませんが、書き込みは可能なのです。 refs: https://www.oreilly.co.jp/books/9784873115856/ Sparse File とは 簡単に言うと、内部に NULL のかたまり(ファイルホール)を含むファイルのこと。こんなやつ。 # ls -shl sparse_file 4.0K -rw-r--r-- 1 root root 1.1M 3月 24 01:30 2016 sparse_file ls で s

    Sparse File (スパースファイル) の仕組み
    hayajo_77
    hayajo_77 2017/12/27
  • My Visual Studio Code Setup

    Nick Taylor Posted on Dec 23, 2017 • Updated on Jun 17, 2020 • Originally published at iamdeveloper.com This article is also available on iamdeveloper.com. This originally was just a gist, but I thought it made sense to just convert it to a blog post. As the stateofjs.com survey this year noted, Visual Studio Code is quickly becoming the editor of choice for many web developers. VS Code is my edit

    My Visual Studio Code Setup
    hayajo_77
    hayajo_77 2017/12/27
  • Goとツールでジェネリクス

    Goの言語仕様にジェネリクスそのものはありません。 Go2でなにかしらの支援が入るかもしれませんが、 その仕様の落とし所はまだまだ定まってはいないようです。 Go1.4にて言語仕様ではなくツールチェインでコードを生成するための 機能「go-generate」が追加されました。 この機能はアセットの埋め込みやバージョン情報生成のほかジェネリクスも実現できます。 「go-generate」を使ってエレガントにジェネリクスできる様にするgennyというツールを紹介します。 go-generate コーディングとビルドとの間に行う「何らかの処理」を定義できます。 「何らかの処理」はただの1行のシェルコマンドラインです。 go-generateは指定した パッケージの中で「何らかの処理」=コマンドラインを起動するだけの機能です。 Makefileでやってもいい様な気がしますが、以下の2つの支援機能が

    hayajo_77
    hayajo_77 2017/12/27
  • Go言語で書いた Web アプリケーションの習作をサービス化して公開するところまでやってみた - えいのうにっき

    もともと数ヶ月前から、Go言語によるWebアプリケーション開発 を読みながら Go での Webアプリケーション開発の勉強をしていた。 Go言語によるWebアプリケーション開発 作者: Mat Ryer,鵜飼文敏,牧野聡出版社/メーカー: オライリージャパン発売日: 2016/01/22メディア: 大型この商品を含むブログ (3件) を見る 「実際に動くもの」を、「手を動かして作りながら学ぶ」のが僕は好きで、今回も同様、それを楽しんでやっていたのだけど、思いの外それっぽいものができあがってしまって。これをそのままローカルで動かすだけじゃおもしろくないな、もったいないな、と思ったので、それをサービス化して公開するところまでやってみた。 かんじんのアプリケーションは↓これ。Yukizuri と書いて「ゆきずり」と読む。 https://yukizuri.moshimo.worksyukizu

    Go言語で書いた Web アプリケーションの習作をサービス化して公開するところまでやってみた - えいのうにっき
    hayajo_77
    hayajo_77 2017/12/27
  • DBリファクタリングの勘所と所感 - そーだいなるらくがき帳

    表題についてそーだいなる見解を書き残します。 今年の夏に id:koemu さんにbuilderconの懇親会で下記のような話をいただいていました。 懇親会で、DB側ばかりでなくプログラム側でも適切なドメインモデルの設計ができていれば、リファクタリング時の影響範囲がさらに小さくできるのでは?という話をしたところ、この辺りはアンサーブログを書いてくれるかもしれないってことなので期待しています!!! www.koemu.com 忘れてないんですよ!しっかり覚えています。 結論 仰る通りだと思うし、適切なドメインモデルはRDBに限らずデータストア層のリファクタリングの負担を大きく減らすと思います。 ここから先は僕なりの考え方を書きます。 実は似たような話を PHPの現場 っていうポッドキャストでも触れています。 php-genba.shin1x1.com システムの柔軟性 勿論、コードの綺麗さや

    DBリファクタリングの勘所と所感 - そーだいなるらくがき帳
    hayajo_77
    hayajo_77 2017/12/27
  • Goツールのクロスビルドとパッケージングのためのgoxzというツールを作った | おそらくはそれさえも平凡な日々

    Goツールのクロスビルドと成果物生成には個人的に長らく、goxcを愛用していましたが、その乗り換えとして、goxzというのを作った。go + x(cross) + z(zip)でgoxz。便利です。 https://github.com/Songmu/goxz goxcは非常に高機能なのですが、僕がその機能の一部しか必要ないことや、goxcのメンテ自体も止まっている(とオフィシャルでも案内されている)ことが気になったので作りました。 具体的には「Goツールのクロスビルドと成果物のアーカイブ生成をパラレルにおこなう」ことしかしない。アーカイブ生成時に、リポジトリからLICENSEやREADMEを自動的にかき集めるのはやってくれます。 基的には「設定より規約」という感じで、良い感じのデフォルトを決め打ちにして、あまり細かい設定項目などは作らない想定です。 インストール https://git

    Goツールのクロスビルドとパッケージングのためのgoxzというツールを作った | おそらくはそれさえも平凡な日々
    hayajo_77
    hayajo_77 2017/12/27