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

前回→今からはじめるReact.js〜仮想環境を作成する〜 React.jsからサーバー通信 SuperAgant React.jsでAjax通信する場合、jQueryを利用するか、その他の手段を使うか検討すると思いますが、Ajax通信するためだけにjQueryを使うのは無駄が多いので、SuperAgantを利用することにします。 SuperAgantの使い方については、 http://qiita.com/hashrock/items/3113690bb3de5bba639b の解説がわかりやすかったです。 インストールは次の通りです。 $ npm install superagent --save テーブルを作成する 今回、ユーザーを登録できるのと、ユーザーリストを表示できるように実装します。 サーバー通信の実装を行う前に、ユーザーテーブルを作成します。 カラムはnameとmailだけの
注意 YouTube APIの公式ドキュメントに載っていない設定値を利用します。 いつ使えなくなるかわかりません。 tl;dr http://video.google.com/timedtext?type=list&v={videoId} で字幕リスト取得 http://video.google.com/timedtext?lang={lang}&name={name}&v={videoId} で字幕情報取得 YouTube APIにプログレスイベントがないので requestAnimationFrame と player.getCurrentTime()で時間を取得 2と3で字幕を表示 APIのonApiChangeイベント検知後に player.setOption('captions', 'displaySettings', {option})で既存の字幕を非表示に 最低でも2つXML
watchを使ってReactとES6の変更を監視 + 自動ビルドするの続きです。 前回は、 watchでディレクトリの変更を監視し、変更を検知したらシェルスクリプトを実行し、トランスパイルと依存関係の解決を自動で行う というところをやりました。 今回は、本エントリーの目標である「書籍についてのメモや評価を記録できるアプリケーション」というところに着手していきます。まず、現在実装している「books/index」のページに表テーブルを作成します。 「Reactビギナーズガイド」では、データとなる部分を配列として定義→ローカルストレージを使って実装といったステップを踏んで表テーブルを実装しています。本エントリーでは、Railsと連携させているということで、データとなる部分を配列として定義→RailsでAPIを作成し、React側からgetするという流れで実装していきたいと思います。 1. 表テ
当社でもSlackを初めてもうすぐ2年になります。全履歴を取得して、何かできないかなと思ったので、調べてスクリプトを書いたので公開します。 Slackで使用するAPI 以下です。 https://api.slack.com/methods/search.messages このAPIを使用するにはTokenが必要なので、それは自分のSlackを使って発行しておいてください。おそらく以下から発行できます。(他人に見られないように) https://api.slack.com/custom-integrations/legacy-tokens 使用したスクリプト もちろん、最近習得カーブが急上昇しているJavaScriptです。 外部APIにアクセスするので、superagentを使用します。 もしかするとたくさんのAPIをコールする可能性もあるのでpromise使っています。 Promiseは
co(koa.js)は中で何をしているのか.の続き. co用のゲートモジュールco-gateを公開しました. visionmedia/coを使うと、非同期APIを同期的に使うことが出来るのは、今までのエントリに書いた通りです. ただ、ThunkやPromiseにAPIを書き換えなければいけません. そこでco-gateでは、非同期APIのコールバックをゲートに入れて(gate.in())、同期的にゲートから出す(gate.out())ことで、従来型のAPIをそのままで使うことが出来るようにしています. // require co var co = require('co') , Gate = require('co-gate') , fs = require('fs'); co(function *(){ // create gate var gate = new Gate() , val
各方式は対立するのか? ところでこれらの方式って、必ずしも対立するってわけじゃないんですよね。 JavaScriptのgeneratorはまだ使えるところが限られるけど、コールバックが不要で同期処理のように簡単に書けるのはやはり魅力的です。 一方で、ちょっとした非同期処理をReactive Programmingで処理するのはおおげさですが、ストリーム的に流れてくる複数のイベントを合成したり、時間的な操作をしたりする場合には圧倒的に便利です。 なので、適材適所で使い分けるのがよさそうです。(なんの解決にもなってない!) promise, co, RxJS さて、使い分けると言っても、方式が異なるものを混ぜて使うことは可能でしょうか? 実は、それぞれの方式は対立しないどころか、連携することも可能です。 各方式の代表的な実装であるpromise, co, RxJSを例にみてみましょう。 まず、
coは戻り値としてfunction (done) { ... }みたいな関数("thunk")を返すので、コールバックを受け取る関数だと非同期になるmochaと組み合わせてこのようにシンプルに書けるようだ。 (作者が同じ visionmedia 氏なので、考慮に入れられているっぽい?) it('should do something', co(function *() { ... actual = yield doSomething(); assert.equal(expected, actual); ... }));
この記事は Node.js Advent Calendar 2015 9日目の記事です。(大遅刻) 注意 この記事で扱うのはKoaのv1.1.2です。なお、今後のバージョンアップで書き方やAPI、そしてコードが大きく変わる可能性があるのでご注意ください。現時点でv2.xはアルファ版ですが、coがサポートされないようになり手動で追加する必要がある、などの違いがあります。 Koaとは Expressive middleware for node.js using generators WebアプリのサーバーサイドがES6 Generatorを使っていい感じに書けるという話ですね。 特徴 リポジトリのREADMEよりサンプルコードを引用 簡潔に書ける 簡潔に書けます。 var koa = require('koa'); var app = koa(); // logger app.use(fun
JSで書かれたブラウザUIは実用に絶えないゴミという話。まぁそうだろうね。色々と筋が悪い。/ Javascriptを使うのをやめろ:Railsの時代遅れ云々についての結論 - Qiita - http://t.co/QuQS8H6VZ8
おー知らなかった。なるほど。これパーセンタイルを算出するのにも使えるな。 / “JavaScript - とても長い配列の上位M件だけをクイックソートより高速に取り出す - Qiita” https://t.co/WJWlT9Ja0g
よい。リファラーを持っていくパラメータ、referrerの代わりにutm_referrerが使えるかも。 / “やはり、お前らのJavaScriptでのリダイレクト実装は間違っている - Qiita” https://t.co/F0lV77CUN5
500ストック! | 絶対に読んでおきたい、JavaScriptのおすすめ書籍7冊 by @axross_ http://t.co/Ko1xidGEiI
CPUを占有したりバッテリを無駄に消費したりないように、setTimeout(1) の中で setTimeout(1) が何回も呼ばれた場合だけ発動するルールかと / “JavaScriptの1msは4ms - Qiita” https://t.co/y3D531rpGa
Promise での非同期処理時、排他制御を怠ったばっかりにバグを出してしまった、そんな経験ありませんか。私はあります。 スレッドを使う場合、Mutex や synchronized 等々、大抵排他制御を行うライブラリや構文などがセットでついてくるのだけど、Promise/A+ には無いので自前で制御する必要がある。 なので、Promise で排他制御が出来るライブラリを npm から調べ、めぼしい物二つをピックアップしてみた。 async-lock https://www.npmjs.com/package/async-lock 一番メジャーっぽいライブラリ。ダウンロード数も多い。 ロック取得時、key を指定する redis の key の set のように、key ごとに排他制御したい場合に便利 タイムアウトのサポート 待ち受けタスク数の上限のサポート インターフェイスが、acqui
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く