Bite-Sized Screencasts for Web Developers that Hate Long Boring Videos
Node.js で重い処理をしてしまったときにタイムアウトするの法 (この記事は Node.js アドベントカレンダー不参加記事です) チャットサーバー的な使い方とか意外とみんな興味なくて、普通のウェブアプリケーションなどをかく、という用途にちょっと node.js がつかえたらいいのにな、とおもっている人がおおいようにかんじています。Node.js が人気なのは、v8 をうまくパッケージングしているのが node.js ぐらいで、そして v8 をうまくパッケージングするのが結構めんどくさいから、というところが大きいのです。ぶっちゃけ node.js が〜 とさわいでる人のうち8割は I/O multiplexing だからとかそういう理由で支持しているわけではなかったりするのです(偏見)。 さて、普通の web application のようなものを書こうとしたときに Node.js っ
Node.jsのスクリプトの中で外部のコマンドを実行する方法を書きます。 JavaのProcessBuilderや、Rubyのsystem、execと同じかんじで、node.jsのスクリプトの中で外部のコマンドを実行します。 コア・モジュールのひとつであるChildProcessを使用し、child_process.execとchild_process.spawnを使った二通りの方法を書きます。child_process.exec(command, [options], callback)を使う もっともシンプルな方法です。シェルでpwd -Pを実行するのと同じことをnode.jsのスクリプトの中で実行するコードを作ってみます。 var exec = require('child_process').exec; var child = exec('pwd -P', function(err
Node.jsで外部コマンドのラッパーとして動作するmoduleを作成する方法の基本を書きます。例としてcurlとwgetのラッパーのmoduleを作成します。ラッパーのmoduleとは何か? pdftk、pdflatex、imagemagick、ghostscript等々、node.jsだけで実現することが困難と思われる処理を行うコマンドを、nodeから簡単に使えるようにした関数なりオブジェクトなりで出来たmoduleのことを(おそらく)ラッパーと言います。 npmjs.orgにはいろいろなコマンドに対するラッパーが数多く公開されています。例えばpdftk、pdflatex、imagemagickに対して以下のようなラッパーが公開されています。 pdftk https://npmjs.org/package/pdftk-helper pdflatex https://npmjs.org
「JavaScript:The Good Parts」 5章-5.4 でプロトタイプ継承に代わる継承方法としてnew演算子を使わない関数型コンストラクタが載っています。そのサンプルコードも記載されていましたが、それだけではまだ実際のイメージがつかみにくい部分があるのと、プライベートなプロパティを設定して継承するというサンプルが無かったので、自分でプログラムサンプルを作成してみることにしました。 JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティスposted with amazlet at 10.10.07Douglas Crockford オライリージャパン 売り上げランキング: 5026 Amazon.co.jp で詳細を見る 目次 関数型コンストラクタの定義 関数型コンストラクタの実行サンプル 継承した関数型コンストラクタの定義 継承した関数
旧ブログのRequireJSネタがひそかにブクマされつづけているので需要があるかなと思い、最近調査したバージョン2.0の機能についてまとめます。元ネタはこちらです。 Upgrading to RequireJS 2.0 · jrburke/requirejs Wiki · GitHub 依存関係の明示 従来のバージョンでjQueryプラグインを利用するには、RequireJS用のorderプラグインを使って読み込み順序を指定する必要がありました。jQueryプラグインが先に読み込まれると「jQueryなんて見つからねーよ!」と言われてしまうためです。これはjQueryに限らず様々なフレームワーク・ライブラリで起こりうる一般的な問題と言えます。 define('order!jquery', 'order!jquery.someplguin'], function($) { // ... })
sstephenson/execjs - GitHubrubymaverick/execjs-async - GitHubできることと起動方法とエンジンの違いRubyスクリプトからJavaScriptコードを実行できるV8, node, spidermonkey, rhino などの中からそのとき利用できるエンジンを autodetect して実行してくれる環境変数からエンジンを指定できる ExecJS::Runtimes の中で定義されている RubyRacer や Node の名前で export EXECJS_RUNTIME=Node などと指定する例えば Rhino は therubyrhino gem に依存する。こうした依存 gem は自動では入らないので注意が必要何の gem も準備していなければ execjs 1.2.4 の段階では node.js, JavaScriptC
Why use a task runner?In one word: automation. The less work you have to do when performing repetitive tasks like minification, compilation, unit testing, linting, etc, the easier your job becomes. After you've configured it through a Gruntfile, a task runner can do most of that mundane work for you—and your team—with basically zero effort. Why use Grunt?The Grunt ecosystem is huge and it's growin
具体的にはセンチャしてて「なんかもっとこう楽になれないの」と思ったので、いろいろ設定をしてた。メモ。 コマンドモードの補完 これは JS とは関係ないけど、知らなかったので。 : で始まるコマンドモードがあきらかに貧弱な挙動しかできないのはなんとかならないの?と思って調べたら、普通に設定かけばいいだけだった。 Vimのコマンドライン補完がこんなに強力な訳がない - Humanity めも - wildmode ファイル名などの補完方法 " vi 互換をオフにする " これ自体は前から設定はしていた set nocompatible " コマンドモードでの補完設定 set wildmode=longest:full,list URL エスケープされた文字列を日本語表示する - vim-hideout の導入 Vim の conceal を使って Unicode エスケープシーケンスの表示を見
「JSX 書くなら Vim だよね」というのが当たり前になる明るい未来を目指して jsx.vim に何個か pull req を送りました! jsx/jsx.vim - GitHub https://github.com/jsx/jsx.vim pull reqを送った機能は次のとおりです。 コンパイラプラグインの追加 補完機能の追加 簡単に説明していきます。 コンパイラプラグインの追加 デフォルトではオンになっていないので、:compiler jsx にしておくか、vimrc で以下を実行する必要があります。 autocmd FileType jsx compiler jsx この状態で :make を実行すると quickfix にエラーが表示されます。vim-hier と併用すると以下の様になります。 補完機能の追加 manga_osyo さんが neocomplcache での実装
「javascript indent in vim - gnarl、技術メモ<s>ho<marquee>ge’”¥ 」様より継承したものを自分好みにちょっと改造してみました。 主な変更点は、以下の通りです。(制約事項については「後書き」を参照) 1、式の途中での改行 演算子の後で改行するとインデントするようにしました。長い式を途中で改行した場合に継続行がインデントされます。 1 + 2 + 3; baka; 演算子には「.」も含まれますので、メソッドチェーンの途中で改行した場合も同様にインデントされます。 aaa.bbb. ccc.ddd; baka; 2、リスト途中での改行 関数の引数リストなど、「,」の後で改行するとインデントするようにしました。長いリストの途中で改行した場合に継続行がインデントされます。 aaa(bbb, ccc, ddd); baka; [aaa, bbb, ccc
The complete solution for node.js command-line interfaces. Read this in other languages: English | 简体中文 Commander.js Installation Quick Start Declaring program variable Options Common option types, boolean and value Default option value Other option types, negatable boolean and boolean|value Required option Variadic option Version option More configuration Custom option processing Commands Command
Doesn't Node already have a module loader? § 1 Yes Node does. That loader uses the CommonJS module format. The CommonJS module format is non-optimal for the browser, and I do not agree with some of the trade-offs made in the CommonJS module format. By using RequireJS on the server, you can use one format for all your modules, whether they are running server side or in the browser. That way you can
Requirements§ 1 Download§ 2 Example setup§ 3 Basics§ 4 Optimizing one JavaScript file§ 5 Shallow exclusions for fast development§ 6 empty: paths for network/CDN resources§ 7 Optimizing one CSS file§ 8 Optimizing a whole project§ 9 Optimizing a multi-page project§ 10 Turbo options§ 11 Integration with has.js§ 12 Source maps§ 13 All configuration options§ 14 Deployment techniques§ 15 Common pitfalls
JavaScript製のWebアプリケーションライブラリ「Backbone.js」の開発チームは3月20日、「Backbone.js 1.0」をリリースした。疎結合されイベントやKey Value bindingといった通信機構を持つModelおよびView、Collectionを提供するJavaScriptライブラリで、Ruby on RailsやNode.jsなど、さまざまな言語やWebアプリケーションフレームワークと組み合わせて利用できる。 Backbone.jsは、MVC(Model-View-Controller)アーキテクチャに基づくWebアプリケーション向けにModelおよびViewやModelの集合にアクセスするためのCollection、これらが相互に通信を行うための機構などを提供するライブラリ。ModelとViewとの通信にはRESTfulなJSONインターフェイスが使
Stay Relevant and Grow Your Career in TechPremium ResultsPublish articles on SitePointDaily curated jobsLearning PathsDiscounts to dev toolsStart Free Trial7 Day Free Trial. Cancel Anytime. Key Takeaways Web scraping in Node.js involves downloading source code from remote servers and extracting data from the downloaded source code, which can be done using modules like cheerio and request. The chee
よく分からなくなるのでメモ。 Nodeの非同期を扱うライブラリasync。の機能でフロー制御関数が幾つかある。 var async = require('async'); async.waterfall([ function (callback) { console.log('waterfall 1'); setTimeout(function () { console.log('waterfall 1 done.'); callback(null, 1); }, 500); }, function (arg, callback) { console.log('waterfall 2'); setTimeout(function () { console.log('waterfall 2 done.'); callback(null, arg + 1); }, 300); }, funct
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く