はてなキーワード: Hello Worldとは
電信通信において、距離が長くなると電流が減衰し、信号が弱くなる問題が発生しました。この問題を解決するために開発されたのが 「リレー(中継器)」 です。
リレーは、弱まった電流を利用して新しい電流を作り、信号を増幅して次の区間へ送る装置 です。ここでは、リレーの仕組みを詳しく説明します。
(1) 電磁石
入力側から微弱な電流が流れると、電磁石が作動 する。これにより、リレー内部のスイッチ(接点)がONになる。
電磁石の磁力でスイッチが閉じる(ON)と、新たな強い電流が流れる。つまり、弱い信号をトリガーとして、新しい電流を発生させる。
(3) 新しい電源
リレーは 独立した電源 から新たな強い電流を供給。これにより、入力された信号と同じ内容の信号を、次の区間へ強い電流で送り直す。
2. 仕組みの動作
送信者が電鍵を押すと、最初の電流が電信線を流れる。ある程度の距離を伝わるが、電流が弱くなってくる。
微弱な電流でも、リレー内の電磁石が反応し、スイッチをONにする。このスイッチが閉じることで、別の強い電源から新しい電流が供給される。
こうして、新しい強い電流が再び電信線を流れ、次の中継局へ向かう。
(4) 次のリレーで再び増幅
このプロセスを繰り返し、最終的に受信者まで信号を正確に伝える。
3. 具体例
100km地点のリレーが電流を受信し、スイッチをONにして新しい電流を送る
300km、400km……と繰り返し、中継局を通じて信号がシカゴへ到達
この仕組みにより、電流が減衰することなく、数千kmの距離でも通信が可能になった。
4. リレーの発展と改良
アメリカの科学者ジョゼフ・ヘンリー が1835年に 電磁リレー を開発。これにより、長距離通信が可能になり、モールス電信の実用化を加速。
初期のリレーは 手動で監視する必要があった が、後に 自動リレー が開発され、より効率的に信号を増幅できるようになった。
現在の ルーターやネットワーク中継装置(リピーター) の基本原理は、電信のリレーと同じ。弱いWi-Fi信号を「Wi-Fi中継機」で増幅するのも、リレーの応用例。
リレーの回路図や実際の装置の動作原理について、さらに詳しく知りたいことがあれば教えてください!
リレーは、弱い電流を用いて新しい強い電流を流すスイッチの役割を果たします。これは、電磁石とスイッチを組み合わせた**電磁リレー(Electromagnetic Relay)**と呼ばれるもので、モールス電信の長距離通信を可能にしました。
+-----------+ +---------------------+ | 送信者 | | リレー | | (電鍵) |-----| コイル (電磁石) | | | | +-----+ | | | | | | | | | | | ON |----(新しい電流)------> | | | | | | | | | +-----+ | +-----------+ +---------------------+
コイル(電磁石) に電流が流れると磁力が発生し、スイッチがONになる。
スイッチがON になることで、右側の新しい強い電流が流れ、次の区間へ信号が送られる。
電磁石には電流が流れていない → スイッチはOFF(開いている)。このため、新しい電流は流れず、次の電信区間に信号は送られない。
送信者が電鍵を押すと、最初の微弱な電流がリレーの**コイル(電磁石)**に流れる。電磁石が作動し、磁力が発生する。磁力によって、リレー内部の**可動接点(スイッチ)**が引き寄せられ、スイッチがONになる。新しい強い電流が流れ、次の電信区間へ信号が送られる。
(3) 電鍵を離す(電流が止まる)
送信者が電鍵を離すと、最初の微弱な電流が止まる。電磁石の磁力が消える。バネの力でスイッチが元のOFF状態に戻る。新しい電流も止まり、信号の送信が停止する。この動作がモールス符号の「短点(・)」や「長点(―)」に対応して行われる。
3. 具体的な回路図
+------[ 送信電源 ]------+ | | | +------(電鍵)-------+ | | | | | +---+ | | | | | | | | | 電磁石 (コイル) | | | | | | | | +---+ | | | | | | +----|---------------+ | | | | (新しい電流) | +-------(リレーの接点)-----> 次の中継局 | +------------------------------+
磁力によってリレーのスイッチがONになり、新しい強い電流が流れる。
(1) 多段リレー
長距離通信では、1つのリレーだけでは不十分な場合がある。リレーを数段配置し、それぞれの区間で信号を増幅して送ることで、より遠距離まで通信できる。
初期のリレーは手動監視が必要だったが、後に自動的に信号を増幅・再送信する装置が開発された。
リレー技術は、電信だけでなく、さまざまな分野で活用されています。
コンピュータ(初期) 1940年代の初期のコンピュータ(ENIACなど)はリレー回路を使用
インターネット通信 ルーターやネットワークスイッチの基礎原理はリレーの発展形
1. 初期のリレーの仕組みと制約
初期の電磁リレーは 完全に自動化されておらず、手動による監視と調整が必要 でした。その理由は以下の通りです。
リレーの電磁石やスイッチの接触不良が発生しやすかった。初期のリレーは機械的な部品(バネや接点)が摩耗しやすく、定期的に点検と修理が必要だった。電磁石のコイルが熱を持つと誤動作することがあり、手動でリレーの動作を確認する必要があった。
初期の電信システムでは、信号が途中で弱くなったり、歪んだりする ことがあった。そのため、オペレーターが受信したモールス信号を確認し、誤った場合は手動で再送 する必要があった。
送信者が誤ってモールス符号を打った場合、誤った信号がそのまま伝わる。中継局のオペレーターが異常に気づいた場合、手動で通信を止めるか、修正を行う必要があった。
初期の電信回線は 雷や静電気の影響を受けやすく、誤信号が発生 することがあった。手動で信号の確認と調整を行い、不要なノイズを取り除く作業が必要だった。
各中継局には 電信オペレーターが常駐 し、受信したモールス符号を確認 した。もし信号が不明瞭だった場合、手動で「再送リクエスト」を送ることがあった。
電磁石の調整 や 接点の清掃 を行い、正常に動作するように点検。リレーの動作が鈍い場合は、手動でスイッチを切り替えて信号を送り直すこともあった。
誤った信号が送られた場合、オペレーターが正しい信号を手動で再送することが求められた。例えば、長距離の通信で「HELLO」と送るつもりが「HELO」になった場合、オペレーターが気づいて修正することもあった。
(1) 改良された電磁リレー
19世紀後半になると、より高精度なリレー(接触不良が少なく、信号を正確に増幅する装置)が開発される。これにより、手動での監視の必要性が減少 し、自動化が進んだ。
1870年代以降、手動監視なしで信号を自動的に増幅・転送できるリレー が登場。これにより、遠距離の電信通信が大幅に効率化され、オペレーターの負担が軽減 した。
電磁電信機を用いた通信には、以下のような問題点がありました:
通信の改ざんリスク(悪意のある第三者が偽のメッセージを送る)
これらの問題に対し、当時の技術者たちはさまざまな対策を考案し、電信の安全性と信頼性を向上させました。各問題ごとに詳しく見ていきます。
リレー(中継器) を設置し、電流が弱くなっても強い電流に増幅することで信号の劣化を防いだ。これにより、長距離通信が可能になり、信号の誤送信が減少した。
(2) 絶縁技術の向上
初期の電線は裸の鉄線を使っていたため、雨や湿気による信号の漏洩が問題だった。絶縁体(ゴム、ガタパーチャ樹脂)を使った電線が開発され、信号の安定性が向上した。
(3) 再送リクエストの仕組み
確認信号(ACK)を導入し、受信側が「正しく受信した」ことを送信側に伝える仕組みが生まれた。もし確認信号が送られなかった場合、送信者は**再送信(Retransmission)**を行った。
フィルタ回路を追加し、雷や外部ノイズによる誤信号の混入を低減。ツイストペアケーブル(電線をねじることで外部ノイズの影響を減らす技術)が導入された。
(1) 暗号化の導入
初期の電信は 誰でもモールス符号を解読できるため、盗聴が容易 だった。
軍や政府は、機密情報を送る際に**「コードブック方式」**(事前に決めた符号表を使う)を採用。
例:「KING → ZR3」、「ATTACK → 7Y2」 のように変換する。
ヴィジュネル暗号(Vigenère cipher) のような多段暗号を使うことで、簡単には解読できない仕組みを導入。
乱数表を使ってモールス符号を変換し、意味を隠す方法が開発された(ワンタイムパッド方式の先駆け)。
企業や政府機関は**専用の電信コード(プロプライエタリコード)**を使用し、外部の人間が解読できないようにした。例:「A」を「Q」と送信する など、独自のルールを採用。
各電報には、**送信元の情報(識別コード)**を付加し、なりすましを防ぐ仕組みが取られた。例:軍の電信では、送信者の認証コードを含めることで、偽のメッセージを排除。
チェックサム(Checksum)の原型となる手法が登場し、受信した電報の正しさを検証できるようになった。例:「メッセージの文字数を送信前後で照合する」方式。
軍や企業の通信では、電報の最後に**「秘密のキーワード」**(合言葉)を入れ、受信者だけが本物のメッセージを識別できるようにした。例:「ATTACK AT DAWN, CODE: BLUE」 → 「BLUE」を知っている者のみが本物と判定。
重要な通信は二重に送信し、内容が一致していることを確認する方法も採用された。もし二つの電報の内容が異なっていれば、受信者は改ざんの可能性を疑うことができた。
(3) 再送リクエストの仕組み
確認信号(ACK)を導入し、受信側が「正しく受信した」ことを送信側に伝える仕組みが生まれた。もし確認信号が送られなかった場合、送信者は**再送信(Retransmission)**を行った。
ここを詳しく教えてください
1. 基本的な流れ
電信における「確認信号(ACK/NACK)」の仕組みは、以下のような流れで機能しました。
もし正しく受信できたら → ACK(確認信号)を送信。もし誤っていたら → NACK(否定応答)を送信し、再送を要求。
ACK(「了解」)を受け取ったら、次のメッセージを送信。NACK(「もう一度送ってください」)を受け取ったら、同じメッセージをもう一度送信。
2. 詳細な動作例
送信側(A)から受信側(B)へ「HELLO」のメッセージを送る場合:
送信者(A) → → → HELLO → → → 受信者(B) ↓ ACK(了解!) ↓ 送信者(A) → → → 次のメッセージへ
送信者(A) → → → HELLO → → → 受信者(B)(ノイズ発生) ↓ NACK(聞き取れませんでした!) ↓ 送信者(A) → → → HELLO(再送) ↓ ACK(了解!) ↓ 送信者(A) → → → 次のメッセージへ
実際の電信では、ACK/NACKのために次のような符号が使われました。
「R」(・-・)は「Received」の略で、「正しく受信した」の意味。
「OK」(--- -・-)が使われることもあった。
先生何でも知ってるな
(1) 口伝(くでん)と使者 (2) 狩猟・戦争における合図 (3) 狼煙(のろし)
(1) 楔形文字(メソポタミア)・ヒエログリフ(エジプト) (2) 郵便制度の発展
(1) 紀元5世紀~15世紀 (2) 烽火(ほうか)・のろし (3) 飛脚制度(日本)
(2) 交換機の導入
グリエルモ・マルコーニが無線通信(ラジオ通信)の実験に成功。
1901年、大西洋横断無線通信を達成し、船舶や遠距離通信で活躍。
1920年代にAMラジオ放送が開始され、大衆向けの放送メディアとして普及。
腕木通信の仕組みについて教えてください
1. 基本構造
通信塔(セマフォア塔) 高い場所に建てられ、見晴らしの良い地点に設置される。直線上に複数の塔が並び、情報をリレー方式で伝える。
腕木(アーム) 一般的には2本または3本の可動式の木製の腕。腕の角度を変えることで、異なる文字や数字を表現する。
制御機構 塔の内部には腕木を動かすためのハンドルやロープがあり、通信員が操作する。
2. 通信の流れ
腕木通信では、腕木の角度を組み合わせてアルファベットや数字を表す符号が決められていました。
例: ある位置の角度が「A」、別の角度が「B」を意味する。組み合わせることで単語や文章を伝達。
(2) 視認と伝達
発信者(通信員)が塔の上で腕木を特定の角度にセットする。隣の通信塔の通信員が望遠鏡でその信号を確認する。確認した通信員が同じ符号を自分の塔で再現する。これを繰り返し、情報が数十~数百km先までリレー方式で送られる。
3. 腕木通信の特徴
(1) 速さ
馬や飛脚より圧倒的に速く、良好な天候なら数百km先まで数分~数時間で伝達できた。例: フランスでは、パリ~リール間(約230km)を約3分で通信可能だった。
(2) 天候の影響
晴天時は遠くまで見えるため有効だったが、霧・雨・夜間は利用できなかった。これが電信の発明へとつながる大きな要因となった。
フランスではナポレオン戦争(1803-1815年)の際、軍事通信に活用された。ヨーロッパ各国でも行政・軍事目的で導入。
アルファベットや数字を表すために、腕木の角度を組み合わせた符号表(コードブック)が用意されていました。
ここでは、腕木通信で「HELLO」を送る具体的な手順を説明します。
腕木(アーム):通常、2本または3本の可動アームが使われる。
符号表(コードブック):各アルファベットや数字に特定のアームの角度が割り当てられている。
A = 10° / 30°
B = 20° / 40°
C = 30° / 50°
...
H = 80° / 120°
E = 50° / 90°
L = 70° / 110°
O = 90° / 130°
2. 「HELLO」を送る手順
腕木通信は 1文字ずつ順番に送信 し、隣の塔がそれを読み取り、次の塔に伝えるリレー方式で情報を伝達します。
(1) Hを送信 通信塔のオペレーターが腕木をHに対応する角度(80° / 120°)に設定。隣の塔の通信士が望遠鏡で確認し、同じ符号を再現。
(2) Eを送信 次に、腕木をEの角度(50° / 90°)に変更。これを隣の塔へリレー。
(4) Oを送信 最後に、Oの符号(90° / 130°)を送る。
文字ごとに送ると時間がかかるため、短縮コード(例:「HLO」で「HELLO」とする)を使うこともあった。軍事通信では暗号化された符号も使用。
エラーチェック
送信ミスを防ぐために「確認信号」を送ることがあった。受信者が「正しく受信した」ことを示す信号を返す方式も採用。
単なるアルファベットだけでなく、「数字」「特別な記号」も符号表で定義。
A = 10° / 30°
とはどういう意味なのですか?
10度のこと?30度のこと?
「A = 10° / 30°」という表記は、腕木(アーム)が複数ある場合に、それぞれの角度を指定する方式です。
通常、腕木通信には2本または3本の可動アームがあり、それぞれのアームを特定の角度にセットすることで、1つの文字や数字を表現します。
例えば、2本の腕木(上側と下側)がある場合:
上のアーム:10° 下のアーム:30°
>受信者が「正しく受信した」ことを示す信号を返す方式も採用。
これはどのような仕組みですか?
腕木を「A」に対応する 10° / 30° の位置にセットし、隣の塔に見せる。
確認信号(例:「了解」を示す特定の腕木角度、または短い「OK」信号)を送信する。
例えば「50° / 90°」のように、「受信しました」の意味を持つ角度が設定される。
受信者からの確認信号を見て、正しく受信されたことを確認 する。
もし確認信号が来ない場合、または誤りを示す信号が来た場合、もう一度「A」を送信し直す。
腕木通信には、以下のようなエラーチェックの方法も考案されました:
(1) 再送要求
受信者が符号を読み取れなかった場合、「もう一度送ってください」という特定の信号(リクエスト信号)を送る。
例:「不明瞭」や「再送」を示す角度(例:60° / 120°)を使用。
(2) 確認の二重チェック
受信者だけでなく、次の塔が再び「A」を送ることで、送信者が正しく伝わったことを確認できる。
これにより、1つの塔で間違いがあっても、別の塔で補正が可能。
電鍵(モールスキー) 手動のスイッチで、押すと電流が流れる。押す時間の長短で「短点(・)」や「長点(―)」を作る。
(2) 通信線
電線(単線または複数線)送信機と受信機をつなぐ導線。初期の電信機は1本の電線と地面(アース)を回路として利用。
電磁石
送信側でスイッチが押されると、電流が流れて磁場が発生。電磁石が作動し、紙に記録する装置が動く。記録装置(スタイラス & 紙テープ)スタイラス(針) が上下に動き、紙テープに「短点(・)」や「長点(―)」を記録。初期は音ではなく、紙テープに記録する方式が使われた。
モールス電信機の受信機は、以下の主要な部品で構成されています:
(1) 電磁石
送信者が電鍵(モールスキー)を押すと、電流が流れ、受信側の電磁石に電流が到達。電磁石が磁力を発生し、アームを引き寄せる。
電磁石の磁力によってアームが動く(電流が流れた瞬間に引き寄せられる)。電流が切れると、バネの力でアームが元の位置に戻る。
(3) スタイラス(記録針)
アームの先端には スタイラス(記録針) が付いている。アームが動くことで、スタイラスが紙テープに接触し、点や線を刻む。
(4) 紙送り装置
受信機には ロール状の紙テープ がセットされており、一定の速度で送られる。紙テープが一定の速度で進むことで、信号が「短点(・)」や「長点(―)」の形で記録される。
記録の流れ
(1) 短点(・)の記録
送信者が電鍵を短く押す(例:0.1秒)。受信機の電磁石が一瞬作動し、アームが紙に軽く接触。紙に小さな点が刻まれる(・)。電流が切れると、バネの力でアームが元の位置に戻る。
(2) 長点(―)の記録
送信者が電鍵を長く押す(例:0.3秒)。受信機の電磁石が長い間作動し、アームが長時間紙に押し付けられる。紙に長い線(―)が刻まれる。電流が切れると、バネの力でアームが元の位置に戻る。
(3) スペース(間隔)
電鍵を押さない時間が長いと、記録装置には何も刻まれず、文字の区切りが生まれる。一定時間(例:3単位)何も信号がなければ、単語の区切りとみなされる。
初期のモールス電信では、紙テープに記録された符号を手作業で解読していた。
しかし、受信機のアームが動くと「カチッ」という音がすることに気づき、オペレーターが耳で直接モールス符号を聞き取る方式(サウンドレシーバー方式)が生まれた。
これにより、紙に記録しなくてもリアルタイムでメッセージを受信できるようになった。
電線に電流を流す仕組みを聞いた限り距離が制限されそうに思えます
これについて詳しく教えてください
モールス電信機は電流を電線に流して情報を伝えるため、通信距離にはいくつかの制限がありました。特に、長距離になると電流が弱まり、信号が減衰(減少)するという問題がありました。
ここでは、電信の通信距離の制限と、それを克服するための技術について詳しく解説します。
長距離の電信通信において、電流の減衰(弱まる)原因として次のような要因がありました。
(1) 電気抵抗
電線の長さが長くなると、電気抵抗(電流の流れを妨げる力)が増えるため、電流が弱まる。銅や鉄などの導線を使用していたが、特に鉄線は抵抗が大きく、距離が長くなると信号が伝わりにくくなる。
19世紀の電信では、片側の導線+地面を電流の経路として使用(単線電信方式)していた。しかし、湿気や土壌の違いによって電流が地面に漏れ、信号が弱くなることがあった。
近くに他の電信線があると、電磁誘導によって信号が干渉することがあった。雷や電磁気の影響によって信号が乱れることもあった。
こうした問題を解決するために、いくつかの技術が導入されました。
「リレー(中継器)」を使って信号を増幅する方法が発明された。1835年、ジョゼフ・ヘンリーが電磁リレーを開発。リレーは、受信した信号を増幅して再送信することで、長距離通信を可能にした。例えば、100kmごとにリレーを設置すれば、電流の減衰を防ぎ、信号を遠くまで伝えられた。
初期の電信では低電圧(数V程度)だったが、より高い電圧(数十V~100V)を使うことで信号を強くし、距離を延ばした。ただし、高電圧は電線の絶縁性を高める必要があるため、ゴムやガラスを使った絶縁技術が発展した。
初期の電信では鉄線が多く使われていたが、鉄は抵抗が高いため、導電率の高い銅線が採用されるようになった。銅線の採用により、長距離でも電流の減衰が少なくなり、信号が安定。
長距離の海底電信ケーブルでは、さらに電流の漏れを防ぐ工夫が必要だった。1858年、最初の大西洋横断海底ケーブルが敷設されたが、当初は絶縁技術が未熟で、短期間で故障。1866年、改良された絶縁材(ガタパーチャ樹脂)を使用したケーブルが成功し、長距離通信が可能になった。
1844年 64km(ワシントンD.C. - ボルチモア) 初期の電信
1861年 約3,000km(アメリカ大陸横断電信) リレー技術の発展
1866年 約4,000km(大西洋横断海底ケーブル) 絶縁技術と増幅器の進化
1900年 数万km(グローバル電信網) 高電圧、改良ケーブル、無線通信の併用
電信通信において、距離が長くなると電流が減衰し、信号が弱くなる問題が発生しました。この問題を解決するために開発されたのが 「リレー(中継器)」 です。
リレーは、弱まった電流を利用して新しい電流を作り、信号を増幅して次の区間へ送る装置 です。ここでは、リレーの仕組みを詳しく説明します。
(1) 電磁石
入力側から微弱な電流が流れると、電磁石が作動 する。これにより、リレー内部のスイッチ(接点)がONになる。
電磁石の磁力でスイッチが閉じる(ON)と、新たな強い電流が流れる。つまり、弱い信号をトリガーとして、新しい電流を発生させる。
(3) 新しい電源
「ファーストキス 1ST KISS」という映画が2025年2月7日に公開予定だが、タイムトラベルで過去へ戻るらしいので、またかという感想だった。
タイトル | 公開日 | 内容 |
---|---|---|
君の名は。 | 2016年8月26日 | 違う時間の人と交流する |
ぼくは明日、昨日のきみとデートする | 2016年12月17日 | 時間を逆行する人がいる |
HELLO WORLD | 2019年9月20日 | 違う時間に移動する |
夏へのトンネル、さよならの出口 | 2022年9月9日 | 時間の進みが違う場所がある |
僕が愛したすべての君へ/君を愛したひとりの僕へ | 2022年10月7日 | 同じ時間のパラレルワールドがあり、過去への移動もある |
すずめの戸締まり | 2022年11月11日 | 違う時間の自分と交流する |
かがみの孤城 | 2022年12月23日 | 違う時間の人と交流する |
あの花が咲く丘で、君とまた出会えたら。 | 2023年12月8日 | 違う時間に移動する |
ファーストキス 1ST KISS | 2025年2月7日 | 違う時間に移動する |
タイトル | 公開日 | 内容 | 備考 |
---|---|---|---|
映画 妖怪ウォッチ 誕生の秘密だニャン! | 2014年12月20日 | 違う時間に移動する | 妖怪は何でもアリなので時間を移動する妖怪もいるだろう |
TENET テネット | 2020年8月26日 | 時間を逆行する人がいる | 洋画 |
僕のヒーローアカデミア THE MOVIE ユアネクスト | 2024年8月2日 | 狭い範囲の時間を遅らせる | 異能バトルなので時間を操る異能(個性)もあるだろう |
なんでもかんでもhello worldと表示させるプログラムで入門させようとするのやめろ
こっちはウェブアプリ(クローラー等)をどうすれば自鯖以外で常時稼働させられるか知りたいのに、hello worldと表示できました、じゃその方法で一度実行したら継続して稼働するのか分からないじゃん。
google app engineやxserverでのjavaの実行の記事が軒並みそういう内容だから途方に暮れてる
その後のバグを減らすための儀式でしょ。Hello Worldしといた方が理解不能の災厄にあう確率が減るよ
hello worldとプログラマの生産性には何も関係がない
話題になっている、世界一流エンジニアの思考法という本を読んだ。
その中に「理解に時間をかける」というのがあったのだが、それがどうしても受け入れられない。
これがどのような考え方かというのは、ここに書いてあるので良かったら読んでみてほしい。
https://note.com/simplearchitect/n/n388201603a28
凄く引っかかるのが、
「今までは、実際にコードに触れないとわからないよね?と思っていたけど、そうではなくて、ドキュメントを読んでいて理解できない箇所がでてきたら、時間をかけて理解して進むようにした。」
というところ。
例えばだけどif文についてのドキュメントを1回読んで、
なんとなくこう動くんだろうなということが分かったとしたら、あとは動かしてみたほうが早くない?とか思ってしまう。
それとも、なぜC#のif文は{}で括っているのか、[]ではだめなのか?C#の成り立ちから調べよう!ということを頭の良い人たちはしているのだろうか?
ドキュメントがわからないときどこまで深追いをしていくのが「理解」なのかがわからない。
そして私みたいに頭が悪いと、一度深淵に潜り込んでしまうと二度と浮かび上がってこれないかもしれないという恐怖がある。
Visual Studioでコードを書いているが、そういえばVisual Studioのことを「理解」していないな。と思ったら最後、
Hello Worldを出したいだけなのに永遠にVisual Studioの領域から出ることが出来なくなってしまうのではないかと思ってしまう。
この本を読んで参考になった!理解に時間をかけることを恐れずにしよう!と言ってる人たちはどこまで時間をかけることを想定しているのか?
何なら死ぬまで理解に時間をかけてやろうというぐらい覚悟ガンギマリの人たちなのだろうか。
ほかの部分については言っていることがとてもわかるだけに、
第2回 Larabelチュートリアルを参考にログインするだけのWebアプリケーション(?)を作る
composer create-project laravel/laravel example-app_20240131
続いて、Composerを使用してLaravel Breezeをインストール
composer require laravel/breeze --dev
php artisan breeze:install
いろいろ聞かれる。わからん。とりあえずBlade/Yes/PHPUnitを選択。
すると「・・・・installed successfully.」と表示されたので何かが成功したっぽい。
続いて
php artisan migrate
するとエラー。
Illuminate92;Database92;QueryException SQLSTATE[HY000] [2002] Connection refused
そもそもデータベースの準備を何もしてなかったので、エラーが出るのは当たり前だった。
サンプル用にデータベースを作成し、それに合わせて.envファイルを修正する。
再度、
php artisan migrate
すると「DONE」と表示。成功したっぽい
チュートリアルに従い、「ウェブブラウザでアプリケーションの/loginか/register URLへアクセス」。
すると、Laravelが出してるっぽいエラー
Illuminate 92; Foundation 92; ViteManifestNotFoundException PHP 8.1.27 10.43.0 Vite manifest not found at: /******/example-app_20240131/public/build/manifest.json Run npm run dev in your terminal and refresh the page.
npmとやらが「not found」だったので手順を飛ばしたのがやはりダメだった。
さくらインターネットでnpmを使うにはnode.jsをインストールしてnpmをコンパイルする必要がある?
次回があれば「さくらインターネットのスタンダードプランの環境にnpmをインストールする」である。
早くHello Worldとか書きたい。
その前に先ずは Hello World! にたどり着けるかどうかが先決かと....
ChatGPTに日本語で命令したら秒で作ってくれるのでVBAやGAS書く能力は不要になったんだが。「A1からI9に数独の初期値入れてあるシートの残りのマス埋めるVBAマクロ作って」の一言で数独解くの作ってくれるぞ
ChatGPTが補足している通りロジックは基本しか使っていないので初期値から最終形までに仮定して入れる局面があるものは解けないし非効率ではあるものの初級は解けるし遅いPCでも一瞬で終わる。必要なのは入力の形と欲しい出力を日本語にする能力とHello World実行できるレベルの知識。コード読んでデバッグできる能力があればなおよいがGPTに教えてもらえばいいし、今業務やってる派遣の人に動作確認してもらって不満なところをAIに修正させればよいので業務をよく分かっている社員にやらせたほうが会社としてはいい戦略。
A1からI9に数独の初期値入れてあるシートの残りのマス埋めるVBAマクロ作って
数独を解くためのVBAマクロを作成するのは複雑ですが、以下は一つの例です。このマクロはシートのA1からI9の範囲の数独を解きます。
Function IsPossible(y, x, n, grid) As Boolean Dim i As Integer Dim j As Integer ' 同じ行や列にnが既にあるか確認 For i = 1 To 9 If grid(y, i) = n Or grid(i, x) = n Then IsPossible = False Exit Function End If Next i ' 3x3のボックス内にnが既にあるか確認 Dim x0 As Integer: x0 = ((x - 1) ¥ 3) * 3 Dim y0 As Integer: y0 = ((y - 1) ¥ 3) * 3 For i = 0 To 2 For j = 0 To 2 If grid(y0 + i + 1, x0 + j + 1) = n Then IsPossible = False Exit Function End If Next j Next i IsPossible = True End Function Sub SolveSudoku() Dim grid(1 To 9, 1 To 9) As Integer Dim i As Integer Dim j As Integer ' グリッドをシートから読み込む For i = 1 To 9 For j = 1 To 9 grid(i, j) = Cells(i, j).Value Next j Next i If Solve(grid) Then ' 解をシートに書き出す For i = 1 To 9 For j = 1 To 9 Cells(i, j).Value = grid(i, j) Next j Next i Else MsgBox "解けませんでした" End If End Sub Function Solve(ByRef grid) As Boolean Dim i As Integer Dim j As Integer Dim n As Integer For i = 1 To 9 For j = 1 To 9 If grid(i, j) = 0 Then For n = 1 To 9 If IsPossible(i, j, n, grid) Then grid(i, j) = n If Solve(grid) Then Solve = True Exit Function End If grid(i, j) = 0 End If Next n Solve = False Exit Function End If Next j Next i Solve = True End Function
このコードをVBAのモジュールに追加して、シートに数独の初期値を入力してからSolveSudokuマクロを実行すると、マスを埋めることができます。
ただし、このコードは基本的なバックトラック法を使用しており、非常に複雑な数独には効率的ではない場合があります。より高速な解法や最適化を求める場合は、追加の手法やアプローチが必要です。
https://si-coding.net/sudoku4.html
2 3 5 7 8 3 3 4 5 1 6 6 1 2 4 4 9 8 2 2 5 1 3 9 4 6 1 4 1 2 6
1 6 9 2 3 5 8 4 7 4 5 8 1 6 7 9 3 2 3 2 7 9 8 4 5 1 6 5 3 6 7 1 2 4 9 8 7 1 4 3 9 8 6 2 5 9 8 2 5 4 6 1 7 3 6 9 1 8 2 3 7 5 4 2 4 5 6 7 9 3 8 1 8 7 3 4 5 1 2 6 9
少なくとも今の時点で、hello world を書いても、引用にしかならなんでしょ。
そういえば、いわゆるHello Worldを表示するコードって著作権認められるんだろうか。