ブックマーク / laiso.hatenablog.com (38)

  • データベース中心の設計になってしまう問題と闘う - laiso

    『手を動かしてわかるクリーンアーキテクチャ 』の第二章の冒頭に登場する話題に共感したので紹介。 従来の多層アーキテクチャでは、データベースを中心にアプリケーションの 開発が行なわれます。この場合、Web 層はドメイン層に依存し、ドメイン層は 永続化層、つまり、データベースに依存することになります。そうなると、す べてのものは永続化層上に構築されることになり、その結果、いくつかの要因 が絡まり合って、問題が起きやすくなります。 手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発 20p 手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発 作者:Tom Hombergs,須田 智之インプレスAmazon 著者によれば、機能開発をデータベース中心に設計すると、ドメイン層と永続化層の密結合が

    データベース中心の設計になってしまう問題と闘う - laiso
    toshikish
    toshikish 2024/08/11
  • GitHub Copilot Workspace ファーストインプレッション - laiso

    概要 GitHub Copilot WorkspaceはAIが組み込まれた開発環境。「見えてきたプログラマー不要時代」で有名。テクニカルプレビュー中で、ウェイトリストに申請すると招待が来る。 githubnext.com 巷で言う”仕様書から開発自動化コーディングエージェント”とはちょっと違って、あくまでCopilot WorkspaceはCo-pilotの役割のみで、コーディングするのは自分、と考えると良い。今までブロック単位のコード補完だったものがレポジトリ全体に及んでる、というようなアナロジーだと思う。 自然言語を使用してタスクを指定し、AIが生成したコードの微調整、レビュー、繰り返しをユーザーが行うことができる。タスクの定義をIssueからインポートすると画像も認識する。 特徴 自然言語で目的(Task)、現在値・期待値(Specification)、変更計画(Plan)の各フェー

    GitHub Copilot Workspace ファーストインプレッション - laiso
    toshikish
    toshikish 2024/07/21
  • 唐突に使っているChrome拡張を紹介 - laiso

    ページ閲覧 AutoPagerize chromewebstore.google.com ページネーションされたウェブページを自動で読み込み続けます。無かったら違和感あるレベルで日常になっています。 daily.dev chromewebstore.google.com 開発者向けニュースを空タブに表示します。 タブを開くときに自然に視界に入るのに加えて、検索で「過去話題になったもの」から探したりします(はてなブックマークやHacker Newsも似た用途で使います) ホームタブとは別です。ホームはperplexity.aiにしてます。 Google Scholar PDF Reader chromewebstore.google.com 標準のPDFビュワーを科学論文を読みやすく強化します。参考文献の追跡や引用、ジャンプ機能を提供します。ついでに官庁資料やクリプト系のホワイトペーパーなど

    唐突に使っているChrome拡張を紹介 - laiso
    toshikish
    toshikish 2024/07/09
  • ITエンジニアは休日に勉強すべきか『なぜ働いていると本が読めなくなるのか』 - laiso

    『なぜ働いているとが読めなくなるのか (集英社新書)』は、はてなブックマークが生み出した(!)作家・書評家の三宅香帆の近著で、同名のウェブ連載を書籍化したものです。書は、労働と読書の関係を明治から平成にかけての歴史を通じて探り、最後に著者自身の社会への提言でまとめられています。 書では、読書に関する「教養としての知識」と「情報としての知識」を区別しています。「教養」としての知識には偶然性や文脈(ノイズ)が含まれるのに対し、「情報」はそれらのノイズが除去され、読者が求めるものだけが提供されると説明しています。この情報に最適化された形式が現在の自己啓発書となっているのが書の歴史考察で分かります。 高度経済成長期を経て形成された仕事人生という人々の価値観は、自分から離れた知識=ノイズを取り入れる余裕、すなわち読書をする余裕を失わせる結果となりました。その結果、情報の消費は「仕事のため」

    ITエンジニアは休日に勉強すべきか『なぜ働いていると本が読めなくなるのか』 - laiso
    toshikish
    toshikish 2024/07/08
  • ONCE: Writebookのソースコードを調べた - laiso

    once.com Writebookについて Writebookは、https://37signals.com/books のようなオンラインブックを構築できるツールです。 これは37signalsのONCEというモダンなパッケージインストール型ソフトウェアを再考したものの一部で、37signalsのポッドキャストでたびたびコンセプトが言及されています*1。ブログ世代としてはMovable Typeを彷彿させます。 Writebookを無料にしている理由は、これをゲートウェイとしてCampfireにも流れていくことを期待しているようです。 セットアップ https://once.com/writebook にアクセスし、登録を行うと、ライセンスキーとインストールコマンドが書かれたメールが送られてきます。 セットアップは、手順に従ってダウンロードしたonceコマンドを使用して行います。このo

    ONCE: Writebookのソースコードを調べた - laiso
    toshikish
    toshikish 2024/07/05
  • 2023年に書いたコード - laiso

    2023年のふりかえり」ではPythonJavaScriptのコーディングの話ばかり出てくるけど、これって今年全体から見ると1割以下だなぁと思ったのでGitHubのメトリクスを見ながら振り返ることにした laiso.hatenablog.com 言語ごとのコミット数 PHPの話 Laravelの話 開発手法の話 テストの話 GitHub上での活動 2021年 2022年 言語ごとのコミット数 vn7n24fzkq/github-profile-summary-cardsというのが生成してくれたグラフ profile-summary-card-output Pythonデータ分析サーバーをFastAPIで書いてるのでその分と、Swiftは記憶にない 他の大部分はLaravel を使った複数のプロジェクトになる PHPの話 PHP仕事が欲しいわけではないのであんまりPHP書ける人ブラ

    2023年に書いたコード - laiso
    toshikish
    toshikish 2023/12/31
  • 2023年のふりかえり - laiso

    TL;DR 2023年に学んだ知識で2024年はマネーを獲得 2022年のふりかえり 2023年にやったこと After ChatGPT ChatGPTの使い方 コーディング自動化 アプリケーション開発 クラウドプラットフォーム関連 技術系の動画 フレームワーク関連 AWSコスト最適化大作戦 オライリー メインエディタをVSCodeに乗り換えた AndroidからiPhone 15 Proに乗り換えた OSSへの寄付 2023年にやりたかったこと 2024年にやりたいこと LLMを活用したアプリケーションを開発する 技術書を書く ニュースレターを配信する 動画を作る 事業を作る 2022年のふりかえり laiso.hatenablog.com laiso.hatenablog.com 2023年にやったこと After ChatGPT Chat Completions APIのリリースを

    2023年のふりかえり - laiso
    toshikish
    toshikish 2023/12/26
  • WebUIについて調べた - laiso

    WebUIデスクトップアプリを作るためのライブラリ。HTML, CSS, JavaScriptフロントエンドを作り、バックエンドをC, C++, Python, Go, TypeScriptなどの言語で開発できる。システムにインストールされているWebブラウザで動作する https://webui.me/webui.me 2023年にhassandragaさんが公開し、V言語コミッタのttytmさんらも参加した 体はCで開発されていて、Python, Go, TypeScriptにバイディングが提供されている 似た技術としてはElectronやTauri、Gluonなどが存在する laiso.hatenablog.com zenn.dev アーキテクチャについて ElectronやTauriと比較すると、WebUIのアーキテクチャはWebアプリをブラウザで開くだけなのでより単純かつ制

    WebUIについて調べた - laiso
    toshikish
    toshikish 2023/12/25
  • デジタル庁でjQueryが何をしているのか - laiso

    TL;DR: jQueryはDrupalのバーター リニューアルするたびにWeb界隈の一斉レビューを受けることでお馴染のデジタル庁ポータルサイトがいつの間にかまたリニューアルされていて、フロントエンドNext.jsからDrupalに変わって話題になっていたので1、私も旅券所持者として国政に関心を持ってゆく また、まわりのフロントエンドエンジニアの間でjQuery氏の入庁について「モダンブラウザ全盛の時代に必要か?」と疑念がとなえられていたので、これも追求してゆきたい どのような変更があったのか システム変更の経緯はプロジェクトの関係者であるHal Sekiさんの発言が正確なところだと思う Drupalが話題ですが、元々CMS側は2年前からずっとDrupalだったんです。設立当初はサイトもシンプルだったのでフロントエンド側はNextjsでヘッドレス構成だったのですが、構成が複雑になってきて

    デジタル庁でjQueryが何をしているのか - laiso
    toshikish
    toshikish 2023/12/14
  • Copilot ChatのAgents機能がすごそう - laiso

    GitHub Copilot ChatのアップデートでAgentsという機能が追加されて@workspaceをつけて質問することでエディタのコンテキスト外のファイルも対象に回答してくれるようになった。 code.visualstudio.com 「プログラマー失業不可避」が噂されるCopilot Workspace*1とは別の機能なので注意。 以下Microsoft Copilotに翻訳してもらった要点: LLMは、ある時点での公開リポジトリのデータで訓練されています。つまり、現在のコードについては何も知りません。コードについては一般的なことは知っていますが、ワークスペースの内容に関する必要な文脈を持っていないので、それに関する質問に正確に答えたり、ワークスペースの形式や機能に従った新しいコードを提案したりすることができません。 これを回避するために、GitHub Copilot Chat

    Copilot ChatのAgents機能がすごそう - laiso
    toshikish
    toshikish 2023/12/03
  • 「しずかなインターネット」の技術スタックを調べる - laiso

    ポエム特化のZenn2との噂の「しずかなインターネット」を使いはじめたので、ユーザーとしてどんな技術が使われているのかを確認していく。 sizu.me おもむろにbuiltwith.comにかけてみる。 builtwith.com ここで分かる情報はブラウザのDevTools眺めてても得られるのであまり収穫はない。 前段にCloudflareのCDNサーバーがいて Next.jsで生成されたレスポンスを返している ことがわかる。 この時点ではキャッシュのみCloudflareなのか、Pages/WorkersでNext.jsのSSRごと動かしているのかは判断できない。 認証 Set-Cookie: __Secure-next-auth.session-token=が含まれているのでNextAuth.jsを使っているのが分かる。 next-auth.js.org Emailでサインアップする

    「しずかなインターネット」の技術スタックを調べる - laiso
    toshikish
    toshikish 2023/11/24
  • 人類には早過ぎるLLMの話 - laiso

    Sam Altman解任騒動は個人間の対立ではなく、組織構造の問題に注目すると感想が変わるなと思った。 www.nytimes.com この騒動についてはAIの安全性を重視する思想とOpenAIのビジネスの拡大を目指す戦略の衝突があるので、AIの安全性というトピックが重要になる。 僕は結構テクノロジー原理主義者みたいなところがあるので、自動車で人命が失なわれているとして人類が獲得した利益と比較できないし、SNSによって情報操作から暴動が起きたり、誹謗中傷で精神を病む人々が出現してもそれは—— まぁ困るよね・・(身内が事故やSNSで不幸にあったら絶対反転アンチになるだろうし) ぐらいの曖昧な態度だったんだけど、これをきっかけにAIの安全性についての研究等に関心を持つようになった。 安全性と言っても暴走ロボットが人類滅亡に向ってstep by stepで考えてください、みたいな昔のSF小説的な

    人類には早過ぎるLLMの話 - laiso
    toshikish
    toshikish 2023/11/23
  • Cursorはコードベースに質問できる - laiso

    VSCodeベースのCursorっていうGPT連携組込みエディタがあって、GitHub Copilot Chatと比較してみた。 cursor.sh 関心 読みテスト 脆弱性探知 OSS解析 書きテスト Cursor Copilot Chat 関心 GPTでソースコードからpatchを生成し続けたらプログラミングを自動化できるのでは???? - laiso ChatGPTのCode Interpreterのコードリーディング能力は結構優秀 - laiso で書いたようにコーディング(読み書き)を自動化したい。 Cursorをとくに薦めはしないけどLLM組込みエディタのUXの例としてわかりやすかったので紹介します。 読みテスト 脆弱性探知 例によって脆弱性診実習用アプリ(通称「やられサイト」)のSQLインジェクションを発見してもらうという会話をした。 ディレクトリを開いて「PHPファイルにS

    Cursorはコードベースに質問できる - laiso
    toshikish
    toshikish 2023/10/29
  • 丁寧なDeno+JSX - laiso

    *1 サーバーレスFunctionsぐらいの気軽さでサーバーアリのWebアプリをデプロイしたいという時がある。主に自分たちだけが使うようなツール系のやつ。 その時に今までのようにSPA+APIアーキテクチャではなく、モノリシックなサーバーサイドアーキテクチャにしつつもフロントエンド開発と同じツールチェインを使いたい、と前から思っていた。 これは単にReactメタフレームワークでも一気通貫に時短で作れそうだけど、個人の楽しみのための活動なので、一旦世間のトレンドからは離れて自分が当に必要だと思った要素技術のみを最小限に使って理解しながら試行錯誤したい。 ※ただ第三者に提供するシステムとかは安全に作られた既存フレームワークに乗るのがいいというのもある しばらく考えてみたところ、私にとっては「TypeScriptでJSXをテンプレートエンジンに使ってHTMLを書けるだけでよい」という所に落ち着

    丁寧なDeno+JSX - laiso
    toshikish
    toshikish 2023/10/24
  • TypeScript Origins: The Documentaryを観た - laiso

    TypeScript Origins: The DocumentaryはTypeScriptの誕生に関わった関係者たちへのインタビューで構成されたドキュメンタリー動画。 www.youtube.com 製作元はOfferZenというアムステルダムの求人プラットームの会社で、以前にはSvelte OriginsやLaravel Originsも公開している。 作ではReact.js: The Documentaryの次世代フロントエンドフレームワーク開発競争と時期を同じくして起っていたAltJS戦争の中でどうTypeScriptが現在の地位を獲得していったのかに迫る。 laiso.hatenablog.com 私はTypeScriptについては片手間業務プログラマーという感じで全然詳しくないんですけど、TypeScript Originsのゆりかご からRemove TypeScript

    TypeScript Origins: The Documentaryを観た - laiso
    toshikish
    toshikish 2023/09/25
  • Remove TypeScript - laiso

    経緯 world.hey.com DHHが「オタクくん見てる〜? 今からうちのレポジトリからTypeScriptを剥しま〜す」と宣言したことにより、Web開発者界隈でTypeScriptの是非自体の話になり騒ぎになった*1*2。 github.com その後、野次馬がたくさん集ってきてrevertプルリクエストを立てる人やTypeScript公式リポジトリから全ソースコードを消すプルリクエストを出す*3ようなキッズムーブをする人も出てきた world.hey.com 実際の変更 8617行のTypeScriptJavaScript化された。(Sloc 便利) ❯ scc src/ ─────────────────────────────────────────────────────────────────────────────── Language Files Lines Blan

    Remove TypeScript - laiso
    toshikish
    toshikish 2023/09/07
  • ChatGPTのCode Interpreterのコードリーディング能力は結構優秀 - laiso

    Code interpreter のキラーソリューションは表データの可視化っぽいけど、入力テキストとファイルソースによってテキスト生成とファイル出力ができるという点に着目すると色々活用の幅が広がる。 中でも、今までは入出力トークンに含まれる必要があったソースコードデータを外部ファイル化できるので、「リポジトリを丸ごとわせる」などの従来トークン制限上実現できなかったことが外部システム連携なしで簡単に可能になったのが嬉しいポイントだった。 この特性を生かして最近OSSの静的コード解析というかコードリーディングをChatGPTにやってもらっている。 以下のサンプルでは脆弱性診実習用アプリ(通称「やられサイト」)のSQLインジェクションを発見してもらうという会話をした。 chat.openai.com 以下ではaws-load-balancer-controller や openai-pr-re

    ChatGPTのCode Interpreterのコードリーディング能力は結構優秀 - laiso
    toshikish
    toshikish 2023/07/16
  • React.js: The Documentaryで振り返るReact普及の歴史 - laiso

    www.youtube.com Meta(当時Facebook)のReact Core Teamの主要人物たちに直接インタビューしたドキュメンタリー動画 タイムライン 2012年まで 最初はFacebook社内でReactが普及するまでの道程。 当時世の中的にはクロスブラウザの解決策はjQueryに落ち着き、モバイルアプリ化の流れでAPIサーバーとViewは切り離される傾向にあり、JavaScriptのクライアントサイドで大きいアプリケーション作るためにMVCフレームワークとか取り入れないとね〜という雰囲気だった Facebook社はマーク・ザッカーバーグがHTML5に賭けていた頃*1にBolt.jsというFacebook版Backbone.jsを開発していた 広告プラットフォームのコードは当時Bolt.jsを中心に構成されていたが、Jordan Walkeが関数型プログラミングのアイデア

    React.js: The Documentaryで振り返るReact普及の歴史 - laiso
    toshikish
    toshikish 2023/06/02
  • GPTでソースコードからpatchを生成し続けたらプログラミングを自動化できるのでは???? - laiso

    と思ってやってみたら結構実現できてウケたので解説します。 はじめに 最近のGPT(LLMs)アプリケーション開発界隈は「プロンプトの内容を試行錯誤して結果を期待する」フェーズから「LLMsの特性を生かした今までできなかった自動化を実現」という段階が訪れつつあって楽しい時期です。 LlamaIndexというOSSではDBのスキーマと自然言語からSQLを自動生成してその場で実行するというクレイジーな機能があるのですが(A Guide to LlamaIndex + Structured Dataを参照) これと同じ発想でソースコード全体からpatch(patch - Wikipedia)を生成してその場で適用するというアイデアを思いついたのでしばらく検証していました。 「コミットメッセージを先に書いてそれを満すコミットをGPTに生成してもらう」ようなイメージ。 書いたコードはpmonというコマ

    GPTでソースコードからpatchを生成し続けたらプログラミングを自動化できるのでは???? - laiso
    toshikish
    toshikish 2023/04/10
  • Internet Computer Dapp開発入門 - laiso

    Internet Computer (IC) とは 興味のない人向けに説明するとInternet ComputerはスマートコントラクトでDappを開発できるブロックチェーンです。 Dappはいわゆる分散型アプリケーションのことで、ブロックチェーンと連携するWebアプリケーションのことです。 自分も名前は知っていたものの有象無象の1つでしょぐらいの認識だったので今回ドキュメントを通して読んでみました。 internetcomputer.org Internet Computerの特徴 Internet ComputerはフロントエンドをSPAとして、バックエンドとデータ層をスマートコントラクトとして、フルスタックのWebアプリケーションをデプロイ可能です。 つまり新手のPaaSとして使えます。 厳密にはAsset Canisterという仕組みでフロントエンドも静的ファイル入りのスマートコン

    Internet Computer Dapp開発入門 - laiso
    toshikish
    toshikish 2023/03/10