タグ

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

  • なんとなくから脱却する GitHub Actionsグッドプラクティス11選 | gihyo.jp

    記事のテーマはGitHub Actionsです。個人的に「もっと早く知りたかった!」と考えているグッドプラクティスを、厳選してお届けします。想定読者は次のとおりです。 普段GitHub Actionsを雰囲気で運用している人 GitHub Actionsをコピペや生成AIで乗り切っている人 他者が書いたコードの意味をより深く理解したい人 記事でGitHub Actionsの基は説明しません。グッドプラクティスを含めて基礎から学びたい人は、拙著『GitHub CI/CD実践ガイド』を読んでみてください。GitHub Actionsの基構文から運用のコツまで、網羅的に解説しています。さて書籍紹介はこれぐらいにして、さっそく題へ進みます。 GitHub Actionsの設計指針 GitHub ActionsはCI/CDや各種自動化で役立つ、汎用的なワークフローエンジンです。一般的に長期

    なんとなくから脱却する GitHub Actionsグッドプラクティス11選 | gihyo.jp
  • Rustで学ぶWebAssembly――入門からコンポーネントモデルによる開発まで

    2024年10月10日紙版発売 清水智公 著 B5変形判/256ページ 定価3,300円(体3,000円+税10%) ISBN 978-4-297-14413-5 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 電子版 Amazon Kindle honto このの概要 Webブラウザー上でプログラムを高速に実行するための技術として開発されたWebAssemblyWasm)ですが,近年では「特定のプログラミング言語・アーキテクチャに依存しない」「プログラムをサンドボックス内で安全に実行できる」という強みに注目が集まっています。さらに,新たに導入される予定の「コンポーネントモデル」によって,大規模なプロジェクトでもWebAssemblyを利用しやすくなる環境が整いつつあります。書では,プログラミング言語としてRustを採用し,以下の3つの観

    Rustで学ぶWebAssembly――入門からコンポーネントモデルによる開発まで
  • つくって、みなおす、デザインシステム——現場での合意形成から設計、運用まで

    このの概要 サービスやプロダクトのデザインをまとまりのあるものにするための「デザインシステム」の重要性が知られるようになった昨今ですが,有効なデザインシステムを作る流れや,実効的に運用・見直しを行っていくための知見はまだまとまっていない状況にあります。書ではそのような「生きたデザインシステムを作り運用するためのノウハウ」を一気通貫で解説します。 こんな方におすすめ デザインシステムに興味のある方 特に,デザインシステムの導入・運用を検討しているがどのように進めていけばよいかのイメージがわかない現場のデザイナーやエンジニア 第1章:デザインシステムとは 理念とデザインシステムの関係性 デザインシステムの構成要素 公開されているさまざまなデザインシステム 設計・導入から運用までの流れ 第2章:デザインシステムが必要なとき デザインシステムの導入で期待できること デザインシステムの展開・運用

    つくって、みなおす、デザインシステム——現場での合意形成から設計、運用まで
  • コード×AIーソフトウェア開発者のための生成AI実践入門

    このの概要 GitHub CopilotやChatGPTなど生成AIによるコード生成やコードリーデイング支援が流行っています。これらは破壊的なイノベーションで,いずれはすべての開発者や企業が導入するものです。 ただ,現状では生成AI×コードを推進・導入している企業は多くはなく,さらに活用法については手探りの状況です。 書では生成AI×コードでなにができるか,どうすればよりよく活用できるかを解説します。しっかりと活用していくための知識と,現場で活用できる実践が身に付く必携の一冊です。 書のサンプル 書の紙面イメージは次のとおりです。画像をクリックすることで拡大して確認することができます。 1. 生成AIエンジニアリングの常識を変える 1. 変化は「今」起こっている — さて,どうする? 2. 生成AIへの過度な期待と現実のギャップ 3. プロンプトエンジニアリングのテクニックはあま

    コード×AIーソフトウェア開発者のための生成AI実践入門
  • 第819回 Ubuntu 24.04 LTSのリモートデスクトップを深掘りする | gihyo.jp

    今回はリモートデスクトップ機能に関して、Ubuntu 24.04 LTSでの挙動、またコマンドラインでの設定方法を解説します。 リモートデスクトップ機能の変更点 リモートデスクトップに関して、22.04 LTSに実装(バックポート)されるまでのドタバタは第713回で詳しく述べたので、繰り返しません。今から振り返ると、このドタバタは24.04 LTSリリースのドタバタと比べるとまだかわいいものだった気もします。 それはさておき、リモートデスクトップ機能を簡単に説明すると、別のPCからデスクトップを閲覧また操作するための機能です。 Ubuntu 22.04 LTSから23.10までのリモートデスクトップ機能の変更点は、VNC機能が削除されたことくらいです。すなわち、プロトコルとしてRDPのみのサポートになりました。 23.10から24.04 LTSの変更点は、リモートデスクトップ機能の設定箇所

    第819回 Ubuntu 24.04 LTSのリモートデスクトップを深掘りする | gihyo.jp
  • 第818回 Ubuntuデスクトップのインストールを半自動化しよう! | gihyo.jp

    OSのインストールというのは面倒なものです。いや、そもそも普通の人はOSのインストールなんて一生に一度あるかないかのビッグイベントですが、今これを読んでいる時点で「OSに関する普通」の道を踏み外していますので、安心して「OSのインストールは面倒」だと思ってください。それは「インストールが簡単」と言われるUbuntuでも同じで、インストール設定を少し凝るようにすればするほど手順は複雑になりますし、さらにインストール後の環境のセットアップも必要です。 今回はそんな面倒さを少しでも和らげられるようUbuntu 24.04 LTSのデスクトップ版で正式に搭載された、「⁠自動インストール機能」について紹介しましょう。 図1 Ubuntu 24.04 LTSで追加された自動インストール機能 サーバー版の自動インストール機能を用いた自動化方法 自動インストール機能そのものは、第810回の「Ubuntu

    第818回 Ubuntuデスクトップのインストールを半自動化しよう! | gihyo.jp
  • Web API設計実践入門 ――API仕様ファーストによるテスト駆動開発

    2024年7月25日紙版発売 2024年7月25日電子版発売 柴田芳樹 著 A5判/208ページ 定価2,860円(体2,600円+税10%) ISBN 978-4-297-14293-3 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto このの概要 書は,著者が1993年から約30年間経験してきたAPI仕様の作成,2003年から20年間経験してきたテストファースト開発/テスト駆動開発の知見をまとめたものであり,一般的なソフトウェア開発者が習得することが容易ではない事柄を,書を通して学び,実践してもらうことを目的としています。 書が提唱する「API仕様ファースト開発」はWebサービスにおける大域的なテスト駆動開発の

    Web API設計実践入門 ――API仕様ファーストによるテスト駆動開発
  • Microsoft、生成AIのプロンプト解釈を最適化するフレームワーク「SAMMO」を発表 | gihyo.jp

    Microsoft⁠⁠、生成AIのプロンプト解釈を最適化するフレームワーク「SAMMO」を発表 Microsoftは2024年4月18日、生成AI/大規模言語モデル(LLM)で長文のプロンプトを効率的に処理できるオープンソースのフレームワーク「SAMMO」を発表した。 SAMMO: A general-purpose framework for prompt optimization -Microsoft Research Blog GPT-4などの新世代の言語モデルでは、長い入力テキストを処理する機能が向上している。このため、より長文でリッチな文脈と詳細な指示を言語モデルに入力することが可能となった。しかし、この文脈を新しいタスクに適応させるための迅速なエンジニアリングが必要とされている。 長文のプロンプトを処理する一般的な手法としてRAG(検索拡張生成)がある。RAGは特定の入力例に基

    Microsoft、生成AIのプロンプト解釈を最適化するフレームワーク「SAMMO」を発表 | gihyo.jp
  • Fedora 41ではX.Orgセッションをデフォルトから削除へ ―加速するX.Orgからの脱却 | gihyo.jp

    Linux Daily Topics Fedora 41ではX.Orgセッションをデフォルトから削除へ ―加速するX.Orgからの脱却 GNOMEのウィンドウマネージャとしてWaylandコンポジタのMutterが普及するにしたがい、長くディスプレイサーバのデフォルトであったX.Orgが使われるケースは徐々に少なくなっている。2022年4月にリリースされた「Ubuntu 22.04 LTS」でWaylandがデフォルトとなってからはその流れがさらに加速しており、これまでWaylandとX.Orgの両方をサポートしていたディストリビューションも次々とWaylandオンリーにサポート方針を変更している。 2024年4月に「Fedora Linux 40」のリリースを予定しているFedoraプロジェクトもまた、X.Orgからの脱却をより進めていく姿勢を明らかにしている。Ferora Workst

    Fedora 41ではX.Orgセッションをデフォルトから削除へ ―加速するX.Orgからの脱却 | gihyo.jp
  • Tailwind CSSでデザインシステムを構築する[前編] ~「契約」としてのデザインシステム | gihyo.jp

    2024年1月26日発売の『Tailwind CSS実践入門』の第9章「ユーティリティファーストでデザインシステムを構築する」の一部を、前後編の2回に分けて掲載します。ユーティリティファーストというTailwind CSSの発想を活かしたデザインシステム構築の最初の一歩をまとめたものです。開発者がデザインルールをTailwind CSSの設定に落とし込む過程はもちろん、デザイナーが開発者とどのように協力しあうべきかについても論じています。 記事の内容は、書籍の最終章に当たる部分です。ほかの章の内容に言及していたり、書籍内ですでに使われた用語が説明なく登場したりするのを防ぐため、書籍の原文から一部を変更しています。 一般的には、デザインシステムとは一貫したデザインや操作性でWebサイトやアプリケーションを提供するためのガイドラインの集まりと理解されます。使われ得る色のパレットや可能なスペー

    Tailwind CSSでデザインシステムを構築する[前編] ~「契約」としてのデザインシステム | gihyo.jp
  • UAとGA4って何が違うの? | gihyo.jp

    この中で「ユーザーエンゲージメント」という言葉だけちょっと聞き慣れないかなと思います。これが、次に取り上げるGA4の2つ目の特徴です。 ②「エンゲージメント」という考え方が加わった 「user_engagement」のイベントは、GA4で新しく加わった指標です。1秒以上ページが表示された際にカウントされます。 「エンゲージメント」とは、Googleでは「サイトやアプリに対するユーザーの操作」と定義されています。Webサイトにアクセスをしたあとでユーザーが操作を行うと「そのサイト(ページ)に関心を持ってなんらかの行動をしている」とみなし、「⁠エンゲージメント」として記録されるのです。このイベントが発生してから、そのページを離脱するまでの時間が「エンゲージメント時間」として記録されます。「⁠ページに滞在した時間」とほぼ同義です。 2つの特徴を実際の画面で比較してみる UAの表を見てみる 直帰率

    UAとGA4って何が違うの? | gihyo.jp
  • 保守しやすく変化に強いソフトウェアを支える柱 自動テストとテスト駆動開発、その全体像 ~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
  • Linus Torvaldsが語るカーネル開発とメンテナー、AIコーディング、そしてオープンであること ―Open Source Summit Japan 2023基調講演より | gihyo.jp

    Linus Torvaldsが語るカーネル開発とメンテナー⁠⁠、AIコーディング⁠⁠、そしてオープンであること ―Open Source Summit Japan 2023基調講演より 「ぼくはあんまりパブリックな場で喋るのは好きじゃない。でもDirkが用意した質問に、ぼくがこの場(Linux Foudation主催のサミット)で答えるスタイルなら、リラックスしながらいろいろなことを議論できるし、聞いている人たちにも楽しんでもらえると思っている。ちなみにDirkの質問内容は事前に聞かされていないよ」―12月5日、東京・有明で開催された「Open Source Summit Japan」(⁠主催: Linux Foundation、12/5~12/6)のキーノートセッションには、久しぶりに来日した“⁠Linux Creator⁠”ことLinus Torvalds氏が登壇するとあって、早朝にも

    Linus Torvaldsが語るカーネル開発とメンテナー、AIコーディング、そしてオープンであること ―Open Source Summit Japan 2023基調講演より | gihyo.jp
  • 第761回 Alder Lake-Nで省エネPC生活 | gihyo.jp

    最近、Alder Lake-Nを搭載したミニPCが、様々なメーカーから発売されています。Alder Lake-Nとは、第721回でも紹介したIntelの第12世代Core(Alder Lake)のバリエーションのひとつで、モバイル向けの、エントリーグレードのシリーズと位置づけられています。Alder Lakeは、高性能のPコアと高効率のEコアを搭載し、性能と電力効率を両立させているCPUですが、その中でもAlder Lake-NはPコアを持たず、Eコアのみで構成されている点がユニークな特徴となっています。しかしAlder Lake-NのEコアは「性能を抑えて電力効率を上げたコア」という位置づけではあるものの、その性能はかつてのメインストリームであったSkylakeを越えているという触れ込みです。 筆者は先日、BeelinkのEQ12というPCを購入しました。CPUにIntel Proces

    第761回 Alder Lake-Nで省エネPC生活 | gihyo.jp
  • 第772回 サーバー上で動くRSSリーダーであるFreshRSS | gihyo.jp

    前回はUbuntuデスクトップで動くRSSリーダーであるNewsFlashを紹介しました。今回はサーバー上で動作し、任意のウェブブラウザーで閲覧可能なRSSリーダーである「FreshRSS」について紹介しましょう。 図1 Web UIながら、テーマが豊富でコンパクトにまとめて表示できるFreshRSS 拡張機能も備えたFreshRSS RSSリーダー(フィードアグリゲーター)については前回も紹介しましたが、簡単に説明すると「RSSに対応したサイトの更新通知を受け取り、その内容を閲覧できる仕組み」です。スマートフォンで言うところの「ニュースアプリ」に近いものだと思っておけば良いでしょう。 ニュースアプリはローカルで動かしてインターネット越しにデータを集めます。それに対してFreshRSSや第266回で紹介したTiny Tiny RSSなどは、サーバー側でRSSのフィードデータを定期的に収集し

    第772回 サーバー上で動くRSSリーダーであるFreshRSS | gihyo.jp
  • Tailwind CSS実践入門 第2章 Tailwind CSSの基本 ──開発環境へのインストール、設定ファイルの記述、エディタの設定 | gihyo.jp

    Tailwind CSS実践入門 ~まず作ってから、あとで共通化する Tailwind CSS実践入門 第2章 Tailwind CSSの基 ─⁠─開発環境へのインストール⁠⁠、設定ファイルの記述⁠⁠、エディタの設定 章では、開発環境にTailwindをインストールする方法に加えて、設定ファイルの記述方法や、エディタの設定などについて説明します。執筆時点でのTailwindの最新バージョンである、3.2.4の使用を前提にします。 Tailwind CSSのインストール Tailwindは、さまざまな開発環境にインストールして使用できます。Tailwindに関連するアプローチとして、CSS in JSやCSS Modulesなどのツールもありますが、これらを使用できるのは一部のSPA(Single Page Application)などの環境だけに限られます。しかしTailwindであれ

    Tailwind CSS実践入門 第2章 Tailwind CSSの基本 ──開発環境へのインストール、設定ファイルの記述、エディタの設定 | gihyo.jp
  • 『WEB+DB PRESS』 休刊のお知らせ:WEB+DB PRESS

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

    『WEB+DB PRESS』 休刊のお知らせ:WEB+DB PRESS
  • GoにはなぜXという機能がないのか? 〜テスト関数ごとの暗黙的な初期化処理の実現を考察する | gihyo.jp

    つきなみGo GoにはなぜXという機能がないのか? 〜テスト関数ごとの暗黙的な初期化処理の実現を考察する はじめに 筆者はGoだけではなく、Scalaなど他言語を扱った経験もあり、しばしばGoには他の言語にあるXという機能がなぜないのだろう?と考えることがあります。 たとえば、テスト関数ごとに暗黙的に呼ばれる初期化関数の定義があります。データベースに対するDrop・Create・Insertなどの処理をテストごとに実行したい場合に定義できると便利でしょう。同じ処理を都度書いているとテストケースが増えてきた時にメンテナンス性が下がってしまったり、初期化処理を追加し忘れてしまう恐れなどもあります。 しかし、Goにはこのようなテスト関数ごとに暗黙的に実行される初期化処理を定義できません。Goが他言語に劣っているようにもみえますが、当にそうなのでしょうか? 公式のFAQにもあるように、とある機能

    GoにはなぜXという機能がないのか? 〜テスト関数ごとの暗黙的な初期化処理の実現を考察する | gihyo.jp
    retdaisuke
    retdaisuke 2023/04/10
    "プロポーザルで投稿されていたアイデアを紹介しながら、より良いテスト関数ごとの初期化処理について考察します。"
  • Go言語プログラミングエッセンス

    このの概要 Go言語ユーザーとして,「もう一段レベルアップしたい」「開発に使いたい」と思っている方に向けた,Go言語の解説です。関数やパッケージの使い方,並行処理,テストといった基的なトピックにおいて,「こう書くと綺麗になる」「こう書くとパフォーマンスが上がる」といったエッセンスを紹介します。後半ではCLIアプリ/Webアプリの開発手順や,現場で使われている便利なパッケージなど,著者が業務やOSSの開発で培った技術をふんだんに紹介します。 こんな方におすすめ Go言語の入門を終え,さらに深く学びたい人 第1章 プログラミング言語Goとは 1.1 Goの簡単な歴史 1.2 Goの立ち位置 1.3 Goが利用される場面 標準でUTF-8をサポート マルチプラットフォーム 並行処理の扱いやすさ ストリーム指向 シングルバイナリ 1.4 教育用途としてのGo 1.5 なぜGoが使われるのか

    Go言語プログラミングエッセンス
    retdaisuke
    retdaisuke 2023/02/16
    コレは買わねば
  • 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