タグ

ブックマーク / mizchi.hatenadiary.org (8)

  • プログラミングはそれ自体が目的であっていい - mizchi log

    これ読んで思ったこと。 プログラミングを勉強したい人が勉強する前にすべきこと - もとまか日記 http://d.hatena.ne.jp/moto_maka/20130512/1368308092 僕がプログラミングをはじめたとき、何を思ってプログラミングをはじめたか思い出してみようとしたけど、よく思い出せなかった。 ただ漠然と感じていたのは、プログラミングは個人が現実的にこの世界に直接手を加えることができる手段の1つであり、それをやらないのは勿体無い、といったことだったと思う。たぶん。 というわけで、最初にやったのはFirefoxのユーザースクリプトを書くことだったし、それはそれでよい経験だった。なんとなくゲームとかウェブアプリとか作りてーなー、と思って色んなライブラリを動かすだけ動かして満足した。プログラミング覚えて初めて最初の一年で10以上の言語のHelloWorldだけやったと思

    プログラミングはそれ自体が目的であっていい - mizchi log
  • JavaScriptでDIできる Injector.js つくった - mizchi log

    仕事でRobotlegsというAS3のフレームワークを使っているのだけど、DI機構がかっこよかったので、Injectorだけ真似て作ってみた。 mizchi/injector.js · GitHub https://github.com/mizchi/injector.js Robotlegs AS3 Micro-Architecture - Home http://www.robotlegs.org/ 使い方 ConstructorClass.inject に {key:InjectedClass} で実体化するインスタンス名と実体化するクラスを登録する。 CoffeeScriptで違和感無いような記法でチューニングしてある。 class UserModel class X_View Injector.register(@) @inject: model: UserModel Injec

    JavaScriptでDIできる Injector.js つくった - mizchi log
  • 大規模JSでのBackbone.js/CoffeeScript について考えてみた - mizchi log

    これ読んでたらr7kamura君にJSのMVCどうするの的な話きかれてたのを思い出したので、自分がBackboneを使う時のパターンをr7kamura君の記事をベースに書きなおしてみた。 > サバクラ両方で動く JavaScript の大規模開発を行うために ― Gist https://gist.github.com/1362110 > client-side javascript - ✘╹◡╹✘ http://r7kamura.hatenablog.com/entry/2012/10/18/023629 以下の様なコードを書いた。かなり冗長だが、複雑なアプリだとこれぐらいの冗長性は必要になる。 (なお概念を伝えるための解説用コードなのでそのままじゃ動かない) Backbone.Model # 名前空間の初期化 App = {} App.View = {} App.Model = {}

    大規模JSでのBackbone.js/CoffeeScript について考えてみた - mizchi log
  • CoffeeScriptがさらに拡張されたLiveScriptの紹介 - mizchi log

    2ヶ月ぐらい前にHackersNewsで見かけて、触ってみたらやたらかっこよかったので紹介。 LiveScript http://gkz.github.com/LiveScript/ LiveScriptはCoffeeScriptがさらに拡張された、JavaScriptにコンパイルされる系言語。 JavaScriptが最初に名付けられた名前「livescript」に立ち返って、関数型の特色が色濃い言語のようです。 OOPと関数型のマルチパラダイムという点でScalaなどに近いのかもしれません。型が弱いScalaで、見た目はHaskell。 インストール npm install -g livescriptより関数型っぽくしたい人のための prelude-lsと一緒に使うのが推奨されているそうです npm install prelude-ls追加されるメソッドについては以下を参照 prelud

    CoffeeScriptがさらに拡張されたLiveScriptの紹介 - mizchi log
  • クライアントのテストはzombie.jsでいいんじゃないか - mizchi log

    zombie.jsとは jsdomというnode製のDOMシミュレータがあります。これを使えば、ブラウザを使わずにDOMイベントを発行することができます。 zombie.jsはセッション管理とブラウザのアクションを管理するjsdomのラッパーです。 個人的には、Ajaxのテストは無理せずJavaScriptでやれとおもってるので、その点zombieは素直に動いてくれます。 利点 AjaxでDOMを書き換えたりするイベントもテストできる (qt-webkitと比較して) 無茶苦茶早い コンパイルが楽(というかQTは定期的に互換崩れてバイナリ壊れてる… 論よりコード サンプルをアップロードしてあります mizchi/zombie-tester-example https://github.com/mizchi/zombie-tester-example インストール等はReadme見てもらうと

    クライアントのテストはzombie.jsでいいんじゃないか - mizchi log
  • CoffeeScriptの文法拡張して非同期でネストが深くならないようにしてみた - mizchi log

    コールバックごりごり書いてるとネストが深くなって嫌だね〜 ということで深くならない用な記法を追加するプリプロセッサをでっち上げる、というテスト。 CoffeeScript自体がJSの文法を拡張するものだから、自分で追加してもいいじゃん、ということでソースを覗いてみたが、エイリアスを追加するならともかく、新しい概念を継ぎ足すのはちょっと大掛かりっぽいので、簡単なパーサ書いてみるだけにした。 なにがやりかったというと <- と next がペアになって非同期の結果を受け取る fs = require 'fs' main = -> err,txt1 <- fs.readFile 'hello1.txt', next err,txt2 <- fs.readFile 'hello2.txt', next err,txt3 <- fs.readFile 'hello3.txt', next conso

    CoffeeScriptの文法拡張して非同期でネストが深くならないようにしてみた - mizchi log
  • node/websocket とknockout.jsでRSSリーダー作ってみた - mizchi log

    風邪引いてるっぽくて頭痛と吐き気がひどいのですが、昨日作ったコード置いておきます GitHub - mizchi-sandbox/node-rss-reader: LDRっぽいRSSリーダー http://w-mtlab.com:2000 にサンプルを置いておきます これは僕(mizchi)の未読です (共通の未読管理フラグ使ってるので、誰かが読んでしまってると読めません) コード総数は600行ぐらいなので、サンプルにはなると思います。プリントデバッグの名残が大量に残ってますが… 挙動はほぼLDRのjksaoのクローンです。マウスオペレーションはサポートしていません。 zappa.jsとKnockout.jsとwebsocketの練習がてら作りました。 knocout.js使ってみた感想 knockout.jsよかった(小学生並みの感想) いや、風邪引いて頭悪いので後日フレームワークの感想

    node/websocket とknockout.jsでRSSリーダー作ってみた - mizchi log
  • nodejs/npmで俺々ライブラリマネージャ作ってみた - mizchi log

    npmの練習がてらに俺々ライブラリマネージャ作ってみました。 なにができるの ネット上に転がっている有象無象の javascript をバージョンごとにローカルで管理できます。 登録したライブラリは node/express で簡単に出力できます 要はネット上に転がってるjQueryのプラギンとかをどうにかしたかったんです。 npmがnodeにまつわるライブラリを集めているのですが、クライアントサイドはそういうものがなかったので、とりあえずでっちあげました。 $ js-manager - v0.0.1 [commands] - help - installed - search - versions - install $ js-manager install jquery fetching jquery@latest saved as jquery-1.6.2.min.js $ js-m

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