dnskimoxのブックマーク (1,414)

  • スプラトゥーン3をパケットキャプチャーで解析、最新の通信技術を学ぼう

    人気の「スプラトゥーン3」を通して、最新の通信技術の基を学んでしまおうというこの特集。今回は実際にスプラトゥーン3のパケットをWiresharkでキャプチャーして、UDPの通信やNAT越えの仕組みを見ていきます。 なお記載内容については、実際の通信をキャプチャーした結果に基づいた筆者の考察や推測によるものであり、任天堂の公式見解ではないことを記しておきます。 任天堂が開発した汎用ゲームプラットフォーム「NPLN」 スプラトゥーン3では、「NPLN」という、任天堂がスクラッチから開発をした任天堂プラットフォーム向け汎用ゲームサーバーが使われ始めました。従来のプラットフォームである「NEX」はニンテンドー3DS/Wii Uからの世代で使われてきて、NPLNはそこでのノウハウを基に2021年から「Google Cloud PlatformGCP)」で稼働しているようです。オンライン対戦のマッ

    スプラトゥーン3をパケットキャプチャーで解析、最新の通信技術を学ぼう
    dnskimox
    dnskimox 2024/10/01
  • 『実践プロパティベーステスト』の例題をScalaで解いていく その1 - Magnolia Tech

    実践プロパティベーステスト ― PropErとErlang/Elixirではじめよう 作者:Fred HebertラムダノートAmazon 今年読んだ技術書のベスト3を選べと言われたら、間違いなく『実践プロパティベーステスト』を取り上げます。 日では過去に類似のも出ていないし、これからもプロパティベーステストだけで1冊のが出版される可能性も限りなく低いことを考えると、さっさと読んでおいた方がいい1冊と言えます。 記載されているサンプルコードをそのまま写経して動かすだけでも学びはあるけど、やはり何らかの変化が有った方がより学びが深まる。 ちょうどこのに興味を持つきっかけがScala用のプロパティベーステスティングフレームワークであるScalaCheckに興味を持ったタイミングだったこともあって、ScalaCheckベースでサンプルコードを書き直していきながら、調べたこととかをつらつら

    『実践プロパティベーステスト』の例題をScalaで解いていく その1 - Magnolia Tech
    dnskimox
    dnskimox 2024/09/24
  • プロダクト目線とエンジニア目線でストーリーを紡ぐ「全体マップ」の作り方 - KAKEHASHI Tech Blog

    カケハシでエンジニアリングマネージャーを担当しているいくおです。 今回は、私たちのチームで中規模以上(複数スプリントにまたがるもの)の機能開発を行うときに作成している「全体マップ」について紹介します。 全体マップを考案したのはチームメンバーの椎葉さんなのですが、「いくおさん言語化うまいからブログにしてください!」とおだてられたので、それを真に受けて私がブログに書きます。 全体マップを作るようになってから、中規模の開発で自分たちの状況を把握しやすくなりました。また、全体マップを通して関係者全員がコミュニケーションすることで、なめらかな協働関係を築けるようになりました。こういった実体験からも、ぜひ多くの現場で全体マップを試してみたいと思っています。 では、全体マップとは一体なんなのか、どうやって活用するとよいのか、解説します。 この記事は秋の技術特集 2024の6記事目です。 ユーザーストーリ

    プロダクト目線とエンジニア目線でストーリーを紡ぐ「全体マップ」の作り方 - KAKEHASHI Tech Blog
    dnskimox
    dnskimox 2024/09/09
  • ソフトウェア設計のトレードオフと誤り

    「プログラムを設計するときに行った技術的な判断や選択が、後日大きな制約となる」これはプログラマなら誰しも経験したことのあることでしょう。書は、そんなプログラミングにおける各種の設計上の選択について、トレードオフの内容やそれがどのような誤りを招きうるのかという点を踏まえて紹介する書籍です。 コードの重複、エラーや例外処理、柔軟性と複雑性のバランスのようなコードレベルの選択から、APIの設計、時刻の扱い、データローカリティのようなシステム寄りの話題、またライブラリの選択、分散システムの一貫性と原子性、バージョニングのようなより抽象度の高い内容まで、さまざまなシチュエーションにおけるトレードオフの実態と、その失敗例をとり上げます。 書は日々のプログラミングにおける解決策のヒントを得るだけでなく、より幅広い設計上の知見を広める上でも役に立つでしょう。 正誤表 ここで紹介する正誤表には、書籍発行

    ソフトウェア設計のトレードオフと誤り
    dnskimox
    dnskimox 2024/08/27
  • 既存のアプリケーションからAkkaを切り離して大幅なコスト増を回避する - kubell Creator's Note

    みなさん、こんにちは!Chatworkの原田 (@shinharad) です。 今回は、私が最近取り組んでいる、既存のScalaアプリケーションからAkkaの依存を切り離す準備を進めている話を書こうと思います。Akkaの切り離し方は色々あると思いますが、一つの方法として参考にしていただければと思います。 なお、現時点ではAkkaを切り離すことでコスト面での効果が最も大きいアプリケーションを対象として進めています。今後他のアプリケーションも同様にAkkaを切り離すかどうかは、状況を見ながら判断していくことになりそうです。 Akkaを切り離すに至った背景 Akkaは、並行・分散システムの構築をサポートするツールキットで、弊社ではこれまで多くのScalaアプリケーションで採用してきました。Akkaのエコシステムは包括的かつ強力で、Web APIやストリーム処理、分散処理など、アプリケーションの特

    既存のアプリケーションからAkkaを切り離して大幅なコスト増を回避する - kubell Creator's Note
    dnskimox
    dnskimox 2024/08/21
  • 第743回 Ubuntuの標準ブートローダーであるGRUBを改めて見直す | gihyo.jp

    Ubuntuは、標準のブートローダーとしてGRUBを採用しています。ほとんどの利用者は、インストール時に自動設定されるGRUBをそのまま利用し続けていることでしょう。今回は初心者向けに、このGRUBがどう動いているのか、そしてどのように設定可能なのかを紹介します。 図1 Ubuntuインストール時の無骨なGRUB セキュアブート時代のGRUB GNU GRUB(GRand Unified Bootloader)は、言わずとしれたLinuxをはじめとする各種OSを起動するための「ブートローダー」です。一般的なコンピューターは電源が入ると、CPUを含む最低限のデバイスのリセットが解除され、ROM上にある小さなプログラムが実行されることによりRAM上に大きなプログラムがロードされ、さらにいくつかのデバイスのリセットが解除されて最終的に必要なプログラムが実行されるという、「⁠ブートストラップ」な方

    第743回 Ubuntuの標準ブートローダーであるGRUBを改めて見直す | gihyo.jp
    dnskimox
    dnskimox 2024/08/14
  • 目標設定は好きですか? アジャイルとともに目標と向き合い続ける方法 / Do you like target Management?

    Developers Summit 2024 Summer での登壇資料です https://event.shoeisha.jp/devsumi/20240723/session/5111

    目標設定は好きですか? アジャイルとともに目標と向き合い続ける方法 / Do you like target Management?
    dnskimox
    dnskimox 2024/07/24
  • SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム

    通常運用中のシステムに人手が必要なら、それはバグだ。 通常の定義は、システムの成長と共に変化する。 ——Carla Geisser、Google SRE SREは、運用作業よりも、長期間にわたるエンジニアリングプロジェクトの作業に時間を使おうとします。運用作業という言葉は誤解を招きかねないので、私たちはトイルという言葉を使います。 5.1 トイルの定義 トイルは、単なる「やりたくない仕事」ではありません。それは、管理上の雑務や、汚れ仕事と単純に言い換えられるものでもありません。どういった種類の仕事をすれば満足感を得ながら楽しく仕事ができるのかは、人によって異なります。手作業の繰り返し業務を好む人さえいるのです。また、行わなければならない管理上の雑務もありますが、これはトイルに分類されるべきではありません。それはオーバーヘッドです。オーバーヘッドは、プロダクションサービスの稼働に直接結びつか

    SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム
    dnskimox
    dnskimox 2024/07/23
  • 2022年における開発組織のパフォーマンス計測とNewsPicksの取り組みについて - Uzabase for Engineers

    NewsPicksの高山です。 2020年と2021年は「開発生産性」またはほぼ同義の「開発者体験」に注力した2年でした。特に2021年は、自分でも少しウザいぐらいに登壇やブログやインタビューでこの話をしていました。(後半からは「開発生産性」から派生してKotlinの話が主でした) tech.uzabase.com codezine.jp hatenanews.com zine.qiita.com zine.qiita.com tech.uzabase.com hatenanews.com 今回のブログでは、2021年のNewsPicks開発組織のパフォーマンス計測の現状と、界隈の動向についてまとめていきます。 背景 デプロイ頻度の計測 Findy Teams Four Keys まとめ 宣伝 背景 『LeanとDevOpsの科学』によると、一般的にアジャイル開発で良いとされる開発スタイル

    2022年における開発組織のパフォーマンス計測とNewsPicksの取り組みについて - Uzabase for Engineers
    dnskimox
    dnskimox 2024/07/20
  • corepack is 何?

    追記: 2023-11-19 corepack v0.20.0 にて、CLI のコマンド体系が一新されて多少わかりやすくなりました (PR#291)。新しいコマンドは README を参照。 追記: 2022-02-03 Node.js v14.19.0 に corepack が標準バンドルされました。 corepack がバンドルされていない Node.js v12 系は 2022-04-30 に EOL を迎えるので、あと 3 ヶ月もすればアクティブな Node.js 環境には必ず corepack が揃っているという状態になりますね。引き続き experimental ステータスのままではありますが。 追記: 2021-09-08 Node.js v16.9.0 で corepack が標準バンドルされました。まだ experimental 扱いですが。 デフォルトでは yarn も

    corepack is 何?
    dnskimox
    dnskimox 2024/07/17
  • 「ソフトウェア設計」のドメイン - 「データモデリングでドメインを駆動する」を読んで

    2024.05.28 『データモデリングでドメインを駆動する』読書感想会 https://kichijojipm.connpass.com/event/315276/

    「ソフトウェア設計」のドメイン - 「データモデリングでドメインを駆動する」を読んで
    dnskimox
    dnskimox 2024/07/17
  • PdM/EMが気づくべき「技術負債」の異変

    技術負債が溜まっている勘所について。現場のエンジニアは実際のシステムを触っているので変更や追加をする過程で当事者になるのでおおよそ異変に気づく。 一方、実際にそのシステムに対となるプロダクトに関わっているのはエンジニアだけではない。PdMEM、事業責任者がいる中でこのメンバーにどう常に変化し続けるシステムアーキテクチャの異変に気づいてもらうのか、自ら気づかせるのかは至難の業である。 とはいえ、つばり一番わかり易いのは工数の予測精度の幅がある。 以下の3つのフェーズがあったときにそれぞれのズレが大きい場合は負債が溜まっていることが多い。(特に、1.と3.) 一般的な視点と現場システムへの理解度のズレ詳細から開発手前での予測のズレ予測工数と実績工数のズレここでいう工数予測がズレるのはエンジニアリングスキルの問題ではなく、システムに関する理解度の認知問題によってズレるケースが該当する 1.一般

    PdM/EMが気づくべき「技術負債」の異変
    dnskimox
    dnskimox 2024/07/11
  • 納得感のある決定事項の共有方法 - Konifar's ZATSU

    意思決定の場にいない人に対して決定事項を共有する際、いくつか気をつけておくといいなぁと考えていたことを雑にまとめておきたい。 決定する前から進捗をちょっとずつ共有しておく 決定前の話なので後の祭りかもしれないが、いきなり結果をドーンだと相手を戸惑わせることがあるので事前に議事録を共有したり中間で説明する機会を作ったりするとよい 背景と前提条件を伝える なぜやるのかわからないまま結果だけ共有すると納得してもらいにくい。決定する上での前提条件を知らないと余計な反発をうむこともあるので注意が必要。それまでずっと考えてきた当事者は気づきにくいが、びっくりするくらい前提知識が違うことがある。相手は何も知らないものとして、イチから説明した方がよい 決定までの経緯を伝える 結論より経緯の伝え方が重要。どのような議論があってそんな決定になったか、完結に伝えましょう 捨ててきた選択肢も伝える 結果に至るまで

    納得感のある決定事項の共有方法 - Konifar's ZATSU
    dnskimox
    dnskimox 2024/06/25
  • 参加者がつくる対話の場 オープンスペーステクノロジー | オブジェクトの広場

    2018年7月20, 21日に開催されたエンタープライズアジャイルの集いで、オープンスペーステクノロジーによるワークショップがありました。オープンスペーステクノロジーは参加者が主体となって対話を進める手法です。初顔合わせの参加者が多い中でもワークショップは非常に盛り上がり、オープンスペーステクノロジーという手法の凄さを改めて感じました。一方で、参加者のほとんどがオープンスペーステクノロジーという手法をご存じなく、残念にも思いました。もっと広くこの手法を知って欲しいと思い、オブジェクトの広場としてもオープンスペーステクノロジーの説明記事を書くことにしました。 エンタープライズアジャイルの集いの1日目に行われた基調講演については、『エンタープライズアジャイルの集い 基調講演レポート』にレポートがありますので、合わせてご覧ください。 オープンスペーステクノロジーとは 私の理解でオープンスペーステ

    参加者がつくる対話の場 オープンスペーステクノロジー | オブジェクトの広場
    dnskimox
    dnskimox 2024/06/25
  • 良いコードってどんなコードですか?という質問を受けたら何と答えるか - snoozer05's blog

    技術顧問先で、一生懸命コードに向き合っているプログラマーになりたての方から、次のような質問をもらいました。 最初に面談した時、1年後にいいコードが書ける、上手に書けることを目標にしましたが、 先日スクール時代の同期(それぞれRubyの会社で働いている)と話したところ、会社ごとにレビューの仕方やコードに関する基準がさまざまなようで、良いコードとはなんなのか疑問に感じました。「いいコード」とは、みたいな部分で島田さんの考え方をお聞きできたら嬉しいです。 この質問にぼくは次のような回答をしたのですが、「この質問が来たら他の人はどんな回答するんだろうな」に興味があるので、ここにしたためておきます。もしよかったら「若者にこれを聞かれたら自分ならこう答える」をコメントなどで残していってもらえたら嬉しいです。 とても大事な疑問を見つけられたんだなあと思います。 「良さとは何か」ということに向き合う必要の

    良いコードってどんなコードですか?という質問を受けたら何と答えるか - snoozer05's blog
    dnskimox
    dnskimox 2024/06/20
  • 高度に発達したウォーターフォールはアジャイルと見分けがつかない - An Epicurean

    tl;ldr ウォーターフォールという言葉を悪口として使うのは良くないんじゃない? 空想上の開発手法ウォーターフォールと進化したウォーターフォール アジャイル開発の説明がされるとき、アンチパターンとして「ウォーターフォール」が使われることがあります。これは「ダメな開発現場」と同義で使われており、共通仮想敵としての空想上の開発手法とも言えます。 それは、曰く、硬直化していて変化や手戻りを許さず、一道でフィードバックサイクルがない、数十年アップデートされていない古臭い手法のことらしい。 もちろんそういう開発をしている現場もまだ数多く存在するでしょう。ただ、ウォーターフォールをカイゼンし進化させている人達もいます。そういう人たちの話を聞くと、例えば以下のような話を聞きます。 一ヶ月で1ウォーターフォールを回す 前の手順に戻る手続きが定められている 初期フェーズから開発者を巻き込む 定期的なレビ

    高度に発達したウォーターフォールはアジャイルと見分けがつかない - An Epicurean
    dnskimox
    dnskimox 2024/06/20
  • Scalaで複数のリストをzipするならlazyZipがおすすめ(きれいに収まる) - Lambdaカクテル

    Scalaでコードを書いていて、複数のリストをzipすることがあった。 val xs: List[Int] = ??? val ys: List[Int] = ??? val zs: List[String] = ??? xs.zip(ys).zip(zs) // => List[((Int, Int), String)] しかしzipは2つのリストからList[(A, B)]を作るので、複数回zipすると奇妙な型になってしまう。この場合はList[((Int, Int), String)]になってしまった。こういう型になるとmapなどで使うときに面倒だ。 lazyZip コレクションメソッドを探していると、lazyZipメソッドというのがあることを知った(Scala 2.13から導入されたようだ)。使い方はzipと同じだが、mapなどを使うタイミングにまでタプルを作るのを遅延させてくれる

    Scalaで複数のリストをzipするならlazyZipがおすすめ(きれいに収まる) - Lambdaカクテル
    dnskimox
    dnskimox 2024/06/17
  • スプラトゥーンの非同期処理の話 ~なにがラグのせいなのか~|まけトピア

    さて、みなさんはこういう叫びを聞いたことはありませんか? 「ラグやば!これ絶対当てたのに死なねえんだけど!」 「ラグすぎてワープするんだけど!」 「同期ズレえぐ!!!」 スプラトゥーンは、インターネットを介してゲームの情報をやり取りすることで、離れた人たちとも遊べる対戦アクションゲームです。 まず、大前提として、インターネットを介している時点で、少なからず通信遅延(ラグ)が発生します。ラグのないゲームは存在しません。 スプラトゥーンでは、通信環境が悪くても比較的不快になりにくい実装がされているのですが、これの仕様が結構ややこしくて、自分のプレイのガバさをラグのせいにする人もしばしば見かけます。 (とんでもないラグがあるともちろんキツイですが) この記事では、 一般的なゲームにおける通信同期方式 スプラトゥーンにおいては、どうやって何を同期しているか これはラグのせいなのか、自分のガバのせい

    スプラトゥーンの非同期処理の話 ~なにがラグのせいなのか~|まけトピア
    dnskimox
    dnskimox 2024/06/12
  • Playwright × Gaugeで拓くE2Eの新境地 〜 社内の自前E2Eが最高な話|Akihiro Yokota

    こんにちは、アルプでQAエンジニアをやっているyokota(@katawara)です。 アルプではQAエンジニアの働き方として3つのロールがあり、以下のように分類されています。 ・リードQAエンジニア(L-QA) : 組織全体のQAプロセスを改善する責務を担う ・チームQAエンジニア(T-QA) : プロダクトチーム内のQAプロセスを改善する責務を担う ・オートメーションQAエンジニア(A-QA) : プロダクトチームが行っているテストとは別軸の自動テストを作成を担う QAエンジニアの幅広い業務を整理し、3つのジョブディスクリプションを作ってみた より引用この記事を書いている2024年5月現在では、一人でいろいろな帽子を使い分けているといった塩梅なのですが、今回はA-QAとしての帽子をかぶり、E2Eテスト(自動テスト)の話をしてみたいと思います。 アルプでのE2E事情アルプで使われているE

    Playwright × Gaugeで拓くE2Eの新境地 〜 社内の自前E2Eが最高な話|Akihiro Yokota
    dnskimox
    dnskimox 2024/05/31
  • [翻訳]SQSとKinesisの特徴の違いと使い分け方。 - Qiita

    KinesisとSQSはとても似ているサービスで、どのように使い分けたらよいか、どんな違いがあるのかが 気になっていました。 そんな時、以下の記事を見つけました。 とても良い記事なので、翻訳記事を紹介します。 以下翻訳記事: 私達がWorkviaのメッセージングシステムを設計する際、Kinesisをメッセージストレージ及びデリバリメカニズムとして利用することを検討しました。 最初は、kinesisはどのような課題も解決できる特徴を持っているように見えました。 Kinesisはテラバイト級のデータを保管でき、古いメッセージの再送をする機能を持っていて、複数のメッセージコンシューマを利用することをサポートしていたからです。 しかし、もう少し細かな点まで確認していくと、Kinesisは特別なユースケースにはとても適していることがわかりました。 そしてあなたのアプリケーションがそのユースケースに適

    [翻訳]SQSとKinesisの特徴の違いと使い分け方。 - Qiita
    dnskimox
    dnskimox 2024/05/31