タグ

ブックマーク / kuenishi.hatenadiary.jp (22)

  • 長時間作業するための快適そうなキーボードまとめ - kuenishi's blog

    学生時代は大学の情報センターにHHKBが常備され、研究室でも HHKB Pro2 をずっと使っていた。前職時代に手首に違和感を感じたこともあったが、今の職場で同僚が Kinesis を使っていたので 在宅勤務環境を整備した - kuenishi's blog の際に私も Kinesis を使うことにした。私自身特に肩凝りで悩んだことはなかったのだが、これで随分ラクになったものだ(騒音は大きくなったが)。さて山口君が ErgoDoxを購入して人生がバラ色になった - YAMAGUCHI::weblog のを皮切りに、某所で多くのキーボードが取り上げられた。私自身次のキーボードを買うまでに覚えておけるわけがないので、ここにそれをまとめておくことにする。 私自身は打鍵感に特に拘りはなくて、肩がある程度開くようになっていればそれなりに満足して使える。プログラムを書くことは多いけど、文字をタイプする

    長時間作業するための快適そうなキーボードまとめ - kuenishi's blog
  • 在宅勤務環境を整備した - kuenishi's blog

    2年前に一念発起して組んだマシンがあって、Core i7と32GBものRAMを節操無く積んでいたもののファンの音が気になるとか子供が邪魔をするとか、ディスプレイが小さいとか理由であまり使っていなかった。引越を機会に自分の仕事場がつくれそうなので、これを機会にデスクトップ環境をもう一度整備した。 ディスプレイ やはりこれが一番大切だろう。必須条件は解像度がいわゆる4Kあること。MacBook Proを使ってRetinaの美しさに慣れてしまった今、これまでの普通の液晶モニタでは何インチあっても意味がない。もともと液晶のサイズそのものではなく、解像度に興味があったので必然だ。当は海のむこうだと$500とかそういうレベルで変えるらしいのだが、日に住んでいるのでなんか出てるかなーと思ったらASUSからPB287QとIODATAからM4K281XBがそれぞれ出ていた。ぼくは海よりも深い理由からAS

    在宅勤務環境を整備した - kuenishi's blog
  • なぜErlang/OTPなのか - kuenishi's blog

    このテーマ自体はさんざん語り尽くされていることである。たとえば山口君によるWhy Erlang? というブログ記事の翻訳や、戦闘機Programming Erlang: Software for a Concurrent World (Pragmatic Programmers))を読めば世間でいわれていることはよく分かる。もしくは、同僚が最近書いたソフトウェアデザインの記事を読んでもらってもよいだろう。 Software Design (ソフトウェア デザイン) 2014年 02月号 [雑誌] 出版社/メーカー: 技術評論社発売日: 2014/01/18メディア: 雑誌この商品を含むブログ (3件) を見る 私自身もErlangに出会ってから5,6年が経とうとしているが、当初はそのよさがよくわかっていなかったように思う。しかし、仕事で高可用性が要求される複雑な分散システムに携わるよう

    なぜErlang/OTPなのか - kuenishi's blog
    nsyee
    nsyee 2014/02/17
  • poolcatというライブラリを公開した - kuenishi's blog

    以前gen_queueというライブラリを公開したが、またライブラリ公開のお知らせだ。今回作ったのはpoolcatという、いかにもpoolboyからパクったような名前であるが、poolboyはネーミングの参考になった。 これも大したものではないのだが、ワーカープール+タスクキューのようなものをやるライブラリを見つけられず、どうも同じものを何度も再実装していたのでgen_queueを使ってライブラリ化してみたら思いの他便利で、同じレポジトリの3箇所で既存のコードを大幅に削ることができた。デバッグの手間も省けるというものだ。改めてOTPの勉強になったという…ちょっと調べた限りだとRabbitMQの中にも似たような機能があるし、Riak CSの中にもある。たしかRiakの中にも似たようなものを作ってるはずで…と、まあ再発明よくないですよね。という結論に。 poolboyじゃダメなん? poolbo

    poolcatというライブラリを公開した - kuenishi's blog
  • msgpack-erlang 0.2.7 をリリースして新仕様に対応しました - kuenishi's blog

    MessagePackハッカソン #3が開催され、Bashoで場所を提供したので僕も久しぶりになんかやることにして、そういえばmsgpack-erlangの新仕様の実装が途中だったのでやることにした。で、できた。というわけで、さまざまな事件を乗り越えて策定された新仕様をErlangのサンプルコードつきで解説しよう。新仕様の目玉はふたつあるので、それぞれ解説しておきたい。 文字列型 これまでMessagePackは「ほぼJSON互換」だったのだが、その正体は、Cらしくバイナリ型(raw)を <<101XXXXX>> とか 0xDA, 0xDB で表現していた。一方JSONにはバイナリ型はなくて、文字列はUnicodeでなければならないので、生のバイナリをそのままJSONに持っていくことはできなかった。で、新しい仕様ではこれまでバイナリ型に割り当てられていたところを含めて、新しく文字列型をつく

    msgpack-erlang 0.2.7 をリリースして新仕様に対応しました - kuenishi's blog
  • 技術を実用化するということ - kuenishi's blog

    技術を実用化するということについて、真剣に考えれば考えるほど分からないことばかりが出てくる。よく基礎科学の分野で何の役に立つかわからないので仕分け対象になってしまうとか、浮世離れした数学者はこの世に必要なのかといった問題で、その技術とか科学は何のためにあるのか?いまそこに投資する価値はあるのか?という至極簡単な問題に到達する。 簡単に言えば何がなんの役に立つのか全くわからない、「生まれたばかりの赤子がなにを成し遂げるのか分かりますか?」という偉人の言葉をどこかで思い出す。 岡野原さんが書いているように現実世界の問題を解決して、この社会を一歩でも改善すればその技術は役に立った、実用化に成功したということだと思う。そのための経路は沢山あって、OSSの実装から始まるものもある。論文から始まるものもある。そしても、最初にアイディアを誰かに伝えることが第一歩というとてもいい話だ。 私は分散システムの

    技術を実用化するということ - kuenishi's blog
  • モダンErlang/OTP開発環境 2013 - kuenishi's blog

    とりあえずモダン○○といっとけばいいかなと思ったが、モダニズムとか言ってた頃からモダンという言葉には「最近の」「ナウい」とかその程度の意味しかないのでそんなにありがたい話ではないことにご注意いただきたい。大正とか昭和初期のオバちゃんが「いや〜モダンやわぁ〜」とか言ってたのと同じだ。今ではもうばあちゃんだな。 エディタ 世間にはエディタを巡って宗教対立が発生し、場合によっては宗教戦争になるそうだがErlang/OTPの世界においてはそれは起き得ない。なぜならEmacsがデフォルトの開発環境として推奨されており、メジャーモードが処理系のディストリビューションに含まれているからだ。さまざまな便利ショートカットが用意されているので M-x tempo- と入れて補完されるものを眺めるとよいだろう。 パスを通して (require 'erlang-start) (require 'erlang-fl

    モダンErlang/OTP開発環境 2013 - kuenishi's blog
  • memcached API で Riak を叩けるようになりました - kuenishi's blog

    その名もダイコーン。まずはget, set, delete だけなんですが、とりあえず適当に作ってもMemcachedの速度の1/40くらい出ます。そのうちいろんなデータベースのAPI備えて、クライアント側を書き換えなくてもRiakを叩けるようにしたいなーと思っています。memslapの結果だと $ ./clients/memslap --servers=localhost:11211 --non-blocking --concurrency=10 とすると memcached dicorn/mem dicorn/riak 1.987 2.705 88.487 てな感じです(単位は秒)。 構成としては1プロセスで動くただのプロキシで、メモリもCPUもほとんど使いません。Memcachedがいたところに代わりに立ち上げて、Riakの場所を教えてあげるとそれだけでMemcachedとして動いて

    memcached API で Riak を叩けるようになりました - kuenishi's blog
  • 技術書を読む読む詐欺 - kuenishi's blog

    この手の「俺は今からこれを読んでログを残すぜー!」的宣言は過去に何度かやって当然失敗してきたのでそんなに期待しないで頂きたい。 Principles of Distributed Database Systems これは御徒町と名乗るトランザクションおじさんが主導して僕も便乗させていただいている。分散データベースの歴史をANSIの頃からちょいちょい触れながら、どういう風に最適なクエリを実行できるかにフォーカスしている感じのSQLとかクエリプランニングとか最適配置とか集合の分割とかそういう話が多く、CAP定理とかトランザクションとかはあまり出てこない。途中までしか読んでないのでそんな印象だけど、今後どうなるかな…?! 860p Principles of Distributed Database Systems 作者: M. Tamer Oezsu,Patrick Valduriez出

    技術書を読む読む詐欺 - kuenishi's blog
  • ひとりでやるRiak Advent Calendar 2012 day8 - GitHub:pagesで動くRiak - kuenishi's blog

    これを書いているのは2週間遅れなわけだけだが面白いのは、書かなくなるとパタッとPVが下がって検索からのトラフィックだけになるところだ。Hackとか入門ばかりではつまらないので、そんじょそこいらのKVSと違っていかに実績があるか実はみんな使っていたことになるRiakの話にしよう。 毎年3月にエンジニア向けとしては世界最大級のカンファレンス、Erlang Factory SFが開かれている。そこでGitHubエンジニア @jnewland が、GitHub:pagesの裏側で動いているRiakとWebmachineについてプレゼンをした。そう、みんな大好きGitHubのpagesです。動く @jnewland を観たい方はinfoqのページで動画も公開されているのでそちらをご覧いただきたい。 もともとpagesはnginxの静的ファイルホスティングを使って、更新がある度に設定ファイルを更新し

    ひとりでやるRiak Advent Calendar 2012 day8 - GitHub:pagesで動くRiak - kuenishi's blog
  • 最近のネタ3連発 - kuenishi's blog

    立て続けにおもしろそうなネタに当たったので適当にコメントを。はてブでもいいんだけどね。 スケーラブルなシステムのためのHBaseスキーマ設計 17, 18枚目のスライドで爆笑してしまいその先は読んでない...といいつつ、22枚目でHBaseの使いどころについてはちょいと異論があり、データが沢山あるだけなら別に選択肢はあるわけでもうちょっと補足すると、HBaseの使い所は 数がいくらでも膨らみ、 Writeのレイテンシが割と要求され ネットワークまで含めてちゃんと設計できて いざというときにCloudera Managerなしでも5種類のサーバープロセスを面倒みれて KVだけのデータモデルだと若干物足りなくて JVMがGCで固まるなんてものともせず、 キーの順にシーケンシャルアクセスをしたい ときだけ。異論は認める。そうじゃなかったらRiakを使いましょう(ぇ というのは冗談だが、論理設計の

    最近のネタ3連発 - kuenishi's blog
    nsyee
    nsyee 2013/07/06
  • 数学的推論が世界を変える - kuenishi's blog

    最近だとFPGAでTCPのプロトコル処理から全てをやってしまって、CPUに行ったら負けみたいな世界がだんだんと表に出てきている。データベースやインフラ、プログラミング言語の技術は徐々に話題になってきていて、どういうコンピューティング環境なのかは見えてきた。 しかし、そこで動いているという肝心のアルゴリズムが分かっていない。どうやら数学できる人や、理論物理をバリバリやってた人なんかがある日急に転職して年間で何十万ドルとか何百万ドルを稼ぎ始める。うーん怖い世界、未知の世界。 どうやら世界中のデータを集めてきて機械学習をやったりムズカシー計算でデリバティブのお値段を評価したり…コールだのプットだのユーロピアンだのどうのこうの。 数学的推論が世界を変える―金融・ゲーム・コンピューター (NHK出版新書 394) 作者: 小島寛之出版社/メーカー: NHK出版発売日: 2012/12/06メディア:

    数学的推論が世界を変える - kuenishi's blog
  • そろそろGoについて一言いっておくか - kuenishi's blog

    昨日、GoCon(ごうこん)なるイベントに参加してきた。以下に続く話は5割以上がフィクションなので虚実織り混ざっている様を楽しみながらお読みいただけたらと思う。 最初に発表されたニュースを聞いたときは、Goはよい車輪のよい再発明で、結局GoogleC++Javaを使い続けるだろうし、世間はGoogle独自言語としてみなすのだろうなという予感はあったし、2010年だから2011年ころはそういう見方をされていたように記憶されている。私もそういうものだと思っていたし、特に関心を持つこともしなかった。いま思えば正常性バイアスだったのだろう。 実際に昨日のカンファレンスで一番興味深かったのは鵜飼さんによるGoの解説だった。比較対象がC++, Python, Javaだったことが最も印象的で、普段からErlangやOCamlといった関数型言語に接していた身として新鮮だった。話を聞くうちにGoogl

    そろそろGoについて一言いっておくか - kuenishi's blog
    nsyee
    nsyee 2013/04/14
  • 【緊急】 Riak Cloud Storage が OSS になりました【速報】 - kuenishi's blog

    BashoのRiak CSがオープンソースになり、さらに、同時に Riak CS 1.3.0 がリリースされました。Riak CSの日語の紹介もあります。概要を知りたいというひとは第五回クラスト研の僕の発表スライドもよいかと思います。 今まではトライアル版と申しこめば無料で使えていましたが、これからはバグを見つけたりすると自分で直してPull Requestすることができるようになります。素晴らしいですね。Bashoジャパンで開発した機能もいくつか入っているらしいですよ。 ドキュメントにあまり時間をかけられなかったらしく(他人ごと)、公式のドキュメントもなかなかなので、ヒジョーにニッチなQuickStartをここに書いておきます。もう開発者向けといっていいレベル。Tarballも配布されると思うので特に心配はしていません。基的には公式のQuickStartと同じですが、ちょいと長いので

    【緊急】 Riak Cloud Storage が OSS になりました【速報】 - kuenishi's blog
  • ./configure地獄に陥っている君へ - kuenishi's blog

    C++やCでプログラムを開発しているときに、依存ライブラリやら何やらの環境を沢山用意したくなりますよね?富豪ならここでVMware ESXiやKVMを使うところでしょうか。LLerなら、たとえばRubyPythonにはrbenvやvirtualenvがあります。FreeBSDを使っている人ならjailを使う場面ですね。ちょっと器用な人ならchroot(8)を使いこなしているかもしれません。しかしjailは私には窮屈だし、情弱な私はまさに今pficommonやらで困っていました。つまり、 ユーザ空間で 大して苦労もせずに いろんなUnix系OSで どんなものが入っていてもとりあえず 環境をコロコロ切り替えたいのです。これを手作業でやろうとすると沢山の環境変数をシェル毎に毎回exportする羽目になります。ld_configとか( ゚Д゚)ハァ?という感じですよね。rvmなんかよくできている

    ./configure地獄に陥っている君へ - kuenishi's blog
  • node.js vs Erlang (ネタ) - kuenishi's blog

    ついぞ最近node.jsなんてのがでて、繁華街のあちこちでチヤホヤされてる。そんなときに、モヒカン族Erlang村(erlang-questions)に「node.jsってどうなの?」的燃料が投下されたわけですよ。これは炎上しそうだ…と追いかけてたら、ネタどころか案外真面目なハナシばっかりだったのですが。まずは真面目に問いかけをする純朴な成年(想像)。 「Erlang好きだし使ってるんだけど、Erlangとnode.jsてそれぞれどういうジャンルがすごいの?RabbitMQとかejabberdみたいなのつくろうとしたらどうなるの?簡単なチャットサーバーつくるくらうならnode.jsのが断然簡単だよね?分散システムで使うなら断然違うとか? Ulf Wigerによると、ブロックする関数の問題を簡単に解決してくれるとか書いてあるみたいだけど (link)」 おっお。素直な質問。これはみんな釣られ

    node.js vs Erlang (ネタ) - kuenishi's blog
  • Riakについてちょと調べたよ - kuenishi's blog

    Python Hackathon #3で、今手元で作っているモノのバックエンドに使えないかなぁと思ってRiakを調べてみたのでメモ。Riakは、bashoが作っているDynamoクローンにHTTP/JSONなインターフェースを出して、MapReduceもできるようにしたというキワモノ。でもConsistent HashingとMapReduceって激しく相性悪いと思うんだけどどうなっているんだろうという辺りが疑問点。 とりあえずインターフェースはJSON/HTTPだけど、Erlang APIもある。 Riak's primary programming interface is JSON over (RESTful) HTTP, which is as close as you can come these days to a universal language and protocol

    Riakについてちょと調べたよ - kuenishi's blog
    nsyee
    nsyee 2010/06/20
  • 基盤系プログラマ - kuenishi's blog

    いわゆる基盤系のエンジニアリング技術について、私の場合は、今の会社に入社して2年間で徹底的に叩き込まれました*1。C言語なんかは独習の範囲内であって、コンピュータに関する基礎的な知識が不足していると痛感しています。一方、Computer Scienceに関する基的なトピックはシンプルなものが多いので、数学の素養と、大学で詰め込まれた技術があれば何とかなる感じがしています。 飽くまでも、ですが、OSとかRDBMSとか、全ては手段です。ビル建設でいえば生コンのようなもの。砂利とか。肝心なのは、自分が欲しいビルの理想をきちんと描き、実現までの手段・手順を整理する。理想としているビルができているかを確かめる。難しいのは、「そんなビルが技術的な観点から当に建設できるのか?」を確かめながら進むこと。 あるいは、それらの技術を全て、日語にしてきちんと表現すること、設計を周囲に伝えて合意をとること、

    基盤系プログラマ - kuenishi's blog
  • mnesiaのレプリケーションがどうなっているのかちょっと調べてみた - kuenishi's blog

    問題 N-act構成にしたとき、ネットワークが切れてまたつながった場合にデータ不整合が起きるか。復旧の方法はあるか。 結論 起きる。簡単な復旧方法はなさげ。 Mnesiaレプリカのあるノードが一時的に通信不能になり、その間にMnesiaオリジナル*1が不整合の起きるレコード更新を行うと、Mnesiaレプリカが復帰できない。 set_master_nodes/2は微妙(ざっとリファレンスを見た限りでは、不整合を解決する方法はこれくらいしかなさげ) 使ったマシン dom0 -> -name a@192.168.0.72 domU -> -name a@192.168.0.31 どちらもdebian lenny@linux-2.6.26-xen/ xen 3.2(要はlenny最新版) まずは準備。 dom0側 [kuenishi@] $ erl -name a@192.168.0.72 -se

    mnesiaのレプリケーションがどうなっているのかちょっと調べてみた - kuenishi's blog
  • Kawasaki Code Camp #4 in Harumi - kuenishi's blog

    いつにも増して密かに開催されたCode Camp #4 in Harumiに参加してきました。今回はPython旅館から名前を変えてCode Campとなって初めての回だったわけですが、前回と大して変わらずグダグダなまま進行して…と思っていたら、今回は大きな成果が出ました。 ひとつは、Tornado翻訳です。ちょうど当日にTornadoが発表され話題になっていました。初めはいつも通り「Tornadoどうなの?」的なノリだったのが、id:Voluntasの無茶振り「ドキュメントを翻訳してよ」になり、そこからエネルギーの固まりことid:ymotongpooにエンジンがかかり、結局翻訳が完了してしまいました。横から見ていてものすごい盛り上がりだったのでなんだか割り込めずにいました。渋川さんによる詳細なまとめもあります。 二つ目は、…。PythonやErlangは非モテ系だし、CSS Niteを初

    Kawasaki Code Camp #4 in Harumi - kuenishi's blog
    nsyee
    nsyee 2009/11/10
    peryl