Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

本稿では、Node.jsの特徴や動作原理に触れ、サンプルや役に立つパッケージ、活用事例などを紹介したいと思います。 主なサーバサイドJavaScript Node.jsに触れる前に、予備知識として他のサーバサイドJavaScriptにも触れておきます。Node.js含め、サーバサイドJavaScriptには、主に以下のようなプロジェクトがあります。 サーバサイドJavaScripの標準仕様「CommonJS」とは サーバサイドJavaScriptには、「CommonJS」と呼ばれる標準化が策定されています。標準化というと難しい感じがしますが、要はサーバサイドでJavaScriptを実行するのに何が必要かを仕様として、定義しているドキュメントのことです(例えば、「ログが必要だよね」など)。 Node.jsは、このCommonJSに則って開発されています。現段階であれば、CommonJSの仕様
(注記:7/15、いただいた翻訳フィードバックを元に記事を修正いたしました。) 子供の頃、私の興味は互いに関係性のない様々な分野に及んでいました。数学も歴史も大好きでした。 ルネッサンスマン 、つまり 博学者 と言う、複数の分野に秀でた人になりたいと思っていました。これはとても難しい課題で、私は突如として、器用貧乏な人になってしまう危機に直面したのです。 私は特定の分野に特化しなくては、と考え始めました。そうすればたとえルネッサンスマンにはなれなくても、少なくとも、器用貧乏にならなくても済むと思ったのです。どうしたらソフトウェア開発をするのに必要な広い知識を保ちながら、1つの分野で専門性を高めることができるのでしょうか。 この記事では、過去5年間、私が良いJavaScript開発者になるために使ったテクニックとリソースの概要をお伝えしようと思います。 最近の多くのWeb開発者は、ある共通の
Photo by dotConferences こんにちは。谷口です。 プログラミングをこれから学ぼうとしている方で、「JavaScriptを使えるようになりたい!」という方は多いと思います。 JavaScriptは実行環境が主にWebブラウザに実装され、動的なウェブサイト構築や、リッチインターネットアプリケーションなど高度なユーザインタフェースの開発に用いられます。(JavaScript - Wikipedia) Webサービスの作成・運用をする機会がある方には必要不可欠なJavaScriptですが、これから勉強を始める方の中には「プログラミング経験ゼロなんだけど、一体どうやって勉強したらいいの……?」と思っている方も多くいらっしゃるのではないでしょうか。中には「エンジニアではないんだけど、仕事でJavaScriptを触る機会があるから覚えたい!」という方や、「初心者だけど、なるべくコス
(ε・◇・)з o O ( 最近ブログ書いてないなー、そろそろ書かないとなー (ε・◇・)з o O ( JavaScriptイディオム集 が大人気かぁー、もうすぐブクマ1000個とかすごいなー (ε・◇・)з o O ( よーし。便乗して、ボクも手持ちの闇色な奴を幾つか紹介するよー window.onload をもっと使い倒したい? (ε・◇・)з o O ( window.onload には、コールバック関数を1つしか設定できないという昔からの制限があるよね? (ε・◇・)з o O ( そこを中央突破ですよ! __defineSetter__("onload", function(callback) { addEventListener("load", callback); }); (ε・◇・)з o O ( はい、これで何個でも設定できちゃうね onload = function(
JavaScriptでは、初見の人にはさっぱりわからないけれども、ある程度慣れた人は当たり前に使うイディオムが結構たくさんあります。知ってしまえば何てことはないので、私の知っている限りのイディオムとその意味を解説します。 (7/3追記: twitter等で教えていただいた内容を追加しました) +v (数値化) var v = "123"; console.log(+v + 100) // 223 console.log(v + 100) // 123100 vを数値化する方法では最もメジャーです。parseFloat(v) に比べて高速なのに加えて、parseFloatとは細かい挙動が異なります(例えば空文字列の場合、parseFloatならば NaN になりますが、 +v の場合はゼロになります)。必ず数値になることが保証されており、文字列などで数値化出来ない場合はNaNが返ります。 v
リクエストを頂いたので、 ArrayBuffer を使った msgpack.js を書きました。 とりあえずコードを書いた段階で、識者の意見を取り入れて I/F の改善や、妥当性のチェックとテストケースの作成、ベンチマークなどはこれからの作業になります。 https://gist.github.com/4106426 MobileSafari と Android 4.0 での DataView のサポート具合が良くわからなかったので、ArrayBuffer + Uint8Array だけで実装しています。 // encode a = msgpack.pack({ a: [1,2,3, { b: 4, c: "hoge" }, "abc"] }); // -> [129, 161, 97, 149, 1, 2, 3, 130, 161, // 98, 4, 161, 99, 164, 104
今回は、ちょっと便利なJavascriptオブジェクトの作り方をご紹介します。いわゆるモジュール・パターンと呼ばれている方法です。 はじめに 最近、HTML5への注目と共に、Javascriptを使用する機会が増えてきました。以下のように適用範囲は多岐に渡っています。 通常のWebサイトでのユーザビリティ向上 スマートフォン用Webサイト開発 HTML5アプリによるクライアント・アプリ開発 スマートフォンのハイブリッドアプリ開発 Node.jsによるサーバサイド・プログラミング このように、Javascriptが基幹となる仕組みが広がっています。クライアント側とサーバ側を同じ言語で作れることは、開発側にとってはとても有難いことです(学習コストの低減、人的リソース配分の柔軟性など)。もちろん、発注者やエンドユーアにとっても開発速度などの面で利益が生まれます。 Javascriptプログラミン
最近下のように書いてる。変遷としては、若干サーバーサイドJavaScriptを意識しつつ徐々に離れていった感じ。 即時関数を2重にして、トップには何も書かない 外側の即時関数の中には、'use strict'を書く 非strictモードのコードが含まれているとどっちのモードになるかわからないため。負の遺産が含まれ(ry だいたいjQuery使うので、外側の即時関数の書き方はjQuery boilerplateのを参考にしている(jQuery使わない場合は、第二引数を抜かす) 内側の即時関数に実際の宣言を書く app.jsか何か設定用のスクリプトでアプリケーション用名前空間としてグローバルオブジェクトを宣言しておく(window.App = {};など) 即時関数内で宣言されたプロパティやメソッド、関数などを返り値にして、グローバルオブジェクトに展開する /** * functions.js
こんにちは、中川です。 今回はJavaScriptで開発していると、うっかりハマってしまうちょっとした罠たちを紹介したいと思います。 JavaScriptでの開発経験者であれば、どれか一度はひっかかったことがあるのではないでしょうか? String ●String#replace()は文字列指定では全部置き換えない 対象文字列を一括して置き換えたいなどでString#replace()を使いますが、 検索対象を文字列で指定してしまうと最初に一致した部分しか置換しません。
Visual Studio 2008 Service Pack1から、ScriptManagerコントロールの機能強化が行われ、AJAX機能のサポートが行われています。また、ASP.NET Controls for Silverlightにより、Silverlightのメディアやコンテンツをサポートするコントロールの追加も行われています。本稿では、ASP.NET 3.5 SP1/ASP.NET Controls for Silverlightの概要とアプリケーションの作成について学びたいと思います。 はじめに Visual Studio 2008 Service Pack1(以下、VS2008)の追加機能の一つにASP.NET AJAXのScriptManager(ScriptManagerProxyも含む)コントロールの機能強化があります。また、11月にリリースされた、ASP.NET C
これは週末やりたいな−。と思った@HIROCASTERでございませう。 いまどきのRubyとRailsの学び方として取り上げたことのあるCode Schoolが今週末だけ無料開放されるようです。 みんなが考える、ちょっと退屈なオンライン学習とは一線を画すコンテンツですので、ぜひやってみてください。 Rubyの基礎からRuby on RailsやjQuery, Backbone.jsのオンラインコースまで全て無料です。 正確には 5/18 18:00 〜 5/20 23:59(東部夏時間) 日本時間を計算すると 5/19(土) 09:00 〜 5月21日(月) 14:59 です。 おすすめコース 無料コースのRails for Zombiesがおもしろいのですが気になったコースをピックアップします。 Anatomy of Backbone.js – Code School Backbone.
WinユーザがRailsアプリをこれから公開しようと思った場合 Windowsで学習を開始するのは不可能なのでLinuxをいれる でもWindowsで進めようとしてmsysGitをいれたりするが結局半日無駄にする なぜかgemが最新じゃないと怒られる gemを単純に使っても後から困るのでrvmかrbenvが必要。使い方覚えないといけない やっとRails3.2導入。javascriptエンジンが入ってないので起動しない やっと起動 HTML書いてるのは情弱だけ => hamlを覚える js書いてるのは情弱だけ => coffee scriptを覚える css書いてるのは情弱だけ => scssを覚える テスト書いてないコードはレガシーコードっていわれる しかたないのでRspecいれる => Rspec覚える ユニットテストだけではしかたないといわれcapybaraもいれる => capyb
[読了時間:2分] 「アプリやウェブサイトがどんな風にプログラムされているか知りたい」「プログラミングしてみたい」そう思う人がジワジワ増えている。TechWaveでは、そんな初心者の夢を実現するのに最適といえるUEI(ユビキタスエンターテインメント)の「enchant.js」に注目してきたが、そのバイブルとも言える教科書本「HTML5とJavaScriptでスマートフォンゲーム作成! ゼロからはじめるenchant.js入門【公式ガイド】」が遂に発売となった。 若干技術用語が入ってくるが、検索しながら、かつ投稿コンテストサイト「9leap」などで公開されている大量のサンプルコードを見ながら進めれば表題の通り3時間あれば誰でもゲームを作れてしまう良書だ。「またまた、マスダさん御冗談を」という人も是非書店で手に取って頂きたい。 プログラミングの興奮を全ての人に 実際、enchant.jsでは小
JavaScriptのMVCフレームワークと仲間たち JavaScriptでイイ感じに開発をしたいという欲求が高まってきたため、自分でフレームワークを作らずに世界の賢者たちから学びたいと思います。今回は、JavaScriptでMVCフレームワーク等を実現しているフレームワークや周辺のライブラリ、さらにはツールやユーティリティまで幅広くご紹介します。 (2012/1/17 updated) Backbone.js Spine.js JavaScriptMVC AngularJS SproutCore Ember.js YUI App Framework Broke.js Fidel.js Sammy.js KnockoutJS eyeballs.js The M Project Knockback Batman.js Shipyard.js Agility.js ベース jQuery Doj
ソースコードリーディングとかしてると、ただコード読んでてもどうしようもなく、オブジェクトの中身や変数などを見るためにデバッグツールを使いながらでないとやっていけないことが今になって分かりました。自分でもどうしようもなくアホだと思いながら戒めのために覚書。 デバッグツールの機能 僕自身まともに触れる言語はjavascriptとphpくらいなもので、どちらもeclipseのようなIDEを使わず頑なにvimを使って組んできました。phpの場合はxdebugと連携させる方法*1や、javascriptならrhinoなんかを入れてquickrunとかって方法も考えられますが、僕はある程度は知っていながらもひたすら標準のスタックトレースやalert,console.log,console.dirばかりしていたので、まずはIDEなどに搭載されている一般的なデバッグ機能を復習をかねて覚書。 ブレークポイン
20111011 追記 node.jsをインストールしないと.coffee内の日本語が.jsにコンパイルされた後に欠落する問題がありました。 brew install node.js で、node.jsをインストールすることをおすすめします。 Homebrewは https://github.com/mxcl/homebrew/wiki/installation を参考に簡単にインストールできます。 もう生JSは触れない Titaniumでロジックを書いていて生JSの非力さに絶望していたところ、CoffeeScriptのことを思い出して食わず嫌いで触ってなかったので試しにCoffeeScriptを触ってみたら壮絶良かったので、もうTitaniumもCoffeeScriptで書こうと思いました。 Guardで自動コンパイル CoffeeScriptはコンパイルすることでJavaScriptの
執筆した井上誠一郎氏ら共著者に敬服。お疲れさまでした。 パーフェクトJavaScript (PERFECT SERIES 4) 言語仕様のpart2(2〜7章)まで読みました。その後はパラパラっと流し読み。まずは言語仕様までの内容について雑感を述べます。 JSには既にサイ本と呼ばれるバイブルが存在しますが、サイ本は「仕様を淡々と解説している本」といった印象を持っています。対してパーフェクトJavaScriptは「仕様における用語を整理し、分かりやすくまとめて解説している本」といった印象でした。そして表紙がダサいです。ガラケーがのってます。サイ本に対してガラケー本といったところでしょうか。・・・って不名誉な名称だからやめとこうと思いましたが、パーフェクトJavaScriptと長いのでやっぱり使います。 対象読者 入門書ではないと「はじめに」で言い切っています。対象読者についてもそのページで言
(function(){...})()は、 (function($){ $.hoge = function() { }; })(jQuery) みたいに使われていたりするコード。GreasemonkeyとかjQueryのプラグインとか、あれこれ見かけることがあると思います。 この話題はいくつかWebでも取り上げられていますが何がどうなってんのかちょっと難しいですね。しかし、誰でも理解できるレベルではあります。というのも、こういう種の難しさは体系的な知識が備わっているか否かということなのです。 でも、この知識を体系化する作業って結構しんどくて、難しくて、まーハゲるほど悩むこともあるかもしれない。それはきっと、とても毛根に悪いかもしれない。スカルプDも真っ青の状況になるかもしれない。それは、悲しいことなのだと思う・・・っ! 毛根にはこれからもがんばってほしい!いつだって頭を温かいまなざしで見守
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く