タグ

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

  • 小物エンジニアの会でオブザーバーパターンのアンチパターンについて発表してきた - mizchi log

    小物エンジニア年収780万円以下だそうです 小物エンジニアの会 : ATND http://atnd.org/events/41091 発表資料は面倒くさかったのでGistです hanabi.md https://gist.github.com/mizchi/6081622 西新宿のありふれた公園で酒飲みながら屋外発表会、破滅的でした

    小物エンジニアの会でオブザーバーパターンのアンチパターンについて発表してきた - mizchi log
    mitukiii
    mitukiii 2013/07/28
  • 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
    mitukiii
    mitukiii 2013/07/20
  • プログラミングはそれ自体が目的であっていい - mizchi log

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

    プログラミングはそれ自体が目的であっていい - mizchi log
    mitukiii
    mitukiii 2013/05/13
  • Web系新卒っていうかゲーム開発者一年目が去年読んだ技術書 & ライブラリ - mizchi log

    カタ氏(@hotchemi)が意識高い記事書いてたので、自分もまとめてみる。 文系学部生がSIerに入社してから読んだメモ - ギークに憧れて http://hotchemi.hateblo.jp/entry/2013/04/01/000844 自分Web系っていうかHTML5+Unity+AS3 のゲームガッツリ系+Webもやるって感じなので、最近の自己認識としてWebっていうよりはゲームプログラマな気がしている。 JSが多いのはHTML5ゲーム技術調査とかしてたからです。 書籍 7つの言語 7つの世界 作者: Bruce A. Tate,まつもとゆきひろ,田和勝出版社/メーカー: オーム社発売日: 2011/07/23メディア: 単行(ソフトカバー)購入: 9人 クリック: 230回この商品を含むブログ (65件) を見る一部情報が古いが、ClojureやIoについて書かれた貴重

    Web系新卒っていうかゲーム開発者一年目が去年読んだ技術書 & ライブラリ - mizchi log
    mitukiii
    mitukiii 2013/04/03
  • 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
    mitukiii
    mitukiii 2013/03/10
  • 動的型とか静的型の話の前に「作者の気持ち」を考えろ - mizchi log

    自分の思考を整理する意味でも、件のアレについて考えたことを書いてみる。 変数に型がないということの利点について考える - サンプルコードによるPerl入門 http://d.hatena.ne.jp/perlcodesample/20130227/1361928810 この件に触れることはプログラマとしての中二病である。恥ずかしい。マジレス乙だ。 でも気づいたら5000文字も書いてしまったし、公開して酒のんで寝る。 型のフローは機械のためだけでなく、人間に対するものでもある 最近TypeScriptを書いている。こいつを使って、二次元座標上で二点間を求める関数、getDistanceを定義してみよう。 interface IPoint { x: Number; y: Number; } var getDistance = (a:IPoint, b:IPoint): Number => Ma

    動的型とか静的型の話の前に「作者の気持ち」を考えろ - mizchi log
    mitukiii
    mitukiii 2013/03/03
  • Mac/emacsでHaskell環境を作る - mizchi log

    最近会社でHaskell書くタスクがあがってきたので環境を作っていた。 最近sublimtext2ばかり使っていたのだが、haskellはかなり文法がかなり厳密な言語なのでflymake(シンタックスチェッカ)がないと辛い Haskellのインストール 最近のMac(Lion)は標準だとllvmでないgccは持ってないので以下のリンクからDLしてくる https://github.com/kennethreitz/osx-gcc-installer LLVMに対応していないので、Macデフォルトのgcc(llvm-gcc)は使えない Haskellのバイナリをもらってくる http://hackage.haskell.org/platform/ Homebrewにもあるが、自前のビルドはかなり時間がかかる Haskellのパッケージマネージャのcabalは /Developer/usr/b

    Mac/emacsでHaskell環境を作る - mizchi log
    mitukiii
    mitukiii 2013/03/01
  • 最近のJSの開発環境について知っておくべきライブラリ10個 - mizchi log

    ほんとに10個だと思った?(無意味に煽っていくスタイル) 最近JSだけのリポジトリで無益なゲームを大量に作っては破棄しているのだけど、割とストレスなく出来上がってきたので書く。 長々と書くが、要は次のリポジトリに概要が詰まってる。 mizchi/mizchi_client_boilerplate · GitHub https://github.com/mizchi/mizchi_client_boilerplate 前提として、最近はCSJSでもnodeのインストールを前提とする環境が多い。必須といってもいい。 grunt gruntjs/grunt · GitHub https://github.com/gruntjs/grunt ビルドタスクを簡単に作れる。make、rake、などに相当するが、node製らしくファイルシステムの監視でアクションを作れるのが特長。$ grunt serv

    最近のJSの開発環境について知っておくべきライブラリ10個 - mizchi log
    mitukiii
    mitukiii 2013/02/17
  • アジャイルの「顧客に価値を届ける」の嘘と本当 - mizchi log

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

    アジャイルの「顧客に価値を届ける」の嘘と本当 - mizchi log
    mitukiii
    mitukiii 2013/02/08
  • 地方都市という地獄 あるいは関東圏の「私が住んでるところは田舎だよ(笑」が如何に残酷かについて - mizchi log

    都会に住む人間は、その価値を過小評価している。というのが僕の持論だ。そしてそれは東京に6年住んでより強固になった。 都心住まいの価値とは何か - よそ行きの妄想 http://d.hatena.ne.jp/chnpk/20130115/1358204323 この記事の感想としては、およそ渋谷に特徴的な衛生問題が多いという事実には同情するとしても、常になにかしらの機会が与えられていることを無自覚だ、という点が地方の人間を刺激するだろう。 子供用の自転車が買えなかったとしても、買える距離に生きているのだ。さすがに子供用の自転車ぐらいは田舎でもみつかるが、嗜好品の類はそもそも手に入るかが怪しい。 今ではインターネットで緩和されたとはいえ、それを実際に目にする機会があるかという点において、それを好きになる機会すら与えられないかもしれない。 表題は、地方出身者を最も怒らせる一言である。 僕は、18歳

    地方都市という地獄 あるいは関東圏の「私が住んでるところは田舎だよ(笑」が如何に残酷かについて - mizchi log
    mitukiii
    mitukiii 2013/01/15
  • JSのMVCについて考えてみた ~ その2 テンプレートエンジンの分業とパフォーマンス - mizchi log

    この前の続き。相変わらず思いつきでつらつら書いてて図とかまともなサンプルとかない。 JSのモデルには二種類ある フロントエンドである以上質的にすべてビューだとも言える。 であるがゆえにあやふやにしないほうがいい。 ビューモデル UIの状態を示す属性。選択しているタブとか、開いているダイアログとか、そういうものの状態をDOMから読むのではなく、JSとして一度確定し、その結果をビューに反映すべきだ。激しく画面を組み替える場合はビューというグローバル変数はどこからも汚染される可能性がある。 データベースのローカルキャッシュ たとえば、a地点からb地点の距離をユークリッド距離を求めるのに、わざわざサーバーに問い合わせるのは無駄。普通に三平方の定理で計算すればいい。アクション性が高いものほど、ここの振る舞いは分厚くなる。いわゆるHTML5アプリはここを重点的にやるほどサーバーの負担が減り、サーバー

    JSのMVCについて考えてみた ~ その2 テンプレートエンジンの分業とパフォーマンス - mizchi log
    mitukiii
    mitukiii 2012/11/30
  • 大規模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
  • ウェブ業界の新卒が集まる勉強会行ってきた #oblove - mizchi log

    ちょっと酔ったまま書いてるので色々アレですが何も書かないよりマシだと思ったので書きます。 オブラブ 収穫祭 〜若手エンジニア、実りの秋 http://esminc.doorkeeper.jp/events/1746 ウェブ業界の新卒(そんなものが存在するのか)が集まって、どんな業態で新卒がどんなふうに働いてるか発表する勉強会があると聞いて、一応ウェブ業界の新人枠で働いてる自分としては、冷やかしのつもりで行ってみた。そしたら適度に砕けてて適度に意識高かったのでよかった。 勉強会とその後の飲み会ではえらく意識高まったのだけど、個別の発表について感想書こうと思ったけどお酒入ってしまったせいで全然覚えてないし、お疲れ様回の後に飲み会の後 @ainame と @r7kamura (いずれも某社と某社の新卒) とまどまぎ後編見て感動したので、細かいことが吹き飛んでしまい覚えてない。 登壇していた企業は

    ウェブ業界の新卒が集まる勉強会行ってきた #oblove - mizchi log
    mitukiii
    mitukiii 2012/10/15
  • 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
    mitukiii
    mitukiii 2012/08/16
  • 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
    mitukiii
    mitukiii 2012/07/06
  • 社内LTで「炎上」について話した - mizchi log

    ブログ書くにあたって気をつけていることについて社内LTで話したのですが、評判がよかったので公開許可をもらいました。 こんなひどいテーマで公開許可をくれたAimingありがとうございます(ステマ) 炎上 View more presentations from Koutaro Chikuba 一応念の為に申し上げておくと、僕はソーシャルメディアマーケターではなく、Webエンジニアです。 ついでにいうと、僕は坂口なんとかさんの先輩らしいです。

    社内LTで「炎上」について話した - mizchi log
    mitukiii
    mitukiii 2012/05/24
  • クライアントのテストは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
  • なぜ coffee-script が盛り上がるか - mizchi log

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

    なぜ coffee-script が盛り上がるか - mizchi log
    mitukiii
    mitukiii 2012/04/03
  • node/webosocketによるオンラインゲームの実装を考える / オンメモリ、KVS、RDBMS、圧縮プロトコル、そのゲームデザイン + 就活の話 - mizchi log

    派手で見栄えがする大規模なプロダクトを作ろう!っていうことで、一人でフルスタックなネトゲを作っている。大きなプログラムを書いても破綻しないようにテスト書きまくってテストファーストを心がけたり、Travis-CIによる継続的インテグレーションで頑張ったり。 というわけで作っているのはMMORPGなんだけど、ここで実装するのはまあ平均的なMMORPGを想像してもらいたい。自分がやろうとしているのは、モダンなOSSとさくらの安いVPSで、独学の学生一人でもフルスタックなネトゲみたいなのが組める、ということの実証。 なんでそんなことをしているかって言うと、一応就活中で、見栄えがするアプリ提出できるとおいしいなーっていう下心。 *追記* ここでは https://github.com/mizchi/wanderer のことを言ってるんだけど大規模リファクタリング中なのでここで言ってることは半分ぐらい

    node/webosocketによるオンラインゲームの実装を考える / オンメモリ、KVS、RDBMS、圧縮プロトコル、そのゲームデザイン + 就活の話 - mizchi log
    mitukiii
    mitukiii 2012/03/16
  • 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
    mitukiii
    mitukiii 2012/03/13
    "関数型のおぞましい世界を触ってみよう!"