タグ

javascriptに関するnitoyonのブックマーク (602)

  • Bubbles

    Bubbles
    nitoyon
    nitoyon 2022/11/13
    なつかしいかんじ
  • Spirit - The animation tool for the web

    Spirit Studio uses keyframes, just like other industry-standard animation tools. Simply change an element attribute, set a keyframe, rinse and repeat. It's that easy!

    Spirit - The animation tool for the web
    nitoyon
    nitoyon 2016/02/12
    Flash のタイムラインっぽく JavaScript アニメーションを作れるツール? まだリリース前だけど、デモかわいい。
  • 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 からも削除予定)
    nitoyon
    nitoyon 2015/11/18
    1年ぶりぐらいにブログ書いた。
  • An update on Object.observe

    Over three years ago, Rafael Weinstein, Erik Arvidsson, and I set out to design and implement what we believed to be the primitive underlying the data-binding system of MDV ("model-driven views"). We prototyped an implementation in a branch of V8, then got agreement from the V8 team to build a real version upstream, while pushing Object.observe ("O.o") as a part of the upcoming ES7 standard and wo

    nitoyon
    nitoyon 2015/11/07
    Polymer は 1.0 では Object.observe 使わなくなったし、React の流行もあるし、Object.observe を ECMAScript への提案から取り下げて、V8 からも年末までには消す、とのこと。
  • JavaScriptでのDOM操作は重いのかという話とForced Synchronous Layoutについて - id:anatooのブログ

    2015年にもなるのにJavaScriptでのDOM操作のパフォーマンスについて書く。ウェブページにインタラクションを持たせたい時に、JavaScriptでDOM操作を行うことがよくある。このDOM操作のパフォーマンスについて、よく聞く意見を大別すると次の2つがある。 JavaScriptによるDOM操作は重たい レンダリングが重いだけで、DOM操作そのものはそれほど重たくない JavaScriptでオブジェクトのプロパティを操作したりする単体の処理は通常1ミリ秒もかからないが、DOM操作をするとレンダリングが完了するまでに数十ミリ秒程度かかったりする場合がある。1番目のDOM操作が重たいと言っている人は経験則的にそう言っていることが多い。 レンダリングの仕組みを知っている人は2番目の意見を言うが、重箱の隅をつつくような話をするとこれも必ずしも正しいわけではない。DOM操作するコードによっ

    nitoyon
    nitoyon 2015/10/17
    offsetWidth による Forced Synchronous Layout
  • AtomではなぜNode Webkitを採用しなかったのか - Qiita

    Atom Is Now Open Source | Atom Blogによると,Atom開発のためにNode-Webkitを試してみたが利用はせず,別途フレームワーク(Atom Shell)を作成したとのこと. We experimented briefly with Node-Webkit, but decided instead to hire @zcbenz to build the exact framework we were imagining. Node-Webkitを採用しなかった理由を開発者に質問したところ以下の回答が得られた. 技術選定のタイミングではNode-Webkitは安定していなかった&分離されたコンテキスト(nodeのコンテキストとwebのコンテキスト)があった 他のプロジェクトに依存しない,完全に自由な状態でzcbenz(Atom Shellの中心開発者)に

    AtomではなぜNode Webkitを採用しなかったのか - Qiita
    nitoyon
    nitoyon 2015/10/15
    node-webkit (現 NW.js) を使うのではなく Atom Shell (現 Electron) が生まれた理由。
  • シンプルでかつ最高のJavaScriptプロファイラ sjsp を作りました! ― Webアプリケーションが複雑化する中でプロファイラに求められるものとは何か - プログラムモグモグ

    あらすじ Web技術が複雑になる中で、JavaScriptのプロファイリングをとる方法とは。 プロファイリングを取るためのコードを手で書いてみましょう。 とてもシンプルで、かつ最高のJavaScriptプロファイラ sjsp を作りました。 当にあった怖い話 上司 「とにかくJavaScriptのコードを速くしてくれ」 私 「分かりました、速くします」 (次の日) 私 「いいプロファイラがないなら作ればいいじゃない」 同じチームの人 「えっ?」 私 「最高のJavaScriptプロファイラ作ったよ」 同じチームの人 「「えっえっ???」」 私 「早速使ってみたらこことここが遅いって分かったよ」 同じチームの人 「「「この子は一体…」」」 JavaScriptのプロファイリングの難しさ 近年、Webブラウザーの処理速度は著しく向上し、その可用性の高さから、アプリケーションのプラットフォーム

    シンプルでかつ最高のJavaScriptプロファイラ sjsp を作りました! ― Webアプリケーションが複雑化する中でプロファイラに求められるものとは何か - プログラムモグモグ
    nitoyon
    nitoyon 2015/07/02
    Haskell 製のプロファイル用コードを突っ込むツール。
  • ReactとFluxのこと // Speaker Deck

    http://inside.pixiv.net/entry/2015/04/27/170944

    ReactとFluxのこと // Speaker Deck
    nitoyon
    nitoyon 2015/04/27
    分かりやすい。flux は API の発行から View の反映までの流れを制限して読みやすくする枠組みだとざっくり理解した。
  • Class構文について - JS.next

    概要 待ち焦がれた人も多いことだろう。ES2015の一番の目玉機能とも言えるクラス構文が、ついにV8でサポートされた。 Class構文は、『関数(コンストラクタ)定義』+『.prototypeへのメソッド定義』の糖衣構文である。 JSで今まで様々に工夫されてきたクラスの書き方を、綺麗に統一してくれる可能性を秘めている。 クラスを作る 従来、Catクラスを作ろうとした場合このように書いてきた。 function Cat(name) { this.name = name } Cat.prototype.meow = function () { alert( this.name + 'はミャオと鳴きました' ) } しかしこの書き方だとどうしても、コンストラクタとメソッドの定義が分離されているため、クラスとしてまとまりがなく分かりづらく感じる。 メソッドが増えてきた時も、Cat.prototyp

    Class構文について - JS.next
    nitoyon
    nitoyon 2014/11/01
    シンタックスシュガーで ES6 に class。
  • Virtual DOMのアルゴリズムが知りたくてvirtual-domのコードを読んだ話 - saneyuki_s log

    Reactの登場以来気になっていた、Virtual DOMアプローチの具体的な差分抽出手法について、virtual-domを読んで確認してみた。 Reactをいきなり読むのは面倒くさかった・ミニマムな実装から読みたかったというのが、こっちを選択した理由。Reactのアルゴリズムが参考にされているものの、Reactには存在する特定の最適化が入ってないかもしれないので、あくまでもReact系のVirtual DOMを実装するには最低限何が必要かを知る程度のものと判断してほしい。 virtual-domについて ReactのVirtual DOM部分だけを切り出して再利用可能な形で再実装したライブラリ。elm-htmlとかMercuryといった箇所でvDOMインフラとして既に使われているので、まったくの趣味プロダクトという訳でもなくなっている。 README.md中での触れられている通り、Vir

    Virtual DOMのアルゴリズムが知りたくてvirtual-domのコードを読んだ話 - saneyuki_s log
    nitoyon
    nitoyon 2014/09/03
    試そうと思ってたやつ。ありがたい。
  • あなたがReactを使うべき理由 - mizchi's blog

    最近フロントエンドでfacebook/reactをずっと使っている。世界的には一部のエンジニアの間で流行っているのだが、国内だとqiitaのタグ等を見てもどうも少ない。みんなもっと使うべきだと思うので、宣伝かねて意見をまとめてみる。 複雑化するデータバインドに対する懸念 MVWのVに対して思いを馳せると、だいたい次のことに行き着く。すなわち、「ある構造体の入力に対して、必ず一意なビューを生成したい」 {items: [1, 2, 3]} を入力とすると、 1, 2, 3のli要素になってほしい。これは単純な例だから問題に成り得ないように見えるが、アプリケーション全体の状態を一つのjsonとして定義し、 そこから常に0から組み立てればアプリケーションの健全性が確保できると考えたことはないだろうか? 現実の問題 UIのだいたいの状態は遷移で表現される。遷移の差分をプログラマが記述する。jQue

    あなたがReactを使うべき理由 - mizchi's blog
    nitoyon
    nitoyon 2014/09/02
    仮想 DOM なフレームワーク。データバインディングとは方針が大きく違う。
  • JavaScriptはいかにしてprototypeを捨てクラスベース継承を得るのか - なんたらノート第三期ベータ

    きっかけは、prototype と constructor と __proto__ の関係を再確認していたときでした。JavaScriptはこうだけど、これって、AltJSな言語の継承はどうなってるんだろうと思って試したくなりました。 ちょっと気持ち的に、なんだか宗教に入ったみたいに俺は JavaScript がわかったって声高に言う人、だいたいみんな、プロトタイプチェーンによる移譲がクラスベースの継承に束縛されていた思考のブレイクスルーなんだぜ、みたいに言うんだけど、いったいそれがどれほど素晴らしいものなんだろうと考えてしまい... もしプロトタイプチェーンがそんなに素晴らしいんなら、npm にあるほとんどのライブラリがチェーンを活かして作られてない理由が説明できない。もしかしたら、仕組みがいくら面白くても、実際のメンタルモデルにフィットせず、実は使い物にならないんじゃないか ----

    JavaScriptはいかにしてprototypeを捨てクラスベース継承を得るのか - なんたらノート第三期ベータ
    nitoyon
    nitoyon 2014/08/20
    一方、ES6 では class の導入が検討されていた。
  • アロー関数が実装された - JS.next

    概要 ES2015を象徴する機能である、アロー関数構文の実装がついにV8で始まった。 無名関数を短く書ける   [3.28.31] アロー関数は無名関数の省略記法である。 今までこう書いていたのが、 var fn = function (a, b) { } こうスッキリ書ける。 var fn = (a, b) => { } 「=>」が矢のように見えることから「アロー」関数と言う。 更に短くできる これが、 [1, 2, 3].map( function (v) { return v * v } ) // [1, 4, 9] アロー関数だとこうなるが、 [1, 2, 3].map( (v) => { return v * v } ) // [1, 4, 9] 引数が一つの時には「()」を省略できるので、こう書ける。 [1, 2, 3].map( v => { return v * v } )

    アロー関数が実装された - JS.next
    nitoyon
    nitoyon 2014/07/24
    (a, b) => {} で関数作れる、[1, 2, 3].map( v => v * v ) のように省略できる、this は呼び出し元スコープに固定。
  • カジュアルJavaScript AST

    今日の概要 実は使われてるJavaScript AST JavaScript AST(Abstract Syntax Tree)とは? JavaScript ASTを使ったツール紹介 使うだけじゃなくて書いてみよう browserify Node.jsで書かれたものをブラウザ向けに変換するツール Node環境で開発 -> browserifyでビルド -> ブラウザで動く JavaScriptのコードを 変換 する ≒ JavaScript ASTを見て変換 する 体の色々な部分、transform pluginなどでASTを使ってる

    nitoyon
    nitoyon 2014/03/28
    AST (Abstract Syntax Tree) はコードの構造を JSON に変換する。Lint、補完、変換、分析…などの各種ツールで利用されている。
  • 【D3.js】グラフと地図を連動させる

    散布図上でドラッグすると、選択した範囲の都道府県に色が付きます。 d3.svg.brushを使って、散布図と地図を連動させるサンプルを作成しました。 example データセットの作成 有効求人倍率と充足率の情報は「社会生活統計指標」より。 都道府県の地図データは以下よりいただきました。 都道府県色塗り用shapeファイル(英語表記) 社会生活統計指標からダウンロードした「労働」統計表をExcel上で編集してcsvに。 作成したcsvと都道府県色塗り用shapeファイルをQuantum GISに読み込み結合。(結合の方法は以下を) 属性データにCSVまたはDBFファイルを結合したい 結合したデータをgeojsonで出力し、さらにtopojsonに変換します。 topojsonへの変換は「TopoJSONを使う」を参照してください。 出来上がったデータセットは以下。 todofuken.to

    【D3.js】グラフと地図を連動させる
    nitoyon
    nitoyon 2013/10/12
    地図とグラフ。ドラッグで連動。shape→geojson→topojson。
  • スマートフォン対応でよく使うhtml、css、javascriptのまとめ

    スマートフォン(ios、android)向けのウェブサイト・ウェブアプリを作る際に個人的によく使うhtmlcssjavascriptの備忘録。 html関連 headタグ内での設定<!-- //デバイスサイズにあわせて表示領域を変更する --> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- //電話番号のリンクを無効化 --> <meta name="format-detection" content="telephone=no"> <!-- //ホーム画面用アイコン --> <link rel="apple-touch-icon" href="icon.png"> <!-- //ホーム画面用アイコンの光沢を無効化する --> <link rel="apple-touch-icon

    nitoyon
    nitoyon 2013/02/18
    スマホ Web デザインの定型文、細かなバグ色々。
  • jQueryのDeferredとPromiseで応答性の良いアプリをー基本編 | ゆっくりと…

    jQuery 1.6 が既にリリース されていますが、1.5 で追加された Deferred を勉強する意味で、Script Junkie から Creating Responsive Applications Using jQuery Deferred and Promises を翻訳してみましたので、共有したいと思います。著者の Julian Aubourg は、jQuery のコアチーム・メンバーとして、Ajax モジュールの書き換えと Deferred 導入を指揮した方だそうです。 記事の途中、各メソッドの説明部分は、jQuery ドキュメントの翻訳に差し替えていますので、リファレンスとして使ってもらうのも良いかと思います。 Deferred や Promise は、概念や用語が少々分かりにくいところがあるかと思いますので、読んでくださった方の、少しでも理解の助けになれば幸いです

    nitoyon
    nitoyon 2013/02/12
    jQuery の Deferred について詳しく説明。
  • Minecraft4kJS - jsdo.it - Share JavaScript, HTML5 and CSS

    A quick port of Minecraft4k to test what's possible in JS and HTML5. Because of the nature of this project (it was originally meant as an entry for the Java4k competition, which focuses on executable size), the code is HORRIBLE, but fairly small. You may use the code in here for any purpose in any way you want, at your own risk. var ctx; var pixels; var w = 200; var h = 200; var map = new Array(64

    Minecraft4kJS - jsdo.it - Share JavaScript, HTML5 and CSS
    nitoyon
    nitoyon 2012/12/08
    Minecraft の中の人が canvas 2d で 3D デモ。
  • GitHub - google/turing-doodle

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - google/turing-doodle
    nitoyon
    nitoyon 2012/07/12
    ちょっと前に話題になったチューリングマシン Doodle のソースコードが Google Code で公開。
  • グーグル製のJavaScript MVCフレームワーク「AngularJS」、正式版が公開 − Publickey

    グーグルは、JavaScriptでMVCアーキテクチャのアプリケーション開発をする際に便利な機能を備えたライブラリ「AngularJS 1.0」のリリースをブログで発表しました。 MVCアーキテクチャとは、ソフトウェアがデータモデル(Model)の部分とユーザーインターフェイスの部分(View)、そしてビューとモデルのあいだで制御する部分(Controller)に分離された構造のことを指します。 これらが分離されているとプログラムの見通しがよくなり変更にも対応しやすく、テストも容易になるため、何種類ものユーザーインターフェイスと複雑なロジックなどから構成される大規模なアプリケーションではMVCアーキテクチャの採用が望ましいものと考えられています。 しかしWebアプリケーションをMVCアーキテクチャで実現しようとすると、ビューの役割を果たすHTMLのコードの中に、どうしても複雑なJavaSc

    グーグル製のJavaScript MVCフレームワーク「AngularJS」、正式版が公開 − Publickey
    nitoyon
    nitoyon 2012/06/18
    テンプレートエンジン、Binding。公式サイトは twitter bootstrap、ソースは github。 (各種 MVC フレームワーク比較) http://www.publickey1.jp/blog/12/javascript_mvc.html