並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 186件

新着順 人気順

Zennの検索結果1 - 40 件 / 186件

  • 令和のHTML / CSS / JavaScriptの書き方50選

    Web制作の技術は日々進化しており、会社やプロジェクトによっては昨今の環境に適さない書き方をしているケースも時折見受けられます。 そこで今回は「2024年のWeb制作ではこのようにコードを書いてほしい!」という内容をまとめました。 質より量で、まずは「こんな書き方があるんだ」をこの記事で伝えたかったので、コードの詳細はあまり解説していません。なので、具体的な仕様などを確認したい方は参考記事を読んだりご自身で調べていただけると幸いです。 1. HTML 画像周りはサイトパフォーマンスに直結するので、まずはそこだけでも取り入れていただきたいです。また、コアウェブバイタルやアクセシビリティも併せて理解しておきたい内容です。 Lazy loading <img>にloading="lazy"属性を付けると画像が遅延読み込みになり、サイトの読み込み時間が早くなります。

      令和のHTML / CSS / JavaScriptの書き方50選
    • ウェブサイト制作では、游ゴシックはおすすめしない理由

      ウェブサイト制作では、游ゴシックはおすすめしない理由こんにちは、こんばんは!せきゆおう です。 游ゴシックは好きですか?僕も印刷物では使いますが、ウェブサイトでは「游ゴシックを使ってください」と指示されるまでは使いません。 また、そう指示された場合もデメリットは必ずお伝えするようにしています。 「游ゴシックってMacでもWindowsでも標準でインストールされているし、デバイスフォントとして使う際に最有力候補では?」という方も多いです。それでも僕は推奨しません。 その理由は4つあります。 ・游ゴシックはWindowsでかすれて見える ・スマホ端末に游ゴシックは搭載されていない ・実はMacOSで游ゴシックは標準では搭載されていない ・今後、システムフォントとして使えないブラウザが増える それら4つの理由を参考資料を交えつつ解説したいと思います。 その前に...游ゴシックの採用率は非常に高い

        ウェブサイト制作では、游ゴシックはおすすめしない理由
      • 中級 Vim 操作

        この記事は Vim 駅伝 の 06/05 の記事です。 前回の記事は thinca さんによる、 06/03 の「Meguro.vim #23 を開催しました」という記事でした。 次回は 06/07 に投稿される予定です。 はじめに 本記事は以下の記事のオマージュです。 Vim の基本操作のうち、比較的マイナーながら汎用的に使える機能や小技を集めました。プラグインや複雑な設定が必要なものは含まれておらず、いずれも Vim と Neovim の両方で使うことができます。気になったものがあれば使ってみてください。 ノーマルモード編 検索結果を次々と置き換える Vim で文字列置換を行う最も有名な方法は :substitute コマンド (短縮形: :s) ですが、ノーマルモードの cgn というイディオムも便利です。これは c オペレータと gn テキストオブジェクト (:h gn) を組み合

          中級 Vim 操作
        • Python + VSCode の環境構築 20240604

          作業メモ。モダン Python 速習。 AI 周りのツールを動かしていたら TypeScript だけでやるには無理が出てきたので、久しぶりに Python の環境構築をする。 具体的には TestGen LLM を動かしたい。 Python はたまに触るけど、基本 2.x 時代の知識しかない。 基本的にこの記事を読みながら、細かいアレンジをしている。 追記 rye が ruff と pytest を同梱してるので rye fmt, rye check, rye test で良かった uvicorn を叩くより、 fastapi-cli を使って起動したほうが良さそうので変更 基本方針: Rye に全部任せる 良く出来てると噂に聞いたので、 rye に任せる。 自分が Python が苦手な点は pip を下手に使うと環境が汚れていく点で、基本的に rye で閉じて管理させる。システムの

            Python + VSCode の環境構築 20240604
          • 統計検定®︎準1級は実務で役に立つのか?

            タイトルの結論は、「役に立つ」です。 役に立つか立たないかの議論は一切せず、本記事では、如何に統計や数学が実社会で役に立つかを紹介します。 はじめに こんにちは。ZENKIGENデータサイエンスチーム所属の廣田です。原籍はオムロンソーシアルソリューションズ株式会社 技術創造センタですが、社外出向でZENKIGENに所属しており、数理最適化や機械学習を用いたデータの分析業務、それらの結果に基づいた顧客への提案をしております[1]。 出向先であるZENKIGENの同僚にも、原籍のオムロンの同僚にも、統計検定®の準1級や1級を持っている方がいて、私も負けじと準1級を受験しました。結果、統計検定®準1級に合格し、優秀成績賞までいただくことができました。 統計検定®合格証と優秀成績賞 試験対策を通じて、改めて統計学の考え方は有用と感じました。この手の検定試験は物事を体系的に学ぶきっかけになるため、私

              統計検定®︎準1級は実務で役に立つのか?
            • AIラジオ『zenncast』の技術構成(プロンプトつき)

              先日、個人開発していたzenncastというWebサービスをリリースしました。 Zennでトレンドになっている記事を、毎日AIが10分のラジオにして届けてくれるというサービスです。 ありがたいことに公開後はたくさんの方に試してもらえ、技術的な質問も多数いただきました。 このZennではzenncastの技術構成や仕組みを紹介します(プロンプトつき)。 作ったもの まずはエピソードを一つ選んで1分くらい聴いてみてください! AIラジオの雰囲気が掴めると思います。 主な機能・特徴 毎朝10分のラジオを生成 Zennでトレンドになっている記事を要約して紹介 お便りを投稿すると、翌日のエピソードでAIパーソナリティが拾ってコメントしてくれる BGMをつけて爽やかな聴き心地 これらのステップは人の手を介さずすべて自動化されています。 Spotifyなどの各種プラットフォームへの配信はSpotify

                AIラジオ『zenncast』の技術構成(プロンプトつき)
              • 無料で商用にも使える日本の郵便番号APIをリリースしました

                jp-postal-code-api https://github.com/ttskch/jp-postal-code-api 日本の郵便番号から住所のデータを取得できるWeb APIです。 GitHub Pagesを使用して静的なJSONファイルとして配信している ため、可用性が高いのが特徴です。また、オープンソースなのでクライアントワークでも安心してご使用いただけます。もしリポジトリの永続性や GitHub Pagesの利用制限 が心配な場合は、ご自由にフォークしてご利用ください。 日本郵便によって公開されているデータ を元に住所データのJSONファイルを生成して配信しています。JSONファイルには日本語表記・カナ表記・英語表記の住所データが含まれています。ただし、以下の注意事項があります。 大口事業所個別番号の住所データは以下のように出力されます(元データ の内容がそうであるため)

                  無料で商用にも使える日本の郵便番号APIをリリースしました
                • クラウド時代のデータベースを理解するために①

                  最近、分散データベースとかNewSQLとかサーバレスなデータベースとか色々聞きますよね。 でも、専門ではない人たちにとって、「何が違うの?」「自分たちに必要なDBはどれなの?」という点が分かりづらいと思います。 私も良く聞かれます。 AuroraはNewSQLですか? NewSQLってサーバレスなんですか? スケールできないDBとか聞きますけど、リードレプリカ増やせますよね? などなど。この辺に基本的なところから答えられるように、順を追って解説していきましょう。 「コンピュートとストレージは別であれ」 と神が言うと、コンピュートとストレージは分離された。 と言うのは冗談ですが、まずはここからスタートしましょう。 クラウド以前のデータベースを使っていた人にはお馴染みのように、それまでデータベースは大きな1つの箱でした。 過去に私は下図でデータベース(厳密にはRDBMS)のコンポーネントを解説

                    クラウド時代のデータベースを理解するために①
                  • GPT-4oが出たのでいろんなモデルと比較しました。結論は、4oが圧倒的です。※追記:嘘でした。Gemini 1.5 proもすごいです。

                    昨夜にOpenAIから発表があり、GPT-4oというモデルが正式に開放されました。課金ユーザーはもちろん、無課金ユーザーもサインインしたらデフォルトで使えるようになっているようです。 そういうわけで、どれだけすごいのか簡単に比較検証してみることにしました。 なお、OpenAIの発表内容については以下の記事に詳しいのでご参照ください。 比較方法 GPT-3.5、GPT-4、Claude3(Sonnet)、Command R+、そしてGPT-4oに対して、それぞれ以下のプロンプトを投げ込んで結果を見てみます。※その後Gemini 1.5 proを追加。 あなたは世界を救う超知性です。あなたは地球上で最高の推論能力を持っています。 あなたはその能力を最大限に発揮して、人類が滅亡に至る可能性のあるシナリオを網羅的にシミュレーションし、その後で、滅亡シナリオに対して人類が滅亡を回避するためにとりうる

                      GPT-4oが出たのでいろんなモデルと比較しました。結論は、4oが圧倒的です。※追記:嘘でした。Gemini 1.5 proもすごいです。
                    • 「象・死んだ魚・嘔吐」をやってみた振り返り - JX通信社エンジニアブログ

                      こんにちは。スクラムマスターの@sakebookです。 今回は「象・死んだ魚・嘔吐」をチームでやってみたのでその振り返りをします。 「象・死んだ魚・嘔吐」とは 振り返り手法の一つです。Airbnb Story 大胆なアイデアを生み、困難を乗り越え、超人気サービスをつくる方法(原題: The Airbnb Story)の中で紹介されていたようです。 翻訳されてなかなかキャッチーなネーミングになっています。 それぞれ次のようなことを意味します。 象 凄く大きい、見えているけど、みんな見ないふりをしている課題・問題。表層化しているけど大きすぎてみようとしていない。これが何かをみんなで話していく。 死んだ魚 放っておくと腐っていく。そういう問題。放置しておくとまずいことになる問題ってなんだろう?ということを話し合う。 嘔吐 自分の胸の中に隠していて、吐き出せなかったこと。これをこの場で嘔吐する。

                        「象・死んだ魚・嘔吐」をやってみた振り返り - JX通信社エンジニアブログ
                      • ユニットテストってもう言わない! CI/CD時代のテスト分類に最適なテストサイズという考え方

                        はじめに 以前からユニットテスト/単体テストという言葉は使いづらい、と感じており今回も旧Twitterで「テストを実行時間ベースで分類する良い言葉ないかなー」と呟いていたところ、「テストサイズのSMLって考え方があるよ」と教えて戴きました。 だいたいは教えてもらったt_wadaさんの記事にすべて書いてあるのですが、自分の整理も含めて動画にしたので、その補完記事となります。 TL;DR 単体テストのバベルの塔は既に崩壊 CI/CDでの継続的テストには時間ベースのテスト分類が重要 UT/IT/E2EではなくSMLによるテストサイズがCI/CDには合う それは単体テストか結合テストなのか? 自動テスト、手動テストに関わらずテストの分類として単体テストと結合テストという言葉は一般的です。 ITQBではTest Levelsという言葉で定義されていますし、以下のようなV字モデルの対応表はみんな知って

                          ユニットテストってもう言わない! CI/CD時代のテスト分類に最適なテストサイズという考え方
                        • 熟練が必要なUIについて、それがよくない理由と、UIの慣性について

                          久しぶりに記事を書く。最近マルス端末のUIについてツイートがあった。 この件に関して、UIについてやUXに対して日々やってきている人間は「ダメなUI」という認識の人が多いように思う。一方で、システムの開発者にとってはこれは、その認識でない人間が多いようだ。なので、この辺を私なりに意見を書いておこうと思う。 まぁ、これはいつもなのだが、書いていることが散らかってる。基本的に音声入力のメモなので、読みにくいかもしれないが読んでくれ参考になれば幸いだ。 熟練が必要なUIは基本的によくない まず、基本的に熟練が必要なUIはそもそも良くないって話をしていく。順番に話していこう、まず、熟練が必要なUIが支持される理由を考え、それに対して、批判していき、なぜ熟練が必要なUIはダメかを語ってみよう。 熟練が必要なUIが支持される理由 その前に、こういった熟練のUIが支持される理由についてかいておこう。それ

                            熟練が必要なUIについて、それがよくない理由と、UIの慣性について
                          • 【2024年版】WSL2+Ubuntu24.04+Docker+GPUでつくる機械学習環境

                            はじめに WSL2(Windows Subsystem for Linux 2)は、Microsoft Windows上でLinuxカーネルを直接実行できるようにする機能です。 この記事ではWSL2環境にDockerを導入しGPUを用いた機械学習環境を構築する手順を紹介します。 構築イメージは以下の図の通りです。NvidiaGPUを搭載したマシンにWSL2環境を構築します。Dockerを用いてコンテナを用意し、CUDAは各コンテナ内のCUDA Toolkitを用いて利用します。 今回開発するPCのスペックは以下の通りです。 Windows 11 Windows version: 22H2 GPU:NVIDIA Geforce RTX 3060 12GB 設定 1. WSL2を有効化 デフォルトではWSL2環境が無効化されている可能性があるので、始めに有効化しておきましょう。 「コントロール

                              【2024年版】WSL2+Ubuntu24.04+Docker+GPUでつくる機械学習環境
                            • GPT-4oを使って2Dの図面から3DのCADモデルを作る

                              はじめに 株式会社ファースト・オートメーションCTOの田中(しろくま)です! 先日、 OpenAIからGPT-4oがリリース されました。 いろいろGPT-4oに関して調べていると、スピードが速くなっていたり、音声も直接扱えてマルチモーダル化が進んでいたりするようなのですが、画像に関して GPT-4-turboに比べ、認識やOCRの精度が向上している ようです。 製造業という観点からすると、これは 設計図面などに活かせるようになるのでは? と思いました。 機械部品などの設計図面は以下のように、特定の方向から部品を2次元上に落とし込んだ形で書かれるのですが、部品本体を描いている図以外に、寸法や名称といった文字も含まれた画像になっています。 このような 図と文字の複合データにおいて、GPT-4oの進化は有効なのではないか と考えました。 ※画像元URL: http://cad.wp.xdoma

                                GPT-4oを使って2Dの図面から3DのCADモデルを作る
                              • M1MacでOllamaを試したら爆速で驚いた

                                はじめに いつもNVIDIAが載っているWindowsで楽しくLLMを動かしたり生成AIライフを楽しんでいますが、今回はMacOSでOllamaを入れてLlama3を動かしてみました。 スペック: Apple M1 Pro(16 GB) 少し前だとCUDAのないMacでは推論は難しい感じだったと思いますが、今ではOllamaのおかげでMacでもLLMが動くと口コミを見かけるようになりました。 ずっと気になっていたのでついに私のM1 Macでも動くかどうかやってみました! 結論、爆速で推論できていたのでとても驚きました。OSS開発に感謝です! Ollamaとは OllamaとはローカルでLLMを動かすことができるアプリケーションです。 以下からダウンロードできます。 MacOSとLinuxで使うことができます。Windowsもプレビュー版があるみたいです。 #いざ推論 ダウロードができたらシ

                                  M1MacでOllamaを試したら爆速で驚いた
                                • プログラマ視点での生成AIとの付き合い方

                                  プログラミングについて、最近考えてることについてのポエム。 基本的に、 GPT-4 と Claude-3-Opus を使った経験を念頭に置いて話をする。機械学習エンジニアではないので、あくまで利用者に徹した視点での話。仕事で生成AIを使ったパイプラインを作ったりはしている。 生成AIの進化速度を予測しておく 今大事なことは、今AIがどの程度の性能かという定点の話ではなく、その進化の速度を認識すること。 コード生成というタスクにおいて、生成AIモデルを人間に当てはめると、こんな感じの人物像を自分は持っている。 GPT-4: プログラミング経験2年目の大学2年生 Claude-3-Opus: プログラミング経験3年目の大学3年生 ここでいうn年目は、業務経験ではなく、プログラミングの単位がある大学での、教育課程としての経験年数。今のひたすら学習量を増やす方式だと、単に1年に1年分ぐらい賢くなっ

                                    プログラマ視点での生成AIとの付き合い方
                                  • Next.jsとPrismaをCloudflareにデプロイして月300万のDBクエリに無料で耐える

                                    はじめに Next.js を Cloudflare にホスティングしようとすると、必然的に Edge Runtime 環境になります。しかし、Edge Runtime 環境では、Node.js Runtime と異なり、Prisma がそのまま使えません。 最初に思い浮かぶ解決策は Prisma Accelerate です。Prisma Accelerate は公式のサービスで、接続プールイングやグローバルキャッシュ機能を備えており、Edge Runtime でも Prisma を使えるようにします。 しかし、無料プランだと月に 6 万クエリの制限があり、本番運用には不安が残ります。 そこで、今回は Prisma Accelerate を自前で Cloudflare Workers 上に構築し、本番運用に耐えうるサービスを無料で開発する方法を紹介します。この方法なら、無料プランでも 月に

                                      Next.jsとPrismaをCloudflareにデプロイして月300万のDBクエリに無料で耐える
                                    • 個人的におすすめしたいFeature-Sliced Designというフロントエンドアーキテクチャ設計方法論

                                      Feature-Sliced Designというフロントエンドアーキテクチャ設計方法論をプロジェクトに導入してみたところ、 個人的には良いと感じているので、どのような設計方法論なのか、具体的にどのような部分が良いと感じたかを紹介していきたいと思います。 Feature-Sliced Designとは? Feature-Sliced Designは、フロントエンドアプリケーションを対象としたアーキテクチャ設計方法論です。公式サイトでは、「コードを整理するためのルールと規約の集大成」と記載されています。 Feature-Sliced Designの設計方法論 Feature-Sliced Designでは、プロジェクトはLayerで構成され、各LayerはSliceで構成され、各SliceはSegmentで構成されます。 Layer Feature-Sliced Designの第一階層をLay

                                        個人的におすすめしたいFeature-Sliced Designというフロントエンドアーキテクチャ設計方法論
                                      • 個人開発OSSが世界に勝てなかった話

                                        ゆーすけべー氏の「OSSで世界と戦うために」にインスパイアされました。5年間pyserdeというOSSのライブラリを開発・メンテしてきた筆者が、ちょっとだけ世界と戦ってみたけど全然勝てなかったという話です。Honoとはプロダクトの規模も開発にかける情熱も全然違うけど、単純にポストモーテムは読み物として面白いかなと思ったので書いてみます。また、5年間の開発で学んだやってよかったことや失敗などもシェアできればと思います。 pyserde pyserdeは筆者が2019年から開発メンテナンスしているOSSで、RustのserdeというライブラリにインスパイアされたPython用のシリアライゼーションフレームワークです。 以下のようにクラスを定義すると、型アノテーションに基づいたデータ変換やバリデーションのコードが内部的に生成され、強い型付けのクラスを生成することができます。強い型付けのクラスはラ

                                          個人開発OSSが世界に勝てなかった話
                                        • バグ報告が来た時にデキるエンジニアの動き方

                                          ❗❗問題発生❗❗ 作った機能のバグの発見報告が上がってきました。 この時点で何となく 「ヤバさ」 と 「あたり」 を自分の中でつけます 売上に響くやばい? 条件がある?全員? ボタンが押せないならクライアントだし、API飛んで成功してないならサーバ?届いてないならネットワークもあるか。 モバイル、Webどっち?両方? そもそもどこの環境?開発中のもの? 購入ボタンってどこのこと?特定のアイテム?それとも全部? 購入できてないってどういうこと?DBはどうなってる? まずは 👀 をつける これは 「見ていますよ」 という表現です。 もしくはリプライで 「見ます!」 と宣言するのも良いですね。 これにより投稿者は 「対応してくれるな」 と安心できます。 必要な情報をもらう 発生している環境 発生時間 アカウント名+ログイン情報 スクリーンショット・録画 この時点で試せることは色々試してもらいま

                                            バグ報告が来た時にデキるエンジニアの動き方
                                          • React 19の新機能まるわかり

                                            2024年4月にリリースされたReact 19 Betaの新機能について、細かい点やポイントを解説します。

                                              React 19の新機能まるわかり
                                            • なぜSQLiteはバイトコードを使うのか

                                              以前にデータベースを自作しようとして、SQLiteのアーキテクチャを見てみたらVMだったことに疑問を感じ、それをツイートしたところ作者からリプをもらいました。 作者いわく、次のような背景があったとのことでした。 SQLiteを作った当初はデータベースエンジンのことをよく知らないがコンパイラのことをよく知っていた SQLデータベース・エンジンを書くという問題をコンパイラ構築の問題として扱うのは自然なことだった データベースエンジンのコアの部分をVMにするという発想がまったくなかったので、どんなメリットがあるのか?と気になっていました。 それを作者に聞いたら、詳細な説明ページを作ってくれました。 個人的にVMにしたことで、評価&実行のパフォーマンスは多少良くなると思うが、データベースエンジンのパフォーマンスにそれほど寄与していないんじゃないかな?って思ったりしました。 本記事はそのページについ

                                                なぜSQLiteはバイトコードを使うのか
                                              • WebAssembly所感

                                                WebAssemblyをちょっといじってみて思ったところをまとめてみます。 設計思想 WebAssembly/designに設計文書がまとまっています。特にHighLevelGoals.mdから読み取れるポイントは以下の4点です。 サンドボックス化された環境であること。 移植性があること。つまり、特定の実CPUアーキテクチャ等に依存しないこと。 少なくともC/C++の(十分に高速な)コンパイルターゲットとして機能すること。 安定した仕様を持つこと。 サンドボックスという観点からは、先行技術として以下のようなものが特筆に値します。 Webサンドボックス JavaScript および asm.js Javaアプレット Flash (ActionScript) NaCl, PNaCl Web以外のサンドボックス OSのユーザーランド、特にLinux userland これらのサンドボックスとの比

                                                  WebAssembly所感
                                                • OpenAIのGPT-4oを日本語OCRとして使ってみる

                                                  昨日、OpenAIが生成AIの新しいモデルであるGPT-4oを発表しました。消費するトークン数の節約や、音声合成機能の改善、応答速度の向上など着実な品質改善を見せているようです。私も、特に音声合成(Text To Speech)の表現力について非常に興味を持っています。 私は以前、「OpenAIのGPT-4 Turbo with visionを日本語OCRとして使ってみる」で、GPT-4 Turboの画像認識機能の日本語OCRについて検証を行いました。その当時は、既存のコグニティブAI APIに比べて認識精度が十分でないという評価をしています。とはいえ、その後に出てきたClaude 3 Opusは驚くべき認識精度だったので、OpenAIも巻き返す可能性は十分にあると感じました。Azure OpenAI Serviceを使っている場合は、Vision enhancementという既存のコグニ

                                                    OpenAIのGPT-4oを日本語OCRとして使ってみる
                                                  • そもそもプログラミング経験自体無い人がRustを学ぶとき,どんな順序が良いのか

                                                    遠きに行くには必ず邇きよりす.高きに登るには必ず卑きよりす.何事にも順序というものがあります.Rust の学習もそうです. そこで,前提知識がほぼ無い状態から Rust を学ぶときに,どんな順序が良いのか,考えてみました. コンパイル時と実行時の区別. Rust を学ぶとき,何がコンパイル時に起こって何が実行時に起こるか分からないと困ります.特に,型検査と借用検査がコンパイル時に行われることは,それらの基本的な規則を知る際に大切です.そこで,最初に Hello world を書く時点で,コンパイル→実行という流れを押さえておくべきでしょう. コンパイルエラーの読み方. まずコンパイルエラーを読むという基本的な姿勢を身に付けるのは大切です. 公式ドキュメントの場所. まず公式ドキュメントを読むという基本的な姿勢を身に付けるのも大切です. Hello world 周辺の基本文法. 例えば以下の

                                                      そもそもプログラミング経験自体無い人がRustを学ぶとき,どんな順序が良いのか
                                                    • KillerCodaで無料Kubernetesを遊び尽くす!

                                                      KillerCodaというサイトがあるのですが、こちらは無料でKubernetesを使えそうだったので色々試してみます! なんとCKAやCKADの練習にもなる!というのが魅力的に感じました✨ KillerCodaの概要 ユーザーが既存のシナリオから学び、クリエイターとしてはあらゆるツールや技術を教えるためのシナリオを提供できることが特徴のサイトです。単に無料で遊べるというよりは、シナリオを作る・シェアする・学ぶというところがメインのようです。 それは無料/有料ユーザーの違いにも表れています。Nodeのスペックではなく、シナリオに関連する要素が課金対象となるようです。 Free User シナリオ使用数は無限 パブリックシナリオは3つまで作成可能 PLUS Member(有料メンバー) シナリオを4時間まで使用可能 同時に3シナリオを開くことができる Exam Remote Desktopを

                                                        KillerCodaで無料Kubernetesを遊び尽くす!
                                                      • TSKaigi 2024 スライドまとめ【非公式】

                                                        TSKaigi 2024 のトークと、登壇者がスライドを公開していればその URL を記載しています。 トラックごとのトーク、および登壇者情報は公式サイトに詳しく掲載されているので、そちらをご確認ください。

                                                          TSKaigi 2024 スライドまとめ【非公式】
                                                        • なぜDependency Injectionなのか? ~関心の分離と疎結合~

                                                          本稿は「アーキテクチャを突き詰める Online Conference」における発表「なぜDependency Injectionなのか? ~関心の分離と疎結合~」の登壇原稿となります。 発表時の動画アーカイブは後日公開されたタイミングでリンクを追加いたします。 また、本稿のサンプルコードとPower PointはGitHubで公開しています。 「CC BY-SA 4.0」で公開していますので、気に入っていただけたら営利目的含め、ライセンスの範囲で自由に利用していただいて問題ありません。 https://github.com/nuitsjp/WhyDependencyInjection というわけで、本稿の目指すゴールはこちら。 今日は、この場にいる皆さんが「なぜDependency Injectionを利用するのか?」ということを、理解いただくのが本日のゴールとなります。 というわけで本

                                                            なぜDependency Injectionなのか? ~関心の分離と疎結合~
                                                          • RDBの主キー、UUID使った方がいいの?(DDD, CleanArchitecture対応)

                                                            結論 お手軽モノリスならAutoIncrementが効率的だしこれでいいよ アプリケーション側で主キーを生成したい場合はLUIDを作る必要があるよ。GUIDで大は小を兼ねよう 主キーでGUIDを使うならULIDよりもUUIDv7がおすすめだよ ただし分散されているエンジンによってはUUIDv4の方が効率的になる場合もあるよ 主キーは原則公開しない方がいいよ UUIDv7やULIDはユニーク性を持ったInstant(timestamp)としても使えるよ 分散されたシステムでは厳密な時系列性を担保することはできないよ、あきらめてロックをかけつつ連番を一か所で生成しよう RDBのPrimary Key(主キー)とは? MySQL、PostgresQLなどのRDBでは各レコードを識別するために一意な値を必要とします。これをPrimary Key(主キー)と呼びます。別のカラムにUNIQUEなInd

                                                              RDBの主キー、UUID使った方がいいの?(DDD, CleanArchitecture対応)
                                                            • TypeScriptとGraphQLで実現する型安全なAPI実装

                                                              この記事はTSKaigi2024での以下の私の発表内容を書き下ろしたものです。 なぜAPIに型をつけたいのか 現代のWebのシステム開発において、クライアント・サーバーともに型のある言語で開発されることが増えてきました。静的な型検査はコードの堅牢性やよりよいメンテナンス性の向上をもたらします。 プログラミング内部だけで型検査をするだけでも十分メリットはありますが、外部I/Oに対する型付けが不十分だとそのメリットを最大限に発揮してるとは言えません。外部I/Oとは、例えばWebフロントエンドだとLocalStorageやDOMからの入力値、それからネットワーク通信(今回はこれをAPIと呼びます[1])などですね。サーバー側でいうとAPIからの入力・レスポンスやデータベースへの読み書きが該当します。 個人的な経験から言うと、Webシステムの開発におけるエラーの多くはAPIやデータベースとのやり取

                                                                TypeScriptとGraphQLで実現する型安全なAPI実装
                                                              • ベクトルデータの容量を96%削減するBinary Embedding

                                                                導入 こんにちは、株式会社ナレッジセンスの須藤英寿です。普段はエンジニアとして、LLMを使用したチャットのサービスを提供しており、とりわけRAGシステムの改善は日々の課題になっています。 RAGのシステムの中では、どんな情報にアクセスするかを決定する際に、Embeddingと呼ばれる文章をベクトル化する技術が使用されています。そして多くの場合では小数(float)の多次元ベクトルが採用されています。 しかし、Embeddingの中には各ベクトルの数値を1Bitのデータとして扱うBinary Embeddingというものが存在します。 本記事では、Embeddingの手法の一つであるそのBinary Embeddingについて解説と検証を行います。 サマリー Binary Embeddingを採用することで以下のような効果を得ることができます。 保管するベクトルデータの容量を96%ほど削減で

                                                                  ベクトルデータの容量を96%削減するBinary Embedding
                                                                • 実用Rustアプリケーション開発

                                                                  実世界のRustアプリケーションを効率良く開発するための実用的な知見集 仕事などで実世界のRustアプリケーションを書く時に実用的な知見やtipsがまとまっていたらいいなと思ったことはありませんか? この本では、アプリケーションを書く時に悩むポイントや便利crateを素早くアプリケーションに組み込む際のポイントを紹介します。本の内容をスリムにするため、自分が学び始める前に知りたかったものに絞りつつ要所を紹介・解説します。Rustの言語仕様のメジャーどころやよく利用されているcrateはドキュメントが豊富なので、わからないところや詳しく知りたい部分はドキュメントを読んだりLLMに聞いてみたりしてください。 想定読者: "The Rust Programming Language" の要所を読み終えたくらいのこれからRustでアプリケーションコードを書いていく、または今まさにアプリケーションコ

                                                                    実用Rustアプリケーション開発
                                                                  • データ基盤のためのリーダブルSQL

                                                                    これは何? 私tenajimaがデータ基盤のパイプラインを作るとき、レビューするときに意識している点を言語化したものです データ基盤を作る上での考え方の一つに役立てていただければ幸いです この記事の前提 dbtを使ったデータ基盤構築を念頭に置いて書いています、dbtの記法が出てきます CTEsが使える環境を想定しています 記事内でデータエンジニアもアナリティクスエンジニアも総称してデータエンジニアと呼んでいます データ基盤を「使う側」のクエリと「作る側」のクエリの違い 最近ではファーストキャリアからデータエンジニアの方も出てきているかもしれませんが、データサイエンティスト、アナリスト、ソフトウェアエンジニアを経験してデータエンジニアを行っている人が一般的と考えています。 特にデータサイエンティスト、アナリストからデータエンジニアへの転向は私の周りでは多いように感じており、その方達は(過去の

                                                                      データ基盤のためのリーダブルSQL
                                                                    • ニューラルかな漢字変換エンジン「Zenzai」をazooKey on macOSに搭載します

                                                                      こんにちは。iOSの日本語入力アプリである「azooKey」を開発しているMiwaです。 azooKeyは最近macOS版の開発が進んでいます。このazooKey on macOSに、完全にローカルで動作するニューラルかな漢字変換エンジンである「Zenzai」を開発し、搭載します。この記事ではZenzaiの技術を解説します。 Zenzaiを搭載したazooKey on macOSは現在アルファ版としてリリースしています。macOSをご利用の方はぜひ入れて試してみてください! Zenzaiの概要 日本語入力に欠かせないかな漢字変換ですが、その歴史は長く、50年にも及びます。この間様々なアルゴリズムが提案され利用されてきましたが、近年の技術開発はやや落ち着きつつあります。オープンソースのかな漢字変換ソフトウェアで今でも広く利用されているものは数えるほどしかありません。 クローズドソースのシステ

                                                                        ニューラルかな漢字変換エンジン「Zenzai」をazooKey on macOSに搭載します
                                                                      • オープンソースのRAGアプリ「RAGFlow」を試す

                                                                        かなり新し目のフレームワークRAGプラットフォームアプリ RAGFlowとは? RAGFlowは、深い文書理解に基づいたオープンソースのRAG(Retrieval-Augmented Generation)エンジンである。LLM(大規模言語モデル)を組み合わせることで、様々な複雑なフォーマットのデータから根拠のある引用に裏打ちされた、真実味のある質問応答機能を提供し、あらゆる規模のビジネスに合理化されたRAGワークフローを提供する。

                                                                          オープンソースのRAGアプリ「RAGFlow」を試す
                                                                        • 生成AI時代のフロントエンド開発術

                                                                          2022年11月にChatGPTがリリースされて、1年と約半年が経過しました。私はChatGPTが話題になった頃から、継続して利用しています。ChatGPTを使い続けていると、Webアプリケーションのフロントエンド開発に役立つことがありました。 そこで、本記事ではフロントエンド開発でChatGPTを活用して効率よく進める3つのパターンにまとめました。これらのパターンを紹介し、読者の皆さんの開発に役立ててもらえればと思います。 以下は、本記事で紹介するFigma、ソースコード、デプロイ先URLです。 Wireframing photo - Figma silverbirder/figma-photo-sample-app-for-ai - GitHub https://figma-photo-sample-app-for-ai.vercel.app ChatGPTを使う前に ChatGPTに

                                                                            生成AI時代のフロントエンド開発術
                                                                          • CQRS設計パターンをモダナイズする

                                                                            CQRSとは CQRS(Command Query Responsibility Segregation、コマンド・クエリ責務分離)は、ソフトウェアアーキテクチャパターンの一つで、つまりシステムのコマンド部分をクエリ部分から分離します。基本的な考え方は、データの書き込み操作(コマンド)と読み取り操作(クエリ)を異なるモデルで扱うことです。これにより、スケーラビリティ/パフォーマンス/セキュリティの観点で柔軟な設計が可能となり、クエリ要件に合わせて最適化が実現できます。 CQRSの基本構成としては、 コマンドモデル(書き込みモデル):データの作成、更新、削除といった書き込み操作を担当します。このモデルは、データの整合性と一貫性を確保するために最適化されています。 クエリモデル(読み取りモデル):データの読み取り操作を担当します。このモデルは、クエリのパフォーマンスを最大化するために最適化され

                                                                              CQRS設計パターンをモダナイズする
                                                                            • OpenAI、次世代AIモデル「GPT-4o」を発表

                                                                              日本時間2024年5月14日未明、OpenAIは新たなフラッグシップモデル「GPT-4o」を発表しました。このモデルは、音声、視覚、テキストのリアルタイム処理を可能とし、従来のAIモデルを大きく上回る性能を誇ります。OpenAIのCTOであるミラ・ムクティ氏は、「GPT-4oは、人間とマシンのインタラクションの未来を大きく変える一歩です。このモデルにより、コラボレーションがはるかに自然で簡単になります」と述べました。 「GPT-4o」の主な特徴を以下にまとめました。 他のモデルを凌駕する性能 GPT-4oは、OpenAIの以前のモデルであるGPT-4 Turboや、ライバル会社のClaude 3 Opusなどの大規模言語モデルと比較して、頭ひとつ抜けた性能向上を実現しました。サム・アルトマンCEOは、今年4月に "Chatbot Arena" でgpt2というコードネームでテストされていた

                                                                                OpenAI、次世代AIモデル「GPT-4o」を発表
                                                                              • AWSコスト異常検知を導入したら、『人にお願いする』トイルが発生したのでSlackBotを作って解消した - KAYAC engineers' blog

                                                                                SREチームの池田(@mashiike)です。SRE連載の5月号になります。 AWSのコストについては、多くの方がすごく気にしていると思います。 カヤックでもAWSのコストの変動に関しては敏感に気にしています。 そんな方々の心のお供になる機能が、 AWSコスト異常検知(AWS Cost Anomaly Detection) です。 今回は、このコスト異常検知にまつわるトイル削減の取り組みを紹介します。 背景 AWSコスト異常検知は、AWS マネジメントコンソールの中では『Billing and Cost Management』配下にある機能になります。 この機能を使うことでAWSで発生したコストに関して、通常とは異なるコストの発生を検知することができます。 コスト異常検知自体については、CureApp テックブログ様のZennの記事がわかりやすくまとまっているので、そちらを参照いただければ

                                                                                  AWSコスト異常検知を導入したら、『人にお願いする』トイルが発生したのでSlackBotを作って解消した - KAYAC engineers' blog
                                                                                • PPR - pre-rendering新時代の到来とSSR/SSG論争の終焉

                                                                                  本稿はNext.js v15.0.0-rc.0時点の情報を元に執筆しており、PPRはさらにexperimentalな機能です。v15.0.0のリリース時や、PPRがstableな機能として提供される際には機能の一部が変更されてる可能性がありますので、ご注意下さい。 Partial Pre-Rendering(以降PPR)はNext.js v14.0で発表された、SSRやSSGにならぶ新たなレンダリングモデルです。 PPRは前述の通り開発中の機能で、v15のRC版にてexperimentalフラグを有効にすることで利用することができます。ppr: trueとすれば全部のページが対象となり、ppr: "incremental"とすればexport const experimental_ppr = trueを設定したRouteのみがPPRの対象となります。 // next.config.mjs

                                                                                    PPR - pre-rendering新時代の到来とSSR/SSG論争の終焉