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

  • 分散型SNS「Misskey」、それを支える技術スタック | gihyo.jp

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

    分散型SNS「Misskey」、それを支える技術スタック | gihyo.jp
    toshikish
    toshikish 2023/02/13
  • パーフェクトRust

    2023年2月22日紙版発売 2023年2月22日電子版発売 古川正寿 著 B5変形判/464ページ 定価4,180円(体3,800円+税10%) ISBN 978-4-297-13322-1 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto このの概要 Rustは2015年に1.0がリリースされた比較的新しい言語ですが,メモリの安全性が保障されていながら,C++並みの高速性があるという点でC/C++の代替えとして注目されています。近年,グーグルAndroid OSの開発言語にマイクロソフトがWindowsの開発にRustを採用したことにより,今後の主流言語の1つとしてRustの可能性を感じているエンジニアも増えてきています。そこで書籍

    パーフェクトRust
    toshikish
    toshikish 2023/02/09
  • Rust製高速データフレームライブラリ、Polarsを試す | gihyo.jp

    門脇@satoru_kadowakiです。今月のPython Monthly Topicsでは、Rust製の高速データフレームライブラリ Polars について紹介します。 Polarsとは Pythonデータ分析に使用される主なライブラリに pandas があります。Polarsはpandasと同様にデータフレームというデータ構造オブジェクトを提供するサードパーティライブラリです。特にpandasを意識して作られており、メインページに「Lightning-fast DataFrame library for Rust and Python」とあるように、Rustによる高速処理を謳っています。 Polarsのリポジトリや関連ドキュメントは以下を参照してください。 Github: https://github.com/pola-rs/polars ユーザーガイド: https://pola

    Rust製高速データフレームライブラリ、Polarsを試す | gihyo.jp
    toshikish
    toshikish 2023/02/07
  • 『家族アルバム みてね』を支えるオンコールエンジニア制度 | gihyo.jp

    株式会社MIXIで『家族アルバム みてね』(⁠以下みてね)のSREグループに所属している間です。 みてねは現在、1,500万人を超えるユーザに175の国と地域でサービスを提供しています(2022年8月現在)。そこで、より高い信頼性と可用性を担保するためにみてねのSREグループではオンコールエンジニア制度を設けています。 今回はこの「みてねのSREグループにおけるオンコールエンジニア制度の取り組み」についてご紹介させて頂きます。 オンコールの定義 まず、どのような条件でアラートを設定しオンコールを実施するかの定義について簡単に触れておきます。 現在はさまざまなソースから多種多様な情報を収集することができます。 たとえば、みてねではKubernetesAmazon EKS)を採用しています。Kubernetesだけでも非常に多くのメトリクスが収集できますが、それだけではなくアプリケーション

    『家族アルバム みてね』を支えるオンコールエンジニア制度 | gihyo.jp
    toshikish
    toshikish 2023/01/30
  • Deno標準モジュール解説[前編] ~Deno標準モジュールの概要と、モジュール解説(Archive~FMT) | gihyo.jp

    Deno標準モジュール解説[前編] ~Deno標準モジュールの概要と、モジュール解説(Archive~FMT) Deno標準モジュールを、前編と後編の2回に分けて解説します。記事は前編です(後編はこちら⁠)⁠。 はじめに Deno標準モジュールはDenoコアチームによって開発・メンテナンスされているモジュール群です。Denoを使って様々なプログラムを作成する上で必要となる基的な機能を提供しています。 標準モジュールを使う際には以下の例のようにhttps://deno.land/std名前空間から必要な機能をインポートして使います。たとえば、HTTPサーバーを使用する例は以下のようになります。 import { serve } from "https://deno.land/std@0.170.0/http/server.ts"; serve(() => new Response("he

    Deno標準モジュール解説[前編] ~Deno標準モジュールの概要と、モジュール解説(Archive~FMT) | gihyo.jp
    toshikish
    toshikish 2023/01/30
  • Node.jsの2022年を振り返り、Node.jsの未来を見つめてみた ~TechFeed Experts Night#8講演より | gihyo.jp

    TechFeed Experts Night Pick up Node.jsの2022年を振り返り、Node.jsの未来を見つめてみた ~TechFeed Experts Night#8講演より 記事は、2022年11月に開催された「TechFeed Experts Night#8 ~ JavaScriptランタイム戦争最前線」のセッション書き起こし記事「Node.jsの2022年を振り返り、Node.jsの未来を見つめてみた by @shisama_」を転載したものです。オリジナルはTechFeedをご覧ください。 「Node.jsの2022年と未来」というタイトルで話します。よろしくお願いします。サイボウズでフロントエンドエンジニアをやっているshisamaです。 今日はNode.jsの18と19の主な変更点を紹介したいと思います。その後は、現在実装中の機能から、いくつかおもしろそう

    Node.jsの2022年を振り返り、Node.jsの未来を見つめてみた ~TechFeed Experts Night#8講演より | gihyo.jp
    toshikish
    toshikish 2023/01/28
  • Bunファーストインプレッション - JavaScriptランタイム界に”赤壁の戦い”を! ~TechFeed Experts Night#8講演より | gihyo.jp

    TechFeed Experts Night Pick up Bunファーストインプレッション - JavaScriptランタイム界に”赤壁の戦い”を! ~TechFeed Experts Night#8講演より 記事は、2022年11月に開催された「TechFeed Experts Night#8 ~ JavaScriptランタイム戦争最前線」のセッション書き起こし記事「Bunファーストインプレッション - JavaScriptランタイム界に⁠”赤壁の戦い⁠”を!」を転載したものです。オリジナルはTechFeedをご覧ください。 Japan Node.js Associationの理事をしています、古川と申します。ソーシャルのIDはこちらになります。 Twitter GitHub JSConf JPを2022年11月26日に開催予定で、今回のテーマであるNode.JS / Deno /

    Bunファーストインプレッション - JavaScriptランタイム界に”赤壁の戦い”を! ~TechFeed Experts Night#8講演より | gihyo.jp
    toshikish
    toshikish 2023/01/25
  • RISC-V向けAndroidが本格化、ARMと同等の扱いに | gihyo.jp

    Googleは、RISC-VをTier-1プラットフォームとする考えを、2022年12月に開催されたRISC-Vサミットで発表したとars TECHICAが報じています。 Google announces official Android support for RISC-V | Ars Technica 2022年のGoogle I/Oのときは、RISC-Vの扱いに関して曖昧な態度でしたが、今回はRISC-VをARMと同等に扱うべく最適化に向けた開発が格化しています。ars TECHICAは、RISC-Vサミットで行われた発表を「大胆な宣言」として取り上げています。 ただ、すぐさまAndroidが動くわけではなく、実現のためには多くの過程があり、これをこなすために数年はかかると概説されました。ロードマップでは、2023年の第1四半期中にARTのサポートを開始すると示されているので、実現

    RISC-V向けAndroidが本格化、ARMと同等の扱いに | gihyo.jp
    toshikish
    toshikish 2023/01/19
  • 第746回 update-grubの仕組みを使ってUbuntuのGRUBをさらにカスタマイズする | gihyo.jp

    第743回の「Ubuntuの標準ブートローダーであるGRUBを改めて見直す」では、GRUBのUbuntuらしい使い方を紹介しました。今回はUbuntuに最初からインストールされている温室育ちのGRUBを、もうちょっとだけからかってみます。 前回と同じく「UEFIシステム上にインストールされたgrub-efi」のみを想定した記述となっています。また、基的なスタンスは前回と同じで、 「トラブルに遭遇したくなければ、GRUBには手を出すな」 です。進んだところでふたつも手に入りません。緊急ボタンがあると思わず平手で押しつぶしてしまう、そんな破滅的な人生を歩むあなたに向けた記事です。 update-grubコマンドがやっていること 改めて第743回の簡単なおさらいです。GRUBにはおおよそ次の4種類の設定方法が存在します。 /boot/grub/grub.cfg:GRUBが起動時に参照する設定フ

    第746回 update-grubの仕組みを使ってUbuntuのGRUBをさらにカスタマイズする | gihyo.jp
    toshikish
    toshikish 2023/01/18
  • Webアプリケーションアクセシビリティ ――今日から始める現場からの改善

    このの概要 アクセシビリティとは「利用可能な状況の幅広さ」のこと。より多くの人が,より多くの環境で,より多くの状態で利用できることです。もちろんそこには視覚・上肢・認知などに障害があるケースも含みます。日々繰り返し利用するWebアプリケーションにこそ,アクセシビリティが求められます。 Webサイトに比べて,多くのインタラクションを行うWebアプリケーションでは,アクセシビリティの確保はやや難易度が高いものです。特に既存のWebアプリケーションは複合的な課題を抱えていることが多く,教科書どおりの方法では必ずしも改善できません。 書では,Webアクセシビリティの基礎である「HTMLとWAI-ARIA」を解説したうえで,Webアプリケーションの要である「フォーム」,色やテキストなど「UIデザインの基」,モーダルダイアログや通知など「少し複雑なUIパターン」の3分野に分けて,よくある事例を取

    Webアプリケーションアクセシビリティ ――今日から始める現場からの改善
    toshikish
    toshikish 2023/01/18
  • 2023年のWebアクセシビリティ | gihyo.jp

    あけましておめでとうございます。株式会社ミツエーリンクスの中村直樹です。昨年と同じく、2022年のWebアクセシビリティに関連する出来事を振り返りつつ、2023年のWebアクセシビリティの展望について俯瞰していきたいと思います。 WCAG 2.2 2022年9月版のWCAG 2.2で、文書のステータスとしてはようやく勧告候補(Candidate Recommendation)にまでたどり着き、仕様文書として完成する勧告(Recommendation)が見えてきた…と思っていたところですが、12月になって達成基準4.1.1構文解析を削除するという話が急浮上してきました。 達成基準4.1.1がどういったものなのか、改めて振り返ってみましょう。この達成基準については、もとはWCAG 2.1(原文、参考日語訳)と同じものであり、WCAG 2.0とも同一です。達成基準4.1.1は、マークアップ言語

    2023年のWebアクセシビリティ | gihyo.jp
    toshikish
    toshikish 2023/01/10
  • 第3回 テストサイズ ~自動テストとCIにフィットする明確なテスト分類基準~ | gihyo.jp

    テストの分類として開発者に馴染み深いのは、検証の対象となるコードの範囲や粒度での分類でしょう。範囲が狭く粒度が細かい順に、ユニットテスト、インテグレーションテスト、E2E(end to end)テストなどと呼ばれます。今回は、自動テスト前提の時代にうまくフィットするテスト分類について考えます。 現場の混乱 実は、範囲や粒度による分類に現場は混乱しがちです。「⁠1つの対象」を検証する狭いテストをユニットテスト、単体テスト、コンポーネントテストなどと呼びますが、これらをほぼ同じものと言う人も、異なると言う人もいます。「⁠1つの対象」も関数、メソッド、クラス、モジュール、パッケージ、振る舞い、1つの画面と、人や組織によってバラバラです。 複数のレイヤ、たとえばコントローラとモデルをまたいで検証するテストをインテグレーションテストと呼ぶ人もいれば、それもユニットテストと呼ぶ人もいます。ユニットテス

    第3回 テストサイズ ~自動テストとCIにフィットする明確なテスト分類基準~ | gihyo.jp
    toshikish
    toshikish 2022/12/22
  • 第743回 Ubuntuの標準ブートローダーであるGRUBを改めて見直す | gihyo.jp

    Ubuntuは、標準のブートローダーとしてGRUBを採用しています。ほとんどの利用者は、インストール時に自動設定されるGRUBをそのまま利用し続けていることでしょう。今回は初心者向けに、このGRUBがどう動いているのか、そしてどのように設定可能なのかを紹介します。 図1 Ubuntuインストール時の無骨なGRUB セキュアブート時代のGRUB GNU GRUB(GRand Unified Bootloader)は、言わずとしれたLinuxをはじめとする各種OSを起動するための「ブートローダー」です。一般的なコンピューターは電源が入ると、CPUを含む最低限のデバイスのリセットが解除され、ROM上にある小さなプログラムが実行されることによりRAM上に大きなプログラムがロードされ、さらにいくつかのデバイスのリセットが解除されて最終的に必要なプログラムが実行されるという、「⁠ブートストラップ」な方

    第743回 Ubuntuの標準ブートローダーであるGRUBを改めて見直す | gihyo.jp
    toshikish
    toshikish 2022/12/21
  • 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
    toshikish
    toshikish 2022/12/20
  • 『家族アルバム みてね』に学ぶ、AWSのReserved InstancesとSavings Plansの勘所 | gihyo.jp

    みてね×gihyo.jpスペシャル 『家族アルバム みてね』に学ぶ、AWSのReserved InstancesとSavings Plansの勘所 『家族アルバム みてね』(⁠⁠以下、みてね)ではサービスの拡大に合わせてAWSのコスト削減のために、2018年から5年間にわたってReserved Instances(以下、RI)とSavings Plans(以下、SPs)の活用をしています。 現在に至るまでの間、サービスやインフラの成長に合わせそれらの使い方を試行錯誤してきましたが、振り返ってみるとどのタイミングでも注意すべきポイントは共通していることがわかりました。 そこで今回の記事では、みてねでのRI/SPsの活用の歴史を振り返りながら、それぞれを購入する際に注意すべきポイントについて共有いたします。 RIとSPsとは 振り返りの前にまずは、RIとSPsの概要について紹介します。 RIと

    『家族アルバム みてね』に学ぶ、AWSのReserved InstancesとSavings Plansの勘所 | gihyo.jp
    toshikish
    toshikish 2022/12/19
  • 第75回 AWS Lambda入門 サーバレスでもPerlを活用しよう!(2) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーは一野瀬翔吾さんで、テーマは「AWS Lambda入門」(⁠2)です。 <前回(1)はこちら。> シンプルなHTTP APIの作成 無事にLambda関数の実行ができましたが、実行するにはマネジメントコンソールかAWS CLIが必要です。これでは気軽に利用できません。そこで、Lambda関数にHTTPエンドポイントを追加して、HTTP APIとして利用できるようにしましょう。 HTTPリクエストを待ち受ける 先ほどのSAMテンプレートに次の❶の設定を追加します。https://xxxxx.lambda-url.ap-northeast-1.on.aws/のようなURLが発行されるので、マネジメントコンソールからURLを確認しておきましょう。 リスト template.yaml AWSTemplateFormatV

    第75回 AWS Lambda入門 サーバレスでもPerlを活用しよう!(2) | gihyo.jp
    toshikish
    toshikish 2022/12/17
  • Pythonで学ぶ衛星データ解析基礎 ――環境変化を定量的に把握しよう

    2022年12月19日紙版発売 2022年12月15日電子版発売 田中康平,田村賢哉,玉置慎吾 著,宮﨑浩之 監修 B5変形判/352ページ 定価3,520円(体3,200円+税10%) ISBN 978-4-297-13232-3 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 書籍は,Pythonによる衛星データ解析に興味がある初学者に向けた入門書となっています。学校の情報の授業等で利用する際の副教材になることを意識し,衛星データだけでなくデータサイエンスの基礎的な内容も含めました。学校で地球環境やご自身が住んでいる地域がどのように変化しているか調べたい方は

    Pythonで学ぶ衛星データ解析基礎 ――環境変化を定量的に把握しよう
    toshikish
    toshikish 2022/12/07
  • ローカル環境で動作し、Markdownで書いたノートをつなげるアプリ「Obsidian」とは | gihyo.jp

    ノートアプリ「Obsidian」を使いこなす ローカル環境で動作し、Markdownで書いたノートをつなげるアプリ「Obsidian」とは 2022年10月に「1.0」というバージョンがリリースされたアプリ「Obsidian⁠」⁠。このリリースはgihyo.jpでも記事として取り上げられ、非常に注目されています。 この記事では具体的にどのような特徴があるのか、他のノートアプリやMarkdownエディタと比較しながら紹介します。 図 Obsidian Obsidianとは何か? Obsidianというアプリを紹介するとき、さまざまな説明が使われます。 ノートアプリ メモアプリ Markdownエディタ PKM(Personal Knowledge Management)ツール など これらはいずれも間違いではありませんが、一言で表現するのは難しいものです。そして、一言で表現しようとすると、そ

    ローカル環境で動作し、Markdownで書いたノートをつなげるアプリ「Obsidian」とは | gihyo.jp
    toshikish
    toshikish 2022/11/29
  • 4年間のEKS移行の取り組みを振り返って | gihyo.jp

    『家族アルバム みてね』(⁠以下、みてね)では、サービス開始当初よりAWS OpsWorksをオーケストレーションツールとして利用してきました。 しかし、サービスや組織の拡大に伴い、AWS OpsWorksによる運用上の課題が生じてきました。そこで、2018年ごろにAWS OpsWorksからAmazon EKSに移行するという意思決定を行いました。 その後、たくさんの試行錯誤や紆余曲折、回り道を経て、2021年にAmazon EKSへの移行が完了しました。 この記事では、4年近くに渡ったEKS移行の取り組みを時系列を追って紹介していきます。 その過程には、後に取りやめることになった設計や意思決定も多く含まれています。 記事の最後でEKS移行プロジェクトを振り返り、そこから得た学びをまとめます。 図 『家族アルバム みてね』のEKS移行のタイムライン AWS OpsWorksの課題とEKS

    4年間のEKS移行の取り組みを振り返って | gihyo.jp
    toshikish
    toshikish 2022/11/28
  • Goで書くテスタブルなCLIツールの作り方 | gihyo.jp

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

    Goで書くテスタブルなCLIツールの作り方 | gihyo.jp
    toshikish
    toshikish 2022/11/15