サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
koichik.hatenadiary.org
これは「Node.js Advent Calendar」7日目の記事です。 去年のアドカレ (東京Node学園祭用で12月じゃなかったけど) 以来、リリースの告知エントリ一つしか書いてなかったよ。ブログだけじゃなくTwitterもたいしてつぶやいてないし、ネットからのフェードアウトが進んでおりまする。あー、なにも残さず消えるように死ねたらいいのに。実際には今死ぬと膨大なゴミ (大半は書籍と雑誌だけど) を残すので早く処分しないと死ぬに死ねない。 ともあれ (JW)、今回はRendrについてダラダラと書きます。まとまりなくてごめんなさいです。 自分がRendrを知ったのは、@mshkさんによるQiitaの記事からでした。 Rendr入門(1): Node.js + Backbone.jsでサーバ & クライアントを構築する"Rendr"の紹介 Rendr入門(2): リクエスト処理の流れ(R
この記事は「東京 Node 学園祭 2012 アドベントカレンダー」の 15 日目の記事です。 id:jovi0608 によるこのアドカレ 13日目のエントリ「Node API のクラス図を公開しました。」でも明らかなように、Node の重要なコンセプトの一つがストリームです。ストリームについては id:Jxck による東京 Node 学園の発表資料 「Node Academy 7 | ”Stream Stream Stream !!!”」も参考にどぞー。 そのストリームですが、大雑把には入力ストリーム (Readable Stream) と出力ストリーム (Writable Stream) があり、その両方でもあるフィルタストリーム (Filter Stream) や 双方向ストリーム (Duplex Stream) がある。。。 なんて話が上記の id:Jxck による資料には書いてあ
しました. https://github.com/koichik/node-flowless npm install flowlessでインストールすることができます. v0.0.0 からの主な変更点は次のとおりです. series() は runSeq() に変わりました. makeSeries() は seq() に変わりました. parallel() は runPar() に変わりました. makeParallel() は par() に変わりました. map() および runMap() を追加しました. Extra APIs を追加しました. API が変わってるから v0.1.0 にしようかと思ったけど,この時期なんて毎回 API 変わるに決まってるから気にしないことにしました. 先のエントリでは 上記の関数は呼び出されると即座に functions で与えられた関数 (ser
しました. https://github.com/koichik/node-flowless npm install flowlessでインストールすることができます. node-flowless は Node.js 用の小さな (less) フロー制御 (control-flow) モジュールです.名前は flawless に引っかけたのであって typo じゃないんだからねっ! id:taedium さんが自作のフロー制御モジュール nue に関するエントリを書いているのに刺激されて,自分もブログネタとして書いてみました.nue はたぶん,Step にインスパイアされたのだと思われますが,flowless は Slide に強く強くインスパイアされてます.Slide のコンセプトは以下のスライド (これが名前の由来w) が分かりやすいです. http://github.com/isaa
しました. https://github.com/koichik/node-tunnel node-tunnel は,Node の http および https モジュールで HTTP の CONNECT メソッドを利用したトンネリングを扱う Agent を提供するモジュールです. http://tools.ietf.org/id/draft-luotonen-web-proxy-tunneling-01.txt 元々は Node 本体の issue (#2474) に対処するために書いたコードだったのですが,本体にはいらんだろうということになってしまったので,モジュールとしてリリースしました. インストールは npm から. $ npm install tunnelこんな感じで使えます. var tunnel = require('tunnel'); var myAgent = tunn
ちょっと前にこんなブログが書かれていました. Node.js で重い処理をしてしまったときにタイムアウトするの法 なぜ JavaScript Advent Calendar 2011 (Node.js/WebSocketsコース) に参加してくれなかったのか問い詰めたい.小一時間問い詰めたい.それはともかくとして,本題の懸念については誰もが一度は思うことですよね.ずいぶん前に話題になったこちらのエントリでも,赤文字で超目立つように問題としてあげられています. node.jsは普及しそうに無い でもまぁ,自分はどちらかというと「ブロックしちゃうような処理とか書かないし!!」みたいなことを顔を真っ赤にして答える方かな.タイムアウトするほどではなくても,イベントループを止めるような重い処理は避けるべきだから.普段からループは小さく分けてイベントループに戻るようにしておくべきだし,それを簡単にとい
JavaScript Advent Calendar 2011 (Node.js/WebSocketsコース) の 13 日目の記事です. Node といえば非同期プログラミングですが,そのスタイルは大雑把にわけて 2 種類あります.一つ目は fs モジュールなどで使われているコールバック関数のスタイル. fs.readFile(path, function(err, content) { if (err) { // エラー時の処理 return; } // 成功時の処理 });このスタイルは,何らかの要求に対する結果を一発で受け取る (要求と結果が 1 対 1) 場合に使われます.そして,コールバック関数の第1引数でエラーの有無が通知されます.エラーがなければ null,エラーがあった場合は Error オブジェクトというのが原則のような気がしますが,undefined が渡されたりする
(Twitterで言及を読んで追記) 普通にアプリケーション側のコードをコールバックベースで記述できるなら、その方が自然です。そうした方がいいと思います。ここで扱う例は「アプリケーション側のコードを変更できない事情がある」「アプリケーション側のコードが巨大になることが予想されるためコールバックベースの記述を積み上げることを容認できない」などの状況の場合に、アプリケーション側のコードを非コールバックベースのものにしつつnode.jsでどうにかするための方法です。 Twitter での言及というのはたぶん自分のこれ. 「node.jsの非同期I/Oにおけるデータ受信のパターン」 http://ow.ly/4srsP 超微妙。素直に考えると read(bytes, callback) な API を用意すれば足りるはず。 こうつぶやいた時点では上で引用した注記はまだなかったので,「Node.js
先週,本家 (英語の) InfoQ や PublicKey で紹介されて話題となった HandlerSocket. InfoQ InfoQ: MySQL/HandlerSocket and VoltDB: Contenders to NoSQL InfoQ InfoQ: NoSQL への挑戦者 - MySQL/HandlerSocket と VoltDB Publickey NoSQLとしてMySQLを使うDeNAが、memcachedよりも高速な75万クエリ/秒を実現 この HandlerSocket は C++ で書かれたクライアントライブラリと,その Perl バインディングが提供されているのですが,同時にプロトコル仕様 https://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL/blob/master/docs-en/prot
Node.js といえば非同期処理です.そして非同期処理と言えばコールバック. そんなわけで (どんなわけで?),すぐにこんなコードになったりしがちですよね. http://stackoverflow.com/questions/3538156/file-i-o-in-every-programming-language/3538377#3538377 fs.writeFile(path, "hello", function (error) { fs.open(path, "a", 0666, function (error, file) { fs.write(file, "\nworld", null, "utf-8", function () { fs.close(file, function (error) { fs.readFile(path, "utf-8", function
http://vowsjs.org/ 昨日のエントリ「その 2」で ReadableStream からの 'data' イベントを行単位にコールバックしてくれる read-line モジュールを作成し,EventEmitter を使って擬似的にイベントを発生させるテストを Vows を使って書きました. 今回はその続きとして,本物のファイルを使ったテストを追加します. ファイルを扱うには Node.js 標準のファイルシステムモジュールを使います. http://nodejs.jp/nodejs.org_ja/api.html#ファイルシステム-104 今回はファイルをストリームとして読み込むので,「fs.ReadStream」を使います. http://nodejs.jp/nodejs.org_ja/api.html#fs-readstream-150 この fs.createReadS
昨日の続きです.今回はもうちょっとだけ本格的に Vows を使ってみます. http://vowsjs.org/ とはいえ,どうにも TDD が身につかない人なので,そっち方面は大目に見てください. サンプルとして read-line モジュールを作成します. Node.js の場合,ファイルからであれ,ネットワークからであれ,基本的にデータ入力は ReadableStream からコールバックされます. http://nodejs.jp/nodejs.org_ja/api.html#読み込み可能なストリーム-22 コールバック関数の形式は function(data) で,コールバック関数に渡されるデータは大抵はバッファリングされた単位でまとめてやってきます.それは多数の行を含んでいることも,行の途中でぶった切れていることもあります.でもでも,行単位で処理したいケースってよくありますよね
最近何かと話題の Node.js. http://nodejs.org/ Node.js 日本ユーザグループもあります. http://groups.google.co.jp/group/nodejs_jp ドキュメントの翻訳もされてます (リリースされたばかりの 0.2.2 対応済み!). http://nodejs.jp/nodejs.org_ja/ そんな Node.js 向けのテスティングフレームワークもたくさんあります. http://github.com/ry/node/wiki/modules#testing このモジュール一覧だけでも Node.js 界隈の盛り上がりっぷりが感じられますが,そんな中から Vows というテスティングフレームワークで遊んでみたので紹介します. http://vowsjs.org/ ちなみに,これだけたくさんある中から Vows を選んだのは,
GWT では大きなアプリケーションを作る場合に MVP がオススメなのだそうです. MVP はいわゆる MVC の変形ですが,POSA 本で唯一翻訳されている Vol.1 にも出ていて決して新しいものではありません. 世の中が (Ajax バリバリになる前の) シンプルな Web アプリで楽をしてる間,こっち方面が劇的に進化していたとかそんなことはありませんでしたか. じゃあ,本格的にリッチな Web アプリになるとまた 90 年代のような苦しみを味わうのかなぁ. ともあれ (JW),あの頃の VB や VC++ (MFC) のようにイベントハンドラのスパゲッティにおぼれないために,GWT の中の人達 (?) は MVP をオススメしているようで,解説とサンプルがこの辺にあります. Large scale application development and MVP Large scal
Spring をベースに Hot Reloding 対応した DI コンテナを Seasar3 としてリリースする. そんなわけで (どんなわけで?) 随分久しぶりに Spring のソースを見てみたところ... Spring の DI コンテナの基礎となるのが BeanFactory. これは階層構造を持つことが出来ます. 子供の BeanFactory から getBean() すると,子供の BeanFactory に bean がいればそれが返され,いない場合は親の BeanFactory から bean が返されます. ...というのは嘘です. BeanFactory が管理する Bean の情報を持つのが BeanDefinition. んで,BeanFactory は BeanDefinition を 2 段階で管理しています. 自分自身に定義された bean の BeanD
Seasar2 が提供している JTA の実装である S2JTA や,JTA と連携するコネクションプールである S2DBCP は,DI コンテナとは独立に使うことができます. 使い方も結構簡単です. まず JTA の場合,TransactionManager は new するだけ. import org.seasar.extension.jta.TransactionManagerImpl; TransactionManager tm = new TransactionManagerImpl();最低限必要なのはこれだけ. もし UserTransaction も使うならこれを追加. import org.seasar.extension.jta.UserTransactionImpl; UserTransaction ut = new UserTransactionImpl(tm);普
S2JMS をはじめとして,マイナープロダクトばかりやってる自分ですが,その中でも Aptina の不人気ぶりはちょっとすごいです. http://aptina.sandbox.seasar.org/ なんたって 11 月も 12 月もダウンロード件数が 1 件!! ダウンロードしてくれた人,ありがとう. あなた達がいなかったら 0 件が続いてた所だったよ. 今月? もちろん今のところ 0 件ですが何か? Annotation Processor を作ろうと思ったら Aptina Unit は便利だと思うんだけどなぁ. APT の API ってわかりにくいので,ドキュメントだけ見てサクサク使える人ってそうそういないと思うんですよね. そんな場合に Aptina Unit は試行錯誤を助けてくれるのですが,そもそも普通の人は APT 自体を使いたくならないのかも? あれを使いたくなるようなマ
Smalltalk な本を積んでみた にインスパイヤされて Prolog な本を積んでみた (普段から積ん読ですが). 一部 GHC や Concurrent Prolog などの Prolog 拡張言語や論理プログラミング周辺の本も混じってますがより分けるのが面倒なのでまとめて. 自分はニワカなので和書の古い本が少ない (奥の列の上半分くらい) ですが,2ch の Prolog スレには自分の数倍持ってそうな人がいます.まだまだ精進が足りないようです. 積んだ書籍へのリンクを貼るのが正当なようなので追記しました. 並びは適当にカテゴライズしてだいたい出版社ごとに表紙の色で並べたので積んだ順番とは異なります. なんか一冊数が合わないと思ったら「Concurrent Prolog: Collected Papers」は「2 vol. set」なのであった. そして一冊発掘し損ねていたことが発
実際に利用してみての注意点としては,再起動せずに変更を反映するホット・デプロイ機能は,クラス数が多くなると遅くなることを挙げた。開発が進みクラスが増えてくると,最終的はホット・デプロイを使わずにアプリケーション・サーバーを再起動した方が早くなったという。 Seasar Conference 2009 White でもそんな話があったようだし,最近 ML でも問い合わせがあったし,某巨大掲示板でも話題になってたので,少し (?) 書いておきます. まず,HOT deploy では必要となったコンポーネントだけがロードされます. 例えば Web アプリであれば SAStruts や Teeda などのフレームワークがリクエストに応じて fooAction とか fooPage という名前のコンポーネントを Seasar2 に要求するところから始まります. その際,Seasar2 はファイルシス
しました. ■変更点 0.33.0 からの変更点は次のとおりです. Bug [DOLTENG-52] - Teeda のページクラス生成ウィザードが XML 宣言のない XHTML ファイルをプラットフォームエンコードで処理してしまう問題を修正しました.[Seasar-user:16312] Task [DOLTENG-53] - Seasar2 のバージョンを 2.4.33 に,S2JDBC-Gen のバージョンを 0.9.4 に更新しました. [DOLTENG-54] - S2JCA のバージョンを 1.0.1 に更新しました. [DOLTENG-55] - SAStruts のバージョンを 1.0.4-sp3 に更新しました. [DOLTENG-56] - s2jdbc-gen-build.xmlをS2JDBC-Gen0.9.4に対応させました。 ■セットアップ手順はこちらからどうぞ
しました. ■変更点 2.4.32 からの変更点は次のとおりです. Bug [CONTAINER-299] - [S2JDBC] SimpleWhere や Operations の starts()/ends()/contains() で,Oracle ではワイルドカードになる全角の '%' や '_' がエスケープされない問題を修正しました.[Seasar-user:16239] [CONTAINER-300] - [S2BeanUtils] CharSequence型指定時にexcludesメソッドが利かない不具合を修正しました。 [CONTAINER-302] - [JPA] Jar ファイル内の永続ユニットを扱うと FileNotFoundException が発生する問題を修正しました.[Seasar-user:16276] [CONTAINER-312] - [S2JDBC]
今日の早耳ムスメは天使の食レポーター臼田あさ美ちゃーん,お題は「ユニークものが続々! 2005 カレンダー」. っていうか,食レポじゃありませんから!! 残念!!!! でもでも,食べてなくても楽しそうな表情がやっぱりカワイイですねぇ♪ ローサちゃんのカレンダーの紹介も.もなじろうさん買うしか!! \(^o^)/ おしっ! Kobe 31 得点・12 アシスト!! FG 10/17 と好調だったようです.しかもチーム全体の FG 成功率が.554 !! 15 点差で負けた直後に 16 点差で勝つとはねー.うれしいねー. この調子で頑張って〜♪ without-ejb ML での話題ですが,なんとなくこっちへ.(^^; ひとつわからないのですが、 S2SessionFactoryImpl#beforeCompletion()の呼び出しで Connectionが閉じられるのはどうしてでしょうか。
今日の早耳ムスメはみさきゆうさん,お題は「新作を GET!! 秋のブランドバッグ」. 大人っぽい雰囲気のみさきゆうさん,あまりアップになると大人っぽいを通り越してしまうのがアレなのですが,今日はバッグ特集ということで引き気味のカット中心で一安心. そうですか,トレンドはチャームですか. っていうか,チャームって聞くと Cartier とかのアレを想像してしまうのですが,こういうのもチャームと呼ぶんですね. ってことは,LOUIS VOUITTON のヌメ革パンダもチャームっていうの? ともあれ (JW),まさか早耳トレンド No.1 で FENDI のバッグが出てくるとは. Dior なんかのショップオープンを別とすれば,結構珍しい感じ. それにしても,二日連続ファッションネタでスタジオに行くとは. まさかまさか,落差を感じさせないように人選してるんじゃないか?? そんな余計なこと考えない
少し前に S2Wicket のコミッタ,よういちろうさんのところであった話題. 新S2Wicket仕様,断念 この問題を id:t_yano さんが 次期S2Wicket仕様断念の原因となった動的オブジェクトの循環参照問題をぼくがみんなのために解いたった! だそうな.お見事. 自分は元ネタの方にもコメントしてるように,これを (よういちろうさんが呼ぶところの) 動的プロキシで実現するのが適当なのか,未だに疑問を持ってます. もし自分が S2Wicket のコミッタだったら,ここで動的にクラスを生成するかは微妙. あらかじめ (静的に) サブクラスを用意しておくことを選択するかも. 数が多いとのことだけど,コード生成すれば良いだけだし. とか思ってたのだけど,矢野さんのエントリ見てたらこれはこれでパズル的というか目的とは関係なく面白いかもとか思ったり. そんなわけで (どんなわけで?),矢野
ちょっと前まで蛯原友里ちゃんが出演していたドラマ「サラリーマン金太郎4」. あまり出番は多くなかったのですが,社長の秘書という役所でした. このドラマには会長の秘書役として曲山えりが出ていたのですが,TBSの番組のページには「曲山えりの秘書の一日」というコーナーがあって,いくつかの動画を見ることができます. その中の「LESSON No.04 先輩秘書から後輩秘書へ」には,友里ちゃんがゲストとして出ていて,二人で対談をしています. その中で面白いのが, えり:どうですか? 「サラリーマン金太郎4」撮影の現場は? 友里:すごい,なんか皆さん,意気,意気あいあい,意気あいあいって言うんですか? えり:和気あいあい. 友里:和気あいあいですよねっ.和気あいあいとしてすごい楽しい現場ですよねっ! あはは,どうやら意気投合と和気あいあいが混ざっちゃったみたいです.(^^; いやぁ,友里ちゃんかわいい
寝込んでました. ごめんなさい,ごめんなさい,ごめんなさい.m(__)m (ToT) Kobe 45 得点も,相手の Arenas に 60 点を決められては... 96 :デフォルトの名無しさん :2006/12/18(月) 20:38:26 S2使ったプロジェクトって、一定規模以上になるとS2Unitが破綻しない? Dao、Logic、その他膨大な数のクラスをエンハンスする必要があるから、 テストケースの初期化だけで何十秒もかかるようになる。 プロファイリングしたらJavassistがボトルネックみたいだけど…。 そんなわけで (どんなわけで?),Seasar2.4 の S2TestCase (S2FrameworkTestCase も) は WARM deploy がデフォルトになってます. WARM deploy ではコンポーネントは必要になったときに初めてコンポーネントの登録及び
黒いハラコのライダーズブルゾン (TOM FORD FOR GUCCI 04-05AW) グレイでウールシルクのタートルネックニット (TOM FORD FOR GUCCI 04-05AW) ブラックデニムのフレアパンツ (Tom Ford for Yves Saint Laurent Rive Gauche 03-04AW) 黒いスクエアトゥのダブルモンクストラップ (sergio rossi 03-04AW) 先週の微音祭は天気が悪かったこともあり,栗先生に見られたらがっかりされそうなコーデだったのですが,今日は誰に会っても期待 (?) を裏切らないコーデではなかったかと (笑). なんたってハラコのブルゾン,かなーり妖しいです♪ 行ってきました. 2 週連続,通算 8 回目となる生友里ちゃん体験!!!! 先日,蛯原友里ちゃんが「時の人」なるものに選ばれたというニュースがありましたが,
http://journal.mycom.co.jp/articles/2006/11/16/seasar/ 頻繁に Seasar 関連プロダクトを取り上げてくださる MYCOM ジャーナル. 今回はリリースされたばかりの Seasar2.4 を使った DI の入門記事です. ちなみにタイトルの「今更でも恥ずかしくない」は,Seasar Conference の定番ネタ (?)「今さら人には聞けない」つながりでしょうか? (^^; ともあれ (JW),全 12 ページにも及ぶ力作です. 本当にありがとうございます. この記事では,dicon にコンポーネントを明示的に書く方法から始まって,最後は AutoRegister を使ったサンプルで終わります. しかし,Seasar2.4 の目玉である SMART deploy は使われていません. そんなわけで (どんなわけで?),この記事の続き
タカナシさんへ(でしたよね?). 写真をお送りしますので,koichik at improvement.jp までご連絡ください. ただしですね,スタラジOFFでの写真をお送りすることは出来ません.メモリカードのリーダーをスターロジックの事務所に忘れてきてしまったのです... 心より恥じる. 無事帰ってきました. 中央線でうとうとしてしまい,気が付いたら新宿に着いていてドアが開いていました.ダッシュで降りてどうにか乗り過ごさずに済みました.あわや,高井さんの二の舞になってしまうところでした.(^^; ともあれ,スターロジックの皆様,どうもありがとうございました. 参加者の皆様,チャットに参加の皆様,リスナーの皆様,お疲れ様でした. さて,寝ますか... うーみゅ,なかなか厳しいご意見もあるようで... 2chよりS/N比が低いとは... 心より恥じる. っていうかですね,今回のイベントのタ
次のページ
このページを最初にブックマークしてみませんか?
『【見覚え】koichikのひとりごと【あります】』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く