並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 1432件

新着順 人気順

concurrencyの検索結果1 - 40 件 / 1432件

  • ソフトウェアエンジニアなら3秒で理解できる NFT 入門 - Okapies' Archive

    はじめに NFT って何ですか? ブロックチェーン上に記録された一意なトークン識別子をその保有者のアドレスと紐付ける情報、およびそれを状態変数として保持するスマートコントラクトのこと。 以上。 え、それだけ? はい。 「デジタル資産に唯一無二性を付与するインターネット以来の革命」なんじゃないの? これを読んでください: speakerdeck.com なるほど。ところで、この記事は何? いま話題の NFT について、NFT の標準仕様である EIP-721 の仕様書と、それを実装しているスマートコントラクトのソースコードから読み解けることを解説する。一般向けの解説とは異なる視点から光を当てることで、ソフトウェアエンジニアに「あ、NFT って単にそういうことだったのか」と理解してもらえるようにすることを狙っている。 また、NFT がソフトウェアとして具体的にどう実装されているかを知ることは、

      ソフトウェアエンジニアなら3秒で理解できる NFT 入門 - Okapies' Archive
    • いま知っておきたいLinux─WebアプリがOSのプロセスとしてどのように見えるか? を運用に生かす|ハイクラス転職・求人情報サイト AMBI(アンビ)

      いま知っておきたいLinux─WebアプリがOSのプロセスとしてどのように見えるか? を運用に生かす Webアプリを動かして負荷をかけると、OSのプロセスという観点ではどのように見えるのでしょう? それを通して運用やトラブルシューティングではどういったことが分かるのでしょう? Linuxカーネルの開発者でもある武内覚(sat)さんによる解説です。 こんにちは、sat(@satoru_takeuchi)と申します。 コンピュータが誕生してから現在まで、最終的にエンドユーザが意識するアプリケーション開発はどんどん楽になっています。先人たちのたゆまぬ努力の結果、アプリ開発者はOSや、そのさらに下にあるハードウェアのことをほとんど意識することなく開発ができるようになりました。 しかし、「作ったアプリが、OSレベルでどのように動いているか?」が今一つピンと来なくて、モヤモヤしていないでしょうか。それ

        いま知っておきたいLinux─WebアプリがOSのプロセスとしてどのように見えるか? を運用に生かす|ハイクラス転職・求人情報サイト AMBI(アンビ)
      • CPUとGPUのマルチスレッディングの違いについて - arutema47's blog

        "Locality is efficiency, Efficiency is power, Power is performance, Performance is King", Bill Dally マルチスレッディングとは? CPUとGPUのマルチスレッディングの違いをブログにまとめていたけど例によって誰も興味なさそう— arutema47 (@arutema47) 2021年8月16日 つぶやいたら読みたい方が多そうだったので完成させました。 マルチスレッディングとはメモリ遅延を隠蔽しスループットを上げるハードウェアのテクニックです。 ただCPUとGPUで使われ方がかなり異なるため、その違いについて考えてみる記事です。 (SIMDについて並列プログラミングの観点から触れるべきでしたが、時間無いマルチスレッディングに注目するため初版では省きました。) 本記事について 本記事はCPUとG

          CPUとGPUのマルチスレッディングの違いについて - arutema47's blog
        • 【2020年】AWS全サービスまとめ | DevelopersIO

          このエントリは、2018年、2019年に公開したAWS全サービスまとめの2020年版です。これまではいくつかに分割して公開していましたが、1エントリにまとめてほしいという要望をもらっていたため、今年は1エントリに集約してみました。 こんにちは。サービスグループの武田です。 このエントリは、2018年、2019年に公開した AWS全サービスまとめの2020年版 です。これまではいくつかに分割して公開していましたが、1エントリにまとめてほしいという要望をもらっていたため、今年は1エントリに集約してみました。どちらがいいのか正直わからないので、フィードバックなどあれば参考にさせていただきます。 2020-01-08 リクエストがあったためAmazon Mechanical Turkを追加。 2018年まとめ 【2018年】AWS全サービスまとめ その1(コンピューティング、ストレージ、データベー

            【2020年】AWS全サービスまとめ | DevelopersIO
          • 自作DBを始めたい人におすすめの本 - salachike:blog

            この記事は、慶應理工アドベントカレンダー2021の20日目の記事です。 カレンダー全日埋まってすごい 🎉🎉 adventar.org 「Database Design and Implementation」という簡素なDBをスクラッチで作っていく本に取り組んだので、その読了エントリです。 Database Design and Implementation: Second Edition (Data-Centric Systems and Applications) (English Edition) 作者:Sciore, EdwardSpringerAmazon こんな人におすすめ MySQLやPostgreSQLを使った経験はあるが、DBの理論やその実装はあまり詳しくない人に特におすすめです。特に自作〇〇*1に興味がある人は間違いなく楽しめると思います。単純に本に紹介されている理論

              自作DBを始めたい人におすすめの本 - salachike:blog
            • マルチスレッド・プログラミングの道具箱

              まえがき クラウド上の仮想サーバから手元のスマートフォンまで、いまや複数のCPUコアを搭載するマルチコアはどこにでもある環境になりました。ハードウェア側が並列(Parallel)・並行(Concurrent)処理に向けて急速に進化する一方で、ソフトウェア側つまりプログラミング言語の進化はさほど追い付いていません。並行処理記述の手軽さを求めた Go言語 や、マルチスレッド処理の安全性を重視する Rust言語 などが登場してはいるものの、「普通にプログラムを記述するだけで複数CPUコア環境で高速に走るプログラミング言語」は遠い夢物語のままです。 モダンなプログラミング言語や並列・並行処理ライブラリは、複雑で難解なマルチスレッド処理を直接記述しなくてすむよう、安全性・利便性の高い抽象化レイヤを提供します(例:Go言語のgoroutineとchannel、Rust言語の Rayonライブラリ)。し

                マルチスレッド・プログラミングの道具箱
              • 徐々に高度になるリングバッファの話 - Software Transactional Memo

                リングバッファのイメージ図 1. リングバッファとは何か 機能的にはFirst In First Out (FIFO)とも呼ばれるキューの一種であるが、リング状にバッファを置いてそれの中でReadとWriteのインデックスがグルグルと回る構造をとる事によって容量に上限ができることと引き換えに高速な読み書き速度を得たものである。キューを単に実装するだけなら山ほど方法があって線形リストを使ってもいいしスタックを2つ使っても原理的には可能だ。その中でもリングバッファを用いた方法の利点はひとえに性能の高さでありメモリ確保などを行わないお陰でシステム系の様々な場所で使われている。 これの実装自体は情報系の大学生の演習レベルの難度であるが少し奥が深い。まずリングバッファのスタンダードなインタフェースと実装は以下のようなものである。 class RingBuffer { public: explicit

                  徐々に高度になるリングバッファの話 - Software Transactional Memo
                • リレーショナルデータベースシステムを趣味で開発している者です。 現在、開発中のシステムを並行トランザクションへ対応させることを検討しており、どのような手法があるのか調べたところ、SS2PLもしくはS2PLという手法が私と同じように自作をされている方々の中では多く採用されているようだと分かりました。 一方で、PostgreSQLやMySQLなどのプロダクションレベルで利用されているシステムではMVCCと呼ばれる手法が採用されているということも分かりました。 きっと後者の方が多くの場合で高いスループットが得ら

                  リレーショナルデータベースシステムを趣味で開発している者です。 現在、開発中のシステムを並行トランザクションへ対応させることを検討しており、どのような手法があるのか調べたところ、SS2PLもしくはS2PLという手法が私と同じように自作をされている方々の中では多く採用されているようだと分かりました。 一方で、PostgreSQLやMySQLなどのプロダクションレベルで利用されているシステムではMVCCと呼ばれる手法が採用されているということも分かりました。 きっと後者の方が多くの場合で高いスループットが得られるということなのだと思うので、可能であればMVCCを採用したいのですが、あまり初学者向けの実装例も見当たらず、どうしたものかと悩んでおります。 SS2PL/S2PLとMVCCの実装の難易度・工数はどの程度違うものなのでしょうか? また、初めてリレーショナルデータベースシステムを開発する者

                    リレーショナルデータベースシステムを趣味で開発している者です。 現在、開発中のシステムを並行トランザクションへ対応させることを検討しており、どのような手法があるのか調べたところ、SS2PLもしくはS2PLという手法が私と同じように自作をされている方々の中では多く採用されているようだと分かりました。 一方で、PostgreSQLやMySQLなどのプロダクションレベルで利用されているシステムではMVCCと呼ばれる手法が採用されているということも分かりました。 きっと後者の方が多くの場合で高いスループットが得ら
                  • This is The Entire Computer Science Curriculum in 1000 YouTube Videos

                    This is The Entire Computer Science Curriculum in 1000 YouTube Videos In this article, we are going to create an entire Computer Science curriculum using only YouTube videos. The Computer Science curriculum is going to cover every skill essential for a Computer Science Engineer that has expertise in Artificial Intelligence and its subfields, like: Machine Learning, Deep Learning, Computer Vision,

                      This is The Entire Computer Science Curriculum in 1000 YouTube Videos
                    • DBMSをGoで実装してみた - Sansan Tech Blog

                      こんにちは。プロダクト開発部の荒川 id:ad-sho-loko です。突然ですが、皆さんはこんな疑問を持ったことはありませんか? データベースの内部実装はどうなっているのか? トランザクションとはどのようなアルゴリズムで実現されているのか? NoSQLが遅いのはなぜか? 古典的なデータベースとは内部的にどのように違うの? データベースを何かしらの形で利用しているのにも関わらず、意外と内部の仕組みを理解していない場合が多いかと思います。僕もそうです。*1 しかし、エンジニアたるもの、その仕組みを知ることは非常に重要です。僕もデータベースについて勉強しようといくつかの本やサイトを調べていたのですが、なかでもCMU(カーネギーメロン大学)のDatabase System Groupがアップロードしている講義が最も勉強になりました。 www.youtube.com そして本ブログでは、上記の講義

                        DBMSをGoで実装してみた - Sansan Tech Blog
                      • Netlifyが日本からだと遅い - id:anatooのブログ

                        仕事で Netlify にデプロイしたSPAの読み込みが遅いので原因を調査してほしい、という依頼を受けてウェブパフォーマンス調査を行った。顧客から許可をもらって、この記事ではNetlifyに対してどういう調査をしたのかを書く。 結論だけをまず書くと、NetlifyのCDNのファイル配信パフォーマンスは日本国内からだと非常に悪い。パフォーマンスを改善させるためには、Netlifyに直接アクセスさせるのではなく、前段に他のCDNやキャッシュサーバを挟んだりするほうがいいだろう。 調査の前提 日本国内からのみの調査 サイトには静的なファイルをデプロイしているのみ 該当するNetlifyにデプロイしたSPAをブラウザで試しに開いてみると、確かに初回の読み込みのパフォーマンスがめちゃくちゃ悪い。 Chrome Devtoolsを開いてネットワークタブでどういうふうにリソースの読み込みを行っているのか

                          Netlifyが日本からだと遅い - id:anatooのブログ
                        • 【2021年】AWS全サービスまとめ | DevelopersIO

                          こんにちは。サービスグループの武田です。このエントリは、2018年から公開しているAWS全サービスまとめの2021年版です。 こんにちは。サービスグループの武田です。 このエントリは、2018年から毎年公開している AWS全サービスまとめの2021年版 です。昨年までのものは次のリンクからたどってください。 AWSにはたくさんのサービスがありますが、「結局このサービスってなんなの?」という疑問を自分なりに理解するためにまとめました。 今回もマネジメントコンソールを開き、「サービス」の一覧をもとに一覧化しました。そのため、プレビュー版など一覧に載っていないサービスは含まれていません。また2020年にまとめたもののアップデート版ということで、新しくカテゴリに追加されたサービスには[New]、文章を更新したものには[Update]を付けました。ちなみにサービス数は 205個 です。 まとめるにあ

                            【2021年】AWS全サービスまとめ | DevelopersIO
                          • 自作RDBMSやろうぜ!

                            Skip to the content. 自作RDBMSやろうぜ! このサイトの目的 RDBMS(いわゆるリレーショナルデータベース)というものはプログラミング言語の処理系や、OSなどと同様に、世の中で広く使われているソフトウェアであるにも関わらず、いざ自作してみようと思うと日本語で記述されたサイトや書籍で、必要な情報・情報源がまとまったものがないことに気づきました そこで、叩き台として、本サイト管理人および数名のコミッタで開発している自作RDBMSである SamehadaDB が軌道に乗るまでの経験をベースに、自作RDBMSするための道筋をある程度整理して書き記してみました 各々の情報・情報源はあいかわらず多くが英語で記述されていますが、その点はご容赦下さい なお、本サイトは技術的な解説を提供するのではなく、適切と思われる情報・情報源をポイントするようなサイトとなることを想定しています

                            • 「The Twelve-Factor App」を15項目に見直した「Beyond the Twelve-Factor App」を読んだ - kakakakakku blog

                              2012年に Heroku のエンジニアによって提唱された「The Twelve-Factor App」は素晴らしく,アプリケーションをうまく開発し,うまく運用するための「ベストプラクティス」として知られている.2020年になった現在でもよく引用されていると思う.日本語訳もある. 12factor.net Beyond the Twelve-Factor App とは? クラウド化が進むなど,提唱された2012年と比較すると技術的な変化もあり,今までの「The Twelve-Factor App」で宣言されていた観点以外にも必要な観点やベストプラクティスがあるのでは?という意見もある.そこで,2016年に Pivotal のエンジニアが「Beyond the Twelve-Factor App」を提唱した.The Twelve-Factor App にあった「12項目をアップデート」し,新

                                「The Twelve-Factor App」を15項目に見直した「Beyond the Twelve-Factor App」を読んだ - kakakakakku blog
                              • 【JavaScript】本日未明、[ async - await ]さんが死体で発見され... - Qiita

                                「な、なんじゃこりゃあああぁあっtっt!!!!」 ・・・ ・・・ ・・・ 非同期処理を"ちゃんと"理解して使いたい 『非同期処理なんとなくの理解で書いている...』 『動いてるし、ヨシ!』 令和プログラマー*1である私自身、なるべく気を付けようと思っていますが、ついついなんとなくで書いてしまいそうになります。 (*1: 令和になってからプログラミングを知った人。初心者のこと。) ちなみに冒頭のコードは、「並列でいける処理をつい直列でやってしまっている」 例です。 実際に手を動かしながら非同期処理の理解を深める 本記事は以下の構成で、順を追って非同期処理を学習し、明日から自信を持って非同期処理が書けるようになるためのハンズオンです。 JSの非同期処理について知る Promise について知る Async / Await を使えるようにする 冒頭のコードがリファクタリングできるようになる 実際

                                  【JavaScript】本日未明、[ async - await ]さんが死体で発見され... - Qiita
                                • Goでの並行処理を徹底解剖!

                                  並行処理をうまく使うのは難易度が高めです。 それゆえに、go文とチャネルについて基本的な文法書で知った後「並行処理ちゃんとできる!」の段階まで自力でたどり着くのは大変でしょう。 この本は、 *「並行処理ってやって何が嬉しいの?」 *「ゴールーチンとかチャネルとかって一体何者?」 *「ゴールーチンやチャネルを使ったうまいコードの書き方が知りたい!」 *「Goランタイムで並行処理をどううまく処理しているか知りたい!」 といった要望にお答えする、「Goでの並行処理」に関連した事柄について網羅的・徹底的に書きまくったものです。

                                    Goでの並行処理を徹底解剖!
                                  • 入門 GitHub Actions - メドピア開発者ブログ

                                    CTO室SREの @sinsoku です。 社内のGitHub ActionsのYAMLが複雑になってきたので、私が参考にしてる情報や注意点、イディオムなどをまとめておきます。 頻繁に参照するページ 新しい機能の説明が日本語ページに反映されていないため、基本的に英語ページを読むことを推奨。 ワークフロー構文 YAMLの基本構文の確認 コンテキストおよび式の構文 github オブジェクトの情報、関数の確認 ワークフローをトリガーするイベント 各イベントの GITHUB_SHA と GITHUB_REF が記載されている About GitHub-hosted runners インストールされているSoftwareのバージョンなどが記載されている GitHub REST API APIを使うときに参照する よく使うaction actions/checkout イベントによってはデフォルトブ

                                      入門 GitHub Actions - メドピア開発者ブログ
                                    • 「強いメモリモデル」と「弱いメモリモデル」 - yamasaのネタ帳

                                      Apple M1についての面白い記事を見かけて、久しぶりにメモリモデル屋(?)の血が騒いだのでブログを書く。 note.com 強いメモリモデル 現代のCPUアーキテクチャでは、x86(64bit, 32bitどちらも)が「強いメモリモデル」を採用しており、それ以外のメジャーなCPUが「弱いメモリモデル」を採用している。この「強いメモリモデル」「弱いメモリモデル」について、まずおさらいしておこう。 以下のように、2つの変数a, bに対して異なるCPUコアが同時にアクセスしたとする。 int a = 0; int b = 0; CPU1: a = 1; b = 1; CPU2: int r1 = b; int r2 = a; (上記はC言語に似た疑似コードを用いているが、実際は機械語命令になっていると考えてほしい。つまり、CPU1は変数a, bの示すメモリアドレスに対するストア命令を実行して

                                        「強いメモリモデル」と「弱いメモリモデル」 - yamasaのネタ帳
                                      • async/await は Promise を置き換えない - Okapies' Archive

                                        まとめ async/await 構文は、Promise で書ける処理のうち特定のケースしか表現できない 特定のケースとは、ある非同期処理の前処理と後処理がそれぞれ 1 個ずつの場合のみである async/await 構文は初心者に非同期処理を導入する際に適しているが、非同期処理を逐次処理として書けるという幻想を与えるので、どこかで知識をアップデートする機会を設けるべきである この記事はなに? 少しバズったのでまとめておこうかと。 「async/await があれば Promise なんて難しいものは要らない!」とか言ってるウブな子に、複数の API に並列にリクエストを投げて一つ以上成功した時だけ先に進む、みたいな問題を与えて愛でてみたい。— Yuta Okamoto (@okapies) 2020年12月11日 async/await は Promise のネストを手続き的なコードに見え

                                          async/await は Promise を置き換えない - Okapies' Archive
                                        • JavaScriptの非同期処理を理解する その2 〜Promise編〜 | さくらのナレッジ

                                          こんにちは!小田島です。前回の「コールバック編」を納稿したとき、アイキャッチ画像はJavaScriptのロゴにタイトルの文字を入れただけというとんでもないやっつけ仕事だったのですが、さくナレ編集部の方に「シリーズで理解が深まる」というすごい煽り文句がついたとてもカッコいい画像に差し替えていただきました。アイキャッチ詐欺にならないようにがんばります。 非同期処理シリーズの2回目はPromiseについての説明です。前回はコールバックについて説明しましたが、Promiseを使うことでどのように便利になったのでしょうか。それでは見ていきましょう!今回はコードが多いのでかなり分量が多く感じられるかもしれませんが、実際はあまり大したことはありません。 今回の目的 今回説明するのはPromiseです。これはFutureパターン(Promiseパターン)というデザインパターンの一種で、ECMAScript

                                            JavaScriptの非同期処理を理解する その2 〜Promise編〜 | さくらのナレッジ
                                          • 【15分で確認】AWSでクラウド設計する時に覚えておきたい設計原則・アーキテクチャ3選 - Qiita

                                            何となくAWSでクラウド設計をしていませんか AWSを利用する際、多くの方が「設計」というプロセスを簡単に飛ばしてしまう傾向にあります。しかし、クラウド環境の効果的な活用には、適切なアーキテクチャ設計が不可欠です。世の中には、システム設計をする上で指針となる設計原則がいくつかあります。本記事では、以下の3つをピックアップをしてご紹介します。 本記事で取り扱う内容 ■ マイクロサービスアーキテクチャ ■ AWS Well-Architected Framework ■ The Twelve-Factor App 1. マイクロサービスアーキテクチャ マイクロサービスは、独立した小さなサービス群でソフトウェアを構築するアーキテクチャです。これにより、迅速なイノベーションと新機能の迅速な展開が可能となります。一方、モノリシックアーキテクチャは、全てが一つのサービスとして結合され、変更や障害が全体

                                              【15分で確認】AWSでクラウド設計する時に覚えておきたい設計原則・アーキテクチャ3選 - Qiita
                                            • Scalaはもうだめなのか?…というかJVM言語がもうだめじゃん?|sugitani

                                              AndroidのためのJava/Kotlinはスコープ外とします まず断っておくと、俺はScalaが好きだ。 自分が作ったScalaプロダクトは二個現存している。うち一つはまだまだ自分が開発している。というか今は会社を作って1人でプロダクトを作っている身なのだが、それもScala3+ZIO2でゴリゴリ書いている。 でも残念、もうScalaというかJVM言語がオススメできません。TypeScriptかGoかRustをオススメします。 どういうこと?まずこの記事を見ていただくのが一番分かりやすい。 https://aws.amazon.com/jp/builders-flash/202310/java-serverless-saas-backend/?awsf.filter-name=*all 素晴らしいエントリーだ。読みに行かないせっかちな方のために概要を紹介する JavaプロダクトをAWS

                                                Scalaはもうだめなのか?…というかJVM言語がもうだめじゃん?|sugitani
                                              • Retty の Terraform CI/CD 解体新書 - Retty Tech Blog

                                                Retty インフラチームの幸田です。 6月に実施したマイクロサービス強化月間で公開した記事では、マイクロサービス環境を Terraform を利用して刷新した話を書きました。 engineer.retty.me この記事では前回と重複する箇所もありますが、Terraform の CI/CD にフォーカスした内容を書こうと思います。 CI を整備するにあたって意識したこと 「誰でも」かつ「安全に」利用できるように CI 上ですべての作業を完結させる Pull Request によるレビュー環境の整備 バージョンアップ作業の完全自動化 Terraform のディレクトリ構成について リポジトリの運用フロー Terraform によるリソースの追加、変更、削除 tfmigrate によるステートファイルの操作 CI で実行される job について Pull Request をオープンした時 P

                                                  Retty の Terraform CI/CD 解体新書 - Retty Tech Blog
                                                • 分散データシステム入門の決定版『データ指向アプリケーションデザイン』をたった30分で学んでみた #DataEngineeringStudy | DevelopersIO

                                                  基調講演「30分でわかるデータ指向アプリケーションデザイン」 ・ スピーカー 斉藤 太郎氏  Twitter:@taroleo / Github:@xerial Principal Software Engineer , Treasure Data 東京大学理学部情報科学科卒。情報理工学 Ph.D。データベース、大規模ゲノムデータ処理の研究に従事。その後、スタートアップであるTreasure Dataに加わり、アメリカ、シリコンバレーを拠点に活動中。日本データベース学会上林奨励賞受賞。OSSを中心にプログラミングやデータ処理を簡単にするためのプロダクトを作成している。 「30分でわかるデータ指向アプリケーションデザイン」最新の論文にも触れながら、分散データシステムの世界の魅力を伝えていきます。後半、@tagomoris https://t.co/TQ2TnsFIOT… — Taro L.

                                                    分散データシステム入門の決定版『データ指向アプリケーションデザイン』をたった30分で学んでみた #DataEngineeringStudy | DevelopersIO
                                                  • サーバーレスのセキュリティリスク - AWS Lambdaにおける脆弱性攻撃と対策 - Flatt Security Blog

                                                    はじめに こんにちは、株式会社Flatt Security セキュリティエンジニアの森岡(@scgajge12)です。 本稿では、AWS Lambda で起こりうる脆弱性攻撃やリスク、セキュリティ対策を解説し、サーバーレスにおけるセキュリティリスクについて紹介します。 はじめに AWS Lambda について サーバーレスにおけるセキュリティリスク AWS Lambda で起こりうる脆弱性攻撃 Lambda での脆弱性攻撃によるリスク 脆弱性攻撃による更なるリスク OS Command Injection XML External Entity (XXE) Insecure Deserialization Server Side Request Forgery (SSRF) Remote Code Execution (RCE) AWS Lambda におけるセキュリティ対策 セキュリティ

                                                      サーバーレスのセキュリティリスク - AWS Lambdaにおける脆弱性攻撃と対策 - Flatt Security Blog
                                                    • Ruby 3.0.0 リリース

                                                      Posted by naruse on 25 Dec 2020 Ruby 3.0系初のリリースである、Ruby 3.0.0 が公開されました。 これまで、Ruby3に向けてパフォーマンスの改善、並行処理、静的解析という3つの目標を掲げて、活発に開発が行われてきました。特にパフォーマンスの改善については、Ruby 3x3 として「Ruby3はRuby2の3倍速くする」ことを目指してきました。 Ruby 3.0では開発の指標の一つとしてきたOptcarrotベンチマークで3倍を達成するとともに、以下のような取り組みが行われています。 benchmark-driver.github.io/hardware.html に書かれている環境で計測されました。 8c510e4095 が Ruby 3.0 として使われています。環境やベンチマークによっては3倍にならないかもしれません。 Ruby 3 では

                                                      • シングルスレッドやマルチプロセスなどの並行処理の話について、 すぐに忘れてしまいます。 どうしたらもっと知識が定着すると思いますか? 色んなライブラリーでAPIサーバーを立ててパフォーマンスの差などを見てみたりするのですが、結局よくわかりませんでした。 | mond

                                                        シングルスレッドやマルチプロセスなどの並行処理の話について、 すぐに忘れてしまいます。 どうしたらもっと知識が定着すると思いますか? 色んなライブラリーでAPIサーバーを立ててパフォーマンスの差などを見てみたりするのですが、結局よくわかりませんでした。 フレームワークに頼って実装していると、そのフレームワークが内部でどの様な仕組みで並列または並行処理しているのかが理解できず、ただ使っているだけの状態になり得ます。 フレームワークの設計者からすると、プログラマがそれらを気にしなくても利用できるというのがプロジェクトのゴールでもあるので、それはそれで正しいのですが「並列処理」や「並行処理」を理解したいというモチベーションでは逆にそれが邪魔をしてしまうかもしれません。 並行処理や並列処理を学ぶのであれば、API サーバ等といった物ではなく、コード片で学び始めるのが良いと思います。 例えば Rub

                                                          シングルスレッドやマルチプロセスなどの並行処理の話について、 すぐに忘れてしまいます。 どうしたらもっと知識が定着すると思いますか? 色んなライブラリーでAPIサーバーを立ててパフォーマンスの差などを見てみたりするのですが、結局よくわかりませんでした。 | mond
                                                        • AWS 認定 ソリューションアーキテクト – プロフェッショナル(AWS Certified Solutions Architect – Professional)の学習方法 - NRIネットコムBlog

                                                          小西秀和です。 この記事は「AWS認定全冠を維持し続ける理由と全取得までの学習方法・資格の難易度まとめ」で説明した学習方法を「AWS 認定 ソリューションアーキテクト – プロフェッショナル(AWS Certified Solutions Architect – Professional)」に特化した形で紹介するものです。 重複する内容については省略していますので、併せて元記事も御覧ください。 また、現在投稿済の各AWS認定に特化した記事へのリンクを以下に掲載しましたので興味のあるAWS認定があれば読んでみてください。 ALL Networking Security Database Analytics ML SAP on AWS Alexa DevOps Developer SysOps SA Pro SA Associate Cloud Practitioner 「AWS 認定 ソリュ

                                                            AWS 認定 ソリューションアーキテクト – プロフェッショナル(AWS Certified Solutions Architect – Professional)の学習方法 - NRIネットコムBlog
                                                          • Learn Go with Tests: テスト駆動開発を体験しながら Go を学ぼう - kakakakakku blog

                                                            TDD(テスト駆動開発)を体験しながら Go を学べる学習コンテンツ「Learn Go with Tests」を紹介する❗️全てのコンテンツを実施してみて,非常に良かったのでまとめることにした💡 Go に入門できる TDD のサイクル (Red / Green / Refactor) を体験できる コンテンツは "35種類" もある 無料で学べる GitBook (GitHub) に公開されている 日本語対応 英語版 📚 quii.gitbook.io 日本語版 📚 andmorefine.gitbook.io コンテンツ一覧 なんと「35種類」もコンテンツがある❗️ Go fundamentals 🚢 21種類 Install Go(Go をインストールする) Hello, world(Hello, World) Integers(整数) Iteration(反復、繰り返し) A

                                                              Learn Go with Tests: テスト駆動開発を体験しながら Go を学ぼう - kakakakakku blog
                                                            • Rubyの並列並行処理のこれまでとこれから - クックパッド開発者ブログ

                                                              技術部の笹田です。今日で退職するので、バタバタと返却などの準備をしています。 本記事では、Rubyの並行並列処理の改善についての私の取り組みについて、おもに RubyKaigi 2022 と 2023 で発表した内容をもとにご紹介します。 並行と並列はよく似た言葉ですが、本記事では次のような意味で使います。 並行処理(concurrent processing)は、「複数の独立した実行単位が、待っていればいつか終わる(もしくは、処理が進む)」という論理的な概念で、古典的にはタイムシェアリングシステムなどが挙げられます。 並列処理(parallel processing)は、「複数の独立した実行単位のうちのいくつかが、あるタイミングで同時に動いている」という物理的な概念で、古典的には複数のCPU上で同時に実行させる、というものです。最近では、1つのCPU上で複数コアが同時に動いている、という

                                                                Rubyの並列並行処理のこれまでとこれから - クックパッド開発者ブログ
                                                              • 【2022年】AWS全サービスまとめ | DevelopersIO

                                                                こんにちは。サービスグループの武田です。このエントリは、2018年から公開しているAWS全サービスまとめの2022年版です。 こんにちは。サービスグループの武田です。 このエントリは、2018年から毎年公開している AWS全サービスまとめの2022年版 です。昨年までのものは次のリンクからたどってください。 AWSにはたくさんのサービスがありますが、「結局このサービスってなんなの?」という疑問を自分なりに理解するためにまとめました。 今回もマネジメントコンソールを開き、「サービス」の一覧をもとに一覧化しました。そのため、プレビュー版など一覧に載っていないサービスは含まれていません。また2021年にまとめたもののアップデート版ということで、新しくカテゴリに追加されたサービスには[New]、文章を更新したものには[Update]を付けました。ちなみにサービス数は 223個 です。 まとめるにあ

                                                                  【2022年】AWS全サービスまとめ | DevelopersIO
                                                                • 令和にふりかえる C10K 問題

                                                                  C10K 問題 (the C10K problem) は1999年に Dan Kegel が発表した文章、ならびにそこで提示された「問題」です。文章はその後も2000年代前半に何度か更新されているのですが、さすがに令和に読み返すと、当初の問題意識がわかりにくいところがあります。 2000年からの10年は、 ソフトウェア面では、select(2), poll(2) にかわる新しいシステムコールの実装と、それを使ったアプリケーションの普及 ハードウェア面では、x86 アーキテクチャの64ビット移行、仮想化命令の追加と、マルチコア化 さらにそこにクラウドも登場する、面白い時代でした。ここでは、それらの出来事を中心に、さらに、当時の雰囲気をつたえるような日本国内のブログやインタビュー記事をまとめることで、C10K 問題が、さまざまな側面から解決されていく流れを説明したいと思います。 書き足したいと

                                                                  • データ基盤チーム0人で運用は回るのか?! 前人未踏チャレンジ・クックパッドデータ基盤のすべて2020 - クックパッド開発者ブログ

                                                                    技術部データ基盤グループの青木です。 ここ1、2年はなぜか成り行きでBFFをでっちあげたり、 成り行きでiOSアプリリニューアルのPMをしたりしていたので あまりデータ基盤の仕事をしていなかったのですが、 今年は久しぶりに本業に戻れたのでその話をします。 突然の1人チーム、そして0人へ…… 今年のデータ基盤チームは消滅の危機から始まりました。 間違いなく去年末は5人のチームだったと思うのですが、 メンバーがイギリスへグローバルのデータ基盤チームを作りに行ったり、 山へ検索システムを直しに行ったり、川へレシピ事業の分析業務をやりに行ったり、 海へ広告のエンジニアリングをしに行ったりするのをホイホイと気前よく全部聞いていたら、 なんと4月から1人だけのチームになってしまいました。 事はそれで終わりません。 恐ろしいことに10月にはわたし自身も育休に入ることになったので、 10月はデータ基盤が0

                                                                      データ基盤チーム0人で運用は回るのか?! 前人未踏チャレンジ・クックパッドデータ基盤のすべて2020 - クックパッド開発者ブログ
                                                                    • 再帰的な構造のデータの同値性判定はどうしたらいいか - 貳佰伍拾陸夜日記

                                                                      数日前にTwitterで, JavaScriptのオブジェクトに対する===の挙動が初心者には難しいみたいな話を見かけた. 発端や周辺の議論をちゃんと追いかけてないからとくに出典は貼らない. たぶん元々の話は「へぇ, こういう挙動なんだ, 簡単ではないね」くらいの話だったのかもしれない. 自分のタイムラインの観測範囲では「そうだそうだ, (参照の同一性ではなく)同値性にしとけばいいのに」と思っている人もそれなりにいそうに見えた. 個人的にも同値性が簡単に確認できるとよい気はするものの, 「なんでそうしないんだ, オブジェクトの中身を確認していくだけだろ!」みたいな簡単な話ではないことも知っているため, 以下のようなツイートをしたのだった. JavaScriptのオブジェクトの同値性、再帰的な構造とか作るとぜんぜん自明じゃないんだよなぁ。リンクの構造は違うけどプロパティを辿ったときのパスはど

                                                                        再帰的な構造のデータの同値性判定はどうしたらいいか - 貳佰伍拾陸夜日記
                                                                      • Go の sql.DB がコネクションプールを管理する仕組み

                                                                        Go の database/sql パッケージ の DB 構造体 は、データベースへのコネクションプールを管理し、かつスレッドセーフ (goroutine セーフと言ったほうが良いのだろうか…?) にそれらの接続を使用できることを保証している。 ドキュメント にも次のように書かれている。 DB is a database handle representing a pool of zero or more underlying connections. It’s safe for concurrent use by multiple goroutines. こちらの基本的な実装内容と、動作を制御するパラメータについて調べてみた。 基礎知識のおさらい database/sql パッケージはデータストアの実装によらない一般的な SQL のインタフェースを提供している。具体的なデータストアへの接

                                                                          Go の sql.DB がコネクションプールを管理する仕組み
                                                                        • Lambda の運用面でのベストプラクティスを学べる「AWS Lambda Operator Guide」を読んだ - kakakakakku blog

                                                                          AWS の公式ドキュメント「AWS Lambda Operator Guide」を読んだ❗️AWS Lambda を軸にサーバーレスアプリケーションを構築するときに意識しておくべき "運用面のポイント・ベストプラクティス" がまとまっていて,とても良いドキュメントだった👏 内容的には AWS Well-Architected Framework: Serverless Applications Lens と重複するところもあるけど,サーバーレスアプリケーションを開発・運用しているなら1度は読んでおくと良いのではないでしょうか❗️ \( 'ω')/ 多くの人に読みやすくなるように日本語翻訳もあるとイイなぁ〜 docs.aws.amazon.com 構成 ドキュメントとしては全6章で構成されている.どれも重要で,理解を深めるために読むのはもちろん,開発中もしくは運用中のアプリケーションに対し

                                                                            Lambda の運用面でのベストプラクティスを学べる「AWS Lambda Operator Guide」を読んだ - kakakakakku blog
                                                                          • SQLite、複数クライアントからの同時書き込みを可能にする「BEGIN CONCURRENT」文を実装へ

                                                                            SQLite、複数クライアントからの同時書き込みを可能にする「BEGIN CONCURRENT」文を実装へ SQLiteの開発チームは、複数クライアントからの同時書き込みを可能にするBEGIN CONCURRENT文を実装していることを明らかにしました。 これまでSQLiteでは書き込みの同時実行はできず、つねに1つのクライアントだけが書き込み可能でした。 同時書き込み処理は、データベースのジャーナルモードが「wal」(Write-Ahead-log)もしくはwalを改良した「wal2」で、BEGIN CONCURRENT文を実行した場合に可能となります。 どのように同時書き込み処理が行われるのかについては、上記のWebページの説明を引用しましょう。 ロックが延期されることで同時書き込みが可能に まず、書き込み時のロックがCOMMITまで延期されることで同時書き込みが実現されると説明されて

                                                                              SQLite、複数クライアントからの同時書き込みを可能にする「BEGIN CONCURRENT」文を実装へ
                                                                            • TypeScriptの為のクリーンコード を翻訳しました | Graat(グラーツ)-グロース・アーキテクチャ&チームス株式会社

                                                                              unsafe:clean-code-typescript を邦訳しました。 翻訳後のドキュメントは以下になります。 TypeScriptの為のクリーンコード このドキュメントは Robert C.Martinの書籍 Clean Code を TypeScript に対応させたもので、 clean-code-javascript を参考に作成されました。TypeScriptで可読性が高く、再利用可能であり、リファクタブルなソフトウェアを生産するためのガイドラインが挙げられています。 ガイドラインは10個の章で構成されており、それぞれ以下の項目が挙げられています。 Variables(変数) 意味のある変数名を使う 発音可能な変数名を使う 同じ型の変数には同じ単語を割り当てる。 検索可能な名前を使う 説明変数を使う メンタルマップを避ける 不要な文脈を追加しない 短絡評価や条件式の代わりにデフ

                                                                                TypeScriptの為のクリーンコード を翻訳しました | Graat(グラーツ)-グロース・アーキテクチャ&チームス株式会社
                                                                              • はてなブログの DB を RDS for MySQL 8.0 にアップグレードした話 - Hatena Developer Blog

                                                                                この記事は、はてなエンジニア Advent Calendar 2023の2024年1月17日の記事です。 はてなエンジニア Advent Calendar 2023 - Hatena Developer Blog id:hagihala です。先日、はてなブログの DB を RDS for MySQL 5.7 から 8.0 へアップグレードしたので、工夫した点などを共有します。 Aurora MySQL 3.x にしなかった理由 MySQL 5.7 -> 8.0 で対応した変更点 character set や collation のデフォルトが変更される explicit_defaults_for_timestamp がデフォルトで有効になる SQL mode の変更 デフォルトの認証プラグインが caching_sha2_password になり、 mysql_native_passw

                                                                                  はてなブログの DB を RDS for MySQL 8.0 にアップグレードした話 - Hatena Developer Blog
                                                                                • Railsでpumaやsidekiqのスレッド数とコネクションプールの数ってどうやって決めるんですか | 働くひとと組織の健康を創る iCARE

                                                                                  この記事はiCARE Dev Advent Calendar 2022 第1レーン24日目の記事です。 Railsの基本原則の一つに「メニューはおまかせ」があり、デフォルトで設定を良い感じにしてくれています。しかし、本当に自分のユースケースでも問題ない設定だと自信を持って言うためには、なぜこの設定になっているのかの背景知識が必要になります。例えばrails newをするとpumaのスレッド数はデフォルト5、データベースのコネクションプール数も5になっています。これは自分のユースケースで適切な値なのでしょうか?どういうときにいくつに設定するのが正しいのでしょうか? pumaのスレッド数をどうやって決めるのか pumaはRailsのデフォルトのアプリケーションサーバであり、複数プロセス、複数スレッドで動くアプリケーションサーバです。この記事を執筆している時点で最も利用率の高いアプリケーションサ

                                                                                    Railsでpumaやsidekiqのスレッド数とコネクションプールの数ってどうやって決めるんですか | 働くひとと組織の健康を創る iCARE