タグ

ブックマーク / higepon.hatenablog.com (23)

  • サイボウズ・ラボ株式会社を退職しました - Higepon’s blog - Mona OS and Mosh

    2012/1/15 をもちましてサイボウズ・ラボ株式会社を退職することになりました。 お世話になったみなさん当にありがとうございました。 各分野でのトップレベルのエンジニアに囲まれた 4 年間は当に刺激的でした。ラボでは良い上司(畑さん)に恵まれラボのミッションに沿う形で、比較的自由に研究・開発に取り組むことができました。外に出ているだけでも Mosh / Mio / outputz など。どのプロジェクトでも自分が実現したいこと、自分の能力と真摯に向き合う必要のあったかけがえのないプロジェクトでした。この 4 年間に学んださまざまなことは、今の自分を形成する「成分」の中でも大きな割合を占めていることを感じています。サイボウズ・ラボおよびサイボウズのみなさま当にありがとうございました。 1 月末から新しい職場でソフトウェアエンジニアとして新たな一歩を踏み出します。みなさま今後ともよろ

    サイボウズ・ラボ株式会社を退職しました - Higepon’s blog - Mona OS and Mosh
    kazeburo
    kazeburo 2012/01/16
    お疲れさまでしたー
  • 分散 Key-Value ストア mio-0.0.1alpha をリリースしました - higepon blog

    分散 Key-Value ストア mio-0.0.1alpha をリリースしました。(mio-0.0.1-alpha.tar.gz) Mio とは何か? 範囲検索(range query) が出来る KVS です。例えば「key が "1000"〜"2000" にあるものを昇順に10件取り出す」という検索が可能です。 Mio は memcached 互換プロトコルを実装しているので、多くのプログラミング言語から簡単にアクセスする事が可能です。(後述のコード例参照) Mio のアーキテクチャ Mio は Skip Graphs(スキップグラフ)というアルゴリズムに基づいて実装されています。詳細はErlang 分散システム勉強会での発表資料 Mio - a distributed Skip Graph based orderd KVSをご参照ください。 インストール 最新の Erlang をイ

    分散 Key-Value ストア mio-0.0.1alpha をリリースしました - higepon blog
    kazeburo
    kazeburo 2010/09/07
    Cache::Memcached::Fastでもだめとかだっけ
  • memcached の空間効率 - higepon blog

    memcached クライアントを実装してみて気づいたというか意識したこと。 オブジェクトのシリアライズはクライアントライブラリやユーザー任せなのだ。例えば Perl では Storable 。言うなれば汎用シリアライザ。 普段は全く意識せずに与えられた汎用シリアライザで扱えば良いと思う。 ただし格納するオブジェクトに特性があるときはカスタムシリアライザを作って空間効率を追求してみるのも面白いかも。 特性とは例えば格納するオブジェクトが 特定の種類のみ 特定の値域のみ などの場合。 より具体的には ascii 文字列だけ 数値だけを格納してその範囲は 8, 16, 32, 64bit に収まる 取り得る値が enum のように限られる など。 うまくカスタムシリアライザを作れば格納時のオブジェクトサイズをぐっと小さくできる可能性がある。 この方法に対する考えられる反論は メンテナンス性の問

    memcached の空間効率 - higepon blog
  • ぼそ - higepon blog

    Cache::Memcached::Fast 0.16 はサーバーから返却された {Key, Value} ペアの Key を見ずに、引数で渡されたスタック上の Key を参照している。

    ぼそ - higepon blog
    kazeburo
    kazeburo 2009/07/23
  • Key で sort 済みの Key-Value Storage を作り始めた - higepon blog

    タイトルの通り Key で sort 済みの Key-Value Storage を作りはじめました。 良くある DHT だと Key の Hash を取る事で分散させるので順序情報を失ってしまうのですが、それを Skip Graph という仕組みで順序情報を保持したまま分散させることが可能になります。 sort 済みだとうれしいのは KVS に対して Range Query が可能になること。 例えば、empno-999 以上の value リストを 最新10件、KVS に要求するみたいなことが出来るようになります。 従来の KVS では上記のような Range Query は不可能だったので、そこは RDBMS に任せていたと思うんですが。(RDBMS で Range Query 後、Key のリストを KVS に投げるなど) この辺りの RDBMS の負荷と分散しづらさを KVS 側

    Key で sort 済みの Key-Value Storage を作り始めた - higepon blog
    kazeburo
    kazeburo 2009/06/15
  • 息子が生まれた - higepon blog

    今日、息子が生まれた。この日をずっと待ち望んでいたので当にうれしい。 がんばってくれたよありがとう。僕が何回も風邪を引いているのに、妊娠中一度も病気をしなかったあなたを尊敬します。 これからは出来る限り僕ががんばるよ。 息子へ 君がよく見回せば、世界は楽しいことであふれている。当だよ。じーっと目を凝らしてよく見てみて。 ただし、楽しさにたどり着くためには行く手を遮るものや、思い通りに行かないこと、自分の力が及ばない範囲の困難もあるかもしれない。もし僕に似たのならば不器用すぎてたくさん失敗し、嫌になって投げ出したくなることもあるだろう。 そんなときは、焦らずゆっくりと少しずつ自分のペースでいいから、押したり、引いたり、避けたり、ジャンプしたり、時には潜ったりして、自分の向かいたい楽しい方向に進んでくれると良いな。 生まれる前は、そんなことを君のお母さんと話して名前を決めたんだよ。

    息子が生まれた - higepon blog
    kazeburo
    kazeburo 2009/06/05
    おめでとうございまs−
  • ひげぽん OSとか作っちゃうかMona- - post-commit hookを試す

    Subversionではコミットの前後などに hook してスクリプトを実行する機能があります。 スクリプトはリポジトリ側のhooks/ディレクトリに配置し、リポジトリ側で実行されます。 hookポイント以下のようなものがあり結構細かいです。 start-comit pre-commt post-comit pre-revpop-change post-revrop-change pre-lock post-loc pre-unlok post-unlck 早速やってみましょう。 まずはテスト用のリポジトリを作成します。 cd tmp mkdir testrepos svnadmin create ~/tmp/testrepos mkdir src cd src svn checkout /home/taro/tmp/testrepos . svn checkout file://home

    ひげぽん OSとか作っちゃうかMona- - post-commit hookを試す
    kazeburo
    kazeburo 2007/02/16
  • diredあれこれ - higepon blog

    diredに大分慣れてきたので、dired-xのinfoを読んだり細かい設定をしました。 覚えるべきは、C-x C-jとwdiredかな。 sorterは設定しないとストレスがたまる。 ;; dired-x C-x C-jなど ;; C-u C-x C-fでバッファ中の (add-hook 'dired-load-hook (lambda () (load "dired-x") ;; Bind dired-x-find-file. (setq dired-x-hands-off-my-keys nil) ;; Make sure our binding preference is invoked. (dired-x-bind-find-file) )) (load "dired-x") ;; dired でサイズや拡張子,更新時間などでの並び替えを切り替えることができる (load "so

    diredあれこれ - higepon blog
  • JavaScriptの編集はecmascript-mode.elよりもjavascript.el? - higepon blog

    EmacsでのJavaScriptの編集をするときはecmascript-mode.elを使っていたのですが、海外のサイトでjavascript.elの評判がよさそうだったので使い始めています。 (add-to-list 'auto-mode-alist '("\\.js\\'" . javascript-mode)) (autoload 'javascript-mode "javascript" nil t) (setq javascript-indent-level 4) 追記 2008/6/27 この情報は古くなっていますので EmacsでJavaScriptソースを快適に読むために:js2-modeとエグズーベラントCtags - 檜山正幸のキマイラ飼育記 http://d.hatena.ne.jp/m-hiyama/20080627/1214549228 あたりを参照すると良いで

    JavaScriptの編集はecmascript-mode.elよりもjavascript.el? - higepon blog
  • 空前のEmacsブーム(遅 - higepon blog

    id:naoya:20050905:1125928702にもある通り、はてな社内はEmacsブームです。 私は以前からEmacsを使っているのですが、独学だったので基機能を使いこなせていないことに気づきました。 BSキーや矢印キーを使うヤシはxxx!!。とかid:naoyaが言うので。 ↓のようにBSキーを押さないようにしています。 しかし C-sやC-r中に、C-dを押すとメインバッファのほうが消えてしまうのは何とかならないのだろうか・・・。 いろいろ試したのだがMeadowの挙動?。

    空前のEmacsブーム(遅 - higepon blog
  • 奥さんがJoel On Softwareを読みはじめた - higepon blog

    奥さんがJoel on Softwareを読みはじめた。 技術者が欲しかったら「ハッカーと画家」と「Joel on Software」をとりあえず読んで、プログラマの心理をある程度理解すればいいだけなのかもしれないw を読んで、プログラマのとしてプログラマの心理を理解するために読んでみたくなったとのこと。 ちょwwwおまwwwwプログラマじゃないし ついでに「ハッカーと画家 コンピュータ時代の創造者たち」も読んで欲しいな(ぉ。 id:higepon:20051223:1135342695で僕が絶賛したときには全然興味を持っていなかったのですが、id:naoya恐るべき影響力。 追記 声もかけられないほど真剣に読んでいる。ゾーンにはいったっぽいw。 追記2 ユニコード勉強するとか言い出したwwww 追記3 「面倒だろうけど仕様書は書いたほうが良いよ。そのほうが生産性が上がるから」って言われ

    奥さんがJoel On Softwareを読みはじめた - higepon blog
    kazeburo
    kazeburo 2006/05/21
  • shell-command-to-string - higepon blog

    昨日作ったLispで困っていたのが、実行した外部コマンドの出力を変数に入れる部分です。 結局*perldoc*というバッファを経由したのですが、shell-command-to-stringというfunctionがあることが通りすがりさんの改良版を見ていて気づきました。 M-x describe-functionとM-x describe-key, M-x describe-bindings以外に、こんな関数ないかなぁとかって調べる方法を確立できていないのが問題だなぁ。 通りすがりさん提供版はモジュールが存在しないばあいのエラー処理や、モジュール文字列の範囲判定などが改善されているようです。 (put ’perl-module-thing ’end-op (lambda () (re-search-forward ”??=[a-zA-Z][a-zA-Z0-9_:]*” nil t))) (

    shell-command-to-string - higepon blog
  • 2006-02-01

    id:higepon:20060131:1138681298の続き。 etagsを使おう(nanasiさん) xyzzyの例(http://d.hatena.ne.jp/miyamuko/20060131) などの情報をいただきました。 というわけで id:miyamukoさんのxyzzyの例をまねして、初めて実用的なEmacs Lispを書いてみました。 ;; cperl-modeでモジュール名にカーソルを合わせてM-.でソース開く (setq perl-find-module-libdir "x:/oop/lib") ; libディレクトリのPath ;; M-. (add-hook 'cperl-mode-hook (function (lambda () (define-key cperl-mode-map "\M-." 'perl-find-module) ))) (defun

    2006-02-01
    kazeburo
    kazeburo 2006/02/02
  • ひげぽん OSとか作っちゃうかMona- - プログラマのタイピングの速さ

    タイピングが苦手な人はこちらをどうぞ。 同僚のid:onishiとid:mizuno_takaakiと昼べているときに、タイピングの速さの話になりました。 プログラマ同士でなかなか比べることがないと思いますが、たとえばid:naoyaんはかなりタイピングが速いです。(Emacsやシェルの操作をいろいろ知っているのもあると思いますが)。 というわけでプログラマの皆さん、タイピング速度をトラックバックやコメント欄で教えてください。 http://www.e-typing.ne.jp/の「腕試しチェック」で計測できます。 ちなみに僕はこんな感じで、全国ランキングを見る限りではぜんぜん速くないようです(涙 個人的にはid:yaneuraoさんや、arinoさん、id:mjtさん、id:ryoko_komachiさん、id:softetherさんあたりのタイピング速度にはとても興味があります。

    ひげぽん OSとか作っちゃうかMona- - プログラマのタイピングの速さ
    kazeburo
    kazeburo 2006/01/17
  • Apacheモジュールの処理時間を計測 - higepon blog

    Apacheモジュールの処理時間を計測する方法を少しでも楽にできないかと考えてみました。 使い方 後述のprofile.cを includeします。 モジュール中のハンドラにおいて、測定したい箇所で、下のように書きます。 2番目の引数は、結果表示時の並び順に使っています。 SET_TIME_PROFILE(r, "1"); 結果を出力するのはlog_transactionのハンドラ辺りでよいでしょう。 out_time_profile(r); とすれば結果が表示されます。 結果表示例 [notice] __profile__( sec):1mymodule_type_checker:1135155196 [notice] __profile__(usec):1mymodule_type_checker:745692 [notice] __profile__( sec):2mymodule_

    Apacheモジュールの処理時間を計測 - higepon blog
  • Apache 2.2リリース と mod_proxy_balancer - higepon blog

    Apache 2.2がリリースされました。 そして、mod_proxy_balancerというものが。 This module requires the service of mod_proxy. It provides load balancing support for HTTP, FTP and AJP13 protocols Thus, in order to get the ability of load balancing, mod_proxy and mod_proxy_balancer have to be present in the server. mod_proxyの拡張機能でロードバランシングをしてくれるらしい ロードバランスのスケジューラアルゴリズムが2種類ある。 リクエスト数で重みづけスケジューラ トラフィック量での重みづけスケジューラ mod_statusを併

    Apache 2.2リリース と mod_proxy_balancer - higepon blog
    kazeburo
    kazeburo 2005/12/02
    人柱募集中
  • Catalyst入門 と お作法について

    id:naoyaの技術発表(10月15日の技術勉強会 - はてな技術発表会日記 - 機能変更、お知らせなど)。 これを聞いて、Catalyst面白そうということに気づいて触ってみています。 インストールと簡単な動作 Perl の MVC フレームワーク Catalyst に入門してみた : NDO::Weblogを一通り読めば分かると思います。 私の環境だと sudo perl -MCPAN -e 'install Class::DBI::mysql' を追加で行う必要がありました。 お作法 Catalystではどう書くのが正しいか等、迷う部分が多々あります。 いろいろ調べた結果、これだと思うものを紹介していき、標準化(?)のたたき台になればよいかなと。 URLマッピング CatalystのURLマッピングはとても柔軟です。たくさん種類があってこまりますw。 直接URLを指定 /foo/b

    Catalyst入門 と お作法について
    kazeburo
    kazeburo 2005/10/18
    勉強になるっす
  • 実践 prototype.js [4] rico.js のEffect.Size - higepon blog

    今日は prototype.js を利用した Effect を調べていました。 prototype.jsの配布元からもリンクされていますが Ricoのデモがすごいことになっています。 百聞は一見に如かず。 例えば、「CINEMATIC DEMOS」の中にある「Animate Size & Position」を見てみましょう。 画面下のほうにある「Size & Position Me」をクリックしてみてください。 div がぐにょーんと大きくなりながら、移動します。(我ながら表現力がないなぁ) また「DRAG & DROP DEMOS」もかなり熱いです。 「Custom Draggable」などは、ここまで出来るのか・・・と思ってしまいます。 さて今回、目をつけたのはデモ画面の左上にいつもある「Hide demo panel」というリンクです。 これをクリックしてみると分かるのですが、今まで

    実践 prototype.js [4] rico.js のEffect.Size - higepon blog
  • ひげぽん OSとか作っちゃうかMona- - 実践 prototype.js [1]

    今話題(?)の prototype.js を使ってみました。 うれしいこと Class.create(), extendは最高。 ある程度気軽にクラスを作れる。オブジェクト指向に慣れている人は生産性・コードの品質が上がる。(実際コードはコンパクトになったし、仕様追加時にもいい感じだった。) 実はクラス関数も作れて便利(これはprototype.jsの機能ではない) var Hoge { hoge: function() {alert('hoge');}} Hoge.hoge();みたいな。 悲しいこと Ajaxとの組み合わせでちょっと戸惑う。 インスタンス関数を、onreadystatechange ハンドラに登録した場合にいわゆるコールバック関数なので、this.xxx などのプロパティにその関数内からアクセスできるか微妙。(回避策がありアクセスできるがこれでよいのか?仕様的に不安。クロ

    ひげぽん OSとか作っちゃうかMona- - 実践 prototype.js [1]
  • [Apache] Apacheモジュールで既存のモジュールの処理をたまに横取りをしたい2 - higepon blog