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 をクラスタモードで動作させようとしたらなぜか上手く動かなかったのでチケットにして報告しておいた.

Google Compute Engine

訳あって Google Compute Engine で遊んでいる.後発なだけあって,EC2 よりも整理されているイメージ.できることは同じだけどもね.

2014/10/1 - 2014/11/3

常用している Google App Script のアップデート Gmail の古いメールを自動的にアーカイブ行きにするスクリプトを動かしていたのだが,あまりにも属性を参照しすぎているせいか,実行速度が遅くなっていたので,改善した. 改善前の挙動は以下の通り: Inbox …

TOFU

TOFU でご飯たべながら Nettiza の GLOOM TABLEというのが Secondary Index を上手く張れて良いらしいという話をしていた.

msgpack-java hakathon

突如として frysuki さん,taroleo さん,haj さんと集まって msgpack-java hakathon が開催された. お酒飲みながら v07 の Value 型のテストを書いたら夜中の3:00くらいになっていた.

Nexus 5

決めた,買うぞ. 購入手続き完了. 出荷されたみたい. 久しぶりに Android 熱が上がってきた気がする. 夕ご飯のお店. うまい.

サンフランシスコ市内

final な Factory クラス

Factory クラスが final クラスになっているために,テストが大変書きづらい状況に遭遇した.final じゃなかったら,override して mock オブジェクトを返せるのだけど.

29(火)

初 Symantec 社訪問.YARN の JIRA が 2000 を超える.一方で,Tez の JIRA は 1000 オーバー.勢いがあるね.

28(月)

RM HA のドキュメントを書いた.

HBaseZeroCopyByteString

今日は protobuf のコードと格闘していた.protobuf で宣言された bytes は全て ByteString クラスにマッピングされるのだが,ByteString クラスには 1 つ問題がある.デフォルトでは wrap メソッドを持たないため,copyFrom メソッドを用いる必要があり,ゼ…

22(火)

Scala 2.11.0 がリリース .2.10.x でコンパイルできるコードは 2.11.x でもコンパイルできるらしい.ミドルウェア書いている人々にとってはかなりうれしい気がする(Spark とか Play とか msgpack とか...).

21(月)

まるまる寝ていた次の日は元気に活動ができる. 後輩の研究の話を見ていた.システム系の研究は前提条件と課題設定のところで5割くらい決まる印象.実装コストが重いのも特徴か.アルゴリズムは技勝負(アイデア)の比率が高い気がする.

17(木)

Hadoop でたまにテストがこける問題の再現が面倒なので,failchecker というシンプルな bash スクリプトを作った.テストがこけるまで特定のテストを回し続けて,失敗した時点で停止する.こうすることで,テストがこけたときのログを無事に回収することがで…

12(土)

睡眠メイン. RDD を,Spark から切り離して汎用パーツとして使えるようになったら,結構便利だと思うのだが,難しいだろうか.つまるところ,耐故障性を担保する一番面倒な部分をプログラミングインターフェースを切り離して再実装するという話になるから,…

11(金)

@k_oi に NameNode HA の RetryCache の挙動を説明していたら理解に甘いところがあったので,再度設計と意義を確認した. (Active) UUID + CallID を受け取って処理実行. (QJM) UUID + CallID 込みで Journal に保存. (Active) 処理結果を基にレスポンスを…

10(木)

まあ,なんだ,びっくりした.

7(月)

Hadoop 2.4.0 のリリース作業. rc0 が出ていたので動作確認.テストがこける件について報告.コミュニティの対応は早くて,もう trunk に修正パッチがマージされた. その後,その修正自体は 2.4.1 に含まれることになった.hmm,って感じ.

7(金)

Python によるデータ分析入門を読み始める.リスト内包表記のうれしさがイマイチ理解できていなかったのだが,解析の実例を見ながら見ていると大分便利だなと思う.1章の途中まで見ている感じだと,pandas は本質的には集合に対する操作なので,SQL にマッピ…

6(木)

久しぶりにおにく+ワインを頂いた.やはり美味しいモノは正義...

5(水)

DEIM2014 3日目. 東京に帰ってきてから魚料理を食べた.日本は飯が圧倒的にうまい. 夜明け SIGSPRING

4(火)

DEIM2014 2日目. 後輩の発表を聞いたり,議論したりしていた.間をぬってたまったパッチを消化しつつ,身体が限界を迎えつつあったので温泉+マッサージ+睡眠.懇親会ではインターンに来ていた方とお話.楽しい時間だった.

3(月)

今日から DIEM2014に参加. 発表完了.開始時にディスプレイが写らなくてだいぶテンパった.司会の方と同僚の方に助けられた.ポスターは,興味を持ってくださる方がかなり偏っていたせいか,非常に濃い議論ができた.お付き合い頂いたみなさま,ありがとう…

2(日)

明日の DEIM2014 に向けて,大坂に前日入り.寝過ごす心配を軽減する狙い.