業界で名の知れたプログラマーは、今年1年何を学んでいたのか? 2012年も残りわずかとなり、いよいよ「年忘れ」の時期になった今、あえて今年1年で学んだことを忘れる前に取材・記録しておこうという本企画。「同業者が役に立ったものは、自分にも役に立つはず」という仮説を基に、彼らの学びlogから、今年の流れと来年の動向予想をしてみよう!
![コードの複雑さを上げずに「世界の複雑さ」と戦うために読んでおきたい良書5選【2012年のインプットlog-和田卓人】 - エンジニアtype](https://cdn-ak-scissors.b.st-hatena.com/image/square/834ffc92e0bafb61ca28b5b260ab5ae35f5faf5f/height=288;version=1;width=512/https%3A%2F%2Ftype.jp%2Fet%2Ffeature%2Fold_contents%2F2012%2F12%2Ft-wada1111111.jpg)
概念/仕組み Deferred/Promisesは非同期処理を簡単にするための取り決め。 callback hellと呼ばれているような、非同期処理によるコールバックのネストを軽減することができて非常に便利。 慣れれば便利だが、一見どう使えばいいのか分かりづらいので、少し解説を書く。 ここではPromises/Aという仕様を実装したQというライブラリを使うが、jQuery.Deferredなどもほぼ同じである。 まず、Deferred/Promisesは、関数のreturn、try/catchの非同期版である。 www.example.comの内容を取得し、正しく取得できたら中身を表示し、取得できなければエラーを表示する、というプログラムは 同期的なコードでは、 function get() { var req = new XMLHttpRequest(); req.open('GET',
Two weeks ago, I open-sourced TravisLight, a build monitoring tool – also known as a build wall – for Travis-CI. That was a weekend project I did for fun but also to embrace frontend development. When I was at Nelmio, I was mainly a backend dev, even though I worked on some JavaScript stuff. I spent most of my time writing APIs for the frontend developers, not JavaScript apps. That needed to chang
今日まで Ember.js の紹介をしてきました。 思えばAdvent Calendarを書き始めた12/1の時点では、私自身、Ember.jsについてはほとんど何も知らない状態でスタートしました。 もっともknockout.jsを業務に使っていたので、データバインディング機能の便利さは理解していましたし、Ember.jsが記述の柔軟性のレベルでは他のデータバインディングより洗練されているので、コンセプトレベルでは間違いなくすばらしいフレームワークである、ということは確信していました。 ただ、Router, ストレージの利用方法、拡張方法についてはまったく分かっていなかったので、どこまで実運用に耐えうるフレームワークかは未知数でした。 それから1ヶ月ほどEmber.jsを調査してみた結果、利用上で心配していた点については問題ないことが分かってきました。 今ではEmber.jsは効率的に動的
2012-12-10 高さが異なるセルを持つUITableViewのサンプル その1 Sample github Twitterアプリのタイムライン表示などはUITableViewを使っていると思いますが、ツイートの内容に応じてセルの高さが変わります。あのようなことを実現するためのサンプルをgithubにcommitしました。ここではそのサンプルの説明をしていきます。 サンプル: https://github.com/stack3/STFlexibleCellHeightSample ※UITableViewで最低限セルの表示をしたことがある人を前提としてます。 サンプルを起動してTweetsを選択すると以下の様な画面になります。 異なる高さのセルが表示されているのがわかるはずです。 この画面を構成するクラス STFlexibleCellHeightViewController この画面の
Chromeの開発者ツールやFirebugのブレイクポイントには、多くのデバッガと同じく特定の条件でだけブレイクする設定をするために編集するという機能があります。 ここには式ならなんでも書けるのでいろんなことができます。 この記事ではChromeの開発者ツールを例に挙げていきます。 ブレイクポイントを編集する ブレイクポイントの編集は、追加済みブレイクポイントのコンテキストメニューから行うことができます。 選択すると、ブレイク条件を設定するための入力欄が表示されます。ここに入力した式の結果がtrueと評価できる値になる場合だけブレイクするようになります。 通常はここにブレイクするための条件を書きます。以下の図の入力だと常にブレイクします。 編集を使ったテクニック さて、ここには好きな式を書くことができるので、ブレイク条件を設定する以外にもいろんなことができます。 好きな位置でconsole
JavaScriptを書いていてぶち殺したくなった時によく使うリファクタリングです。 1.定義順を整理 JavaScriptパターンの5.4.1 モジュールパターンの開示を参考に、var、処理、API公開の順に並べなおす。 function () { //宣言 var hoge = 'hoge', fuga = ''; //処理 fuga = foge; //APIの公開 return { hoge: hoge, fuga: fuga }; } 2.戻り値をオブジェクトにする 戻り値を増やしたいときにまずオブジェクトに変えてから、値を増やす。 型付けが弱い言語は二つ以上の値を返すのが当たり前なのが凄い。 function () { return { hoge: hoge, fuga: fuga }; } 3.戻り値をオブジェクトでなくす 「戻り値をオブジェクトにする」の逆。 戻り値を一つし
移転しました http://please-sleep.cou929.nu/20121229.html
Why do we hate testing? How do we test JavaScript? How do we test Backbone.JS? (Credits to @searls for slides 6 through 12, used with permission).
Posted 2012年12月31日 by fushimi & filed under リリースノート. こんにちは。開発チームの伏見です。 enchant.js v0.6.2 をリリースしました。こちらからダウンロードできます。 主な変更点は以下の通りです。 Lazy-Scene による Android 描画の高速化 (#145) v0.6系のSceneはCanvas描画とDom描画を、Sceneが持つCanvasLayerオブジェクトとDomLayerに行います。Sceneに追加するEntityが_elementプロパティを持つかによって、CanvasLayerに描画するかDomLayerに描画するかを振り分けていました。 現在のバージョンではSceneの生成時にCanvasLayerとDomLayerを生成しSceneの持つdiv要素に追加しているため、常にCanvasの上にdiv要
軽量化されたSIE 7 ご報告が遅れてしまいましたが、12月25日に、SIE 7 を公開しました。軽量化が主な変更点です。 ダウンロード (無償) http://sourceforge.jp/projects/sie/downloads/57700/sie-7.zip/ 変更履歴 セミコロンの付け忘れを修正 不要なreturn thisの文を削除 MouseEventのcallメソッド呼び出しは、apply呼び出しが正しかったので修正 不要なargumentsを削除 Document._destroy関数を追加 setRGBColorメソッドと_keywordsプロパティの軽量化 getComputedStyleメソッドの改良 チケット #30345 「リンクに#がついたときにSVG画像をダウンロードする」を修正 (beta fixed) 詳しくは リリース詳細 http://source
Overview Yet Another JSON Library. YAJL is a small event-driven (SAX-style) JSON parser written in ANSI C, and a small validating JSON generator. YAJL is released under the ISC license. Documentation Documentation generated by doxygen from source is available for v2.1.0, and for the previous stable release: v1.0.12. Code Get it on github: http://github.com/lloyd/yajl Support You can find Yajl on I
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く