node

JavaScriptで型が書けるDSLを提供するdeftypes.js作った

こじらせJavaScriptシリーズです。 mizchi/deftypes.js https://github.com/mizchi/deftypes.js主にcoffee-script用のDSLです。以下すべてcoffee。ブラウザ <script src="https://raw.github.com/mizchi/deftypes.js/master/deftypes.js"></script> Deftypes(); //provide DSLNode npm install deftypes 概要 型が書けます。残念ながら動的チェック…

非同期呼び出しの見た目上の同期を実現するためにnode-fibers 使ってみた

laverdet/node-fibers · GitHub https://github.com/laverdet/node-fibers ネタ元としてはRubyのFiber。他のcontrol flow系とは経路が違って、V8を直接叩いて実装されている。よって普通のJSの直感から反した挙動を取ることが可能となっているし、nodeでしか…

should.jsが辛いのでやめたくなった

Rspec風に使える、という理由で使ったけど、もうなんというか気分的に辛い visionmedia/should.js https://github.com/visionmedia/should.js/ 問題1 nodeのassert依存 ブラウザ用に移植できない 問題2 undefined, null は prototypeを持たない 次のようなコ…

クライアントJSをパッケージ管理できるjamjsが便利

nodeのnpmみたいなインターフェースで、クライアントjsの依存管理をする。 インストール $ npm install -g jamjspackage.jsonのjamプロパティ以下に依存モジュール書く { "name": "hogefuga", "version": "0.0.0", "jam": { "baseUrl": ".", "packageDir": "…

socket.ioとenchant.jsでネトゲ作り始めた

某所に提出するように昔作ったもののコア部分を詰めて作ったんだけど、興が乗ったので今日そのまま作りこんでみた。同時にログインして相手に近づいて殴ったらHPバーが減って死ぬ。死ぬと4秒でリポップする。 まだマップを実装したりモンスターを徘徊させた…

CoffeeScriptがさらに拡張されたLiveScriptの紹介

2ヶ月ぐらい前にHackersNewsで見かけて、触ってみたらやたらかっこよかったので紹介。LiveScript http://gkz.github.com/LiveScript/ LiveScriptはCoffeeScriptがさらに拡張された、JavaScriptにコンパイルされる系言語。 JavaScriptが最初に名付けられた名…

nodeでrequireしたときにキャッシュしたくない

キャッシュ消す coffee delete require.cache[key] for key,val of require.cache

クライアントのテストはzombie.jsでいいんじゃないか

zombie.jsとは jsdomというnode製のDOMシミュレータがあります。これを使えば、ブラウザを使わずにDOMイベントを発行することができます。 zombie.jsはセッション管理とブラウザのアクションを管理するjsdomのラッパーです。個人的には、Ajaxのテストは無理…

テストフレームワークmochaとファイル監視watchrで自動テスト

npm install mocha -g npm install shouldmochaの--watchオプションが期待通り動けば問題ないんだけど、ホットリロード動いてないのでファイル監視はwatchrでやらせることにした。 guardでもよかったんだけど、guardは皆決まりきったサンプル動かしてる人達…

node/webosocketによるオンラインゲームの実装を考える / オンメモリ、KVS、RDBMS、圧縮プロトコル、そのゲームデザイン + 就活の話

派手で見栄えがする大規模なプロダクトを作ろう!っていうことで、一人でフルスタックなネトゲを作っている。大きなプログラムを書いても破綻しないようにテスト書きまくってテストファーストを心がけたり、Travis-CIによる継続的インテグレーションで頑張っ…

サーバーサイドJSのための、JSONで復元できるモデルクラス *追記あり*

ほとんど自分のためのメモ。 サーバサイドJSを使っているとクライアントにwebsocket経由で渡したりmongodbやnstoreで永続化する際にピュアなJSONとしてデータを宣言しなおす必要があって面倒。じゃあModelクラス自身が読み込み/書き出しできると嬉しいのでは…

coffee-script v1.2.0で--watch と --joinが併用できるようになった

複数ファイルにまたがって自動ビルドしつつ1つのファイルにまとめることができます http://jashkenas.github.com/coffee-script/#changelog --watch は指定したファイルを監視し、自動的にjsにコンパイルする --join はファイルを指定した順番で連結 --outpu…

node v0.6.3 で npmが標準モジュールとなり、OS別インストーラもできたよーって話

内容はタイトル。以上。詳細は以下より。 Node v0.6.3 | Node.jsnpmはRubyにおけるrubygems, PythonにおけるPYPIのようなもの。 標準でnpmコマンド入るようになったので、インストール後 npm install -g coffee-script すればcoffee-script使えるようになる…

Homebrewでnode v0.6.1いれるとセグフォったので戻した

僕は面倒くさがりなのでnodeをMacのhomebrewで管理してるのですが... 日課のようなコマンド sudo brew update sudo brew install nodeこの node , require するとセグフォします。 https://github.com/isaacs/npm/issues/1725 Issac : Reinstall node from s…

ちょっとした永続化にnStoreを使ってみる

nodeのシンプルな KVS。 DBMを立ち上げる必要がないJSONベースのKVSが欲しかった。インスコ npm install nstore試す。相変わらずcoffeescript。./test.dbで起動 mizchi-mba:mzi%[~] coffee coffee> nstore = require('nstore') { initialize: [Function: ini…

Canvas/WebSocketなネトゲの、ざっくりとしたロジック解説

Canvas/WebSocketでディアブロクローンなネトゲを作ってみた - mizchi logの解説ちゃんと勉強して実装したわけじゃないけど、つくってみたい!と思った人が一通り実装できる程度の解説をする。 ゲームプログラミングとウェブプログラミングの初歩を知ってる…

Canvas/WebSocketでディアブロクローンなネトゲを作ってみた

できたよー! 遊び方 次のURLから、twitterアカウントでログインする。 http://w-mtlab.com:4444/ 対応(確認)ブラウザはGoogleChrome Firefox4.0以上。 同時に10人ログイン程度まではテスト済。それより増えるとわからん。 矢印キー or WASD 移動 数字キーで…

node/websocket とknockout.jsでRSSリーダー作ってみた

風邪引いてるっぽくて頭痛と吐き気がひどいのですが、昨日作ったコード置いておきます GitHub - mizchi-sandbox/node-rss-reader: LDRっぽいRSSリーダーhttp://w-mtlab.com:2000 にサンプルを置いておきます これは僕(mizchi)の未読です (共通の未読管理フラ…

websocket用に欲しいプラギン

ウェブソケット使ったコードはスパゲティ化しがち だからこんな風に定義できると嬉しいと思った # server wsns = require("wsns") myns = new wsns.Wsns('/wsns.js') myns.def 'myns_func', pre:(arg)-> emit fname:$(arg).text() server:(data)-> fs.readFi…

Node用MeCabバインディング あと非同期版つくろうとして失敗した話

似非原さんの自分で記事を読むのもだるくなってきたので、コンピューターに記事を読ませることにした。 - 蟲!虫!蟲! - #!/usr/bin/bugrammer を読んでて、スクレイピングならnodejsが楽だしnodeでmecab使う手段あったっけーと思いながら調べてたら、あっ…

nodejsでjQueryでスクレイピングしながら本文抽出にかける

バイトで本文抽出器を作成する必要あったのでいろいろ試していた 用意 npm install extract-contet request jquery jsdomid:yssk22さんのextractcontentを使う。 やる hackers newsのエントリ一覧にかけてみる。 coffee-script request = require('request')…

npmでnodejsのライブラリを作る

空のフォルダを作る mkdir mytest-package 最小構成 mytest-package/package.json { "name": "mytest-package", "version": "0.0.1", "main": "./index.js", }mytest-package/index.js exports.hello = "Hello"インストール npm install .つかってみる $ nod…

nodejs/npmで俺々ライブラリマネージャ作ってみた

npmの練習がてらに俺々ライブラリマネージャ作ってみました。 なにができるの ネット上に転がっている有象無象の javascript をバージョンごとにローカルで管理できます。 登録したライブラリは node/express で簡単に出力できます 要はネット上に転がってる…

Coffeescriptでクライアントサイドでビルド/テストの設定諸々メモ

CoffeeScript/Canvasでゲーム作ってて、結構巨大なプロジェクトになってしまったので色々工夫していた。 単体のとき EmacsやVim使ってるなら shadow.el/shadow.vim を使う自分はemacsなのでshadow.elを入れた。 mooz/shadow.el - GitHub (require 'shadow) (…

nodejsとredisのメモ

redisをnodeから使ってみるテスト 環境、Mac、homebrew 、node0.4.5 、npm $ sudo brew install redis $ npm install redis-client $ sudo redis & 使ってみる jsonをシリアライズしてkeyに格納してみる。 redisでハッシュを登録する方法もあるらしいけど、…