darjeeling 2025-05-27 | 親コメント | トピック: Cory DoctorowによるPyCon US 2025基調講演 (youtube.com) 発表前に、Google と Facebook のスポンサー紹介がありました dhlee0305 2025-05-27 | 親コメント | トピック: 車輪を再発明せよ - Reinvent the Wheel (endler.dev) 「牛を失ってから牛小屋を直す」ということわざが、未来への備えをするなという意味ではないのと同じように、 「車輪を再発明するな」も、洞察を得るために時間を投資するなという意味ではないと思います。 こうした言葉がどのような状況で出てきたのか、その前後を切り取ってしまうと本来の意味は歪められます。 det7eng 2025-05-27 | 親コメント | トピック: なぜ米国は常に貿易赤字を計上するのか? (libertystreeteconomics.newyorkfed.org) アメリカの最大の特産品はドルだと思います yolatengo 2025-05-27 | 親コメント | トピック: Cursorの使い方(+ 最高のヒント)[翻訳記事] (siosio3103.medium.com) 同じ問題を解決するために何度も繰り返しているとコンテキストウィンドウのサイズを超えてしまい、そういうときにAIが壊れるような経験を何度もしたのですが、このような場合は他の方はどうしているのか気になります。 私は何度も試して、どうにも間抜けな振る舞いをし始めたらモデルを変えて、プロンプトウィンドウを新しく開きます。 hided62 2025-05-26 | 親コメント | トピック: 車輪を再発明せよ - Reinvent the Wheel (endler.dev) つい最近の体験ですが、私は最近、自分だけのとても特別な車輪をひとつ作りました。 Nuxtで1000ページ規模のアプリをビルドするのに7分かかっていたのですが、 いくつかの自動化をあきらめて作り直した結果、20秒ビルドに成功したんです。 xguru 2025-05-26 | 親コメント | トピック: オープンソース・ソサエティ・ユニバーシティ — コンピュータサイエンス独学のための無料ロードマップ (github.com/ossu) OSSU オープンソース・ソサエティ・ユニバーシティ - Computer Science 独学する GeekNewsの初期に紹介されていましたね。その間にかなり多くの内容が追加されました。 ohnul 2025-05-26 | 親コメント | トピック: Copilotの妄想 - The Copilot Delusion (deplet.ing) ご回答ありがとうございます! superscv 2025-05-26 | 親コメント | トピック: Copilotの妄想 - The Copilot Delusion (deplet.ing) 添付していただいた2つ目の quickSortInPlace()、これも遅い実装ですね。 以下のコードを実行してみてください。 function quickSortInPlace(arr, left = 0, right = arr.length - 1) { if (left >= right) return; const pivotIndex = partition(arr, left, right); quickSortInPlace(arr, left, pivotIndex - 1); quickSortInPlace(arr, pivotIndex + 1, right); } function partition(arr, left, right) { const pivot = arr[right]; let i = left; for (let j = left; j < right; j++) { if (arr[j] < pivot) { [arr[i], arr[j]] = [arr[j], arr[i]]; i++; } } [arr[i], arr[right]] = [arr[right], arr[i]]; return i; } function quickSort(arr) { if (arr.length <= 1) return arr; const pivot = arr[arr.length - 1]; const left = []; const right = []; for (let i = 0; i < arr.length - 1; i++) { if (arr[i] < pivot) { left.push(arr[i]); } else { right.push(arr[i]); } } return [...quickSort(left), pivot, ...quickSort(right)]; } const repeat = 100; const arrLength = 10000; const unsortedArray = new Array<number>(); for(let i = 0; i < arrLength; i++) unsortedArray.push(Math.round(Math.random() * arrLength)); let sorted: Array<number>; const qb = performance.now(); for(let i = 0; i < repeat; i++) sorted = quickSort(unsortedArray); const qe = performance.now(); const rqb = performance.now(); for(let i = 0; i < repeat; i++) { let copied = [...unsortedArray]; quickSortInPlace(copied); } const rqe = performance.now(); console.log(q: ${qe - qb} ::: rq: ${rqe - rqb}); nicewook 2025-05-26 | 親コメント | トピック: AI時代の新しい開発者パターン (a16z.com) 深い洞察を感じる文章です。さすが a16z です。 superscv 2025-05-26 | 親コメント | トピック: Copilotの妄想 - The Copilot Delusion (deplet.ing) 普段はあまりコメントしないのですが、この文章にだけコメントを残した理由は、著者の考えにかなり共感しているからです。重要なのはAIやLLMそのものではなく、どんな環境が来ても開発者としての「自分」が備えていなければならない、ということだと思います。 LLMは学習されたソースの特性上、世界中に広がるオンラインデータの平均値に近いデータを主に提供します。(前述のjsクイックソートがその証拠です。)だから私はたいてい、思想やデザインの面で一般的な観点とどの程度一致しているか、ずれているか、あるいはこれまでどこに聞けばいいのか微妙だった内容を質問するために多く使っています。 superscv 2025-05-26 | 親コメント | トピック: Copilotの妄想 - The Copilot Delusion (deplet.ing) さらにこれ以上議論を続けることに、どんな意味があるのかよく分かりません。 そもそも、AIが生成したコードにはある程度のリスク要因があり得るので、十分に精査したうえで適切に活用するのがよい、という意見なのであれば、著者の文章のどの考え方が偏っているのかを説明してもらえればよいのではないでしょうか。要約にも「文脈のない scaffold/草案コードを素早く提供することはできるが、完全な設計とチューニングは人間の開発者の役割である」とあり、似た意味の内容が含まれていますから。 superscv 2025-05-26 | 親コメント | トピック: Copilotの妄想 - The Copilot Delusion (deplet.ing) 基本的に、コレクションの生成・運用・マージに伴う負担への理解がまったく感じられないコードだと言えます。C++ の場合、すでに約10年前に Move Constructor に関する提案・実装も登場しており、メモリコピーに関するコストには常に鋭敏であることが基本中の基本です。quick sort はその仕組み上、すべての値の index を確定できるアルゴリズムであり、各フィールドはランダムアクセスできるようにしておくのが望ましいです。 マニアックな最適化なしでも、上記の内容だけを適用すれば、リンク先で示されている方式とは2倍以上の性能差が出ます。 superscv 2025-05-26 | 親コメント | トピック: Copilotの妄想 - The Copilot Delusion (deplet.ing) return [...quickSort(left), ...equal, ...quickSort(right)]; この部分のコードをよく見て、考えてみてください。 ifmkl 2025-05-26 | 親コメント | トピック: Copilotの妄想 - The Copilot Delusion (deplet.ing) LLMやAIは、時間が経つにつれて進化していますよね。ほんの数か月前までは、指示したとおりのコードの一貫性などはほとんど期待できませんでしたが、今ではそのスペース内でAIに初期構成を依頼したコードをファイルとしてアップロードし、新しいコードを書く際には常に既存のコードスタイルを守って書くよう指示して使えば、かなり一貫性のあるコードを書いてくれるようになりました。 eck796 2025-05-26 | 親コメント | トピック: Cursorの使い方(+ 最高のヒント)[翻訳記事] (siosio3103.medium.com) yolo mode は auto run mode に変わったそうです。 blizard4479 2025-05-26 | 親コメント | トピック: あなたの仲間を見つけよう (foundersatwork.posthaven.com) いろいろ試しながら方向性を探っていたのですが、行動よりも人を中心にしたアプローチというのは興味深いですね。ロールモデルのようなものでしょうか? 面白く読ませていただきました。ありがとうございます。 ohnul 2025-05-26 | 親コメント | トピック: Copilotの妄想 - The Copilot Delusion (deplet.ing) リンクがうまく動作していないようなので、もう一度やってみます。 https://chatgpt.com/canvas/shared/68341217ae788191b66a523c948b1a8e ohnul 2025-05-26 | 親コメント | トピック: Copilotの妄想 - The Copilot Delusion (deplet.ing) こんにちは。興味本位で「Webフロントに入れるのですが、js でクイックソートのアルゴリズムを少し実装してくれ」と言ってみたのですが、私には何が問題なのかよく分かりにくくて。教えていただけるととても助かります。あらかじめありがとうございます。 https://chatgpt.com/share/68340f9b-b684-8002-8dd5-495d477065cd minhoryang 2025-05-26 | 親コメント | トピック: gail - AIベースのGitHub Issue自動ラベリングツール (github.com/atgreen) Common Lispのプロジェクトですね。だから ocicl+make の組み合わせが使えるわけですね。これをVibe AIに投げて、ただ typescript+deno で作ってくれと頼むほうが、メンテナンスはしやすそうです。 crawler 2025-05-26 | 親コメント | トピック: Copilotの妄想 - The Copilot Delusion (deplet.ing) 著者の分野に言及した理由や、自分のドメインというものがどういう意味なのかを、あまり理解されていないようですね。 自分で考えずにあらゆる判断をAIに委ねるのも愚かに見えますが、 その反対側にいる人たちのことも、私にはよく分かりません。 最後にお聞きしたいのですが、superscvさんはコーディングにLLMをどう使うのがよいと考えているのか、気になります。 コメントをさらに読み込む
発表前に、Google と Facebook のスポンサー紹介がありました
「牛を失ってから牛小屋を直す」ということわざが、未来への備えをするなという意味ではないのと同じように、
「車輪を再発明するな」も、洞察を得るために時間を投資するなという意味ではないと思います。
こうした言葉がどのような状況で出てきたのか、その前後を切り取ってしまうと本来の意味は歪められます。
アメリカの最大の特産品はドルだと思います
同じ問題を解決するために何度も繰り返しているとコンテキストウィンドウのサイズを超えてしまい、そういうときにAIが壊れるような経験を何度もしたのですが、このような場合は他の方はどうしているのか気になります。 私は何度も試して、どうにも間抜けな振る舞いをし始めたらモデルを変えて、プロンプトウィンドウを新しく開きます。
つい最近の体験ですが、私は最近、自分だけのとても特別な車輪をひとつ作りました。
Nuxtで1000ページ規模のアプリをビルドするのに7分かかっていたのですが、
いくつかの自動化をあきらめて作り直した結果、20秒ビルドに成功したんです。
OSSU オープンソース・ソサエティ・ユニバーシティ - Computer Science 独学する
GeekNewsの初期に紹介されていましたね。その間にかなり多くの内容が追加されました。
ご回答ありがとうございます!
添付していただいた2つ目の
quickSortInPlace()、これも遅い実装ですね。以下のコードを実行してみてください。
function quickSortInPlace(arr, left = 0, right = arr.length - 1) {
if (left >= right) return;
const pivotIndex = partition(arr, left, right);
quickSortInPlace(arr, left, pivotIndex - 1);
quickSortInPlace(arr, pivotIndex + 1, right);
}
function partition(arr, left, right) {
const pivot = arr[right];
let i = left;
for (let j = left; j < right; j++) {
if (arr[j] < pivot) {
[arr[i], arr[j]] = [arr[j], arr[i]];
i++;
}
}
[arr[i], arr[right]] = [arr[right], arr[i]];
return i;
}
function quickSort(arr) {
if (arr.length <= 1) return arr;
const pivot = arr[arr.length - 1];
const left = [];
const right = [];
for (let i = 0; i < arr.length - 1; i++) {
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return [...quickSort(left), pivot, ...quickSort(right)];
}
const repeat = 100;
const arrLength = 10000;
const unsortedArray = new Array<number>();
for(let i = 0; i < arrLength; i++)
unsortedArray.push(Math.round(Math.random() * arrLength));
let sorted: Array<number>;
const qb = performance.now();
for(let i = 0; i < repeat; i++)
sorted = quickSort(unsortedArray);
const qe = performance.now();
const rqb = performance.now();
for(let i = 0; i < repeat; i++) {
let copied = [...unsortedArray];
quickSortInPlace(copied);
}
const rqe = performance.now();
console.log(
q: ${qe - qb} ::: rq: ${rqe - rqb});深い洞察を感じる文章です。さすが a16z です。
普段はあまりコメントしないのですが、この文章にだけコメントを残した理由は、著者の考えにかなり共感しているからです。重要なのはAIやLLMそのものではなく、どんな環境が来ても開発者としての「自分」が備えていなければならない、ということだと思います。
LLMは学習されたソースの特性上、世界中に広がるオンラインデータの平均値に近いデータを主に提供します。(前述のjsクイックソートがその証拠です。)だから私はたいてい、思想やデザインの面で一般的な観点とどの程度一致しているか、ずれているか、あるいはこれまでどこに聞けばいいのか微妙だった内容を質問するために多く使っています。
さらにこれ以上議論を続けることに、どんな意味があるのかよく分かりません。
そもそも、AIが生成したコードにはある程度のリスク要因があり得るので、十分に精査したうえで適切に活用するのがよい、という意見なのであれば、著者の文章のどの考え方が偏っているのかを説明してもらえればよいのではないでしょうか。要約にも「文脈のない scaffold/草案コードを素早く提供することはできるが、完全な設計とチューニングは人間の開発者の役割である」とあり、似た意味の内容が含まれていますから。
基本的に、コレクションの生成・運用・マージに伴う負担への理解がまったく感じられないコードだと言えます。C++ の場合、すでに約10年前に Move Constructor に関する提案・実装も登場しており、メモリコピーに関するコストには常に鋭敏であることが基本中の基本です。quick sort はその仕組み上、すべての値の index を確定できるアルゴリズムであり、各フィールドはランダムアクセスできるようにしておくのが望ましいです。
マニアックな最適化なしでも、上記の内容だけを適用すれば、リンク先で示されている方式とは2倍以上の性能差が出ます。
return [...quickSort(left), ...equal, ...quickSort(right)];
この部分のコードをよく見て、考えてみてください。
LLMやAIは、時間が経つにつれて進化していますよね。ほんの数か月前までは、指示したとおりのコードの一貫性などはほとんど期待できませんでしたが、今ではそのスペース内でAIに初期構成を依頼したコードをファイルとしてアップロードし、新しいコードを書く際には常に既存のコードスタイルを守って書くよう指示して使えば、かなり一貫性のあるコードを書いてくれるようになりました。
yolo modeはauto run modeに変わったそうです。いろいろ試しながら方向性を探っていたのですが、行動よりも人を中心にしたアプローチというのは興味深いですね。ロールモデルのようなものでしょうか? 面白く読ませていただきました。ありがとうございます。
リンクがうまく動作していないようなので、もう一度やってみます。 https://chatgpt.com/canvas/shared/68341217ae788191b66a523c948b1a8e
こんにちは。興味本位で「Webフロントに入れるのですが、
jsでクイックソートのアルゴリズムを少し実装してくれ」と言ってみたのですが、私には何が問題なのかよく分かりにくくて。教えていただけるととても助かります。あらかじめありがとうございます。 https://chatgpt.com/share/68340f9b-b684-8002-8dd5-495d477065cdCommon Lispのプロジェクトですね。だから
ocicl+makeの組み合わせが使えるわけですね。これをVibe AIに投げて、ただtypescript+denoで作ってくれと頼むほうが、メンテナンスはしやすそうです。著者の分野に言及した理由や、自分のドメインというものがどういう意味なのかを、あまり理解されていないようですね。
自分で考えずにあらゆる判断をAIに委ねるのも愚かに見えますが、
その反対側にいる人たちのことも、私にはよく分かりません。
最後にお聞きしたいのですが、superscvさんはコーディングにLLMをどう使うのがよいと考えているのか、気になります。