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

  • GitHub CI/CD実践ガイド ――持続可能なソフトウェア開発を支えるGitHub Actionsの設計と運用

    このの概要 書はCI/CDの設計や運用について,GitHubを使ってハンズオン形式で学ぶ書籍です。GitHub Actionsの基構文からスタートし,テスト・静的解析・リリース・コンテナデプロイなどを実際に自動化していきます。あわせてDependabot・OpenID Connect・継続的なセキュリティ改善・GitHub Appsのような,実運用に欠かせないプラクティスも多数習得します。 実装しながら設計や運用の考え方を学ぶことで,品質の高いソフトウェアをすばやく届けるスキルが身につきます。GitHubを利用しているなら,ぜひ手元に置いておきたい一冊です。 こんな方におすすめ GitHubは使っているけれど,プルリクエストぐらいしか利用していない CI/CDというキーワードは知っているけれど,自分で設計したことはない GitHub Actionsには触れているけれど,正直雰囲気で運

    GitHub CI/CD実践ガイド ――持続可能なソフトウェア開発を支えるGitHub Actionsの設計と運用
    toshikish
    toshikish 2024/05/17
  • エンジニアと伴走するDevRelの存在――モノづくりからコトづくりを支える技術~@941こと櫛井優介氏に訊く | gihyo.jp

    まず、gihyo.jpにもお世話になったものとして、YAPC::AsiaとISUCONがありますね。どちらも馮さんにご取材いただいたり、また、ご登壇をお願いしたこともありました。 それぞれを話すと、まずYAPC::Asiaは、2006年から開催が行われている中で、2010年から企業に所属する立場として、JPAの理事である牧さんとともに運営をすることになったんです。すでに一大技術イベントとして確立され、また、当時の日のサービスを支えていたスターエンジニアを筆頭に、Perl Mongerと呼ばれる多くのPerlエンジニアたちが参加していたのは認識していました。 一方で、イベントの回数が増え規模が大きくなるにつれ、開催コスト(経済的・人的など)が大きくなっていたのは知っていました。YAPC::Asiaというエンジニアにとって大事な場をサポートすることは、実はエンジニアそのものをサポートすること

    エンジニアと伴走するDevRelの存在――モノづくりからコトづくりを支える技術~@941こと櫛井優介氏に訊く | gihyo.jp
    toshikish
    toshikish 2024/05/15
  • Vivliostyleで市販書籍とそっくりに組んでみよう | gihyo.jp

    上達のコツはやはり反復練習!ということで、第4回では、InDesignで作られた書籍のPDF(なければプリントアウト)をもとに、紙面デザインをそっくりに再現する方法について解説します。何度か作成していくうちに、Vivliostyleの可能性やクセがつかめてくるはずです。 CSS組版を覚える早道は……? 筆者は2023年に『Web技術で「」が作れるCSS組版 Vivliostyle入門』を執筆しましたが、これを読んだだけで自在にを組めるようになるかといえば、残念ながらそう簡単なものではないというのが正直なところです。 では、どうやってCSS組版を勉強すればいいのでしょうか? ひるがえって、自分がたどった道のりを思い出してみると、CSS組版とVivliostyleを使い始めたのは、書籍の原稿整理の一環として、書籍デザイン通りの字数・行数をCSS組版で再現したのが始まりでした。何度もそれを繰

    Vivliostyleで市販書籍とそっくりに組んでみよう | gihyo.jp
    toshikish
    toshikish 2024/05/14
  • 第6回 アクセシビリティを必要とする人に会う | gihyo.jp

    連載は『Webアプリケーションアクセシビリティ─⁠─今日から始める現場からの改善』の第7章「アクセシビリティの組織導入」を公開するものです。 改正された障害者差別解消法や、デジタル庁の取り組みからの影響を受け、アクセシビリティ向上への機運は日ごとに高まっているように感じます。著名な企業がアクセシビリティへのスタンスを表明するケースも増えてきました。 しかし、こうした情報が目に入っているのは、あなたがアクセシビリティに関心がある側の人だからです。多くの場合、社内でのアクセシビリティへの意識はまだまだ高くないのが実態です。 個人や有志による非公式な取り組みでも、アクセシビリティは徐々に改善することは可能です。しかし、いずれは限界を迎えます。企業が提供するWebサイトやWebアプリケーションは組織で開発されており、大規模であり、かつ成長していくからです。 継続的に取り組み、成果を出し続けるため

    第6回 アクセシビリティを必要とする人に会う | gihyo.jp
    toshikish
    toshikish 2024/05/04
  • SSL/TLS実践入門 ──Webの安全性を支える暗号化技術の設計思想

    2024年4月25日紙版発売 2024年4月25日電子版発売 市原創,板倉広明 著 A5判/456ページ 定価3,740円(体3,400円+税10%) ISBN 978-4-297-14178-3 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 SSL/TLSは,通信の秘密を守るために利用されている通信プロトコルです。HTTPSやHTTP/3にも利用されており,今日のWebでは利用が一般的になっています。書では,その最新バージョンであるTLS 1.3のしくみと,その使い方を解説します。SSL/TLSは公開されている実装例などを真似すれば基

    SSL/TLS実践入門 ──Webの安全性を支える暗号化技術の設計思想
    toshikish
    toshikish 2024/04/17
  • WEB+DB PRESS総集編[Vol.1~136]

    2024年4月18日紙版発売 WEB+DB PRESS編集部 編 B5判/128ページ 定価3,300円(体3,000円+税10%) ISBN 978-4-297-14156-1 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 書のサポートページサンプルファイルのダウンロードや正誤表など 『WEB+DB PRESS』全号のバックナンバーを収録 Webアプリケーション開発のためのプログラミング技術情報誌「WEB+DB PRESS」は,2000年から2023年までの23年間という長きにわたり,現場で活躍するWeb開発者の方々に向けた技術情報を提供してまいりました。そして2023年8月発売のVol.136をもって,隔月刊誌としては休刊いたしました。 総集編には,WEB+DB PRESSVol.1から隔月刊最終号となるVol.136までのバックナン

    WEB+DB PRESS総集編[Vol.1~136]
    toshikish
    toshikish 2024/04/09
  • xzパッケージに仕込まれた3年がかりのバックドア、スケール直前に見つけたのはMicrosoftの開発者 | gihyo.jp

    Linux Daily Topics xzパッケージに仕込まれた3年がかりのバックドア⁠⁠、スケール直前に見つけたのはMicrosoftの開発者 “アップストリームのxzリポジトリとxz tarballsはバックドア化されている(The upstream xz repository and the xz tarballs have been backdoored)⁠”―2024年3月29日、Microsoftに所属する開発者 Andres Freundが「Openwall.com」メーリングリストに投稿したポストは世界中のオープンソース関係者に衝撃を与えた。 backdoor in upstream xz/liblzma leading to ssh server compromise -oss-security 主要なLinuxディストリビューションにはほぼ含まれているデータ圧縮プログラ

    xzパッケージに仕込まれた3年がかりのバックドア、スケール直前に見つけたのはMicrosoftの開発者 | gihyo.jp
    toshikish
    toshikish 2024/04/03
  • 第807回 Vaultwardenでパスワードをセキュアに管理しよう | gihyo.jp

    パスワードの安全な管理は頭の痛い問題ですよね。そもそも今時であれば、パスワードレス認証に移行すべきではあるのでしょう。ですが世の中のサービスすべてが、すぐにパスワードレス認証に対応してくれるわけでもありません。まだまだしばらく人類とパスワードの戦いは続きそうです。 パスワードを少しでも安全に使うためには、「⁠十分に複雑で長い文字列を使う」「⁠使い回しを避ける」といった対策が必須です。しかし十分な強度のパスワードを、サービスの数だけ暗記するのは、人間の頭脳では困難です。 図1 パスワードの暗記を諦めた人類は、こうしたアイテムに手を出しがちである そこで登場するのが「パスワードマネージャー」です。筆者は以前より、第508回でも紹介したpassword-storeを愛用していました。これはGPGで暗号化したテキストファイルをGitで管理するための、シェルスクリプトで実装されたパスワードマネージャ

    第807回 Vaultwardenでパスワードをセキュアに管理しよう | gihyo.jp
    toshikish
    toshikish 2024/04/03
  • 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
    toshikish
    toshikish 2024/03/29
  • 高性能・高効率なAIチップ“MN-Core 2”の設計アプローチ――Preferred Networksによる新しいハードとソフトの役割分担 | gihyo.jp

    高性能⁠⁠・高効率なAIチップ“MN-Core 2”の設計アプローチ ――Preferred Networksによる新しいハードとソフトの役割分担 Preferred Networksという企業 Preferred Networks社(PFN)は2014年に創業した深層学習技術を軸とした企業です。PFNが開発したChainer(PFNは2019年にChainer(チェイナー)から PyTorchに移行すると発表し、開発を終了した)は、このころに深層学習を試した人にはなじみ深いツールでしょう。2017年にトヨタから105億円の出資を受けたり、Green500に何度も選出されたりと、深層学習関連ではトップランナーの1つと思います。 筆者は2023年の12月にPFNを訪問し、土井裕介氏(計算基盤担当VP)に取材する機会を得ました。土井氏は早くからPFNに参加したスタッフの1人でもあり、アーキテク

    高性能・高効率なAIチップ“MN-Core 2”の設計アプローチ――Preferred Networksによる新しいハードとソフトの役割分担 | gihyo.jp
    toshikish
    toshikish 2024/03/22
  • 第804回 mininetでお手軽ネットワークテスト環境を構築する | gihyo.jp

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

    第804回 mininetでお手軽ネットワークテスト環境を構築する | gihyo.jp
    toshikish
    toshikish 2024/03/13
  • Google Cloudのサーバーレス製品を活用したアーキテクチャ | gihyo.jp

    連載は、Google Cloudのアプリ開発とDBプロダクトにおけるスペシャリスト達が、Google Cloudプロダクトを利用した、クラウドネイティブな開発を実践する方法を解説しています。 第5回の今回は、Google Cloudのサーバーレス製品を活用したアーキテクチャに焦点を当て、アプリケーション開発における実装パターンを実践的ないくつかのユースケースにあわせて紹介をします。また、サービスの選定にまよったときの判断のポイントも紹介します。 基のアーキテクチャパターン まず最初に、クラウドアーキテクチャセンターを紹介します。Google Cloudでワークロードをビルドまたは移行するためのリファレンスアーキテクチャ、ガイダンス、ベストプラクティスがまとまっているページです。クラウドのアーキテクチャを検討する際に、こまったらここを参考にするとヒントが詰まっています。 Webアプリケー

    Google Cloudのサーバーレス製品を活用したアーキテクチャ | gihyo.jp
    toshikish
    toshikish 2024/03/05
  • 人間中心設計からAI中心設計へ ~AIエージェントによって変わるソフトウェアのパラダイム | gihyo.jp

    チャット型ソフトウェアからAIアシスタント型ソフトウェアへの変化 OpenAIが発表したChatGPTの登場から、一年以上が経とうとしています。ChatGPT API公開後の初期段階では、人間とAI(特にここでは大規模言語モデル)との単純な対話を提供するソフトウェアが中心でした。しかし今では、OpenAI GPTs(以下GPTs)やMicrosoft Copilot(以下Copilot)を代表とする、AIによる外部データへのアクセスやAPI通信によって人間を支援する「AIアシスタント型」のソフトウェアが台頭してきています。 GPTsは、ユーザー自身が好みのAIアシスタントを制作できる仕組みです。ChatGPTは汎用的な仕組みのため、特定の業務を行わせようとすると、役割や前提を含んだ長々としたプロンプトを入力する必要がありました。その点でGPTsは、AIに対する指示だけでなく、AIが参照可能

    人間中心設計からAI中心設計へ ~AIエージェントによって変わるソフトウェアのパラダイム | gihyo.jp
    toshikish
    toshikish 2024/03/01
  • 第9回 自動テストの実行結果 ~意思決定と行動を促す情報としての役割~ | gihyo.jp

    WEB+DB PRESS休刊に伴い、今回からWeb上で連載を継続させていただくことになりました。今後とも何卒よろしくお願いします。さて、あらためて連載の最近の連載のテーマを振り返りますと、それは「信頼性の高い実行結果に短い時間で到達する自動テスト群を組み上げ、ソフトウェアの成長を持続可能なものにする」となります。今回はそのなかから「実行結果」に光を当てます。 多くのテスティングフレームワークには実行結果の出力フォーマットを変更するオプションやプラグイン機構があり、自動テストはその実行結果を様々なフォーマットで出力します。それらテストの実行結果は「情報」であり、情報の役割とは意思決定と行動を促すことです。テストの実行結果が促す行動とはデプロイ、マージ、コードの修正などです。今回は、そのようなテスト実行結果出力の種類と目的についてまとめます。 信号機としてのテスト出力 意思決定から行動へつな

    第9回 自動テストの実行結果 ~意思決定と行動を促す情報としての役割~ | gihyo.jp
    toshikish
    toshikish 2024/02/29
  • 実践Next.js ——App Routerで進化するWebアプリ開発

    このの概要 最新のNext.jsを現場で使うために実践的な知識を詰め込んだ一冊です。フレームワークの基礎はもちろん,パフォーマンスを上げるための知識や関連ライブラリまで,詳細なサンプルコードをもとに解説していきます。 こんな方におすすめ 最新のNext.jsに入門したいエンジニアNext.jsに多少の経験があるが,より良い使い方を知りたいエンジニア 第1章:Next.jsの基礎 1.1:Next.jsプロジェクトの始め方 1.2:アプリケーションのルーティング 1.3:SPAならではのナビゲーション 1.4:ネスト可能なレイアウト 第2章:Server Componentとレンダリング 2.1:Server ComponentとClient Component 2.2:Server Componentのデータ取得 2.3:動的データ取得と静的データ取得 2.4:Routeのレンダリング

    実践Next.js ——App Routerで進化するWebアプリ開発
    toshikish
    toshikish 2024/02/28
  • LINEの「あけおめLINE」過負荷対策(3) ― 「発生可能性の低減」におけるキャパシティプランニング | gihyo.jp

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

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

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

    M:Nスレッドによる軽量な並行処理への挑戦 | gihyo.jp
    toshikish
    toshikish 2024/01/30
  • ゲーム開発プロジェクト管理の基本

    2024年2月10日紙版発売 2024年2月10日電子版発売 下田紀之 著 A5判/208ページ 定価2,200円(体2,000円+税10%) ISBN 978-4-297-14004-5 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 ゲーム開発プロジェクトの管理・マネジメントについて,その根幹となる基礎を解説する書籍です。 多くの人間が関わる企業でのゲーム開発では,目的や予定を建てて全体を管理していくことが必要不可欠になります。 書では新規にゲームを製作する初期開発プロジェクトを題材に,ゲームという「目的が浮動する」プロジェクトの構造およ

    ゲーム開発プロジェクト管理の基本
    toshikish
    toshikish 2024/01/26
  • 保守しやすく変化に強いソフトウェアを支える柱 自動テストとテスト駆動開発、その全体像 ~Software Design 2022年3月号「そろそろはじめるテスト駆動開発」より | gihyo.jp

    保守しやすく変化に強いソフトウェアを支える柱 自動テストとテスト駆動開発⁠⁠、その全体像 ~Software Design 2022年3月号「そろそろはじめるテスト駆動開発」より 今回、Software Design 2022年3月号 第2特集「そろそろはじめるテスト駆動開発 JavaScriptでテストファーストに挑戦」の第1章「保守しやすく変化に強いソフトウェアを支える柱 自動テストとテスト駆動開発、その全体像」をサイトに掲載します。第2章以降については、誌『Software Design 2022年3月号』電子版(Gihyo Digital Publishing、Amazon Kindle)をご購読いただければ幸いです。 第1章では、混同されることの多い自動テスト関係の概念を、自動テスト、テストファースト、テスト駆動開発の3つの段階に分け、それぞれの効果や注意点を説明します。ソフ

    保守しやすく変化に強いソフトウェアを支える柱 自動テストとテスト駆動開発、その全体像 ~Software Design 2022年3月号「そろそろはじめるテスト駆動開発」より | gihyo.jp
    toshikish
    toshikish 2024/01/16
  • Pythonの構造的パターンマッチングのさらに便利なパターン紹介 | gihyo.jp

    鈴木たかのり(@takanory)です。今月の「Python Monthly Topics」では、第1回で紹介したPython 3.10の新機能「構造的パターンマッチング(Structural Pattern Matching⁠)⁠」の続きをお届けします。 前回は構造的パターンマッチング全体の説明、いくつかのパターンをコード例を交えて紹介しました。今回はその続きとして、前回紹介できなかった他のパターンについても紹介します。 Python 3.10の新機能:構造化パターンマッチング | gihyo.jp 構造的パターンマッチングとは 前回の繰り返しになりますが、この記事で初めて構造的パターンマッチングを知った人に向けて、簡単に紹介します。詳細は上記の記事を参照してください。 構造的パターンマッチングはPython 3.10で新しく導入された文法です。Python 3.10は2021年10月に

    Pythonの構造的パターンマッチングのさらに便利なパターン紹介 | gihyo.jp
    toshikish
    toshikish 2024/01/14