2011-01-01から1年間の記事一覧

2011年の振り返り

今年は、いろいろ新しいことに挑戦できた年だった。目標だったYAPC::Asiaでの発表もできたし、色々な勉強会に参加することもできた。 仕事では以前から興味のあった自然言語処理に携わる事になって、コード書きまくれるので非常に充実している。来年もいろい…

LOUDS関連メモ

LOUDS関連で調べたものをメモしておく。 簡潔データ構造、LOUDS 簡潔データ構造(succinct data structures) 各種操作を高速に保ったままでデータサイズを情報理論的な下限近くまで圧縮できるデータ構造。 基本は簡潔ベクトルで、疎なベクトルをビット列と密…

Node の C++ アドオン開発で必要なこと

この記事は JavaScript Advent Calendar 2011 (Node.js/WebSocketsコース)の8日目の記事です。今日は、Node の C++ アドオン開発をする上で必要な心構えや Tips について書きたいと思います。 1. 情報が少なくても泣かない C++ アドオンについての公式ドキュ…

Hachioji.pm #11 に行ってきた

12/3に開催された Hachioji.pm #11 に行ってきました。 今回はいつもの八王子ではなく町田で開催でした。 今回のお店 ニライカナイ離れ沖縄料理のお店です。鍋おいしかったです。 LT 今回の LT テーマは「◯◯道」でした。特にメモ取ってなかったので、覚えて…

Perl のプラグマモジュールの作り方

autolocale を作る際に Perl のプラグマモジュールの作り方について調べたので、書き残しておきます。 プラグマモジュールとは strict.pm や warnings.pm のようにレキシカルスコープで振る舞いを変更するモジュールをプラグマモジュールと呼び、通例として…

Perl の locale 設定

下記のTwitterでの発言に関連してメモ。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platf…

FormValidator::Lite::Constraint::Moose Released!

FormValidator::LiteのバリデーションルールとしてMo[o|u]seの型制約を使えるようにするFormValidator::Lite::Constraint::MooseをCPANにリリースしました。FormValidator-Lite-Constraint-Moose-0.13 - Use Moose's type constraints. - metacpan.org結局、…

FormValidator::Lite::Constraint::* について

昨日Twitterで、 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widget…

Node.jsでReadableStreamから一気にデータを読み込む

