タグ

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

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

    こじらせ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 概要 型が書けます。残念ながら動的チェックです。 Point = {x: Number, y: Number} p1 = def Point, {x:1, y:2} #=> {x: 1, y:2} p2 = def Point, {x:1, z:2} #=> type error def

    JavaScriptで型が書けるDSLを提供するdeftypes.js作った - mizchi log
  • DOMを高速に操作するための skin.js というライブラリを作った - mizchi log

    (タイトル修正 DOMを高速に操作 => DOMの値を高速に更新 at Sat Mar 09 2013 15:30:09 GMT+0900 (JST)) (Skin#inject実装したのでタイトル元に戻した at Mar 09 2013 18:10:04 GMT+0900 (JST)) 若手の会で、JavaScript Hell on Earth というテーマで話してきました。 js_hell_on_earth http://www.rvl.io/mizchi/js_hell_on_earth というわけでDOM抽象ラッパーつくりました。 mizchi/skin.js · GitHub https://github.com/mizchi/skin.js 目的 クライアントサイドJSでは一回書いたら終わり、ではありません。ゲームなどのリッチなユーザー体験を提供する際、高頻度でDOMを書き換

    DOMを高速に操作するための skin.js というライブラリを作った - mizchi log
  • アジャイルの「顧客に価値を届ける」の嘘と本当 - mizchi log

    酔った勢いでアジャイルについて思うところを書く。 顧客に価値を届けるのは誰か 顧客に届く価値 = 目に見える成果物、という評価は、フロントに近い人間しか評価されなくなる傾向を抱え込む。顧客に価値が届くまでには段階がある。複雑なものほどワークフローが長大になる。お互いの価値を見積もれるのは、小さいチームでお互いの職種について理解がある場合の理想であり、多くの場合理想は理想である。大きなチームほど、フロントに遠い人間は自分の価値を伝えるのが難しい。 難しいことを難しいということ エンジニアが自分の仕事について、エンジニア以外への責任説明を果たそうとすると努力は必要だが、必ずしもそれが伝わるとは限らない。 難しいことを難しいと言えないと、「それってすぐできるんでしょ?」という展開になりがちで、「任せてくれ!」と言えるのはかっこいいが、誰しもがスーパーエンジニアではない。そして見積もりに失敗する。

    アジャイルの「顧客に価値を届ける」の嘘と本当 - mizchi log
    udzura
    udzura 2013/02/09
    アジャイルが加速するんだよ!!!!!10
  • MacでC#導入メモ - mizchi log

    最近のゲームエンジンの流行はC#(Mono)で Macでも使えて損はないので、Unityが内包してるとはいっても手軽に動かしたいじゃないですか mono Download - Mono http://www.go-mono.com/mono-downloads/download.html MDKいれる 動かす 対話インタプリタがある $ csharp Mono C# Shell, type "help;" for help Enter statements below. csharp> var x = 3; csharp> x 3// hoge.cs var s = "Hello C#"; Console.WriteLine(s);$ csharp hoge.cs Hello C# ir でironrubyらしいけど動かない $ ir Cannot open assembly '/Libr

    MacでC#導入メモ - mizchi log
    udzura
    udzura 2013/01/31
    対話インタプリタなんてあるの。。。すごい
  • PythonでWebアプリ開発入門のススメ Flask/MongoDB - mizchi log

    TwitBlogin! http://twitblogin.com/ とか作ったことだし、そこそこ開発環境整って、今なら思いつく限りのサービスはさっくり実装できそうだったのでPython初心者向けに書いておく。 少しでもPythonユーザが増えれば幸い。 対象は Python の基的な構文程度はわかるけど、具体的に何から手をつけていいかわからない人 目次 Apache/WSGI/MongoDBの環境構築 flask [ Sinatra風ウェブアプリケーションフレームワーク] pymongo [ MongoDBラッパー ] werkzeug [Web Application デバッガ] jinja2 [ HTMLテンプレートビルダー ] pyquery [ jQuery風HTMLパーサ ] nose [ TDD ] 細かいライブラリの使い方とかPython体の言語仕様とかは適当にぐぐって

    PythonでWebアプリ開発入門のススメ Flask/MongoDB - mizchi log
    udzura
    udzura 2013/01/23
    参考になる記事を眺めている
  • HTML5でロードオブナイツとかいうゲームを作った - mizchi log

    陣取り戦争ゲーで、iPhoneUnity版からの移植です。 ロードオブナイツ - Yahoo!モバゲー http://yahoo-mbga.jp/game/12011436/detail PC(Chrome/Firefox/IE9以上)とスマホ(Webkit)で同じ物が動きます。ヤバゲーとモバゲーでアカウントは共有してるので、どっちからでも入れます。 HTML版としては既存コードとか一切なかったんで、JSに関してはフルスクラッチです。というか全部CoffeeScriptです。 ある日会社で楽しくHaskellでKPI計算モジュール書いてたら、 「UnityのネイティブのゲームHTML5に移植したい」 みたいな話が降ってきたので、移植しました。3ヶ月ぐらいで。 プラットフォームはモバゲー(スマホ) + ヤバゲーです。HTML5なのは、スマホとブラウザゲーで開発リソースを共通化したかったか

    HTML5でロードオブナイツとかいうゲームを作った - mizchi log
    udzura
    udzura 2012/09/01
    乙でした〜
  • CoffeeScriptのあまり知られていない文法 - mizchi log

    知られてない機能ってのは大抵公式リファレンスにのってない奴なんですが、結構便利なのがあるので紹介しておこうと思います。 ハッシュ値を取り出す方法 {abs, sin, cos} = Math引数値でもパターンマッチ的に使うことができる。 次のコードが $.get "/json", {}, (data) -> console.log data.a, data.b, data.cこのように書き換えられる。 $.get "/json", {}, ({a, b, c}) -> console.log a, b, cすべてのオブジェクトがハッシュで表現されるJS、その拡張ならではの略記ですね なお、展開後の変数にデフォルト引数は付けられなかったです。残念。 引数オブジェクト展開 arguments... で引数オブジェクトを展開することができます。 f = -> console.log argume

    CoffeeScriptのあまり知られていない文法 - mizchi log
    udzura
    udzura 2012/08/13
    {abs, sin, cos} = Math 最初見たときびっくりした / Ruby でも def hoge *args ってのはできるけど、そういうことではなく?
  • 死んで覚える本当のGitの使い方 - mizchi log

    注意: バズってますが、これははてなダイアリーからはてなブログの自動マイグレーションに失敗してたものを復旧させたもので、書かれたのは2012年です。 - 最近流行っているGit初心者向け記事は、「僕らが当に知りたかったこと」が欠けているようにしか思えません。 そこで、当のGitの使い方を僕が皆さんに伝授しようと思いました。 なにはともかく使ってみよう 前提として、皆様のお手元にはすでにGitがインストールされているものとします。 今回はエディタとしてDungeonCrawl StoneSoupを使います。 Downloads « Dungeon Crawl Stone Soup http://crawl.develz.org/wordpress/downloads Dungeon Crwal Stone Soup は今一番ホットなオープンソースのローグライクです。風来のシレンやトルネコ

    死んで覚える本当のGitの使い方 - mizchi log
    udzura
    udzura 2012/07/31
    このゲーム面白そう
  • rspecでなんでも通すモックを定義してみた - mizchi log

    rspecを初めて使ったので、モックを使うメモ gemのmailを使ってGmailを送るメソッドがある。 require "mail" # ... def send_alert_to_gmail(content) mail = Mail.new mail.from = CONFIG['email'] mail.to = CONFIG['to'] mail.charset = "UTF8" mail.body = content mail.delivery_method :smtp, { :address => 'smtp.gmail.com', :port => 587, :domain => 'smtp.gmail.com', :user_name => CONFIG['email'], :password => CONFIG['password'], :authentication =

    rspecでなんでも通すモックを定義してみた - mizchi log
    udzura
    udzura 2012/04/16
    MailTester って Mail gem のどこに入ってるの?
  • クライアントのテストは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
    udzura
    udzura 2012/04/11
    これ、Capybara相当のことができるってこと?
  • なぜ coffee-script が盛り上がるか - mizchi log

    情報感度が高く体面を気にするIT企業の皆さんは、今日はさっさと帰れと言われてるので、やることなくなったエンジニア達がcho45さんの釣り針に釣られてハッスルしているのだと思われます。弊社も朝からudzuraあたりがハッスルしてるのをみてました。 暇なので大喜利に参加。というか、他の方が言及していない、なぜcoffee-scriptの良い面、について書きたいと思っています。 -> のエイリアスが、関数オブジェクトの意識を変えた > の関数定義はJS来の関数型言語への意識を呼び覚ましました。そもそも今までが関数型もどきの言語ポテンシャルだったくせに関数オブジェクトが文字数的な問題で使いにくかったのです。 テンプレートエンジンのCoffeekupでは、高階関数の入れ子によってDOMを表現するなんてこともやってます。 doctype 5 html -> head -> meta charset:

    なぜ coffee-script が盛り上がるか - mizchi log
    udzura
    udzura 2012/04/04
    「udzuraあたりがハッスル」と敬称略なのは、同僚ということで社外向け文書だからであり、けっしてぼくがmizchi(敬称略)に舐められているということではありません
  • Elixir勉強会いってきました ~~ ErlangとRubyの中間、Elixir - mizchi log

    ShinjukuEx第一回いってきました。新宿のブルックリンパーラーにて飲酒しながら、6人ぐらいでコード書いていました。会社でコード書いてたら連れだされて参加した感じです。 Elixirとは ErlangのBeamというエンジン上で動く、Rubyみたいなシンタックスを持つ関数型言語です。Erlangの高可用性をもっとカジュアルに使いたい、といった需要でできたそうです。とはいっても関数型の強力なパターンマッチとRubyっぽいシンタックスのいいとこ取りで、ある意味でScalaみたいな設計思想です。 僕がうだうだ言うより他の人の記事読む方が早いです。 Rubyist が今すぐ Elixir を使ってみるべき理由 - m.igrs.jp elixirはプログラマの万能薬になるか - Fat Old Sun Rubyistが〜のいがらしさんが勉強会の主催でした。ありがとうございました。 論よりコード

    Elixir勉強会いってきました ~~ ErlangとRubyの中間、Elixir - mizchi log
    udzura
    udzura 2012/03/13
    お疲れさまでした〜
  • アジャイルサムライを読んだ - mizchi log

    入社前に読んどけって言われたので。 アジャイルサムライ−達人開発者への道− 作者: Jonathan Rasmusson,西村直人,角谷信太郎,近藤修平,角掛拓未出版社/メーカー: オーム社発売日: 2011/07/16メディア: 単行(ソフトカバー)購入: 42人 クリック: 1,991回この商品を含むブログ (257件) を見る 筆者が日人じゃないと知ってからニンジャスレイヤー臭が高まった。 原則 動くソフトウェアこそが尺度 大きなタスクは分解しろ 最初の見積もりは信じるな チームの力を無駄なく最大限にするのが目的 顧客の要求を叶えるために、顧客には積極的にプロジェクトに関わってもらおう プロジェクトの成功に奇跡が必要なら、それは絶対に良いプロジェクトではない 役割分担 個々人の役割は横断している。 ただし、自分と近い人(お隣さん)を常に知っておくとチームはよく動ける。 あいまいな

    アジャイルサムライを読んだ - mizchi log
    udzura
    udzura 2012/03/12
    ぼくは......その......まだ読んでないんです............
  • 働いてみた - mizchi log

    木曜日から、一日目は社内ツールを触って、二日目でプロジェクトへのコミットのフローを覚えた感じ。 正直覚えきれない。あと社内プロジェクト用の略語多いのも辛い。 今まで趣味コーディングやってきたけど、会社でもその知識は役に立ってる。割とモダーンなことをやってる会社なので、趣味でいじってたコードの延長をそのまま書いてる。ちょっとコーディング規約が厳しくなった気がするけど、常識的な範囲内。 というか何もやってなかったらおそらく即死だったので、業務フローとノウハウさえ追いつけば、なんとかなりそう。Emacs 、Vim 、Git 、LL言語群、ここらへんはどの会社行っても覚えといて損はないと感じた。 扱ってるデータが社外秘なのは当然だとしても、扱ってるツールはOSS系が多いのでこっちのブログとかでもTIPSまとめたりしたいんだけど、社内wikiにまとめるべきか、ここに書いていいのかわからない。社内Wi

    働いてみた - mizchi log
    udzura
    udzura 2012/03/12
  • 株式会社Aimingにいきます +ソーシャル就活について思ったこと - mizchi log

    node/webosocketによるオンラインゲームの実装を考える / オンメモリ、KVS、RDBMS、圧縮プロトコル、そのゲームデザイン + 就活の話 - mizchi log という記事を書きまして、一応ソーシャル就活っぽいことをしたからには報告する義務があると思いまして、ここで報告させて頂きます。 株式会社Aimingにいきます。 株式会社 Aiming(エイミング) Aimingはオンラインゲームの会社です。ゲーム系ながらWeb系と親和性が高く、それなりに大きなデータを持ち、自分のスキルセットとゲーム的な志向に適合し、そして字面だけではない実践的なアジャイルな開発環境にシビれた、というのが選んだ理由です。なにより社員の人達が最新技術に貪欲で、どんどん新しいことにチャレンジさせてもらえそうだ、という点も大きいです。 ついでにいえば、僕自身コアゲーマーなので、ガラケーの5をぽちぽちする

    株式会社Aimingにいきます +ソーシャル就活について思ったこと - mizchi log
  • Emacsのcoffee-modeで、おもむろにJavascriptをcoffeeに置換する。(マージされました) - mizchi log

    *追記* 家にマージされたので、デフォルトでこの機能使えます https://github.com/defunkt/coffee-mode を参照してください CoffeeScriptは素晴らしい言語なんだけど、ネット上のサンプルは基的にJSで転がってるので、コピペした際は手作業で修正する必要があります。 で、js2coffeeっていうjavascript -> CoffeeScript って変換を行うプログラムがあるんだけど、それ使ってEmacsのcoffee-modeでjavascriptをcoffeeに置換できるようにした。 使い方 こんなコードを拾ってきたとして hoge = function(){ console.log("hello"); };リージョン選択して M-x coffee-js2coffee-replace-region すると置換される hoge = -> c

    Emacsのcoffee-modeで、おもむろにJavascriptをcoffeeに置換する。(マージされました) - mizchi log
    udzura
    udzura 2011/10/26
    ホホウ
  • 1