並び順

ブックマーク数

期間指定

  • から
  • まで

201 - 240 件 / 1637件

新着順 人気順

asyncの検索結果201 - 240 件 / 1637件

  • Vue.jsとDjango REST FrameworkでSPAなWebをやる時の勘どころ - HATEOASと非同期処理(の触り) - Lean Baseball

    ボストン・レッドソックスの皆さん、世界一おめでとうございます!*1 野球ってほんと面白いですね、こんばんは野球エンジニアです.*2 このエントリーでは楽しい野球技術、Vue.jsとDjango(Django REST Framework、以下DRFと略す)の話をサクッと書きたいと思います. なお、このエントリーは先日開催されたPyLadies Tokyo - 4周年記念パーティのLTでやったことの自分メモをブログにしたものです.*3 元ネタ PyLadies Tokyo - 4周年記念パーティのLTで話した内容がベースです. speakerdeck.com DjangoとVue.jsそしてOhtani-San - Pythonで二刀流しよう #PyLadiesTokyo 4周年 TL;DR 複数カテゴリのデータをSPA + REST APIで扱うなら、最初からHATEOAS(Hyperme

      Vue.jsとDjango REST FrameworkでSPAなWebをやる時の勘どころ - HATEOASと非同期処理(の触り) - Lean Baseball
    • Remixの凄みを紹介したい

      Cloudflare WorkersとKVで キャッシュを非同期に更新する | Cloudflare Meetup Nagoya

        Remixの凄みを紹介したい
      • 並列1000コネクションに耐える! Ruby のイベント駆動ライブラリ Rev と EventMachine の HTTPクライアント : DSAS開発者の部屋

        並列1000コネクションに耐える! Ruby のイベント駆動ライブラリ Rev と EventMachine の HTTPクライアント こんにちは、takada-at です。 Rubyのイベント駆動型ネットワークプログラミングフレームワーク Rev と EventMachine で HTTPクライアントを動かしてみました。 イベント駆動型ネットワークプログラミングフレームワークとは何か説明しだすと難しいですが、一言で言うと、以下のようになります。 # ふつうのフロー駆動型プログラム Net::HTTP.start(host, port){|http| res = http.get(path) #この処理が終わってから } puts "done" #この次の処理が実行される # イベント駆動型プログラム client = Rev::HttpClient::connect(host, port

          並列1000コネクションに耐える! Ruby のイベント駆動ライブラリ Rev と EventMachine の HTTPクライアント : DSAS開発者の部屋
        • プログレッシブレンダリングでUXを向上させるJS非同期読み込みのベストプラクティス | ゆっくりと…

          本ブログでは、サイトの高速化に直結する「JavaScript 非同期読み込み」の話題を多数取り上げてきました。タイトルに釣られてこの記事を見てくれている方なら Google Analytics の非同期コードスニペット はご存知でしょうし、規模の大きいサイトやアプリ用に RequireJS などのフレームワークを使っている方もいるでしょう。 GA も RequireJS も、動的に生成したスクリプト要素を DOM に埋め込む「DOM 挿入法」が用いられています。さらに遡れば、Steve Souders が 2009年4月の記事 ノン・ブロッキングなスクリプト読み込み で、6つの手法に分類しています。 果たしてこれらの方法は、サイトの高速化にとってベストなのでしょうか? 答えは2012年12月の海外記事にありました。そこで本エントリーでは、日本ではほとんど取り上げられていない Frame i

          • モバイルブラウザでもサクサクに動作する最適化6つのノウハウ

            「Webサイト・アプリ高速化テクニック徹底解説」第8回は、モバイルブラウザに向けた最適化について紹介します。 モバイル端末はPCに比べ、CPUやネットワークなどの性能面で劣ることからボトルネックの影響が出やすく、またゲーム開発など突き詰めたチューニングを行う場面では、特殊なノウハウも必要になります。 しかしきちんと最適化を行えば、その効果もその分著しく、比較的低スペックな端末や3G回線であっても、サクサク軽量なサービス提供が可能です。今回の記事では、その勘所をお伝えしたいと思います。 1. ボトルネックを取り除く まずはやってしまいがちなボトルネックの事例について、挙げていきたいと思います。前述のようにモバイル端末では、その性能からPCよりも顕著に、未最適化箇所が体感に影響を及ぼします。 仕事がらそこそこの数のアプリケーションを見てきましたが、モバイル向けに特化したチューニングができていな

              モバイルブラウザでもサクサクに動作する最適化6つのノウハウ
            • nextTick、setTimeout(fn, 0)の代わり - 素人がプログラミングを勉強していたブログ

              setTimeout(fn, 0)より高速な関数は最近はこんな感じのを使うといいと思う。 var nextTick; if (typeof setImmediate === 'function') { nextTick = setImmediate; } else if (typeof process === 'object' && typeof process.nextTick === 'function') { nextTick = process.nextTick; } else if (typeof MessageChannel === 'function') { (function () { var channel = new MessageChannel(); var queue = null; channel.port1.onmessage = function () { t

                nextTick、setTimeout(fn, 0)の代わり - 素人がプログラミングを勉強していたブログ
              • Node.jsにPromiseが再びやって来た! - ぼちぼち日記

                tl;dr サンプルコードを付けたら記事がかなり長くなってしまったのでご注意下さい。 Node.jsの current master で V8がアップデートされ ES6の Promise が使えるようになりました(要オプションですが)。Promise を使うと Node.jsの非同期処理がどのようになるのか、Stream と Promise を組み合わせた使い方なども含めて紹介します。 1. はじめに Nodeの次期安定版 v0.12は、すぐ出ると言われながら既に v0.10のリリースから1年が過ぎてしまいました。 現在、v0.12の主要な新機能の実装は完了していますが、まだ安定版のリリースに向けて手当できていない部分が残っている感じです。そんな残っている部分の一つだった V8 のアップデートが先週末に行われました。 deps: update v8 to 3.24.40 (3/19現在は

                  Node.jsにPromiseが再びやって来た! - ぼちぼち日記
                • 自作でイベント駆動型サーバ作るのツライ問題とlua-nginx-module

                  自作でイベント駆動型サーバ作るのツライ問題とlua-nginx-module 23 Mar 2016 Nakamura Narihiro 何の因果かわかりませんが、お仕事でちょっと賢いリバースプロキシサーバ(以降、RPサーバ)を作る機会が2回ありました。 HTTPヘッダの内容によってプロキシ先のサーバを動的に切り替えるようなものです。 この要件を満たすため、RPサーバには以下のようなプログラムが必要になります。 HTTPヘッダの内容を知るためにHTTPリクエストをパース プロキシ先のサーバへHTTPリクエストをプロキシ プロキシ先のサーバはRedisから取得 レスポンスをクライアントへ返す 大量のリクエストも捌ける 1回目はRubyとI/O多重化のライブラリを使ってイベント駆動型のRPサーバを自作してみました。 が、振り返ってみるとこれは失敗でした。 なぜ失敗だったのか? Rubyでイベン

                    自作でイベント駆動型サーバ作るのツライ問題とlua-nginx-module
                  • 徹底解説! return promiseとreturn await promiseの違い

                    先日、こちらのツイートを見かけました。 それに対して筆者は以下のツイートをしたところ、いくつかの反応が寄せられました。 コード部分を再掲します。 async function foo1() { return await Promise.resolve(); } async function foo2() { return Promise.resolve(); } async function wait() { await null; } // pika // chu // と表示される foo1().then(() => console.log("pika")); wait().then(() => console.log("chu")); // chu // pika // と表示される foo2().then(() => console.log("pika")); wait().the

                      徹底解説! return promiseとreturn await promiseの違い
                    • MASDA » 非同期処理いろいろ

                      Strict Standards: Declaration of Walker_Page::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/sites/heteml/users/m/e/t/metaphor/web/masuda/blog/wp-includes/classes.php on line 576 Strict Standards: Declaration of Walker_Page::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/sites/heteml/users/m/e/t/metaphor/web/masuda/blog/wp-includes/classes.php on

                      • Rails + BackgrounDRb でメール配信 - WebOS Goodies

                        WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 皆さんご存知のとおり、 Rails をはじめとする多くの Web アプリケーションフレームワークは、リクエストベースで設計されています。つまり、すべての処理は HTTP リクエストごとに起動され、それにレスポンスを返すことで終了します。ほとんどの場合、これは非常にうまく機能しますが、タイムアウトが発生してしまうような時間のかかる処理、一定間隔で定期的に起動したい処

                        • Node.jsフロー制御 Part 1 – コールバック地獄 vs. Async vs. Highland | POSTD

                          (このシリーズのPart 2はこちら: Node.jsフロー制御 Part 2 – FiberとGenerator ) 今回は、JavaScript/node.jsアプリケーションのフロー制御に対するアプローチを、いくつか取り上げて比較してみたいと思います。 通常のコールバックを使う 平坦化されたコールバックを使う Async ( @caolan 作)を使う Highland (こちらも @caolan 作)を使う Bluebird ( @petkaantonov 作)を使う Expressフレームワークを使った以下のルート処理(お粗末ですが)を例に見てみましょう。 ファイルから読み込む いくつかのプロセスを実行する(ステップの数は3つ) プロセスとは、単に拡張データをコールバックする任意の非同期処理を指します ファイルに結果を書き出す リクエストに対して成功またはエラーのメッセージを返す

                            Node.jsフロー制御 Part 1 – コールバック地獄 vs. Async vs. Highland | POSTD
                          • LLPlanets - JavaScriptプログラマのための 全方位的完全武装ガイド

                            TopicsPlaceHolder SectionTitlePlaceHolder TIME rest time current/total

                            • async/await 比較(C#, JavaScript, Python) - Qiita

                              using System.Windows.Threading; Dispatcher.CurrentDispatcher.InvokeAsync(async () => { // いろいろな処理... // メッセージループを終了させる Dispatcher.CurrentDispatcher.BeginInvokeShutdown(DispatcherPriority.Normal); }); Dispatcher.Run(); WPF とか WinForms とかでは、フレームワークがすでにメッセージループを回しているので、自分で Dispatcher.Run() する必要はない。 JavaScript 自分で書く必要なし。 Python asyncio.run(最初に実行するasync関数)

                                async/await 比較(C#, JavaScript, Python) - Qiita
                              • Flow.js

                                非同期プログラミングを驚きのシンプルさに ver 1.0.1 and more. http://uupaa.hatenablog.com/entry/2013/03/12/185555 http://uupaa.hatenablog.com/entry/2013/03/14/131556

                                  Flow.js
                                • Pythonのジェネレータ、コルーチン、ネイティブコルーチン、そしてasync/await | POSTD

                                  (訳注:2016/3/9、いただいたフィードバックを元に記事を修正いたしました。) 注意: この記事で書かれている機能は、大部分がPython 3.4で導入されたものです。ネイティブコルーチンとasync/await構文はPython 3.5でサポートされました。そのため、本記事に記載されているコードを試す場合はPython 3.5の利用をお勧めします。 ジェネレータは値を 生成する 関数です。普通、関数は return で値を返したあと、その下層のスコープは破棄します。関数を再度呼び出す場合、その関数はゼロから起動されることになります。つまり1回限りの実行となります。しかしジェネレータ関数は値を yield で返し、関数の実行を一時停止します。その後、関数を呼び出したスコープにコントロールが移ります。関数を再び呼び出して次の値を(存在すれば)得たい時は、実行を再開することができます。では

                                    Pythonのジェネレータ、コルーチン、ネイティブコルーチン、そしてasync/await | POSTD
                                  • Nodeのイベントループを理解するために遊んだ & Apolloのテストでawait wait(0)するとなぜデータがロードされるか - $shibayu36->blog;

                                    Apolloを触っていて、テストをするために https://www.apollographql.com/docs/react/development-testing/testing/#testing-final-state を読んでいた。その文章の中で、 MockedProviderをrenderした時はloading状態になる データがロードされた最終状態にするにはwaaitみたいなnpm packageを使って、await wait(0)とかしてね It delays until the next "tick" of the event loop, and allows time for that Promise returned from MockedProvider to be fulfilled. と書かれていて、この文章の意味がわからなかったので、Nodeのイベントループを知

                                      Nodeのイベントループを理解するために遊んだ & Apolloのテストでawait wait(0)するとなぜデータがロードされるか - $shibayu36->blog;
                                    • Python3.5の新機能 - Qiita

                                      はじめに 開発ロードマップ(PEP-478)によると正式リリースが9/13(おそらくUS時間)に予定されているPython 3.5。追加のリリース候補(rc4)が9/9にリリースされたこともあり、多少遅れる可能性もあるが、おそらくは一週間以内にでることであろう。ということで、Python3.5の変更点の日本語まとめ + 一言コメントをしてみた。元ネタはこちらの冒頭にある "Summary - Release Highlights"。 なお、Python3.5を試すには、最新のリリース候補をここからダウンロードすればよい。あるいはpyenvを使っている人はpyenv installで簡単に導入できるが、pyenvの最新版v20150901ではrc2までしかサポートされていないのでそれで我慢するか、pyenvをHEADから取ってくる必要がある。homebrewを使っている場合はこんな感じ。 b

                                        Python3.5の新機能 - Qiita
                                      • Java 5.0時代の非同期処理技術から学び直すScala/Java非同期処理

                                        【Oracle Cloud ウェビナー】Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (2023年5月24日)

                                          Java 5.0時代の非同期処理技術から学び直すScala/Java非同期処理
                                        • JavaScriptは如何にしてAsync/Awaitを獲得したのか: がおさんち 技術部屋

                                          JavaScriptを記述する上で、避けて通れないのが非同期処理。 人類は、長い年月、この非同期的な処理を「如何にして書きやすく、読みやすく記述するか」について探求してきました。 要するに†闇†の塊なのですね。(闇に飲まれよ!!!!) この物語は、そんな†闇†の存在だった非同期処理を、人類がどのように苦しみ、そしてどのように解決していったかを書いていくポエムである。 補足:厳密には、JSはシングルスレッドで動くため、非同期処理は存在しない!と言ってしまえばそこまでなのですが、今回はsetTimeoutやajax通信、onloadイベント登録など、見かけ上、非同期的な挙動を示すものすべてを対象に話していきます。 第一章 ~人類はsetTimeoutを採用しました~ 古代のJavaScriptで、以下のような処理をしたい場合、どうしていただろうか。 「ブラウザ更新直後に『a』を表示し、その2秒

                                          • 静的サイトをとにかく高速化する話

                                            自分のポートフォリオサイトをサンプルに、どのくらいの容量削減ができるのかを確認してみました。 jsおよびCSSは、サイトの表示に必要な要素を1ファイルにバンドルした状態です。 画像ファイルはjpegの圧縮率などによって最終的なサイズが大幅に変化するので、jsとCSSのサイズ変化のみを取り上げました。 Bootstrap + Font Awesomeのような重量級フレームワークを使用しても、十分に実用的な容量まで削減できました。これならスマホ+3G回線での表示も心配ありません。 手法 適用しやすさを順に手法を並べると、以下のようになります。 遅延する 圧縮する キャッシュする まとめて削る 遅延する サイト上にあるほとんどのリソースは、実際には後から読み込んでも問題なく動作します。 まず最小限の構成でサイトを表示させ、重いファイルは後から読み込みます。 javascriptの遅延読み込み h

                                              静的サイトをとにかく高速化する話
                                            • 最近海外で流行りのTwitter,Facebook,Google+1,Analyticsをまとめる非同期スクリプトにはてなを加えてみた | ゆっくりと…

                                              • Promise と async/await の理解度をもう1段階上げる - Qiita

                                                はじめに 表題のモチベーションで書き上げた備忘録に加筆・修正したものを記事にしました。 記事を読んで下さった方の Promise, async/await の理解度が 1LV でもアップしてくれたら嬉しく思います。 Promise とは Promise は非同期関数を扱うためのインターフェース Promise は 悲運のピラミッド型コールバック (ネスト地獄)を根本的に解決してくれる thenable と呼ばれる then メソッドを有するオブジェクトを resolve の第一引数に入れることで Promise オブジェクトへ変換することが可能 // thenable を Promise オブジェクトへ変換する const converted = Promise.resolve({ then: (onFulfilled) => onFulfilled('be promise') }) co

                                                  Promise と async/await の理解度をもう1段階上げる - Qiita
                                                • YAPC::Asia 2009 / Asynchronous Programming for (A)synchronous Communication

                                                  TopicsPlaceHolder SectionTitlePlaceHolder TIME rest time current/total

                                                  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

                                                    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

                                                      はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
                                                    • APNsGatewayServer を書いてたら AWS に仕事を奪われたので現代のラッダイト運動を起こしたい - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

                                                      APNsGatewayServer を書こうの巻 えー。APNsとのやりとり部分を書くのはなにげにとても面倒です。面倒な理由として プロトコルがアップルのオレオレプロトコルであり、なおかつバイナリでやりとりしている APNsサーバーに対してリクエストを送っても、基本的にレスポンスは帰ってこない でもなんかエラーがあった場合はレスポンスが帰ってくる 基本的にコネクションをつなぎっぱなしにしておかなければならない でもときどき何も言わずに向こうからブチっと接続を切ってくる というあたりが挙げられますね。 1番の理由については単にめんどくさいだけで何も問題はありません。自分で書かなくてもライブラリとか結構あるし、そもそもこれくらいは書けよ感もある。 でもその他の問題がなかなかくせ者なのです。 まず、エラーの時だけレスポンスが帰ってくるということで、リクエストを投げたらレスポンスが来るまでブロック

                                                        APNsGatewayServer を書いてたら AWS に仕事を奪われたので現代のラッダイト運動を起こしたい - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
                                                      • Promiseに関するパターンや命名規則 - Qiita

                                                        やや自己流含む。 getXxx/fetchXxx getXxxは同期、fetchXxxはPromiseということにしている。とくに非同期の取得系はfetchということに決め打ってる。 GETリクエストであることを明示したいときにややこしいという問題はあるが、そのケースは少なく、JS内で同期/非同期を明示したいことの方が多い。 例: 非同期の副作用系はput/post/sync/send/uploadとかそのあたりを適当に使う。 Promise( (done, reject) => {..}) 恐らく仕様的に正しいワードは fulfill, reject なのだが、fulfillはタイプ数が妙に多いのと、llが多くタイポしやすく、またタイポが発見しづらいので、自分は慣習的にdoneを使っている。 追記: fulfillよりもresolveの方が仕様に沿ってるっぽいhttp://people.

                                                          Promiseに関するパターンや命名規則 - Qiita
                                                        • Future と Promise

                                                          Philipp Haller, Aleksandar Prokopec, Heather Miller, Viktor Klang, Roland Kuhn, Vojin Jovanovic 著 Eugene Yokota 訳 概要 Future は並列に実行される複数の演算を取り扱うのに便利な方法を提供する。それは効率的でノンブロッキングな方法だ。 大まかな考え方はシンプルなもので、Future はまだ存在しない計算結果に対するプレースホルダのようなものだ。 一般的に、Future の結果は並行に計算され後で集計することができる。 このように並行なタスクを合成することで、より速く、非同期で、ノンブロッキングな並列コードとなることが多い。 デフォルトでは、Future も Promise もノンブロッキングであり、典型的なブロッキング演算の代わりにコールバックを使う。 コールバックの使用を

                                                          • どの非同期処理が良いのか勝負

                                                            JSオジサンで発表した資料です。

                                                              どの非同期処理が良いのか勝負
                                                            • フロントエンド開発に Babel も Webpack も必要ない ※ - KAYAC engineers' blog

                                                              できらぁ! 面白法人カヤックのエンジニアのごんです。 昨今のフロントエンドといえば、 Todo アプリを作るにも Webpack やら Babel やら必要だと脅され、 始める前にうんざりしてしまうと話題ですが、 実は、最新のブラウザに限って言えば、そんなことはなく、 ECMAScript の新しい構文や JavaScript Modules など、 多くの機能がネイティブの状態でも使えます。 もちろん、古いブラウザのサポートや、通信パフォーマンスのことを考えると、 ビルドツールを使ったほうが良いのは間違いないのですが、 JavaScript の新しい機能に触れてみたり、自分用のツールを作るぶんには十分でしょう。 ソースコードはこちら! そんなわけで、今回はビルドツールなしでウェブアプリを作ってみました。 ECMAScript に関するクイズゲームです。 最新版の Google Chrom

                                                                フロントエンド開発に Babel も Webpack も必要ない ※ - KAYAC engineers' blog
                                                              • Promiseについて0から勉強してみた - Qiita

                                                                ES6を使う機会がありそうで、Promiseについて全然知らなかったので、実際に書きながら勉強してみたときのメモ。 なお、以下を参考にさせて頂きました。 0から勉強する時でもとても分かりやすかったです。 JavaScript Promiseの本 環境 Node.js v4.2.2 Promiseとは 非同期処理を操作できる 非同期処理の成功時(resolve)、失敗時(reject)の処理を明示的に書くことが出来る 非同期処理を平行・直列に実行させることが出来る とりあえずやってみる とりあえず、参考にさせて頂いたサイトのコードを書いてみました。 function asyncFunction() { // Promiseオブジェクトを返却する.処理成功時にはresolveが呼ばれる return new Promise(function (resolve, reject) { setTim

                                                                  Promiseについて0から勉強してみた - Qiita
                                                                • 超高速な静的Webページを作ろう! - Qiita

                                                                  PageSpeed Insights 計測結果 モバイル/パソコン 共に100点 速度という点に絞ると信用できるものではないかもしれませんが、100点という数字は単純にうれしい:) それでは!以下が私のやったことです リクエスト数を極限まで減らす CSSはstyle属性やstyleタグで設定 複数箇所で使う場合はstyleタグに、要素固有のスタイルはstyle属性で設定してしまいましょう。 style属性で設定する場合はセレクタでの捜索が発生しないので、ごく僅かながら速くなると思います。 画像はbase64で埋め込む こことかでデータURIスキームに変換してhtmlに埋め込みます。 base64エンコードすると容量が1.3倍くらいに増加するため大きな画像には向かない方法ですが、小さなアイコン程度ならリクエスト数減らすほうが効果的な場面があります。 複数箇所に使う画像の場合はCSS変数でba

                                                                    超高速な静的Webページを作ろう! - Qiita
                                                                  • node.js と thread hog の話(1)

                                                                    ここ数日、 node.js で色々と作りはじめているのだが(node.js が一番力を発揮するのは、xmpp server や、push notification server のようにソケットを開きっぱなしにして非同期通信をするケースだと思うのだが、それについては来週のメルマガで詳しく解説する)、これで思い出すのが Microsoft 時代の「"thread hog" 退治」だ。 "thread hog" とは私が作った造語で、"memory hog" (メモリをやたらと使うプログラムのこと)と同じように、thread を不必要に作るプログラムのこと。 最初に出会った thread hog は、Microsoft が作っていた proxy server だった。コネクションが1000を超すとやたらと遅くなり、しまいには落ちてしまうという欠点を持っていたため、一時は「出荷出来ないところか、

                                                                    • Apache Kafkaの概要とアーキテクチャ - Qiita

                                                                      初版: 2018/9/28 著者: 伊藤 雅博, 株式会社日立製作所 はじめに この投稿ではオープンソースカンファレンス2017.Enterpriseで発表した「めざせ!Kafkaマスター ~Apache Kafkaで最高の性能を出すには~」の検証時に調査した内容を紹介します(全8回の予定)。本投稿の内容は2017年6月にリリースされたKafka 0.11.0 時点のものです。 第1回目となる今回は、Apache Kafkaの概要とアーキテクチャについて紹介します。 投稿一覧: 1. Apache Kafkaの概要とアーキテクチャ (本投稿) 2. Apache KafkaのProducer/Broker/Consumerのしくみと設定一覧 3. Apache Kafkaの推奨構成と性能の見積もり方法 4. Apache Kafkaの性能検証(1): 検証環境とパラメータチューニングの内容

                                                                        Apache Kafkaの概要とアーキテクチャ - Qiita
                                                                      • 開発者を苦しめる.NETのHttpClientのバグと紛らわしいドキュメント

                                                                        設計者の失敗、バグ、正しくないドキュメントが組み合わさって、.NETのHttpClientを正しく使うのは驚くほど難しくなっている。その結果、プロダクションで正しく動くであろうアプリケーションが性能問題や高負荷時の障害に苦しんでいる。 この事実は、ASP.NET MonstersのSimon Timms氏が書いたYou're using HttpClient wrong and it is destabilizing your softwareと題した記事で明らかになった。 この記事への反応はさまざまだが、多くは失望と不満を表している。 ... こんな記事を読んで怒りを覚えているのは私だけでしょうか。こんなコードを書いてリリースしたら一体何が起こるか。笑い者になるだけですよ。でも、重要なのは、この事実を受け入れて回避策を実行して、同じような記事をいくつも書くことでしょうね。 驚き最小の原則

                                                                          開発者を苦しめる.NETのHttpClientのバグと紛らわしいドキュメント
                                                                        • 仮想パネル: JavaScriptで非同期プログラミングを乗り切る方法

                                                                          これに対して、CommonJSグループはPromiseという形でこれに答えている。これは任意の時点で、完了しているかもしれないし完了していないかもしれない、非同期に実行されるアクションの結果を表現したオブジェクトとのインターフェイスを提供する。この方法では、さまざまなコンポーネントが非同期アクションのためのpromiseを返すことができ、コンシューマは予測可能な形でそのpromiseを利用できる。また、Promiseは非同期性を支援するために構文上便利な言語レベル拡張のために利用される基本エンティティを提供することもできる。 Stratified JavaScriptはこれとは別のアプローチをとっており、JavaScript言語のスーパーセットを提供することで、この問題を解決している。しかし、使う言語を切り替えられないのなら、とるべき道はシーケンシャルなコードをエミュレート可能な、柔軟なA

                                                                            仮想パネル: JavaScriptで非同期プログラミングを乗り切る方法
                                                                          • F# を知ってほしい

                                                                            なんでこんなのを書いてるのか F# を布教1するたびに誤解を解いたりどこらへんが良いのか列挙したりするの疲れたし, URL だけ投げつければ済むようにしたいからです. F# とは, なぜ F# なのか F# は書いていて非常に楽しく, かつ何でもできてしまうので, 趣味のプログラミングのお供には非常に最適な言語です. またバグの少ないプログラムを書くための機能が充実していると同時に, コード量が少なく済みメンテナンスしやすい設計になっているので, 実行速度の速さと相まって, 金融系企業や研究機関を中心に, 機械学習研究者やモバイルアプリ開発者などにも高く評価されています. 1. 色々な言語のいいとこ取り F# は OCaml という言語をベースに開発された2プログラミング言語で, C# の速度・クロスプラットフォーム性・ライブラリの多さ・開発環境 Rust のツールチェイン Go のデプロ

                                                                              F# を知ってほしい
                                                                            • Practical Tips for Using MySQL as a Scalable Key-Value Store

                                                                              Learn from our experts, hear from your peers at Percona.connect Learn More

                                                                              • ソケットAPIが遅すぎる?新たなio_uringを試す!

                                                                                新しいAPIが作られるたびに、私たちは、古いAPIを置き換えるだけで高速化という夢をみます。何度夢破れても、高速なAPIが追加されたと聞けば、試さずにはいられませんよね! 今回は、Linuxカーネル5.1で追加されたio_uringを使って、Rustのasyncランタイムを実装し、gRPCサーバのベンチマークを実行してみました。 io_uringとはio_uringは、ファイルシステムとネットワークの非同期I/Oのために開発されました。同期よりも非同期のほうがおしゃれ、そういう雰囲気ありますよね!クラウドネイティブも、非同期にAPIを介して、なんかやってるやつですよね。 io_uringのインターフェイスは、高い性能を目指し、1)アプリケーションとカーネル間でのメモリコピーを避ける、2)複数のI/O要求を一度にカーネルに伝えることができる、という工夫がされています。 下図のように、アプリケ

                                                                                  ソケットAPIが遅すぎる?新たなio_uringを試す!
                                                                                • Python3.6 から追加された文法機能 - Qiita

                                                                                  Python3.6.0 が2016年12月23日にリリースされ、新たにアップデートされた項目がいくつかあります。 What’s New In Python 3.6 やはりPythonを使ってプログラミングをする人にとっては、新たに追加された文法機能などが特に気になるのではないでしょうか? そこで今回は3.6.0で追加された文法機能である、 PEP 498: 書式化済み文字列リテラル PEP 515: 数値リテラル内のアンダースコア PEP 526: 変数アノテーションのシンタックス PEP 525: 非同期ジェネレータ PEP 530: 非同期内包表記 について紹介します。 書式化済み文字列リテラル(f-strings) Pythonには、文字列(string)クラスにformat()メソッドが用意されており、str.format()を用いて変数置換や値のフォーマットを行うことができます。

                                                                                    Python3.6 から追加された文法機能 - Qiita