node.jsでjson整形するワンライナー - hokaccha memo を見て思いついたので。GitHub - hideo55/node-stream-slurp: Read entire data from ReadableStream require('stream-slurp').slurp(function(err, data){ if(err) return throw err; console.log(data);…

JavaScriptコードのメトリクス測定

以前、Perlにおけるコードメトリクスの測定について書きましたが、JavaScriptについても調べたところjsmeterが良さそうです。なお、循環的複雑度等のコードメトリクスはあくまでも定量的な目安であり、絶対的な品質を表すものではありません。コードレビュー…

Chrome Extension - NPM Helper Updated

以前作ったNPMの更新通知と検索を行うChromeの拡張機能 「NPM Helper」がだいぶ安定したと思うので、CRXファイルをGithubに置きました。使いたい人は下記のリンクからインストールしてみて下さい。 更新通知 NPM検索 NPMのパッケージが更新されるとWebNotifi…

Node.js のモジュールをC++で書く際のメモ(2)

第1回から9ヶ月もたち、Node.jsの方もAPIに変更があったのでC++ Addon関連のメモをしておく。 バージョン関連 Nodeのバージョンによって処理を変える node_version.hに定数、マクロが定義されているのでこれを利用する。 #include <node.h> #include <node_version.h> #if NODE_VERSI</node_version.h></node.h>…

CoffeeScriptについて

この前の東京Node学園祭のときとかに議論したCoffeeScriptの是非についての自分の考えをまとめておく。 「学習コストが低い」という理由での利用はしないほうがいい 「簡単そう」、「かっこいい」とかの理由ならやめることをお薦めする はまった時にデバッグ…

Hachioji.pm #10 に行ってきた

10/29(Sat)にHachioji.pm #10に行って来ました。東京Node学園祭からのハシゴで途中からの参加だったので、LTの内容などは他の人に任せます。 それにしても今回は初参加の人が多かったですね。参加者集16名うち初参加6名。YAPC効果すごいですね。 自分のLT た…

東京Node学園祭2011に行ってきた

10/29(Sat)に開催された東京Node学園祭に行って来ました。nodejs_jpのイベントとしては東京Node学園祭1時限目以来の参加でした。一番面白かったのはGuillermoのライブコーディングでした。信じられないタイプ速度で、エスケープコードで色もつけて、コメント…

Node.js の child_process.spawn() ではまった

Node.jsのchild_process.spawn()でエディタを起動した場合に動作が不安定になるという問題があったので解決方法を記録。最初は以下のようなコードでエディタを起動していました。(実際にはネストしたコールバックの中で呼び出される) var editFile = functio…

ShipIt.jsの今後の予定

ShipIt.jsをかなり変更しました。特にコマンドラインインタフェースとドキュメント。Stepsについては基本的なところは揃えたので、これから作るかもしれないのは以下の機能。 アナウンス系 リリースしたらTwitterなりIRCなりにアナウンス JS自体のversionの…

YAPC::Asia 2011 で発表してきた

Perlの祭典、YAPC::Asia 2011 に参加してきました。昨年 YAPC::Asia に初参加した際は2日目だけしか参加できませんでしたが、今回は10/13の前夜祭から、10/15の勝手に後夜祭まで参加できました。さらに、今回は念願のスピーカーとしての参加でした。去年のYA…

Chrome Extension を作ってみた - NPM Helper

YAPC前なのに何やってんだって感じですが、Chrome Extension を練習で作ってみました。GitHub - hideo55/chrome-npm-helper: Chrome extension for help to use NPMとりあえず、アドレスバーで "npm + space" で NPM Helper を利用できます。ここで文字入力…

Hachioji.pm #9 に行ってきた

10/1(土) に開催された Hachioji.pm #9 に行って来ました。今回は10人参加でした。(初参加は飛び入りで参加した@electineさん) お店はタイ料理のタイラーンナーです。 LT 今回はLTのテーマ「自由」で各自考えました。 @uzullaさん Groonga使ってる SQLite的…

ShipIt の Node.js 版みたいなの書き始めた

CPANモジュールにリリース作業を自動化する ShipIt 的なのが Node.js にも欲しいなと思って書き始めました。GitHub - hideo55/node-shipitjs: NPM package release management toolいまは、package.jsonを読んで、gitのバージョンタグを作って、npm publish…

MurmurHash3 の Node.js Binding を書いた

32bit/128bitのハッシュ値を生成するMurmurHash3のNode.js Bindingを書きました。ソースはGithubに置いてあります。また、npmのパッケージとしてもリリースしてありますので、以下のようにnpmコマンドでインストールできます。 $ npm install murmurhash3

JavaScriptのビットシフトではまった

ちょっと引っかかったのでメモ。以下のコードのようにビットシフトを行うと、符号付き整数として扱われる。 console.log( 1 << 30 ); // 1073741824 console.log( 1 << 31 ); // -2147483648 これは、"演算子が符号付き整数に定義されているためである。符号…

Perlのメトリクス計測

ソースコードの品質向上のための効果的で効率的なコードレビュー にメトリクス計測ツールがでてきますが、Perlにももちろんあります。Perl-Metrics-Simple-0.18 - Count packages, subs, lines, etc. of many files. - metacpan.orgまたPerl::Metrics::Simpl…

Hachioji.pm #8 に行ってきた

8/27(土)に開催されたHachioji.pm #8に行ってきました。今回の参加者は10名、うち初参加2名でした。 同日にやっていた ISUConの話からチューニングの話をしたり、YAPC::Asiaの話、Hachioji.pmの今後、ビジネスの話などをしました。あと、Acme大全 2011を売っ…

YAPC::Asia Tokyo 2011 に行こう!

Perlの祭典 YAPC::Asia Tokyo 2011 が 10/13-15にかけて東京工業大学 大岡山キャンパスで開催されます。Perlの話題だけではなくサーバの運用やWebアプリケーションのセキュリティなど様々な発表があるのでPerl使わない人でも楽しめると思います。YAPC::Asia …

npmのアップデートをGrowl通知する

先日のMetaCPAN APIを使用してモジュールの更新をGrowlで通知するを書きましたが、今度はnpmのモジュールアップデートをGrowl通知するスクリプトを書きました。GitHub - hideo55/node-npm-growler: Growl npm updatesせっかくなのでNode.jsで書きました。Gro…

package.jsonの書き方

https://github.com/isaacs/npm/blob/master/doc/json.mdここに全てが書いてある。気を付けなくてはいけないのが、npmが解釈するJSONはRFC4627に従ったものであること。つまり、ただのJavaScriptのオブジェクトリテラルとは異なる。たとえばオブジェクトリテ…

Node.jsのテストツールWhiskeyがよさげ

Node.jsのテストツールwhiskeyがよさげなのでメモ。 特徴 テストファイルごとにプロセスが分離されている 複数のテストを並列実行できる(--concurrency オプション) テストを実行する前のテスト初期化機能(-ti, --test-init-file オプション) テストタイムア…

第5回 MongoDB 勉強会 in Tokyo 〜真夏の大Mongo祭り〜 に行ってきた

7/30(Sat)に開催されたMongoDB 勉強会 in Tokyo 〜真夏の大Mongo祭り〜に参加しました。MongoDB勉強会自体は以前からUSTの配信を見ていたのですが、今回は予定が空いていたので参加することができました。MongoDBについてはNode.jsからちょろっと使う程度で…