タグ

ms2satoのブックマーク (1,127)

  • 技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL

    技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL はじめに 新たに書きました。 MySQLを使っても会社は潰れない 久々に記事を書いたのでどうぞお手柔らかに... 私が過去2年間で行った技術選定の成功と失敗を振り返り、その学びを共有したいと思います。 文才無いので淡々と箇条書きでいきます Twitterエンジニア垢作りました。エンジニアのお友達がいません。 @uncode_jp 注意 意見を押し付けるものではありません。ただ建設的な議論は大事だと思う。 自分の意見は明確に、歯切れのよい表現を意識している。人それぞれだよねみたいな感じに逃げたくない。技術選定に結論はある(過激)。 ただし技術選定にはコンテキストがあり、例えばプロダクトのフェーズや組織の事情によって当然結論は変わる可能性がある。 OSSの開発者さん達は偉大ですごい。あ

    技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL
    ms2sato
    ms2sato 2024/08/27
    “失敗した技術の大半に共通することはシンプルでないということ"この辺りかと
  • テスト用のオブジェクトを簡単に作れるFactoryJSというライブラリを作った|noteエンジニアチームの技術記事

    登壇者 TypeScriptでバックエンドのテストを書くときの課題早速なんですが、みなさんテストを書いてますでしょうか? 昨今では、TypeScriptでバックエンドを書けるのが普通になってきました。バックエンドで利用できるORMやフレームワークも充実してきています。 バックエンドはフロントエンドに比べてデータベースを扱ったり、重要なロジックが含まれているので、しっかりとテストを書きたいというモチベーションが湧いてくると思います。 そこで課題になるのが、テストデータの準備ですね。 例えば、Prismaで「ユーザーが管理者ならtrueを返す」というシンプルな関数を作ったとします。テスト対象のコードがシンプルなので、テストもシンプルに書けると思うかもしれません。 しかし、上記のテストコードを見てもらうとわかるとおり、ユーザーデータの作成する処理で数行のコードを書く必要があります。テストと関係の

    テスト用のオブジェクトを簡単に作れるFactoryJSというライブラリを作った|noteエンジニアチームの技術記事
  • 見積せえへんねやったらどうやって予算取りするねんという話|牛尾 剛

    私は世界規模のクラウドプラットフォームの開発者で、現在はシアトル付近に住んでいる。 先日書いた自分のポストに対する反応で面白い意見があってそれを読んでそらそう思うやろなぁと思った。ただ、私も別に嘘を言っているわけではないですし、これでビジネスも回っている。面白そうなので、その辺も調べてシェアすることにしてみました。 ウォーターフォールからアジャイルって開発側の話はいいのだが、それだと管理とか経営とか非エンジニアの理解を得られないので、納得できるところをちゃんと言語化してほしいんだよな。アジャイルの人の「見積もりがない」って言葉を使われるのが一番苦手、ストーリーポイントの設計は「計画と見積もり… — えふしん (@fshin2000) August 1, 2024 自分のチームの開発プロセス的なものこちらの方に自分のチームが現在やっている開発プロセスは書いてある。アジャイルとか、DevOps

    見積せえへんねやったらどうやって予算取りするねんという話|牛尾 剛
    ms2sato
    ms2sato 2024/08/07
    クリスさんから聞きたいこと「誰がどのようなプロセスで人を増やすと決めるか」。途方もない夢を追ってないことを誰かが評価して、数ヶ月レベルか年単位かかるか”見積る”からこそ人員の増減が決められるはず。
  • 世界中の大学のコンピュータサイエンスやプログラミング講座が日本語で学べる「MOOC」(大規模公開オンライン講座)サイトまとめ。2024年版

    世界中の大学のコンピュータサイエンスやプログラミング講座が日語で学べる「MOOC」(大規模公開オンライン講座)サイトまとめ。2024年版 インターネット上にはコンピュータ関連の情報があふれていますが、その情報の正確さや網羅性は玉石混淆で、いざそれらから学ぼうとしても取捨選択の段階で立ち止まってしまうこともあるはずです。 そうしたときに頼りになるもののひとつが大学のような専門の教育機関による講座であり、それらの講座を有料もしくは無料で提供する「MOOC」(Massive Open Online Courses:大規模公開オンライン講座)のWebサイトはここ数年で広く知られるようになってきました。 そこで記事では、世界中の大学の講座などを提供している主要なMOOCサイトから、日語で学べるコンピュータ関連の講座で、しかも無料で学べるものをピックアップしてみました。 もちろん、MOOCサイト

    世界中の大学のコンピュータサイエンスやプログラミング講座が日本語で学べる「MOOC」(大規模公開オンライン講座)サイトまとめ。2024年版
  • TypeScript/JavaScriptの不要なコードを削除するツール「Knip」の紹介 - ベースマキナ エンジニアブログ

    こんにちは、taroです! 今回は、ベースマキナのTypeScriptプロジェクトで不要なコードの検知・削除で使用しているKnipについて紹介します。 Knip とは Knipは、TypeScript/JavaScriptのコードベースの不要なコードを検出するCLIツールです。 以下が検出できる不要なコードの例です。 package.jsonのdependencies/devDependenciesの中で使われていないpackage exportされているがどこからもimportされていない変数、関数、型など 使用していないファイル その他、検出できる内容の一覧はこちらで確認できます。 またExperimentalな機能(2024年7月現在)として不要なコードの自動削除も可能です。 ちなみにTypeScript/JavaScriptの不要なコードの検出するツールではts-pruneも知ら

    TypeScript/JavaScriptの不要なコードを削除するツール「Knip」の紹介 - ベースマキナ エンジニアブログ
  • 選挙でGitHubを使うことに意味はあったのか?――GitHubを用いた政策リポジトリの公開について振り返る|#安野たかひろ 事務所(公式)

    安野チームの今泉(GitHub担当)です。 選挙活動が終わって一週間ほど経ちましたが、現在でもテレビ・雑誌等さまざまなメディアにおいて、東京都知事選挙を総括する記事が出ている今日この頃です。感想についてもSNSでたくさん投稿されており、肯定する意見も批判的な意見も、いずれもじっくり拝見させていただいています。 この記事は、「双方向の政策ディスカッション」を実現するための方策として行われた「GitHubを用いた政策リポジトリの公開」プロジェクトについての振り返り記事です。 選挙期間中に投稿した過去の解説記事はこちらをご覧ください。 結果感想戦を始める前に、まずファクトベースで結果を見ていきます。今回募集したのは「課題提起」であるissueと、「変更提案」であるPull Request(PR)ですが、それぞれどれだけ投稿されたのでしょうか。数字を見ていきましょう。 課題提起(Issue)アーカ

    選挙でGitHubを使うことに意味はあったのか?――GitHubを用いた政策リポジトリの公開について振り返る|#安野たかひろ 事務所(公式)
    ms2sato
    ms2sato 2024/07/19
    MVPとしてのGitHubかと思ったけど今後もこの方向なのかなぁ。マイナンバーカードでログインしてる書ける類似のシステムを開発したらいいのでは?って思ってたけど。
  • 「なぜ」と聞かずに理由を引き出す!「詰めてる」感を減らす言い換えテク - Qiita

    こんにちは。KDDIアジャイル開発センターのサービスデザイナー よねみちです。 生成AIを用いたto Bプロダクトのスクラム開発や、お客様のDX・新規事業創出のきっかけとなるデザインスプリント支援などを行っています。 はじめに レビューや会議で誰かが「詰められてる」様子、心にきますよね。自分がやられるのはもってのほかですが、周囲で発生するだけでも心がすり減ります。。 特に、何か問題が発生したときや、参加者間の誤解が解消できないときに「詰め」が生じがちです。 質問する側の、焦りや不安から「なぜ?」「どうして?」「つまり?」と質問マシーンになってしまう気持ちも理解できるのですが。 問い詰めてしまい心理的に不安全な状況に陥ると「ミスを隠そう、自分が責められないようにしよう」と回避する力が働きはじめ、結果として「正確な状況がわからない」「適切なアクションが取れない」といったチームとして重大なリスク

    「なぜ」と聞かずに理由を引き出す!「詰めてる」感を減らす言い換えテク - Qiita
    ms2sato
    ms2sato 2024/06/24
    基本的に「いきさつを教えて」って聞いてる気がする。そして全部聞いてから「どこに問題があったと思う?」「いつ頃気づいた?」みたいに本人の気持ちや考えを言ってもらう。
  • The Powerful Conversational AI JavaScript Library | NLUX

    NLUX with ReactGenerative UI With Next.jsChatGPT-Inspired UIChat pop-up with shadcn/ui import { AiChat, useAsStreamAdapter } from '@nlux/react'; import '@nlux/themes/nova.css'; import { send } from './send'; import { user, assistantAvatar } from './personas'; export default () => { const adapter = useAsStreamAdapter(send, []); return ( <AiChat adapter={ adapter } personaOptions={{ assistant: { nam

    The Powerful Conversational AI JavaScript Library | NLUX
  • as constを使って値からUnion型を生成する

    TypeScriptでは、 型を定義する → それに合わせて値を定義する のが一般的な型定義の方法です。 しかし、以下のように定数とそのUnion型を定義したい場合はどうでしょうか? 新たにプロパティを足す度に型定義を修正する必要があり面倒です。 type SettingKeys = "foo" | "bar" | "baz" type SettingValues = 1 | 2 | 3 const SETTING: Record<SettingKeys, SettingValues> = { foo: 1, bar: 2, baz: 3, // ↓を足そうとするとSettingKeys、SettingValuesの型定義を修正する必要がある // piyo: 4 }

    as constを使って値からUnion型を生成する
  • Deep Dive into React Stream/Serialize

    2024/04/30 Node学園 https://nodejs.connpass.com/event/315443/

    Deep Dive into React Stream/Serialize
  • RAGの実案件に取り組んできた今までの知見をまとめてみた | DevelopersIO

    はじめに 新規事業部 生成AIチーム 山です。 ChatGPTOpenAI API)をはじめとしたAIの言語モデル(Large Language Model:以下、LLM)を使用して、チャットボットを構築するケースが増えています。通常、LLMが学習したときのデータに含まれている内容以外に関する質問には回答ができません。そのため、例えば社内システムに関するチャットボットを作成しようとしても、素のLLMでは質問に対してわからないという回答や異なる知識に基づいた回答が(当然ながら)得られてしまいます。 この問題を解決する方法として、Retrieval Augmented Generation(以下、RAG)という手法がよく使用されます。RAGでは、ユーザからの質問に回答するために必要そうな内容が書かれた文章を検索し、その文章をLLMへの入力(プロンプト)に付け加えて渡すことで、ユーザが欲しい

    RAGの実案件に取り組んできた今までの知見をまとめてみた | DevelopersIO
    ms2sato
    ms2sato 2024/04/24
  • 2024年版 HTMLで作るフォームバリデーション - ICS MEDIA

    すべてのフォームが要件を満たしている場合のみ、送信できます。 フォームバリデーションのデザイン 上記の例では最低限のHTMLのみ実装されています。しかし、実際のサイトではバリデーションエラーをユーザーにフィードバックする必要があります。よりユーザビリティの高いフォームでは、以下の点を検討する必要があります。 エラー時のスタイル エラーメッセージの出し方 バリデーションエラーの表示タイミング 以下では、それぞれについて深堀りします。 エラー時のスタイル エラーを検知する方法として、CSSには:valid疑似クラスと:invalid疑似クラスがあります。これらの疑似クラスは『CSS疑似クラスを活用した、モダンでインタラクティブなフォームの作り方』でも紹介されている、バリデーションエラーが起きている要素にのみ適用されるクラスです。 しかし、この疑似クラスには欠点があります。required属性を

    2024年版 HTMLで作るフォームバリデーション - ICS MEDIA
  • なぜ我々は GitHub Copilot Enterprise の導入を見送ったのか - 一休.com Developers Blog

    CTO 室の恩田です。 今回は GitHub Copilot Enterprise を評価してみて、現時点ではまだ採用しないことを決めた、というお話をご紹介したいと思います。 きっかけ とあるエンジニアSlack で自身の times チャネルに時雨堂さんの GitHub Copilot Enterprise のススメという記事を投稿したことが発端でした。特に感想はなく URL に 👀 だけが添えられていたので、後で見るぐらいのメモだったんだと思います。 それを見かけた別のエンジニア技術雑談チャネルにその投稿を共有して、これは凄そうと話題を向けたところ、CTO の「評価してみる?」の一言で、有志が集って評価プロジェクトが始まりました。 雑談チャネルできっかけとなる投稿が共有されてから、30分足らずの出来事でした(笑)。 この話題が出たのは金曜日でしたが、週明け早々に稟議を終え、火曜

    なぜ我々は GitHub Copilot Enterprise の導入を見送ったのか - 一休.com Developers Blog
    ms2sato
    ms2sato 2024/04/17
    この取り組みに対してGitHubからアンサーが来たら熱いんだけど、そんなこと起こらないかなぁ。起きて欲しいなぁ。
  • Text content does not match server-rendered HTML

    Why This Error Occurred While rendering your application, there was a difference between the React tree that was pre-rendered from the server and the React tree that was rendered during the first render in the browser (hydration). Hydration is when React converts the pre-rendered HTML from the server into a fully interactive application by attaching event handlers. Common Causes Hydration errors c

    ms2sato
    ms2sato 2024/03/14
  • Web版VSCodeがDockerコンテナをWASM環境で起動、Webブラウザ内ローカルマシンとして利用可能に。拡張機能「vscode-container-wasm」登場

    Web版VSCodeDockerコンテナをWASM環境で起動、Webブラウザ内ローカルマシンとして利用可能に。拡張機能vscode-container-wasm」登場 WindowsMacなどのデスクトップPCでVisual Studio Code(以下VSCode)を利用して開発をする場合、同じローカルマシン上でDockerコンテナのLinux環境を起動し、VSCodeのターミナルで接続して操作することは、開発環境としてよくあることだと思います。 これと同じことをWebブラウザ版のVSCodeでも実現する、すなわちWeb版VSCodeが同一Webブラウザ上にWebAssembly化したDockerコンテナを起動し、Web版VSCodeからローカルマシンとして接続し利用できる、実験的実装を実現したVSCode拡張機能vscode-container-wasm」が登場しました。 V

    Web版VSCodeがDockerコンテナをWASM環境で起動、Webブラウザ内ローカルマシンとして利用可能に。拡張機能「vscode-container-wasm」登場
    ms2sato
    ms2sato 2024/02/14
    凄いのが出たね!
  • Postgres is Enough

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    Postgres is Enough
  • 国がスマホの「サイドローディング」を義務化したい理由 内閣府の担当者に直接聞いてみた

    政府が米Appleに対して義務化の方針を打ち出した「サイドローディング」。これが実現すれば、iPhone標準のアプリストア「App Store」以外からアプリを入手できるようになる一方、セキュリティ上の懸念が一気に高まるため義務化に反発する声は少なくない。サイドローディングに関する一連の疑問を関係者に直接ぶつけてみた。 疑問の声が多いサイドローディング義務化、政府の考えは スマートフォンのアプリはOS標準のアプリストア「App Store」や「Google Play」から入手するのが当たり前と思っている人も多いだろうが、それが問題だとしているのが日政府だ。実際政府は「デジタル市場競争会議」を2019年から実施し、2023年6月16日にはそこでの議論の成果として「モバイル・エコシステムに関する競争評価 最終報告」が取りまとめられている。 その中で政府が打ち出したものの一つが、OS標準の

    国がスマホの「サイドローディング」を義務化したい理由 内閣府の担当者に直接聞いてみた
    ms2sato
    ms2sato 2024/01/21
    “特定の分野に特化したアプリストアが登場し、そうしたストアがニッチな分野で強みを発揮してくることが、競争を生み出す源泉になる”この感じわかる。最初はゲームや開発ツール系なら警告圧力に勝てるかなぁ。
  • TypeScript Clearly & Quickly

    2024-01-01 quick-lint-js is a JavaScript bug finder. Today, version 3.0 makes it also a TypeScript bug finder! quick-lint-js complements TypeScript with beginner-friendly messages and fast linting. install quick-lint-js 🌐 try in browser code on GitHub Example code used in this article has been adapted from various open source projects, including some Copyright Tiny Technologies, Inc. and Copyrigh

    ms2sato
    ms2sato 2024/01/02
    方向性めっちゃいいな。原因がわかりやすいメッセージ素晴らしい。導入検討しよう
  • いきなり!ステーキ創業者81歳 「だからトップになれないんだよ」

    日経トレンディの独占インタビューだ。一大ブームとなった外店「いきなり!ステーキ」を立ち上げた一瀬邦夫氏は、運営会社ペッパーフードサービスの社長を2022年8月に辞任した。それ以降初めて、メディアの取材に応じることになる。今度は新たなステーキ店に挑戦、そう語る81歳の現役経営者に話を聞いた。 ▼関連記事はこちら 「いきなり!ステーキ」一部始終 81歳創業者語る、経営者の“病” 一瀬邦夫氏は現在81歳。1994年にペッパーランチ事業を、2013年にいきなり!ステーキ事業を生み出した。そして23年11月には「和牛ステーキ 和邦」を東京・両国国技館の近くにオープンさせている ――いきなり!ステーキはまさに一大ブームを巻き起こした一方で、ちょう落も早かった。この激しい下り坂をどんなスタンスで乗り切ったんですか。 一瀬邦夫氏(以下、一瀬) とにかくまずは落ち込んでいるところを周囲の人に悟られないよう

    いきなり!ステーキ創業者81歳 「だからトップになれないんだよ」
    ms2sato
    ms2sato 2023/12/21
    いいね!自分なりの哲学があって元気に仕事して、見習いたい姿の一つ。
  • fetch の中断と Back/Forward Cache からの復元で発生する奇妙な現象について - mizdra's blog

    TL;DR あるリソースの fetch 中にページ遷移すると、一部ブラウザでは fetch が中断される 中断されると、TypeError が throw される ページ遷移時は、ブラウザによって遷移前のページの実行が"停止"され、"捨てられる"ので、通常 throw された後のことは考えなくて良い しかし、そのページが Back/Forward Cache から復元されうるなら、話は別 ブラウザバックすると、エラーが throw された後からページが再開される!!! そして発生する、奇妙な現象の数々... はじまりは、あるサービスの不具合報告 ある日、「Webサービスから外部サービスにページ遷移した後、ブラウザバックで戻ると、エラー画面が表示される」という不具合が報告された。どうも WebサービスErrorBoundary で何かしらのエラーが catch され、それによってエラー画

    fetch の中断と Back/Forward Cache からの復元で発生する奇妙な現象について - mizdra's blog
    ms2sato
    ms2sato 2023/12/16
    ドキュメントによると、通信中の処理を止めるなりして再表示時に再接続が適切な対応らしいですね。 https://web.dev/articles/bfcache?hl=ja#always_close_open_connections_before_the_user_navigates_away