タグ

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

  • Rust製のPythonパッケージ管理ツール「uv」を使ってみよう | gihyo.jp

    それぞれのツールに関する詳しい説明は記事では行いません。詳しく知りたい方は、ツール名のリンクから公式ドキュメント等を参照してみてください。 上記の表に挙げたツール群にはそれぞれに特徴があります。pyenv、venv、pipのように単一機能に特化したものから、Condaのようにデータサイエンスや機械学習プロジェクトで使用される複雑なパッケージの依存関係や環境管理をサポートするツール、PoetryのようにPythonパッケージインデックス(PyPI)への公開をサポートするツールなど、開発シーンに合わせて選択することができます。 uvとは uvは2024年の2月中旬に発表されたばかりの新しいパッケージ管理ツールです。Rustで書かれており、ここ最近で飛躍的に使用されるようになったRust製のPythonリンター&フォーマッター「Ruff」を開発しているAstral社によって提供されています[1

    Rust製のPythonパッケージ管理ツール「uv」を使ってみよう | gihyo.jp
  • Tailwind CSSでデザインシステムを構築する[前編] ~「契約」としてのデザインシステム | gihyo.jp

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

    Tailwind CSSでデザインシステムを構築する[前編] ~「契約」としてのデザインシステム | gihyo.jp
  • 第2章 詳解QUIC ~ TCPに代わり下位層で使用する新しいトランスポートプロトコル | gihyo.jp

    章では、HTTP/3がTCPに代わって下位層で用いるQUICについて解説します。 QUICはトランスポートプロトコル QUICはトランスポートプロトコルです。QUICの説明に入る前に、トランスポートプロトコルついておさらいします。 TCP/IPの4階層モデル プロトコルは階層で役割を分担しています。TCP/IPの4階層モデルでは、アプリケーション層、トランスポート層、インターネット層、ネットワークインタフェース層に分かれます(図1⁠)⁠。 図1 TCP/IPの4階層モデル アプリケーション層に分類されるアプリケーションプロトコルは、クライアントやサーバで動作するアプリケーションの動作に関するデータやメッセージの通信ルールを規定します。たとえばSMTP(Simple Mail Transfer Protocol)は、メールを送信する通信ルールを規定しています。HTTPはこの層に属します。

    第2章 詳解QUIC ~ TCPに代わり下位層で使用する新しいトランスポートプロトコル | gihyo.jp
  • Tailwind CSS実践入門 第1章 ユーティリティファーストとは何か ──従来の課題を解決する大胆なアプローチ | gihyo.jp

    Tailwind CSS実践入門 ~まず作ってから、あとで共通化する Tailwind CSS実践入門 第1章 ユーティリティファーストとは何か ─⁠─従来の課題を解決する大胆なアプローチ CSSフレームワークのTailwind CSSが注目を集めています。その特徴は、flex、pt-4、text-centerといったユーティリティクラスの組み合わせだけで、ほとんどすべてのスタイリングをしてしまおうという大胆なアプローチです。これまでのベストプラクティスと真っ向から対立するようなやり方ですが、だからこそ享受できるいくつもの強みがあります。特集では、そうしたTailwind CSSの考え方や、具体的な使い方について紹介します。 お知らせ:特集のサンプルコードは、GitHubの筆者リポジトリからダウンロードできます。https://github.com/yuheiy/wdpress133_

    Tailwind CSS実践入門 第1章 ユーティリティファーストとは何か ──従来の課題を解決する大胆なアプローチ | gihyo.jp
    Akineko
    Akineko 2023/07/25
  • Goのカバレッジツールを使いこなす | gihyo.jp

    はじめに テストでコード品質を担保していくことは、継続的インテグレーションの観点などで必要不可欠です。そして、十分なテストコードが書かれているかどうかの指標として、よく使われるものといえばテストカバレッジがあります。 Goではgo testコマンドと、go tool coverコマンドがカバレッジ計測の機能を担っています。今回は、これらのツールをより深く使い込んでいくために、既存機能の一歩進んだ使い方や最新機能について紹介します。 なお、記事で紹介しているコマンドなどはmacOSで実行した場合の例となります。 オリジナルのカバレッジ統計データを集計する まずは既存のカバレッジの統計データを取得する方法を振り返り、より詳細な情報を集計するアプローチについて紹介します。 Goのカバレッジツールで出力できる統計データ 既存のgo testコマンドおよびgo tool coverコマンドで出力で

    Goのカバレッジツールを使いこなす | gihyo.jp
  • 簡単で強力!誰でも始められる情報整理ツール「RemNote」を始めよう | gihyo.jp

    学習している内容や日々の考え事など、さまざまな情報を入力しながら自然に整理していくパーソナル・ナレッジ・マネージメント(PKM)ツールが注目されています。 しかし便利ではあるものの使い方が難しかったり、マニアックな設定が要求されたりするPKMツールが多い中、高機能なのに簡単に利用できるRemNoteが、最近モバイルアプリも登場して頭一つ抜けた存在になってきたように思います。そこで稿では初心者向けにRemNoteの使い方の紹介を通して、PKMの基的な考え方について深めてみます。 情報が複雑になってきたら、ツールも進化しなければいけない 忘れてしまっては困ることがあると、私たちはメモをとります。買い物でそろえるもの、テレビで耳にしたお得な情報、来週の予定、ちょっとした考え事。どんなことであっても私たちはメモをとります。 手段は紙でもスマートフォンでも変わりません。ふだんは意識しないほど当た

    簡単で強力!誰でも始められる情報整理ツール「RemNote」を始めよう | gihyo.jp
  • Rust使いは要注目! WebAssemblyのコンポーネントモデルを知る ~TechFeed Experts Night#9講演より | gihyo.jp

    TechFeed Experts Night Pick up Rust使いは要注目! WebAssemblyのコンポーネントモデルを知る ~TechFeed Experts Night#9講演より 記事は、2022年11月に開催された「TechFeed Experts Night#9 〜 Rust/WebAssemblyの「いま」を探る」のセッション書き起こし記事「Rust使いは要注目! WebAssemblyのコンポーネントモデルを知る by chikoski@」を転載したものです。オリジナルはTechFeedをご覧ください。 よろしくお願いします。今ご紹介いただきましたchikoski@です。 Rustにはコミュニティ的な関わり方が多くて、Rust.Tokyoというカンファレンスの運営をやっています。WebAssemblyは出たときからずっと仕様を追っていて、コロナの始まる前はWeb

    Rust使いは要注目! WebAssemblyのコンポーネントモデルを知る ~TechFeed Experts Night#9講演より | gihyo.jp
  • 「Obsidian」でノートを作るときの考え方とは? ~デイリーノートの活用と、PKMとしてのノート術 | gihyo.jp

    ノートアプリ「Obsidian」を使いこなす 「Obsidian」でノートを作るときの考え方とは? ~デイリーノートの活用と、PKMとしてのノート術 前回までの記事で、Obsidianの基的な設定は完了しています。あとは、ノートを自分の好きなようにMarkdownで書いていけばよいのです。 しかし、ノートを書くといっても、何から手をつければよいのかわからない人が多いでしょう。 ノートの書き方は人によって違ってよいのですが、先人が残してくれた知恵がいくつか公開されています。その方法と合わせて、私がノートを作るときの考え方を紹介します。 デイリーノートを使う Obsidianではじめてノートを作成する人に対して、私がおすすめしているのは前回の記事で紹介したコアプラグインの「デイリーノート」を使う方法です。 デイリーノートとは、名前の通り毎日のノートのことです。初期設定のままで設定を変更してい

    「Obsidian」でノートを作るときの考え方とは? ~デイリーノートの活用と、PKMとしてのノート術 | gihyo.jp
  • Goで書くテスタブルなCLIツールの作り方 | gihyo.jp

    CLIツールをテストする難しさ ターミナルなどで動作するCLI(コマンドラインインタフェース)ツールは、パッケージを公開して利用してもらうライブラリと比べてテストがしにくいと感じる読者も多いでしょう。 CLIツールは、ファイル/標準入力からの入力や、ファイル/標準出力/標準エラー出力への出力があることが多いです。また、コマンドライン引数やオプション(フラグ)によって変わる挙動のパターンが多いため、網羅的なテストが大変です。 入出力についても単一のファイルを読み書きするだけではなく、ディレクトリごと作成したり、特定のディレクトリ以下を再帰的に読み込むような処理もよくあります。 main関数にすべての処理をすべて書くような作りのCLIツールだと、実際にビルドしてテストスクリプトなどから動かしてテストするしかありません。しかし、せっかくCLIツールをGoで書いているのであれば、テストもGoで書き

    Goで書くテスタブルなCLIツールの作り方 | gihyo.jp
    Akineko
    Akineko 2022/11/15
  • 軽量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
  • コンテナビルド最新事情 2022版 ~TechFeed Conference 2022講演より | gihyo.jp

    記事は、2022年5月に開催されたTechFeed Conference 2022のセッション書き起こし記事「コンテナビルド最新事情 2022版(inductor⁠)⁠ — TechFeed Conference 2022講演より」を転載したものです。オリジナルはTechFeedをご覧ください。 それではこれから、私@_inductor_が「コンテナビルド最新事情」ということでお話をしていきます。 今日は主に4つの話をしていきます。ちょっと駆け足になってしまいますが、コンテナビルド高速化に向けた4つの機能およびポイントについてお話しします。 今回お話すること Dockerfileの新しい記法 まず最初に、Dockerfileに新しい記法がいくつか増えています。それを実装しているのは BuildKitと呼ばれるDocker発のオープンソースのソフトウェアがベースになっていて、Dockerf

    コンテナビルド最新事情 2022版 ~TechFeed Conference 2022講演より | gihyo.jp
  • Fluentd実践入門 ──統合ログ基盤のためのデータ収集ツール

    2022年10月8日紙版発売 2022年10月6日電子版発売 田籠聡 著 A5判/544ページ 定価3,520円(体3,200円+税10%) ISBN 978-4-297-13109-8 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 書は,Fluentdについて網羅的に解説した書籍です。 Fluentdは,ログやそのほかのデータの収集および集約,転送,変換,保存を実現するためのソフトウェアです。すでに多くのユーザーに利用されているほか,Kubernetes環境におけるデファクトスタンダードなログ収集方法として扱われています。そのため,AWSGCPおよびAzu

    Fluentd実践入門 ──統合ログ基盤のためのデータ収集ツール
  • 第1章 進化するHTTPの歩み ~ HTTP/1.1とHTTP/2をおさらいし、HTTP/3の基本を知る | gihyo.jp

    HTTP/3入門 第1章進化するHTTPの歩み ~ HTTP/1.1とHTTP/2をおさらいし⁠⁠、HTTP/3の基を知る この特集記事は2021年6月24日に発売されたWEB+DB PRESS Vol.123に掲載された特集1「HTTP/3入門」を再掲したものです。 先日2022年6月にHTTP/3を含むHTTP関連の仕様が正式なRFCとなりました。ここではRFCの正式リリースに伴い、いち早く変更点を抑え、囲みボックスを用いた加筆解説でわかりやすくお伝えしております。 特集のはじめに HTTP(Hypertext Transfer Protocol)の最新版であるHTTP/3が登場しました。HTTP/3では、より安全で速い通信が行えます。特集では、今までのHTTPにあった課題と、HTTP/3で課題をどのように解決し、改善が行われたかを解説します。 章では、HTTPそのものと各バージ

    第1章 進化するHTTPの歩み ~ HTTP/1.1とHTTP/2をおさらいし、HTTP/3の基本を知る | gihyo.jp
  • ネットワーク技術やその仕組みを理解するための最短コースとは?:新刊ピックアップ

    ネットワーク技術を学ぶのは難しい 我々の日常生活に欠かすことのできない社会インフラの1つと言えるコンピュータネットワーク。スマホやPCから利用するだけなら,その仕組みを深く知る必要はありませんが,仕事でシステムの構築や運用管理に従事する方は,きちんと理解しておくことが必要になります。 しかし,次のような理由からマスターするまでの道のりは険しいです。 押えておくべき技術用語が多すぎる たとえば,社内LAN内でファイルをやり取りしている状況を詳細に説明する場合,「⁠TCP/IP」「⁠IPアドレス」「⁠サブネット」「⁠DHCP」「⁠プロトコル」「⁠MACアドレス」「⁠ARP」「⁠ゲートウェイ」……,さらに機器として「ルータ」「⁠レイヤ3スイッチ」……などなど,数多くの技術用語を理解しておく必要があります。 お試し環境を準備するのが大変 技術用語をある程度理解できたとしても,社内LANをいきなり設

    ネットワーク技術やその仕組みを理解するための最短コースとは?:新刊ピックアップ
  • 2022年に注目したいCloudNative関連技術 | gihyo.jp

    あけましておめでとうございます。サイバーエージェントの青山真也(@amsy810)です。今年の新春企画では、2022年にも動向を見ていきたいと思っている、2021年のCloudNative関連のトピックを紹介します。項目としてはeBPF、WebAssemblyWasm⁠)⁠、複数Kubernetesクラスタの管理・連携、CNCF Technical Advisory Groups(TAGs)によるWhitepaperを取り上げていきます。 eBPF eBPFは、カーネルのソースコードの変更なしに任意のプログラムをカーネルに組み込み、カーネル空間で任意の処理を実行するための仕組みです。CNCFのプロジェクトでは、Cilium・Calico・Falco・Pixieなどで利用されています。 CloudNative領域でのeBPFは、ネットワーク関連での利用が一番活発です。eBPFを利用したCN

    2022年に注目したいCloudNative関連技術 | gihyo.jp
  • マスタリングVim

    2020年4月16日紙版発売 2020年4月16日電子版発売 Ruslan Osipov 著,大倉雅史 訳 B5変形判/344ページ 定価3,608円(体3,280円+税10%) ISBN 978-4-297-11169-4 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 Googleの現役エンジニアが書いた,テキストエディタ「Vim」の解説書です。OSごとのインストールや基操作といった入門的内容も押さえつつ,リファクタリング,デバッグ,実行,テスト,バージョン管理システムとの連携,プラグインの作成と管理といったソフトウェア開発に便利な機能を,Pythonのコー

    マスタリングVim
    Akineko
    Akineko 2020/03/25
  • 第605回 Samplerでターミナルをダッシュボードにする | gihyo.jp

    Samplerとは 最近のWebアプリの多くには、「⁠ダッシュボード」と呼ばれるUIが用意されています。ダッシュボードとは来、車の計器盤を指す言葉です。車のダッシュボードにはスピードメーターやタコメーター、燃料計、水温計などが配置されており、ドライバーが車の状態を瞬時に把握できるようになっています。 Webアプリにおけるダッシュボードも車のそれと同じで、現状のデータを可視化するためのツールです。ダッシュボードには様々なウィジェットやメトリクスが配置されており、サービスの状態を俯瞰できるように構成されています。また当に必要とする情報だけを集約できるよう、ダッシュボードはユーザーが自由にカスタマイズできるのが一般的です。 図1 サーバーモニタリングサービス「Datadog」のKubernetes Dashboardの例。クラスターを構成するノードや稼働中のコンテナ、CPUやメモリの負荷など

    第605回 Samplerでターミナルをダッシュボードにする | gihyo.jp
  • 第6回 Firebaseデータベースの効率的なデータ構造と高速化のポイント | gihyo.jp

    これまでの連載で見てきたように、Firebaseのデータベースは任意のJSONオブジェクトをツリー状に保持できる柔軟なNoSQLです。一般的なリレーショナルデータベースのような厳格なスキーマ定義等は存在せず、自由な発想でデータを格納することができます。 しかしながら、必要なデータを何でも1つのツリーの中に含めてしまうと、思いもよらない無駄な大量のデータ転送やパフォーマンスの低下を招くことがあります。今回は、Firebaseで効率的かつ高速にデータを扱うためのベストプラクティスをご紹介します。 今回は例として以下のようなチャットアプリケーションを想定し、データをどのように持つとより効率的なのかを確認していきたいと思います。 チャットルームが複数存在する チャットのメッセージはルームごとに管理する 複数ユーザがおり、ユーザは任意のルームに参加して発言することができる 効率的なデータ構造 データ

    第6回 Firebaseデータベースの効率的なデータ構造と高速化のポイント | gihyo.jp
  • ヘルプサイトの作り方

    2019年2月16日紙版発売 2019年2月16日電子版発売 仲田尚央,山絵理 著 A5判/208ページ 定価2,838円(体2,580円+税10%) ISBN 978-4-297-10404-7 Gihyo Direct Amazon 楽天ブックス honto ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 単機能なプロダクトではヘルプサイトは必要ないかもしれませんが,機能が増えると,チュートリアルやヘルプなどによるフォローなしにはユーザーがプロダクトを使いこなすことが難しくなっていきます。また,ユーザーに長くプロダクトを利用してもらうためには,機能追加などに伴いヘルプサイトを継続的に改善していくことが必要です。書では,ユ

    ヘルプサイトの作り方
  • 継続は力なり―大器晩成エンジニアを目指して 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    継続は力なり―大器晩成エンジニアを目指して 記事一覧 | gihyo.jp