タグ

ブックマーク / tech.nitoyon.com (31)

  • Object.observe の死 (ECMAScript の提案取り下げ、V8 からも削除予定)

    1年前の記事 JavaScript フレームワークがデータバインディングを実現する4通りの手法 では、Object.observe() について次のように説明した。 JavaScript オブジェクトが変更されたときにコールバックを呼んでくれる API データバインディングの実装が簡単になる Google Chrome には実装済み ECMAScript 7 に提案中 提案が通れば MV* フレームワークの実装がシンプルになってハッピー 将来を期待されていた Object.observe() であったが、2015 年 11 月頭、ES Discuss メーリングリストへの An update on Object.observe という投稿で、ECMAScript からの提案が取り下げられて、V8 エンジンからも年内に削除される予定であることが表明された。 Object.observe()

    Object.observe の死 (ECMAScript の提案取り下げ、V8 からも削除予定)
    hisasann
    hisasann 2015/11/19
    O.oの死
  • JavaScript フレームワークがデータバインディングを実現する4通りの手法

    最近流行りの JavaScript MV* フレームワークは、どれもデータバインディングをサポートしているが、実現方法はフレームワークによって異なる。 この記事では、各種フレームワークがどのようにモデルの変更を検知しているかを次の 4 つのパターンに分類して紹介する。 モデル クラス方式 (Ember.js、Backbone.js、Ractive.js、Knockout.js など) 力ずく方式 (AngualrJS) モデル書き換え方式 (Vue.js) Object.observe 方式 (Polymer) パターン名は私が勝手に名づけたものだけど、このへんの雰囲気が理解できれば、フレームワークごとの個性が分かるだろうし、利用イメージもわきやすいんじゃないかと思っている。 1. モデル クラス方式 「モデルとして扱えるのはフレームワークが用意したモデル クラスのインスタンスだけ」という

    JavaScript フレームワークがデータバインディングを実現する4通りの手法
  • Vue.js が data に渡した値を激しく書き換える件について

    最近、JavaScript の MV* フレームワークの中で Vue.js が少しずつ注目を浴びてきているようであります。 5分でわかるVue.jsと、jQueryで頑張ってはいけない理由 | 株式会社インフィニットループ技術ブログ Vue.jsから手軽に始めるJavaScriptフレームワーク - Qiita 軽量でパワフルなデータバインディングMVVM, vue.jsで遊んでみた - mizchi's blog そんなわけで、自分も Vue.js (v0.10.5) を触ってみたのですが、data で渡した値を激しく書き換えるところに面らったので記事にしておきます。 自作クラスのオブジェクトを Vue.js に渡すと壊される 何らかのビジネスロジックを持ったモデルを作って、それを Vue.js のデータバインディングで HTML に反映しようすると破綻します。 簡単な例として、よくあ

    Vue.js が data に渡した値を激しく書き換える件について
  • Git にパッチを送って取り込まれた話

    Git の挙動に変なところを見つけたので、パッチを作って Git のメーリングリストに投げてみたところ、何度かのレビューを経て、無事に取り込まれた。 Git に貢献したい人とか、オープンソース開発の流れに興味がある人もいるだろうから、作業の流れを書いておくことにする。 1. バグを発見する 何はともあれ、修正したいところを見つけるところから。 先日、git difftool --dir-diff が便利すぎて泣きそうです という記事を書いたが、difftool --dir-diff の挙動を調べているうちに、一時ファイル書き戻し条件が変なことに気づいた。 手元のバージョンが古いのかとも思ったが、master ブランチでも再現したので、ちょっくら深入りしてみた。git difftool は Perl スクリプトだったので、ソースコードに print を追加しつつ挙動を探っていった。しばらく調

    Git にパッチを送って取り込まれた話
    hisasann
    hisasann 2013/07/23
  • Node.js 0.12 では yield が使えるのでコールバック地獄にサヨナラできる話

    Node.js の次のメジャーバージョン 0.12 で yield が使えるようになります。 そのおかげで、JavaScript のコールバック地獄に光が差し込むのです。ああ、さようなら、コールバック地獄。 7 年ごしで実現した yield 2006 年、Firefox 2 のリリースと同時に yield は JavaScript 界に登場しました。随分と前の話ですね。 登場した当時は JavaScript 界隈でけっこう話題になっていました。 JavaScript 1.7 の yield が凄すぎる件について - IT戦記 Latest topics > JavaScript 1.7のyield文ってなんじゃらほ - outsider reflex JavaScript 1.7 の新機能: Days on the Moon 登場したときにはインパクト大きかったものの、結局 Firefox

    Node.js 0.12 では yield が使えるのでコールバック地獄にサヨナラできる話
  • -webkit-text-size-adjust: none を絶対に設定してはいけない理由

    PC 版の Google Chrome や Safari で見たときにユーザビリティーが落ちるから。 以上。 で終わってしまうと記事にならないので、ちゃんと説明しておく。 そもそも -webkit-text-size-adjust とは何か iPhoneAndroid のブラウザーは、縦向き (Portrate mode) と横向き (Landscape mode) の文字サイズを自動調整する機能がある。 これを制御するのが CSS の -webkit-text-size-adjust である。 文字サイズ自動調整の具体例 次のような HTML をスマートフォンで表示してみる。 <!DOCTYPE html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-

    -webkit-text-size-adjust: none を絶対に設定してはいけない理由
    hisasann
    hisasann 2013/02/14
    100%と指定する、かデフォルトのautoのままがいいのかな
  • 「コピペできない文章」がコピペできなかった理由 - てっく煮ブログ

    html5先日公開した 絶対にコピペできない文章を作ったったwwww はおかげさまで好評だったようで嬉しい限りです。「不思議!」「どういう仕組みなんだ?」という声も多かったので裏側を紹介します。コピペできない訳ではないタイトルは「コピペできない」としていいますが、実際にはコピペはできます。正確に表現すると「コピーすると違う文字になる」という状態になっています。 ではなぜ違う文字になるのでしょうか。結論をいってしまうと「そこにある文字が、人間の目に見える文字とは違う」からです。といっても、これでは分からないですね。今回のために作成された独自フォントトリックの肝は「フォント」です。フォントといえば、文字の見た目を変えるために利用するものです。たとえば、「ほ」という文字を「メイリオ」フォントで表示するとこうなります。フォントを変えて「HG創英角ポップ体」フォントで表示すると、ポップな雰囲気になり

    hisasann
    hisasann 2012/04/23
    いじわるフォント
  • 絶対にコピペできない文章を作ったったwwww - てっく煮ブログ

    html5一見、コピーできるように見えますが、ペーストしてみると・・・。ツイートする

    hisasann
    hisasann 2012/04/20
    へー、こうゆうことできるのかー。
  • UTF-8 対応の msysGit 1.7.10 リリース! いよいよ Windows で git できるよ!!! - てっく煮ブログ

    git先日、msysGit(Git for Windows)がいよいよ公式に UTF-8 をサポート! という記事で「UTF-8 対応のコードがコミットされた」ことをお伝えしましたが、ついに、UTF-8 対応の新バージョン、msysGit 1.7.10 がリリースされました。いよいよ Windows でも日語ファイル名を扱えるようになったので、「git では "詳細設計所仕様書.xlsx" をコミットできないんでしょ?」とブーブーいってた人を説得できる材料はそろいました!!!!それを記念して、この記事では UTF-8 対応の msysGit 1.7.10 を試してみた ブーブーいう人を黙らせるための「GUI で git する Windows 向けツール」まとめの2立てでお送りしたいと思います。UTF-8 対応の msysGit 1.7.10 を試してみたさっそく Google Code

  • HTML5 雑感 - てっく煮ブログ

    twitter にちょぼちょぼ書いてたけど改めてまとめてみた。HTML5 の捕らえ方 HTML5 自体は Flash 対抗というよりも、Ajaxで作ってたようなサイトをより作りやすくするようなものなんだと解釈している。 2010-02-02 21:09:20 via web HTML5 vs Flash の話を見てて気になるのは、人によって Flash を何と捕らえるかが違うところ。videoタグで不要になるFlashは全体の一部だし、Flash使わなくてもできるようなところは既にHTML+JSに置き換わってる物も多い。 2010-02-02 21:09:33 via web JavaScript 使ってるだけで「Ajax だ」「Web2.0 だ」と言われた時代は去り、canvas つかってるだけで「HTML5 だ」と言われる時代がやってきました。 2010-02-11 10:10:53

  • JavaScriptからFlashにフォーカスを与えられるよ - てっく煮ブログ

    asこんな記事を見つけたけどそんなことないよ。Flash上でキー操作をするにはFlashにフォーカスが当たっていなければならない。フォーカスが当たっていない時にJavaScriptからフォーカス出来るか実験してみた。http://codefairy.org/etc/focus-swf.html結果。Firefox 3: 一度手でフォーカスを当てる操作をした後だとフォーカス出来るSafari 4: 無理Chrome 2: 無理IE 8: 無理むり! less - JavaScriptからFlashにフォーカスを与えられるかこの記事ではフォーカスを得られるかどうかを MXML の Application.focusIn イベントで判別してるんだけど、ここに問題がある。簡単にまとめると、Flash を扱う場合にはフォーカスといってもブラウザが管理しているフォーカスFlash が管理しているフォー

    hisasann
    hisasann 2009/07/07
    setFocusすればflash内にフォーカスを当てられる
  • AS で別ドメインの画像を読み込むときの注意点 - てっく煮ブログ

    asActionScript を使って 外部ドメインの画像を読み込むときの注意点を調べてみた。AS3 で調べたけど、AS2 でもセキュリティの機構自体は同じ(だと思う)。読み込み方Loader クラスを使えば外部ドメインの画像をロードできる。 var loader:Loader = new Loader(); var req:URLRequest = new URLRequest("http://www.example.com/sample.gif"); loader.load(req); addChild(loader); 画像形式は PNG、GIF、JPEG のみ。BMP はダメ。アニメーション GIF の場合は1フレーム目しか描画されない。読み込み完了したことを知るためには、contentLoaderInfo プロパティの complete イベントを監視すればよい。ファイルが存在し

  • Box2DFlashAS3 の単純なサンプルと使い方 (2.0.2版) - てっく煮ブログ

    box2d, asBox2dFlashAS3 はバージョンによって API が激しく変わっていてなかなか困りものだ。2.0.0 なら gihyo.jp の 特集:Box2DでActionScript物理プログラミング が分かりやすくてよいんだけど、2.0.1 で重要な API が改名されていて、そのことがパッケージには書いていない。「Box2dFlashAS3 どうなってるんだ」と思ったら、どうやら Box2D 家の API 変更に素直に追従しているだけのようだ。家側ではそこそこドキュメントはそろっているようなので、ドキュメントが欲しい人は Box2D 付属のクラスライブラリや Box2D User Manual を見たほうがよいかもしれない。今回は Box2dFlashAS3 ver 2.0.2 の単純なサンプルを作った。クリックすると始まるよ。(表示されない場合はリロードしてくださ

    hisasann
    hisasann 2009/04/28
    バージョンにはいつも泣かされる、こうゆうサンプルは非常に助かる
  • 驚きの表現力のお絵かきプログラミング Context Free Art を試してみた - てっく煮ブログ

    文脈自由文法でアートが楽しめる Context Free Art というのを試してみた。Windows, Mac, Linux などで利用できて、簡単なコードを書けくだけで複雑な幾何学アートを生成してくれる。サンプルから1つ起動後、メニューの Example からいくつかのサンプルを試してみた。たとえば、木を生成するサンプル「weighting_demo」のソースはこんなの。 startshape SEED1 rule SEED1 { SQUARE{} SEED1 {y 1.2 size 0.99 rotate 1.5 brightness 0.03} } rule SEED1 0.05 {SEED1 {flip 90}} rule SEED1 0.05 { SQUARE{} SEED1 {y 1.2 s 0.99 r 1.5 b -0.5 flip 90} SEED1 {y 1.2 x

  • jQuery と object タグの怪 (その2) - てっく煮ブログ

    JavaScriptjQuery と object タグの怪 の続き。コメントいただきましたコメント欄で id:coma2n さんのコメントを読んで Silverlight.js の存在を思い出した。Silverlight.jsのヘルパー関数を使えってことなのかなー。ちょっと調べてみます。Silverlight.js の存在を完全に忘れていたが、過去の自分が書いていた…。silverlight.js は SDK インストール時に C:\Program Files\Microsoft SDKs\Silverlight\v2.0\Tools に展開されている。HTML で書くよりも細かな設定ができる印象だ。いくつかの付加機能も魅力的。Flash での swfobject みたいな感じ。Silverlight 2 開発のバリエーション - てっく煮ブログそういえばそんなものがあったなぁ。Silv

    hisasann
    hisasann 2009/02/26
    objectにparamを追加すると1.3以前ではdivタグ挟んでエラー、1.3系ではDocumentFragmentに突っ込んでエラー、結果innerHTML
  • ActionScript3 ブロックスコープの ABC - てっく煮ブログ

    as3, tamarin※ AS3 にはブロックスコープがないよ、という内容です一時変数の効率化|_level0.KAYAC という記事に怪しいことが書いてあったので突っ込んでおきます。この記事によると、for の中で変数を宣言するよりも // 中バージョン function foo1():void{ for(var i:int = 0; i { var a:Object = new Object(); } } 外で宣言をしたほうが // 外バージョン function foo2():void{ var a:Object; for(var i:int = 0; i { a = new Object(); } } a が宣言される回数が少ないので効率的だとしています。けれども、これは間違いです。for の中で宣言しても、ブロックのあとでも生き残ります。もっと言ってしまえば、var 宣言する前

    hisasann
    hisasann 2009/01/22
    JS同様ブロックスコープはない、宣言文をfor文の中で書いても外で書いてもそんなにかわらない
  • IE4 の青写真を懐かしむ - てっく煮ブログ

    Internet Explorer 4.0(以下、IE4)が登場したのは、10年以上前の1997年10月のこと。いま改めて IE4 の資料を調べてみたところ、当時の Microsoft が目指していたものが見えてきて面白かったので、ここに記しておく。Windows 95 + IE4生の Windows 95 に IE4 インストールすると、OS そのものの見た目が変わってしまったのが印象的だった。見た目だけでなく、エクスプローラの操作性が変わるなど、IE4 は Windows 95 SP1 といってもいいぐらいの位置づけだった。中でも目を引くのが、画面右側に登場する「チャンネル バー」だ。このチャンネル バーは、IE4 の目玉新機能のActive ChannelActive Desktopを象徴したツールとなっている。お気に入りを発展させた Active Channelまずは Active

    hisasann
    hisasann 2009/01/20
    まさかIE4のタグを作ることになるとは・・・
  • 【YQL 速攻レビュー】米 Yahoo! が SQL っぽく色んなデータを取ってこれるAPIを出した - てっく煮ブログ

    Yahoo!Yahoo! Pipes みたいに自由度が高くて、またちょっと毛色が違うサービスが出てきた。題して、Yahoo! Query Language。YQL と呼ぶようだ。SQL 風の言語を REST で投げて、結果を XML や JSON で受け取ることができる。具体的にやってみないと分かりにくいので、とりあえず試してみた。RSS からデータ取得YQL を使って RSS から最新のタイトル10個を取ってきてみる。こんな YQL になるらしい。 select title from rss where url='http://d.hatena.ne.jp/nitoyon/rss' rss テーブルに対して select を発行している。実際にこの YQL を試すには YQL 用の console を利用するとよい。(※要ログイン)console の左上に YQL を入力して

    hisasann
    hisasann 2008/12/15
    YahooAPI、SQLライクで取得可能、XML
  • jQuery を高速に使う CSS セレクタの書き方 - てっく煮ブログ

    JavaScriptjQuery は CSS セレクタで要素を選んで処理できるのが魅力的ですね。そんな jQuery ですが、CSS セレクタの書き方次第で速度が大幅に変わってきます。ここでは jQuery の内部処理を疑似コードで示しつつ、jQuery を高速に使うためのポイントを5つに絞って紹介します。何度も同じセレクタを実行しないクラスだけを指定するのは禁止#id を積極的に使う途中までの結果を再利用する子供セレクタ(>)を使うと速くなることがある※ この記事は jQuery 1.2.6 のソースコードを元に記述しています1. 何度も同じセレクタを実行しない改善前 // 例題 1 $("div.foo").addClass("bar"); $("div.foo").css("background", "#ffffff"); $("div.foo").click(function(){

  • jQuery の配列系のメソッドをメモ - てっく煮ブログ

    JavaScriptjQuery は機能が豊富なので、しばらく使わないと忘れてしまう。ここでは、jQuery と配列の関係に絞って目的別に逆引きできるようにしておく。配列から jQuery オブジェクトを作成$ 関数に渡せばOK $([1,2,3]) NodeList のような配列っぽいものを渡しても解釈してくれる。 $(document.getElementsByTagName("div")) // $("div") と同じ ※内部的には setArray メソッドが呼ばれてるが、外から使うことは稀。jQuery を配列のように扱う要素数を取得するlength プロパティを使えばOK。 $("div").length // document.getElementsByTagName("div").length と同じ jQuery のメソッドを使って操作する限りは、適切に length

    hisasann
    hisasann 2008/11/26
    配列、filter