CircleCi が公式で path-filtering という orb を提供しているのでそれを使う。現在のバージョンは 0.1.1。 詳しくは公式のドキュメントにも書いてある。https://circleci.com/docs/2.0/configuration-cookbook/#execute-specific-workflows-or-steps-based-…
Docs for Developers 読んだメモ。 ドキュメント書き方だけにとどまらず、どのようにドキュメントを改善していくか、誰に向けて書くかなどが書いてあり、非常に面白かった。e34.fm で話していたのを聞いて買った気がする。 特に印象に残ったのは ドキュメン…
reimpl/redis_client at main · ganmacs/reimpl · GitHub Redis のプロトコルがシンプルでだというのを聞きつけた1のでいくつかのコマンドをサポートした Redis client を書いた。 Redis は普段仕事で使ってる割にはどういうプロトコルを使っているか知らな…
SWIM ではそれぞれのノード間の変化(メンバーの追加または離脱)を障害検知のために送り合っている ping / ack メッセージに相乗り (piggyback) して送ることでより強固に効率よく他のノードに変化を知らせている。 SWIM について詳しくは論文1を読むか日本語…
最近ディレクトリ構造が複雑な(単純に長い)アプリケーションを触っていて、移動したい先のディレクトリまでスッと飛べないことが多かったのにイライラして書いた。 自分の場所より下のディレクトリをすべて出して peco でインクリメンタルサーチして飛ぶ感じ…
unicorn には特定のタイミングで発火する hook を仕掛ける仕組みがあるが、それらの hook が呼ばれるタイミングを正確にわかっていなかったのでメモ。 いちおう公式のドキュメントはこちらにある。ここで言及する unicorn のバージョンは v5.3.0。 それぞれ…
UDP server と client の覚書。Ping を送って Pong と帰ってくるだけの雑なやつ。 特に難しいところもなくこの辺 みながらやると簡単にできる。 server 側 サーバ側では 127.0.0.1:8080 をlisten するようにしている。 何か送られてきたらそれを読んで、送っ…
wikipedia の ( Software Transactional Memoryのページ ) を眺めたまとめのメモと、toy 実装をしてみた話。 github.com stm の rust 実装 見ながら書いてたんだけど、そのまま rust で書くのもあれなのでなんとなく go で書いてみた。 ちなみに int にしか…
Java Concurrency in Practice の 5.5.4 Barrier の話 amzn.to バリア同期とは バリア同期とは、各スレッドの実行の進行具合を合わせるために使用する同期機構のこと。 複数スレッドにまたがった依存関係のある計算(処理)の完了を待って、処理を実行する際に…
Java Concurrency in Practice の 5.2.1. ConcurrentHashMap にて Lock Striping というロックの方法が出てくる。 Lock Striping の説明と実装、および簡単にパフォーマンスを測ったのでそのメモ。 Java Concurrency in Practice作者: Brian Goetz,Tim Peier…
会社で Github Enterprise を使っているので、github.com の方の user.name と user.email でコミットしてしまわないようにリポジトリごとに設定を変更できるようにした。 gitconfig にあった user.name と user.email をけして、useConfigOnly を true にし…
Ruby には Monitor というクラスがあるんだけど、よく見るわりに Mutex との違いをよくわかっていなかった。 たまたま Java Concurrency in Practice を読んでいたら 2.3.2 Reentrancy で同じような概念の話が出てきて、少しわかった気がするのでそのメモ。 …
Raft Consensus Algorithm をみつけてリーダ選出とは、となったので調べてちょっと書いてみたメモ。なお、この記事では raft のことは書いてない。 リーダ選出とは リーダ選出アルゴリズムとは、分散システム内で特別な役割を持ったノード(プロセス)を選出す…
Linuxシステムプログラミングの8章メモリ管理の雑なメモ。 下に行くほど雑になってそう。この本。 Linuxシステムプログラミング作者: Robert Love,ロバートラブ,千住治郎出版社/メーカー: オライリージャパン発売日: 2008/04/16メディア: 大型本購入: 5人 …
ここで言う Future オブジェクトとは、clojure の Future を使用して作成できるオブジェクトのようなものことをいう(結果をキャッシュしてないとかはあるけど、その辺は割愛している)。 つまり、何か処理を受け取りその処理を別 thread で実行するオブジェク…
Rubyの retirable の Go版を書いた。 github.com 使い方 一番シンプルな使い方。引数として渡されたクロージャが成功するまでリトライし続ける。 リトライ回数のデフォルトは3で、リトライ間隔は randomized exponential backoff アルゴリズムを使っている。…
Rust と LLVM やってみたくなってやってる. llvm-sys という LLVM の Rust バインディングのライブラリを使って LLVM 動かしてみた話と自分用メモ. きつねさんでもわかるLLVMを読んでからやるかと思ったが,5章以降はちょっと自分には合わなかったのでブロ…
hisaichi5518.hatenablog.jp これ見て hub browse -- commit/<commit-id> でcommitに飛べることを知ったので、それを使って emacsでコード読んでるときに「現在いる行が含まれたプルリク」に飛びたいを見れるようにした。 このスクリプトも元ブログと一緒でプルリクのペ</commit-id>…
8月1日から9月30日の間,Treasure Data Summer Intern 2016に参加していました. 他のインターン生2人からの強烈なプレッシャー (強烈なプレッシャー1,強烈なプレッシャー2)に負けたので僕もインターンブログを書きます. tl;dr すごいメンターの元 Fluent…
Org Capture とはOrg-Modeのメモ取りツール(わかりやすく書いてある -> 色々 Org Capture する | Amrta ) 以下のように書いておくと(キーバインドはなんだっていい) (setq org-capture-templates '(("t" "Task" entry (file (expand-file-name (concat org-d…
環境 OSX 10.10.5 nkf 2.1.3 Emacs 24.5 動機 diredでバイナリとか開くときに本当に開いていいか確認してくれる何かが欲しい— がんま (@ganmacs) 2015, 9月 24 Emacsでは写真やらPDFやらをEmacs内で見れるイッてる機能があります. しかし,写真やらPDF開こ…
emacsからアルクで単語検索する便利コマンド書いた 環境 OSX コード (defsubst marked-input () (when (use-region-p) (buffer-substring-no-properties (region-beginning) (region-end)))) (defun search-word-in-alc () (interactive) (let* ((cmd "open …
Rackのコードを読んでたらDSL使ってたのでその部分. instance_evalを使ってBuilderクラス内でblockを実行するようにしている. つまり以下のプログラムは,Builderのインスタンス内で呼ばれたことになってる. map '/' do { 'Content-Type' => 'text/plain'…
rack/rack · GitHub のコード読んでてプラグイン(Rackの場合はバックエンドにどのサーバを使うか)の処理があったので取り出して書いてみた. Rubyではクラスは定数なのでHandlerっていう名前空間の中の定数を探すだけでいい. # sample1.rb module Handler c…
30分くらいでできる簡単な問題探しててmzpさんのやつを見つけてそれを解いてみてる. これが動けばいい Dog = MyStruct.new(:name, :age) fred = Dog.new('fred', 5) fred.age = 6 printf "name:%s age:%d\n", fred.name, fred.age 回答 class MyStruct def …
タイトル通りで作ってみたました. もともと研究で違うことやってたはずなのに目的を見失ってなんか面白そうだしこれならゼミで話しても怒られなさそうという考えからこの頃ずっと勉強してた. OCamlで実装しようかHaskellで実装しようか迷っててどっちでも…
前提 ganmacs@ganmacs~% ruby -v ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14] 内容 現在実行中の関数名を取得したいとき、ruby 1.8までは以下のようにしてとれた。 しかし1.9からto_s(Array)の挙動が変わったらしく2.2.2では動かなった。 …
研究してるふりをして全くせずにこれよんだ。 Working With TCP Sockets (English Edition)作者: Jesse Storimer発売日: 2012/10/24メディア: Kindle版この商品を含むブログを見る なぜ読んだかというと、少し前にこの記事いいよって教えてもらった記事があ…
あたらしく研究室に入って(2度目)スクリプト言語の作り方って本が課題なのでやっていまして、そのときlexer作るんですが while (token = lexer.read) != EOF ... end 的な書き方してて嫌な気持ちになったので他にまともな書き方がないか調べました. どうし…
ganmacs/minaraigithub.com 作りました. ansibleとitamaeの名前を出しましたがお手本にしたのは @r7kamuraさんが作ったr7kamura/serverkit · GitHub というgemです. 動機 これが欲しかったわけではないんですがgem作ったことなかったし作りたいものもなか…