Our website uses cookies to improve your experience. By using our website, you consent to our use of cookies. To learn more, please see our Privacy Policy.
はじめに 今回の記事では、ソフトウェアアーキテクチャの入門的な内容を解説する。 対象とする読者 ソフトウェアアーキテクチャを勉強するエンジニア アーキテクチャに関して全くわからない初心者 タイトルで気になったひと ソフトウェアアーキテクチャとは? ソフトウェアのアーキテクチャは、システムの主要なコンポーネント、それらの関係(構造)、およびそれらがどのように相互作用するかを記述する。ソフトウェアのアーキテクチャとデザインには、品質属性、人間のダイナミクス、デザイン、IT環境など、多種多様な寄与要因が含まれる。アーキテクチャは、品質、保守性、パフォーマンス等のような全体的な成功に影響を与える重要な決定を含む。 ソフトウェアアーキテクチャの主な目的は、アプリケーションの構造に影響を与える要件を特定することだ。良好なアーキテクチャは、技術的な解決策を構築する際のビジネスリスクを削減し、ビジネス要件
僕は現在、TypeScript入門書『サバイバルTypeScript』を書いています。この本を書く過程で、わかりやすくて効果的な学習体験を提供するため、サンプルコードの制作には特別な注意を払っています。 サンプルコードは教育的な文書で重要な役割を果たします。しかし、よく考えられていないサンプルコードは学習者を混乱させ、思考の妨げになることさえあります。そのため、以下の6つのポイントに基づいてサンプルコードを制作するように心がけています。 シンプルにする クリアにする コメントで解説する 未導入の機能を避ける 完全な動作を示す コードの長さに注意する 1. シンプルにする コードは学習者が取り組んでいる特定の問題を解決する最短・最も簡単な方法を示すようにします。無関係な要素は省いて、特定のコンセプトや機能に焦点を当てます。 例: TypeScriptのforループを解説したいとき ✅Do:
はじめに 前回の記事で Xwin-LM-70B-V0.1 と Llama-2-70B の出力結果の比較しました。今回は Open Interpreter のバックエンドとして Xwin-LM-70B-V0.1 を使ってみます。 私の PC のスペック[1] i7 13700K 3090 24GB DDR5 128GB 準備 llama-cpp-python を CUDA を有効にしてインストールする。 sudo apt install -y build-essential cmake python3 python3-pip python-is-python3 \ && CUDA_PATH=/usr/local/cuda FORCE_CMAKE=1 CMAKE_ARGS='-DLLAMA_CUBLAS=on' \ pip install llama-cpp-python --force-re
はじめに 新規事業部 山本です。 ChatGPT(OpenAI API)をはじめとしたAIの言語モデル(Large Language Model:以下、LLM)を使用して、チャットボットを構築するケースが増えています。通常、LLMが学習したときのデータに含まれている内容以外に関する質問には回答ができません。そのため、例えば社内システムに関するチャットボットを作成しようとしても、素のLLMでは質問に対してわからないという回答や異なる知識に基づいた回答が(当然ながら)得られてしまいます。 この問題を解決する方法として、Retrieval Augmented Generation(以下、RAG)という手法がよく使用されます。RAGでは、ユーザからの質問に回答するために必要そうな内容が書かれた文章を検索し、その文章をLLMへの入力(プロンプト)に付け加えて渡すことで、ユーザが欲しい情報に関して回答
最近に限らず、ここ数年ずっと目にするし、聞かれることもあるこの話について、いくつかの思うこと、ぼやきを書いておく。あとで参照できて便利なので。 1. あなたが使い始めれば少なくとも昨日よりは広まりますよ好きなら使えばいいと思うので僕には気持ちがわからないのだが、好き・気になるけど流行ってないから使わないという心理があるらしい。企業での判断ならわかるが、個人でそれはまったくわからん。仮にそれがマジョリティだとしたら、使われなければ流行らないのに流行らないと使われない、デッドロックで詰みです。 あなたが使ってみてそのことを発信すれば、少なくとも昨日より世界で一人分は使用者が増えます。その積み重ねでしか普及しません。ですので、流行って欲しいと思うならまず自分から使って周りに広めてください。 2. そもそも「流行っている」とは?僕が思うに、「流行っている」ということと「広く普及している」ということ
タスク偏重のデザインはなぜ生まれるのか? 今回の「タスク偏重のデザイン」とは何を指すかというと、ナビゲーションが「学ぶ」「知る」「活用する」などになっているソフトウェアを指します。 こういったナビゲーションがなぜ生まれてしまうのか?をぼんやりと考えてみると以下のようなことが思い浮かびます。 要素や機能を動詞でグルーピングし、そのラベルを使ったケースユーザーの行動を時系列でモデリングし、行動名を使ったケースペルソナごとのキャッチフレーズを使ったケース機能を「〇〇学習」「〇〇活用」と仕様書に記述しそのまま使ったケース 1と2と3はUCD、HCD、UXD、JTBDなどの手法が裏目に、4は手法とは関係なくソフトウェア開発の仕様書の書き方が裏目にでたケースとも言えるかもしれません。 1.要素や機能を動詞でグルーピングし、そのラベルを使ったケース ユーザー視点でデザインするはずなのに、タスク偏重なデザ
FizzBuzzFS FizzBuzz問題といえば定期的にSNSで話題になっては変な解法が発明されることでおなじみですが(?)、ファイルシステムを使った事例が見当たらなかったのでやってみました。 まあ見ての通りというか…… /mnt/FizzBuzz に FizzBuzz.txt(8エクサバイト)があって、FizzBuzzが書いてあります。 どこまでも…… 容量の続く限り…… 以上!!!!!!! 技術解説 FUSE FUSE(Filesystem in USEr space)というソフトウェアを使うことで、簡単に新しいファイルシステムを実装することが可能です。 Rustにおいては、fuse crateの更新が停止した結果フォークが複数存在するようですが、利用者数と更新頻度的にfuser crateを使うのがよさそうです。 FileSystem traitが実装された値をmount2関数に渡
はじめに この記事では、 フロントエンドの開発において意義のあるテストはなにか? それらをコスパよく実現するためにはどうすればよいか? について考えて、作った構成を紹介します。 前提 下記の技術スタックを利用していますが、これ以外のスタックでも応用可能な仕組みが多いと思います。 Next.js Storybook playwright msw msw-snapshot (拙作) 注意事項 この記事の構成は、まだまだ実験的な機能だったり怪しい技術が一部採用されています。 msw-snapshot 拙作のライブラリであって、動作が怪しい可能性がめっちゃあります。 Next.js の testmode playwright + msw を実現するために必要でした。 まだまだ全然まともに動かないかもしれません。(サンプルリポジトリの単純なテストは動いた) サンプル 下記のリポジトリにサンプルを用意
TL;DR OpenAIの(Web)アプリであるChatGPTのうち、有料プランのGPT-4の知識が2022年1月までに延長された それまでは2021年9月までだった 検証したところ2022年の1月23日以降の情報は知らないようだ 概要 タイトルにある通りなのですが、GPT-4の知識(カットオフ時点)が2021年9月から2022年1月まで伸びたと話題になっています。公式からのアナウンスはまだないように見受けられます。 検証 試してみます。 確かに今までと応答が変わっていますね。 ちなみにGPT-3.5では以前のまま2021年9月までなので、ChatGPT Plus(有料)に加入していないと試すことができません。また、Azure OpenAI Serviceへの反映はまだです。 1月のいつまでなのか せっかくなので、本当に1月のデータを持っているのか、正確なカットオフ時点は1月の何日なのかを
This is a translated article. You can access the original here: Mob Programming – A Whole Team Approach by Woody Zuill モブプログラミング-チーム全体のアプローチ by Woody Zuill Translated by Yasunobu Kawaguchi, Ikuo Suyama and Ken Matsumoto 1. はじめに モブプログラミングとは、チーム全体が同じものを、同じ時間に、同じ空間で、同じコンピュータで作業するソフトウェア開発のアプローチです。これはペアプログラミング[PAIR]に似ています。ペアプログラミングは、2人の人が同じコンピュータの前に座り、同時に同じコードを共同作業するというものです。モブプログラミングでは、1台のコンピュータを使ってコード
ENOSUCHBLOG Programming, philosophy, pedaling. Home Tags Series Favorites Archive Main Site TILs GitHub Actions could be so much better Sep 22, 2023 Tags: programming, rant, workflow I love GitHub Actions: I’ve been a daily user of it since 2019 for both professional and hobbyist projects, and have found it invaluable to both my overall productivity and peace of mind. I’m just old enough to have u
こんにちは、VRoid部所属のエンジニアのyueです。 VRoid Hubでページ遷移時にcanvasの状態を維持する改善をリリースしました。本記事ではこの取り込みについて解説していきます。 前提 VRoid Hubではモデル詳細画面と投稿者のみに表示するモデル編集画面が存在しています。この二つのページは別々のレイアウトを使っていたため、モデル表示用のcanvasを操作するインスタンスがお互い共通せず、ページ遷移するたびにモデルを再度読み込むことが必要でした。 今回はDOM APIを利用してコード変更を最小限に押えつつ、再度読みを無くすような改善を行いました。 問題の再現 通常Reactの再レンダリングを防ぐには様々な手段があります。例えば React.memo 、React コンポーネントの key 、classコンポーネントのshouldComponentUpdate などが存在します
TL;DR 今話題のOpen InterpreterをSlack botにしました。 Codeはこちらのリポジトリをご覧ください。 はじめに Open Interpreter楽しんでますか? 「どうやらヤバイやつが爆誕したらしい」という認識で間違いなさそうです。 でも、このヤバさがわかってるのはまだ一部の人だけ、もったいない! ということで今回はこのOpen Interpreterを誰でも使えるようにSlack botにする方法を紹介します。 ファイルのアップロード、ダウンロードも可能ですので、最低限必要な機能を全て備えたものが完成すると思います。 この記事を読めばわかること Cloud Runを使ってサーバーレスなOpen Interpreter実行環境を構築する方法 Cloud Storageを使ってステートレスなCloud Runでも会話とファイルを維持する方法 Slack Botを
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く