タグ

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

  • BunはNodeより速いのか? Misskeyで検証 | gihyo.jp

    連載では分散型マイクロブログ用ソフトウェアMisskeyの開発に関する紹介と、関連するWeb技術について解説を行っています。 今回はNode.js互換のJavaScriptランタイム、Bunのパフォーマンスについて、Misskeyのコードベースを用いて検証を行います。 Bunとは Bunは、Node.js(以下Node)互換である後発のJavaScriptランタイムです。 JavaScriptエンジンにNodeで採用されているV8ではなくJavaScriptCoreを採用しているほか、TypeScriptを事前コンパイルなしに実行することもできます。 肉まんのようなマスコットキャラクターが特徴です。 モチベーション そんなBunの公式サイトではNodeよりも大幅に性能上のアドバンテージがあるように紹介されていますが、こうした競合ソフトウェアとの一方的な比較は得てして限られた条件での有利な

    BunはNodeより速いのか? Misskeyで検証 | gihyo.jp
    yojik
    yojik 2024/08/20
    “AiScript”
  • 著者の一言:Web API設計実践入門 ――API仕様ファーストによるテスト駆動開発

    1978年4月に九州工業大学情報工学科に入学して初めてコンピュータに触れてから,さまざまなソフトウェア開発に従事してきました。しかし,大学・大学院での6年間や社会人になってからも,ソフトウェア開発におけるAPI(Application Programming Interface)設計とは何かを教えてもらったことはなく,試行錯誤してきました。今から思えば,最初のころはかなりひどいAPI設計を行っていたのではないかと思います。 たとえば,C言語で実装を隠ぺいするAPI設計の方法を覚えたのは,社会人となってから7,8年が過ぎたころでした。防御的プログラミングを始めたのは,社会人になってから15年もすぎたころでした。当然,それまでに設計したさまざまなソフトウェアでは,そのAPI仕様に防御的プログラミングを反映したような仕様は書いていなかったことになります。 防御的プログラミングを反映して,かなりき

    著者の一言:Web API設計実践入門 ――API仕様ファーストによるテスト駆動開発
    yojik
    yojik 2024/07/06
  • 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仕様ファーストによるテスト駆動開発
    yojik
    yojik 2024/06/13
  • 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]
    yojik
    yojik 2024/04/10
  • Python3.12で新たにサポートされたsub-interpretersの紹介 | gihyo.jp

    門脇(@satoru_kadowaki)です。11月の「Python Monthly Topics」は、Python 3.12の新機能であるsub-interpretersについて紹介します。 2023年10月2日に「 Python 3.12.0 」がリリースされました。今回も気になる新機能が多く、記事で紹介するsub-interpretersもPythonで並列処理を行うための新機能です。 Python 3.12の新機能については以下のリンクを参照してください。 What’s New In Python 3.12 -Python 3.12.0 Documentation 記事ではPythonにおける並列実行のこれまでと、sub-interpretersが現状どのように使用できるかについて説明します。 なお、執筆にあたり先日開催されたPyCon APAC 2023において、sub-in

    Python3.12で新たにサポートされたsub-interpretersの紹介 | gihyo.jp
    yojik
    yojik 2023/11/30
  • バグは“数千パターンのテスト”をすり抜けた ―NTTデータ「2023/10/10 全銀ネット障害」について説明 | gihyo.jp

    バグは“数千パターンのテスト”をすり抜けた ―NTTデータ「2023/10/10 全銀ネット障害」について説明 NTTデータグループは2023年11月6日、10月10日に発生した全国銀行データ通信システムの障害に関する記者説明会を実施、現時点で判明している障害の概要について説明を行うとともに、再発防止策に向けたタスクフォースの設立などについて明らかにしました。会見の冒頭、NTTデータグループ 代表取締役社長 間洋氏は、今回の障害により全国の預金者や金融機関をはじめとする社会全体に大きな混乱をもたらしたことを謝罪し、今後の原因究明と再発防止に向け、全国銀行試験決済ネットワーク(以下、全銀ネット)とともに全力をかけて取り組むことを明言していました。 記事では会見の内容をもとに、現時点で判明している10月10日の事故の原因についてレポートします。 2023年10月10日 ―なにが起こったのか

    バグは“数千パターンのテスト”をすり抜けた ―NTTデータ「2023/10/10 全銀ネット障害」について説明 | gihyo.jp
    yojik
    yojik 2023/11/10
    一連の経緯とバグの中身を一冊の書籍にしてほしい。絶対に有用だと思う。
  • 実践IPFS入門

    菊池将和(きくちまさかず) 外資系証券会社で金融商品開発責任者を経て,ハーバード大学でソフトウェア・エンジニアリングの修士号を取得。ブロックチェーンエンジニアとしてSecuritize Japanに参画後,2020年のハッカソンでEthereum Foundation,Protocol Labsから賞を受賞したことをきっかけにConsenSys主催のアクセラレータに採択される。現在はWeb3メンターやETHGlobalハッカソンの審査員を務める一方,スイスを拠点にSecured Finance AGを立ち上げ,DeFi(分散型金融)・デジタル資産領域における革命的なFixed Income市場の整備を先導。設立半年で$4Mを調達。内閣府Trusted Web推進協議会のタスクフォース委員も務める。 第1章 IPFSについて 1.1 IPFSの概要 1.1.1 IPFSの概念と定義 1.1.

    実践IPFS入門
    yojik
    yojik 2023/10/24
  • MisskeyにおけるVueのComposition APIの活用 | gihyo.jp

    連載は分散型マイクロブログ用ソフトウェアMisskeyの開発に関する紹介と、関連するWeb技術について解説を行っています。 以前から紹介していますが、MisskeyフロントエンドUIフレームワークとしてVue 3を採用しており、そのVueの新しい機能であるComposition APIも活用しています。 今回はそのComposition APIについて解説します。 Composition APIとは 簡単に言うと、Vueのコンポーネントには以下の2通りの書き方があります。 Options APIを使った今までの書き方 Composition APIを使った新しい書き方 Composition APIのほうが新しいですが、現時点では従来のOptions APIが非推奨になったりはしておらず、Vueのドキュメントを見てもどちらも同じくらい「推して」いるようです。 (個人的な意見では、書き

    MisskeyにおけるVueのComposition APIの活用 | gihyo.jp
    yojik
    yojik 2023/09/12
  • 第7回 テストコードの認知負荷 ~テストの名前、構造、情報量を工夫する~ | gihyo.jp

    サバンナ便り ~ソフトウェア開発の荒野を生き抜く~ 第7回テストコードの認知負荷 ~テストの名前⁠⁠、構造⁠⁠、情報量を工夫する~ 開発の現場では、既存のテストコードから仕様を読み解く機会がよく訪れます。そのようなとき、テスト対象の仕様やテストの意図を読み解きやすいテストとそうではないテストがあることに気付きます。今回はテストコードの読み解きやすさに寄与する要素を考えます。 認知資源と認知負荷 人間は何かを読み解くときに脳のリソース(脳内のワーキングメモリ)を使います。リソースの量は有限で、個人差があります。このような脳のリソースは「認知資源」と呼ばれています。 人間が何かを読み解くときに認知資源が何にどのくらい割かれているかという概念を「認知負荷」と言います。「⁠どのくらい」は状況に左右されます。たとえば、読み解く対象を知っているかどうかで認知資源が割かれる量は変化します。「⁠何に」も状

    第7回 テストコードの認知負荷 ~テストの名前、構造、情報量を工夫する~ | gihyo.jp
    yojik
    yojik 2023/08/22
  • 第6回 自動テストのサイズダウン戦略 ~テストダブルを作る前に考えるべきこと~ | gihyo.jp

    このコラムの主なテーマは、信頼できる実行結果にできるだけ短い時間でたどり着く自動テスト群の構築です。稿では、テストダブルをうまく活用してテストピラミッドを構築する戦略を立てます。 信頼性の高い自動テスト群を求めて 自動テスト全体の中長期的な信頼性を守るために、図1のようにLargeからMediumへ、MediumからSmallへテストサイズを適宜下げ、テストピラミッドを構築します[1]。テストサイズとは、単一プロセスに閉じたテストをSmall、単一マシンに閉じたテストをMedium、そういった制約がないテストをLargeテストと呼ぶ分類基準です。 図1 テストピラミッド サイズダウンを考えるとき、テストダブルの活用が思い浮かびます。テストダブルとは、自動テストに使用する偽物、代用品のことです。単一プロセスや単一マシンに収まらない外部依存を偽物に置き換え、テストサイズを下げます[2]。 テ

    第6回 自動テストのサイズダウン戦略 ~テストダブルを作る前に考えるべきこと~ | gihyo.jp
    yojik
    yojik 2023/06/28
  • ChatGPT APIを取り巻くライブラリ 〜LangChainとguidanceの紹介 | gihyo.jp

    こんにちは! 逆瀬川(@gyakuse)です! 前回はOpenAIが公開しているChat APIWhisper APIを用いて議事録文字起こしアプリケーションを作ってみました。今回は、Chat APIを便利に使うためのライブラリであるLangChainとguidanceを紹介していきます。 なぜ便利に使うためのライブラリが必要なのか? 単純にChat APIにリクエストを送るだけであれば、各言語に用意されたライブラリを使うだけで良いでしょう。たとえば、Pythonにおいてはopenai-pythonが用意されています。前回紹介したとおり、Chat APIを使うだけなら以下のようなリクエストを作るだけで済みます。 import openai openai.api_key = "sk-..." # APIキー completion = openai.ChatCompletion.create

    ChatGPT APIを取り巻くライブラリ 〜LangChainとguidanceの紹介 | gihyo.jp
    yojik
    yojik 2023/05/25
  • ネクストブレイク分散型SNSの大本命、Blueskyを先取り! | gihyo.jp

    今、分散型SNSへの注目が高まっています。4月に入り、日での盛り上がりの兆しを見せ、ネクストブレイクの大命と見られているのがBlueskyです。記事では、Bluesky登場の背景から分散型SNSの特徴、そして、今後について紹介します。 招待コード無限祭りで注目を集めたBluesky 先日、2023年4月5日にBlueskyの「招待コード無限祭り」がありました。 Blueskyとは、次世代のTwitterになるのでは、と目されている大命の分散型SNSのこと。 この分散型SNSに参加するには、2023年4月10日現在、招待コードが必要となります。 Blueskyリリース以降、招待コードはサーバ管理者のみ発行可能でした。しかし、先日のアップデートによって、Blueskyにアカウントを持つユーザは、回数限定(最大5回)で招待コードを発行できるようになったのです。 話はここで終わりません。今

    ネクストブレイク分散型SNSの大本命、Blueskyを先取り! | gihyo.jp
    yojik
    yojik 2023/04/11
  • ChatGPTのおさらいと、プログラミングに活用するための第一歩 | gihyo.jp

    大量の文章から学習することで、多言語を取り扱う能力だけでなく、高度な推論能力まで手に入れました。 GPT-3.5、とりわけその初期モデルのCodexはGitHubに存在する5400万の公開リポジトリから採取された159GBのPythonコードでGPT-3をfine-tuning(微調整)することで生まれました。ChatGPTがとりわけPythonが得意なのはここから来ています。 ChatGPTの学習データを考えることはその能力を発揮させるときに極めて有効です。質問時も以下のように、『⁠涼宮ハルヒの憂』というライトノベル作品について日語で聞いたときはSOS団の略称を間違えるなどしますが、英語ではほぼ期待通りの回答を見せます。 図1 『ハルヒの憂』について日語で聞いた場合の回答 図2 『ハルヒの憂』について英語で聞いた場合の回答 知ったかぶりをするChatGPT ところで、ChatG

    ChatGPTのおさらいと、プログラミングに活用するための第一歩 | gihyo.jp
    yojik
    yojik 2023/03/23
  • 第607回 n8nでWebサービスを繋いだワークフローを自動化する | gihyo.jp

    設定値を入力したら、ダイアログ右上にある「Execute Node」をクリックしてください。設定した内容でノードが処理を実行し、結果が表示されます。画像のURLを含むJSONが取得できていれば問題ありません。右上の「×」をクリックしてダイアログを閉じてください。 図3 HTTP Requestノードにパラメータを設定し、実行してみた状態。ResultsとしてAPIが返したJSONが表示されていれば成功 Slack Appの用意 次に、画像を投稿するSlack側の設定を行います。まず発言を行うためのSlack Appを用意します[1]⁠。Slack APIのページを開き、「⁠Create an App」をクリックして新しいSlack Appを作成します。Slack Appの名前と、インストールするSlackワークスペースを決めてください。 図4 Slack Appの名前とインストールするワー

    第607回 n8nでWebサービスを繋いだワークフローを自動化する | gihyo.jp
    yojik
    yojik 2023/03/16
  • 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言語プログラミングエッセンス
    yojik
    yojik 2023/02/16
  • Androidユーザ朗報、次世代ワイヤレス充電規格「Qi2」が登場 | gihyo.jp

    CES 2023では、新技術を搭載したディスプレイやクルマなどの製品やプロトタイプがお披露目されました。こうした中で、Wireless Power Consortium(WPC)が発表した、次世代ワイヤレス充電規格「Qi2」は、日常の不便を解消して、可能性を広げてくれそうなので取り上げます。 Homepage | Wireless Power Consortium Qiのおさらい Qi2は、スマートフォンなどに搭載されているワイヤレス充電規格「Qi」の次世代規格です。 Qiが登場したすぐは、最大出力が5W止まりだったこともあり、充電に時間がかかり「もっさり充電」と揶揄されることもありますが、最大出力が15Wに引き上げられてからは、充電時間が気になることはなくなりました。たとえば、Google Pixel Stand 2のように、対応端末を限った独自の充電規格を使えば最大23Wで充電できる製

    Androidユーザ朗報、次世代ワイヤレス充電規格「Qi2」が登場 | gihyo.jp
    yojik
    yojik 2023/01/26
  • gihyo.jp編集部におけるMarkdown記法 | gihyo.jp

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

    gihyo.jp編集部におけるMarkdown記法 | gihyo.jp
    yojik
    yojik 2022/08/05
  • Webエンジニアの新しい道 ~LINE Blockchain Labが拓くブロックチェーンの世界 | gihyo.jp

    インタビュイー LINE Blockchain Engineeringチーム Software Engineer 高橋史季氏(左)、高瀬亮氏(右) LINEでは独自ブロックチェーンとして「LINE Blockchain Mainnet/Testnet」を運営しており、開発プラットフォームである「LINE Blockchain Developers」を通じてブロックチェーンサービスを構築できる環境を整えているほか、暗号資産として「LINK」も発行しています。LINEにおけるこれらの取り組みをリードしているのが「LINE Blockchain Lab」であり、ブロックチェーンに関するさまざまなプロジェクトが進められています。 特徴的なのは、ブロックチェーンの研究・開発でありながらも、Webを中心とした汎用的な技術を活用しながら未来の社会に向けた取り組みを行っている点です。今回、このLINE B

    Webエンジニアの新しい道 ~LINE Blockchain Labが拓くブロックチェーンの世界 | gihyo.jp
    yojik
    yojik 2021/06/07
  • UXからWebの世界を広げるLIFFの可能性 | gihyo.jp

    インタビュイー LINE株式会社 京都開発室 UIT1チーム 岡拓也(左) LINE株式会社 フロントエンド開発センター UIT1室 Front-end Dev7チーム 佐藤信吾(右) LINEはWebアプリのプラットフォームとして、「⁠LIFF」(⁠LINE Front-end Framework)を提供しています。このLIFFはLINE社内での開発に利用されているほか、外部の開発者にもSDKが提供されており、これを利用することで自身で開発したアプリからLINEプラットフォームの機能にアクセスすることが可能になります。このLIFFの概要や開発者にもたらすベネフィットなどについて、フロントエンド開発組織においてLIFF開発に携わる岡氏と佐藤氏にお話を伺いました。 LINEミニアプリの基盤としても使われるLIFF ――LINEが提供している「LIFF」とはどういったものでしょうか。 岡

    UXからWebの世界を広げるLIFFの可能性 | gihyo.jp
    yojik
    yojik 2021/04/21
  • 第655回 オブジェクトストレージ、MinIOを使用する | gihyo.jp

    今回はGoで書かれたオブジェクトストレージサーバーであるMinIOを使用する方法を紹介します。 オブジェクトストレージサービスとMinIO オブジェクトストレージという名称を聞くようになって久しいですが、あまり身近でないというケースも多いでしょう。一方オブジェクトストレージを提供するサービスは確実に増加していて、最近ではWasabiが国内でもサービス開始しています。非常に安価なのが特徴で、1TBまでであれば月834円というのはなかなかに魅力的です。また「さくらのクラウド」でもオブジェクトストレージの提供を再開するとのことです。 オブジェクトストレージは従来のストレージとは考え方が違うので、手元に検証環境を作りたい、あわよくばそのまま運用をしたいと考えるかもしれません。そのような場合には、まずMinIOを使用してみるといいでしょう。 MinIOはオープンソースでマルチプラットフォームなオブ

    第655回 オブジェクトストレージ、MinIOを使用する | gihyo.jp
    yojik
    yojik 2021/02/25