You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
おさらい 第29回では、非同期処理を実現する方法としてReactorパターンを紹介しました。 一般的に非同期処理として使われているスレッド処理と違い、Reactorパターンはシングルスレッドで動作し、スレッド間のデータの共有に悩む必要はありません。しかしReactorパターンはコードが直感的ではなく、慣れていない人には取っつきにくいものであることも確かです。 そのため、Reactorパターンを意識せずに非同期処理を実現するためのライブラリがRubyにはたくさん用意されています。 今回は、その中でもよく使われているEventMachineについて簡単に説明します。 EventMachineとは EventMachineとは、Reactorパターンを利用して非同期処理を実現し、高レベルなネットワークインターフェースを提供するライブラリです。 複雑なReactorパターンによる処理はブラックボッ
はじめに 佐々木です。開発経験も無くJavaScriptを触ったこともない僕ですが、どうしてもAWS lambdaを触ってみたかったので、四苦八苦しながらやってみました。 すでにバリバリ活用しているブログ記事がたくさん出ていますが、本記事は本当に何もわからない僕がよちよち歩きしている内容ですので、深いところは期待しないでください。そして識者のツッコミをお待ちしております。 AWS lambdaの基本的な使い方は以下の記事をご参照ください。 AWS Lambdaを始めてみる(1).ユーザーアプリケーションからのイベントを扱う AWS Lambdaを始めてみる(2).Amazon S3イベントを扱う やってみる MBAにnode.jsをインストールする とりあえず簡単な構文チェックだけでも手元でやりたいので、MBAにbrewを使ってnode.jsをインストールします。 $ brew insta
In 2011, I wrote a three-part series called How GitHub Works. I wanted to detail how we planned ideas, built them, and shipped them. GitHub no longer works like this, electing instead to institute a hierarchical, manager-driven, top-down, geocentric organization. I’m going to keep these posts up, though, because I think they address extremely important aspects of how good technical companies shoul
はじめに WebサービスのAPIをコールするような、ネットワークを介した通信処理は、今日では頻繁に行われています。 ローカルマシンのみで完結する処理と比べると、通信が必要な処理は多大な時間が必要になります。相手サーバへの接続、相手サーバ側での処理、相手サーバからの受信など、何もすることなくただ待つだけの時間が存在します。 この無駄な時間の間に他の処理ができるならば、トータルの処理時間を大幅に短縮することが可能になります。これを実現するためにスレッドがよく使われています。しかしマルチスレッドプログラミングはいろいろと注意を払う点も多く、使いにくさを感じている方も多いのではないでしょうか。 今回はReactorパターンという、マルチスレッドとは違ったアプローチで非同期処理を実現してみたいと思います。 複数のwebサーバからHTML文章を取得してみる 同期処理 ひとまず非同期処理を忘れて、シーケ
前回はPOSIX AIOとLinuxカーネルのAIOサポートについて解説しました。今回は、このAIOの使い勝手を良くするため、POSIX AIOインタフェース準拠のライブラリを作成しています。 LinuxネイティブAIOライブラリliblaioの試作 Linux AIOを使用する場合、現在では前述のlibaioの利用が第一候補になりますが、やや使い勝手が悪いため、本記事でPOSIX AIOインタフェース準拠のライブラリを試作してみます。Linux AIOではO_DIRECTが前提となるため、この点もやや使い勝手が悪いのですが、SSDなどメモリベースのファイルシステムもありますし、動作は非同期になりませんがio_submit(2)はO_DIRECTがなくとも使用可能ですから、まぁ試しにやってみましょう。 ライブラリ設計要点を挙げます。 Linux AIOにPOSIX AIOインタフェースをか
本書は、C#5.0で新たに追加された非同期処理の機能、asyncについて解説する書籍です。既にC#をよく使っている開発者に向けて、複雑なコードを書くことなく非同期機能を実現できるasyncの機能を紹介します。既存のメソッドを非同期にする方法、タスクベースの非同期パターン(TAP)、非同期コードにおける例外処理、並列処理などをコンパクトな紙幅の中で解説しています。なお本書はEbook版のみの販売となります。 はじめに 対象とする読者 本書の読み方 本書での表記 サンプルコードの使用について お問合せ先 謝辞 1章 序 非同期プログラミング 非同期コードのどこが優れているのか asyncとは何か asyncの機能 asyncですべてが解決されるわけではない 2章 プログラムが非同期でなければいけない理由 デスクトップユーザインタフェースアプリケーション たとえ話――カフェ Webアプリケーショ
第2回AP4RとRailsでつくる非同期アプリケーション 加藤究,篠原俊一 2007-09-13
JavaScriptファイルをスクリプトから非同期で読み込むパターンは古い、という話を目にしたのはもう半年前のこと。 言ったのはIlya Grigorik。月末のGoogle Japanでのイベント、月初のHTTP2ConferenceにくるWebパフォーマンス界のすごいひとですよ。 Script-injected "async scripts" considered harmful - igvita.com 件のパターンは、スクリプトで動的に script を生成して、そこに読み込みたいJavaScriptファイルをぶっこんで読み込むというもの。 <script> var script = document.createElement('script'); script.src = "//somehost.com/awesome-widget.js"; document.getEleme
前回までファイル I/O 全般について簡単に振り返りました。いよいよ本題のAIOに取り掛かります。今回は、POSIXのAIOインタフェースと、LinuxカーネルのAIOサポートについて紹介します。 POSIX AIO インタフェース バッファキャッシュにより緩和されるとはいえ、ファイル I/Oの最終到達地点はディスクですから、同期的なI/Oはやはりその時間が問題視されることがあります。まだバッファキャッシュに存在しないデータを読み取る場合には遅いディスク必ず待たなければなりません。この動作を非同期に行い、待っている間に他の処理を進められるようにするのが非同期 I/O、AIO(Asynchoronous I/O)です。POSIXではaio_read(3)、aio_write(3)、aio_suspend(3)、aio_fsync(3)、aio_return(3)、aio_cancel(3)、
イベントループを持つモジュールが抱える問題点 イベントループを持つモジュールの一例として、前回はPOEを取り上げましたが、もちろん同じようなループを持つモジュールはほかにもあります。 たとえば1995年に故ニック・イング・シモンズ(Nick Ing-Simmons)氏が始めたPerl/Tkや、POE誕生前夜の1997年から開発が行われているGtk(のちのGtk-Perl)、その後継にあたるGtk2/GlibのPerlバインディング(2003年)など、GUIアプリケーション関連のツールがそうですし、IO::Poll(1997年)やIO::Async(2007年)のようなモジュールにもイベントを監視するためのループが使われています。また、Event(1997年)やlibeventのラッパであるEvent::Lib(2004年)、EV(2007年)のように、イベントループそのものを実装す
どうもはじめまして、株式会社はてなのid:cho45です。これから数回に渡り、拙作のJavaScriptのライブラリであるJSDeferredの紹介と、それに関係するJavaScriptにおける非同期の技術に関して解説させていただきます。 JavaSciptにおける非同期処理 非同期処理とは まずは確認程度に、非同期処理がどういうものかを解説しておきます。先に乱暴にまとめてしまうと、以下の事柄が大切なところです。 非同期とは「あとで」という意味 同期処理はコードの見た目順に実行される/非同期ではそうならない JavaScript の非同期処理は絶対に同期処理にすることができない JavaScriptにおける非同期処理をいくつか例に出すと、以下のようなものが挙げられます。 リスト1 // XMLHttpRequest の例 var req = new XMLHttpRequest(); re
2014-09-18 【Python】2行でHTTPリクエストを並列処理できる便利ライブラリ『GRequests』 やり方 GRequestsはHTTPリクエストを並列処理するライブラリです。 GRequestsはGitHubでスターを759個付けられているのに、日本語でGRequestsについて触れられた記事はひとつもみつかりませんでした(ほんとかな?) なので紹介します。 GRequestsのインストール pip install grequestsでいけます。GReqestsはrequestsとgeventを使っていますので、それらも一緒にインストールされます。帰ってくるオブジェクトもrequestsのそれなので完璧です。 コードは以下のようになります。 ※ もし404だったりした場合はNoneが格納されます。 サっとHTTPリクエストを非同期処理するときにpip install gr
Familiar API Luvit implements the same APIs as Node.js, but in Lua! This helps teams migrate without having to learn a new way of programming. Async Choice Choose your async model; we don’t mind; we encourage experimentation. If you don’t like callbacks and event emitters, use coroutines and write blocking style code without actually blocking your event loop! Modular Core The various projects in t
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog Yahoo!デベロッパーネットワークの中野(@Hiraku)です。JavaScriptでサンプルコードを書く機会があったので、どんなインターフェースで提供するのが便利なのか考えてみました。よく問題になるコールバックのネスト問題について、一般的な話をまとめてみます。 お題 突然ですが、次のような処理を行う必要があるとします。 「0」を出力する 1秒待つ 「1」を出力する 1秒待つ 「2」を出力する これをプログラムで書くとどうなるでしょうか? シェルスクリプトの場合(同期) たとえばシェルスクリプトで素直に書くと、次のようになります。
JavaScript Promiseの本という無料で読める電子書籍を書きました。 タイトルそのままで、JavaScriptのPromiseについて書いた書籍です。 書籍の目的 この書籍を読むことで学べる事として、次の3つを目標にして書きました。 Promiseについて学び、パターンやテストを扱えるようになる事 Promiseの向き不向きについて学び、何でもPromiseで解決するべきではないと知る事 ECMAScript6 Promiseの基本をよく学び、発展した形を自分で形成できるようになる事 Promiseは、次のECMAScriptの言語仕様として策定が進められていて既に多くのブラウザに実装されています。 Promiseについて扱う書籍ですが、この機能はjQuery.Deferred()やAngularJSの$qやBluebird等の類似の機能が既にあるため扱ったことがあるかもしれま
JavaScript (Node.js) で開発する上で避けては通れない 非同期処理、コールバックについて考えてみたい。 自分なりのお勧めの方式を書いてみた。 いろいろなものを試した結果である。 ※この記事でのお勧めの方法は ES2015 (ES6) で実装された generators (yield) の技術を使用しています。 実はまだ Babel(6to5) 等を利用するか Node.js v4~v8 でしか 実質的に使用できない技術だと思います。悪しからず。 (早く全てのブラウザに広く普及する事を祈っています) まだブラウザでは独自ライブラリか Promise (Deferred) 等を使っています。 ※2015/10/15: 記事の内容を npm aa (async-await) に対応させました。 ※2015/04/19: 記事の内容を npm co@4 に対応させました。 ※20
Hackers Barってなに? Hackers Bar 六本木にハッカーがおもてなしをするバーが誕生します。 「Hackers Bar」は、ハッカーのプログラミングライブや ビジネスメイキングを楽しむ空間です。 ぁゃしすぎだし、まじで営業してんの!?って半信半疑で行ってみたら、 まじで営業してたw 存在してたwwww ぉ店自体のくゎしぃレポゎねとらぼにも載ったみたぃ カクテル名が「ブルースクリーン」「スパゲッティ」って不吉すぎるでしょ! 六本木にできた「Hackers Bar」行ってきた - ねとらぼ ゃってもらったライブコーディング 弟が、ぁゃぴにソファーをくれるって言ってて、 ゃったーってかんじなんだけど、③人掛けでまじデカぃっぽぃ! ぉ部屋の㊥ゎだぃじょぶっぽぃんだけど、 運ばれてくる時、マンションのエレベーターにちゃんと入るのかな? …ってことで、それを計算したくて/(^o^)\
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く