並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 266件

新着順 人気順

非同期プログラミングの検索結果1 - 40 件 / 266件

  • ペパボの新卒研修で利用した資料を公開します - Pepabo Tech Portal

    2020年はペパボに9人の新卒エンジニアが入社しました。今年も新卒エンジニアを対象に、3ヶ月に及ぶエンジニア研修を開催しました。 本エントリでは、研修の全体像のご紹介や、研修で利用した各資料を公開します。また、領域別に研修担当者より概要の紹介をします。 新卒研修の資料作成を担当している方や、新卒・中途問わず、新しい領域にチャレンジしたいエンジニアの方はぜひご覧ください! GMO ペパボの研修 GMO インターネットグループでは、毎年 GMO Technology Bootcamp(以下、GTB) と題して、グループ全体のエンジニアとクリエイター(デザイナ)が集まってプロダクトを作っていく上で必要となるベースラインの技術を学ぶ研修を行っています。 GMO ペパボの新卒入社のメンバーは今年から本格的に GTB に参加しました。新卒メンバーが参加するなら、と講義の内容の作成や講師としての参加につ

      ペパボの新卒研修で利用した資料を公開します - Pepabo Tech Portal
    • この個人サイトは自作OSで動いています

      追記 (2022 5/29): サーバ代をケチるべくVercelに移行しました。動いていたソースコードは ココ に置いてあります。 あなたの予想に反して、このページが見えているでしょうか?このWebサイトは自作OSのKerlaが提供しています。 これは自作OS Advent Calendar 2021の23日目の記事です。 自作OS「Kerla」の紹介 Kerla(かーら)はRustで書かれたLinux ABI互換モノリシックカーネルです。今年の春頃から作り始め、DropbearというSSHサーバが動作する程度には基本的なUNIXの機能が実装されています。具体的には、ファイルの読み書きやUDP/TCPソケット、fork/exec、シグナル、擬似端末といったものです。 カーネル実装の雰囲気を軽く紹介すると、Kerlaでは以下のようにシステムコールが実装されています。 /// write(2)

        この個人サイトは自作OSで動いています
      • なぜDiscordはGoからRustへ移行するのか - MISONLN41's Blog

        DiscordがGoで書かれていたコンポーネントをRustに移行しているらしい。Windowsの低レイヤ層の一部で採用されるなど、近年どんどん注目を集めているRustだが、DiscordはなぜRustを選んだのか。その最大の特徴である「パフォーマンスを妨げる要素であるGCを排した上でメモリセーフな言語」であることにクローズアップした面白い内容だったので、えっちらおっちら和訳してみた。英語が得意というわけでもなく、無理やり翻訳しているところも多いのであしからず。ほとんどGoogle翻訳のままというのは内緒。 追記: 7/31にはてブでいっぱいブックマークされたみたい。気になったブコメへの返信を末尾に追記した。 原文: Why Discord is switching from Go to Rust - Discord Blog Rustは様々な分野において第一級の言語になりつつあります。Di

          なぜDiscordはGoからRustへ移行するのか - MISONLN41's Blog
        • Rustの非同期プログラミングをマスターする - OPTiM TECH BLOG

          こんにちは、R&Dチームの齋藤(@aznhe21)です。 さあみなさん、ついにこの時がやってまいりました。 本日2019/11/8にリリースされたRust 1.39により、あらゆる環境で最高速な非同期プログラミングが可能になりました。 新たな時代に乗り遅れないよう、今のうちにRustでの非同期プログラミングをマスターしておきましょう。 なお、この記事は、先日開催したOPTiM TECH BLOG Meetupの内容を大幅に加筆修正した上でエントリに仕上げたものです。 まず最初に伝えたいこと 非同期の歴史 Rustの非同期プログラミングの歴史 Rust 1.0以前 Rust 1.0 〜Rust 1.3 Rust 1.2あたり Rust 1.11あたり Rust 1.26あたり Rust 1.36 Rust 1.39 Rustの非同期プログラミングの特徴 ゼロコスト抽象化 プラットフォーム非依

            Rustの非同期プログラミングをマスターする - OPTiM TECH BLOG
          • 実装言語を「Go」から「Rust」に変更、ゲーマー向けチャットアプリ「Discord」の課題とは

            ゲーマー向けの無料音声テキストチャットアプリケーション「Discord」を開発、提供するDiscordは2020年2月5日(米国時間)、アプリケーションを支える基盤サービスの一つである「Read States」をRust言語で再実装し、その結果サービスのパフォーマンスが大幅に向上したと公式ブログで明らかにした。 Read StatesサービスはこれまでGo言語で実装されていた。それにもかかわらず、なぜRead StatesをRustで再実装しようとしたのか、どのように再実装したのか、再実装によってどのようにパフォーマンスが向上したかを解説した。 Rustで再実装した背景とは Read Statesサービスの目的は、Discordユーザーがどのチャンネルのどのメッセージを読んだのかを追跡することだ。つまり、ユーザーがDiscordに接続したり、メッセージを送信したり、メッセージを読んだりする

              実装言語を「Go」から「Rust」に変更、ゲーマー向けチャットアプリ「Discord」の課題とは
            • 明日から使える実践エラーハンドリング

              class: center, middle # 明日から使える<br/><strong>実践</strong><br/>エラーハンドリング Scala関西Summit 2018 11/10 --- class: left, middle ## 自己紹介 * 中村 学(Nakamura Manabu) * [@gakuzzzz](https://twitter.com/gakuzzzz) * Tech to Value 代表取締役 * Opt Technologies 技術顧問 <img src="../images/opt_logo_1.jpg" alt="Opt Technologies" width="450" style="margin-left: 0px" /> * F-CODE CTO <img src="../images/f-code_logo.png" alt="f-cod

              • Latest topics > なぜMozillaはXULアドオンを廃止したのか?(翻訳) - outsider reflex

                Latest topics > なぜMozillaはXULアドオンを廃止したのか?(翻訳) 宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能! « 「同調圧力は忌むべきものだ」と思考停止していたことに気付いた話 Main 「なぜMozillaはXULアドオンを廃止したのか?」に寄せられていた反応を見て、「甘い……甘すぎる……」と思って、W3C信者時代からの価値観に行き着いた話 » なぜMozillaはXULアドオンを廃止したのか?(翻訳) - Aug 22, 2020 (原著:David Teller, 2020年8月20日、CC BY-NC 4.0で公開されている内容の全訳。Qiitaにもクロスポストしています。) 要約:Firefoxはかつて、XUL

                • JavaScriptからGo言語に乗り換えた感想 - 新しいことにはウェルカム

                  JavaScript(TypeScript)で書かれたプログラムを、Go言語で書き直しました。 その動機や、書き換えた結果などを書こうと思います。 また、今回Go言語が初めてだったので、Go言語とはどういったものかや、Go言語をやってみた感想なども合わせて書こうと思います。 動機 メンテナンスしづらい 移植したプログラムは、JavaScript(TypeScript)で書かれた、データ処理関連のプログラムで、サーバーで動かしていました。 JavaScriptはポピューラーな言語ですが、フロントエンドをやらない人にはあまり馴染みがないようで、扱える人が限られていて何かあった時の対応が不安でした。 どのプログラム言語にも似たような文法があり、ちょこっと修正するくらいなら、一通り文法書に目を通せば何とかなりそうな気もするのですが、PromiseなどのJavaScriptの非同期プログラミング文法

                    JavaScriptからGo言語に乗り換えた感想 - 新しいことにはウェルカム
                  • 他言語ユーザがRust言語をガチめに使っての雑感 - 分散KVSを書いてみて - - Qiita

                    どうも ryo_grid です。 昨年はRustを覚えたいと思い、題材としてRESTインタフェースを持った分散KVS(実質はいわゆる分散ハッシュテーブル)を書いたりしました。 FunnelKVS: Rust implementation of autonomous distributed key-value store which has REST interfaces この記事では、他言語を使ってきた私が、経験のないRustを用いてそこそこのコード規模・複雑さのシステムソフトウェアを書いてみた上で、Rustについて感じたことを、独断と偏見で述べます。 Rustってなんか流行りそうな雰囲気あるけど難しいとも聞くし、どうなんだろ?と考えている方や、Rustガチ勢の方々に、「初学者はこう感じるんだな」「ここらへんに苦労するんだな」というところを伝えることで、Rustのスムーズな普及に少しでも寄

                      他言語ユーザがRust言語をガチめに使っての雑感 - 分散KVSを書いてみて - - Qiita
                    • 【中断中】Kindle技術書秋の大規模半額セール:700冊以上対象:IT全般・プログラミング・技術系読み物など

                      【中断中】Kindle技術書秋の大規模半額セール:700冊以上対象:IT全般・プログラミング・技術系読み物など 2020/10/14. Amazon Amazon本・Kindle, Python(プログラミング), 技術書, 翔泳社(プログラミング・技術書) Kindle技術書セールは現在中断中 Amazonのビッグセールプライムデー開催に伴い、10月14日(水)まで複数出版社700冊以上が対象のKindleIT・プログラミング技術書大規模セール開催中。 Pythonなどプログラミング全般、技術者教養、技術系読み物、AI、CSS&HTML、Googleサービス、マーケティング、デザイン系まで初心者向け入門書から上級者の需要を満たす高額技術書まで700冊以上が対象。 購入したKindle電子書籍は無料アプリで自分のタブレット・PC・スマホで読めます。Amazon専用端末がなくてもOK。 ⚡K

                        【中断中】Kindle技術書秋の大規模半額セール:700冊以上対象:IT全般・プログラミング・技術系読み物など
                      • Linuxカーネルが難しい?Rustで実装できそう!

                        「ついに、RustでLinuxカーネルを実装できる!」 待ち望んだ感を出してみましたが、2年前に記事を書いてから、すっかり忘れていました。LinuxカーネルのRustサポートについての意見を求められたら、「技術的には面白いけど、実用レベルではないね。」と、上から目線の回答でエンジニアレベルの高さをアピールするつもりでしたが、2年間の間、誰にも聞かれませんでした。 近々、LinuxカーネルにRustサポートが取り込まれそう、ということで、デバイスドライバを実装してみました。 Rust対応カーネルのコンパイルまずは、Rust対応を有効にしたLinuxカーネルをコンパイルする必要があります。「カーネルってコンパイルするものなの?」という読者は、ネットの長老たちに叡智を求めましょう。「インストール直後に、メモリ削減のために不要な機能を無効にして、カーネルコンパイルしたんじゃ。」というような、太古の

                          Linuxカーネルが難しい?Rustで実装できそう!
                        • コンセプトから理解するRust

                          2022年2月12日紙版発売 2022年2月7日電子版発売 原旅人 著 B5変形判/360ページ 定価3,520円(本体3,200円+税10%) ISBN 978-4-297-12562-2 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto 本書のサポートページサンプルファイルのダウンロードや正誤表など この本の概要 Rustはメモリ安全,スレッド安全を保ちつつ,高パフォーマンスなプログラムを開発できるプログラミング言語です。また,手続き型,オブジェクト指向型,関数型でのプログラミングに対応できるマルチパラダイムの言語でもあります。ただ,そういったRustのポテンシャルを引き出すには,所有権やライフタイム,ジェネリクスやトレイトといった特徴的な

                            コンセプトから理解するRust
                          • Pythonの非同期プログラミングを完全理解 - Qiita

                            非同期プログラミング 非同期プログラミングについて、聞いたことのある人は多いと思います。例えば、フロントエンドで使われているJavaScriptはシングルスレッド言語で、メインスレッドをブロッキングさせないため、様々な関数は非同期処理になるよう実装されています。Node.jsもその性質を受け継ぎ、I/Oバウンドタスクに長けています。しかし、Pythonになると、並列・並行処理に対応しているため、ほとんどの人は自身のプロジェクトで非同期プログラミングを利用した経験がないでしょう。もちろん、Tornado、TwistedやGeventなどの非同期フレームワークが有名で使ったことのある人は少なくないですが、変わったエラーにぶつかった時はなかなか解決できないでしょう。 近年のPyConの傾向から見れば分かりますが、非同期プログラミングは間違いなくPythonエコシステムの次のトレンドになります。ま

                              Pythonの非同期プログラミングを完全理解 - Qiita
                            • ペペロンチーノで学ぶ非同期プログラミングによる並行処理 - Qiita

                              非同期プログラミングについて、イメージだけを超速で掴むための記事を書きました。非同期プログラミングが全くわからない人、具体的には、「async await ってなに……?」「for 文で実行していくのと何が違うの……?」レベルの人を想定しています。 非同期プログラングって何? 同期的じゃないプログラミングです。同期的ということは、プログラムが上から下に順々に実行されるということです。つまり、普通のプログラムはだいたい同期的です。言い換えれば、非同期プログラミングは順番が入れ替わる(可能性)のあるプログラムです。なぜそんなことをするかについては後述します。 ペペロンチーノを作りたい あなたはペペロンチーノを作りたいとします。以下のタスクが必要です。 パスタを茹でる(5 分) ニンニクを切る(1 分) ソースを作る(4 分)、ただしニンニクを切っている必要がある 盛り付けをする(0 分)、ただ

                                ペペロンチーノで学ぶ非同期プログラミングによる並行処理 - Qiita
                              • RustのgRPCがGoよりも遅い?

                                夏のある日、GoのgRPCが、Rustよりも2倍早いという記事を見つけました。「おいおい、測定ミスだろ」と強がっていましたが、日々、不安は高まっていきます。真実の愛であれば、疑うことは許されませんが、エンジニアの言語への愛など、所詮、状況に応じて使い分けるような打算的な愛。確認してみました。 性能測定結果上記の記事と同じく、gRPCのサーバソフトウェアは、Goはgrpc-go、Rustはtonicのgreeterの性能を、gRPCのクライアントソフトウェアghzを使って、測定しました。ハードウェアは、AWSを利用し、サーバはc5a.8xlarge(32 vCPU/64 GiB)インスタンス、クライアントはc5a.16xlarge(64 vCPU/128 GiB)インスタンスを使いました。 1台のクライアントインスタンスは、同時に3,000個のgRPCクライアントを立ち上げ、合計で6,000

                                  RustのgRPCがGoよりも遅い?
                                • 元Googleエンジニアのメンターによる講義を公開 ──トヨタ自動車が実践する「Flutter」研修の内容とは? - TECH PLAY Magazine

                                  Googleが開発したモバイルアプリ用のフレームワークであり、SDK(Software Development Kit)であるFlutter。トヨタ自動車では、自動車のコックピットのUX/UI設計・開発フローの一部で、同ツールを採用している。今回の「TOYOTA Developers Night」では、GoogleやYouTubeで活躍した講師を招いて実施しているFlutterの研修プログラムや成果を紹介した。 ■登壇者プロフィール 関沢 省吾 氏 トヨタ自動車株式会社 コネクティッドカンパニー コネクティッド先行開発部 デジタルコクピットソフト開発室 グループ長 名古屋大学大学院を修了後、2007年にトヨタへ入社。Lexus LFAをはじめ、各種車両の電子プラットフォーム開発や、TOYOTA LQのAIエージェント開発へ従事。2020年より現職。 Tim Mansfield氏 itali

                                    元Googleエンジニアのメンターによる講義を公開 ──トヨタ自動車が実践する「Flutter」研修の内容とは? - TECH PLAY Magazine
                                  • 並行プログラミング入門

                                    複数のプログラムを同時に実行する「並行プログラミング」は、処理速度を飛躍的に向上させる手法で、タスク管理、プロセス管理、スレッド管理をはじめ、複雑な仕組みについての幅広い知識とテクニックが必要となります。本書はRustとアセンブリ、そして一部Cを用い、CPUのアトミック命令、グリーンスレッド、アクターモデル、π計算、ソフトウェア・トランザクショナルメモリ、async/awaitなど、並行プログラミングに関する理論的な背景から実装までをカバー。さらに、アセンブリ実装の理解を深めるため、AArch64とx86-64アーキテクチャの説明も付録として収録。一歩一歩、着実に理解できるように、その仕組みから順を追って詳しく説明します。GitHub上で公開されているソースコードを実際に動かしながら、並行プログラミングの知識と理解を深めることができます。 関連ファイル サンプルコード 正誤表 ここで紹介す

                                      並行プログラミング入門
                                    • プログラミング1年くらいやってつまづいたこと

                                      プログラミングを本格的に始めてから1年くらい経ったので、今まで印象に残ったつまづきポイントを書いておく。 C言語 去年の今頃は 42 Tokyo の Piscine に参加していた(そのときの記事)。 このときはC言語でひたすら libc の再実装をしていた。それまでは Python や JavaScript でちょっとしたスクリプトを書いただけでC言語を書いたことが無かったのでとても辛かった(毎日100回の Segmentation fault を見る生活を4週間続けた)が、コンピュータの基礎に近づけた気がした。メモリをいちいち人間が確保したり解放したりしなきゃいけないというのがとても面倒だった覚えがある。 ところで、人間がコンピュータを使って何かしらの課題を解決しようとしたときに突き当たる壁として、ハードウェアやソフトウェアにそれぞれ多数の階層が積み重なっていて、どこで何が行われている

                                        プログラミング1年くらいやってつまづいたこと
                                      • メインフレーム、無停止サーバ、クラウドにおける信頼性 - ブログなんだよもん

                                        「メインフレームの異常処理」という記事が話題になってましたがとても面白かったです。 qiita.com せっかくなので自分が知ってる範囲で各システムの信頼性における考え方を書いてみました。特にシステムが死んでも仕掛かり中のプロセスが正常完了する事を「無停止システム」としてフォーカスしています。 詳しいわけじゃないからあまり詳しくは話せないので、指摘とか頂けると嬉しいです メインフレーム HPE NonStopサーバ Stratus FT Server オープン系: クラスタ オープン系: 負荷分散(シェアードナッシング) クラウド/仮想環境: Live Migration ソフトウェア: Jakarata EE/EJB ソフトウェア: Oracle RAC ソフトウェア: Erlang/OTP ソフトウェア: Cloudで良くありそうなMSAや非同期キューをベースとした無停止デザイン まと

                                          メインフレーム、無停止サーバ、クラウドにおける信頼性 - ブログなんだよもん
                                        • プログラミングTypeScript

                                          プログラミング言語TypeScriptの解説書。TypeScriptの型に関する基礎的な内容からその応用、エラー処理の手法、非同期プログラミング、各種フレームワークの利用法、既存のJavaScriptプロジェクトのTypeScript移行の方法まで、言語全般を総合的に解説します。本書全体を通じて、TypeScriptの洗練された型システムを最大限活用するために、コードをどのように記述すべきか、なぜそうすべきかを学べます。 賞賛の声 監訳者まえがき まえがき 1章 イントロダクション 2章 TypeScript:全体像 2.1 コンパイラー 2.2 型システム 2.2.1 TypeScript対JavaScript 2.3 コードエディターのセットアップ 2.3.1 tsconfig.json 2.3.2 tslint.json 2.4 index.ts 2.5 練習問題 3章 型について

                                            プログラミングTypeScript
                                          • RustのPinチョットワカル - OPTiM TECH BLOG

                                            こんにちは。 先日、しばらく不動の一位を守ってきたRustをVSCodeで使う記事を抜き、 私の書いた非同期プログラミングの記事の記事が一番人気になったと思いきや数日でまた抜き返されて傷心中の、 R&Dチームの齋藤(@aznhe21)です。 さて、Rustの非同期プログラミングで時々Pinを使ったり、コンパイラにUnpinが不足していると怒られたりしませんか? そんな時によく分からずuseしたり別の手段を取ったりしていませんか? 今回、このままではマズいと思ってPinを勉強して完全に理解しましたので、その成果を皆さんと共有したいと思います。 更新履歴 03/10 指摘を受け下記2点を修正しました Unpinを実装しない型もムーブ出来ることへの言及 pin-projectクレートが安全であることによる書き換え 対象読者 この記事は下記全てに当てはまる人を想定して執筆しています。 Rustのト

                                              RustのPinチョットワカル - OPTiM TECH BLOG
                                            • Python multiprocessing vs threading vs asyncio - JX通信社エンジニアブログ

                                              エンジニアの鈴木(泰)です。 今回は、multiprocessingとthreadingとasyncioの違いとはなんだろう?という問に挑戦してみたいと思います。 この問の答えをグーグル先生に聞いてみると、非常にたくさんの情報がヒットします。しかしながら、どの情報も断片的なものばかりで(本記事もそうなのかもしれません)、色々と本を読んだりネットを漁ったりして、情報を補完しなければなりませんでした。 本記事は、僕が調べた限りの情報を集約し、この問に対する結論を1つの記事にまとめたものとなっています。 前提 マルチプロセスとは マルチスレッドとは Pythonにおけるマルチスレッド 本題 マルチプロセス(multiprocessingライブラリ)を利用したほうが良い場合 cpu_sec.py cpu_multiprocessing.py cpu_threading.py cpu_asyncio

                                                Python multiprocessing vs threading vs asyncio - JX通信社エンジニアブログ
                                              • PHPで書いて覚える非同期処理 / php-async-programming

                                                これを読んでも、非同期処理はわかりませんが、暗いトンネルの先に光が見えます。

                                                  PHPで書いて覚える非同期処理 / php-async-programming
                                                • 2019年にRustで初めてツールを作るときに役にたったリンク集 - Qiita

                                                  Rustで作るツールのお試しとして https://github.com/yutakatay/dotplugs を作りました。ツール自体は大したことはしていないので、作る際によく参考にしていたサイトと使い方を紹介しようと思います。 調べたところリンク集はすでにあって、以下は体系的にまとまっていました。 - https://qiita.com/mosh/items/7e327dafbe53b72ad99d - http://letten.hatenablog.com/entry/the-rust-resources-ja ここではより実践的に役にたったもの(主に日本語で)を上げて行きたいと思います。 書き始める前に準備すべきツール 実際にコードを書く前に絶対にあったほうが便利なツールを紹介しておきます。英語ですが公式にも載っています。 https://www.rust-lang.org/to

                                                    2019年にRustで初めてツールを作るときに役にたったリンク集 - Qiita
                                                  • JavaScript 第7版

                                                    JavaScriptは最も多くのソフトウェア開発者に使用されているプログラミング言語です。JavaScriptを包括的に解説する本書は、第6版から大幅に加筆および更新し、全面改訂しました。 はじめにJavaScript言語仕様の基本的な構文と機能について豊富なサンプルコードを使って学習します。そしてJavaScript標準ライブラリを詳述し、Webブラウザで使われるクライアントサイドJavaScriptやNode.jsで使われるサーバサイドJavaScriptについてわかりやすく説明します。またNode形式と標準形式のモジュールの使い方、イテレータとジェネレータ、async/awaitやPromiseなどの非同期プログラミングの新しい構文、クラスの定義方法などを紹介し、さらにツール群や言語拡張機能、理解の難しいJavaScript特有の動きなどについても学ぶことができます。 Webプラット

                                                      JavaScript 第7版
                                                    • ハンズオンNode.js

                                                      Node.jsの入門書。対象読者は、フロントエンド開発の知識はあってもサーバサイド開発は知らないエンジニアや、他言語の経験はあってもNode.jsは触ったことがないプログラマー。本書ではターミナルのプロンプトにコマンドを入力してその反応を確認したり、簡単なスクリプトをNode.js環境で実行したりしながら、Node.jsプログラミングの基本からWebアプリケーションの開発、テスト、デプロイまでをハンズオン形式で学びます。また、コードの背景にある設計思想や、プログラムの挙動の仕組みについてもしっかり掘り下げます。本書のゴールは、読者がNode.jsの全体像を掴み、業務レベルでのアプリケーション開発に対応可能な知識を身につけることです。 関連ファイル GitHubリポジトリ 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、

                                                        ハンズオンNode.js
                                                      • Rust Advent Calendar 2019 1日目 Rust の非同期プログラミングモデルはランタイム観点だと Go のそれに似ている - keno_ssの日記

                                                        この記事は Rust Advent Calendar 2019 の1日目の記事になります. 明日は topecongiro さんの予定です. TL;DR 去る 11/07 に Rust 1.39.0 がリリースされました. これはユーザー待望の async/await 構文が言語機能として取り込まれた安定版リリースとなります. Advent Calendar 最初の記事としては取り上げないわけにはいきません. もう既に他の良い記事がたくさん書かれていますが, この記事ではそれらを補完する視点から説明してみようと思います. Rust と非同期 IO の歴史 κeenのHappy Hacκing Blog -- async/awaitと合成可能性 async/await の実装と利便性のバランスの良さについて. κeenのHappy Hacκing Blog -- RustのFutureとその

                                                          Rust Advent Calendar 2019 1日目 Rust の非同期プログラミングモデルはランタイム観点だと Go のそれに似ている - keno_ssの日記
                                                        • RustなしでLayerX Labsの開発は語れない - LayerX エンジニアブログ

                                                          はじめに こんにちは。LayerX Labs(以下、Labs)エンジニアのきむ(@jkcomment)です。秘匿化モジュール「Anonify」の開発や大手金融機関や行政等との実証実験に携わっています。 Labsの開発はRustからはじめ、Rustで終わる tech.layerx.co.jp 先日、恩田(さいぺ)の方からAnonifyとRustについての話をしましたが、Rustは速度・安全性・効率的な並行性を特徴とし、C,C++と同等な性能を発揮しつつ、システムプログラミングに適した言語です。Anonifyはハードウェアレベルの機密性を実現するために Trusted Execution Environment (TEE) の一種であるIntel SGXを活用しています。Intel SGXはIntelのCPUが提供しているメモリ上に「Enclave」と呼ばれるハードウェア的に厳重に保護された領

                                                            RustなしでLayerX Labsの開発は語れない - LayerX エンジニアブログ
                                                          • Unityを通じて3D空間、グラフィックを理解する

                                                            はじめに ゲーム開発の旅を始める上で、開発者が最低限理解すべきコンピュータの基本的な仕組み、グラフィックスの原理、そしてスクリプティングの技術について、本記事では詳しく掘り下げていきます。 コンピュータの心臓部であるCPUとGPUの役割と相互作用から始め、これらがどのようにして3D空間のレンダリングやアプリケーションの実行に影響を与えるかを解説します。 Unityエンジンを用いたゲーム開発では、これらのハードウェアコンポーネントの理解が不可欠です。 続いて、ゲーム開発におけるグラフィックスの基礎を学びます。 ここでは、ビルトインレンダーパイプラインから、より高度なUniversal Render Pipeline (URP) やHigh Definition Render Pipeline (HDRP) まで、Unityで利用可能なレンダリングパイプラインの違いとその選択がプロジェクトに及

                                                              Unityを通じて3D空間、グラフィックを理解する
                                                            • Node.js中級者へのステップアップを目指す解説書 - mojiru【もじをもじる】

                                                              レベルアップNode.js 「レベルアップNode.js」発行主旨・内容紹介 「レベルアップNode.js」目次 「レベルアップNode.js」Amazonでの購入はこちら 「レベルアップNode.js」楽天市場での購入はこちら※電子書籍版です レベルアップNode.js インプレスグループで電子出版事業を手がける株式会社インプレスR&Dは、技術書典や技術書同人誌博覧会をはじめとした各種即売会や、勉強会・LT会などで頒布された技術同人誌を底本とした商業書籍を刊行し、技術同人誌の普及と発展に貢献することを目指し、最新の知見を発信する技術の泉シリーズ2020年6月の新刊として、佐々木勝広氏著書による、サーバーサイドのJavaScript実行環境であるNode.jsについて、入門書の次に読むことを想定にした、中級者へのステップアップを目指す解説書「レベルアップNode.js」を発売した。 「レベ

                                                                Node.js中級者へのステップアップを目指す解説書 - mojiru【もじをもじる】
                                                              • 非同期と並列 / morrita - Message Passing

                                                                karino2 が 並列プログラムから見たFuture というビデオを作って公開していたので、引っ越しの荷造りをしながら眺めた。 長いのでここにざっくりとした主張をまとめると: Future/Promise (およびその後釜の async/await) は非同期プログラミングで callback hell にならない発明という見方をされているが、 そもそもなぜ callback hell が必要だったかの時代背景が十分に理解されていない。 背景の一つはブラウザ JavaScript のプログラミングモデルにシングルスレッド・ノンブロッキング(イベントループ)という制限があったから。 これは(特にフロントエンド開発者の間では)よく理解されている。 もう一つの視点は SEDA みたいなマルチスレッド・ノンブロッキング環境の必要性で、 こっちはいまいち広く理解されていないように思える。 結果とし

                                                                  非同期と並列 / morrita - Message Passing
                                                                • Rust でお気楽非同期プログラミング - Qiita

                                                                  Rust 1.39 からは async/await が安定化され、非同期処理がぐっと書きやすくなりました。 Futureトレイトを自分で実装したり、loop_fnで所有権を取り回したりmap_errでエラー型を魔改造したり することはもうありません! おもむろに await していきましょう この記事は Rust 1.46 と tokio 0.2.22 に基づいています Rust での非同期処理 Rust では、非同期な計算は Future トレイトとして抽象化されています。JavaScript などでは Promise と呼ばれるものです。以前は非同期処理を扱うときに、場合によっては Future トレイトを実装する必要があることがありましたが、現在では async キーワードを使うことで簡潔に記述することができるようになりました。 async キーワードを使い、 非同期関数 async

                                                                    Rust でお気楽非同期プログラミング - Qiita
                                                                  • 書評: 並行プログラミング入門

                                                                    まえがき オライリーから発売される「並行プログラミング入門」が若干早く入手できました。せっかくなので、紹介とか感想を書いてみようかと思います。結論だけ先に書いておくと、並行/並列プログラミングに興味があるなら買いましょう必ず役に立ちます。 どんな本? この本は、大学のOSの授業とかで習うような並行/並列プログラミングの基礎を網羅的に扱っている素晴らしい本です。それだけに留まらず近年利用されているような幅広い技術に関する発展的な内容まで広く扱っています。 どんな人におすすめ? 並行/並列プログラミングの基礎が学びたい人 ロックなどの基礎技術の実装例について学びたい人 Rustを使った並行/並列プログラミングについて学びたい人 並行/並列プログラミングの計算モデル(意味論など)について学びたい人 ロックフリー、STM、async/awaitといった最新の技術について学びたい人 書籍の紹介 この

                                                                      書評: 並行プログラミング入門
                                                                    • プロダクションのRustコードを async / await に移行した話

                                                                      κeenです。日本時間の 11/8 日に Rust 1.39.0 が リリースされ、Rustでもいよいよ async / await が利用できるようになりました。 async / await は面倒な Future の記述をすっきり書けるようにするシンタックスシュガーであると共に、 Future をまたいだ値のライフタイムもよしなに扱ってくれるので視認性以上のメリットがあります。 可能な限り使った方が良いでしょう。 Ideinのプロダクションコードもすぐさま async / await に移行しました。 IdeinのActcastのプロジェクトにはいくつかRustのコードベースがありますが、そのうちのAPIサーバの部分を async / await に移行しました。元々非同期なWAFを使っていたこともあり、ほとんどのコードで Future を使っています。規模としてはRustだけで23パ

                                                                        プロダクションのRustコードを async / await に移行した話
                                                                      • 【Python】ChatGPT効率化の為に非同期処理を実装|Clirea

                                                                        非同期処理は、データ解析、APIリクエスト、ベクター化など多様なタスクにおいてパフォーマンスを向上させる鍵となる技術です。特に、待ち時間が発生しやすい多数のリクエストや処理を一度に効率よく処理したい場合、この技術は不可欠です。 非同期処理と並列処理の違い非同期処理と並列処理は、よく一緒に取り上げられることが多いですが、実はそれぞれ異なる目的と特性を持っています。 非同期処理非同期処理は、I/O待ち(ディスクへの読み書きやネットワーク通信など)といった待機時間を有効に使いながら、他のタスクを進める技術です。この方法で、全体のプログラムがスムーズに動作します。 並列処理一方で、並列処理は複数の処理を物理的に同時に行う技術です。簡単な例でいえば動画です。動画の再生と音声の再生を遅延が無いよう同時に行っています。 並列処理により、大量のデータ処理や高度な計算を高速に行えます。 まとめ簡単に言えば、

                                                                          【Python】ChatGPT効率化の為に非同期処理を実装|Clirea
                                                                        • 【Kaigi on Rails 2023】発表資料まとめ - Qiita

                                                                          2023/10/27, 28 に行われた Kaigi on Rails の資料まとめです。 資料が公開され次第、内容を更新します。公開済みのURLがあれば教えてください。 10/27 スケーラブルActive Jobs with Sidekiq Enterprise (スポンサーLT) Rails アプリの 5,000 件の N+1 問題と戦っている話 HTTPリクエストを手で書いて学ぶ ファイルアップロードの仕組み 生きた Rails アプリケーションへの delegated types の導入 Async Gem で始める ruby 非同期プログラミング Exceptional Rails やさしいActiveRecordのDB接続のしくみ Update Billion Records 初めてのパフォーマンス改善〜君たちはどう計測す(はか)るか〜 Simplicity on Rails

                                                                            【Kaigi on Rails 2023】発表資料まとめ - Qiita
                                                                          • スマホ向けオンラインツールアプリ開発で対応したこと・アセットなど総まとめ【Unity】|アマガミナブログ

                                                                            この記事では、Unityを使って1人で開発したツールアプリ『リモートダイス3D』で対応したことや、使ったアセット・ライブラリなどをひたすら列挙していきます。 このアプリ特有の話はあまり出てこないので、ダイス系のアプリを触ったことがない方(が圧倒的に多いですよね)でも参考になるでしょう。いろいろな技術要素が含まれています。 「そんなアセット・ライブラリもあるんだ」「それは自分のアプリでも対応してみようかな」と知見を広げるきっかけになれば幸いです。 僕には売れるアプリの作り方は分かりませんがプロダクトを完成させる知識と技術だけはありますので、技術面を中心とした内容になっています。 各項目は詳しく説明しているものもあれば物足りない感じに留めているものも多いので「このあたりもうちょっと詳しく知りたい」というものがあればTwitterでシェアして頂くか、はてブのコメントを付けてもらえれば詳細記事が出

                                                                              スマホ向けオンラインツールアプリ開発で対応したこと・アセットなど総まとめ【Unity】|アマガミナブログ
                                                                            • RustのTokioで非同期とグリーンスレッドを理解する

                                                                              この記事はRust Advent Calendar 2022 - Qiitaの13日目の記事です。 はじめに Rustの非同期I/Oライブラリ tokio の解説記事になります。初めに概要説明をします。その後でちょっとしたソースコードを見せながら解説をしていきます。理論より実践、実際にどう書けば良いのか知りたい人向けの記事になります。 tokioはライブラリの一つに過ぎませんが、hyper、actix-webなどのWebフレームワーク、Denoのイベントループ、Solanaのツールなどで利用されており、デファクトスタンダード的な重要なライブラリになっています。 またDiscordはtokioのスポンサーをしており、GoからRust(Tokio)で書き換えた話は小説を一冊読み終えたかのようなブラボーな興奮がありました。 ちなみに、tokioのネーミングは開発者のCarl Lercheが東京観

                                                                                RustのTokioで非同期とグリーンスレッドを理解する
                                                                              • Rustのasyncをgoroutineよりも高速に

                                                                                RustのgRPCの速度がGoよりも遅いため、デファクトの並列処理方法のasyncではなく、システムコールを直接使うという歪んだ愛の形で、Goよりも高速化を達成した前回。 私たちのRustへの愛は裏切られたのか?私たちがRustの愛を裏切ったのか?2つの思いの間を行き来しながら、asyncでも、goroutineよりgRPCを高速に実行できるか試してみましょう。 システムコールよりもランタイム前回は、ソケットをブロックしないように設定し、epollシステムコールでイベントを待つような、C言語のような実装でした。クラウドネイティブ時代に、Rustに加えて、そんな知識を習得している時間はないですよね!語り部を目指しているなどの特殊な理由で、epollについて知りたい場合は、前時代的な人に聞けば、Kqueueとepollの戦い、などの物語を朝まで聞くことができるでしょう。 非同期プログラミングの

                                                                                  Rustのasyncをgoroutineよりも高速に
                                                                                • 多言語からみるマルチコアの活かし方

                                                                                  多言語からみるマルチコアの活かし方 はじめに 近年では1つのCPUに複数のコアが搭載されたマルチコアが一般的になっています。 しかし、現状のプログラミング言語ではエンジニアが意識せずにマルチコアをしたプログラムを作ることは難しいです。 そこで、様々な言語から見たマルチコアの活かし方について説明していきます。 プロセスとスレッド プロセスとは1つ1つのアプリケーションといった実行中のプログラムのことで、スレッドは CPU利用の単位です。プロセスは次のように1つ以上のスレッドを持っており、CPUのコア数分だけスレッドを処理することができます。(また、近年ではSMTという技術によって1つの物理コアで2スレッドといった複数のスレッドを処理することができます。2コア4スレッドみたいなやつです) マルチコアを有効活用してプログラムを実行するためにはCPUが処理できるコア数に対して適切な数のスレッドをプ

                                                                                    多言語からみるマルチコアの活かし方