並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 65件

新着順 人気順

OOMの検索結果1 - 40 件 / 65件

  • 僕が障害復旧対応時に考えていることを言語化してみる - Qiita

    これまで数多くのシステム障害を復旧してきました。 障害は無いに越したことは無いですし、起こらないように最善を尽くすのが我々エンジニアの使命です。 しかし、どれだけ最善を尽くしても起こる時には起こります。 今回は、これまで数多くの障害を復旧させてきたエンジニアが、復旧作業時に何を考えているのかを改めて言語化してみたいと思います。 こういう情報ってそれぞれのエンジニアの頭の中にあってあまり共有されないので、意外に参考になるかなと思います。 障害復旧対応の醍醐味 表現が適切かは分かりませんが、僕はシステム障害を復旧させるのが大好きです。目の前に起こっている事象からヒントを集め、地道に原因を切り分けてクリティカルヒットを見つけたときは名探偵になった爽快感があります。 加えて、動いているものを常に動かし続ける日頃の保守運用とは異なり、動いてないマイナスの状況を0まで戻すということで、復旧成功した際に

      僕が障害復旧対応時に考えていることを言語化してみる - Qiita
    • 新人プログラマ アンチパターン:原理原則多すぎて脳みそOOMエラー - Qiita

      この記事で伝えたいこと(忙しい人向け) 新人ほど「保守していく」ことの感覚が腹落ちしにくいのではないか説 我々は保守しやすいコードを書くべきであり、保守しやすいコードを達成するための手段として原理原則やデザインパターンが存在している 保守ってなんで必要なんだっけ?という体系的な理解を持ったうえで、具体的なテクニックを学んでいくことが大事 // 追記(2023/12/9) なんとミノ駆動 さんにコメントいただけました。 もちろん良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方は読んで影響を受けてます。 とってもうれしい。 想定読者 新卒 ~ 2年目くらいまでのプログラミング初心者 Webアプリの保守開発をしているエンジニア 3ヶ月前くらいの自分(未経験からエンジニアになって1年くらい) こんなことないでしょうか 先輩などから原理原則の観点を共有してもらったり、

        新人プログラマ アンチパターン:原理原則多すぎて脳みそOOMエラー - Qiita
      • Why Is SQLite Coded In C

        Note: Sections 2.0 and 3.0 of this article were added in response to comments on Hacker News and Reddit. Since its inception on 2000-05-29, SQLite has been implemented in generic C. C was and continues to be the best language for implementing a software library like SQLite. There are no plans to recode SQLite in any other programming language at this time. The reasons why C is the best language to

        • スタディサプリ最大のRailsアプリケーションにYJIT+pitchforkを導入してメモリ使用量を劇的に削減するまで - スタディサプリ Product Team Blog

          こんにちは。SREのkyontanです。Rubyが大好きなのでRubyの話をします。ちなみにリクルートはRubyKaigi 2024へGold Sponsorとして協賛しています! *1。ぜひ沖縄でお会いしましょう。 これはあるアプリケーションのメモリ消費量を示すグラフなのですが、まさかgemを入れ替えるだけでこんなに嬉しい変化が見られるとは思っていませんでした。今日はそんなgemの話をします。 話は遡って2023年4月のある日、インターネットを眺めていたところ、ShopifyがpitchforkというOSSを公開したという情報が目に留まりました。 調べてみると、どうやら著名なRackサーバー実装の1つであるunicornの派生版であり、メモリ使用量の削減に特化しているらしいのです。 github.com これはスタディサプリ小中高のあのリソースドカ食いマイクロサービス第一位である api

            スタディサプリ最大のRailsアプリケーションにYJIT+pitchforkを導入してメモリ使用量を劇的に削減するまで - スタディサプリ Product Team Blog
          • Why, after 6 years, I’m over GraphQL

            GraphQL is an incredible piece of technology that has captured a lot of mindshare since I first started slinging it in production in 2018. You won’t have to look far back on this (rather inactive) blog to see I have previously championed this technology. After building many a React SPA on top of a hodge podge of untyped JSON REST APIs, I found GraphQL a breath of fresh air. I was truly a GraphQL h

            • YJITの性能を最大限引き出す方法 - k0kubun's blog

              RubyのJITコンパイラYJITを開発している弊社Shopifyでは、社内で最もトラフィックが多いストアフロントのアプリにRuby 3.3 (master) をデプロイして平均レスポンスタイムが16%高速化、社内で最も大きなアプリであるモノリスにRuby 3.2をデプロイして平均レスポンスタイムが9%高速化している。他の会社でも、YJITを本番で有効にしたら高速化したという事例をちらほら目にした。 一方で必ずしも良い報告ばかりではなく、YJITを有効化したらメモリを使い切ってしまったりだとか、遅くなったみたいな報告も目に入ることがある。こういった問題は我々も多かれ少なかれ経験しており、それぞれ適切に対処することで解決できたため、その知見を共有する。*1 メモリを使い切ってしまった時 zenn.dev YJITを有効化すると、YJITが生成する機械語に加えて、それに関するメタデータもメモリ

                YJITの性能を最大限引き出す方法 - k0kubun's blog
              • GitHub Actions のコスト戦略 - GeekFactory

                TLDR 開発体験が良くなると CI のコストも減る 不必要なジョブ実行を減らし、割れ窓を直すことから始めると良い Self-hosted runners ではクラウドコスト最適化の一般的なプラクティスも併用する GitHub Actions のコスト構造 GitHub-hosted runners GitHub が提供するインフラを利用する。一般的なクラウドより高めの料金設定になっている 1分単位で課金される。ジョブの実行時間が数秒間でも1分間で課金されるので注意 Public repository は無料、Private repository は従量課金になっている Organization 内で利用料金が合算されて翌月請求される。Organization Owner なら請求レポート (CSV) をダウンロードできる Self-hosted runners GitHub では課金され

                  GitHub Actions のコスト戦略 - GeekFactory
                • Ruby のメモリ使用量問題を調査し upstream で解決していただいた話 - ANDPAD Tech Blog

                  はじめに こんにちは。リアーキテクティングチームの髙橋と申します。 この記事では、アンドパッドの施工管理サービスで利用している Ruby をバージョンアップしたときに発生したメモリ使用量の問題の発生から解決までをお話しします。 Ruby のバージョンアップ(3.0 -> 3.2) アンドパッドでは昨年 2023 に、施工管理サービスで利用している Ruby を 3.0 から 3.2 にバージョンアップしました。 バージョンアップ自体は過去に確立済みの手法(詳しくは過去記事をご参照ください)により、粛々と進められリリースされました。 ところがこのリリースから数日後、とある問題が発覚しました。 メモリ増大問題 アプリケーションのリソース使用状況を監視している SRE チームのメンバーから、以下のような連絡がありました。 Ruby バージョンアップのリリース以降、アプリケーションの利用するメモリ

                    Ruby のメモリ使用量問題を調査し upstream で解決していただいた話 - ANDPAD Tech Blog
                  • ルーターでプレゼンする。 - Zopfcode

                    市販のネットワークルーターやスイッチに導入することで、元々のファームウェアでは実現できなかった高度な設定や最新のプロトコルが利用できる Linux ディストリビューションの OpenWrt は、2004年の登場から今年でちょうど20周年を迎えた。90年代の Linux ルーターという概念の勃興から、ルーター向け Linux ディストリビューションは DD-WRT や Tomato など複数生まれたが、現在もサポートと新機種の追加が続くほどの活気を保っているのは OpenWrt だけといっても過言ではない。 そんな記念すべき20周年を盛り上げるべく(?)久しぶりにルーター遊びをしたので紹介する。 (本記事は2024年4月26日に岡山理大で開催された Okayama Revengers LT 大会 #2「もう春じゃなぁ〜 LT大会でもするかぁ!」にて発表した以下のスライドを文章にしたものです。

                      ルーターでプレゼンする。 - Zopfcode
                    • Aurora MySQLのメモリ不足の原因を特定する

                      シンプルフォーム株式会社でインフラエンジニアをしている守屋です。 本記事では Aurora MySQL の OOM(メモリ不足)エラーについて、原因となるクエリを特定するために役立つ Tips を弊社での実例を交えてご紹介します。 発端 突如 Slack に鳴り響く不吉な通知。 「パターン青!障害です!!」 どうやら本番環境の Aurora クラスターがフェイルオーバーしてアプリケーションが DB コネクションエラーを引き起こした模様です。幸いインスタンスは冗長化していて Aurora のフェイルオーバーは高速であるため、ユーザー目線では瞬断が発生した程度の比較的影響が小さめな障害に留まりました。しかしインフラエンジニアとしては捨ておけない状況です!早速原因の調査を始めました。 フェイルオーバーの原因 結論から言うとメモリ使用量がスパイクして OOM エラーが発生したことが原因でした。根拠

                        Aurora MySQLのメモリ不足の原因を特定する
                      • もう一度読むObservability Engineering - じゃあ、おうちで学べる

                        はじめに 本書『Observability Engineering』は、複雑化の一途をたどる現代のソフトウェアシステムに立ち向かうための、強力な武器となる一冊であり本稿はその読書感想文です。Observability Engineering を今から知りたい方はもちろん、Observability Engineering の基礎を改めて学びたい方もぜひお読みください。この記事もかなりの長さになるので普通に書籍を読んだほうがいいかもです learning.oreilly.com 「Observability:可観測性」という言葉は、近年ソフトウェアエンジニアリングの世界で大きな注目を集めています。しかし、その概念の本質を理解し、実践に移すことは容易ではありません。 本書は、そのオブザーバビリティについて、その基本的な考え方から、具体的な実装方法、そして組織への適用まで、幅広くかつ深く解説して

                          もう一度読むObservability Engineering - じゃあ、おうちで学べる
                        • 理解しやすいコードの書き方~理解容易性の7つの観点~ - Qiita

                          はじめに 「理解容易性」は「保守性」の観点の1つとして重視され、多くの原則や技法が紹介されているが、断片的かつ多様であり、全体像を理解することは難しい。 抽象度は高いが、体系的に観点を整理する事で、その理解の助けとなれば幸いである。 定義 「理解容易性」を簡単に言えば、「理解のしやすさ」であるが、その意味から掘り下げると、「思考する量」と言い換えることができる。 本記事では理解容易性を「思考量の少なさ」と定義し、7つの観点に整理した。 先に要約およびチェックリストを記載し、概略を記載した。 後に詳細で理解のため、各観点毎の説明と個別の原則や技法へのリンクを記載した。 要約 7つの観点の要約を先に示す。 (変数や関数の)名称は分かりやすくする (変数や関数の)役割は1つにする (変数や関数の)参照は狭くする (変数や関数の)状態は変えられなくする (関数やクラスの)面積は小さくする (関数や

                            理解しやすいコードの書き方~理解容易性の7つの観点~ - Qiita
                          • MySQLのOOMと戦った話

                            Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure

                              MySQLのOOMと戦った話
                            • DuckDBでお手軽!データフェデレーション - Techtouch Developers Blog

                              tl;dr はじめに DuckDB とは DuckDB では何が読めるのか 使ってみる S3 上のJSON を読んでみる リレーショナルデータベース 他ツールではなく DuckDB を使うメリット しくじりポイント (特にリリースされたばかりの)バージョンには気をつける S3 のオブジェクト数が多い場合不都合がありがち スレッドの調整が必要な場合も Redshift には未対応 終わりに 付録 MySQL のデータを読み込む例の MySQL 側の準備 tl;dr DuckDB 便利だよ。分析以外でも使えるよ 色々な場所のデータを閲覧・結合できるよ。標準SQLも使えるよ ただし、細かい落とし穴は色々あるので気をつけてね はじめに2023年4月にデータエンジニアとして入社したmin(@not_rogue)です。暖かくなるにつれ、YouTube で見た南伊豆ロングトレイル | 松崎町に行く機運が

                                DuckDBでお手軽!データフェデレーション - Techtouch Developers Blog
                              • GoとGCSで100GBの巨大zipファイルを展開する | Re:Earth Engineering

                                はじめに ファイルをアップロードすることができる機能を持ったWebアプリケーションやクラウドサービスは世の中に多数あります。しかし、アップロードしたzipファイルを自動で展開(解凍)してくれて、中身のファイルが閲覧できる機能を持ったサービスは、あまり多くはないかもしれません。 もし、Google Cloud上で、zipファイルをアップロードし自動的に展開してGCSに配置するシステムを作るとしたら、どうやって実現すればよいでしょうか。たとえ100GBのzipファイルでも問題なく展開できるようにするには? そんな難題に挑み、GCSにアップロードされた100GB級のzip/7zファイルを自動的に展開することができるシステムをGoで実装し、プロダクションレベルで実現しました。その技術について解説します。 背景 PLATEAU VIEWの画面 Eukaryaでは、国土交通省が主導しているProjec

                                  GoとGCSで100GBの巨大zipファイルを展開する | Re:Earth Engineering
                                • ESP32系MCUで無線LAN受信バッファが枯渇するときの調査方法 - Nature Engineering Blog

                                  ファームウェアエンジニアの井田です。 今回はESP32系MCUで無線LANによる受信ができなくなる問題の原因と調査方法について解説します。 背景 ESP32にてそこそこ頻繁に無線LAN経由の通信を行っているときに、環境によっては急に通信ができなくなる現象が発生しました。 そこで、Wiresharkを用いて通信状況を確認すると、どうもESP32側からの送信パケットは届いているものの、ESP32へのパケットは受信されていないような状況が確認されました。 例えば、ESP32側からDNSのリクエストを投げて、ルーターが返答をしているのにも関わらず、ESP32のログ上は名前解決に失敗した状態になっています。 また、TCPによる通信も何度も再送が発生しており、よくよく見てみると、ESP32側がACKを返さないので、通信相手のサーバが再送してきているという状態でした。 現象より、ESP32の無線LANド

                                    ESP32系MCUで無線LAN受信バッファが枯渇するときの調査方法 - Nature Engineering Blog
                                  • スタディサプリにおけるKarpenterの導入トラブル振り返り - スタディサプリ Product Team Blog

                                    スタディサプリにおけるKarpenterの導入トラブル振り返り こんにちは。スタディサプリ小中高SREの@aoi1です。 スタディサプリでは、Kubernetesを利用しているのですが、Nodeの運用自動化のために2023年3月から本番環境を含む全環境でKarpenterを導入しています。 Karpenterのおかげで開発者体験を向上させることができたり、コスト削減を行うことができました。便利で良いことが沢山ある一方、本番環境で問題が発生するなどいくつかハマったこともありました。 本ブログでは私たちがハマったポイントを通じて、Karpenterの導入を検討している方、あるいは既に本番環境でKarpenterを運用している方にとって参考になればと思います。 Karpenterとは KarpenterはAmazon Web Sevice(AWS)が開発しているOSSで、「Karpenter s

                                      スタディサプリにおけるKarpenterの導入トラブル振り返り - スタディサプリ Product Team Blog
                                    • 第814回 1500円以下で買えるRaspberry Pi PicoサイズのRISC-VボードなMilk-V DuoでUbuntuを動かす | gihyo.jp

                                      Ubuntu Weekly Recipe 第814回1500円以下で買えるRaspberry Pi PicoサイズのRISC-VボードなMilk-V DuoでUbuntuを動かす Ubuntu 24.04 LTSではRISC-Vボードのひとつである「Milk-V Mars」をサポートしました。これは中国のRISC-V製品のベンダーであるMilk-Vが作っているRaspberry Piライクなシングルボードコンピューターです[1]。ただしこのMarsはなかなか入手できない状況が続いています。Milk-Vでは他にも64コア搭載されたPCライクなPioneer、10GbEのネットワークスイッチとして使えるVegaなどもリリースしています。今回はRaspberry Pi Picoサイズの小さなボードで、比較的安価で入手性が高いMilk-V Duoシリーズに、Ubuntuをインストールしてみましょう

                                        第814回 1500円以下で買えるRaspberry Pi PicoサイズのRISC-VボードなMilk-V DuoでUbuntuを動かす | gihyo.jp
                                      • Mirrativ iOSアプリでのメモリ使用量削減への取り組み - Mirrativ Tech Blog

                                        こんにちは、iOSエンジニアのふじのです。 Mirrativの機能開発を進める傍ら、iOSアプリのメモリ使用量の改善に取り組んでいます。 今回は、アプリ内でメモリ使用量を増やしている問題点を見つける方法と、それらをクライアント実装で解決する具体的なアプローチについて紹介します。 Mirrativアプリが抱える課題 着眼点とアプローチ 画像キャッシュの効率化 UIImageのリサイズ 画像のメモリキャッシュの上限サイズ設定 メモリリークへの対策 Allocationsやmemory graphを利用した手動検出 XCTestを利用したCI上での自動検出 改善の成果と今後の課題 We are hiring! 参考リンク Mirrativアプリが抱える課題 Mirrativアプリはライブ配信機能や視聴機能、Unityを利用したアバター機能やWebGLを利用したゲーム機能など、メモリを多く必要とす

                                          Mirrativ iOSアプリでのメモリ使用量削減への取り組み - Mirrativ Tech Blog
                                        • OOMしたCronJobのメモリ制限を「いい感じ」に増やし、不必要な課金・障害対応を減らす - エムスリーテックブログ

                                          初めまして、2024年3月後半にエムスリーのAI・機械学習チームで10日間インターンに参加させていただいた東(@azuma_alvin)です。 もしタイトルが何かに似ていると感じた方がいれば、只者ではないと思われます。 洗練されたデザインでかっこいいと思ったエムスリーオフィスの受付の写真 この記事では、KubernetesのCronJobでOOM(Out Of Memory)が発生した時に「いい感じ」にメモリ制限を増加させてくれるbroomの開発経緯とその実装についてお話しします。 また、インターン期間で感じたエムスリーという「ギーク集団」の中で開発する楽しさについてもお伝えできればと思います。 2週間でゼロ(nil)から開発したbroomは、OSSとしてGitHubで公開しているのでコントリビュートお待ちしております! github.com CronJobのOOMとは CronJobのO

                                            OOMしたCronJobのメモリ制限を「いい感じ」に増やし、不必要な課金・障害対応を減らす - エムスリーテックブログ
                                          • 日本語CLIP 学習済みモデルと評価用データセットの公開

                                            はじめに 基盤モデル がAIの新潮流となりました。基盤モデルというとやはり大規模言語モデルが人気ですが、リクルートでは、画像を扱えるモデルの開発にも注力しています。画像を扱える基盤モデルの中でも代表的なモデルのCLIPは実務や研究のさまざまな場面で利用されています。CLIPの中には日本語に対応したものも既に公開されていますが、その性能には向上の余地がある可能性があると私たちは考え、仮説検証を行ってきました。今回はその検証の過程で作成したモデルと評価用データセットの公開をしたいと思います。 公開はHugging Face上で行っていますが、それに合わせて本記事では公開されるモデルやデータセットの詳細や、公開用モデルの学習の工夫などについて紹介します。 本記事の前半では、今回公開するモデルの性能や評価用データセットの内訳、学習の設定について紹介します。記事の後半では大規模な学習を効率的に実施す

                                              日本語CLIP 学習済みモデルと評価用データセットの公開
                                            • Transformers高速化ライブラリvLLMのAsyncLLMEngineを利用した非同期高速文章生成 - 端の知識の備忘録

                                              概要 先日までKaggleのAIMOコンペ(数学の問題をLLMに解かせて正答率を競う)に参戦していました。結果は初のチーム参加でメンバーに助けられつつ運もあり、なんとか銀メダルを取れました!これでMasterにリーチがかかりましたが、金メダルは未だ取れる気がしないので遠い道のりです……。 www.kaggle.com このコンペについて、近い内に同様のコンペが開催予定なこともあり上位解法があまり出ていない状態なので、どのような手法が良かったのかまだわかっていないのですが、とりあえず公開されている情報を元にすると、 LLMとしてはほぼほぼ全員が数学問題に特化したLLMであるDeepseek-Math-7Bを利用している LLMが出力したPythonコードを実行するインタープリターを実装することで、LLMのハルシネーションによる計算ミスを防ぐパイプラインが有力であった LLMの出力を比較的高い

                                                Transformers高速化ライブラリvLLMのAsyncLLMEngineを利用した非同期高速文章生成 - 端の知識の備忘録
                                              • GitHub - lllyasviel/stable-diffusion-webui-forge

                                                Stable Diffusion WebUI Forge is a platform on top of Stable Diffusion WebUI (based on Gradio) to make development easier, optimize resource management, and speed up inference. The name "Forge" is inspired from "Minecraft Forge". This project is aimed at becoming SD WebUI's Forge. Compared to original WebUI (for SDXL inference at 1024px), you can expect the below speed-ups: If you use common GPU li

                                                  GitHub - lllyasviel/stable-diffusion-webui-forge
                                                • Kubernetes、何をどうやって監視する? ~ 食べログにおけるオンプレKubernetes監視事例紹介 ~ - Tabelog Tech Blog

                                                  目次 はじめに 食べログにおけるKubernetes化のモチベーションとその進み具合 Kubernetesというインフラにおける監視戦略 監視システムは作り込むのではなく買う あらゆるコンポーネントのゴールデンシグナルを観測する なるべく一箇所からあらゆるメトリクス/ログをクエリできるようにする メトリクスデータには決められたラベルを付与する 食べログにおけるKubernetes監視のwhatとhow 監視データの置き場 ログデータ置き場 メトリクスデータ置き場 監視している内容 ゴールデンシグナルの監視 容量監視 ロギング 監視ツールの監視 食べログにおける監視失敗事例 事例1: Pod総数爆増によるクラスタ全体のスローダウン 事例2: 同一DeploymentのPodが同時にevictされたことによるサイト閲覧障害 おわりに はじめに 食べログ 技術部 SREチームの下國 峰昌と申しま

                                                    Kubernetes、何をどうやって監視する? ~ 食べログにおけるオンプレKubernetes監視事例紹介 ~ - Tabelog Tech Blog
                                                  • Google Cloud Next '23 参加レポート 〜Google本社にも行ったよ!〜 - ZOZO TECH BLOG

                                                    こんにちは、MA部MA開発1ブロックの齋藤(@kyoppii13)です。 8/29-8/31に開催されたGoogle Cloud Next '23へ参加してきました。今年は4年ぶりとなるオフライン開催で、アメリカ・サンフランシスコで開催されました。弊社からはMA部の齋藤・松岡・中原の3名が参加しました。 今年は生成AIにフォーカスした内容がとても多く、それに関連する新サービスの発表も多くありました。本記事では、現地での様子と特に興味深かったセッションをピックアップして紹介します。 現地での様子 3日間に渡って開催されたGoogle Cloud Nextの会場はモスコーニ・センターという大きな展示施設で、メインルームではキーノート、他ルームでセッションが発表されるというものでした。発表以外にもワークショップやたくさんの企業ブースがあり大変賑わっていました。 Moscone Center Ma

                                                      Google Cloud Next '23 参加レポート 〜Google本社にも行ったよ!〜 - ZOZO TECH BLOG
                                                    • ブログと Web サイトをオーバーホールした

                                                      一部の人には気付かれていたと思うんですが、diary.sorah.jp と blog.sorah.jp が長い間ダウンしていました。復旧させるのも腰が重く 2 年くらい放置していて (その間にも一瞬手を入れたりはしていたけど持続せず)、11 月に入っていろいろな家事をしていてその一環でようやく復活に至ったので報告します。 先に結果として書くと、sorah.jp 含めて Next.js 13 (SSG) になりました。裏に https://github.com/sorah/kozeki というちょっとしたソフトウェアがいて、Markdown ファイル群を処理させています。 なんで復旧の腰が重かったのか ブログはこれまで sorah/days - Rack アプリをデプロイしていました。サーバーフル! まずこのアプリ自体が ActiveRecord + Sinatra という構成になっていて

                                                      • Patterns for Building LLM-based Systems & Products

                                                        Patterns for Building LLM-based Systems & Products [ llm engineering production 🔥 ] · 66 min read Discussions on HackerNews, Twitter, and LinkedIn “There is a large class of problems that are easy to imagine and build demos for, but extremely hard to make products out of. For example, self-driving: It’s easy to demo a car self-driving around a block, but making it into a product takes a decade.”

                                                          Patterns for Building LLM-based Systems & Products
                                                        • Zig, Rust, and other languages | notes.eatonphil.com

                                                          Having worked a bit in Zig, Rust, Go and now C, I think there are a few common topics worth having a fresh conversation on: automatic memory management, the standard library, and explicit allocation. Zig is not a mature language. But it has made enough useful choices for a number of companies to invest in it and run it in production. The useful choices make Zig worth talking about. Go and Rust are

                                                          • 理解しやすいコードの書き方~理解容易性の7つの観点~ - Qiita

                                                            はじめに 「理解容易性」は「保守性」の観点の1つとして重視され、多くの原則や技法が紹介されているが、断片的かつ多様であり、全体像を理解することは難しい。 抽象度は高いが、体系的に観点を整理する事で、その理解の助けとなれば幸いである。 定義 「理解容易性」を簡単に言えば、「理解のしやすさ」であるが、その意味から掘り下げると、「思考する量」と言い換えることができる。 本記事では理解容易性を「思考量の少なさ」と定義し、7つの観点に整理した。 先に要約およびチェックリストを記載し、概略を記載した。 後に詳細で理解のため、各観点毎の説明と個別の原則や技法へのリンクを記載した。 要約 7つの観点の要約を先に示す。 (変数や関数の)名称は分かりやすくする (変数や関数の)役割は1つにする (変数や関数の)参照は狭くする (変数や関数の)状態は変えられなくする (関数やクラスの)面積は小さくする (関数や

                                                              理解しやすいコードの書き方~理解容易性の7つの観点~ - Qiita
                                                            • Dataflow の Day 2 Operation ベタープラクティス

                                                              Google Cloud Japan の RyuSA です。👋 最近「 Pub/Sub からイベントとデータを引っ張って BigQuery に投げ込みたい」「 Cloud Spanner の変更ストリームを BigQuery に配置し、データを分析に使いたい」など、様々な用途で大量なデータの処理のために Dataflow を利用いただいているのを観測しています。👀 さて、巨大な分散処理をマネージドで実行してくれる便利な Dataflow ですが、運用する上でいくつか気を付けないといけないことがあります。そしてそれらの多くは「問題が発生してから」発覚することが多いです。この記事では「 Dataflowジョブの運用に関しての FAQ やよくある問題」に対する回答をまとめておきました。 監視 / 可観測性 Q: ジョブのログベースの監視のベストプラクティスをおしえて! A. ログベース監視を

                                                                Dataflow の Day 2 Operation ベタープラクティス
                                                              • Effects of Pitchfork reforking on Shopify’s Monolith

                                                                Over the last year, I’ve been working on a new Ruby application server called Pitchfork. In most regards it’s extremely similar to the venerable Unicorn, from which it originates, but with one major extra feature: Reforking, which reduce memory usage of Ruby applications. For most of last year, we couldn’t enable reforking on our application because of an incompatibility with one of our dependenci

                                                                  Effects of Pitchfork reforking on Shopify’s Monolith
                                                                • Kubernetes と cgroup v2 - Qiita

                                                                  はじめに Kubernetes は v1.25 で cgroup v2 サポートを GA しており、その後に cgroup v2 に関連する機能が追加されています。しかしまだ多くのディストリビューションで Kubernetes がデフォルトで cgroup v2 を使用しない設定のため、実際に利用している方は多くないと思います。PFN では2022年12月に Kubernetes バージョンを v1.25 にアップグレードするのと同じタイミングで cgroup v2 に切り替えています。 このエントリでは Kubernetes の cgroup v2 に関する機能である MemoryQoS フィーチャゲートと memory.oom.group の2つについて、機能概要と課題を共有します。なお、Kubernetes v1.28 時点での情報です。 そもそもの cgroup v2 について そ

                                                                    Kubernetes と cgroup v2 - Qiita
                                                                  • 『Horton Hears A Who!』で楽しく英語学習!ドクター・スースの名作絵本を親子で楽しむ

                                                                    「Horton Hears A Who!」は、ドクター・スースらしいユニークなキャラクターと、心温まるメッセージが詰まった絵本です。今回は少し長い物語ですが、この絵本を通して、お子さんと一緒に楽しく英語を聞き流してみませんか? ここでは「Horton Hears A Who!」の簡単なあらすじの他、文中に出てくる日常の英語表現、おすすめの読み聞かせ動画のご紹介や日本語訳などを掲載しています。 お話の内容優しいゾウのホートンは、ジャングルで小さなホコリを見つけます。そのホコリから「助けて!」という声が聞こえたホートンは、ホコリを大切に持ち運び、その上に住む小さな人々「フー」を守ることを決意します。 しかし、ホートンは周りから「ホコリに人が住んでいるなんておかしい」と笑われてしまいます。それでも、ホートンはフーたちの存在を信じ、危険から守ろうとします。 英語学習のポイントこの絵本には、日常会話

                                                                      『Horton Hears A Who!』で楽しく英語学習!ドクター・スースの名作絵本を親子で楽しむ
                                                                    • Llama 3-V: Matching GPT4-V with a 100x smaller model and 500 dollars

                                                                      Edit (June 3 )— From TwitterFirst of all, we want to sincerely apologize to the original authors of MiniCPM. We wanted Mustafa to make the original statement but have been unable to contact him since yesterday. @siddrrsh and I posted Llama3-v with @mustafaaljadery. Mustafa wrote the entirety of the code for the project. Sid and I were both really excited about multimodal models and liked the archi

                                                                        Llama 3-V: Matching GPT4-V with a 100x smaller model and 500 dollars
                                                                      • Maestro: Netflix’s Workflow Orchestrator

                                                                        By Jun He, Natallia Dzenisenka, Praneeth Yenugutala, Yingyi Zhang, and Anjali Norwood TL;DRWe are thrilled to announce that the Maestro source code is now open to the public! Please visit the Maestro GitHub repository to get started. If you find it useful, please give us a star. What is MaestroMaestro is a general-purpose, horizontally scalable workflow orchestrator designed to manage large-scale

                                                                          Maestro: Netflix’s Workflow Orchestrator
                                                                        • 【J-REIT(2023年11月) 】 おすすめ初心者向け安いJリートとインフラファンド※2023年10月8日更新 - greenの日記

                                                                          こんにちは、分配金が大好きなチキン投資家のgreen🦆です。 日経平均株価は下げ傾向からの大きな下げ、その後少し戻しました。Jリートは日本株につられて下げ、なぜかあまり戻らない。インフラファンドは少し下げ。 そんな中、2023年10月6日の日経平均株価は30,994.67円とほぼ1ヶ月前(9月8日)の日経平均株価32,606.84円と比較すると1,612円下げています😲。 日経平均株価の動きとしては、9月中旬まで上げ33,500円を超え、その後は下げ10月はじめに大きく下げました😢。 ちなみに、2023年3月の権利付き最終日(2023年3月29日)の株価27,884円と比較すると3,111円上げています。 日経平均も下がり、REITも下がった😲 日本株が下がる時REITも一緒に下がる👶 日本株上がる時はREITも一緒少し上がる 2023年10月6日時点でREIT平均分配金利回りは

                                                                            【J-REIT(2023年11月) 】 おすすめ初心者向け安いJリートとインフラファンド※2023年10月8日更新 - greenの日記
                                                                          • 【AIあんの】~ポストモーテム大公開~ 障害の裏側、知見と反省点を共有します #安野たかひろ

                                                                            本記事は「AIあんの」のサービス障害の理由や改善案などを纏めている、 多くの技術的用語を含む、ソフトウェアエンジニア向けの側面が多い記事となっております。 この選挙期間中、Youtubeでライブ配信を続けていた「AIあんの」はもうお試しになったでしょうか? 6月21日の19時から投票日前日まで、できる限り深夜でも絶え間なく安野たかひろの政策について答えるように作られた「AIあんの」でしたが、すべての時間で視聴者の皆様の質問に答えられたわけではありませんでした。 AIあんのの有効回答%(青い線)が示すダウンタイム。 0%のタイミングではおおよそ何かしらのトラブルが起きていた…障害の要因は多岐にわたるので、今回は得られた知見の多かった数回の障害について、あえてその裏側、要因、得られた知見を公開しようと思います。ソフトウェアエンジニア向けの言葉を用いて言うのであれば、これは都知事選史上初であると

                                                                              【AIあんの】~ポストモーテム大公開~ 障害の裏側、知見と反省点を共有します #安野たかひろ
                                                                            • HTTP/2 `CONTINUATION` Flood: Technical Details

                                                                              tl;dr: Deep technical analysis of the CONTINUATION Flood: a class of vulnerabilities within numerous HTTP/2 protocol implementations. In many cases, it poses a more severe threat compared to the Rapid Reset: a single machine (and in certain instances, a mere single TCP connection or a handful of frames) has the potential to disrupt server availability, with consequences ranging from server crashes

                                                                              • 新しい Stable Diffusion WebUI の『forge』を早速使ってみました|ぐふとくく@AI呪文詠唱者

                                                                                Hey all SD-WebUI developers look here! Stable-Diffusion-WebUI-Forge is a new platform to (1) completely solve the speed and VRAM problem and (2) adding UNet Patcher System to webui so that many new features can be implemented in about 100 lines of codes.https://t.co/lTmEr873I8 — style2paints (@lvminzhang) February 6, 2024 和訳 SD-WebUI 開発者の皆さん、ここを見てください! Stable-Diffusion-WebUI-Forge は、 (1) 速度と VRAM

                                                                                  新しい Stable Diffusion WebUI の『forge』を早速使ってみました|ぐふとくく@AI呪文詠唱者
                                                                                • Amazon MemoryDB for Redisは耐久性があるけれどもEviction問題からは逃げられません | DevelopersIO

                                                                                  AWSが提供するデータストアにAmazon MemoryDB for Redisというサービスがあります。 製品ページを確認すると「耐久性に優れたデータベースです。MemoryDB は 99.99% の可用性を実現し、データを失うことなくほぼ瞬時に復元できます」と紹介されています。 インメモリデータベースが耐久性に優れているはどういうことでしょうか? 分散トランザクションログを利用した耐久性 MemoryDB for RedisはDBMSのようにトランザクションログを活用して耐久性(durable)を実現しています。 OSS版RedisやElastiCache Redisの場合、プライマリノードへの書き込みが成功したら、ノードはACKを返します。書き込み直後にノード・AZ障害が起こると、データロストが発生します。 MemoryDBの場合、プライマリノードに書き込み、さらに別AZにもトランザ

                                                                                    Amazon MemoryDB for Redisは耐久性があるけれどもEviction問題からは逃げられません | DevelopersIO