タグ

programmingに関するauientのブックマーク (396)

  • グレース・ホッパーならどう言うだろう ─ COBOLの歴史から見る、民主化された後に残る仕事 - Nothing ventured, nothing gained.

    COBOLの母と呼ばれるグレース・ホッパーが、いま生きていたら、何と言うだろう。 生成AIに曖昧な指示を投げれば、それらしく動くコードが返ってくる。いわゆるバイブコーディング、あるいはエージェンティックコーディングの様子を眺めていると、ふと、そんなことを考えてしまう。というのも、これがまさに、彼女が60年以上前に望んでいたことなのではないか、と思うからだ。 COBOLという最初の民主化 なぜそう思うのか。それを説明するには、時計を1950年代まで巻き戻す必要がある。 当時のコンピューターは、部屋を丸ごと占有するほど巨大で、しかも非常に高価だった。持てるのは軍や政府、ごく一部の大企業だけ。軍は弾道計算に、政府は国勢調査の集計に、そして企業も給与計算や在庫管理にと、この巨大な機械を使い始めていた。ただし、どの会社でも、というわけではない。プログラムを書けるのは、数学と電気工学を修めた一握りの専

    グレース・ホッパーならどう言うだろう ─ COBOLの歴史から見る、民主化された後に残る仕事 - Nothing ventured, nothing gained.
  • ZigがAIを禁止する理由。GitHub離脱、確固たる運営方針。|直也テック

    今回はJetBrainsが公開した、Zig言語の作者アンドリュー・ケリー(Andrew Kelley)氏へのロングインタビューを取り上げます。 アンドリュー氏は2018年に勤めていた会社を辞め、プログラミング言語Zigの開発に専念してきた人物です。8年が経った今、ZigはGhosttyやTigerBeetle、さらにはUberのクロスコンパイルなどを支える存在になりました。一方で「PRやIssueへの厳格なAI禁止ポリシー」「年間67万ドルの非営利財団」「GitHubからの離脱」「10年経っても1.0が出ない理由」など、賛否を呼ぶ決断でも知られています。 この記事では、動画で語られた内容を流れに沿って整理しお届けします。AIに関心のあるエンジニアやビジネスパーソンにとって、ひとつの「対極の哲学」として読んでいただける内容です。 そもそもなぜZigを作ったのかインタビューはストレートな問いか

    ZigがAIを禁止する理由。GitHub離脱、確固たる運営方針。|直也テック
    auient
    auient 2026/06/06
    「「良いAIのPRだけ通す」とすると自分が判定者にならねばならず、「一切なし」のほうがルールとして守りやすい」
  • プログラマーのための圏論

    序文 しばらく前から、プログラマーを対象とした圏論に関するを書こうと考えていた。計算機科学者ではなくプログラマー、科学者ではなくエンジニア向けだということに注目してほしい。正気の沙汰ではないし、当に怖気づいてしまう。科学と工学の間に大きなギャップがあるのは否定できないと思う。自分自身がその分断の両側で仕事をしてきたからだ。それでも、物事を説明したいという強い衝動をいつも感じていた。簡潔な説明の達人だったリチャード・ファインマン1を心から尊敬している。自分がファインマンではないことは分かっているが、最善を尽くしたい。まずは、この序文――読者に圏論を学ぶ気を起こさせることを想定したもの――を公開することから始めようと思う。それによって議論を開始しフィードバックを募れることを願っている2。 ここからの数段落をかけて、このがあなたのために書かれたものであり、数学のうちでも特に抽象的な分野を学

  • フロントエンド開発に役立つクライアントプログラム共通のノウハウ / Universal client-side programming best practices for frontend development

    フロントエンドカンファレンス東京2025における発表資料です。 GUIクライアント開発のノウハウのうち、フロントエンド開発にも活かせるものについてお話しています # URL YouTube: https://www.youtube.com/c/narusemi HomePage: https…

    フロントエンド開発に役立つクライアントプログラム共通のノウハウ / Universal client-side programming best practices for frontend development
  • 2つの難しい問題 - Martin Fowler's Bliki (ja)

    コンピュータサイエンスで難しいことは2つだけ。キャッシュの無効化と名前付けだ。 – Phil Karlton 満足のいくURLを見つけることはできなかったが、これは私の長年のお気に入りの格言である。 優れた多くの言い回しの様に、この言い回しにも数多くの繰り返されてきた表現がある。このページに追加する価値があると思われるものをいくつか紹介する。 コンピュータサイエンスには2つの難しい問題がある。すなわちキャッシュの無効化、名前付け、Off-by-oneエラーだ。 – Leon Bambrick (@secretGeek) There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors. — Leon Bambrick (@secretGeek) Janu

    auient
    auient 2025/08/27
    「コンピュータサイエンスで難しいことは2つだけ。キャッシュの無効化と名前付けだ。 – Phil Karlton」とそのバリエーション
  • Claude Code の学習モードで自分の手でコードを書く練習をしよう

    コーディングに AI エージェントを活用する流れはもはや避けられないものとなっています。しかし、AI エージェントによってコーディングの多くが自動化されると、開発者が自分の手でコードを書く機会は減少してしまうというジレンマがあります。Claude Code の学習モードを使用すると、自分の手でコードを書く練習ができます。学習モードでは、AI エージェントはユーザー自身にも一部のコードの生成を依頼します。この記事では、Claude Code の学習モードの使い方について解説します。 コーディングに AI エージェントを活用する流れはもはや避けられないものとなっています。AI エージェントは人間よりも早い速度で大量のコードを生成でき、開発者の生産性を大幅に向上させる可能性を秘めています。その一方で AI が生成したコードを正しく理解し、コードベースのアーキテクチャに一貫したスタイルで書かれてい

    Claude Code の学習モードで自分の手でコードを書く練習をしよう
  • 並列対決 Elixir × C# × Go オマケでScala nodejs

    大量データを非同期ストリームで並列集計処理して速度対決。それぞれの処理系の特徴を掴んで行きます。

    並列対決 Elixir × C# × Go オマケでScala nodejs
  • AI時代に必要なのはプログラミング能力ではなくコンピューティング能力 - きしだのHatena

    「プログラミング教育について語る会 」で話した内容をまとめておきます。 「AI時代のプログラミング教育」としたのだけど、内容的には「コンピューティング能力を伸ばそうぜ、その道具としてプログラミングしよう」みたいな話になりました。 https://nextbeat.connpass.com/event/346052/ 資料はこちら まず前提として、AIのコーディング能力が7ヵ月で倍になっているというのがあります。なので、今現在の能力で話をしてもあまり意味がなく、ゆくゆくはかなりのレベルでAIがコードを書くという想定をしておいたほうがいいです。 元ネタのツイートはこれ https://x.com/METR_Evals/status/1902384481111322929 論文はここ [2503.14499] Measuring AI Ability to Complete Long Tasks

    AI時代に必要なのはプログラミング能力ではなくコンピューティング能力 - きしだのHatena
  • Dry-runを実現する定番テク知りたい - Lambdaカクテル

    ソフトウェア開発の現場では、スクリプトを発射してシステムになんらかの変更を加える、ということがよくある。DBに変更を加えたり、なんかを削除したりといった具合。専用の管理画面をわざわざ実装するまでもない、というときに使われがち。 Dry-run スクリプトによっては破壊的なことをする(i.e. 元に戻すのが不可能/たいへん)ので、勢い良くいきなり発射するのではなく、どういう感じの実行結果になるのかを試走させてから実際に動かしたい。 どうするかというと、破壊的な箇所では、一定の条件でスキップしたりやったフリをするような処理に置換したりする。 一般にこういうテクニックはDry-runと呼ばれているはず。元々の意味は予行演習という意味らしい。 Dry-runどうやって実現する Dry-runはあくまで技法であり、ネイティブにこれをサポートする機構はないので、実現する方法はいろいろある。よくあるのは

    Dry-runを実現する定番テク知りたい - Lambdaカクテル
  • ClineとAIコーディングツールの現状 - laiso

    はじめに 近年、AIを活用したコーディングツールが急速に発展し、プログラマーの生産性向上や開発プロセスの効率化に大きな影響を与えつつあります。これらのツールは、コード補完、チャットアシスタント、コーディングエージェントなど、様々な形態で提供されており、プログラマーの作業をサポートしています。 その中でも、オープンソースのコーディングエージェントである「Cline」は、独特のポジションと活発なコミュニティによって注目を集めています。 記事では、Clineを中心に、現在のAIコーディングツールの動向を探ります。Clineの特徴や利点、そして他のツールとの比較を通じて、AIコーディングツールの現状について考察します。また、Clineのアーキテクチャや実用面、コミュニティの動向についても解説します。 AIコーディングツールは、特に個人のプログラミングの世界に大きな変革をもたらしつつあります。

    ClineとAIコーディングツールの現状 - laiso
    auient
    auient 2025/02/02
    「ファイル読み書きやコード実行などのアクションごとに自動許可範囲を設定できますが、早晩誰か事故るでしょう」
  • 午前中に読み始めたら午後には設計が上達してしまった! - 『Tidy First?』を読んだ - Mitsuyuki.Shiiba

    私の目標は、読者が午前中に書を読み始めたら、午後には設計が上達していることだ。 当にそのとおりだった。読んでる途中で既に自分の設計に対する考えが良い方向に変わってると感じた。とても良かった。おすすめです。 『Tidy First?』 をいただいて読んだ。昨日(2024年12月25日)発売。英語版が2023年11月28日発売だから、たった1年で日語版が出たということだな。うれしい!はやい!ありがたい! ソフトウェア設計に焦点を当てたシリーズの最初の1冊ということで、サブタイトルに「個人で実践する経験主義的ソフトウェア設計」とあるように、1人でできる種類のソフトウェア設計について書かれている。続刊ではチームについての話になる予定のようで、それも今から楽しみ。 2周読んだ なんとなく2周読もうと思ってそうした。 1周目は細かい部分は気にせずにざーっと1,2時間くらいで読んだ。全体的にどうい

    午前中に読み始めたら午後には設計が上達してしまった! - 『Tidy First?』を読んだ - Mitsuyuki.Shiiba
  • Google製GNU gold以上の速さを実現 超高速リンカ「mold」を支えるテクニック | ログミーBusiness

    Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。rui314氏は、制作中のリンカである「mold」について発表しました。全2回。後半は「mold」速さと、その高速化を実現するテクニックについて話しました。前半はこちら。 リンカが速いと何がうれしいのか植山類氏(以下、植山):リンカが速くなって何がうれしいのか。普通にうれしいです。プログラムを書いているとうれしいことがわかると思いますが、makeを実行すると、普通は自分が直前に変更したファイルしかビルドしないので、デバッグをしていると1つのファイルを編集してビルドすることになります。 コンパイラは1つだけのファイルをコンパイルするのはそこそこ速いですが、リンカは基的には実行ファイルを丸ごと作ります。全体の入力を一気に受け取って出力するため、差分コンパイルであってもリ

    Google製GNU gold以上の速さを実現 超高速リンカ「mold」を支えるテクニック | ログミーBusiness
  • 9時間足すんだっけ引くんだっけ問題~あるいは、諸プログラミング言語はいかにタイムゾーンと向き合っているか - エムスリーテックブログ

    私は日付時刻の処理が大好きです。 タイムゾーンの問題でデータ抽出が9時間分漏れていたとか、朝9時の始業前のログが昨日付けになってしまっていたなんていう問題が起こると喜んじゃうタイプ。 そんな私にとって、各プログラミング言語が標準で持っている日付時刻型クラスにはそれぞれ思うところがあり、今日はちょっとその品評会をしてみたいと思います。 エムスリーエンジニアリンググループ、Unit1(製薬企業向けプラットフォームチーム)三浦(@yuba@reax.work) [記事一覧 ]がお送りいたします、エムスリー Advent Calendar 2023の2日目です。 至高の日付時刻型を持つ言語、BigQuery SQL 不足はないが蛇足、Java 8 日付時刻で画竜点睛を欠いたC# C#よりややまし、Python 型は良い構成、なのに命名と処理関数で損しているPostgreSQL まとめ We ar

    9時間足すんだっけ引くんだっけ問題~あるいは、諸プログラミング言語はいかにタイムゾーンと向き合っているか - エムスリーテックブログ
    auient
    auient 2023/12/02
    同じ型なのに絶対時刻だったり不定時刻だったりするdatetime型は扱いにくい、なるほど
  • データ指向プログラミングの真実をお話しします

    Project Amberの文脈 サイズの小さいアプリケーションも扱うようになった。 システム全部をJavaで作る訳じゃなくなった オブジェクトではなく、データをやり取りするようになった。 そこでプレーンデータをモデル化し、処理するより良い方法が必要 代数データ型 (Record, switch式, sealed)

    データ指向プログラミングの真実をお話しします
  • 状態、結合、複雑性、コード量の順に最適化する - valid,invalid

    There’s No Such Thing as Clean CodeのHacker Newsコメント経由でコードやシステム設計・最適化についての良いコメントを見つけた。どうやらHacker Newsで何度も引用されているらしいが日語で言及された記事が見つからなかったので取り上げてみる。 コメントは2016年のSandi MetzのThe Wrong Abstractionに関するもので、発言者のcurun1rいわく「私は設計の優先順位をこの順序で学習することで、優れた開発者になれた」。*1 4つの基準と優先順位のガイドライン 状態 > 結合 > 複雑性 > コード量 私は状態 (state)、結合 (coupling)、複雑性 (complexity)、コード量 (code) の順に削減することでコードを最適化する。 コードがよりステートレスになるなら、結合を増やすこともいとわない 結

    状態、結合、複雑性、コード量の順に最適化する - valid,invalid
    auient
    auient 2023/10/29
    「状態 > 結合 > 複雑性 > コード量」状態を減らすためには結合を増やすのも厭わない、という判断になる
  • 筋肉ですべてを解決する人のプログラミング上達方法|牛尾 剛

    私は米国の超大手クラウドベンダーの中の人をやっており、普段はアメリカに住んで気づいたことをブログに記録しているのだが、今回は趣を変えて、日で出会った凄い人からの学びを書いてみようと思う。 プリンシパルを目指して前回の下記のブログで、マネージャにならずに、プリンシパルというレベルを目指し始めたので、少しづつ自分のふるまいを変えることにしているが、これはそれの一環だ。 人生最後の大きなチャレンジの戦略を考える|牛尾 剛 (note.com) 筋肉の豊富なケンさん 私が日に居たときの同僚で、ケンさんという人がいる。筋トレ仲間として、筋肉がものすごいので、凄いなと思っていたのだが、彼は筋肉だけではなくプログラミング力もえげつなかったことを覚えている。 あるハッカソンで普通の人なら1つか2つの機能を試すところを、彼は10個ぐらい、それもものすごく高度に組み合わせてすごく短い時間に凄いアプリを作っ

    筋肉ですべてを解決する人のプログラミング上達方法|牛尾 剛
    auient
    auient 2023/10/03
    公式ドキュメントを全部読む→ビデオを10個ぐらい見る→コミュニティのカンファレンスでそのトピックに関して発表する→最後に資格を取る / 本質的じゃないヤクの毛刈りにあったらgptに聞いて忘れる
  • Language Server Protocol の仕様 及び実装方法

    Language Server Protocol通称LSPの仕様と、各機能をどうやって実装したら良いかの指針を示します。 対象読者 * 言語処理系を実装する人/したい人 * Language Serverを実装する/したい人 * LSPに興味がある人、日語のまとまった情報源を探している人 * Language Serverがエディタの裏でどのようなことをしているのか気になる人 書で解説される機能は以下の通りです。 * Diagnostics (検査) * Completion (補完) * Inlay hint * Hover * Goto definition (定義へ移動) * Goto type definition (型定義へ移動) * Find references (参照を表示/移動) * Rename (名前変更) * Code actions * Code lens *

    Language Server Protocol の仕様 及び実装方法
  • Scalaの難しさをインターネットから集めてみる - Lambdaカクテル

    Scalaは難しいと思われたり敬遠されがちである。Scalaの難しさについてTwitterなどでアンケートをとったり、ネットでググって意見を吸い上げてみた。議論の叩き台にするみたいな用途を意図しています。 ご意見や記事募集中です。できればTwitterじゃなくて記事だと嬉しいです。流れていってしまうので・・・ また、私見は私見です。 追記(2024-03-08)ちなみに、色々書いていますが僕はScalaが大好きです(このブログでものすごい数の初心者~中級者向けの記事を書いています)し、ネットで言われているような終わった言語ではまったくないです。初心者をサポートして、難しいと感じている部分をほぐして、みんながScalaでワイワイやれるようにコミュニティを立ち上げ、継続的に活動しています。おかげさまで日の公式Scalaコミュニティとして認めてもらっています。ブログのバナー下のリンクからDis

    Scalaの難しさをインターネットから集めてみる - Lambdaカクテル
  • Rubyの並列並行処理のこれまでとこれから - クックパッド開発者ブログ

    技術部の笹田です。今日で退職するので、バタバタと返却などの準備をしています。 記事では、Rubyの並行並列処理の改善についての私の取り組みについて、おもに RubyKaigi 20222023 で発表した内容をもとにご紹介します。 並行と並列はよく似た言葉ですが、記事では次のような意味で使います。 並行処理(concurrent processing)は、「複数の独立した実行単位が、待っていればいつか終わる(もしくは、処理が進む)」という論理的な概念で、古典的にはタイムシェアリングシステムなどが挙げられます。 並列処理(parallel processing)は、「複数の独立した実行単位のうちのいくつかが、あるタイミングで同時に動いている」という物理的な概念で、古典的には複数のCPU上で同時に実行させる、というものです。最近では、1つのCPU上で複数コアが同時に動いている、という

    Rubyの並列並行処理のこれまでとこれから - クックパッド開発者ブログ
  • 半開区間の魅力 〜プログラミングでのスマートな区間の扱い方〜 - Qiita

    半開区間とは? 半開区間の前に、開区間と閉区間についておさらいしておきます。 開区間は(left,right)のように表され、両端点を含まないleftからrightまでの区間を表します。 一方で閉区間は[left,right]のように表され、両端点を含むleftからrightまでの区間を表します。 例えば開区間(1,5)は1と5を含まない1から5までの区間を指すので、2,3,4がこの区間の表す集合となります。 逆に閉区間[1,5]は1と5を含む1から5までの区間を指すので、1,2,3,4,5がこの区間の表す集合となります。 そして、今回紹介したい半開区間はこの2つを組み合わせたような区間です。 半開区間は一般的に[left, right)のような形で表され、leftからrightまでの区間を表しますが、端点はleftを含みrightは含みません。 さっきの例でいくと、[1,5)は1を含み5

    半開区間の魅力 〜プログラミングでのスマートな区間の扱い方〜 - Qiita