C で使える LRU キャッシュ

C lib

uthash の example に LRU キャッシュの例が入っているので,これを自分のユースケースに特化して改造して利用した. uthash: a hash table for C structures github.com (備考) python における LRU cache のはなし. pylru は 2018/3 時点の最新版では,pu…

PowerPoint を Illustrator を介して eps に変換する

PowerPoint で作成した図を eps として利用する際に,以下の手順で変換すると楽であった. 図を選択して,右クリックして .xmf (ウインドウズメタデータフォーマット)で保存する. Illustrator で 1. で保存した .xmf を開く. eps として保存する. 特に,…

lldb-rust を使うときの注意と問題

Ubuntu 16.04 標準で apt install lldb したときに入る lldb-3.8 とあわせて rust-lldb 使うと,breakpoint の設定が関数名経由でできない(ソースコードの行数指定によるbreakは可能).さらに,すべてのstep out 実行がstep in実行になる.これは非常に不便…

Coursera Algorithm Part I を受講し終えた

Algorithms, Part I | Coursera を受講していて,先日無事に完了した.全体的に課題がかなり歯ごたえがあって,よい勉強になった.この講義は,全体的に応用を強く意識した説明がなされる.そのため,応用指向の人(わたしとか)に興味が持てる構成となってお…

いもす法

幅の重なりを取得する問題を解いている過程で,いもす法を覚えた.これは便利で速い.

ハーフマラソンを完走した

ハーフマラソンは3回目.今年は5-8kmを数回→10km→14.5km→21km(本番)と練習を組んだ.全く練習しなかった前回と比べ,タイムはかなり改善した.次は1時間55分を切ることを目標にしたい.

Mac OS X 上に rustfmt を install しようとした際にコンパイルエラーが発生する問題の回避法

要約 Mac OS X にて,homebrew を使って rust をインストールしていると,cargo install rustfmt を実行した際に失敗する. これは,homebrew 経由でインストールした rust コンパイラが,予期せぬ LC_ID_DYLIB の値を渡されるために発生する. この問題の回…

動的計画法

ここ数日,動的計画法の練習をしている.漸化式の立て方のコツが分からず苦戦していたのだが,kinaba 先生の動的計画法の考え方を読んだことがきっかけで,大分理解が進み,漸化式の立て方が分かってきた.漸化式も,問題から自明に導くというよりも,計算結…

Code Complete の上巻を読んだ

Code Complete の上巻を読み終えた.本書は,設計,コーディングの際に,保守性高く,かつバグが減らせるようにプログラムを書くにはどのようにしたら良いか,ということをテーマにした本である. これまで自分が暗黙のうちに行っていた,もしくは(恥ずかし…

輪講と Timeline Server

Timeline Server の Writer に実装が完成して投稿.よくよくみたら設計が決まっていたので作るだけだった.Reader はどうもインタフェース自体が存在しないように見える...これから設計しないとかな. 輪講に備えて Designing Distributed Systems Using App…

フルーツざんまい

Timeline Server の Writer を実装.フルーツでお腹がいっぱいになった.

Debian サーバをアップデート

うるう秒もあるので debian サーバをアップグレード.基本的には以下のコマンドを実行すれば良い. $ apt-get update $ apt-get upgrade 久々にはてなブログにアクセスしたら,プレビューの方法が変わっている気がする.画面が小さいと見づらいけど,基本的…

Hadoop の ShutdownHook

Hadoop はプロセス終了時の cleanup を行うために,ShutdownHookManager というクラスを用いている.このクラスは,JVM の Runtime#addShutdownHook を用いて実装されている.スレッド終了時に停止する順番は指定できないので,複数のスレッドが一気に停止す…

Yosemite にアップグレード

ちょっと不安だったのだけど,今しかないと思って Mac OS を Yosemite にアップグレード.残り2分からおよそ5時間かかったけども,どうやら /usr/local 以下にファイルが大量にあると発生する現象らしい.再起動後は得に問題なく動作.homebrew のバイナリを…

気になってた話が何個か本日一段落.年明ける頃には,やりきった感で溢れてそうな予感がしてる.来週は来週で色々あるので今一度タスク管理し直そう.

TreeMap と HashMap

Hadoop のコードを探索していて,不思議な場所を発見.見つけたのは,Map の values() が呼ばれて,かつキーの値によって順序が保証されるべきなのに HashMap を使っている箇所.テストが入っていて通過していて,わたしがリファクタリングしたらそのテスト…

設定を変えたのがきっかけで, Hadoop クラスタが動かなくなった.ううむ,mapreduce.framework.name が invalid だと怒られるのだけど,ちゃんと"yarn"になっている.何か不正な文字が xml に紛れ込んでいるのかな.

先日修正した GCE のスクリプトはちゃんと動いているようで,大分管理が楽になった.そういえば,Google が Inbox てのを出したみたいだけども,まだ invidation がない関係で動かしていない.試してみたいな.

11月は地味に忙しめなのだけども,先週今週がピーク.こういうときは風邪ひかないように気をつけよう.

睡眠

反動でがっつり寝てしまった.むむ.

BBQ と紅葉狩りしにお出かけ.楽しかった!!

OmniGraffle 6

出ていたのでアップグレードした.UI が変わって使いやすくなった.

db tech showcase 2014 で講演

db tech showcase 2014 で講演した.名前の通り,DB屋さんが多い印象だったので,もう少し入門よりの内容でも良かったかもしれない.taroleo さんの Presto 発表は,要点と事例と技術ポイントが分かりやすくまとめられていたので見習っていきたいところ.

はじめての VirtualBox

はじめて VirtualBox を使ってみている.VMware Player よりも,PV driver も入れやすいし,Windows 環境の完全仮想化ソフトウェアとしてはかなり良いんではないかな.商用利用も無料だ(VMware Player は商用利用する際には VMware Player Plus というライセ…

GCE の NVMe SSD

ちょっとまだベンチマーク中なので客観的なことは言えないんだけど,速い.こいつは速いよ.

ここ数日で Hivemall のコードを眺めていて,何点か PR した.Hivemall はコードがキレイでいじりやすい.

ベンチマークの手順

超当たり前なのだけど,だいたいいつもこんな感じでやってる. ターゲットを決める. 1 から動作環境・入力・処理内容・出力を特定する. 動作させる. ときおり上手くいかないので,2 を見直し→3へ.

Spark on Tez

Now it works on my local cluster!

Spark で SortBasedShuffle を有効にするには

訳あって Spark を動かしている.1.1.1 で最適化されたと評判の SortBasedShuffle (MapReduce と同じ Shuffle 方式)を実行するには以下のオプションを設定すれば良い. conf.set("spark.shuffle.manager", "org.apache.spark.shuffle.sort.SortShuffleManage…

Spark

Hadoop 2.5.1 + Spark on YARN をクラスタモードで動作させようとしたらなぜか上手く動かなかったのでチケットにして報告しておいた.