タグ

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

  • 第690回 BCCでeBPFのコードを書いてみる | gihyo.jp

    第688回の「eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する」ではBPF Compiler Collectionに付属の各種サンプルツールの使い方を紹介しました。今回はコンパイラーを活用して、自分でeBPF用コードを書くための基礎を学んでみましょう。 BCCのインストールとドキュメント 第688回も紹介したように、カーネル3.15で追加されその後拡充を続けている「eBPF」は任意の外部プログラムをカーネルの中で、より安全に実行できる仕組みです。カーネルモジュールを作る代わりに、独自のバイトコードをコンパイラーで生成し、それをカーネル内部にロード・実行することになります。これを使えばシステムコールの先のカーネルの状態を、プログラマブルに解析可能になります。 eBPF自体はカーネルの仕組みであり、ユーザーランドから使うためには、eBPF用のバイトコードにコンパイルする必要が

    第690回 BCCでeBPFのコードを書いてみる | gihyo.jp
    manabou
    manabou 2024/06/25
  • 第688回 eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する | gihyo.jp

    実行中のシステムの挙動を詳細にトレースする仕組みは、特に「よくわからない問題」に遭遇している時に重要です。今回はLinux向けのトレーシングツールの命とも言えるeBPFを利用した各種ツールを紹介します。 eBPFに関する記事が今回以降、数回にわたって解説されています。あわせてご覧ください。 第688回 eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する(今回の記事) 第690回 BCCでeBPFのコードを書いてみる 第692回 sysfsやbpftoolを用いたeBPFの活用 第694回 libbpfとclangでポータブルなBPF CO-REバイナリ作成 第695回 入門BPF CO-RE eBPFとBPF Compiler Collection 改めて言うまでもなく、Linuxカーネルもしくはカーネル上で動いている各種タスクのパフォーマンスや挙動を調べなくてはならない

    第688回 eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する | gihyo.jp
    manabou
    manabou 2024/06/25
  • 第810回 Ubuntu 24.04 LTSの変更点 | gihyo.jp

    adwaita-icon-theme, baobab, evince, gdm3, gnome-bluetooth-3-common, gnome-calculator, gnome-characters, gnome-clocks, gnome-control-center, gnome-disk-utility, gnome-font-viewer, gnome-initial-setup, gnome-keyring, gnome-remote-desktop, gnome-session-bin, gnome-settings-daemon, gnome-shell, gnome-system-monitor, gnome-text-editor, gnome-user-docs, mutter-common, nautilus, orca, tecla, ubuntu-sessi

    第810回 Ubuntu 24.04 LTSの変更点 | gihyo.jp
  • Software Design 2023年6月号

    2023年5月18日紙版発売 2023年5月18日電子版発売 B5判/192ページ 定価1,342円(体1,220円+税10%) Amazon 楽天ブックス ヨドバシ.com Fujisan(定期購読のみ) 電子版 Gihyo Digital Publishing Amazon Kindle 書のサポートページサンプルファイルのダウンロードや正誤表など 第1特集 クリーンアーキテクチャとは何か? 開発に活かせる設計のエッセンスを探る ボブおじさんの愛称で知られるロバート・C・マーチン氏が2012年に提唱した「クリーンアーキテクチャ」。2017年に書籍『Clean Architecture』(日語訳書は2018年)が刊行されたことで注目を集め,4つの円が同心円状に広がる図とともに有名になりました。ですが,用語のとらえ方の違いやその同心円図が一人歩きしてしまったことから,提唱された考え方

    Software Design 2023年6月号
  • gihyo.jp編集部におけるMarkdown記法 | gihyo.jp

    稿では、gihyo.jp編集部で利用しているMarkdownファイルの記述方法を主に解説します。 注意:gihyo.jp編集部内でのみ採用しているMarkdownの書き方をまとめた文書を、記事の体裁を取って公開したものです。なお、記事公開後に記述方法を追加・変更する可能性もあります。 Markdownとは? はじめに、筆者の把握している範囲でMarkdownについて概説しておきます。 近年は一般向けのウェブサービスやテキストエディタでも利用されてきているMarkdown。端的に言えば、テキストファイル上で文書を書くための構文です。文書の読みやすさに焦点を当てており、Markdown形式のテキストファイル(=Markdownファイル)をそのまま見れば文書とその構造が理解できるように、Markdown特有の編集記号や字下げを用いて表現します。また、MarkdownファイルをHTMLファイルに

    gihyo.jp編集部におけるMarkdown記法 | gihyo.jp
  • 第657回 オブジェクトストレージ、MinIOを使用する[クライアント編] | gihyo.jp

    今回は第655回で紹介したオブジェクトストレージサーバー、MinIOのクライアントとして使用できるソフトウェアを3つ紹介します。 MinIOのクライアント 第655回で述べたとおり、MinIOはオブジェクトストレージサーバーで、Amazon S3互換APIを採用しています。ということは、さまざまなS3互換APIに対応したソフトウェアが使用できるということです。もちろん世の中に数多あるS3互換API対応ソフトウェアをすべて紹介することはできないので、今回は3つだけ紹介します。 そのうちの一つはもちろんMinIOクライアントです。ローカルにある指定したフォルダーの中身をMinIOに同期する用途とします。 また、MinIOのバケットを直接マウントするためにs3fs-fuseを取り上げます。その名のとおりFUSEを使用していますが、GVfsでは対応しないため、別途インストールが必要です。 最後はD

    第657回 オブジェクトストレージ、MinIOを使用する[クライアント編] | gihyo.jp
  • Software Design 2020年7月号

    2020年6月18日紙版発売 2020年6月18日電子版発売 B5判/176ページ 定価1,342円(体1,220円+税10%) ただいま弊社在庫はございません。 Amazon 楽天ブックス ヨドバシ.com Fujisan(定期購読のみ) 電子版 Gihyo Digital Publishing Amazon Kindle 第1特集 一から学ぶログ分析 事業を成長させる分析基盤を作るには 顧客の行動や好みを的確にとらえ,サービス改善につなげたい̶そのひとつの手段として,Webサイトやゲームで日々蓄積されるユーザーの操作記録(ログ)が注目されています。リリース後の分析のために,サービスの開発段階からログや分析基盤について考慮されることもあるでしょう。 その一方で現場では,「せっかく分析基盤を作ったのに,使いにくい,利用されない」という悩みも尽きないようです。きちんと使われ成果を生み出す分

    Software Design 2020年7月号
  • 2020年5月20日 リモート接続でいつものシェルを! ssh越しでポータブルなシェル環境を実現する「xxh」 | gihyo.jp

    Linux Daily Topics 2020年5月20日リモート接続でいつものシェルを! ssh越しでポータブルなシェル環境を実現する「xxh」 リモートからホストにsshで接続する際、bashやzshなどいつも使っているシェルで操作したいというニーズを受けて、この5月から開発がスタートしたプロジェクトに「xxh」がある。ライセンスはBSD Licenseで、Python 3で開発されており、Linux(x86_64)上で動作する。なお開発者の名前も「xxh」とされている。 xxh/xxh : 🚀 Bring your favorite shell wherever you go through the ssh -GitHub xxhの原理はごくシンプルで、ホストに対し、ポータブルで密閉されたシェル環境をアップロードし、リモートマシンからssh越しで利用可能にするというもの。rootア

    2020年5月20日 リモート接続でいつものシェルを! ssh越しでポータブルなシェル環境を実現する「xxh」 | gihyo.jp
  • 2019年5月31日 Fedora、RPMパッケージの圧縮アルゴリズムをxzからZstdに変更へ | gihyo.jp

    Linux Daily Topics 2019年5月31日Fedora、RPMパッケージの圧縮アルゴリズムをxzからZstdに変更へ リリースされてからちょうど1ヵ月が経過した「Fedora 30」だが、プロジェクトチームはすでに次期リリース「Fedora 31」に向けて数多くのアップデートを検討中だ。その中でも比較的大きな動きとして、RPMパッケージの圧縮アルゴリズムを長年使ってきたxzからZstdへと変更する可能性が強くなってきている。 Changes/Switch RPMs to zstd compression -Fedora Project Wiki この提案を行ったのはRed Hatでプリンシパルソフトウェアエンジニアを務めるDaniel Machで、現在、バイナリRPMの圧縮に使われているxz(レベル2)をZstd(レベル19)に変更することで、解凍時に劇的なパフォーマンス向

    2019年5月31日 Fedora、RPMパッケージの圧縮アルゴリズムをxzからZstdに変更へ | gihyo.jp
  • 日本の科学技術計算コミュニティが目指すべき姿 ―SciPy Japan 2019レポート | gihyo.jp

    4月23~24日、東京でSciPy Japan 2019が開催されました。SciPyはNumPy、matplotlib、Jupyterなど科学計算系のPythonパッケージの開発者やユーザー向けコミュニティで、アメリカでは、2002年から毎年カンファレンスが開催されています。今回は日で初めてSciPyのカンファレンスが開催されましたが、5か国から90名が参加する盛況ぶりでした。現在、多くの注目を集めているTensorFlowやChainerなどのディープラーニング用のPythonパッケージのほか、Jupyter NotebookやApache Arrow、Daskなどの技術トピックにふれる発表もあり、濃厚な2日間となったカンファレンスの内容をレポートします。 1日目:初心者向けチュートリアル 「Hands-on TensorFlow 2.0」 1日目のチュートリアルは、TensorF

    日本の科学技術計算コミュニティが目指すべき姿 ―SciPy Japan 2019レポート | gihyo.jp
  • 第459回 LXDを使ってDockerコンテナをマイグレーション | gihyo.jp

    第458回ではUbuntuにおけるDockerのインストール方法を紹介しました。ところでDockerと同じコンテナ技術を利用したソフトウェアとして「LXD」が存在します。このLXDとDockerは排他的な存在ではなく、用途にあわせて組み合わせて使うと便利なツールです。そこで今回はLXDで作った仮想環境上でDockerコンテナを動かす方法を紹介します。 LXDの上でDockerを使う Dockerと同様にカーネルのコンテナ技術を利用したソフトウェアのひとつにLXDが存在します。Dockerがひとつのコンテナでひとつのアプリケーションを動かす「アプリケーションコンテナ」としての利用をメインに据えているのに対して、LXDは軽量な仮想マシンのように使える「システムコンテナ」としての使い方を提案していることがもっとも大きな違いです[1]⁠。 両者の具体的な違いを見ていきましょう。ちなみに個々の環境や

    第459回 LXDを使ってDockerコンテナをマイグレーション | gihyo.jp
  • 第475回 廉価なFPGA開発ボード「Zybo」をUbuntuからプログラムする | gihyo.jp

    みなさん、FPGA使ってますか? スマートフォンの普及によって、ARMデバイスは当に身近な存在になりました。近頃のスマートフォンは一昔前では考えられないほどいいCPU/SoCを搭載しているため、Twitterから3Dゲームに至るまで、手のひらにおさまる大抵の用途において十分に真価を発揮します。ところが「ひたすら行列計算を行いたい」「⁠画像認識や機械学習をより低消費電力で回したい」といった、ちょっと特殊なシチュエーションになると、スマホに搭載されているARM CPU/SoCでは遠からず「性能の限界」がやってきます。この限界を突破するために、FPGAに手を出すのは生き物のサガと言っても差し支えないでしょう。すみません、ちょっと言い過ぎました。 今回はそんな「ちょっと特殊なシチュエーション」に憧れる人に向けて、廉価なFPGA開発ボードの使い方を紹介します。 Digilent製FPGA開発ボード

    第475回 廉価なFPGA開発ボード「Zybo」をUbuntuからプログラムする | gihyo.jp
  • 第2回 大量トラフィックを支えるインフラ~独自プロトコル、ファイルシステムの実装もいとわない!~ | gihyo.jp

    ドワンゴのエンジニア魂 第2回大量トラフィックを支えるインフラ~独自プロトコル、ファイルシステムの実装もいとわない!~ 大量のユーザーを抱える「ニコニコ動画(ニコ動⁠)⁠」⁠「⁠ニコニコ生放送(ニコ生⁠)⁠」をさらに進化させるべく、ドワンゴでは土台となる基盤を見直し、大幅なアップデートを実施した。ドワンゴのエンジニアである原耕司氏(写真1⁠)⁠、太田健氏(写真2⁠)⁠、川平航介氏(写真3)の3名にお話を伺い、プロトコルや分散ファイルシステムまで独自に開発したという、このプロジェクトの真相に迫った。 将来のサービス拡充に向けて土台を整備 ――今回、サービスの基盤部分を大幅に刷新された理由は何でしょうか。 原:ニコ動は、サービスの提供開始から時間が経ったことで裏側のコードが複雑になっており、これから新たな機能をバンバン追加するのが厳しい状況になっていました。そこで、将来的なサービス拡充に対応で

    第2回 大量トラフィックを支えるインフラ~独自プロトコル、ファイルシステムの実装もいとわない!~ | gihyo.jp
  • 第291回 tmux/GNU Screenのラッパーコマンド、byobuを使いこなす(2013年版) | gihyo.jp

    Ubuntu Weekly Recipe 第291回tmux/GNU Screenのラッパーコマンド、byobuを使いこなす(2013年版) Ubuntuには、byobuというtmux/GNU Screenのラッパーコマンドが準備されています。これらのコマンドをうまく利用することで、ターミナル上での作業効率を大きく引き上げることができます。今週は、2013年現在のbyobuの利用方法を紹介します。 Byobu Ubuntuでは、GNU Screenやtmuxのラッパーコマンドである「byobu」を利用することができます。デスクトップ版には標準では導入されていませんが、次のように操作することで簡単に導入できます(サーバー版ではデフォルトで導入されています⁠)⁠。 $ sudo apt-get update $ sudo apt-get install byobu GNU Screenとtmu

    第291回 tmux/GNU Screenのラッパーコマンド、byobuを使いこなす(2013年版) | gihyo.jp
  • 2016年のSelenium事情を総ざらい―「第4回Selenium勉強会」レポート | gihyo.jp

    2016年12月18日、株式会社リクルートジョブズのご協力により、グラントウキョウサウスタワーで日Seleniumユーザーコミュニティ主催の「第4回日Seleniumユーザーコミュニティ勉強会」が開催されました。 今回の勉強会では、Selenium 3やAppium 1.6といった最新の技術情報や、イギリスで開催されたカンファレンスの参加報告を筆頭に、業務の中でいかにテスト自動化に取り組んだかが紹介された数々の事例や、話題の人工知能を使った開発中のツールの紹介など、日々の業務でテスト自動化に取り組んでいる技術者ならキャッチしておきたいトピックが扱われました。セッション中はTwitterのハッシュタグ「#seleniumjp」を付けたツイートも活発で、Togetterにまとめられた関連ツイートを見ると会場の熱気が伝わってきます。 このレポートでは、進歩の著しいテスト自動化の現在と未来が見

    2016年のSelenium事情を総ざらい―「第4回Selenium勉強会」レポート | gihyo.jp
  • 2017年のCI/CDの動向 | gihyo.jp

    あけましておめでとうございます。ソフトウェア開発をめぐる環境は相変わらず日進月歩です。この変化に伴って、ソフトウェア開発そのもののあり方も変化を続けています。稿では、少し大きな視点から継続的インテグレーション(CI⁠)⁠・継続的デリバリ(CD)の最近の動向を紹介します。 CI/CDの大きなうねり 筆者がJenkinsに携わって12年になります。かつて、CI/CDの取り組みは、現在の機械学習やスケールアウト技術のような将来の可能性が注目される若い技術でした。ここ数年、この若い技術は、広く産業界で大規模に組織がかりで展開される成熟した技術に変貌してきました。 この背景にあるのは、ソフトウェア開発・運用全般における自動化のさらなる浸透です。このような自動化の進展は2つの側面から考えることができます。一つは、ソフトウェア開発に必要な様々な作業それぞれの「部品の自動化」という側面です。もう一つは、

    2017年のCI/CDの動向 | gihyo.jp
  • Docker vs. CoreOS コンテナ戦争とは何だったのか? ―Linux Foundationが「Open Source Forum 2016」でOSSプロジェクト最新状況を紹介 | gihyo.jp

    Docker vs. CoreOS コンテナ戦争とは何だったのか? ―Linux Foundationが「Open Source Forum 2016」でOSSプロジェクト最新状況を紹介 Linux Foundationは11月15日、日におけるオープンソース活用を推進する活動の一環として「Open Source Forum 2016」を横浜にて開催しました。 Linuxの普及をサポートするNPOであるLinux Foundationは、これまで毎秋に国内外のユーザ企業向け技術カンファレンスとして「Enterprise User's Meeting」を開催してきました。Linux Foundation 日担当VPの福安 徳晃氏は、毎年改善を繰り返してきた「Enterprise User's Meeting」を今年から「Open Source Forum」として始動することになったといい

    Docker vs. CoreOS コンテナ戦争とは何だったのか? ―Linux Foundationが「Open Source Forum 2016」でOSSプロジェクト最新状況を紹介 | gihyo.jp
  • 和田卓人さん、PHPで堅牢なコードを書く—例外処理、表明プログラミング、契約による設計 〜PHPカンファレンス2016 | gihyo.jp

    PHPカンファレンス2016 レポート 和田卓人さん、PHPで堅牢なコードを書く—例外処理、表明プログラミング、契約による設計 〜PHPカンファレンス2016 2016年11月3日にPHPカンファレンス2016が開催されました。稿では、ゲストスピーカーである和田卓人さんによる講演「PHP7で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計」についてレポートします。 PHP7では例外や表明の機能が大幅に見直され、強化されました。この講演では、例外処理を設計する際の基的な考え方や、表明(assertion)の使い方、そして表明と例外を使い分け、堅牢なコードに導くための設計手法「契約による設計(Design by Contract⁠)⁠」の考え方を説明しました。 導入 はじめに、和田さん自身が監訳に関わった『SQLアンチパターン』に掲載されているコードを、よりひどくさせた

    和田卓人さん、PHPで堅牢なコードを書く—例外処理、表明プログラミング、契約による設計 〜PHPカンファレンス2016 | gihyo.jp
  • 第424回 GUIプログラムをPython/Ruby/ECMAScriptで書く | gihyo.jp

    先週の記事に対するお詫び 前回の記事において、Ubuntuプロジェクトでのパッケージの取り扱いについて、筆者の事実誤認による誤った記述がありました。主要な誤りは2点で、パッケージの分類基準と、Feature Freezeの説明です。他にも説明の誤りがあり、全面的に内容を修正しました。読者の皆様にはご迷惑をおかけしたことをお詫びいたします。 Ubuntuのデスクトップ環境は、ウェブブラウザなどユーザーが必要とするソフトウェアがデフォルトでインストールされているため、そのままでも十分に便利です。主要なシステム設定もマウスで行えるため、Unixライクな環境にありがちな「真っ黒な画面にコマンドをひたすら入力する」という、すなわちコマンドラインによる操作をしなくても一通りのことができます。 しかし一度困難に陥ると、真っ黒な画面での操作すなわちコマンドラインによる操作を要求されます。簡単なコマンドだっ

    第424回 GUIプログラムをPython/Ruby/ECMAScriptで書く | gihyo.jp
  • ドキュメントの構造化による、良いドキュメントの作成方法 | gihyo.jp

    あけましておめでとうございます。 ソフトウェアを開発し公開する場合、ドキュメント(マニュアル)を作成することが求められます。しかし、良いドキュメントを作成する方法というのはあまり知られていません。どのようにすれば良いドキュメントを作成できるのでしょうか? 稿では、ソフトウェアと同じくドキュメントを要素と性質に構造化することで、良いドキュメントを作成する方法を紹介します。そして、その要素と性質に対してアプローチを行っているESDocというJavaScript(ECMAScript2015)向けのドキュメンテーションツールについても簡単に紹介します。 対象とするドキュメント ドキュメントと一口にいっても仕様書、設計書、マニュアルなど様々な種類が存在します。そこで、稿が対象とするドキュメントを「ライブラリやフレームワークなどを開発するソフトウェア開発者自身が、そのソフトウェアの使い方をエンド

    ドキュメントの構造化による、良いドキュメントの作成方法 | gihyo.jp