タグ

ブックマーク / gihyo.jp (112)

  • [作って学ぶ]ブラウザのしくみ──HTTP、HTML、CSS、JavaScriptの裏側

    Webブラウザは,開発者にとってもユーザーにとっても,もはや日常の一部となっているほど身近なソフトウエアですが,近年のブラウザはあまりにも高機能かつ巨大になってしまったため,その仕組みを詳しく理解することは困難です。そこで,シンプルなブラウザをRustを用いて実装することによって,ブラウザ上でWebサイトを開くまでに何が起きているのかを理解することを目的とします。さらに,作成したブラウザを,別冊で解説・実装している自作OSの上で動かすことによって,ブラウザと更にその裏側を理解していきます。

    [作って学ぶ]ブラウザのしくみ──HTTP、HTML、CSS、JavaScriptの裏側
    fjwr38
    fjwr38 2024/10/22
  • リアルタイムLinuxをあきらめない ―20年越しでメインラインに統合されたPREEMPT_RTの物語 | gihyo.jp

    2024年11月中旬のリリースに向けて開発中の次期Linuxカーネル「Linux 6.12」ではいくつかの大きなアップデートが予定されているが、その中でも最大の変更点とされているのが20年越しの実装となったリアルタイムLinuxのパッチセット「PREEMPT_RT」のメインライン統合だ。すでにCanonicalやSUSEなどは独自にPREEMPT_RTを統合したリアルタイムLinuxディストリビューションを提供しているが、メインラインカーネルのリアルタイム機能サポートにより、自動運転の制御システムや産業用ロボット、医療機器、金融取引といったミッションクリティカルなワークロードでのLinux採用がより拡がっていくことが期待される。 Merge tag 'printk-for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/prin

    リアルタイムLinuxをあきらめない ―20年越しでメインラインに統合されたPREEMPT_RTの物語 | gihyo.jp
    fjwr38
    fjwr38 2024/10/17
  • Linux Foundation、Redisをフォークした「Valkey」プロジェクトを始動 ―BSDライセンスでオープンソースとして提供 | gihyo.jp

    Linux Foundation⁠⁠、Redisをフォークした「Valkey」プロジェクトを始動 ―BSDライセンスでオープンソースとして提供 Linux Foundationは2024年3月28日、Redisに代わるオープンソースの新しいインメモリキャッシュストアシステム「Valkey」のコミュニティを立ち上げ、開発を行うことを発表した。 Linux Foundation Launches Open Source Valkey Community -linuxfoundation.org valkey : A new project to resume development on the formerly open-source Redis project. We're calling it Valkey, like a Valkyrie. -GitHub We are excited

    Linux Foundation、Redisをフォークした「Valkey」プロジェクトを始動 ―BSDライセンスでオープンソースとして提供 | gihyo.jp
    fjwr38
    fjwr38 2024/03/30
  • 第804回 mininetでお手軽ネットワークテスト環境を構築する | gihyo.jp

    3月も半ばになり、暖かい日も増えてきました。これだけ暖かくなってくると、ちょっとしたアプリで少し特殊なネットワークフレームを流したり、普段使わないネットワークプロトコルを試したくなりますよね。でも番環境でそれをやってしまうと、変質者としてしかるべき場所に通報されてしまいます。そこで今回は他人に迷惑をかけずに隔離されたネットワークテスト環境を構築できる「mininet」を使って、お縄にかからないようにしてみましょう。 Open vSwitchとネットワーク名前空間で気軽にテスト環境を構築する Linuxカーネルには「ネットワーク名前空間(netns)」という機能があります。これはホストや他のコンテナから隔離された環境でネットワークインターフェースを作成し、操作できるようになる仕組みで、特にLinuxのコンテナ系ツールで使っている基礎技術のひとつです。 Ubuntuだと「ip netns」コ

    第804回 mininetでお手軽ネットワークテスト環境を構築する | gihyo.jp
    fjwr38
    fjwr38 2024/03/14
  • M:Nスレッドによる軽量な並行処理への挑戦 | gihyo.jp

    STORES株式会社でRubyインタプリタ開発をしている笹田です。お正月に新年早々おでんを腐らせてしまったので、今年は作ったらさっさとべることを目標にしたいと思います。 この記事では、主に私が開発している、Ruby 3.3で導入されたM:Nスレッドについて紹介します。 M:Nスレッドはスレッドの性能向上のために導入されました。M個(大きな数)のRubyスレッドをN個(十分小さい数)のネイティブスレッドだけで実行するというモデルで、スレッド管理のオーバヘッドを抑えられる方法として知られており、ほかにもGo言語などで利用されています。今後、大量のネットワーク接続を処理するといったことをRubyで記述することを検討したい場面が出てくるしれません。そのようなときにRubyでスイスイとプログラムが書ければいいなと思っており、その一貫です。最終的には、Ractorを用いた軽量な並列・並行アプリケーシ

    M:Nスレッドによる軽量な並行処理への挑戦 | gihyo.jp
    fjwr38
    fjwr38 2024/01/31
  • LINEの「あけおめLINE」過負荷対策(3) ― 「発生可能性の低減」におけるキャパシティプランニング | gihyo.jp

    第1回ではリスクマネジメントの全体像、そして「発生可能性の低減」に関する全般的な説明をし、第2回ではその「発生可能性の低減」のなかでもボトルネックの設計について紹介しました。今回は引き続き「発生可能性の低減」のための施策としてキャパシティプランニングを採り上げ、私たちが実際に行なっている方法をご紹介します。 キャパシティプランニングを行うには、最低でも3つの変数を求める必要があります。1つ目は1サーバーあたりのクエリ/秒上限。2つ目は予測されるアクセス需要。3つ目は安全マージンです。「⁠1サーバーあたりのクエリ/秒上限」については第2回で算出できていますので、今回はアクセス需要の予測方法と安全マージンの求め方について紹介します。 1サーバーあたりのクエリ/秒上限 * サーバー台数 * 安全マージン > アクセス数 必要とされるアクセス需要の予測精度は、サーバー予算と過負荷障害時の影響度に大

    LINEの「あけおめLINE」過負荷対策(3) ― 「発生可能性の低減」におけるキャパシティプランニング | gihyo.jp
    fjwr38
    fjwr38 2024/01/29
  • 人生が整うマウンティング大全

    2024年2月14日紙版発売 2024年2月14日電子版発売 マウンティングポリス 著 四六判/208ページ 定価1,540円(体1,400円+税10%) ISBN 978-4-297-13951-3 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto このの概要 人間関係あるところにマウントあり,マウンティングを制する者こそが人生を制する。 3万以上の事例を収集・分析してきたマウンティング研究家が,80億総マウント社会を乗り切るためのナレッジを集大成。 一流の人こそこっそり活用しているマウンティングの最強パターンとは ステルスマウント×マウントさせる=最強のビジネススキル イノベーションはテクノロジーからではなくMX(マ

    人生が整うマウンティング大全
    fjwr38
    fjwr38 2024/01/17
  • LINEの「あけおめLINE」過負荷対策(2) ― 「発生可能性の低減」におけるボトルネックの設計 | gihyo.jp

    第1回では過負荷対策におけるリスクマネジメントの全体像、そして「発生可能性の低減」に関する全般的な説明をしました。今回はその「発生可能性の低減」のなかでもボトルネックの設計について、私たちが実際に行なっている方法をご紹介します。 少ないエンジニアリソースで複数のサービスのボトルネックを解析し、キャパシティプランニングを行うのは非常に難しいことです。そのため、私たちはボトルネックを解析する代わりに、ボトルネックを設計することにしました。具体的には、ほぼすべてのAPIサーバーにおいて、CPUリソースが最初に枯渇するようにチューニングしています。これにより、サーバーのキャパシティプランニングではCPUリソースの枯渇具合のみを気にすればよくなります。今回はこの具体的な手順をご紹介します。 そもそも、アクセス過多時のボトルネックを設計するためのもっとも単純で効果的な方法は、実際にストレステストを行い

    LINEの「あけおめLINE」過負荷対策(2) ― 「発生可能性の低減」におけるボトルネックの設計 | gihyo.jp
    fjwr38
    fjwr38 2023/11/22
  • バグは“数千パターンのテスト”をすり抜けた ―NTTデータ「2023/10/10 全銀ネット障害」について説明 | gihyo.jp

    バグは“数千パターンのテスト”をすり抜けた ―NTTデータ「2023/10/10 全銀ネット障害」について説明 NTTデータグループは2023年11月6日、10月10日に発生した全国銀行データ通信システムの障害に関する記者説明会を実施、現時点で判明している障害の概要について説明を行うとともに、再発防止策に向けたタスクフォースの設立などについて明らかにしました。会見の冒頭、NTTデータグループ 代表取締役社長 間洋氏は、今回の障害により全国の預金者や金融機関をはじめとする社会全体に大きな混乱をもたらしたことを謝罪し、今後の原因究明と再発防止に向け、全国銀行試験決済ネットワーク(以下、全銀ネット)とともに全力をかけて取り組むことを明言していました。 記事では会見の内容をもとに、現時点で判明している10月10日の事故の原因についてレポートします。 2023年10月10日 ―なにが起こったのか

    バグは“数千パターンのテスト”をすり抜けた ―NTTデータ「2023/10/10 全銀ネット障害」について説明 | gihyo.jp
    fjwr38
    fjwr38 2023/11/10
  • 「家族アルバム みてね」の自動作成フォトブック―その仕組みと負荷対策の事例 | gihyo.jp

    株式会社MIXIで「家族アルバム みてね」(⁠以下みてね)のData Engineeringグループ所属の松石と申します。 今回は、みてねの「自動作成フォトブック」について、その概要や処理の流れを説明したのち、これまでに実施してきた負荷対策についてご紹介します。 なお、この連載では以前1秒動画の生成・配信についてもご紹介しており、記事では1秒動画と比較したフォトブック自動作成処理の特徴や違いについても触れます。 自動作成フォトブックとは みてねでは、ご家族の思い出を形あるものとして残し、また贈り物としてもご利用いただけるよう、紙のフォトブック注文機能を提供しています。 このフォトブックには、紙質や印刷品質に応じて「スタンダード」「⁠ハードカバー」「⁠ライト」の3種類がありますが、いずれもA5サイズ、24ページ(うち写真22ページ)の仕様です。 またフォトブック機能では、毎月1冊フォトブッ

    「家族アルバム みてね」の自動作成フォトブック―その仕組みと負荷対策の事例 | gihyo.jp
    fjwr38
    fjwr38 2023/10/23
  • Maxime Chevalier-Boisvertさん「Optimizing YJIT’s Performance, from Inception to Production」 ~RubyKaigi 2023 2日目キーノート | gihyo.jp

    RubyKaigi 2023 キーノートレポート Maxime Chevalier-Boisvertさん「Optimizing YJIT’s Performance, from Inception to Production」 ~RubyKaigi 2023 2日目キーノート 最近のRubyインタプリタの進化において非常に重要なトピックの一つが、JITコンパイラの登場です。特にShopifyのJITコンパイラチームを中心に開発されたYJITは、世の中で広く使われているRailsアプリケーションを有意に高速化できるJITコンパイラとして、既にproduction-readyであると評価されており、各所で採用が進んでいます。 RubyKaigi 2023 2日目のMaxime Chevalier-Boisvertさんによるキーノートでは、開発チームがYJITを開発するにあたってどういったアプロ

    Maxime Chevalier-Boisvertさん「Optimizing YJIT’s Performance, from Inception to Production」 ~RubyKaigi 2023 2日目キーノート | gihyo.jp
    fjwr38
    fjwr38 2023/06/21
  • Ubuntuにおける2038年問題との戦い・暗号化設定の調整、SmartNICとUbuntu | gihyo.jp

    Ubuntu Weekly Topics Ubuntuにおける2038年問題との戦い⁠・暗号化設定の調整⁠、SmartNICとUbuntu Ubuntuにおける2038年問題との戦い・暗号化設定の調整 Foundation Teamの開発レポートを見ると、いくつか興味深い作業を読み取ることができます。まず注目するべきはarmhf time_tという見出しのついた作業を、複数のエンジニアが進めている点です。これは内容からして「2038年問題への対応(32bit Arm⁠)⁠」であろうことがわかります。この文脈で2038年問題について知っておくべきこととしては次の通りです。 伝統的なUnix環境では、システム時刻はepoch time(1970年1月1日午前0時0分0秒)からの経過秒数で保持している。この系において、整数オーバーフローによる巻き戻りが発生すると、「⁠時刻が突然1970年に巻き戻

    Ubuntuにおける2038年問題との戦い・暗号化設定の調整、SmartNICとUbuntu | gihyo.jp
    fjwr38
    fjwr38 2023/06/12
  • 第214回 春休み特別企画・赤外線リモコンを使う、あるいは「Ubuntu魔法使い」になる方法 | gihyo.jp

    Ubuntu Weekly Recipe 第214回春休み特別企画・赤外線リモコンを使う、あるいは「Ubuntu魔法使い」になる方法 みなさんはじめまして。長南(ちょうなん)と申します。今回から私もこの連載に寄稿させていただくこととなりました。まだまだ不慣れでお見苦しいところもあるかと思いますが、よろしくおつきあいいただければ幸いです。 さて、2012年1月13日号のUbuntu Weekly TopicsでUbuntu TVのコンセプトデザインが発表されたという話題が取り上げられましたが、テレビといえば欠かせないものはリモコンです。そこで今回は、Ubuntuでリモコンを使う方法、そして「Ubuntu魔法使い」になる方法について紹介します。 ハードウェアの選定は慎重に Ubuntuをリモコンで操作しようとしたときに、一番最初に問題となるのはリモコンからの信号を受け取るためのハードウェアを用

    第214回 春休み特別企画・赤外線リモコンを使う、あるいは「Ubuntu魔法使い」になる方法 | gihyo.jp
    fjwr38
    fjwr38 2023/05/29
  • 『WEB+DB PRESS』 休刊のお知らせ:WEB+DB PRESS

    WEB+DB PRESSは,2023年8月発売のVol.136をもって隔月刊誌としては休刊させていただきます。物価上昇による製作費の高騰など諸般の事情により,今回の決定に至った次第です。 突然の休刊案内にてたいへん恐縮ではございますが,何卒ご理解を賜りますよう,お願い申し上げます。 22年以上の長きにわたり,絶大なご支援をいただきましたことを,厚く御礼申し上げます。 弊誌で扱っていた分野のコンテンツは,今後も弊社刊行のSoftware Designやgihyo.jp,書籍などで提供させていただきます。また,必要な場合には「特別号」の編集・刊行なども検討してまいります。 最後に,皆様の一層のご活躍を心より祈念しております。

    『WEB+DB PRESS』 休刊のお知らせ:WEB+DB PRESS
    fjwr38
    fjwr38 2023/05/01
  • 2010年11月18日 "ミラクルパッチ"にLinusも大喜び!Linuxカーネルを高速化させた233行のコード | gihyo.jp

    Linux Daily Topics 2010年11月18日"ミラクルパッチ"にLinusも大喜び!Linuxカーネルを高速化させた233行のコード Linus Torvalds氏という人は、少なくともメールの中では、かなりはっきりと感情を表に出す。誰かor何かに対して怒っているときは相手を名指しで批判(というより非難)し、逆にうれしいときはあふれる喜びを隠そうとしない。今回紹介するのは後者のほう。「⁠I'm also very happy」「⁠it is a _huge_ improvement」「⁠Good job.」など、喜びと称賛の表現がたくさん書かれているメールだ。 Linus氏を歓喜させたのは、カーネル開発に携わるMike Galbraith氏が書いた233行のカーネルスケジューリングパッチ。このパッチを適用すると、デスクトップ環境においてパフォーマンスが著しく向上するという。

    2010年11月18日 "ミラクルパッチ"にLinusも大喜び!Linuxカーネルを高速化させた233行のコード | gihyo.jp
    fjwr38
    fjwr38 2023/04/27
  • 第6回 UNIXプログラミングの勘所(2) | gihyo.jp

    forkとファイルハンドル UNIX系のOSでは、複数のプログラムが、それぞれプロセスという単位で動作しています。forkというシステムコール[1]が呼び出されると呼び出したプロセスの複製がOSによって作成され、複製されたプロセス(子プロセス)がexecveというシステムコールを使って別のプログラムにすり替わる、というしくみでさまざまな処理を実行するようになっています。 「複製」と言っても、全部の情報が複製されるわけではありません。プロセスのメモリイメージが複製される[2]一方で、プロセスが開いている「オープンファイル記述」(⁠open file description)(⁠注3)は複製されません。forkのあとは、親プロセスと子プロセスの両者が、単一のオープンファイル記述を指す「ファイル記述子」(⁠file descriptor)(⁠注4)を持つことになります(図2⁠)⁠。 図2 for

    第6回 UNIXプログラミングの勘所(2) | gihyo.jp
    fjwr38
    fjwr38 2023/03/30
  • Goの新しい構造化ロガーを体験しよう | gihyo.jp

    logパッケージ Goには標準ライブラリとしてlogパッケージが提供されています。logパッケージで行えることはそう多くはありません。たとえば、デフォルトではログは標準エラー出力に出力されますが、log.SetOutput関数で出力先を変更できます。また、利用する関数によってログを出力した後の挙動をコントロールできます。たとえば、log.Print関数はログを出力するだけですが、log.Fatal関数はログ出力後にos.Exit(1)を呼び出します。log.Panicはログ出力後に出力したログと同じ文言を引数としてパニックを発生させます。 logパッケージでは、ログとともに関連するデータを出力したい場合は、log.Printf関数を用います。次のように、書式を指定して出力します。 log.Printf("request_url=%s request_method=%s", r.URL, r

    Goの新しい構造化ロガーを体験しよう | gihyo.jp
    fjwr38
    fjwr38 2023/02/15
  • 分散型SNS「Misskey」、それを支える技術スタック | gihyo.jp

    連載は分散型マイクロブログ用ソフトウェアMisskeyの開発に関する紹介と、関連するWeb技術について解説を行っていきます。第1回はMisskey、ひいては分散型SNSの簡単な紹介とその内部実装の概略を説明します。 はじめまして! はじめまして、Misskey(みすきー)のプロジェクトリーダーをしている、しゅいろ(@syuilo)です! この度連載の機会をいただきましたので、ちょっと仰々しい気もしますが「Misskey & Webテクノロジー最前線」と題して、今後Misskeyやそれに関わる最新のWeb技術について解説をしていく予定です。 今回はMisskey、ひいては分散型SNSの簡単な紹介とその内部実装の概略を説明します。 対象読者は、後半の実装解説の部分においてはある程度のWeb開発の知識がある人を想定しています。 Misskeyとは⁠、そして分散型とは Misskeyは、オープン

    分散型SNS「Misskey」、それを支える技術スタック | gihyo.jp
    fjwr38
    fjwr38 2023/02/13
  • Linux 6.1の注目機能「MGLRU」―メモリ管理に取り入れられたエイジングシステム | gihyo.jp

    Linus Torvaldsは12月11日(米国時間⁠)⁠、前週の告知どおりに「Linux 6.1」の正式リリースをアナウンスした。 Linux 6.1 -Linus Torvalds Linux 6.1はメインライン開発ではじめてRustを採用したことが大きな話題となったが、そのほかにもユーザ空間におけるメモリサニタイザーツールに似た動的エラー検出の「KMSAN」やB-treeベースのデータ構造「Maple Tree⁠」⁠、AMDの新しいPMFドライバのサポートなど多くのアップデートが行われている。Googleの開発者がメインラインへのマージを提案してきた「MGLRU(Multi-generational LRU⁠)⁠」もそのひとつで、古参のカーネル開発者であるAndrew MortonもMGLRUのメインライン化をバックアップしてきた。 Linuxカーネルではメモリ管理に「LRU(Le

    Linux 6.1の注目機能「MGLRU」―メモリ管理に取り入れられたエイジングシステム | gihyo.jp
    fjwr38
    fjwr38 2022/12/20
  • 軽量RustフレームワークTauriでデスクトップアプリ開発をはじめよう | gihyo.jp

    TauriはRustで書かれた軽量なGUIフレームワークで、WindowsmacOSLinux向けのデスクトップアプリを開発できます。2022年6月に最初の安定版であるバージョン1.0がリリースされました。 Tauriでは、メインプロセスはRustで記述しますが、UI(User Interface)にはWeb技術を利用します。ReactVue.jsのようなJavaScriptフレームワークがそのまま使えるので、インタラクティブで見栄えの良いUIを簡単に構築できます。同種のフレームワークにElectronがありますが、後発であるTauriにはインストーラのサイズを小さくできるなどの強みがあります。 Tauriのロゴは、おうし座の二重星であるシータタウリ(θ Tauri)をモチーフ[1]にしており、Webとネイティブアプリの相互作用を意味しています。 図1 Tauriロゴ 稿では、Ta

    軽量RustフレームワークTauriでデスクトップアプリ開発をはじめよう | gihyo.jp
    fjwr38
    fjwr38 2022/10/21