Koalas to the Max, a site made with love by Vadim Ogievetsky for Annie Albagli
カップル爆発しろ どうも。「何かよく知らないけど訳分かんない人だと思ってた」と社内で最近言われたHTMLファイ部のdamele0nです。 このエントリはtech.kayac.com Advent Calendar 2012 2日目の記事です。 テーマは「私の中のマイイノベーション 2012」 季節のせいか周囲ではカップルが続々と誕生して次々とイノベーションを起こすなか、僕はといえば相変わらず人生にしかれた非モテのレールを光のスピードで突き進んでいます。 僕だって、2人でイノベーションを起こしたい…。 僕だって、冬のせいにしたい…。 僕だって、クリスマスに七面鳥抱えながら海岸沿いを2人でキャッキャウフフしたい…。 僕だって、ちちくりたい…。 僕だって、僕だって、僕だって…。 安心してください。 僕は、なんですか? あなたは、なんですか? そう、エンジニアです。 無いものは作ればいい。世界なん
JavaScriptの暗部を感じるカオス JavaScriptのライブラリを読み解いていると,「お前は何を言っているんだ状態」に陥ることがよくあります.難解なコードを通り越して黒魔術になるとついていけません…. そんなコードリーディングをする中で,初見では意味が分からなかったり,分かりづらかったりした記法をまとめてみます.コードリーディングの一助になりますれば幸い. eachな感じのループ×2 比較的簡単な類ですが,定石パターンなので一応.色々あると思いますが,自分がよく使う2パターンだけ紹介します. var elms = [1, 2, 3], e, i = 0, while (e = elms[i++]) { // おぅふ // i -> 1 } 単純に配列から1個ずつ取り出すだけなら上記のような感じです. var elms = [1, 2, 3], e, i = 0, iz = elm
jQueryのドル記号「$」は、理不尽なくらいに大活躍します。あまりにも何でもできるので、「ありゃ何なんだ?」と思いますよね。$(...) という形で呼び出せるので、関数なのは確かです。JavaScriptでは、ひとつの関数名に対して呆れるくらいにオーバーロード(多義的定義)ができます。 内容: コンストラクタあるいはクラスとしての関数 メソッドとしての関数 名前空間あるいはモジュールとしての関数 関数/オブジェクトとしての関数 試してみる コンストラクタあるいはクラスとしての関数 関数は、オブジェクトのコンストラクタとして使用できます。 function Point(x_, y_) { this.x = x_ || 0; this.y = y_ || 0; } お尻にアンダースコアが付いた引数名 x_, y_ は省略可能のつもりです。new Point()、new Point(2)、ne
Joel Spolsky / 青木靖 訳 2006年8月1日 火曜 ある日、自分のコードを眺めていて、ほとんど同じに見える2つの大きなコードブロックがあるのに気付く。実際、一方が"スパゲッティ"、他方が"チョコレートムース"について言及しているところを別にすれば、どちらもまったく同じだ。 //簡単な例: alert("スパゲッティが食べたい!"); alert("チョコレートムースが食べたい!"); この例ではたまたまJavaScriptを使っているが、この後の話は別にJavaScriptを知らなくとも理解できるはずだ。 同じコードが繰り返し現れるのは、もちろん良くないことだ。だから関数を書くことにしよう: function SwedishChef( food ) { alert(food + "が食べたい!"); } SwedishChef("スパゲッティ"); SwedishChef(
This: <script type="text/javascript" src="node.js"></script> Allows you to do this in a Chrome App: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/'); This is actually Node.js code running the http listener on Chrome's
脳内棚卸 Prototype.js と プロトタイプ汚染(昔話) jQuery が登場する以前、Prototype.js という JavaScript ライブラリがありました。 Prototype.js は、JavaScript OOP の普及期(2005~2007年頃)に多くのサイトで活用されました。 Prototype.js は Object.prototype や Array.prototype 以下に、Ruby 由来のメソッドを拡張することで、 JavaScript に Ruby 感をもたらし、ブームを起こしました。 当時の JavaScript(ES3: ECMAScript262-3rd) には、 言語仕様として Object.prototype を安全に拡張する方法が存在せず、 Prototype.js はしばらく後に 汚染(pollution) と呼ばれる問題を起こしてしま
※ 2012-10-18追記 forEachはfilterの間違いでした。修正しておきます。 Smashing Node.js: JavaScript Everywhere (Smashing Magazine Book Series) 作者: Guillermo Rauch出版社/メーカー: Wiley発売日: 2012/09/11メディア: ペーパーバック購入: 1人 クリック: 67回この商品を含むブログを見る 本ブログは東京Node学園祭2012 アドベントカレンダーの1日目の記事です。 さてさて、Smashing Node.jsを読んでます。 読んでいて思ったのですが、非常に良書です。 著者は 前回のNode学園祭で魔法のようなライブコーディングを見せた Guillermo さん。 せっかくなので、Smashing Node.jsで書かれている内容の中で琴線に触れたものはシリーズ
こんにちは、中川です。 今回はJavaScriptで開発していると、うっかりハマってしまうちょっとした罠たちを紹介したいと思います。 JavaScriptでの開発経験者であれば、どれか一度はひっかかったことがあるのではないでしょうか? String ●String#replace()は文字列指定では全部置き換えない 対象文字列を一括して置き換えたいなどでString#replace()を使いますが、 検索対象を文字列で指定してしまうと最初に一致した部分しか置換しません。
数年前に告知したと思うのですが、そこから紆余曲折あり(主にNodeのアップデートが早すぎて)時間が掛かってしまいましたが、ようやく書きあがりました。Nodeの内部構造を知りたい人から、Nodeを使って何ができるのか知りたい人までカバーできる内容となっています。是非一度お手に取ってご覧いただければ幸いです。 サーバサイドJavaScript Node.js入門 作者: 清水俊博,大津繁樹,Jxck,小林秀和,佐々木庸平,篠崎祐輔,高木敦也,西山雄也出版社/メーカー: アスキー・メディアワークス発売日: 2012/10/26メディア: 大型本 クリック: 310回この商品を含むブログを見る 見本誌も届きました。実際に見てみると結構分厚いですね。 早速ですが、訂正を。インストールの章に現在の開発版はv0.9系で次期安定版はv1.0系になる予定とか書いてますが、実際には次期安定版はv0.10系にな
LLJS is a typed dialect of JavaScript that offers a C-like type system with manual memory management. It compiles to JavaScript and lets you write memory-efficient and GC pause-free code less painfully, in short, LLJS is the bastard child of JavaScript and C. LLJS is early research prototype work, so don't expect anything rock solid just yet. The research goal here is to explore low-level statical
Chrome Apps v2's socket api Chrome の Web appsが manifest v2 に変わり、その機能、特に Packaged Apps が大幅に変わっています。 What Are Packaged Apps? その中で僕が特に注目しているのが、socket api。ChromeのPackaged Appsから、生のソケットコーディングが出来るようになります。 この socket api ですが、これまで tcp ソケットでサーバーを立てることができなかった(listenとかacceptのメソッドが無かった)のですが、昨日 Google API Expert MTGで 吉川さんから、「昨晩Chromiumで実装されたみたい」との情報が。ということで、早速簡単なWebサーバーを動かしてみました・・・というのが今日のEntryです。(執筆時点では、すでに、ca
addonを書く上で必要なことは基本ここに書いてあるんだけど今のバージョン(v0.23)だと若干便利マクロが増えてるみたい。 今回は渡された文字列とカウンタを表示するだけの簡単なクラスを作った。 JavaScriptのmoduleで書くとこんな感じ function Echo(){ this.i = 0 } Echo.prototype.print = function(s){ console.log( s + ' ' + this.i ); this.i++; } exports.Echo = Echo;同じことをC++のaddonで書くと以下のような感じ ※重要そうなところはコメントで。 echo.h: #ifndef _ECHO_ #define _ECHO_ #include <node.h> #include <v8.h> using namespace v8; using na
node.js のドキュメントを見ていたら C/C++ で簡単に拡張が書けそうだったので試してみた。 addons - Node.js Manual & Documentation ドキュメントに載っている hello.cc をみてみると: #include <v8.h> using namespace v8; extern "C" void init (Handle<Object> target) { HandleScope scope; target->Set(String::New("hello"), String::New("world")); } この extern "C" void init (Handle<Object> target) というやつが、jsで require("hello") したときに呼ばれる感じらしい。この関数だけは必ず実装する必要がある。 この中の Ha
I've been coding in JavaScript for almost a year now. I find it a decent language to write code in. The code written in JavaScript doesn't look as pretty as python, but it doesn't look as bloated as Java either. But that's not why I chose the title of this post. It's everything else that's happening around JavaScript that makes me think that it's going to play as significant a role in computing as
JavaScript: 世界で最も誤解されたプログラミング言語(2001年) JavaScript: The World's Most Misunderstood Programming Language http://d.hatena.ne.jp/brazil/20050829/1125321936 2012年未だ誤解されているプログラミング言語JavaScript 嫌われている"JavaScript"とは何か? ECMAScript3 13年前・前世紀(1999年)の言語仕様 IE6 11年前(2001年)のランタイム 嫌われている"JavaScript"と同世代の各言語のバージョンは? Python2.1 Ruby1.6 Perl5.6 J2SE1.3 現在のJavaScriptはECMAScript5 どの環境で使える? http://kangax.github.com/es5-c
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く