タグ

2024年10月14日のブックマーク (22件)

  • 現場課題に向き合い MLOps成熟度を高める道

    SaaS型Webサービス「カオナビ」のチーム開発でPackage by Featureを取り入れた話/Implementing Package by Feature in kaonavi

    現場課題に向き合い MLOps成熟度を高める道
    sh19910711
    sh19910711 2024/10/14
    "正しいプロセスで実験を素早く多数行いたい / 管理を自動化することで再現性を担保し結果の共有や可視化が容易に / 実験記録: 目的、背景、手法、データセット、結果、考察、ネクストアクションをテンプレにする" '23
  • Scala の Wasm バックエンドを実装した

    Scala.js 1.17.0 で実験的な Wasm backend がサポートされました! リリースノートに書いてあるとおり、以下のような設定をすることでScala.jsがJSの代わりにWasmモジュール(とモジュールに渡すJS object)を生成することができます。 @JSExport によるモジュールのexportがサポートされていませんが、それ以外のsemanticsはサポートされており、既存のScala.jsアプリケーションを変更なしにWasmにビルドすることが可能なはずです。(もし何か問題があれば教えて下さい!) // Emit ES modules with the Wasm backend scalaJSLinkerConfig := { scalaJSLinkerConfig.value .withExperimentalUseWebAssembly(true) //

    Scala の Wasm バックエンドを実装した
    sh19910711
    sh19910711 2024/10/14
    "Scala.js 1.17.0 で実験的な Wasm backend がサポート / 現時点では Scala.js の JS backend + Google Closure Compiler を使って最適化したものの方が、Wasm backend よりも小さいコードを生成"
  • jax/flaxの思想:オブジェクト指向との違い

    はじめに jax/flaxはTensorFlow, PyTorchに次ぐ第3の選択肢として新しくGoogleによって開発された深層学習用フレームワークです。 jaxを使うと簡単に高速化ができますが、設計思想がオブジェクト指向の考え方からかなり違うものになっていて、慣れないとプログラムがうまく書けません。 特に、疑似乱数やTrainStateなど内部状態については真逆とも言える考え方をしていて、オブジェクト指向で作ったプロジェクトの移行には設計の見直しが必要になります。 そこで、筆者なりにjax/flaxの設計思想とオブジェクト指向の違いを解説してみました。 jax/flaxの紹介や使い方、チュートリアルは他の記事に譲ることとして、この記事では なぜ疑似乱数を使うときに不便そうに見える書き方をするのか TrainStateとは何者なのか、継承して変更を加えるときの指針 を中心に解説します。

    jax/flaxの思想:オブジェクト指向との違い
    sh19910711
    sh19910711 2024/10/14
    "学習率が更新される=状態を持っています / 状態クラスはモデルとオプティマイザの更新用関数を知っており、状態を更新するときにこれら更新用関数を使って新しいインスタンスを生成" '23
  • KubernetesとGaugeを活用したTDD開発事例

    XP祭り2018の発表資料です。 発表した時の資料より文字を多くしてます。

    KubernetesとGaugeを活用したTDD開発事例
    sh19910711
    sh19910711 2024/10/14
    "E2Eテストとは自動テストとして実行可能なドキュメント / Gauge: Markdown形式で記述可能 + 並列実行のサポート / 「仕様を書く」という意識を高めないと良いE2Eにはならない" '18
  • Arduino Nanoを単4電池で動かすボードを作った - inajob's blog

    この記事ははJLCPCBの提供でお送りします。 JLCPCBとは jlcpcb.com (↑こちらは日語版のログインページで、お得なクーポンも配布されています。) JLCPCBとは、プリント基板製造などで有名な香港の企業です。 日からでもWebページでポチポチするだけでKiCADなどで作成した基板データの製造を依頼できます。 値段もかなりお手頃で、ホビー電子工作ユーザーの間では広く利用されています。 この記事の作例もJLCPCBに基板を発注して実現しました。 どういうもの? Arduino NanoはArduino UNOと同じATMega328を搭載した、小型の開発ボードです。 小型ゆえそのまま製品に組み込みやすく、例えば私の作っている電子楽器のRakuChordでも、このボードをそのまま組み込んでいます。 Arduino Nanoの電源はUSBコネクタを経由して供給するのが普通です

    Arduino Nanoを単4電池で動かすボードを作った - inajob's blog
    sh19910711
    sh19910711 2024/10/14
    "開発ボード: 機能の選別について、かなりのデザインセンスが必要 + あれもこれも機能を乗せたいという気持ちもありつつ、色々乗せれば乗せるほど基板が大きくなったり、部品点数が増えてしまったりとトレードオフ" '23
  • Property based testing を試してみよう - Qiita

    Property based testingとは 歴史的な背景として2000年にJohn HughesとKoen Clasessenによって 開発されたQuickCheckがProperty based testingとしてHaskellエコシステムに実装されました。 QuickCheckはプロパティ(特定の入力が与えられると出力として期待される特性) を与えることで、 テストデータをランダムに生成して、失敗するケースを見つけるHaskellで実装されたフレームワークです。 それによってテスト対象のシステムがプロパティに従っているかどうかをチェックします。 QuickCheckは単体テストだけではなく、統合テストやサンプルベースのテスト等幅広く使われています。 このテスト方法はProperty based testingとして知られるようになりました。 2020年現在は、HaskellのQ

    Property based testing を試してみよう - Qiita
    sh19910711
    sh19910711 2024/10/14
    "QuickCheck: プロパティ(特定の入力が与えられると出力として期待される特性)を与えることでテストデータをランダムに生成して失敗するケースを見つける / このテスト方法はProperty based testingとして知られるように" '20
  • Terraform x OPA/Conftest の tips

    OPA/Conftest で Terraform を扱う際の tips のまとめ

    Terraform x OPA/Conftest の tips
    sh19910711
    sh19910711 2024/10/14
    "Terraform plan: リソースとそれに対する変更一覧 + リソースの情報 + 加える操作 + 変更前/変更後の状態 / foo.regoに対してfoo_test.regoというファイルを用意 / 任意の箇所にtrace(string)を仕込むことでデバッグ出力が可能" '21
  • IaLを活用したAWS FargateでのStreamlitアプリケーションデプロイ - Terraformによる自動化の実践 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 近年、インフラストラクチャ管理の分野で注目を集めているのが「IaL(Infrastructure as Language)」という概念です。IaLは、自然言語での要件定義とAIによるコード生成を組み合わせることで、インフラ構築のプロセスを大幅に簡素化し、効率化することを目指しています。 記事では、IaLの概念を活用し、AWS FargateでStreamlitアプリケーションをデプロイする過程を詳しく解説します。Terraformを使用したインフラストラクチャのコード化(IaC)と、Dockerを用いたアプリケーションのコン

    IaLを活用したAWS FargateでのStreamlitアプリケーションデプロイ - Terraformによる自動化の実践 - Qiita
    sh19910711
    sh19910711 2024/10/14
    "IaL: 自然言語での要件定義とAIによるコード生成を組み合わせることで、インフラ構築のプロセスを大幅に簡素化"
  • Rustで作るプログラミング言語 - ぱたへね

    だいたいやりたいところまでやったので感想を。 めっちゃ良いなので、自作プログラミング言語興味ある人にお勧めです。 gihyo.jp どんな Rustを使ってスタックマシーン、パーサー、ASTインタープリター、バイトコードコンパイラ、実行環境を作っていきます。型チェックのシステムやコルーチン等のトピックもあり、実際に動く所までやります。 Rustの説明は少なめで結構いろんなテクは使われているので、別途Rustは必要です。途中からはパーサー(+トーカナイザー)として、ライブラリのnomを使います。yaccのように別途設定ファイルがなく、ソースコードにrustの文法で直接ルールを書いていくスタイルです。 ソースコードは段階毎にgithubに公開されていて、写経するならそこを見ながらやれば大丈夫です。 github.com 対象読者 の対象読者はこう書かれています。 いずれかの言語で中級

    Rustで作るプログラミング言語 - ぱたへね
    sh19910711
    sh19910711 2024/10/14
    "Rustを使ってスタックマシーン、パーサー、ASTインタープリター、バイトコードコンパイラ、実行環境を作っていきます。型チェックのシステムやコルーチン等のトピックもあり、実際に動く所まで"
  • DIDと傾向スコアを用いた手法の使い分け - まずは蝋の翼から。

    なにを書くか 岩波DS vol.3(因果推論)のp.91で傾向スコアを用いて「スマホアプリ利用時間」に対する「CM接触効果」を調べるようなデータについて。文中では、傾向スコア(Propensity Score)を用いて平均CM接触効果(ATE)を測っているが、これはCM施策前後の比較としてDID(Difference In Difference)でもできるのでは?と考えて調べました。 岩波データサイエンス Vol.3 発売日: 2016/06/10メディア: 単行(ソフトカバー) github.com では、そもそも どういうときに傾向スコアを用いて、どういうときにDIDを使うのか? という疑問がわいたので、主に使い分けについて記載します。 なお、各手法の概要は以前書いた以下を参照。 knknkn.hatenablog.com knknkn.hatenablog.com 結論 それぞれ

    DIDと傾向スコアを用いた手法の使い分け - まずは蝋の翼から。
    sh19910711
    sh19910711 2024/10/14
    "どういうときに傾向スコアを用いて、どういうときにDIDを使うのか / それぞれ使用するにあたり前提として置く仮定に必要となる共変量の性質が違うため、利用可能な共変量に従って使う / 岩波DS vol.3(因果推論)のp.91" '19
  • Haskellで型レベルパーサー

    ghc-9.6.1です。 GHCはChar kindが9.2で入ったので型レベルパーサーが書ける様になってるんですよね。ということで書いてみました。 BNFは以下です: expr ::= term *('+' term) term ::= factor *('*' factor) factor ::= '(' expr ')' | nat nat ::= 0 | 1 | 2 | ... | 9 {-# Language TypeData #-} {-# Language DataKinds #-} {-# Language TypeFamilies #-} {-# Language UndecidableInstances #-} {-# Language TypeApplications #-} {-# Language MagicHash #-} {-# LANGUAGE NoStar

    Haskellで型レベルパーサー
    sh19910711
    sh19910711 2024/10/14
    "GHCはChar kindが9.2で入ったので型レベルパーサーが書ける様になってる / case, let, 高階関数がない状態でのプログラミングは非常につらい" '23
  • 「状態を保つ」という楽しさの話、あるいは「ピクミン3」の持つ面白さの本質 - GAME LIFE HACK

    さいきん「スーパーマリオ3Dワールド」にハマっている。 美しいグラフィック、様々なギミック、ステージごとに新たな発見が存在するという底の見えないアイデアの山とその組み合わせ方、少ないボタンから生み出される多彩なアクション、そしてキャラクターの可愛らしさ。 どれをとっても素晴らしい出来である。 そしてある日、遊びながら「この作品はパワーアップ状態を維持し続ける事がゲーム性になっているのでは?」と感じるようになった。また、この「保ち続ける面白さ」は今まで遊んだ「楽しい」と感じた作品で特にゲーム性として機能してるケースが多いのではないかという事に気付き始めた。 今回はこの「状態を保つ」ゲーム性について自分なりに考えを纏めて記事にしてみた。 目次 目次 「状態を保つ」ゲーム性とは 「保つ」ゲームの例 ヌルゲーが楽しくない原因、或いはクッキークリッカーに飽きてしまう理由 失うものが何もない、という「

    「状態を保つ」という楽しさの話、あるいは「ピクミン3」の持つ面白さの本質 - GAME LIFE HACK
    sh19910711
    sh19910711 2024/10/14
    "「状態を維持し続ける」というゲーム性 / コンボを維持する、攻撃を繋ぎ続ける、強い状態を保つ、敵を倒し続ける / ピクミン3には「ピクミンを常に働かせ続ける」事が「保つゲーム性」として作品の根底に存在" '16
  • デザイン思考の限界と可能性 - デザインダイアローグコペンハーゲン

    コペンハーゲンに来られた某先生と話をしていた際に飛び出た話題なのですが、昨今、デザイン思考って世間で過剰評価されているのではないかと思います。世の中を見渡して見渡してみると、も杓子もデザイン思考だという感じで、イノベーションに必要なのはデザイン思考だ!デザイン思考さえあればイノベーション創出し放題だ!なんて論調さえ聞こえてくるのですが、デザイン思考はそこまで万能ではありません。 デザイン思考を実際に使うためには、色々と制約もあるはずですが、そのあたりがうまく認識されていない可能性があるのではないかと思います。そこで、デザイン思考の導入を検討する前に、この辺りを認識しておく必要があるよねという点について、私が思いつくあたりでいくつか書いておこうかと思います。 なお、稿では私が思いついた点を3つ程挙げますが他にも色々と注意点があると思います。こういう点も注意が必要だなど他にありましたら是非

    デザイン思考の限界と可能性 - デザインダイアローグコペンハーゲン
    sh19910711
    sh19910711 2024/10/14
    "デザイン思考は、はじめにユーザーありきでプロセスを進めて行きます。これはつまり、新しい市場へのアプローチには向いていないと言うことであり、既存市場向けのイノベーションが中心になってしまいがち" '16
  • Go1.20からサポートされるtree構造のerrの紹介と、treeを考慮した複数マッチができるライブラリを作った話/introduction of tree structure err added since go 1_20

    Go1.20からサポートされるtree構造のerrの紹介と、treeを考慮した複数マッチができるライブラリを作った話/introduction of tree structure err added since go 1_20

    Go1.20からサポートされるtree構造のerrの紹介と、treeを考慮した複数マッチができるライブラリを作った話/introduction of tree structure err added since go 1_20
    sh19910711
    sh19910711 2024/10/14
    "errをつくるときに複数errを合成できる + マッチ処理でもそのようなerrが考慮 / あたらしいエラー構造とハンドリングが標準パッケージでサポート" '23
  • Raspberry Pi AI Cameraをさわってみた

    Raspberry Pi AI Cameraをさわってみた
    sh19910711
    sh19910711 2024/10/14
    "搭載されているIMX500カメラセンサー自体がAI処理を実行して結果を返すため、映像と結果を受け取ることも、結果だけ受け取ることもでき / 例によって当面入手が難しいと予想されます"
  • 組込みRustでも でかい?JSONを扱いたい!

    520kBしかメモリが無いESP32環境上の組込みRustで、100kB弱のJSONを扱うために、JSONストリームパーサーを作ったお話です。

    組込みRustでも でかい?JSONを扱いたい!
    sh19910711
    sh19910711 2024/10/14
    "ESP32-C3: CPUコアがRISC-Vの低コスト製品 / Xtensa: Cadence(に買収されたTensilica)のカスタム可能CPUコア / nom: Rustのパーサーコンビネーターcrate + 適当に関数組み合わせたらパースできる" '23
  • Haskell に至る歴史 - ksmakotoのhatenadiary

    とある Google グループに書いたものだけど、ツッコミが来ることを期待してこっちでも公開してみる Fortran まず、世界で最初に格的に実用化されたプログラミング言語である Fortran が、1955年前後に生まれます。Fortran では、(それまでの "ADD [addr], 1" のような記法に比べれば)"A + 1" のように数式ライクな(名前からして、"For" は formula から来ています)表現ができるようになりました。もっとも、プログラミング言語が数学らしくないと言われるポイントの大きなひとつであるところの "A = A + 1" も同時に広まることになります。 Lisp 次に Lisp が、1960年前後に生まれます。特殊形式の LAMBDA により、値としての関数を表現する、という技法を数学からとり入れ、世界最初の関数型言語と言われます。 誕生の時点では、

    Haskell に至る歴史 - ksmakotoのhatenadiary
    sh19910711
    sh19910711 2024/10/14
    "主に80年代、既存の言語の遅延評価化(LML - LazyML など)や、1985年の Miranda ( wikipedia:Miranda )などの遅延評価をする新言語の提案などがさかんにおこなわれ / 1990年に Haskell 1.0 がリリース" '10
  • ゲームハードというものは、多分一人一人にとって違うものなんだ: 不倒城

    目次・記事一覧(1) レトロゲーム(185) 日記(772) 雑文(512) 書籍・漫画関連(56) 子育て・子どもたち観察(115) ゲームブック(12) フォルクローレ・ケーナ・演奏関連(86) FF14(40) レトロでもないゲーム(336) 始めたばっか(13) アナログゲームいろいろ(37) 人狼(48) ネットの話やブログ論(61) 三国志大戦(20) 無謀的世評(52) ゴーストライター(16) 大航海時代ONLINE(40) FF3(6) Civ4(18)

    sh19910711
    sh19910711 2024/10/14
    "それぞれのセガサターンがある / 一つのハードに無数のソフトがあって、どのソフトを遊ぶかによって丸々体験は変わってくる / 誰かにとってのセガサターンが、他の誰かにとってのセガサターンを否定してはいけない" '17
  • AWS Verified Access が GA となったので IAM Identity Center を信頼プロバイダーとしてグループポリシーを設定して使ってみた | DevelopersIO

    AWS Verified Access が GA となったので IAM Identity Center を信頼プロバイダーとしてグループポリシーを設定して使ってみた いわさです。 re:Invent 2022AWS Verified Access がパブリックプレビューで登場していました。 VPC 内のプライベートなアプリケーションに信頼された IdP を使って、構成されたポリシーをクリアしている場合など一定条件を満たしているとパブリックなエンドポイントを経由したプライベートネットワーク上の Web アプリケーションへ接続させることが出来るサービスです。 そんな AWS Verified Access が日 GA となりました。 プレビュー時点からいくつか機能が追加されているのですが、そもそも DevelopersIO に実際に使った記事がないことに気が付きました。 そこで、日は

    AWS Verified Access が GA となったので IAM Identity Center を信頼プロバイダーとしてグループポリシーを設定して使ってみた | DevelopersIO
    sh19910711
    sh19910711 2024/10/14
    "re:Invent 2022 で AWS Verified Access がパブリックプレビューで登場 / パブリックなエンドポイントを経由したプライベートネットワーク上の Web アプリケーションへ接続させることが出来るサービス" '23
  • YAPC::Hakodateの映像記録を支える技術

    From LibreOffice to « La Suite » : providing civil servants with Free Software sovereign tools

    YAPC::Hakodateの映像記録を支える技術
    sh19910711
    sh19910711 2024/10/14
    "配信班で使ってるノウハウ / 29セッション+LT約550GiB / 帰りの配送: 送り状印字サービスを使おう + 個人でもクロネコメンバーズでつかえる"
  • 【インフラエンジニアbooks】30分でわかる「AWS継続的セキュリティ実践ガイド」

    インフラエンジニアbooks #49

    【インフラエンジニアbooks】30分でわかる「AWS継続的セキュリティ実践ガイド」
    sh19910711
    sh19910711 2024/10/14
    "ツールを導入することよりもログの読解力を積み上げていくことが重要 / 予防は大前提 + 検知力の差がビジネスを守る / まずは数日間Security Hubを有効化し自社システムの健康診断をしてみよう"
  • DuckDB-Wasm + DuckDB-Spatial = Webブラウザ上で完結する地理空間情報分析

    日のデモ: 日のソースコード: おっと、待たせたねぇ!今日は「DuckDB-Wasm」と「DuckDB-Spatial」についてご案内いたしやすよ! この記事を読めば、ブラウザだけで地理空間情報の分析をサクッとこなせすための環境構築や、便利な関数を使った地理空間情報分析の基がバッチリわかるって寸法よ!これを知っときゃ、サーバーいらずで格的な地理空間情報分析ができちまうし、つまずきやすいポイントもスッキリ解消!あんたもいますぐ地理空間情報分析の達人になれるこたぁ間違いなしだ!さぁ、江戸っ子の心意気で、いますぐその手で試してみな! Vite.js + React でやんでぇ!まず、Vite.js + React + TypeScriptを開発環境の基板とするってのは、問答無用で決まりだ!ほかにゃ選択肢はねぇってわけよ。Viteの速さ、Reactの使いやすさと豊富なライブラリのエコシステ

    DuckDB-Wasm + DuckDB-Spatial = Webブラウザ上で完結する地理空間情報分析
    sh19910711
    sh19910711 2024/10/14
    "GeoJSON形式のデータをまるっとDuckDB-Wasmにテーブルとして読み込む / PostGISでやれていたことが、全部ブラウザ上だけやれちまう / ハマりポイントは「duckdb.AsyncDuckDBConnection.query」の返り値の型 + apache-arrow.Table型で返ってくる"