並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 469件

新着順 人気順

*programの検索結果1 - 40 件 / 469件

*programに関するエントリは469件あります。 プログラミングAIprogramming などが関連タグです。 人気エントリには 『Chrome Devtoolのmonitorを使うと関数の呼び出しを観察できて便利 - ぱすたけ日記』などがあります。
  • Chrome Devtoolのmonitorを使うと関数の呼び出しを観察できて便利 - ぱすたけ日記

    を読んで思い出したのでご紹介です。 元の記事と同様に以下の関数 sum について、 function sum(nums, acc = 0) { console.log({ nums, acc }); if (nums.length === 0) return 0; if (nums.length === 1) return nums[0]; return sum(nums.slice(1), acc + nums[0]); } この関数sumの引数 (nums と acc) の呼び出しごとの変化を見たい場合は、所謂プリントデバッグや debugger を使うのは一般的なテクニックとしてよく知られていますが、このような関数呼び出し時の引数を知りたい場合はmonitor(function)という関数を使うことで同様の効果を得ることが出来ます。 この場合は monitor(sum)とした後に、関

      Chrome Devtoolのmonitorを使うと関数の呼び出しを観察できて便利 - ぱすたけ日記
    • GitHub、「Copilot Workspace」テクニカルプレビューを開始。ほとんど全ての開発工程をAIで自動化

      GitHub、「Copilot Workspace」テクニカルプレビューを開始。ほとんど全ての開発工程をAIで自動化 テクニカルプレビューは上記のCopilot Workspaceのページからウェイトリストボタンをクリックして申し込みます。 Copilot Workspaceはほとんど全ての工程を自動化 Copilot Workspaceは、自然言語で書かれたIssue(課題)を基に、Copilotが仕様案と実装計画を示し、コーディングや既存のコードの修正を行い、ビルドをしてエラーがあればデバッグも行うという、プログラミングのほとんど全ての工程をCopilotが自動的に実行してくれる、というものです。 人間は各工程でCopilotから示される内容を必要に応じて修正するか、そのまま見守ることになります。 GitHub CEOのThomas Dohmke(トーマス・ドムケ)氏は、Copilot

        GitHub、「Copilot Workspace」テクニカルプレビューを開始。ほとんど全ての開発工程をAIで自動化
      • colorsなどのnpmパッケージに悪意あるコードが含まれている問題について

        追記: 2022年1月11日 2:29 JSTにDoS脆弱性としてセキュリティアドバイザーが出されて、悪意あるバージョン(1.4.1や1.4.2)はnpmからunpublishされ、npmの最新は安全なバージョンである1.4.0へと変更されました。 Infinite loop causing Denial of Service in colors · GHSA-5rqg-jm4f-cqx7 · GitHub Advisory Database 2022-01-08 に colors というnpmパッケージにDoS攻撃のコードが含まれたバージョンが1.4.44-liberty-2として公開されました。 GitHub: https://github.com/Marak/colors.js npm: https://www.npmjs.com/package/colors 問題についてのIssu

          colorsなどのnpmパッケージに悪意あるコードが含まれている問題について
        • 生成AI/LLMを使ったウェブサイト開発 - laiso

          週末にちょっとしたウェブサイトというかリンク集(?)を作った。 今回は生成AIツールをフル活用していつもより効率よく作業ができた。 生成AIツールについては日々、新しいものがヤバイすごいと宣伝されているけど、実際にどう使っているのかという情報が少ないと感じている。 なので具体的な使い方を書いてみることにした。 作ったもの 開発の概要 最終的なアーキテクチャ UI開発に生成AIツールを使う 初期デザインの参考元 デザインツールの選定と比較 Next.jsの利用 Cursorを活用した開発 データ整形にLLMを使う スクレイピング Amazonの商品データ取得 LLMの選定 動的なコードと静的なコードの使い分け TypeScriptを使わない範囲を定めた 静的サイト生成(SSG)の採用 柔軟なデータベース設計 まとめ 作ったもの 『最も重要な「最も重要なマンガ10選」10選』は「最も重要なマン

            生成AI/LLMを使ったウェブサイト開発 - laiso
          • Qwen3はローカルLLMの世界を変えたかも - きしだのHatena

            Qwen3が出ていて、14Bを中心にいろいろ試したのだけど、かなり使い物になって、日常的な用途ではこれでいいのでは、という感じもします。 4BでもGPT-4oを越えているという話もありますが、確かに単純な用途ではGPT-4oの代わりにしてもいいなと場面も割とありそうな出力です。さすがにちょっと込み入ったものだと4oだけど。 1.7Bなど小さいモデルも既存のモデルより使えるものになっていて、ローカルLLMの世界を変えそう。 解説動画も撮りました。 週間ニュースのまとめはじめました。 サイズとしては0.6B, 1.7B, 4B, 8B, 14B, 32Bと、MoEモデルの30B-A3B, 235B-A22Bです。 30B-A3Bが賢いというベンチマークだけど、コーディング用途だと14Bや32Bのほうがいいかも。MacならMLXで30B-A3Bは めちゃ速くていいけど。という感じでどのサイズにも

              Qwen3はローカルLLMの世界を変えたかも - きしだのHatena
            • JavaScriptを大きく変えうる Dataflow Proposals の概要と論点(Call-this, Pipe Operator)

              Dataflow Proposals とは 以下の5つのプロポーザルをまとめて Dataflow Proposals と呼んでいる。 Stage 2: Pipe operator Stage 1: Call-this operator Stage 1: Partial application(PFA) Stage 1: Extensions Stage 0: Function.pipe and flow 例えば Pipe operator, Call-this operator, Partial application を組み合わせると、以下のように書けるようになる。(提案段階なので変わる可能性アリ) import { getAuth, getIdToken } from "firebase/auth"; function isPublic(article) { return articl

                JavaScriptを大きく変えうる Dataflow Proposals の概要と論点(Call-this, Pipe Operator)
              • ここはMCPの夜明けまえ

                本日、「AI駆動開発実践の手引き -これが僕/私のAI(アイ)棒」というイベントで「ここはMCPの夜明けまえ」 🎵🧭 というタイトルで登壇しました! 🔍 イベント詳細: - イベント名: 【ハイブリッド開催】AI駆動開発実践の手引き -これが僕/私のAI(アイ)棒- - 公式URL: http…

                  ここはMCPの夜明けまえ
                • Goで作るテキストエディタ - Sansan Tech Blog

                  はじめに みなさんこんにちは。Sansan事業部プロダクト開発部のiOSエンジニア荒川です。 以前はRDBMSの記事*1を寄稿し、好評いただいたこともあり、定期的に車輪の再発明系の記事を書いていこうと思います。 さて本日はタイトルの通り、VimやEmacsに代表されるターミナルで動作するインラインテキストエディタをGoで開発してみました。 ソースコードは以下のリポジトリに置いているため、ぜひ参考にしてください。 github.com 完成品 文字だけだとイメージも湧きにくいので、まずは完成品をお見せします。 最低限エディタの動きは出来ている、というレベルの完成度ですね🙏 特徴 1000行インラインエディタ 文字入力/挿入/削除 画面スクロール キーボードショートカット ファイル読み込み/保存 Goのコードハイライト機能 実装の方針 今回はただ開発するだけではなく、いくつかのこだわりポイン

                    Goで作るテキストエディタ - Sansan Tech Blog
                  • 個人的 AI Writing のやりかた

                    こんにちは、よしこです。 最近コーディングではAIを活用できる場面が増えてきたのですが、これまで記事の執筆にはなかなかAIを活かせていませんでした。私は文章表現にこだわりが強いようで、抵抗感が拭えず… でもそんな自分でもAIを活用して記事執筆の負担を削減できる方法が見えてきたので、今回はそれを紹介したいと思います。 といってもすべてを書かせるわけではありません。イメージこんな感じ!(せっかくなので挿絵にも使ってみる) 骨組み(0~20%) 内容や要点のメモ書き。一旦箇条書きとかでいいので楽 肉付け(20~70%) 骨組みを文章にしていく。ここが結構悩むしめんどくさい 仕上げ(70~100%) 記事としてだいたいできたものを第三者視点で見返し、読みやすく調整を重ねる 形になっているものの調整なので、時間はかかるけど気は軽い このうち一番ボリュームのある「2. 肉付け」をAIにやってもらう方法

                      個人的 AI Writing のやりかた
                    • 論理プログラミング言語Logicaでデータサイエンス100本ノック

                      Googleが発表したOSSプロジェクトである論理プログラミング言語Logicaを使って、データサイエンス100本ノック(構造化データ加工編)の設問を解きながらどのような言語かを確認していく。 (BigQueryのクエリとして実行していく) 最初に、プログラミング言語Logicaの特徴を纏めておく。 論理型プログラミング言語: このカテゴリではPrologが有名 SQLにコンパイルされる: 現状BigQueryとPostgreSQLに対応 モジュール機構がある: SQLと比較した強み コンパイラはPythonで書かれている: Jupyter NotebookやGoogle Colabですぐ始められる Colabでチュートリアルが用意されているので、まずこちらからやると良いと思う。 コードの見た目は関係論理の記述に似ている。 事前に、データサイエンス100本ノックのテーブルデータをBigQu

                      • セキュアなWeb APIの作り方 / Secure Web API

                        2023/09/06 に行われた OCHaCafe Season7 #4 で用いた資料です。 セッションアーカイブ動画:https://youtu.be/p3VmoPKrBNs

                          セキュアなWeb APIの作り方 / Secure Web API
                        • PythonでTableau風 BIツールによる視覚的データ探索をやってみよう 〜PyGWalker〜 - Qiita

                          更新情報 -目次- はやくもUI改善等 Ver.upが図られています。以下内容の記事を追加しました。 1. データフレーム表示 2. ヒストグラムの描き方 3. ダークモード対応 4. オンライン版 5. 海外のデータイノベーション支援団体でも人気 はじめに Tableauはご存じでしょうか? 私は使ったことはありませんが、名前だけはよく耳にします。 これは、専門家でなくてもデータの収集・分析・加工ができるBI(ビジネス・インテリジェンス)ツールのひとつです。 なんと、Jupyter Notebook上(Google ColabもOK)で実行できる Tableau風 BIツール「PyGWalker」が登場しました。 Tableauそのものではありませんが、ドラッグ&ドロップの簡単な操作でデータ分析や視覚的な探索が実行できます。 こんなのが出てくるとは・・・すごい。 しかも、数行のコードで実

                            PythonでTableau風 BIツールによる視覚的データ探索をやってみよう 〜PyGWalker〜 - Qiita
                          • 生成AIでネイティブiOSアプリをゼロから作ってリリースした体験談・知見

                            AIにTypeScript+Next.jsでWebアプリを作らせる、といった事例はよく見聞きするようになった一方で、ネイティブアプリを作った例は全然見ないなーと思ったので、試してみました。 作ったもの カラオケで歌えるレパートリーのリストを作ったり、採点スコアや歌いやすいキーの設定などを記録しておける "Setori" というアプリを作りました。 作るにあたって考えたこと AIがあんまり知らなそうな技術にどのように立ち向かうかを見たい Webアプリに比べてiOSアプリのコードはAIの学習範囲に相対的に少ないはずで、AIがどこまでいい感じにやってくれるのか知りたかったです。そこで、アプリのフレームワークの中でもネット上に情報が多くなくてAIがあまり学習していなそうなものを取り入れることにしました。具体的には: SwiftData: 曲リストや採点情報の永続化に使用 MusicKit: 楽曲検

                              生成AIでネイティブiOSアプリをゼロから作ってリリースした体験談・知見
                            • フロントエンドのテストのモックには msw を使うのが最近の流行りらしい

                              皆様フロントエンドのテストを書いていらっしゃいますでしょうか? フロントエンドのテストを書くときには API コールする処理を全てモックする必要があります。外部の API をコールする処理をテストに含めると API サーバーが落ちているなどの外部の要因によってテストが失敗してしまう可能性がありますし、テストを実行するたびに実際に API をコールしてしまうとサーバーに負荷がかかってしまうなど外部に対しても悪影響を与えてしまいます。 さて、従来のモックする手段としては Jest のモックを利用して axios や fetch などのモジュールをモック化する手法がよく使われていたかと思います。 最近のテスト手法として API コールをモックする際に Jest ではなく Mock Service Worker (以下 msw )を使用する手法が注目されています。実施にどのように使用されているのか

                                フロントエンドのテストのモックには msw を使うのが最近の流行りらしい
                              • スマホ片手にフリースタイルでAI Agentでコーディングする環境をつくる。

                                オチ code-serverをいれる claude codeをいれる 様子 あらすじ 我々はスマホでごろ寝コーディングがしたい(主語がでかい)。 しかしながらスマホでコードをポチポチするのは苦行であり、もっと楽にやりたい、なんなら音声入力でどうにかしたい。 となると、昨今はやりのAI Agentをつかったコーディングが選択肢にあがる。 すでにDevinやReplit がそういった体験を提供しているが、どちらも結構お高いし、「本当に俺はスマホでそんなにソースコード書くのか?」とか、「金はともかく、GitHubやSlackと連携させるのか?(Devin)」とか、「コードが読みにくい(Replit)」とか「PHPを書けない…だと…?(Replit)」という様々な問題があって自分には微妙だった。 そこで私が試したのがcode-serverとclaude codeだった 概要 code-server

                                  スマホ片手にフリースタイルでAI Agentでコーディングする環境をつくる。
                                • TypeScriptで世界一型安全な型レベルSQL Interpreterを作っている話

                                  こんにちは。DevOps芸人と化して久しいAndyです。 2020年の秋にTypeScript 4.1へTemplate Literal Typesが導入され、そのインパクトに俄かに一部の界隈がザワついたのは記憶に新しいかと思います。 今回は型プログラミングの可能性を大いに押し広げたTemplate Literal Typesを用いてSQL文を型レベルで解析し、その実行結果を型情報として導出するためのsqlptureというライブラリを作ったので紹介します。 Embedded content: https://github.com/andoshin11/sqlpture SQLの実行/検証対象はPostgreSQL v13です。 tl;dr SQL文を型レベルで解析・評価して返り値型を取得できるmini interpreterを作ったよ 型レベルのSQL validatorも作ってるよ 実際

                                    TypeScriptで世界一型安全な型レベルSQL Interpreterを作っている話
                                  • あなたはフロントエンドの何をテストしたいのか。 - Qiita

                                    フロントエンドのテストをしよう Webのフロントエンドの自動化を進めようか。という話をしていて、 「そもそもテストってなんだ?」 「フロントエンドに特有のテストってなんだ?」 「〇〇ってツール流行ってるらしいってどうよ?」 みたいなことを話をしていました。そうしたときに、やっぱり知識足らねぇなぁ。と思ったので、2,3日でゴリゴリと内容をまとめてみる作業をしてみました。 あんまりこういう書き方はしないんですが、私自身散発的な思考で、フロントエンドのテストを調べることをしたので、そのような語り口で書いてみようと思います。 以下の内容は、あくまで例なので、別にこういう仕事があったわけではないです。 とりあえず投げられた要求・仕様 とりあえずなんか仕事が振ってきた。パラパラと要求を聞いてみると、こんな感じだった。 承認のダイアログが欲しい メッセージのフォントはOswald メッセージは変更できる

                                      あなたはフロントエンドの何をテストしたいのか。 - Qiita
                                    • Terraform MCP Server を使ってみた - 電通総研 テックブログ

                                      はじめに こんにちは、クロスイノベーション本部エンジニアリングテクノロジーセンターの徳山です。 この記事は、2025年5月20日に公開されたばかりの Terraform MCP Server をGitHub Copilot in VS Code ( 以降、Copilotと記載 ) で使用してみた体験談です。Terraform MCP Server の導入前のコード生成状況から導入内容、導入後のコード生成結果までを紹介します。 Terraform MCP Server は、 LLM (大規模言語モデル) の AIエージェントへ Terraform のプロバイダーとモジュールの検出やプロバイダーのリソース詳細情報取得などの機能を提供するMCPサーバです。 Terraform MCP Server の導入前の Copilot は、Terraform の AzureRM には存在しない架空のプロパ

                                        Terraform MCP Server を使ってみた - 電通総研 テックブログ
                                      • ChatWP: WordPressをAI化しておしゃべりする

                                        今は日記をScrapboxに移行(scrapbox.io/kentaro/)したのですが、その前の20年分ぐらいのブログはWordPressに入っています(kentarokuribayashi.com)。長い間書き続けてきたブログには、僕の人格のかなりの部分が注ぎ込まれているでしょう。そうであれば、ブログそのものをAI化することで、自分自身の代理=エージェントを作れるはずです。 そこで、WordPressをAI化して、自分の代理人格としておしゃべりできるようにしてみました。 できたもの こんな会話ができるようになりました。自分で読んでみても、そこそこ自分っぽい感じがします。 python ./chatwp.py Question: お名前はなんですか? Answer: 私の名前はケンタロウ・クリバヤシです。 Question: 職業は何をしていますか? Answer: 私はソフトウェアエン

                                          ChatWP: WordPressをAI化しておしゃべりする
                                        • Ruby 3.0 の Ractor を自慢したい - クックパッド開発者ブログ

                                          Ruby の開発をしている技術部の笹田です。娘が自転車に乗り始め、まだ不安なためずっとついていなければならず、少し追っかけまわしただけで息切れがヤバい感じになっています。運動しないと。 ここ数年、Ruby で並列処理を気軽に書くための仕組みである Ractor を Ruby 3.0 で導入するという仕事を、クックパッドでの主務として行ってきました(クックパッドから、これ、と言われていたわけではなく、Ruby を前進させるというミッションの上で行ってきました)。 Ractor は、もともと Guild という名前で開発をはじめ、2020年の春頃、Ractor という名前に変更することにしました。いくつかの機会で発表しています。下記は、RubyKaigi での発表の記録です。 A proposal of new concurrency model for Ruby 3 - RubyKaigi

                                            Ruby 3.0 の Ractor を自慢したい - クックパッド開発者ブログ
                                          • WebAssembly の過去・現在・未来 - Qiita

                                            Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに WebAssembly (略して Wasm) では WASI や WIT、 Component Model など様々な仕様があります。 それぞれが登場した背景、モチベーションなどを理解することでなんとなく概要を掴んでいくことができるのではないかと考えたため、過去・現在・未来と時間軸で整理してみました。 まず Wasm とその特徴に関して簡単に紹介した後、Wasm の過去として生まれた背景やモチベーションを紹介します。 そして現在の Wasm がなぜ注目を集めているのか、そして現在策定中の仕様と目指している未来について紹介します

                                              WebAssembly の過去・現在・未来 - Qiita
                                            • GitHub Copilotと快適なユニットテストコード作成生活

                                              こちらで登壇させていただいた資料です。 https://trident-qa.connpass.com/event/314818/ ※ こちらは2024/05/23 時点の私の考えとなります。更新の予定はございませんのでご了承ください

                                                GitHub Copilotと快適なユニットテストコード作成生活
                                              • ArmにあるというJavaScript専用命令とは何か、あるいは浮動小数点数を整数に変換する方法について - Qiita

                                                元の値の絶対値が大きすぎる場合や、無限大、NaNの場合は、 6.3.1.4: 表現できない場合はundefined behavior。 Annex F.4: 表現できない場合はinvalid例外が発生して、値はunspecified。 とされています。 これ以外の浮動小数点数→整数型の変換方法には (l)lrint や (l)lround 関数などがあります。 Java 基本的に0方向への丸め(切り捨て)で計算されますが、コーナーケースについても言語仕様で定めています。 NaN:0を返す 結果が表現できないもしくは無限大の場合:符号に応じて最大値または最小値が返る。 参照: 5.1.3. Narrowing Primitive Conversion - Chapter 5. Conversions and Contexts JavaScript JavaScriptではビット演算やいくつか

                                                  ArmにあるというJavaScript専用命令とは何か、あるいは浮動小数点数を整数に変換する方法について - Qiita
                                                • マシな作り方の作り方を作る | 麦 Baku

                                                  ここ最近、Glispというアプリをつくっています。Lisp ベースのベクタードローイングツールで、Creative Coding と伝統的なチマチマやるデザインとの合わせ技っぽい使い勝手を目指してます。 ひとまずCuusheさんのビデオに手入れ続けて止まらないのが気が済んでからなのですが(ごめんなさい…)、終わったら本格的にこれに注力してみたいなと思っとります。だから助成金やファウンディング含めてみなさんに色々ご相談したいです。 #glisp – Twitter Search / Twitter これが実現したらようやく「こいつなんか意味分からん事言って Adobe に因縁つけてるな」みたいなんがもう少し多くの人に理解してもらえる気がしています。少なくともベクターグラフィックに関しては、ソフトの使い勝手に気が散ってツール開発をしないとしんどくなる体質が改善して実制作に集中出来るようになれま

                                                    マシな作り方の作り方を作る | 麦 Baku
                                                  • 個人開発から公式機能へ: PlaywrightとRailsをつなげた3年の軌跡

                                                    Developers Summit 2025(2025.02.13-14) - 翔泳社イベント 1日目 13-E-9 あなたのプロダクトが見たい!個人開発リレーセッション で話したときの資料です。 https://event.shoeisha.jp/devsumi/20250213/session/5551

                                                      個人開発から公式機能へ: PlaywrightとRailsをつなげた3年の軌跡
                                                    • GIS に欠かせない Shapefile を深堀ってみる - Qiita

                                                      Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 1. はじめに 地理情報システム (GIS) で、使用するデータとして「Shapefile 形式」でデータ提供されていることがあります。この記事では、この Shapefile が、どのような構造となっているのかについて、説明していきます。 1.1. トポロジ構造とは Shapefile について説明していく前に、まずは GIS データ等でよく利用される「トポロジ構造」について説明しておこうと思います。 例えば、トポロジ構造を持つファイルとして、次のようなものがあります。 .gdb: ESRIのファイルジオデータベースは、トポロジを含む複

                                                        GIS に欠かせない Shapefile を深堀ってみる - Qiita
                                                      • Rubyでゲームボーイのエミュレータを作った

                                                        2024/12/24追記 WebAssemblyを使ってブラウザ上で動くようになりました! はじめに Rubyでゲームボーイのエミュレータを作って、rubyboyという名前のgemで公開しました! (スターをいただけると嬉しいです!) この記事 Ruby Boyの実装手順を説明しながら、ハマった点や工夫した点を紹介します。 またRuby Boyの高速化のためにやったことを紹介します。 なぜゲームボーイのエミュレータをつくったのか なにか個人開発をしたいが、Webサービスは維持費がかかるので無料で維持できるものを作りたい 業務でRubyを使っていることもあり、以前からRubyのgemを作ってみたかった ゲームのエミュレータ開発は「ゴールが明確&動くと楽しい」ので、モチベを維持しやすそう 特にゲームボーイには思い入れがある → Rubyでゲームボーイのエミュレータを作って、gemで公開しよう!

                                                          Rubyでゲームボーイのエミュレータを作った
                                                        • Graydon HoareのCompiler講義資料が面白かった話 - Arantium Maestum

                                                          Graydon Hoareが2019年にカナダのブリティッシュ・コロンビア大学でコンパイラ関連のゲスト講義した時の資料21 compilers and 3 orders of magnitude in 60 minutes - a wander through a weird landscape to the heart of compilationを読んだら大変面白かったのでメモ。 作者 Graydon HoareはMozillaでRustを開発したことで有名。その後Rustの開発もMozillaも離れて(というかRustの開発からは2013年に離れたようだ)、一時期AppleでSwift開発チームに所属していたらしい。(ソース:Reddit: I wonder, why Graydon Hoare, the author of Rust, stopped contributing in

                                                            Graydon HoareのCompiler講義資料が面白かった話 - Arantium Maestum
                                                          • 人はFat Modelを恐れサービスを求め ドメインモデルは貧血に至る - @ledsun blog

                                                            この文章は祈りです。 主にRuby on Railsアプリケーションを想定した話です。 Ruby on Railsアプリケーションでは、Fat Model問題という問題が起きることがあります。 ドメインオブジェクトが肥大化しメンテナンスしにくくなる問題です。 Fat Model問題に対応するためにサービスレイヤーを導入することがあります。 「ドメインモデル貧血症」と呼ばれているアンチパターンです。 ドメインモデル貧血症 ドメインのロジックをドメインオブジェクトの中に入れないという設計ルールに従っているのでしょう。その代わり、すべてのドメインロジックを含むサービスオブジェクト群が存在しているのです。 Fat Modelを恐れよ Fat Modelは「単一責任原則」を満たしていないモデルです。 単一責任原則 | プログラマが知るべき97のこと 1つのサブシステムやモジュール、クラス、関数などに

                                                              人はFat Modelを恐れサービスを求め ドメインモデルは貧血に至る - @ledsun blog
                                                            • 達人プログラマー 第2版はいいぞ

                                                              名著中の名著である達人プログラマーの第2版が2020年11月に出版されました。 原著であるThe Pragmatic Programmerは、1999年の出版で、第2版(英語版)の出版が2019年なので20年ぶりの改定ということになります。 この書籍にある個人的に響いたTipsと、ちょっとした感想をこの記事に書いていますので、書籍購入の参考になれば幸いです。 個人的に響いたTips8選 本書にはありがたいTipsがたくさんありますが、その中でも自分に特に響いたTips8つを紹介します。 割れた窓を放置しない 環境犯罪学の理論で有名な「割れ窓理論」はエンジニアリングの世界でも 当てはめることができるようです。 この書籍では悪い設計や質の低いコードを「割れ窓」とみなし、 それを放置することはクリーンなシステムの崩壊を加速させると言及しています。 これに関しては自分の心のなかで「割れ窓」が種とな

                                                                達人プログラマー 第2版はいいぞ
                                                              • 書き捨てるためのRust - Qiita

                                                                はじめに Rustは「きちんとしたプログラムを書く時にはいいけど、書き捨てのプログラムを書くには向いていない」と言われることがあるようです。「一般論としては全くその通り」と思う一方で、自分自身を振り返ってみると、これまでPythonで書いていたような書き捨てに近いプログラムも全部Rustで書くようになっています。 なぜ書き捨てのプログラムもRustで書くのかを考えてみると 最初は書き捨てだと思っていても、手直ししながら使い続けることは意外と多い コンパイラが割と多くのエラーを捕捉してくれるのでデバッグの時間が短くて済む 記述量の多さはエディタの補完があってあまり気にならない といったあたりが理由になっています。 そうはいってもRustがいろいろと面倒な言語であることには違いないので、書き捨てるときは普段のRustプログラミングとは少し違った書き方をした方がより早く書けるのではないかと思いま

                                                                  書き捨てるためのRust - Qiita
                                                                • DuckDB-Wasm + DuckDB-Spatial = Webブラウザ上で完結する地理空間情報分析

                                                                  本日のデモ: 本日のソースコード: おっと、待たせたねぇ!今日は「DuckDB-Wasm」と「DuckDB-Spatial」についてご案内いたしやすよ! この記事を読めば、ブラウザだけで地理空間情報の分析をサクッとこなせすための環境構築や、便利な関数を使った地理空間情報分析の基本がバッチリわかるって寸法よ!これを知っときゃ、サーバーいらずで本格的な地理空間情報分析ができちまうし、つまずきやすいポイントもスッキリ解消!あんたもいますぐ地理空間情報分析の達人になれるこたぁ間違いなしだ!さぁ、江戸っ子の心意気で、いますぐその手で試してみな! Vite.js + React でやんでぇ!まず、Vite.js + React + TypeScriptを開発環境の基板とするってのは、問答無用で決まりだ!ほかにゃ選択肢はねぇってわけよ。Viteの速さ、Reactの使いやすさと豊富なライブラリのエコシステ

                                                                    DuckDB-Wasm + DuckDB-Spatial = Webブラウザ上で完結する地理空間情報分析
                                                                  • 脆弱性報告で GitHub から $4,000 貰った話

                                                                    はじめに こんにちは、ダイニーの ogino です。 この記事では GitHub の bug bounty で脆弱性を報告し、実際に報奨金を受け取った時の体験を共有します。 私は特にセキュリティの専門家ではなく、偶然に問題を見つけて初めて報告をしました。読者の方が同じようなチャンスに遭遇した時スムーズに行くように、海外からお金を受け取る上での意外なつまずきポイントや、実際に貰える金額などについて紹介します。 どんな問題を見つけたのか 今回見つけたのは、GitHub Copilot の VSCode 拡張機能に関する問題です。 この拡張機能のソースコードは本来公開されていないはずですが、TypeScript のソースマップによって元のコードが露出していました。 そもそも VSCode の拡張機能は .vsix という拡張子の付いたパッケージ形式で配布されます。これは実態としてはただの zip

                                                                      脆弱性報告で GitHub から $4,000 貰った話
                                                                    • DevTools の Web 技術でできている部分を覗き見る - polamjaggy

                                                                      この記事ははてなエンジニア Advent Calendar 2021 の 22 日目の記事です。 昨日の記事は id:shimobayashi さんの アジャイル推進活動にここ1年で吉兆がみえてきた要因について - 下林明正のブログ でした。 Chrome の DevTools の UI 部分は Web 技術でできています。Web 技術でできているので、DevTools を DevTools で inspect することもできます。 example.com を inspect している画面を inspect している様子 このことを知ったのは、10MB くらいある JavaScript ファイルにブレークポイントを貼りつつデバッグしていたら DevTools が固まるようになってしまい、ブレークポイントを解除しようにもその前に DevTools がフリーズしてしまうので詰んだ……、という出

                                                                        DevTools の Web 技術でできている部分を覗き見る - polamjaggy
                                                                      • testing-library でユーザの気持ちになって書くフロントエンドのテスト

                                                                        TL;DR フロントエンドのテストが壊れやすく要因の一つは、ユーザがどのようにソフトウェアを使うかをクエリに反映できていないからかも testing-library はソフトウェアを使うユーザの気持ちを反映させやすいようにクエリの優先度をつけていて、それに従うほうがいい 優先度の低いクエリも役に立つことがある 運用しているアクセシビリティなどの実装のガイドラインに沿うようなテストを作るとき アクセシビリティの低い実装をリファクタリングするためのテストを作るとき はじめに フロントエンドのテストに用いるツールとして testing-library が知られています。testing-library は提供しているクエリに優先度をつけています。この優先度は、どういう基準でつけられているのでしょうか。 この記事では、 testing-library のガイドを読みながら、クエリの優先度を「ユーザの

                                                                          testing-library でユーザの気持ちになって書くフロントエンドのテスト
                                                                        • 大規模言語モデルと外部リソースとを融合させたアプリケーションを作ろう-langchainのご紹介- - Qiita

                                                                          はじめに 近年、深層学習を用いた自然言語処理技術の進展が目覚ましいです。 その中でも、GPT-3をはじめとする大規模言語モデル(LLM)には大きな可能性を感じています。 最近ですと、AI技術者以外にも大きなインパクトを与えたChatGPTが記憶に新しいでしょう。 今後もLLMの進化は止まらないと予想されており、私たちもどうやって活用するかを具体的に検討すべきフェーズに入ったのではないでしょうか。 しかし、LLMを実業務に適用するとなると、越えなければならない課題がいくつも出てきます。 今回は、以下にあげた第2・第3のハードルを越えるために役立つlangchainというライブラリをご紹介します。 第1のハードル:機密データの扱い LLMはOpenAPIのGPT-3等、モデル自体は公開されておらずWebAPIだけが提供されているというパターンが多いです。 そのため、機密データを社外に送信すると

                                                                            大規模言語モデルと外部リソースとを融合させたアプリケーションを作ろう-langchainのご紹介- - Qiita
                                                                          • PlaywrightによるE2Eテスト入門 / Introduction to E2E Testing with Playwright

                                                                            PlaywrightによるE2Eテスト入門 / Introduction to E2E Testing with Playwright

                                                                              PlaywrightによるE2Eテスト入門 / Introduction to E2E Testing with Playwright
                                                                            • GitHub Actions のみで、actions/cache も使わない最軽量の VRT

                                                                              Web アプリケーション開発での VRT 導入は、ちゃんと運用するとなると以下のような多くの検討事項を伴います。 Storybook のストーリーベースで比較するか?それとも実アプリケーションの URL ベースで比較するか? CI 上でアプリケーションをビルドして dev server を立ち上げるか、それともデプロイ先のアプリケーションにアクセスするか? スクリーンショットの比較はどのように行うか?比較時の閾値はどのように設定するか? 比較元のスクリーンショットはどのように用意するか?例えば Amazon S3 などのストレージ や GitHub Actions の actions/cache を使用する場合など コミットハッシュを用いて比較元のスクリーンショットを特定する場合、マージ先のコミットハッシュに紐づくスクリーンショットが存在しない時の対応は? VRT の結果で差分が出たが、そ

                                                                                GitHub Actions のみで、actions/cache も使わない最軽量の VRT
                                                                              • 「Clineに全部賭ける」勇気がでないのでGitHub Copilot Agentでお安く試してみる - Qiita

                                                                                Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに mizchiさんの記事を読んで以下の部分に衝撃を受けた。 ペアプロでいうとClineがドライバーで、ユーザーがナビゲータになる。役割を交代する。 ここ2ヶ月ほどの間自分は生成AIの作ったコードを評価するために 設計,デザインパターン リファクタリング TDD,テストとの向き合い方 を主に学習していたが,これは自分がAIエージェントにサポートを受けることを前提に考えてのことだった。 今後,我々人間がAIのサポートをするような時代がくることを考えると,早いうちにAIエージェントとうまく付き合っていくやり方を考えるのは急務であると思

                                                                                • SQL等価性検証ツールCosetteを使ってみた - Qiita

                                                                                  はじめに 皆さん、SQLチューニングしてますか?(唐突) 私は仕事柄RDBMSのSQLチューニングをすることが多いのですが、たまにチューニングの一環で SQL文の書き換え をすることがあります。 その際に問題になるのが、書き換えたSQL文が等価であるかどうかの確認が大変なことです。 SQL文を書き換えた場合には、想定通りの結果を取得できるか確認するために、テストをやり直す必要があります。 これが開発早期のフェーズならまだましなのですが、結合テスト以降だと手戻りも多くかなりコストがかかりますし、既に本番運用が始まったシステムともなると、テスト自体が困難なこともあります。 また、複雑なSQL文だと網羅的なテストケースを作成すること自体が困難であるため、完全に正しいと確信することはできません。 なので、SQL文の書き換えの正しさを証明する良い手段はないかと考えていました。 SQLチューニングとは

                                                                                    SQL等価性検証ツールCosetteを使ってみた - Qiita

                                                                                  新着記事