タグ

*programとwebappに関するsh19910711のブックマーク (1,011)

  • WebAssembly上で動くLunaticランタイムを使ったHTTPサーバーを実装する

    「Lunatic」という少し前から注目している技術があります。これは WebAssembly 上で動く Erlang にインスパイアされたランタイムで、Rust で実装されています。WebAssembly 形式でのバイナリを実行できる言語なら、どんな言語でもこのランタイムの上であれば理論的には動かすことができるようです。さまざまな言語のプラットフォームとして動く、セキュリティ面などの基的な WebAssembly のメリットを享受することができます。 さて、Rust のエコシステムの一部として Lunatic を見てみると、Lunatic は tokio などと同様「非同期ランタイム」に位置付けられるものではないかと思います。下記の特徴をもつランタイムといえるでしょう。 Lunatic は WebAssembly を利用していることから、たとえば C とのバインディング時にもより安全に利

    WebAssembly上で動くLunaticランタイムを使ったHTTPサーバーを実装する
    sh19910711
    sh19910711 2025/10/06
    2022 / "Lunatic: WebAssembly 上で動く Erlang にインスパイアされたランタイム / C とのバインディング時にもより安全に利用できるなどのセキュリティ面でのメリットが強調"
  • UnityのWebビルドで作るブラウザ版REALITY|REALITY株式会社

    REALITYでUnityエンジニアをしている若旦那です。 REALITYでは 2025/4/1 に、エイプリルフールの企画として「ブラウザ版REALITY」をリリースしました。 企画の内容については以下のリンクをご確認ください! https://reality.app/notice/page/c89yfbda2qaa 今回はこの 「ブラウザ版REALITY」の技術的な側面を話していきます。 REALITYアプリのアーキテクチャとWebへ移植した場合の構成REALITYのスマートフォンアプリまずは iOS / Android 版REALITYアプリのアーキテクチャについて簡単に説明し、そこからどのような形でWebへ移植していくかを節で話していきたいと思います。 iOSアプリは、Swiftで実装されているネイティブ部分とUntiyで実装された3D View部分がある図のようにモバイルアプリ

    UnityのWebビルドで作るブラウザ版REALITY|REALITY株式会社
    sh19910711
    sh19910711 2025/10/05
    "C#スクリプトは、モバイル向けと同様で、IL2CPPを用いてまずC++のコードに変換 / その後は emscripten を用いて WebAssembly に変換されてブラウザで実行"
  • GoのWasmでのWebRTC P2Pの検証+α

    sh19910711
    sh19910711 2025/09/27
    2024 / "Ebitengine: Goの2Dゲーム作成ライブラリ + Wasmにビルド可能 / NATを跨いだP2P通信の際にTURNサーバーを経由 + 全体の10%〜20%の通信でTURN経由が必要"
  • ボードゲームのWebアプリ化を支援する汎用ゲームエンジン「Dagaz」を作っている話 / (1) 設計思想について

    はじめに この記事は、「ボードゲーム・パズルプログラミング Advent Calendar 2022」および「上智大学エレラボ Advent Calendar」第1日目の記事です。 「こんなボードゲームのアプリケーションを実装してみたいけど、ゼロから自分で全部作るの面倒だな...」 「このボードゲームが面白そうだから遊んでみたいけど、一緒に遊べる人が身近にいない!」 皆さん、そんな経験をしたことはありませんか? この記事ではそんな問題へのひとつの解決策として、私が開発に参加している「Dagaz」というボードゲームエンジンを紹介します。また、その基的な設計思想を解説した上で、OSSとして開発を進めていく上で現在直面している問題にいくつか触れます。 次回の記事では、Dagazが現在抱えている技術的な問題点を説明し、その改善に興味を持って下さる方に向けた情報を提供する予定です。 次回記事を書き

    ボードゲームのWebアプリ化を支援する汎用ゲームエンジン「Dagaz」を作っている話 / (1) 設計思想について
    sh19910711
    sh19910711 2025/09/27
    2022 / "様々なボードゲームを静的なWebアプリとして実装できるゲームエンジン / ルールの記述には、"Zillions Rules File (ZRF) "というLispのS式っぽい見た目をしている専用DSLを利用"
  • Documenter.jlでウェブサイトを作って公開するまで

    前置き できるようになること Julia のパッケージである Documenter.jl を使ってマークダウンからHTMLを生成し,GitHub Pagesを使って公開するまでの流れをまとめます. 私はこれを使って自分のウェブサイトを作成して公開しています.以下のリンクから良ければご覧ください. おことわり きっと,もっと上手なやり方があります.Twitterにて助言いただいている箇所もたくさんありますが,私ができたレベルでご紹介します.私もスキルレベルを上げて進化させていく所存です.私のスキルアップに伴ってこの記事も進化していく予定です. 普段は大学院生をしていて,プログラミングをゴリゴリ使うような研究をしているわけではありません.これは全て独学+Twitterで優しい方々から教えていただいたことを参考にまとめています.記事内の専門用語などに違和感がありましたらコメント等で教えてください

    Documenter.jlでウェブサイトを作って公開するまで
    sh19910711
    sh19910711 2025/09/16
    2021 / "Documenter.jl を使ってマークダウンからHTMLを生成し,GitHub Pagesを使って公開する / Markdownによって数式の挿入も簡単にできるので,大学や大学院でのゼミ資料の作成にも利用"
  • Cloudflare Containers使ってみた

    sh19910711
    sh19910711 2025/09/12
    "Cloudflareが提供するエッジネットワーク上で、コンテナを実行するための基盤 / Workers単体だと難しかった用途に使える / 任意言語のバックエンド"
  • Cloudflare WorkersのCron Triggersでリリース当番通知botを作った話 - ベースマキナ エンジニアブログ

    こんにちは、syumaiです! ベースマキナでは、現在Cloudflare WorkersのCron Triggersを活用したリリース当番通知botを社内で運用しています。このbotは、リリース対象日の朝にリリース担当メンバーにメンションを行います。実装はTypeScriptで行われています。 今回の記事では、 なぜリリース当番通知botを作ることにしたのか なぜCloudflare Workersを使ったのか Cloudflare Workersによる定期実行Workerの実装例 などについて紹介させていただきます。 なぜリリース当番通知botを作ることにしたのか もともと、ベースマキナでは、リリース担当のメンバーを特に決めていませんでした。リリース担当が決まっていないと、自然と「直近機能開発を行ったメンバー」がリリースを自主的に行うようになります。すると、タスクの持ち具合によって、設

    Cloudflare WorkersのCron Triggersでリリース当番通知botを作った話 - ベースマキナ エンジニアブログ
    sh19910711
    sh19910711 2025/09/01
    2024 / "Cloudflare Workersは、実は「定期的にJavaScriptを実行する基盤」として非常に手軽 / メールの受信をTriggerとしてWorkerを起動するEmail Triggers / jsx-slack: Slackのメッセージを表現するBlockをJSXで簡単に書く"
  • Honoとフロントエンドの 型安全性について

    DMMを支える決済基盤の技術的負債にどう立ち向かうか / Addressing Technical Debt in Payment Infrastructure

    Honoとフロントエンドの 型安全性について
    sh19910711
    sh19910711 2025/09/01
    "アプリ(Flutter)、WEB(Next.js)、管理画面(Next.js)の3つフロントがある / Next.jsには型をRPCで渡し、アプリにはOpenAPIで型を渡す"
  • モノリスRailsにマージキューを導入してデプロイフローを安定させる - Timee Product Team Blog

    こんにちは、タイミーでバックエンドのテックリードをしている新谷 (@euglena1215) です。 タイミーのバックエンドは、多くの開発者が関わるモノリスなRailsアプリケーションを中心に構成されています。記事では、このモノリスリポジトリのデプロイフローを安定させるためにGitHubのマージキューを導入した事例を紹介します。 記事が、masterブランチにマージしたコードでCIが頻繁に失敗し、開発プロセスに影響が出ているチームの参考になれば幸いです。 masterブランチのCIが頻繁に失敗していた タイミーのモノリスRailsリポジトリでは、1日に20件以上のPull Requestがマージされることもあります。多くの開発者が同時に開発を進める中で、ある問題が頻発していました。 それは「他の人の変更がmasterブランチに取り込まれたことに気付かず、古いmasterを元にしたPul

    モノリスRailsにマージキューを導入してデプロイフローを安定させる - Timee Product Team Blog
    sh19910711
    sh19910711 2025/08/03
    "最新のmasterと合体させた状態でCIを実行し、成功したものだけを自動でマージする仕組み / privateリポジトリで利用する場合、GitHub TeamsプランではなくGitHub Enterprise Cloudプランの契約が必要"
  • ElasticsearchのためのSearchkickの導入 - Spacely Tech Blog

    はじめに 株式会社スペースリーのWebエンジニアの小澤です。弊社のプロダクトの中で、私は主に物件管理サービスを開発しており、物件一覧の検索基盤をAlgoliaからElasticsearchにリプレイスしました。このサービスはRuby on Railsで開発しており、稿ではElasticsearchに関わるGemとしてSearchkickを選択した理由を説明します。 Searchkickとは Searchkickは、RailsとElasticsearchまたはOpensearchを用いた検索機能の実装をサポートするGemです。Searchkickを使うと、複雑な検索クエリの組み立てを簡易化し、可読性の向上や実装コストの削減に役立ちます。また、ElasticsearchおよびOpensearchの最新バージョンにも対応しています。 ElasticsearchのGemを調査 はじめはElast

    ElasticsearchのためのSearchkickの導入 - Spacely Tech Blog
    sh19910711
    sh19910711 2025/07/28
    2024 / "Searchkick: 複雑な検索クエリの組み立てを簡易化し、可読性の向上や実装コストの削減 / Chewy: ActiveRecordライクなクエリDSLを提供し、簡潔で分かりやすいクエリを記述できる + モデルとインデックスを分離"
  • 型付き API リクエストを実現するいくつかの手法とその選択 / Typed API Request

    TSKaigi Kansai 2024 https://kansai.tskaigi.org/talks/euxn23

    型付き API リクエストを実現するいくつかの手法とその選択 / Typed API Request
    sh19910711
    sh19910711 2025/07/28
    2024 / "誰がOpenAPIを書くか(=API仕様を決めるか)に応じて選択 / みんなで書くなら実装ベースじゃない方が議論もしやすい / TypeSpec: TypeScript/C#風味のDSLでOpenAPI Schemaを書ける"
  • ConnectによるgRPCを超えたスキーマ駆動開発(Golang/TypeScript)

    こんにちは。PortalKeyの植森です。 前回、PortalKeyの主要技術に関してざっくりと解説をしました。 今回は、その中のひとつであるConnectについて掘り下げていきます。 Connectとは? Connectは、Buf Technologies社が開発したRPCフレームワークです。Protocol Buffersによって通信を定義し、効率的なサーバー/クライアント間通信を実現します。 まずはConnectの特徴について解説していきます。 Production-grade simplicity: 番運用のシンプルさ Connectは番運用でのシンプルさを特徴の1つとしています。 gRPCは通信するためにgRPCクライアントや grpcurl のようなツールを使わなければ通信することが困難であったり、Webから利用する場合 gRPC-Web を使う必要がありそのために Env

    ConnectによるgRPCを超えたスキーマ駆動開発(Golang/TypeScript)
    sh19910711
    sh19910711 2025/07/26
    "Protocol Buffersを利用した型安全かつスピード感のある開発をサポート / 標準を大事にしていることで、独自仕様に悩まされず今まで培った経験や技術をきっちりと活かすことができる"
  • Deno 2.1でWasmをimportできるようになったらしい

    WebAssembly Advent Calendar 2024の5日目の記事になります. 先月,Deno 2.1がリリースされ,Wasmを直接importできるようになりました. Deno 2.1: Wasm Imports and other enhancements 従来のWasmサポート Denoは今までもWasmをサポートしてきました. 例えば次のようなWATファイルを用意します. このWATファイルは,ポインタと文字列長を受け取るconsole_log関数をインポートし,_start関数を実行すると"Hello, Wasm!"のポインタと文字列長をconsole_log関数に渡します. ;; main.wat (module (import "env" "console_log" (func $log (param i32 i32))) (memory (export "mem

    Deno 2.1でWasmをimportできるようになったらしい
    sh19910711
    sh19910711 2025/07/10
    2024 / "import構文を用いてWasmバイナリをインポートし,インスタンス化できるようになった / Wasmの型チェックもサポート / あくまでDeno上でWasmを便利に扱えるようになったという認識"
  • Hono と Cloudflare Images で Next.js の画像リサイズを再現する

    Hono Advent Calendar 2024 4 日目の記事です。遅れてすみません!!!!!!!!!!!!!!!!!!!!! 去年はかけなかったけど今年は書けたのでよかったです.......... TL;DR Cloudflare Images を使えば、Next.js の next/image による画像最適化を再現できます。さらに、Cloudflare Images の「blur」オプションを利用することで、base64 プレースホルダー画像をサーバー側で生成する必要がなくなり、処理が効率化されます。コスト面でも、Vercel の画像最適化機能($5/1000 枚[1])に比べ、Cloudflare Images は大幅に安価($0.5/1000 枚[2])です。 デモ はじめに この記事は @cloudflare/next-on-pages や @opennextjs/clou

    Hono と Cloudflare Images で Next.js の画像リサイズを再現する
    sh19910711
    sh19910711 2025/07/08
    2024 / "Cloudflare Workers で base64 blur プレースホルダーの生成は可能ですが、SSR が著しく遅くなる問題が発生したため、Cloudflare Images の「blur」オプションを採用"
  • Next.jsのコンパイラから知るServer Actionsの完全解析 ~セキュリティ上の注意点も含めて~ - カミナシ エンジニアブログ

    はじめに StatHackカンパニーの渡邉です。 私の普段の取り組みをこちらで紹介しているのでこちらもどうぞ。 note.kaminashi.jp 私たちKaminashiでは、さまざまなプロダクトにNext.jsを採用し始めています。 今回のブログではNext.jsの最も特徴的な機能の一つであるServer Actionsに関してフォーカスし、それがどういう仕組みで動いているのかコンパイラのソースコードを確認しながら解説し、 最後に実装上の注意点について述べます。 特にServer Actionsの具体的な中身の解説に関してはヘビーなので、実装上の注意点だけ見てもらうだけでも良いかもしれないです。 それではやっていきましょう。 Server Actionsとは? Server ActionsとはNext.js v14から正式にリリースされた機能で、従来フロントエンドのために記述していたR

    Next.jsのコンパイラから知るServer Actionsの完全解析 ~セキュリティ上の注意点も含めて~ - カミナシ エンジニアブログ
    sh19910711
    sh19910711 2025/07/06
    "従来フロントエンドのために記述していたReactの中にサーバ (Rest APIなど) が持つべき機能を記述 / SQLのクエリもReactの関数の中に記述できる"
  • ruby/ruby.wasm を使って Redmine をブラウザ内で動かす話

    Ruby on Rails アプリケーションである RedmineWasm 化を試しました。 基機能は動作しましたが、ディスクアクセスが必要な機能(例: 添付ファイルのアップロード)は動作しませんでした。 Mastodon in the browser demo を参考に、RedmineWasm 化する手順を解説します。 前田 稔です。プログラミング言語Rubyの国際会議 RubyKaigi 2024 のセッション「RubyGems on ruby.wasm」で紹介された Mastodon in the browser demo を拝見し、 Redmine も同様にブラウザ内で動作させられるのではないかと考えました。記事では、その検証結果と Wasm 化の手順についてまとめています。 期待と検証結果 MastodonRuby on Rails で開発されたアプリケーシ

    ruby/ruby.wasm を使って Redmine をブラウザ内で動かす話
    sh19910711
    sh19910711 2025/07/06
    2024 / "ruby/ruby.wasm リポジトリ内の Dockerfile を基に環境を構築 / 静的サイトとしてホスティングできるため、運用コストが低減されることや、セキュリティリスクが抑えられる"
  • py2wasm+WasmerでPython製WebAssemblyを動かす - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    py2wasm+WasmerでPython製WebAssemblyを動かす - Qiita
    sh19910711
    sh19910711 2025/07/06
    2024 / "実行時オプションをRunOption型で定義し、runWasixにwasm moduleとともに渡し / WASIXプログラムにアクセスするためのInstanceが戻され + このinstanceから、標準出力やファイル出力、実行結果などにアクセス"
  • 高速な仮説検証を支えていくHasuraの導入 - enechain Tech Blog

    はじめに eScanチームの平田です。 eScanは日の電力事業に特化したリスク管理サービス(ETRMシステム)です。2022年から開発を始め、お陰様で今では徐々に導入いただける社数も増えてきています。まだまだ不足している機能はありますが、すべてのお客様が確実に必要とするであろうETRMの必須機能の実装は概ね終わっており、新規機能追加中心フェーズは終わりつつあります。これからは、よりお客様にとって価値のあるサービスになるような機能強化や改善を中心にする必要があると考えています。 今回は、eScanチームでの事業フェーズの変化に伴う開発プロセスの試行錯誤と、高速な仮説検証の補助として導入を進めているHasuraについてお話します。 フェーズの変化と仮説検証の必要性 「はじめに」に記載したとおり、徐々に新規機能追加中心のフェーズからより顧客への提供価値の最大化を目指すフェーズに差し掛かってい

    高速な仮説検証を支えていくHasuraの導入 - enechain Tech Blog
    sh19910711
    sh19910711 2025/07/05
    2024 / "Hasuraはデータベースから自動的にGraphQLのAPIを提供するツール / ロールベースでテーブル・行・列ごとに権限を管理 + リクエストごとに取得できる行数や集約クエリの許可など、柔軟に権限の設定"
  • APIテスト自動化の勘所

    Presentation slides: タワーズ・クエスト、バルテス、Postman 共催セミナー - 開発失敗につながる偏ったテストしてませんか? プロが教える当に考えるべきテストバ…

    APIテスト自動化の勘所
    sh19910711
    sh19910711 2025/07/05
    2024 / "優先順位: 頻繁に変更される部分 + 手動テストが困難または時間がかかる / テストコードは仕様や対象システムの変化に応じて腐り始める + アップデートができない、捨てられない、新しい価値に集中できない"
  • GraphQL APIをMCP Serverとして使えるApollo MCP Server

    GraphQL Queryを指定して起動 Apollo MCP ServerはGraphQL QueryがそのままMCPのToolsとして使うことができます。 この記事では、SpaceXの宇宙飛行士やロケット情報が公開されているGraphQL APIを例としてMCP Serverにしてみます。そして、企業情報を取得するQueryとロケットの打ち上げ情報を検索するQueryの二つを用意しました。 企業情報を取得するQuery query FindLaunches( $apoapsis_km: Float $block: Int $cap_serial: String $capsule_reuse: String $core_flight: Int $core_reuse: String $core_serial: String $customer: String $eccentricity:

    GraphQL APIをMCP Serverとして使えるApollo MCP Server
    sh19910711
    sh19910711 2025/07/05
    "Apollo MCP Server: 既存のGraphQL APIをそのままに、特別な開発や大きな変更を加えることなく、MCP Serverとして動かす + GraphQLの設定を渡すだけ"