
はてなキーワード:温故知新とは
| 日 | 記事数 | 文字数 | 文字数平均 | 文字数中央値 |
|---|---|---|---|---|
| 01 | 2748 | 1150536 | 418.7 | 46 |
| 02 | 2823 | 840011 | 297.6 | 46 |
| 03 | 2676 | 333593 | 124.7 | 39 |
| 04 | 3928 | 2109761 | 537.1 | 53 |
| 05 | 3898 | 3813329 | 978.3 | 70 |
| 06 | 3227 | 414421 | 128.4 | 39 |
| 07 | 3350 | 1331430 | 397.4 | 52 |
| 08 | 3263 | 2178215 | 667.5 | 80 |
| 09 | 3201 | 1496622 | 467.5 | 65 |
| 10 | 2724 | 479251 | 175.9 | 46 |
| 11 | 2142 | 286349 | 133.7 | 39 |
| 12 | 2114 | 1326599 | 627.5 | 55 |
| 13 | 2339 | 248416 | 106.2 | 43 |
| 14 | 3039 | 1117581 | 367.7 | 51 |
| 15 | 3916 | 1382930 | 353.1 | 54 |
| 16 | 2960 | 481963 | 162.8 | 43.5 |
| 17 | 3042 | 1379694 | 453.5 | 63 |
| 18 | 2999 | 1199142 | 399.8 | 73 |
| 19 | 2676 | 1292298 | 482.9 | 58 |
| 20 | 3577 | 728074 | 203.5 | 46 |
| 21 | 3697 | 2163142 | 585.1 | 76 |
| 22 | 3286 | 1735959 | 528.3 | 83 |
| 23 | 3303 | 1477039 | 447.2 | 75 |
| 24 | 4671 | 3460923 | 740.9 | 148 |
| 25 | 1935 | 520271 | 268.9 | 49 |
| 26 | 3233 | 2493734 | 771.3 | 227 |
| 27 | 2711 | 1111687 | 410.1 | 101 |
| 28 | 4378 | 3392011 | 774.8 | 565 |
| 29 | 3566 | 2652050 | 743.7 | 127.5 |
| 30 | 4386 | 6836232 | 1558.6 | 495 |
| 31 | 6870 | 7396885 | 1076.7 | 727 |
| 1月 | 102678 | 56830148 | 553.5 | 69 |
■ /20250620063320(354), ■ /20250708051936(305), ■白痴の女の子にゴミを食べさせて笑う社会に生きている /20250723050053(118), ■「選挙に行かない人」を叩く違和感 /20250712142415(99), ■東大卒だけど、チームみらいは苦手だ。 /20250718014412(95), ■別に嫁の肩を持ちたくないわけではないが、実家と仲良くしてほしいだけ /20250706004352(84), ■「BL=性欲」という決めつけにモヤる話 /20250730165519(71), ■ /20250720211260(69), ■リベラルは反省しろって言うやつに聞きたい /20250717040810(58), ■ゲームやAVは社会の「割れ窓」 /20250724110825(57), ■BLというジャンルが終わるかもしれない /20250729013213(57), ■三上悠亜と職業差別女だったら前者を恋人にしたいに決まってるだろ /20250729003128(56), ■こだわりを捨てれば金は稼げる /20250720211432(54), ■40歳で資産6000万あったら仕事辞めちゃっていいのかな? /20250729121336(53), ■法律って「お気持ち」の集合体みたいなもんじゃないの…? /20250703194504(51), ■「差別は多様な考え方の1つではない」 /20250720214149(51), ■参院選は初めて白紙投票するよ /20250704081733(49), ■なんか久しぶりに増田に来たけど /20250701125568(48), (タイトル不明) /20250708044816(48), ■ /20250725181216(47), ■日本共産党というアホみたいに勘違いされている政党 /20250722063108(47), ■きょうだい格差のやつ見て思い出した。 /20250708234043(45), ■1人旅行って何したら楽しいの? /20250720211738(44), ■出産費用って私(嫁)が払うの? /20250111190924(43), ■2025大阪万博に行った。今までで最低のユーザー体験だった。 /20250713172930(43), ■そろそろ少子化対策に男性も含めようぜ /20250716111902(43), ■「汁物から手をつけるように」と言われて育たないのか /20250722084231(43), ■映画『国宝』の児童虐待描写はいいの? /20250726081611(43), ■女性にも男性と同じように安心安全に生活する権利がある /20250724092330(41), ■ /20250723205156(40), ■ブクマカって何ファーストなん? /20250714161638(39), ■選挙に投票したらコメントする日記 /20250720081257(39), ■愛国心を持って何が悪いってワードうまいよな /20250714182110(38), ■バカなんで消費税について教えてほしいんだが /20250701131201(38), ■もしかして石破茂は稀代の名宰相なのか? /20250724095352(38), ■参政党が勢力拡大したのってインテリリベラルが悪いよな /20250709164305(38), ■なんか革命的な暑さ対策無いの? /20250705143715(37), ■いい加減、子育ての責務を社会の責務とすべき /20250719130402(37), ■Detailed Guide to QuickBooks Support ContactNumbers intheUSA for2025 /20250731200952(36), ■Full List of QuickBooksDesktop® SupportNumbers intheUSA: AnOfficial Guide new /20250731200919(36), ■ヒカルの碁大好きとか言ってるのに囲碁のルールわからないって言ってるやつ見ると /20250715212838(36), ■生成AIを利用したプログラミング初級者向けの温故知新な提案 /20250705193628(36), ■DELLのサポートがひどすぎる件 /20250711214843(36), ■カップリングオンリーに原作者が降臨したので、ジャンルを降りた。 /20250715201135(36), ■詐欺電話に泣かされそうになって悔しい /20250728203642(35), ■恋人と仲良くない /20250730143406(35), ■コンビニで私物を冷やしてたら、出禁になった /20250708105412(34), ■外国人問題って、そもそもの原因はアベノミクスじゃんね /20250716224523(34), ■三上悠亜問題 /20250729001905(34), ■家族が陰謀論者になったよ /20250702013209(34)
ここで言う「プログラミング初級者」とはプログラミングの記述が上から下へ向かって順番に処理されること、条件分岐やループという概念があることを理解しており、RPGゲームが作れる「RPGツクール(現RPG Maker)」や学童向けプログラミング環境「Scratch」、「ナビつき! つくってわかる はじめてゲームプログラミング(ナビつく)」、ADVゲームが作れる「吉里吉里(もしくは吉里吉里2)」、過去にBASICやC、HSP、Javascriptあたりでプログラミングへ挑戦し挫折したなどなど、ある程度の「プログラマブルなロジック」構築の経験がある者を指します。
ある時、筆者はふと思いました。「生成AIはなんだかんだで膨大なテキスト情報を処理している事がキモだよなぁ」とありきたりなことを。
そして、同時にプログラミング初級者の弱点として「現在記述されているコードの管理においてテキストと実際の処理フローが脳内で一致しない」「プログラミング言語ごとに定められているルールや関数予約語の把握が困難」なのが問題とも考えました。
前述したプログラミング初級者の弱点の考え自体は車輪の再発明であり、「Scratch」や、より高度な「UML」が既に存在しており、特筆すべきことは何もありません。
しかし、「Scratch」や「UML」、なんなら「RPGツクール」や「吉里吉里」などに無い点として、現代では自然言語処理が大幅に向上した生成AIが実用の域にまで到達しつつあるのが従来とは異なる点でした。
つまり、自然言語を混ぜ込みやすいテキストベースの言語、かつ、処理を記述するとフローが視覚的に理解しやすい言語、可能であれば情報量が多くて一部の界隈で広く使われている言語があればプログラミング初級者も気軽にプログラミングできるのではないか?と発想しました。
コンピュータ(コンパイラやインタプリタなどソフトウェアを含む)が解することができる言語にはプログラミング言語以外にも様々あり、今回取り上げるのは「データ記述言語」と呼ばれるものです。
データ記述言語の中でもグラフ作成へ特化しており、特にフローチャート作成で真価を発揮する「DOT言語」というものがあります。
早速ですが、実際に手を動かしてみましょう。ちなみにDOT言語はGraphviz OnlineというWebツールがあるため別途に何かしらをインストールして環境構築する必要はありません。便利な世の中ですね。
上記のGraphviz Onlineを開くと、既に左側のDOT言語で記述された内容が、右側で作図されています。DOT言語はこのような図を作図するためのデータ記述言語です。
一旦、左側の記述をCtrl+Aで全選択をしDeleteなどで全削除し、下記の内容をコピペしてみましょう。
digraph graphname {
A -> B;
}
DOT言語の詳細な使い方は様々なWebサイトやブログ記事、Qiitaなどへ譲るとして、A - > Bの見た目から発想の転換をしてみると処理Aから処理Bという流れに見えませんか?
DOT言語は生成AIを利用する上で有利なテキストベースでありながらグラフを作成できるのがキモであり、例えばこのA -> BがA「Webページを開いたら」 → B「Hello, Worldと表示する」という風にできるのであれば処理のフローが可視化されており本当に素晴らしいことです。
ここでプログラミングの有識者は「DOT言語をUMLなどに見立てて処理を記述するのは良いが、プログラミング初心者は求めた結果を出力するロジックやアルゴリズムを発想する知見や経験値が圧倒的に足りていないのが問題ではないか?」と至極真っ当かつ反論の余地がない問題点の指摘をすると思いますが、そこで活きるのが生成AIです。
生成AIは初級者プログラマ個人のロジックやアルゴリズムの作成能力へ無関係にロジックやアルゴリズムを生成できる(可能性が少なくともある)ので、処理のフローをDOT言語で記述することにより処理フローから初級者プログラマが求めるプログラムを生成AIへ推論させ生成させるというのが狙いです。実際に試してみましょう。
digraph graphname {
A[
label = "Webページを表示する"
];
B[
label = "Webページを表示したらHello, worldとテキストを表示する"
];
A -> B;
}
プログラミングの有識者はこの時点で「なるほど、自然言語の記述をそのままDOT言語に入れ込んでしまうのか」と気付いたのではないかと思います。
このDOT言語をGoogle Gemini 2.5Flashへ「下記のデータ記述言語のDOT言語で記述された処理フローをJavascript言語へ変換をしWebページ上へ「Hello,world」を表示したいので変換をお願いします。」と命令すると以下のコードが生成されました。
<!DOCTYPEhtml>
<html lang="ja">
<head>
<meta charset="UTF-8">
<metaname="viewport" content="width=device-width, initial-scale=1.0">
<title>Hello World Page</title>
</head>
<body>
<divid="output"></div>
<script>
//Webページが表示されたら(DOMが完全に読み込まれたら)実行される
document.addEventListener('DOMContentLoaded', function() {
// "Webページを表示する"ステップは、このHTMLファイル自体が表示されることで達成されます。
// "Webページを表示したらHello, worldとテキストを表示する"ステップ
const outputDiv = document.getElementById('output');
outputDiv.textContent = 'Hello, world';
});
</script>
</body>
</html>
フローを記述する利点は、ロジックやアルゴリズムを発想する知見や経験値が足りなくとも、フローのステップが明確に分かれているので生成AIが処理を切り分けて推論してくれることであり、そしてプログラミング初心者自身がフローチャートを視覚で確認できるので「Aを処理したらBを処理する」と切り分けて考えやすいことです。
また、求めている結果ではなく誤った結果が生成されても、A - > B - > Cとフローを細分化していくことで生成AIの推論精度を高めていくことができるのも利点です。
より生成AIへ精度の高い推論をしてもらうために補足情報を付加するのも有用です。
digraph graphname {
A[
label = "Webページを表示する"
];
B[
label = "Webページを表示したらHello, worldとテキストを表示する",
comment = "Webページが完全に読み込まれるまで待機"
];
A -> B;
}
labelの記述内容もcommentの記述内容も生成AIが推論のための情報として利用するので誤った結果が生成されてもA - > B - > Cとフローを細分化しなくとも良い場合があります。
DOT言語を知るプログラミング有識者が「DOT言語の仕様を考えれば確かにそうだが、その発想はなかった」と言っていただけるであろうDOT言語コード例だとこういう記述方法もアリです。
digraph増田コード {
最初の処理[
label = "Webページを表示する"
];
次の処理[
label = "Webページを表示したらHello, worldとテキストを表示する",
comment = "Webページが完全に読み込まれるまで待機"
];
最初の処理 -> 次の処理;
}
ノードの名称へ自然言語を採用することにより、例えばゲームプログラミング時に「キャラクターがジャンプする」という読んだそのままな処理のためのノード、というか一般的に言うオブジェクトを作成することが可能で、後は->で繋げて処理をさせられます。
ちなみに別のノードを作成する際に「"キャラクターがジャンプする"から継承する」の様なことをcommentなどへ記述しておくと生成AIが推論して継承します。なんならcommentなどへ「キャラクター画像にimage.gifを使用」などと記述しておくとファイルの読み込みもします。
更にDOT言語にはカスタム要素という仕様が存在しており、DOT言語の仕様で定められた予約語以外も使用が可能です。
digraph増田コード {
最初の処理[
label = "Webページを表示する"
];
次の処理[
label = "Webページを表示したらHello, worldとテキストを表示する",
comment = "Webページが完全に読み込まれるまで待機",
font_style = "フォントを太字のボールド体、色を赤(#FF0000)とする"
];
最初の処理 -> 次の処理;
}
生成AIはカスタム要素の名称からも推論を発揮し、上記の場合であればフォントスタイルを指定していると推論をするので生成AIの推論精度を高める補足情報として機能します。
つまりこれはカスタム要素の名称として"Action"などの名称を採用すると"動作"として推論をし、"decision"ならば"条件分岐"ですし、"input"ならば"入力"ですし、"loop"ならば"繰り返し"ですし、"Type"ならば"種別"です。
より詳細に process[type="Action"] などのノードを作成してどんどん生成AIの推論精度を高めていくことが可能であり、そろそろ察してきているかと思いますが 処理[種別="動作"] と自然言語で記述しても機能します。
プログラミング有識者は更に「プログラム言語自体の予約語、例えばJavascriptを生成する事を前提にlengthを名称にすると配列を使おうとするのか?」と疑問に感じるでしょうがお察しの通りで生成AIは配列を使おうとするので、敢えて使いたいプログラム言語の機能や外部ライブラリなどがある場合は補足情報として機能する形で記述しておくと生成AIは推論へ利用します(まぁそこまで知識ある方なら該当のプログラム言語使ったほうが手っ取り早いと思いますが)。
以上をもって「生成AIを利用したプログラミング初級者向けの温故知新な提案」を終えたいと思います。
色々とツッコミどころには筆者自身が気付いていて。例えば「結局はDOT言語の仕様を覚えないといけないのでは?」とか「プログラミング初級者に任せると生成前のソースであるDOT言語コードがスパゲッティになりそうだよな」とか「面倒くせぇから普通にプログラミング覚えろや」とか理解してますし至極真っ当かつ反論の余地がないと思ってます。
今回の提案のプログラミング有識者向けの本質は「生成AIへ向いた中間言語の発掘」であり、「DOT言語ならそこそこ普及してるしプログラミング初級者でも扱えるんじゃね?」と業務中に発想したものを書き留め公開いたしました。
何かプログラミング有識者の皆さんからより良い発想があれば参考にしたいと考えていますのでよろしくお願いいたします。以上。
Permalink |記事への反応(36) | 19:36
失礼ながら、「嘘」は、だまそうという意図とは無関係に「正しくないこと」「事実ではないこと」の意味で用いられています。
つまり、「ちゆ13歳は「嘘」を誤用している」というあなたの意見は残念ながら誤りです。
嘘(読み)ウソ
うそ【×嘘】
1事実でないこと。また、人をだますために言う、事実とは違う言葉。偽いつわり。「嘘をつく」「この話に嘘はない」
2 正しくないこと。誤り。「嘘の字を書く」
3 適切でないこと。望ましくないこと。「ここで引き下がっては嘘だ」
うそ【嘘】
〘名詞 〙
① 本当でないことを、相手が信じるように伝えることば。事実に反する事柄。人を欺くことば。いつわり。そらごと。虚言。虚偽。うそいつわり。
[初出の実例]「迂踈ウソ 譃」(出典:温故知新書(1484))
「范式は信士なりまことなうそのない人なり」(出典:玉塵抄(1563)一〇)
② 正しくないこと。誤り。間違い。「うそ字」
③ ( 多く「なければ」「なくては」「ないと」などの表現の下にきて )適当ではないこと。不当。
[初出の実例]「那(あれ)は是非鷲見に見せたい。見せなくちゃ謬(ウソ)だ」(出典:多情多恨(1896)〈尾崎紅葉〉後)
④ (相手の言葉への反応として感動詞的に用いて ) その言葉は信じられないの意を表わす語。「『あの人結婚してるのよ』『うそ!』」
フェリクーッス
本日は日本において関西国際空港開港記念日、クラシック音楽の日、くじらの日、くしの日、串の日、心を注ぐ急須の日となっております。
古きを知り新しきを知ればなんとやら〜みたいな誤用を今書こうとしたのですが、
正確には故きを温ねて新しきを知る、と書くのだそう。
こう書くと「昔のことも知ってて〜新しいことも知ってたらいいんじゃない〜」って意味じゃなくて
「昔のことを思い出して、新しく知恵が出せるようになろう」って意味になりますね。
というか、温故知新ですね。
知識って歪むんですね〜。
まぁ、私だけですね。
古きを知り新しきを知るはドランクドラゴンのネタで出てきた誤用です。
新しきの部分で噛む奴ですね。
ふるきをたずねていきましょう。
故きを温ねて、新しきを知りましょう。
ということで本日は【情報の確認よいか】でいきたいと思います。