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

  • 2024年に買ってよかったもの第一位:O’Reilly Online Learning $499/年 - laiso

    締切早ッ、とみくびることなかれ。私の中ではすでにダントツで2024年に買ってよかったもの第一位がO’Reilly Online Learning年間契約に決定しました。 O’Reilly Online Learning は、技術書籍の出版社であるO’Reilly Mediaが提供するオンライン学習プラットフォームです。技術書籍の電子版を読むことができるだけでなく、ビデオやオンラインコースも受講できます。 www.oreilly.com 洋書だけではなく、日語の技術書も多く取り揃えられています。実はO’Reillyの技術書籍だけでなく、ManningやPacktなどの他の出版社の技術書も取り扱っています。O’Reilly Japanから出されているでも原著の出版社はO’Reilly Mediaではないということもあります。そもそもO’Reillyのでも日語翻訳されているのはごく一部で

    2024年に買ってよかったもの第一位:O’Reilly Online Learning $499/年 - laiso
    hem6
    hem6 2024/09/12
  • ユーザー体験重視のSPAアーキテクチャ改 - laiso

    JavaScriptフレームワークを取り巻く状況は、常に変化を続けています。近年では、サーバーサイドレンダリング(SSR)とクライアントサイドレンダリング(CSR)のバランスは、重要な検討事項です。 ChatGPTのRemix採用 2024年9月、ChatGPTNext.jsからRemixに移行したことが明らかになりました。この出来事は、Remixの母体であるReact Router系のコミュニティで大きな話題となり、移行の理由について様々な憶測を呼びました。 JavaScriptエキスパートのWes Bos氏(学習動画教材とかを作っている人)は、ChatGPTフロントエンドのソースコードを分析し、OpenAIがRemixを採用した理由について独自の考察を展開しました。 www.youtube.com 緊急で動画を回すWes Bos氏 Wes Bos氏の分析によると、ChatGPTのア

    ユーザー体験重視のSPAアーキテクチャ改 - laiso
  • 個人開発でもADR (アーキテクチャデシジョンレコード)を書くことの利点 - laiso

    起業なのか請負開発か趣味プロジェクト(ペットプロジェクト)かによって状況は異なりますが「私のチームの開発者は私1人だけです」という個人開発においても、ADRは有効なツールとなりえます。 ADRとは何か? ADR(アーキテクチャデシジョンレコード)は、ソフトウェアアーキテクチャにおける重要な設計判断とその根拠、影響、関係する検討事項などを記録した文書です。 一見、現代的な響きですが、その実態はシステム設計ドキュメントの一部です。 "ADR"で検索すると真っ先にヒットするアーキテクチャの入門書『Design It! ―プログラマーのためのアーキテクティング入門』では、ADRは「アーキテクチャ手法に対する開発者寄りのアプローチ」と説明されており、アーキテクトと開発者自身がアーキテクチャに関する意思決定を記録し、共有するための手法として位置づけられています。 アーキテクチャデシジョンレコード(A

    個人開発でもADR (アーキテクチャデシジョンレコード)を書くことの利点 - laiso
  • Terraform担当大臣 - laiso

    “Platform Engineering”という私的よく見かけるが意味を調べたことのない用語No.1のトピックについて書かれたがO'Reillyからearly releaseされているので読んでる。まだ第一部しか公開されてない。 learning.oreilly.com その中に出てくるアプリケーションチームがTerraformコードを管理することで起きがちな問題について共感したので紹介する アプリケーションエンジニアリングチームがIaaSクラウドのあらゆるものを求めるようになったとき、多くの企業は、各チームに独自のクラウドインフラストラクチャを独自の構成でプロビジョニングする権限と責任を与えることが、摩擦の少ない方法だと判断しました。 実際には、これは、構成管理とインフラストラクチャプロビジョニングに精通した、兼業のクラウドエンジニアリングチームになることを意味していました。 繰り返

    Terraform担当大臣 - laiso
    hem6
    hem6 2024/08/26
  • データベース中心の設計になってしまう問題と闘う - laiso

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

    データベース中心の設計になってしまう問題と闘う - laiso
  • ITエンジニアは休日に勉強すべきか『なぜ働いていると本が読めなくなるのか』 - laiso

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

    ITエンジニアは休日に勉強すべきか『なぜ働いていると本が読めなくなるのか』 - laiso
    hem6
    hem6 2024/07/08
  • 更新されたら真っ先に聴いているおすすめポッドキャスト - laiso

    ポッドキャストはリスナーの存在が見えづらいらしく聴いてるとアピールしないと更新停止してしまいがちなので定期的に感想を書いていく 聴く環境について ポッドキャストの探し方 BUSINESS WARS / ビジネスウォーズ News Connect あなたと経済をつなぐ5分間 #ニュースコネクト Off Topic // オフトピック fukabori.fm バンクーバーのえんじに屋 texta.fm プログラム雑談 Misreading Chat mozaic.fm kkeethのエンジニア雑談チャンネル 購読一覧 聴く環境について クライアントはGoogle Podcastを使っているんですけど終了してしまうし*1最近はSpotifyに誘導されがちなので、今後移行先をどうしようか迷っている そもそもGoogle Podcastの購読一覧ってどこから見るんだろうと疑問だったが、https:/

    更新されたら真っ先に聴いているおすすめポッドキャスト - laiso
    hem6
    hem6 2024/01/01
  • 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
  • デジタル庁でjQueryが何をしているのか - laiso

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

    デジタル庁でjQueryが何をしているのか - laiso
  • 丁寧なDeno+JSX - laiso

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

    丁寧なDeno+JSX - laiso
  • 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
  • GPTでソースコードからpatchを生成し続けたらプログラミングを自動化できるのでは???? - laiso

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

    GPTでソースコードからpatchを生成し続けたらプログラミングを自動化できるのでは???? - laiso
    hem6
    hem6 2023/04/10
  • Tauri on mobile 現状確認会 - laiso

    tauri.app Tauri とは Electron代替として作られたRust製のGUIアプリケーション開発ツールキット。 ユーザーは各プラットフォームのWebViewで動くHTML+JavaScriptUI開発をして、裏側はRustで書いたネイティブバイナリにコンパイルされるプログラムを呼び出す。 実際の実装のイメージが以下で、Electronに使い方は似せられている。 tauri.app Electronは特製ChromiumとNode.jsをユーザーのアプリケーションに同梱することでポータビリティを担保させているのに対して(find /Applications -name "Electron Framework.framework" コマンドを実行してみると大抵どんな環境にもElectronが10匹ぐらい居る) TauriはOSが用意しているWebViewにリンクして、スクリプト

    Tauri on mobile 現状確認会 - laiso
  • 個人開発のコストはDB次第 - laiso

    個人でWebサービスを継続的に運用するのは金がかかってかなわんという問題がある 「個人開発」だと定義が曖昧なので自己資金かつ赤字のプロジェクト(Webサービス)ということにする。 そういうプロジェクトではプロダクトオーナー=自分、開発者=自分、予算管理者=自分というロールになるので予算管理者としてコストを図る必要がある(ここでいうコストはWebサービスを実現するアプリケーションのランニングコストのこと)。 通常はみんな自分の人件費を0として計算していると思う(逆にいうとそれが負債という考え方もできると思う)。 ただしメンテナンス時間とコストのトレードオフもあるので、人件費0ではあるけど有限の時間は別軸として管理しているのが普通だと思う。極端な例だと「コスト削減できるけどメンテナンス時間10倍になる」というのは避けられる。 仮に個人開発プロジェクトの予算を月数千円から高くても1万円ぐらいか

    個人開発のコストはDB次第 - laiso
  • Edge Functionsはブラウザ - laiso

    Cloudflare Workers Cloudflare Workersのようなサーバーレスなコンピューティングプラットフォームとしてここ数年活発な「エッジサーバーでプログラムを実行する環境」(呼び方が定まらないので一旦Edge Functionsとする)でアプリケーションを作る*1とブラウザが通信する先にもう1つブラウザが存在するような妙な感じを覚えていた。 例えばNext.jsAPI Routesなら書いたコードはNode.jsで動くので頭をサーバーサイドモードにすればいいが、Cloudflare Workersで動くエンドポイントを書く時はそうでない…… おまえ、ブラウザなのか? みたいな でもよく考えたらこれらのプラットフォームはSpiderMonkeyやらV8やらのブラウザと同じJavaScriptエンジンを組み込んだ実行環境を持っていて、APIも環境の制限(TCP接続とかフ

    Edge Functionsはブラウザ - laiso
  • Clubhouseのユーザーインターフェイスを支えるObjective-Cの確かな信頼と実績 - laiso

    ClubhouseiPhoneアプリは各所でお馴染みのObjective-Cライブラリが使用されており、アプリ自体は最先端のムーブメントながらもUIからはシニアの職人技を感じます。根拠はないですがアプリの実装もObjective-Cでゴリゴリ書いてそうです。 ここではそんなObjective-Cライブラリの一部を紹介します。 IGListKit https://github.com/Instagram/IGListKit Instagram開発チームのコレクションビューの差分描画最適化のノウハウが詰ったライブラリです。 アプリの肝となるフィード系の画面で使われています。 UIScrollView+InfiniteScroll https://github.com/pronebird/UIScrollView-InfiniteScroll 無限スクロールを実現するライブラリです FlagP

    Clubhouseのユーザーインターフェイスを支えるObjective-Cの確かな信頼と実績 - laiso
  • どんなプログラミング技術の学習に投資すべきか考える時にやってること - laiso

    はじめに とにかく次の10年を生き残りたい - 怠惰を求めて勤勉に行き着く を読んでいて、かー自分もここ10年ぐらい同じような内省をし続けていたではないかと深く共感したので、その過程で身に付けたやり方を書くことにしました。 目的 プログラミング技術を学習する目的を決めます。僕の場合は ソフトウェアエンジニアとしての市場価値を上げる(他のエンジニアから尊敬されたい)とか 素晴しいアプリケーションを作れるようになりたい(エンジニア以外からも尊敬されたい) というものがあります。人によってはこれが「GAFAMNに入り渡米してメジャーデビュー」「OSSで一発当てる」「とにかくお金を稼いでアーリーリタイヤ」など様々かと思うので各自考えてください。 テーマ 目的が決ったら次は学習するテーマを決めます。僕の場合は「○○エンジニア」と呼称されている領域ごとに「この分野で先進的なネタは何だろう」というのをリ

    どんなプログラミング技術の学習に投資すべきか考える時にやってること - laiso
  • Cloud FunctionsをGoで書く。またはFirebaseのためのマイクロサービスアーキテクチャ - laiso

    Firebase Advent Calendar 2019 の17日目です。16日目はKesin11さんの「Firebase Emulator Suiteをフル活用してTDDで開発しよう」でした。 はじめに FirebaseプロジェクトでCloud Firestoreを利用する時は通常Node.jsによるCloud Functionsでトリガーとなる処理を記述します。その他には関連するAPIサーバー、WebアプリのフロントエンドのSSR、バックエンドの非同期処理など、多くの場面でCloud Functionsが活用されています。 この開発→デプロイサイクルをお手軽に行ってくれるのがfirebase-toolsというnpmモジュールです。JavaScriptでFunctionを実装し、firebase deployコマンドを実行するだけでFirebaseプロジェクト用のCloud Funct

    Cloud FunctionsをGoで書く。またはFirebaseのためのマイクロサービスアーキテクチャ - laiso
  • Firebaseを使った成長するモバイルアプリのための高速なプロダクト開発 / Rapid Mobile Application Development using #Firebase - laiso

    「Firebaseを使った成長するモバイルアプリのための高速なプロダクト開発」というプレゼンテーションのスライドを公開します。 2018年にバンコクにきて以来取り組んでいたプロジェクトについて技術的な内容をトークにしました*1。以下が概要です モバイルアプリケーションの開発プロジェクトはあらゆる意味で速度との闘いです。 複雑化するシステムアーキテキチャやプラットフォーム、開発ツールのエコシステム。数多くある選択肢の中から私達は2018年にFirebaseを使い、1つのモバイルアプリケーションを開発しました。 トークではその時の経験を元に、プロダクト開発を高速化するために技術者視点でどのような貢献ができるのか? という知見をシステムアーキテクトの立場としてお伝えします。 開発中はFirebaseコミュニティの情報などが非常に助けになりました。この場をお借りして感謝の御礼を申し上げます。 *

    Firebaseを使った成長するモバイルアプリのための高速なプロダクト開発 / Rapid Mobile Application Development using #Firebase - laiso
  • 1