Firefox 9の目玉機能であるJavaScriptの型推論(Type Inference:TI)。この機能をリリース版に投入できたことによって、ようやく本当に高速リリースサイクルを維持するめどが立ったといっても過言ではない。それくらい、TIの実装は開発プロセスにおいて重要なチャレンジだった。 話は2011年8月上旬に遡る。同年6月にJavaScriptエンジンのモジュールオーナーを継いだMozillaのDavid Mandelin氏が、mozilla.dev.planningニュースグループに1本のスレッドを立てた。『Shipping Type Inference and Other "Irreversible" Changes』と題されたそのスレッドにおいて、Mandelin氏は、TIの導入に当たって開発プロセス上の課題があると指摘した。 TIはJavaScriptエンジン全体を通じ
JavaScript おれおれ Advent Calendar 2011 – 24日目(最終日) JavaScriptを書くプログラマーさんでも、JavaScriptも書くデザイナーさんでも。 僕なんかがおこがましいとは思うんですが。 いっぱい書く とにかく書く事です。何でもいいです。作りたいものがあれば作ってもいいし、面白そうなものを見かけたら真似してみましょう。 ライブラリーやフレームワークは躊躇なく使う 簡単に書けるならそれに越した事はありません。どんどん使いましょう。そもそも便利なライブラリーを習得する事だって大切です。 分かりやすいと最近評判の本ですね。プログラミングの知識が全く無い状態の読者を想定しているそうです。 「Webデザイナーのための jQuery入門」という本を書きました – Takazudo hamalog で、私が書いた本の話に戻りますが、「Webデザイナーのため
サーバサイド(特にNode.js)とクライアントサイド両方で動かしたいものは最近はこんな感じで書いている。 CommonJSのwiki見ててそこに紹介されてるソースコードで(どれだったか忘れたけど。。)やってたのを見ていいなーと思って真似っこした。 (function(define) { define([], function() { 'use strict'; /** * @constructor */ var SomeClass = function() { // initialize }; /** * @type {string} * @private */ SomeClass.prototype.hoge_ = 'hoge'; /** * @return {string} */ SomeClass.prototype.getHoge = function() { return th
To use this software, do one of two things: (1) If you want to just play around with the compression algorithm, open up the included HTML file and enter some text into the left-hand box. Click the "save" button below, and notice that you've got a string of letters in the right-hand box. You can now copy that text, reload the page, paste the text back into the right-hand box, and hit load - returni
The document discusses techniques for writing clean JavaScript code. It provides examples of code smells and improvements to address issues like attaching events from the outside, separating selection from logic, shallow scope, overwriting default behavior, and separating logic from views. The document advocates for practices like modularizing functions, separating DOM manipulation from models, an
Blogging is a disease: selfkleptomania, your normal condition. About GPG Public Key Firefoxを使っていたときはGreasemonkeyという便利なものがあって、これで役に立たないログイン時間制限のあるシステムなんかを使いやすく改造していたのだが、Chromeで似たようなのはないかと思ったらjsshellというのがあったので、これでWikipediaの迷惑な画像を見えないようにしてみた。 消したいのはこれ。 jsshellをインストールしたら、普通にjQueryでやりたいようにやってみよう。例えば $('#centralNotice').css('display', 'none'); うまくいったら、保存して毎回自動的に実行されるようにしよう。 js.custom.edit('保存するスクリプトの名前'
SitePoint: New Articles, Fresh Thinking for Web Developers and Designers WebページやWebアプリケーションを開発するにあたってJavaScriptは欠かすことができないプログラミング言語になりつつある。ブラウザさえあれば簡単に使い出すことができて、それなりにすぐに効果が見込める。しかし、検索してもまとまった優れたチュートリアルやAPIマニュアルにたどり着きにくいというプログラミング言語でもある。Mozillaがこの状況を変えようと取り組みを開始したことは、この状況のひとつの側面を示唆している。 しかし逆に見ると、毎日さまざまなブログでテクニックやティップを得やすいプログラミング言語だともいえる。すでにある程度のプログラミングの経験があるなら、JavaScriptはそうしたスニペットやティップを積み重ねて使っていくの
私は陰謀論者じゃないですし JavaScript の new 演算子が大好きなわけでも大嫌いなわけでもないです。 念のため。 本記事は Hiraku さんが書かれた下記記事への言及です。 newを封印して、JavaScriptでオブジェクト指向する(1) newを封印して、JavaScriptでオブジェクト指向する(2) newを封印するべき4つの理由 new 演算子は使うな!? 「newを封印するべき4つの理由」 でも new がいかに糞であるかが書かれていますし、その記事からも言及があるように Crockford さんが書かれた書籍 『JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス』 でも new 演算子は Bad Parts に分類されています。 new 演算子が忌避される理由はいろいろあるみたいですが、Hiraku さんの記事では n
JavaScript Garden is a growing collection of documentation about the most quirky parts of the JavaScript programming language. It gives advice to avoid common mistakes and subtle bugs, as well as performance issues and bad practices, that non-expert JavaScript programmers may encounter on their endeavours into the depths of the language. JavaScript Garden does not aim to teach you JavaScript. Form
先日作成した「関西電気保安協会リズムマシーン」と「ONE-LINER-ORCHESTRA」が Chrome, Safari *1 (Web Audio API) Firefox (Audio Data API) Opera (HTMLAudioElement) で使えるようになりました。 どちらも pico-player.js っていう拙作ライブラリを使っているんだけど、普通に便利なので紹介します。 https://gist.github.com/1342081 CoffeeScriptで書いてコンパイルしています。もうJavaScript書けなくなってきました。 2011/11/08追記 別タブ選択時に音が途切れる減少を解消しました。 関連記事: http://d.hatena.ne.jp/mohayonao/20111108/1320756534 2011/11/07 追記 Coffe
Web Storage に保存可能なデータ量を計測してみました。 Browser Max Firefox3.5.3 5MB Firefox3.6β5 4.99MB iPhone 3.1.2 2.49MB Safari4 50MB以上 Chrome 4 2.49MB IE8 2.22MB Opera10.50 2.49MB (バッド)ノウハウ iPhone で容量オーバーを回避する 既存のデータと上書するデータの合計が 2.4MBを超える場合に容量オーバーが発生します。回避するには、一度空文字列で上書します。 var db = window.localStorage; db["a"] = ""; // 空文字列で上書(削除) db["a"] = "......."; // 設定 IE8 には残量を示す localStorage.remainingSpace がある IE8 の localSt
こんにちは、2011年度新卒エンジニアの夏目です!突然ですがみなさんJavaScript書いてますか? 最近はjQuery Mobileなどを利用したスマートフォン向けアプリ開発において、クライアントサイドでもヘビーなJavaScriptのコーディングをする機会があると思います。そのようなときコードのいたるところにHTMLが混入したり、どこでどのデータを扱っているのか分からなくなるということになりがちです。 今回はそんな悪夢のようなコーディング生活に一筋の希望の光を照らすBackbone.jsを紹介したいと思います。 対象読者 JavaScriptでの開発経験がある方 Backbone.jsとは Backbone.jsはDocumentCloudが開発をしている、クライアントサイドのJavaScriptコードをModel、View、Controllerで構築するためのフレームワークです。b
ポチってもうたー開発メモ。 UIだけJSでいじってる時はそこまで慎重になることでもないけども、頻繁にガシガシajaxする場合は、既に走っているajaxリクエストもうまいことハンドリングすべき。ポチってもうたーでは、ツイートをJSONで返すよう、サーバーサイドでサービスを用意しているわけだけれども、まぁ、普通に考えれば、こんな感じで、JSON返ってきたらUIを更新するってやるんじゃないだろーか。 $.ajax(url, query).then(function(){ // UI更新しちゃう }, function(){ alert('ゴメンなんか変'); }); しかし、これには問題があって、JSONが返ってくる前に、もうそのUIが用済みになってしまうような操作がされた場合、あーもうUI更新して欲しくないんだけど後から更新されちゃったよーっていうことになってしまう。 ポチってもうたーでは、ロ
jQuery のソースから拾ってきたネタなんすが、arguments.callee と setTimeout を使ったリトライ処理が超便利なのでご紹介。 まず基本形はこんな感じす。 (function() { // なんか処理 if (error) { setTimeout(arguments.callee, 20); } })(); 上のコードは error が真のとき20マイクロ秒後に無名関数の実行をリトライします。20マイクロ秒だとリトライ間隔が短いような気がするかもしれませんが、リトライ回数は1秒に50回ですので言うほどでもないです。 arguments.callee は関数内でのみ参照可能で、実行中の関数自身への参照を保持します。上の例では arguments.callee は無名関数への参照となります。setTimeout に arguments.callee を渡すその関数を
JavaScriptのメジャーモードについて Emacs23.2からJavaScriptのメジャーモードが変更され(js-mode)、以前とは比べ物にならない程使い勝手がよくなりました。 しかし、js-modeではリアルタイムでのエラーチェックが行われないためもの足りないと感じます。 js2-modeは人気のメジャーモードで、リアルタイムでチェックを行なってくれるのですが、 インデント周りで不具合があるようでespresso.elと組み合わせるのが主流のようです。 基本的にはこちらを参考に設定するだけで良いのですが、設定項目がごちゃごちゃしていてあまりよろしくないです。 そこでid:moozさんがjs2-modeにパッチを当てたものを使用します。 これは特に細かい設定をする必要無く使うことができます。 また、ハイライト機能もこちらの方が良いです。 インストール方法 js2-mode.elを
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く