Nope
プログラミングのこつ 無駄な名前を極力使わないこと。意味単位に名前空間を細かく階層的に分離すること。 ここで言う名前空間とは 名前空間とは、一つの名前が一意のものを表す空間。例えば、大きな目で見れば、日本語は自然言語の名前空間である。また、専門用語なども名前空間と考えることが出来る。 日本語 { コンニチワ = 挨拶 : : } 中国語 { ニーハオ = 挨拶 } 英語 { ハロー = 挨拶 } また、名前空間は重なり(優先順位)を持つ 同音異義語などの言葉は、それぞれの細かい名前空間の重なりによって一意のものに特定されると考えられる たとえば、「コイが好き」と言った場合 池に関する名前空間 { コイ = すいすいパクパク } チャライ話題に関する名前空間 { コイ = ドキドキきゅんきゅん } お茶に関する名前空間 { コイ = にがーい } 名前空間の優先順位を考えると、一意の意味を知
JavaScriptはJITが載り、高速化したのですが、配列操作が遅いです。連想配列とArrayがごちゃ混ぜになっているのが原因だと思います。 var ctx = canvas.getContext('2d'); var imageData = ctx.createImageData(1024, 1); var ary = imageData.data; この配列は、int32専用で、Arrayとは違って、任意の型が入るわけではありません。その分だけ、ほんのちょっとだけ高速化しています。 挿入ソートで、ベンチマークを取った実行時間の結果。長さ1024の配列を100回挿入ソートしています。単位はms。 ブラウザ canvasのImageData Array 高速化 IE 8 43400 Firefox 3.6 5369 5445 1%高速 Chrome 4 2350 2664 13%高速 S
obj.watch("prop", function (id, older, newer) { console.log(id, older, newer, arguments.callee.caller); return newer; });obj.propに値を代入してる関数を調べるテクニックの紹介。 下のスクリプトはFC2Blogではてな記法を使えるようにする(デバッグ前の動かない)スクリプトで、text-hatena.jsについては長いからここに載せるときに削った。 // ==UserScript== // @name FC2 Hatenation // @namespace http://oksoftware.blog52.fc2.com/ // @description Use Hatena syntax in FC2 Blog // @include http://blog*.
モデリングやオブジェクト指向などのソフトウェア技術などで知られるマーチン・ファウラー氏が所属するThoughtWorks社。同社が現在の技術のトレンドについて分析したホワイトペーパー「Technology Radar 2010」(PDF)がinfoQの記事「最近のテクノロジにおけるトレンドは?」で紹介されていました。 このホワイトペーパーでは、現在どの技術分野がホットなのか興味深い分析がならんでいます。ツールとプログラミング言語の2つの分野を取り上げて紹介しましょう。 分散バージョン管理と次世代テストツールに注目 分析結果はレーダーチャートのような図で表され、いちばん内側が「Adopt(受容)」で、外側にいくほど「Traial(試験)」、「Assess(要調査)」、「Hold(保留)」といった状態を示しています。 まずはツールの分野のチャートを見てみましょう。 内側の点から見ていくと、In
Not your computer? Use a private browsing window to sign in. Learn more
「ショートコーディング(short coding)」とは、より少ない文字で処理を記述することを指し、結果として同じ処理を記述するためにタイプするキーが少なくなります。その一方で、文字数を減らすためにどのような処理を表現しているのか分かりにくくなる、つまり難読化を招くため、批判する向きもあります。 しかし、インタプリタ言語であるJavaScript(ECMAScript)の場合、文字数を削減するということはコードの読み込み時間が短縮できることを意味し、結果としてページの読み込み開始からJavaScriptの実行開始までの時間が短縮できることになります。 このページは、JavaScriptの主なショートコーディングをまとめたものです。
XPCNativeWrapperの外側でスクリプトを評価する関数。Firebugも同じことをしている。unsafeWindowを触らないので安全。 function evalInPage(fun) { location.href = "javascript:void (" + fun + ")()"; } SmartLDR更新 – 素人がプログラミングを勉強するブログ これは面白い!Function.prototype.toString が関数のソースコードを返すことを利用した、巧妙にして簡潔なハック。 次のように引数を渡せるように改良すればさらに強力になる(引数に渡せるのはJSON化可能な値のみ)。 function evalInPage(func, args) { var argStr = JSON.stringify(args || []); location.href = "jav
canvas thisに置いた。 JavaScriptの部分は下記の通りで、テトリスの画面の二次元配列とブロックの二次元配列を保存して、画面の上にブロックを重ねるように描画するというごく普通の実装。 画面の端を壁にしておくことで、はみだしチェックなどを省くことができる。番兵と呼ばれるテクニックで、よく使われる。 だいたいの部分の作成は1時間くらいで終わって、ブロックが落ちてくる+ブロックを動かせる/回転させられるようにするところまでで1時間30分。 あとは、描画まわりのバグ取りとブロックに色をつけるところ、次のブロックを左上に表示、ブロックの回転の調整(最初はブロックの左上を軸に回転していたが中央に軸をもってくるように+回転済みのブロックを保持しておく)を、リファクタリングをしつつやった。 全体で3時間くらいかかった。 どこかの動画で1時間でテトリスを作っていたのを見たので、自分でも作って
西洋から白人文明が来た時。豊かだったバングラデシュは大破した。あの中国をも、アヘン戦争などの悲惨が襲った。日本はどうだろう? 太平洋戦争の大破壊があったが、その後に第一次大戦後のドイツ並みの賠償金が課されて国内にファシズムが台頭する、とかはなかった。「奇跡的」に、あの不思議な明るさの「昭和」が生まれた。それはなぜかと長く考えてきた、思う。 江戸時代、多彩なローカルの知識で富を生んだ北前船たち(日本海側の人はご存知のはず。動く総合商社と言われ、メルカリ的なインディー精神を持つ)。日本海側に蓄積された富と技術がなければ、いま太平洋側にならぶ東京などの巨大都市も「昭和」も、絶対にない。我々は先人たちの恩恵をうけ、その我々が先人となっていく。「なぜだかアメリカ風が好きな日本」という謎について、洋花・洋食・洋楽の「3洋」、西洋式を広める使命を政府から受けた日比谷公園を勉強して、見えてくることがあった
_iモードブラウザ2.0のXMLHttpRequestでPOSTデータの扱いが困難になった このエントリでは、iモードブラウザ2.0の制限により、XMLHttpRequestでPOSTメソッドの利用が困難になっていることを確認したので報告する。 iモードブラウザ2.0のJavaScriptを試していて、POSTメソッドでデータが渡せていないことに気がついた。以下のようなプログラムで検証してみた。 【post.html】 <html> <head> <script> function test() { try { var requester = new XMLHttpRequest(); requester.open('POST', '/dumppost.php', true); requester.onreadystatechange = function() { if (requeste
ここ最近はブラウザーの上で動く思いっきりRIAなアプリケーションを書いている私。こと通信の部分になると JavaScript での開発効率が、C++/Java/Objective Cなどと比べて格段に高いことをつくづく感じている毎日なので、今日は、そのあたりを少し解説してみようかと思う。 サーバーのAPIにアクセスするプログラムを書く方法は色々とあるが、「サーバー上の特定のURLにHTTPでアクセスして結果をXMLやHTMLやJSONで受け取る」というケースに限定すれば、基本的に3つのパターンに分けられる。 1. 同期通信 result = urlfetch.fetch("http://www.google.com/") if result.status_code == 200: doSomethingWithResult(result.content) その書きやすさのために、実務経験の
JavaScriptで配列のクローンを作成しようとして、悩んでいる方もいらっしゃるようですが、 以下のように、for ループや再帰なコードを手書きする必要はなくて、Array.concat() で配列のクローンは作成できます。 Array.prototype.clone = function(){ return Array.apply(null,this) } Array.prototype.clone = function() { if ( this[0].constructor == Array ) { var ar, n; ar = new Array( this.length ); for ( n = 0; n < ar.length; n++ ) { ar[n] = this[n].clone(); } return ar; } return Array.apply( null,
スキルチェックの目次へ JavaScript の簡易スキルチェックのための調査表。印刷用。 レベルは,0から4までの5段階。 (0) 非 JavaScript開発者 (1) 初学者(入門書を学習してゆく段階) (2) ノーマル(基礎的な知識があり,ある程度の動くものを作れるようになった段階) (3) 中級者(開発プロジェクトで1人月としてカウントできる水準) (4) 上級者(メインPG/メンターとして,主設計を任せられる水準) Webアプリのプロジェクト開始時に作業振り分けをするにあたって,新規メンバ全員にこれを渡して回答してもらうという用途を想定。 ※なお,下記URLでは10段階に細かく分ける方法が公開されているが,それだと細かすぎてレベルが前後する可能性があり,業務上のスキルチェックは難しいかもしれない。 javascriptプログラマのレベル10 http://tech.kayac.
週末料理をしていて足を切ってしまいました。agoです。 以前Perlは書いていたんですが、その頃以下の記事を読んで非常に感銘を受けました。 Perlプログラマのレベル10 - Perlプログラミング救命病棟より - naoyaのはてなダイアリー 当時あまりコミュニティとのつきあいがなかったので、「自分のスキルの絶対位置」、「次のレベルへ行くために必要なもの」を知ることで非常に安心感を感じた記憶があります。 いま確認したところ、「JavaScriptプログラマのレベル10」はないようなので書いてみました。 Perlプログラマ Schemeプログラマ Rubyプログラマ (本家に直接リンクできるURLが無かったため、参照ページへリンクしています) haskellプログラマ 堕落したCプログラマ HTML知識レベル プログラマレベル 企業法務 JavaScriptの業務スキルレベル 判別表 (5
jQueryとは、JavaScriptのコーディングを強力に支援するライブラリです。 $('.semooh a').hover( function(){ $(this).text('ヌ?'); }, function(){ $(this).text('ヌー'); } );
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く