Rubyのobject_idを入口にして、Rubyの実装詳細について学びます。
![Rubyのobject_id](https://cdn-ak-scissors.b.st-hatena.com/image/square/06194b692bb4c5f9f36333b90b3fccbb1056cbfb/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F0fa6d062e5dc4ebb855db9f4645facc6%2Fslide_0.jpg%3F31511667)
vmsplice is too fast Some programs use a particular system call “vmsplice” to move data faster through a pipe. Francesco already did a deep dive on using vmsplice to make things fast. However, while experimenting with it, I noticed that, when not using vmsplice, Linux pipes are slower than what I would have expected. Since you cannot always use it, I wanted to understand exactly why that was, and
Haskellコミュニティでは、ネットワーク関連を担当。 4児の父であり、家庭では子供たちと、ジョギング、サッカー、スキー、釣り、クワガタ採集をして過ごす。 技術研究所開発室の山本(和)です。私は、同僚の日比野と一緒にDNSのフルリゾルバ(キャッシュサーバ)の実装を進めています。このフルリゾルバの名前は bowline と言います。結びの王様である「もやい結び」から名付けました。 サーバの bowline に加えて、検索コマンドである dug も実装しています。DNSに詳しい方なら分かると思いますが、 dig コマンドに似せた名前を選びました。(もちろん、DIGDUGという名作を意識しています。) 今回は、 DNS検索コマンド dug の使い方について説明します。dugコマンドをインストールする一番簡単な方法は、githubからバイナリをダウンロードすることです。Intel Linux 用
情報を発信する人のところに情報が集まることを日々実感しているので、Linuxのメモリ管理に特に詳しいわけではないのですが最近遭遇した問題について自分の理解を書いておきます。ざっと調べても同じことを書いている人を見つけられなかったので、公開には意義があると考えています。識者の方がフィードバックをくださると嬉しいです。 ※ AIの出力をベースに書いているのでいつもと少し文体が違います。 背景 要約 調査 再現の難しさ Goアプリケーションの調査 pprofによる分析 GCログの調査 Linuxの調査 Goランタイムの調査 GoのGCとTHP khugepagedの問題 Goランタイムにおける回避策 回避策の削除 max_ptes_noneのデフォルト値について MADV_NOHUGEPAGEをやめた理由 調査内容まとめ 解決策 検証 C言語 Go言語 まとめ 背景 Go言語で書かれたOSSのア
この記事はTLS/SSLを実装してみたいという人が増えるといいな!という気持ちで書いています。実装の詳細は別記事で書こうかと思います。 数年前からいつかTLS/SSLのプロトコルをPHPで実装したいと思い、まずは本で知識を得ようかとラムダノートの「プロフェッショナルSSL/TLS」や 「徹底解剖TLS1.3」を買って読んでみましたが、なかなか頭に入らずに読んでは寝てしまうというパターンに。 やはり自分でTLSを実装してみないとなと思ってたところに、PHPカンファレンス福岡2024で hanhan1978 さんの「PHPでデータベースを作ってみた」を見て大いに刺激をもらい、ついにTLS実装に着手できました。 speakerdeck.com この資料は本当によくて名言の宝庫です。たとえば、 「まじめに作ろうとすると大変な努力が必要になる。もっと迂闊につくりたい」 「不格好でもいいので、動く完成
公式の説明による大きな変化点は、 Graviton 2 → 3 の時は、性能25%UP で費用6%UP、Network/EBS 帯域幅が向上、 Graviton 3 → 4 では、性能30%UP で費用10%UP、最大スペックが3倍、 に加えて、細かいところでも色々少しずつ向上しているという感じです。 特にスペック3倍は、データベース用途におけるスケールアップが強力で、一時的な緊急負荷対策としても強いし、クラスタデータを3分割するくらいなら1クラスタで分割なしで貫けばいいじゃない、など安定と選択の幅が広がるのは間違いないでしょう。 ベンチマーク それでは、疑り深い外道父さんによる、いつもの Phoronix による検証です。 今回は R系 という点と、あまり古いのと混ぜると共通成功テスト数が減ってしまうことから、R6g, R7g, R8g での比較としています。C7i 以前なども知りたけれ
先日、わたし、YouTubeに出演してまいりました。書店チェーンの有隣堂さんの超人気YouTubeチャンネル「有隣堂しか知らない世界」に“電卓博士”として出演させていただいたのです。 「有隣堂しか知らない世界」はチャンネル登録者数が29万人。すごいですね。略称は「ゆうせか」で、視聴者は「ゆーりんちー」と呼ばれているそうです。 番組MCはR.B.ブッコローさんです。正直なミミズクさんで、ブッコローさんからは「シャープの王道の人から見たら『うちの会社って、電卓つくってたっけ』みたいなポジション?」というご質問もいただきました。(全く怒っていないです!)そこでわたしも、少数精鋭の電卓グループを代表して、会社員人生の約半分、15年以上にわたって電卓に関わってきた技師として、電卓の良さを率直にお伝えしてまいりました。 出演にあたっては、ブッコローさんにどんな質問をされても答えられるように、わたしもあ
UUIDv7 is a 128-bit unique identifier like it's older siblings, such as the widely used UUIDv4. But unlike v4, UUIDv7 is time-sortable with 1 ms precision. By combining the timestamp and the random parts, UUIDv7 becomes an excellent choice for record identifiers in databases, including distributed ones. Let's briefly explore the UUIDv7 structure and move on to the zero-dependency implementations i
概要 筆者は DNS Summer Day 2023 で「あたらしい dig」というテーマで発表を行いました(資料はこちら)。 DNS のテストツールである dig コマンドは、ネットワークエンジニアのみなさんが日常的に利用していると思います。 一方で、dig を用いているとたまに想定とは異なる結果が得られ、戸惑うことがあります。 原因としては、dig の送信するリクエストメッセージに関するデフォルト値が一般的な感覚と異なるために起きることが多いようです。 発表ではこれらの具体的な例を挙げつつ、もし dig のいくつかのコマンドラインオプションの存在やそのデフォルト値の知識があったならば、それらはすぐに解決したであろうことを示しました。 dig には非常に多くのコマンドラインオプションがあります。しかし、man ページや -h オプションで表示される簡易ヘルプではコマンドラインオプションが
mrubyを使っていてsegmentation faultとか出て困ったことは無いでしょうか。こういう場合にgdbでデバッグするノウハウを書きます。gdbの使い方についてはここでは説明しません。 逆アセンブラ gdbでデバッグするならmrubyのバイトコードの逆アセンブラが必要です。標準ではcodedump関数が用意されていますが、なぜかここで説明するような使い方はできないようです。mrubyのJITで使っているものがここにありますので、コピーしてcodedump.cあたりにでも入れておいてくください。 これを使うと、変数mrbとirepが見えていれば、こんな感じでdisasm_irep関数を呼び出すことで逆アセンブルできます。見えていない場合、gdbのupコマンドで呼び出し元を辿っていて見えるところがあればそこで実行可能です。disasm_irepは値を返さないのでcallを使う方がよさ
Windows Subsystem for Linux(WSL)のGUI設定画面が間もなくリリース、メモリの自動縮退機能は正式版に マイクロソフトは、Windows上でLinuxの機能を利用できるWindows Subsystem for Linux(WSL)のGUIによる設定画面を開発中であることを明らかにしました。 また、現在実験的機能となっているメモリの自動縮退機能が正式版になることも明らかにしました。 WSLのGUI設定画面が登場 これまでWSLの設定は「.wslconfig」ファイルによって行う必要がありました。 間もなく、この設定ファイルと互換性のあるGUI設定画面が登場予定です。これにより、WSLのメモリサイズ、プロセッサ数、スワップサイズやスワップファイル、セーフモードでの起動など、これまで設定ファイルを書き換える必要があった設定をGUIから容易に行えるようになります。 メ
Windows 11 23H2 以降、エクスプローラーが 7z、tar などの解凍に対応しました。さらに、Build 25992 では圧縮も可能となったようです。7-zip を追加インストールしなくてもこれらのアーカイブを取り扱えるのは嬉しいですよね。 1 一方で、PowerShell の Expand-Archive コマンドレットは拡張されておらず、ZIP 形式の解凍しかできません。 GAC Version Location --- ------- -------- False v4.0.30319 C:\Program Files\WindowsApps\Microsoft.PowerShell_7.… OperationStopped: File 'E:\test\archive.7z' does not appear to be a valid zip archive. せっかく
最初に3行でまとめ AWS CLIは便利です。しかし起動が遅いので、Goで実装された高速な(ただし機能は少ない)代替品を作りました。awslim といいます リリースバイナリは無駄に大きいので、必要な機能だけを組み込んだビルドを簡単にできるようにしてあります。ビルドして使うのがお勧めです どうぞご利用下さい github.com 以下はこれに至るまでの経緯とか、実装や使い方の話とかです。長いです。 作成の経緯 AWSの各種サービスにアクセスするための AWS CLI は、スクリプトやコマンドラインから処理を自動化するために大変便利なツールです。AWSでサーバーサイドの開発、運用している人であれば、ほぼ全員がお世話になっているんじゃないかと思います。 しかし、AWS CLI (コマンド名aws) には「起動が重い」という問題があるなとずっと思っていました。具体的には、aws --versio
「ビデオカードがある時にマザーボード側の映像出力に繋ぐ」のは 今でもNGなのか? PC初心者がデスクトップPCを設置する時にやりがちなミスの1つとして、「ビデオカードがあるのにマザーボード側(オンボード側)にディスプレーを接続する」というものがある。 これをやってしまうとディスプレーに映像が出ない、あるいは映像が出たとしてもゲームのレンダリングがCPU内蔵GPUで行われてしまい、ビデオカードは休んだままになってしまう、というものだ。こういったトラブルを防ぐため、ビデオカードを装着したBTOメーカー製PCではオンボード側の映像出力がシールで封印されていることもある。 ビデオカードを搭載したBTOメーカー製PCでは、マザーボード側のHDMIやDisplayPort出力に使用不可であることを知らせるシールが貼られていることも多い しかし、このような古の教えはハードやソフトの発展で乗り越えられるよ
今年もRubyKaigiに協賛させていただきました! Flatt Security 執行役員CCO / プロフェッショナルサービス事業部長の @toyojuni です。先日沖縄県那覇市で開催されたRubyKaigi 2024の振り返りと皆様への感謝の気持ちを込めて本記事を執筆します。 昨年に引き続いて、Flatt SecurityはRubyKaigiにPlatinum Sponsorとして協賛し、ブースを出展させていただきました。ありがたいことに、3日間でのブース訪問の延べ人数は500人を超え、様々なRubyistの方との接点を持てたと感じています。 そんな今回のブース出展の軸と言える企画が「YAMLパース占い」でした。 Flat Securityは明日から始まる #RubyKaigi 2024に協賛させていただきます!ブースでは新企画「YAMLパース占い」を実施します🔮 与えられたYA
こんにちは、うつぼです。 今日は小ネタで Ceph の capacity usage について説明します。 Ceph はどれくらいの容量が使えるのか分かりづらいことで定評があります。 いや分かることは分かるんですが、「なんでそーなるの?」と欽ちゃんライクになる人もいるでしょう。今日はそこを紐解いていきましょう。 ceph df を見ていく ceph df の出力 まず、Ceph の Pool の capacity usage は、ceph df コマンドで見ることができます。 0.5 TiB (512 GiB) の osd を1つだけ持つシンプルな 3 node の Ceph クラスターを用意します。直後に、 3x replicated pool 2x replicated pool 2+1 erasure coded pool の3つの Pool を作り、ceph df を実行してみます
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く