この記事は、東京大学工学部電子情報工学科/電気電子工学科の後期実験「大規模ソフトウェアを手探る」のレポートとして作成されました。 Undo/Redo の履歴が消える悲しみ 編集系のソフトウェアで誰もがお世話になっているであろう Undo/Redo 機能ですが、このような悲しみに襲われたことはないでしょうか? 「以前の状態に戻したいのに、履歴が消えて戻せない〜〜〜」 講義室でアンケートを取ったところ、8 割以上の方がこの悲しみを経験されていたようです。 といっても、ピンとこない方がいると思うので、具体的にどういう問題があるのか説明していきます。 テキストエディタを例にとります。まず、操作 A, B, C を行います。ここでいう「操作」は、文字列の入力や Back space など、Undo/Redo 以外でエディタの編集状態を変えるものを指します。 続いて Undo を行います。 続いて操作
著者 仙塲大也(せんばだいや) 著 定価 3,278円(本体2,980円+税10%) 発売日 2022.4.30[在庫なし] 2022.4.26 判型 A5 頁数 400ページ ISBN 978-4-297-12783-1 978-4-297-12784-8 概要 「ITエンジニア本大賞2023」技術書部門で大賞受賞! 本書は、より成長させやすいコードの書き方と設計を学ぶ入門書です。 システム開発では、ソフトウェアの変更が難しくなる事態が頻発します。コードの可読性が低く調査に時間がかかる、コードの影響範囲が不明で変更すると動かなくなる、新機能を追加したいがどこに実装すればいいかわからない……。 変更しづらいコードは、成長できないコードです。ビジネスの進化への追随や、機能の改善が難しくなります。 成長できないコードの問題を、設計で解決します。 目次 1 悪しき構造の弊害を知覚する 1.1 意
はじめに 今回の記事では、PythonのWebフレームワーク「FastAPI」の特徴・課題点を簡潔に解説する。本記事の読者は主に以下のようなものを対象とする。 FastAPIを知らない人 FastAPIを実務で活用したい人 技術選定でFastAPIを選ぶ理由を検討している人 PythonでWebアプリケーションを開発したい人 すでにDjangoやLaravelなどの他のフレームワークに着手していて、別のフレームワークに関する情報を収集している人 FastAPIとは FastAPIとは、Djangoと同様にPythonのWebフレームワークである。主にWeb APIを開発するために利用される。 FastAPIの特徴 FastAPIの特徴は以下の通り。 Node.jsやGo言語に匹敵する高速なアプリケーションを開発できる。Pythonフレームワークの中では最も高速。 少ないコード量で実装できる
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 書きかけです。時間なく、駄文を撒き散らしながら加筆・修正していきます。 Pythonには大変お世話になっております。 Pythonは科学計算が得意で、データ解析もできる。単独開発なので、Pythonはなくてはならない言語。 Pythonの良いところ 科学(統計, AI etc)ライブラリの豊富さ Pythonの悪いところ 遅い, 遅い, 遅い... CPythonは遅い 遅いのは、サービス運用にとって採用されない要因になるかと。大規模運用に関して早いは重要。 (ただ、CPythonは高速化より、Pythonの可能性を広げる事に注力してい
スライド概要 2022.11.2 Women Developers Summit 2022 「プログラミング未経験のエンジニア女子が、アウトプット頑張ったら 設計わかるようになれちゃった話」 --- 「私、エンジニア向いてなかったかも……」 プログラミング未経験で新卒入社。新人研修でいきなりつまづき、業務配属後も当然、分からないことばかり。 実装だけじゃなく設計もできるようになりたいけど、コードが理解できないし、質問すらできない。 本セッションでは、そんな「よわよわ・崖っぷち」エンジニアだった当時入社二年目の私が、『デザインパターン』の学習とその成果のアウトプットを経て、後輩に設計を説明できるようになるまでに取り組んだこと、学んだことについてお話ししたいと思います。
Overview 画像/音声処理をリアルタイムで行う、Webブラウザから利用できるアプリをStreamlitで作る方法を解説します。 StreamlitのおかげでPythonだけでwebアプリが作れます。さらに、一番簡単な例なら10行程度のPythonコードで、webカメラを入力にしてブラウザから利用できるリアルタイム画像処理アプリケーションになります。 Webベースなのでクラウドにデプロイでき、ユーザに簡単に共有して使ってもらえ、UIもイマドキで綺麗です。 人物・物体検知、スタイル変換、画像フィルタ、文字起こし、ビデオチャット、その他様々な画像・音声処理の実装アイディアをデモ・プロトタイピングするのになかなかハマる技術スタックではないでしょうか。 Webブラウザから利用できる物体検知デモの例。実行中に閾値をスライダーで変えられる。オンラインデモ🎈 同様にスタイル変換デモの例。実行中にモ
開発部のにゃんです。主にバックエンドを弄っております。 Webアプリケーションではセキュリティ対策のためにランダムな文字列を使用する場面が多々あります。例えば CSRF対策のトークン OAuthやOpenID Connectで使用するnonce, state, code_verifier メールの到達確認用URLのトークン パスワードをhashする際に使用するsalt セッションID これらの値は単に衝突しなければOKというものではありません。十分なセキュリティ強度を確保するためには推測不可能なランダム値を使う必要があります。 以下は推測不可能なランダム値ではありません。セキュリティが求められる場面では使ってはいけません。 Math.randomなどの疑似乱数 日付やユーザ情報のハッシュ ではどのような値が適切なのでしょうか? /dev/randomと/dev/urandom Linuxに
背筋も凍るITホラー 気付いたら“野良SaaS”のコストが4倍に 「SaaSのお片付け」真っ最中のマネフォに現状を聞く(1/2 ページ) 「SaaS型デザインツールのコストが数カ月で4倍にまで膨らんでいた。支払額で言えば数百万円規模。退職者から『あのツール、まだアクセスできるんですけど……』と連絡がきたときはゾッとした」 IT部門が利用実態を把握しきれていない“野良SaaS”が引き起こした事態について、マネーフォワードの高野蓉功(ようこう)CIOはこう振り返る。同社では事業部門が使うSaaSを導入するとき、基本的にIT部門が関与しない形を取っていた。 しかしその結果、利用実態やコストが見えにくいまま使われるSaaSが生まれ、コストの増大や、元社員が退職した後も解約ができていないといった状態につながったという。
eXpresser @eXpresser_UXM え、今の中学生やべぇ。 クライアント・サーバのプログラムの要件定義から設計、コーディングまでガッツリやってるやんw pic.twitter.com/0tvNnar1yI 2021-06-24 16:29:25 eXpresser @eXpresser_UXM 個人的には、学生時代に塾講師をやって、業務系SE職に就職したので、技術科の教科書がここまで変わったのはすごく興味深いです。 副教科なので、ここまでやるかは先生次第でしょうし、用語を覚えさせて、テストするぐらいが関の山でしょうか。 でも、教科書としてここまで情報が載っているのは驚き! 2021-06-24 19:15:28
GoogleによるAI搭載エージェント型統合開発環境「Google Antigravity」を使用していた開発者が、AIによって許可なくDドライブ全体が削除されてしまったと報告しました。 Google Antigravity just deleted the contents of my whole drive. byu/Deep-Hyena492 ingoogle_antigravity Google's Agentic AI wipes user's entire HDD without permission in catastrophic failure — cache wipe turns into mass deletion event as agent apologizes: “I am absolutely devastated to hear this. I cannot
「Python」の登録商標、米Python Software Foundationが再出願。アーク社の登録商標に対しては不使用取消審判を請求 プログラミング言語「Python」の開発を支援する米Python Software Foundationが、国内における「Python」の登録商標を5月に出願したことが明らかになりました。 国内におけるPythonの登録商標は、2018年5月に株式会社アークによってすでに登録されています。しかし今回、Python Software Foundationはこれに対して不使用取消審判を請求しました。 これが成功し、Python Software Foundationの出願が無事に登録されれば、より安心してPythonの名称を使えるようになると見られます。 アーク社の登録商標に対して不使用取消審判を請求 現状と見通しについて、知財に詳しい株式会社テックバイ
プログラミングと論理的思考の関係、「プログラマに大切なのは日本語だ」の実際に意味するところの話です。 「プロになるJava」でページ数などの関係でボツにした原稿で、結構ちゃんと書いたのですが、この先に日の目を見る機会もなさそうなので公開します。 4/8補足:こういう章を入れようとした背景としては、論理的思考とかロジカルシンキングとかはすでにマーケティング用語になっていて、主に情報整理術を扱う本にこういう言葉が使われていることが多いので、そういうマーケティング用語として使われてる無定義なものではなく、論理学を勉強しようよという狙いでこういう話題を含めようとしたのでした。 プロになるJava―仕事で必要なプログラミングの知識がゼロから身につく最高の指南書 作者:きしだ なおき,山本 裕介,杉山 貴章技術評論社Amazon 論理演算子 排他的論理和はあとの話題にも出ますが「プロになるJava」で
先日より開催されていたKotlinConfで、新しいエラーハンドリング「Rich Errors」についての言及がありました。従来のように例外を使用するのではなく、エラーを値として扱えるようにする新機能です。聴き逃しているだけかもしれませんが、まだリリース予定などは立っておらず、機能を設計中の段階なのではないかと思われます。 私はもともとKotlinのエラーハンドリングはなかなか悩ましいなと思っていた節があり、ずいぶん前からKEEP上での議論を追うなどしてキャッチアップしていました。最近同僚ともエラーハンドリングに関する決め事をあれこれするために議論しており、私自身はエラーハンドリングに対する関心が高いです。 私の所感としては、Kotlinの言語設計によく合ったエラーハンドリングの方式が採用されそうで非常に楽しみにしています。最近の議論ではともすればモナドであるとか、Result<T, E>
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? GC の STW 問題 GC(ガベージコレクション)は、プログラムが確保したメモリを自動管理 する仕組みです。この方式は多くの言語で採用され、開発者は細かいメモリ管理を意識せずに済みます。ただ、その分メモリの制御は GC に委ねられます。C# では、一部の場面でメモリを手動管理する選択肢もありますが、基本は自動管理が中心です。 GC の動作時、プログラムは一時停止し、生存しているオブジェクトをスキャン します。不要なオブジェクトの解放や、メモリの断片化を抑えるためのコンパクション(圧縮) を実行することもあります。このようにプログラム全
1. はじめに 2. 基本知識 2-1. グラフとは 2-2. Amazon Neptuneとは 3. メソッド依存関係を可視化してみた 3-1. データの準備 クラス図を利用すればいいじゃないか 3-2. 必要なリソースのプロビジョニング 3-3. Neptune Bulk Loaderによるデータの登録 Neptune Bulk Loaderとは 手順 3-4. Graph Explorerで可視化 Graph Explorerの起動 Graph Viewで可視化 Graph Explorerその他の機能 3-5. リソースの削除 削除する方法 4. まとめ 可視化によってメソッドの依存関係を把握できたか 今後の展望 1. はじめに 皆さんこんにちは、入社2年目の松澤武志です! 普段はJavaやAngularを用いてアプリケーション開発を行い、趣味でAWSコンソールをいじっています!
Ruby on Rails Advent Calendar 2021の枠が空いていたので、あとから登録しました はじめに 個人的なプロジェクトになりますが、僕が翻訳しているRSpecの入門書「Everyday Rails - RSpecによるRailsテスト入門」を2022年前半にRails 7.0バージョンにアップデートしようと考えています。 そこでこの本の中で使っているサンプルアプリケーションをRails 7.0でゼロから作り直してみました。フロントエンド周りを中心に結構考え方が変わっている部分があったので、「ここでハマった!」とか「こういうポイントを押さえておくといいかも」という点をあれこれ書いてみます。 なお、Rails 7.0版のサンプルアプリケーションはまだ公開できる状態ではないので、公開はもうしばらくお待ちください🙏 今回作成したサンプルアプリケーションはこちらで公開してい
discourse.elm-lang.org つい先日、数か月ぶりにElmのupdate話がでてきた。 Elmは0.19からほとんどメジャーバージョンアップしていない。最後のリリースは約9か月前にもなる。 この事実だけを知ると「Elmはもう終わったのか」「Evan*1は開発のモチベーションを失ったのか」と思われることがある。実際そういう話はネットでチラホラ見かける。確かに、フロントエンド開発言語のAltJSとして近しいTypeScriptやFlutterと比較すると、あまりにも機能追加され無さすぎるようにも見える。究極的には「何と比較するか?」という話だとは思うが、たしかにフロントエンド界隈的な観点ではElmは亀の歩みなのは間違いない。 変化するのはいいことだ... なんとなく肌で感じる人も多い事実として、世の中には"最先端を目指して変化するのはいいことだ"という暗黙的な統一見解が存在して
プロダクトデザイナーのBrian Benchoff氏が15ドル(約1700円)で作成可能&DOOMの実行も可能なLinuxデバイスを設計しました。設計されたデバイスはバッテリー駆動でどこでもLinuxを使えるとのこと。そんなデバイスの構成や仕様をBenchoff氏が公開していたのでまとめてました。 A Minimum Viable Computer, or Linux for $15 https://bbenchoff.github.io/pages/LinuxDevice.html Benchoff氏が設計したマシンの見た目はこんな感じ。中央に小さなディスプレイが搭載され、両側に必要最低限のキーボードが配置されています。Benchoff氏よると、このデバイスは「いつでもLinuxのコマンドラインを実行可能」「USBポートで他のデバイスと接続可能」「バッテリー駆動」といった特徴を備えた「L
この記事はあくまで英語が読めないわたしがBoris氏の内容を日本語の一覧で知りたかっただけなので、必ず元記事を参考することを強く推奨します Claude Code 開発者 Boris氏のCalude使い方 2026/01/03 新年早々 ClaudeCodeの開発者である BorisCherny氏 がClaudeCodeの使い方に関するポストを行いました 元のXポストとそのツリー Xのツリーを全文読みましたが、わたしは、以下の理由から主に自分用にまとめました 英語の機微が分からない 画像内の英語の翻訳が辛い ブックマークだと忘れてしまう といった理由から翻訳しました また、翻訳に関してもClaudeを利用させてもらって、日本語としてどうもおかしい訳しすぎている部分を多少校正した程度で全てClaudeで染まった記事です また、Xポストを読んでいただきたいので、あえて画像の転載は避けて画像への
Git 2.9以降はcore.hooksPathというオプションでグローバルまたはローカルのGitフックのディレクトリを指定できるようになっています。 Gitのcore.hooksPathオプションを利用するとhusky、simple-git-hooksのような追加の依存がなくても、Gitの機能だけでGitフックのコードをバージョン管理して、プロジェクトのセットアップ時にプロジェクトごとのGitフックを設定できます。 📝 類似するGitフックを管理するツールとしてpre-commitやLefthookもあります。これらのツールはGitフックの管理だけではなく、ファイルの種類ごとに実行するコマンドをわけて書けるようになっています。 つまり、lint-stagedのような機能も含むので、この記事で紹介するアプローチ以上の機能も同梱されています。 Node.jsプロジェクトの例 ここでは具体例
Published Sep 11, 2025 Agents are only as effective as the tools we give them. We share how to write high-quality tools and evaluations, and how you can boost performance by using Claude to optimize its tools for itself. The Model Context Protocol (MCP) can empower LLM agents with potentially hundreds of tools to solve real-world tasks. But how do we make those tools maximally effective? In this p
以前、「非情報系が機械学習を使う研究をしたいとき」という記事を書きましたが、内容の半分はサイボウズ・ラボユースの宣伝だったんで、今回はタイトル詐欺じゃあないことも書きます。 いままで機械学習や深層学習に縁のなかった人が、それを使った研究を始めたいとなったとき、共通して直面する大きな課題は「何を優先的に勉強したらいいか」と「実験用の環境(PC)をどのように整えたらいいか」でしょう。 今回は何から勉強する? という話。 機械学習そのもの(特に自分が使おうとしているモデル)を学ぶのは必須に決まっているので、機械学習を使う上で必要となる前提知識を学ぶ優先順位について考えてみます。 機械学習(深層学習を含む)を使う上でキーになる前提知識は、数学(特に解析・線形代数・統計)とプログラミングを含む情報科学であることは意見の一致するところだと思います。 情報系の人なら、情報科学はさすがにやってます。プログ
MCPサーバーの公式オープンカタログ「MCPレジストリ」がプレビュー公開 ―信頼できるMCPサーバーの発見と独自のサブレジストリ展開が容易に 2025年9月8日、MCPコミュニティは、MCP(Model Context Protocol)クライアントに信頼できるMCPサーバーの一覧を提供する公式リスト「MCPレジストリ」をプレビュー版として公開した。レジストリに構築したMCPサーバーを登録することも可能。MCPサーバーの配布と検出を標準化するため、MCPの大元を開発したAnthropicのメンバーをはじめとするMCPコミュニティの企業メンバー等からな成る開発チームによりプロジェクトが進められた。 Introducing the MCP Registry | mcp blog https://t.co/iZ1bVWNIDV — Model Context Protocol (MCP) (@M
高校を卒業した後、コールセンターでの派遣業務や非正規の事務職といった経歴から、33歳でまったく異なるソフトウェア開発の世界に飛び込んだ塩井美咲(@coe401_)さん。短期間でプログラミングのスキルを学び職業プログラマーへの転身を果たしただけではなく、プログラミング言語Ruby自体の開発をテーマとする国際カンファレンスRubyKaigiでも4年続けて発表するほどになっています。 キャリアチェンジの経緯やプログラマーとしての歩みについて塩井さんに伺うと、むしろ技術コミュニティとの出会いと積極的な参加があったからこそ、エンジニアとして多くの成長があったことが分かります。その熱意のベースには、何のためにソフトウェア開発者を志すかという思いがありました。 ▲ 松本市で開催されたRubyKaigi 2023に登壇する塩井美咲さん ソケットライブラリの改善にRubyの開発助成で取り組む 世の中をよくす
やっとこ Go でおちんぎんをえる仕事につけそうです。Vim で Go を書く時のなんかいい感じの設定を教えてください。定義ジャンプとかは ctags でやってきました。 スーパーレターありがとうございます。 Go 言語でお仕事、良いですね。 Vim で Go を書く時におおよそ必要なのは以下です。 必須プラグインvim-lsp と vim-lsp-settings と goplsGo の Language Server です。Vim から Language Server を利用する方法に合わせて gopls を導入する必要があります。 Vim から Language Server を利用する方法は幾らかあるのですが、僕は prabirshrestha/vim-lsp を使っています。prabirshrestha/vim-lsp は mattn/vim-lsp-settings と組み合わ
本連載では、コーディングエージェントを用いた開発手法について取り扱います。今回のテーマは「仕様駆動開発」(Spec-driven Development)です。同じくAIエージェントを用いた開発手法である「Vibe Coding」や「Planモード」との違い、さらに具体的な利点や懸念について解説します。 はじめに 2025年、AIエージェントにコードを書かせる開発スタイルが急速に広まりました。しかし、曖昧な指示から雰囲気でコードを生成する「Vibe Coding」には限界があり、意図と生成物の間にギャップが積み重なる問題が顕在化しました。この反省から、要件を整理しタスクに分解してからAIに渡すアプローチが定着し、2026年現在ではこちらが主流の開発手法となっています。「仕様駆動開発」(Spec-driven Development)はその代表例です。 仕様駆動開発という用語は広く受け入れら
PythonでWebアプリケーションをよく作るマンです. 来週(7/19)に発売となる, 「実践Django Pythonによる本格Webアプリケーション開発」の書籍レビューに参加させていただきかつ, 執筆者の@c_bata_さん, 出版元の翔泳社様のご厚意により一冊いただきました. ひと足先に読ませていただきました(感謝) 実践Django Pythonによる本格Webアプリケーション開発 (Programmer’s SELECTION) 作者:芝田 将翔泳社Amazon 芝田さん, 翔泳社の皆様ありがとうございました🙇♂️ 原稿の査読・レビューで読ませてもらったり(コメントさせてもらったり), こうして届いた初版を改めて読んで, Djangoをやる方はもちろん, Djangoを抜きにしてもWebアプリケーション開発をされる方にめちゃくちゃオススメしたい! と思いました, レビューさ
手羽先|国産LLMを作る人 @Tebasaki_lab 原因わかったので対処完了。お騒がせしました。ワイのヒューマンエラーでした…。(趣味コードだったので仕事では絶対しないミスをしてた) ただの個人プロジェクト(実験コード)だったので誰にも迷惑はかけてません!よかったね〜〜 x.com/Tebasaki_lab/s… 2025-09-02 10:30:31 あくまでGemini API(開発者向け)の話です。 個人向け(Chatはこちら) Gemini (無料版):現在のところ無料で利用できます。 Gemini Advanced:月額2,900円(税込)で利用でき、Gemini Proよりも高度なモデル(Gemini Ultra)を利用できます。初回1か月の無料トライアルも提供されています。 開発者向け (API) Gemini API:モデルごとの利用量に応じて課金される従量課金制です。
最近、よく目にするデータフォーマットに「JSONC」があります。これはJavaScriptでお馴染みのJSON形式にコメントを記述できるよう拡張したものです。Visual Studio Codeでも採用されており、設定ファイルとして利用されることが増えています。そこで、JSONCの記法やJavaScriptから使う方法を確認してみましょう。 JSONCは可読性の高いデータフォーマット JSONCとは 「JSONC(JSON with comments)」とはJSONにJavaScriptスタイルのコメントを記述できるようにしたデータフォーマットです。そのため、基本的にデータフォーマットのJSONなのですが、そこにJavaScript風のコメントである「// コメント」と「/* コメント */」を記述できるようにしたものです。 冒頭で紹介したように、プログラミング用のエディタ「Visual
テックカンパニーをテックカンパニーたらしめているものはなにか?技術か、人か、それともチームなのか。 連載「Technology Company Internals」では、テックカンパニーの内側で働くエンジニアに、技術に精通したエキスパートが対面で話を聞き、テックカンパニーとは何か?を探るだけでなく、テックカンパニーを目指す企業の指針となることを目指します。 今回は、ベースフード株式会社さんに、世界最大級の「完全栄養食(*)のサブスク」を支えるシステム開発の裏話を詳しく伺ってきました! (*)1食で、栄養素等表示基準値に基づき、他の食事で過剰摂取が懸念される、脂質・飽和脂肪酸・炭水化物・ナトリウムを除いて、すべての栄養素で1日分の基準値の1/3以上を含む。 世界最大級の「完全栄養食サブスク」とは ―では、まず自己紹介をお願いします。 煙草森:はい、煙草森(たばこもり)直也と申します。新卒でD
個人のプログラミング体制の現在地https://hiragram.app/posts/3a1zdIWU技術趣味AI 2025-07-19 半年後には全部入れ替わってるかもしれないので現在地の記録として書いておく。 最近の道具LLMエージェント: Claude Code最近Claude Maxの$200/moのプランにアップグレードした。iOSアプリの新規開発というユースケースで自分が使っている範囲では、Opus 4とSonnet 4の差はあんまり感じていない。が、ケチケチしてもしょうがないかなと思ってOpus固定で使っている。 Claude Codeの話をXでポツポツ書いていたらmizchiさんに誘ってもらってClaude Code Deep Diveというイベントに登壇した。 CI: Claude Code Actions + GitHub Actions + M4 Pro Mac mi
このブログについて 40%キーボードのHold&Tap判定に機械学習モデルを導入してみたという話です。 Tap & Holdとは? Tap&Holdというのは、1つのキーに2つのキーの役割を割り当てる機能です。 40%キーボードのようにキー数の少ないキーボードのスペース効率を高めることができる画期的な機能です。 具体的には、ちょい押しなら普通のキー、長押しなら修飾キー(またはレイヤ切り替え)といったように、ボタンを押す長さで二つのキーを判別する仕組みになっています。 このルールが基本ですが、人間は機械のように正確な動きはできないので、ホールドのつもりで押したのにタップと判定される、あるいは逆のタイプミス(誤爆)が頻発するので、他にもルールベースの対応がいくつか考案されてきた経緯があります。 ルールベースの例としては、例えばHold on other key pressという機能があります。
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く