小さい物を繋いで大きな仕事をする
from 雑談1 はじまりの雑談ページで実験が行われた
小さい物をつなぐして大きな仕事をする
友人が「パイプ|の扱いを覚えると良い」って言っていたのを思い出したcFQ2f7LRuLYP.icon
たぶんちがう
まあ確かに違うのは違うwkuuote.icon
小さい物を繋いで大きな仕事をするという点では共通していると思う
ふむふむ?(わかってない)cFQ2f7LRuLYP.icon
パイプ 【pipe】
パイプとは、プログラム間でデータを受け渡すプロセス間通信(IPC)の手法の一つで、あるプログラムの出力を別のプログラムの入力として渡す仕組み。UNIX系OSで標準的な手法として広まり、Windowsなど他のOSにも似た機能が普及した。
例えば「カレントディレクトリにあるテキストファイルをランダムに並べたリストが欲しい」といった時、これをそのままプログラムに起こすのではなく
カレントディレクトリの一覧を出力するプログラム
渡された一覧を絞り込むプログラム
渡された一覧を並び換えるプログラム
この組み合わせでやるとロジックを一々書かずとも汎用の小さいプログラムをたくさん用意して仕事させるだけで済む
この汎用の小さいプログラムを繋いだりするための機構がパイプ
実際に書き起こすとこうなる
ls | grep .txt$ | shuf(Linuxで動くもの)
こんな短いのか…cFQ2f7LRuLYP.icon
もっと長いプログラムかと思った
これが汎用の小さいプログラムに任せる利点ですねkuuote.icon
この説明で大丈夫だろうかkuuote.icon
わかりやすいご説明、感謝です!cFQ2f7LRuLYP.icon
このへんに興味があったらUNIX哲学で調べてみるといいかも(プログラミングできる人向けの話しか出てきませんが)kuuote.icon
Scrapboxの設計思想もこれらしい
/shokai/汎用的な小さな機能
/rakusai/自分汎用デザイン
プログラミング(デカい主語ですみません)、やらなきゃという思いが先行しすぎつつ作りたいものがないのでモチベが上がりません!cFQ2f7LRuLYP.icon
ほっとくしかないと考えてますcFQ2f7LRuLYP.icon
作りたいものができたら始めるようにする
わかるkuuote.icon*3
私は作りたいものありきで始めたけど、作りたいものがない時期も結構あって、その時は面倒ごとを解決するのにしか使っていなかった
「面倒ごとを解決する」のでもすげー感すごいですcFQ2f7LRuLYP.icon
気合入れてやりたいことをやらなくても、例えばこんなのを書けるとかでもいいと思うkuuote.icon
/masui/Scrapboxは検索アイコンも新規作成アイコンも不要#611df8438ee92a000058054b
(↑を見て)動いている既存のものをいじるというプログラミングの学習法もありますねinajob.icon
ゲームプログラムを改造してレベルマックスからスタートみたいなやつとか
kuuote.iconのプログラミング経験のスタートはMinecraftのMOD作りだった
プログラミングとは違うけどサーキットベンディングとか
マイコンベーシックマガジンに掲載されたゲームを打ち込んで実行して遊んで、その後改造する
「自分のプログラムで画面に ”Hello World" が出る」ことそのものに喜びを見出せる人はプログラミングに向いている気がするinajob.icon
Hello inajob に改造しよう
Hello inajob inajob inajobとたくさん出してみよう
for文を使ってinajobを100こに増やしてみよう
みたいな感じ
自動演奏装置がまさしくこれだった
コンピュータサイエンス全般、わりとこういうイメージがあるinajob.icon
UNIX哲学で作られたソフトウェアスタックを使うことが多いから余計かな?
書籍 CPUの創り方
ブートストラップ とかアハ体験的で良い
ブートストラップ問題 - Wikipedia
コンパイラをコンパイル対象のプログラミング言語で作成した際に、そのコンパイラの最初のコンパイルをどうするかといった場合を典型的な例とする、いわゆる「鶏と卵」の形をしたセルフホスティング環境の問題
この一連のTweetとか象徴的(良く探し出せたな、自分・・)
Ryou Ezoe(江添 亮)(@EzoeRyou)
GNU/Linuxのreproducibleなブートストラップへの道のりが長すぎる。
https://t.co/EkfG1aFoHT
電子工作もそう
ポストアポカリプス物のSFも 小さい物を繋いで大きな仕事をするのが話の醍醐味な気がするinajob.icon
Dr.Stone
映画 オデッセイ (ポストアポカリプスではないか・・)
本好きの下克上 (ポストアポカリプスではないか・・)
Factorioというゲームは割と似通った設定だったなkuuote.icon
とある未開の惑星に不時着したエンジニアという設定
エンジニアなので物は作れる
簡単な物の作り方とどんな技術があるかは知っている
惑星に取り残されているので既存の技術ツリーや資源にはアクセスできない
惑星にある資源を利用したり自分で技術を復元したりしないといけない
簡単な技術で作れるものを組み立て、それで研究を回して新しく作れるようになったもので研究を加速していくというアプローチ
最終的にロケットを作って脱出するのが目的
Minecraftもそう?
アトリエシリーズも似ているとこがある
最初は素材→アイテムを作り出す
だんだん力量が上がってくると複数のアイテム→上位のアイテムを作り出せるようになる
クッキークリッカーとかもそうか?
ゲームデザインとしてはよくあるものなのか
ちょっとずれる
拡大再生産
そもそも拡大再生産とは、経済学者マルクスが提唱した理論で、概略ですが利益を生産設備に投資することで、前より多くのモノを生産しようという理論です。
(...)上記のマルクスの理論から転用して、機械を購入しお金を増やすゲームのことを「拡大再生産ゲーム」と言います。ボードゲームは当然ゲームですので、終わるための条件が必ず存在します。例えば資金が100億円になる、50ターン経過するなどです。そのため、いかに効率的にゴールへ届くよう計画し拡大再生産をするかがキモとなっております。
【ボードゲーム理論】拡大再生産とは - FTC株式会社 質屋かんてい局 リサイクルマート フランチャイズチェーン本部公式サイトです。