はてなキーワード: 論理回路とは
ミシンができて天職が機械に置き換わってしまった職人の嘆きをリアルタイムで聴いている感覚
といった感じで「歴史の証人になった気分がして良い」と言ったものの正直別に珍しいことではないんだけどね
人類は昔からそうやって機械化できることをどんどん機械化して楽できるようにして、それにより生まれたゆとりを新たな価値創出に費やしてきたのだから
誰かのせいで仕事をつまらなくさせられたと思っているそこのあなただって誰かの仕事をつまらなくさせた側の人なんですよ
あなたが書いたプログラムだってまともなCPUがない時代は回路設計者がえいこらえいこら論理回路を一つ一つブロックのように組み合わせて実装していた
ただの電卓作るのに死ぬほど時間をかけて回路組んで、トランジスタレベルからめちゃくちゃ設計して、それが開発だ!楽しいんだ!って言っていたのかもしれない
その人にとってはアセンブリ言語でホニャララと書くだけで計算結果が出てきてしまう世の中つまらねぇと思っていたかもしれない
更に行ってしまえばアセンブリ言語でホニャララとかける人にとってC言語もそういう存在かもしれない
それが世の中の常であり、進歩なんだよ
と書いてて途中で気付いたが、ITにだけその進歩が辛い側面はあるのかもしれない
ミシンが普及して職人が服を作らなくても良くなっても、腕の良い職人が作る服には工芸品の"味"という価値が残ったと思う
他にも自動車が生まれても趣味としての乗馬は残ったし進歩により旧世代の遺物になったとしても何かしらの価値が残ることが今までは多かったはず
一方、ITはAIが発達し品質も高く速度も出るようなコードが書けるようになったら手書きのコードに何の価値もなくなってしまう
誰かすげー奴がすげーライブラリを無償で提供しちまったら同じ機能を実装する価値がなくなってしまう
手書きのコードから生まれるプロダクトに手書き特有の"味"は生まれない
CHR$(143)
プレイ時間 88時間(全ステージクリアしたばかりの現在の時間)
全クリして達成感に満ちあふれているが、この気持ちが収まる前に感想を書くぜー!
しかし、タイトル名の読み方がよくわからん。「キャラクターズ・ワン・フォー・スリー」でいいのか? ちなみに、ゲームのタイトル画面では『Project CHR$(143)』表記となっている。
タイトル名の『CHR$(143)』だが、Amstradというイギリスのメーカーから1984年に販売されたCPC464というホームコンピューター(パソコン?)のキャラクターコード143に四角形が割り振られていることが元ネタのようだ。レトロなコンピューターを元ネタにしてるだけあって、ゲーム画面全体もレトロな雰囲気に仕上がっているのも好きだ。
ゲームのジャンルとしてはパズルゲームでいいはずだ。ちなみに、Steamでのジャンルは「インディー, シミュレーション」となっている。
Steamのストアページの類似品として、『Baba Is You』(説明不要の有名パズルゲーム)に、『Factorio』・『shapez』といった工場建設系シミュレーションに、カイロソフトのレトロ調シミュレーションゲームに、変態パズルゲームメーカー(誉め言葉)で知られるZachtronics社の『SHENZHEN I/O』などが並んでいる。
『CHR$(143)』の紹介文をSteamストアより引用する。
リッチでやりがいのある物理ベースのパズル/ロジック/建設/プログラミングゲーム!弾道学、流体力学、熱力学、化学反応、核反応をマスターし、オートメーションレンガを使い、構造物、機械、乗り物を作り、電力を生産し、パズルを解き、霧を突き破り、CHR$を倒そう!
https://store.steampowered.com/app/1695620/CHR143/
パズルゲームやレトロ調ゲームが好きな私としては『CHR$(143)』のトレイラー動画や上記の紹介文に心惹かれてプレイした次第だ。これがやっぱり面白かった。上記に挙げた他の類似品に匹敵する、あるいは凌駕するほどに面白かった。
ゲーム内容としては、箱庭系というよりもステージ攻略型のパズルである。ゲーム内では各ステージはレベルと表記されているので、この感想文でもレベルと表記する。
パズルの難易度としてはかなり高い。それでも、チュートリアルなどの導入はしっかりしてるし理不尽さもないので、私にとっては時間をかけて考えれば自力でクリアできる難易度だった。とはいえ、悩みに悩んで、日をまたいでようやくクリアしたレベルもある。
ちなみに最終レベルクリアのSteamグローバル実績は1.6%である。これで難易度の高さが伝わるだろうか。
各レベルの主な流れとしては、ブロックを作ったり掘ったり操作したりして目的を達成(レベルクリア)していくことにある。ブロックの一つ一つが物理演算する様は『Noita』らしさを感じた。レベルクリアについてだが、解法がガチガチに決まっているわけではない。時間制限があって急いで操作しなければいけないレベルもあり、レベルによってはアクション性が高かったり、シューティングゲーム要素があったりするのも楽しかった。
レトロゲームは昨今のゲームと比べてジャンルという枠組みにとらわれていない印象があるが、この『CHR$(143)』も同様だ。
ブロックを組み合わせたギミックはとても面白いが、その中でも特に好きなのは蒸気タービンによる発電だ。
ただ過熱蒸気をタービンに送るだけでは発電できず、冷却用の水も同時に必要となっている。タービンで熱交換されて、過熱蒸気はただの蒸気となり、水は温水になる。発電を継続させるためには、蒸気を常に加熱する仕組みと、温水を冷却塔で常に冷却する仕組みを構築する必要がある。蒸気よりも過熱蒸気の方が密度が小さいので上の方に行き、水よりも温水の方が密度が小さいので上の方に行く。こうしたブロック毎の密度の違いを利用してタービン発電を実装していく必要があるのだ。
このように、流体力学や熱力学を反映したシミュレーションになっているのが、『CHR$(143)』の面白いところだ。
非常に頭を悩ませながらも面白かったのがプログラミングだ。AND・OR・NOTなどのブロックで論理回路を実現できるだけではなく、CPUブロックも存在する。そしてCPUに対して、このゲーム専用(たぶん)のプログラミング言語で命令をプログラムできるのだ。この言語がとても低レベル(低水準・低レイヤの意味で、決して侮蔑表現ではない)なのが面白い。逆ポーランド記法で数式を記述したり、goto文で条件分岐したりといった具合だ。言語の仕様は大量にあり、pdfファイルでまとめられているほどの徹底ぶりだ。しかも、ゲーム中でも詳細はpdfファイルを参照するようにと求められるのだ。パズルゲームで、まさかプログラミング言語の仕様書を読まされるとは思わなかった!
とはいえ、言語仕様を全て理解する必要はないし、プログラミングもゼロからコーディングする必要もない。プログラムはサンプルとしてすでに作られた物をコピペで流用して必要な個所だけを書き加えたり修正したりすればいいし、仕様書も必要なところだけを読めばいいのだ。それはそれで、ある意味リアルなプログラミングともいえるのだが……。
説明するのを忘れていたが、ゲーム全般は日本語対応しているものの機械翻訳なので翻訳はガバガバだ。とはいえキー操作一つで英語表記に戻せるのでそんなに問題は無いし、翻訳のガバガバっぷりはそれはそれで味があっていいものだ。しかし、プログラミング言語仕様が描かれているpdfファイルは英語オンリーなので、読み解くのに苦労した。とはいえ、言語仕様を調べようとして英語の説明しかなくて苦労するというのにも、これはまたリアルなプログラミングだなぁと感じたものだ。
好きなレベルについても述べたいので、まずはレベルがどのように構成されているかから説明する。
チュートリアル的なレベルでギミックの説明から始まり、レベルを経る毎にギミックを応用させた解法が求められる。さらにレベルを経るとこれまでの集大成的なレベルが登場して、それをクリアしたらまたチュートリアル的なレベルで新たなギミックが登場する。この繰り返しが『CHR$(143)』の大きな流れだ。
その中で私が好きなのは、やはり集大成的なレベルだ。集大成的なレベルは視界が狭まっており、一体何があるのだろうかと周囲を探索しながら進んでいくのが楽しかった。こうしたレベルはクリアがSteam実績解除の対象となっており、それにふさわしい達成感も与えてくれる。
そして最終レベルをクリアしたのが、つい最近のことだ。この達成感を味わったことを書き残したくて、今この文章を書いているところだが、それももう終わりのようだ。
こちらの増田なんですが、こういうことを言う女性たちの「気持ち」はわかるんですが、単にぶちまけたいだけでなく「問題解決をしたい」のであれば、お願いだから合理的な姿勢で議論に参加してほしい。
https://anond.hatelabo.jp/20230315183353
元増田のトップコメにありますが、性犯罪含めた日本の治安の良さは人類史上最高水準なのは間違いないんです。特に、このレベルの人口と活発な経済と治安を両立している例なんて間違いなく史上初でしょう。
だから、今の日本の犯罪をさらに減らそうというのは、「未だ人類が成し遂げていない挑戦」なんですね。それほど難しいことだけど、未だに被害者は後を絶たないから、絶対に挑み続けなければならない。
なのに「日本の性犯罪が少ない」を否定する人がいる。こういう人は率直に言って「治安改善活動をなめてる、妨害してる」と思います。まだ成功した国がない超高難度タスクであることから目をそらし、「海外のマネをすれば解決するのに、それをしないだけの怠慢」という認識でいて、日本より治安の悪い国で既に導入されてる(=日本では効果がないと推察される)施策を持ち込もうとしてくる。
これはあたかも、「米国では自衛のために銃を持つ。だから日本の女性も銃を持つべきだ」と言っているようなものではないでしょうか。米国の状況なら心理的に仕方がないかもしれないけれど、日本には意味がなく、むしろ状況を悪化させかねない誤った対策。
たぶんこれを言う人たちは、「正解がない」状況に耐えられないんだと思うんですね。まだ犯罪は十分に多いのに、それを即座に改善できる正解は世の中にまだない。これは大変な状況ではあるけれど、認めない限り前には行けないでしょう。
地域の治安の良さは、その地域での取り締まりの強さに比例してるわけではありません。むしろ「犯罪が起きないことが当たり前」という状況が一度成立した地域では警察力が劣化し、それでも特に治安は悪化しなかったりする。
住民が「この辺では犯罪が起きないのが当たり前」と思っている地域Aと、「この辺は治安が悪いから強力に取り締まらないといけない」と思っている地域Bと、その後の治安が改善するのはどちらでしょうか。Aのほうが望ましい状況である可能性は低くないと思います。地域Bでは「犯罪は起きて当たり前なのだから、私だって犯していい」という意識が一部の人に生まれるでしょうから。「日本人は性犯罪者だらけ!」を喧伝するほど、「俺だって性犯罪しても普通だよな」という意識の人も増える可能性があります。
ならば、人類史上有数の治安の良さを手に入れている日本が、それを積極的に誇ることは、むしろ長期的にいい効果を生むのではないでしょうか。これはほぼ日本にしかできず、日本にとっては効果があり得る施策だと思います。
たぶん「日本の治安の良さを評価したくない」人の中には、「褒めたら人は堕落する」という論理回路があるんだと思うんですよね。
でも皆さん、子供や新入社員の教育の話なら「褒めたら堕落する、叱らないと成長しない」って意見は否定するじゃないですか。主体は同じ人間なのに、なぜ全く逆のことを考えてしまうかなあ。
もしかしたら人類が宇宙で初めての知的生命体かもしれないよね!
知的生命体の定義は「宇宙の年齢を測れる科学知識を持ってる」として。
「この宇宙には知的生命体はいるんだけど地球には来てないだけ」って言うけど、
宇宙で最初の知的生命体も同じように考えると思うんだよね。なんか切ない。
生命の誕生は奇跡的な偶然だけじゃなくて、環境が揃えば似たような生命は生まれるんじゃないかな。
他には、「うちらもわからないんですけど、自然とトランジスタができて、
それが論理回路を構成して進化してこんなロボットになったんですよねえ」って機械生命体とか。
電流が電流が流れてる星なんだろうな。動ける体が先な気がするけど。
地球ができて46億年経って人類が生まれて、宇宙の年齢が138億年から考えると遅いような。
それに人類が宇宙の大きさをしってからまだ100年も経ってない。200年前は宇宙も知らなかったし。
人類が他の星へ信号出すべきだと思う。やりがいはなさそうだけど。
その方法は「太陽の光を大きな壁で遮ったり光らせたりだね!素数の間隔でかな。
だって他の宇宙から見れるような明るい光を作るのは太陽を作るのと同じだし、
太陽作るよりは明るさを変化させる大きな壁の方が作れそう。
#他の生命体とコンタクトを取りたい!って考える知的生命体は地球人だけだったりして。
#偶然コンタクト取れても「なんでそんなことしたいの?」って、
最近コンピューターサイエンスがプログラマーに必要か否かみたいな話が上がっているが、そもそもコンピューターサイエンスって何だよ。どこまでの範囲をさしてんの?
ググって出てきた情報を整理しただけなので詳しい人、補足・訂正よろしく!
https://www.acm.org/binaries/content/assets/education/cs2013_web_final.pdf
CS2013はACM/IEEE-CSによるカリキュラム標準。
ACM(計算機協会)はコンピュータ分野全般の国際学会、IEEE-CSはIEEE(米国電気電子学会)の中にあるテクニカルソサエティ。
https://www.ipsj.or.jp/12kyoiku/J07/20090407/J07_Report-200902/4/J07-CS_report-20090120.pdf
J07-CSは一般社団法人情報処理学会がCC2001CSをベースにアレンジを加えたカリキュラム標準。今はCS2013を反映したJ17-CSがあるらしいけどその辺は良く分からん。
https://www.ipa.go.jp/files/000024060.pdf
J07ーCSから抜粋。CS2013と比較するとナレッジエリアがあったり無かったり。
・機械工学は大学で学んだ。機械系4力学のさわりだけなら大体やったがもう忘れている。
・切削加工はけがき、フライス盤、ボール盤、くらいならできるが複雑な形状は作れる気がしない。そういえば旋盤は使わなかった。耐久性を考えなければ3Dプリンタでなんでも作れるらしいが、3Dプリンタは触ったことがない。
・CADは大学の演習でSolidWorksを触った程度。もうすっかり忘れている。手書きの製図とかは調べて思い出せば簡単な形状ならできるかもしれない。
・シミュレータはANSYSをマニュアル通り触った程度。動力学解析とか連成解析とか仕組みは全くわかっていない。
・電気工学はだいぶ勉強不足。簡単な回路図はチップの製品情報を睨めっこしながらINとOUTと接地をどうすればいいかくらいはわかったが、複雑なものになるとダメ。ArduinoとRasberryPiは買ってみたが埃かぶっている。論理回路の読み方はすっかり忘れているが調べれば思い出せると思う。
・化学系は全くの無知。大学受験で知識は止まっている。物性物理的なところも無知。
・数値計算はPythonやMatlabでちょっとできる程度。ライブラリを使った行列計算や簡単なニュートン法くらいなら書けるが、精度や速さが必要だったり複雑になるとダメ。解析は微分積分や常微分方程式を調べて思い出せばできる程度。測度論とか特殊な積分とかいわゆる大学数学的な道具が必要になる解析はできない。
・競技プログラミングはちょっとかじったがやめてしまった。むずかしすぎた。
・機械学習や統計はなんとなく知識はついているが、手を動かして何か作ったことはない。この前統計検定1級落ちた。
・バックエンドはSQLをそれなりに書いてとりあえず動くものなら書ける程度。可用性とかパフォーマンスとか考えられるレベルではない。JavaはJavaEEを横展開的に書いた程度。理解できている自信はない。保守性高めたりデザインパターン的に綺麗な書き方とかできない。C++は一瞬だけ触ったことがあるが、環境構築ハマった&謎のSegmentation Faultで苦手意識を残したまま。Go?Rust?なにそれおいしそうだね。
・クラウドはAWSをマニュアル通りに使っている程度。1から設計なんてできない。なのでAWSのソリューションアーキテクトを勉強中。AzureやFirebaseは触ったこともない。
・ネットワーク系とかセキュリティ系は全く勉強不足。応用情報をギリギリ合格できる程度の知識しかない。わかるようにはなりたい。
・フロントエンドはFlutterを勉強中。Flutterむずかしい、どんな言語でもそうだけどチュートリアルから業務レベルまでの乖離がありすぎてよくわからない。javascriptはjQuery一強時代にちょっと書いた程度。VueとかReactとかなにもわからない。TypeScript?なにそれおいしそうだね。
・ハード系だったりファームウェア系だったりコンパイラ系は何もわからない。わかるようにはなりたい。
全部中途半端だな、、、
論理回路を積み上げてけばできるんやろうなぁ…
数学や物理を大人になって学び直したら、「そんなことあるの?」とびっくりした概念を書いていく。
地球儀を切り開いて、平面にしようとしても、2次元の世界地図はできません。
という定理。
3次元⇨2次元への距離を保った変換はできませんということを示しており、これを発展させた弟子のリーマンが、「じゃあ、4次元から3次元とか、もっと高次元でも同じじゃない?」とリーマン幾何学を創出。後の相対性理論(空間が曲がる)の記述へと繋がる。
2位 論理回路
信号機とかのプログラムを電気回路で表現するにはどうすればいいのか?ということの理論。
4ビットの信号(0101みたいなの)だと、16通り応答が必要となる。簡単に考えれば16通りの設計が必要そうだけど、カルノー図を使った簡易化という謎のテクニックにより、なんとかなり簡単に電気回路を設計することができる。
物理では、位置エネルギーとか運動エネルギーとか謎のエネルギーという量が出てくる。
なんと、解析力学では、「謎のエネルギーの方が本質であり、運動とか位置とかはエネルギーから導かれる。エネルギーが先、運動や位置が後」という理論。
4位 再起構文
再起構文というのを書くと、ナルトの「多重影分身」みたいなプログラムが書けたりする。
いまだに原理を理解できていないけど、結果的にそうなってる。不思議すぎる。
なんと、光の半分くらいまでしか画像を読み取ることができない。
光以外にも、エコー(超音波)で体の中を観れるけど、あれは超音波の波長が0.5mmとかなら、0.25mmまでの物しか判別できない。
だから何?と思ったけど、半導体制作で「波長が短い(nm)の光を使って半導体を描くので、この理論を使います」とか、いろんなところでかなり効いてくる理論みたい
6位 5次以上の方程式の解の公式(代数的な表現の)はない。(ガロア理論)
これは証明をぜひ追ってみて欲しい。
実際に、これらの手法が提案されたときは数学的な記述ができなくて、「それ本当に成り立つの?なぜ?」ということで数学者が紛糾。
量子力学とかも物理の不安定な理解が、数学的にどう不安定なのかが納得できる。
同級生にベーマガとかプログラムポシェットに掲載される常連がいて、
というか、今から考えてみてもスゲー奴だよなぁ、偏差値高い高専行ったけど
そういう他人見ててスゲーなと思いつつ大学までプログラミングはやらんかった
大学入ってCをやるも何かが作れる感じではなかった
でも、描画が遅くて自分よりメガデモとか書けるような人の方がバリバリ高速なの書いてた
学部1年の頃はまだCというかまともなプログラムも書けなかったけど、
情報化じゃないから論理回路とか材料工学とか材料力学もやったけど、
建築工学の建築力学(材料力学)のモーメントとかそのまま使える
あと、大学入って実家で親が捨てようとしてたMSXを持って帰って、
MSX買ったときに親がマシン語の本とかMSXの規格のマニュアルとか買ってたので、
それを再勉強したら、子供の頃理解できなかったことが普通に理解できるようになってた
自分のMSXにはマシン語開発の簡易的な環境が入ってたのも大きい
なんで中身の構造のうちで、IFとWHILEで組み立てられているロジックという
特定の階層の構造までを知らなければならないと考えるのですかか?
なぜ高級言語を成立させている機械語の構造まで理解しないのか。
なぜ機械語を成立させているCPUの論理回路まで理解しないのか。
なぜCPUの論理回路を成立させているトランジスタ特性まで理解しないのか。
なぜトランジスタ特性を成立させている物理法則まで理解しないのか。
なぜあなたは、フレームワークの中身まで理解しなければならないと考えるのに、
物理法則の中身までは理解しなくてもよいと考えているのですか?