量子コンピューティングを齧る Qiskit(Git編)
Qiskitを齧りはじめて半月以上が経つ。
まだ記事にはしていないけどなんとか動かせるところまでは行っている。
なので毎日のようにJupyter NotebookでPythonを使いながら回路図やらブロッホ球やらを描かせている。
描くのはQuantum Tokyoの動画の真似だ。
真似だけでも覚えられないけど理屈だけでも頭に入らない。
その点でハンズオンにしてくれたのは感謝に堪えない。
もういっそIBMに入社しちゃおうかと思うぐらい感謝している(上から行くタイプです)。
そのあたりに関しては前回せっせと書いた。
書きすぎて要点がわからない文章になってるかもしれない。
なので最初からYouTubeを観ることをオススメする。
ファイルの管理ができません
さてハンズオンを観ながらJupyter Notebookをダウンロードしたりそれを編集したりしている間に自分が何をやってるのかがわからなくなってきた。
その場限りでファイルの名前を決めてるからだ。一応、その日のルールは作るんだけど翌日になるとそのルールを忘れている。
そこに仮想環境やらPythonのバージョンやらこれも後日書く(のか?)VS Codeやらが絡まってもはや収集がつかない。
こういう時、きっとIT系の職場でチームを組んで実装してる人はどうしてるんだろう?
ウォーターフォールなら厳格なガイドラインがありそうだ。「レビューするまでは絶対このフォルダには入れるな!」とか。そして絶対入れるやつがいる。
アジャイルなんて狂気の沙汰としか思えない。キムタクみたいなイケメンが「ちょ、待てよ」と言っても作業してるファイルを横からいじられそうな気がする。「やっちゃえ新人さん」とかで最終的にホンダか鴻海に飲み込まれる(時事ネタをぶっこんでみました)。
こんなことを書いてるのも自分自身が仕事で実装をしたことがないからだ。
一応IT系の会社にいた技術系なんだけどどっちかっていうと営業系に近いところでプレゼン系とかやってた系だ。
ファイルなんてMicrosoftのOffice関連(もう「系」は飽きた)ばかりだった。オフラインからはじまって(メディアで渡すやつ)メールになって共有サーバとかできてクラウドが来て辞める直前はTeamsだったと思う。OneNoteが何ノートもできていた。いいSIerだった…
だからプロのやり口はわからない。
ただGitというのがあることは知っていた。
もっというと応用情報技術者試験を受けたぐらいでブランチとかマージとかコミットとか言葉だけは知っていた。個人的に使ったことも無いわけじゃない。
それを久しぶりに引きずり出すことにした。
引きずり出す間にさっきまでやってたことを忘れるのでたいへんだった。
Gitに入門する
「Gitとは」みたいな話はしない。というか、できない。闇雲に使っている。
1人で1台のパソコンを使いながら勉強してる限りではどれぐらい有用性があるかもわからない。
たださっきも書いた通り(どこで書いたかを忘れかけている)自分のしでかした罪を懺悔すれば記録しておいてくれる。「罪」は変更履歴とバージョンで「懺悔」は"add"と"commit"というコマンドです…
とっかかるに当たっては雑誌の付録を参考にした。
半年ぐらい前までは「今時、紙の本なんて」と思っていたんだけど、本だと自分がどのあたりのことをやったのか追えるってメリットがある。
それとネット情報は前置きが長かったり、できたとこだけちゃちゃっと書いてあったり、逆にしくじった話が延々と続いた挙げ句にできてなかったり、「弊社にお任せあれ」で終わってたりと探るのが面倒だ。
それを読んでる気の長さを持ち合わせていない。
Gitを入れる
まずはインストールだけどこれはGitの公式サイトからギッてきてしてカチカチやるだけだ。
ほんとはギらなくてもちゃんと無料で使える。
「ギる」(盗む、万引きする)ってどこの方言なんだろう?なんか指を曲げるサインが頭に浮かぶ。
ちなみに普通にインストールするとコンソールでコマンドを打ち込むCUI版が入る。
個人的にはそこからやり始めたほうがわかり易いんじゃないかなと思っている(2024-12-20現在)。
まだよくわかってない上で言えば個人的に使うのは"add"、"commit"と"pull"、"push"ぐらいじゃないかって気がしている("merge"とかやるかな?)。
コマンドだとその順番を覚えられる。と思う。
ちなみにGUI版もある。
Gitの公式からもリンクが張られている。
昔ちょっとだけ使ってた時はネットの情報を頼りに「TortoiseGit」というやつを入れていた(作業していて思い出した)。
キャラクターが怪しい色のカメで怪しい感じがするけど怪しくないと思う。
もはや「思う」と「気がする」しか出てこない。
Gitの状態にする
さあこれで思い残すことはない。
というわけにはいかない。
Gitを使い始めるには最初にやるお作法がある。
と言っても大した話じゃない。
"init"というコマンドを使うとそのコマンドを打ち込んだディレクトリ(フォルダ)のバージョン管理をしてくれる「準備」ができる。
まだ準備だけ。カメで言えば先っちょだけ(言うな)。
これをやってもまだ何も記録してくれない。
git init
自分がいるディレクトリはWindowsならカーソルがチカチカしてる左の">"のさらに左側にだーっと書いてある。”\”は¥マークと同じ。
どうしても確認しないと気が済まないというなら"pwd"というコマンドを打てば教えてくれる。
ちなみにMacだと"/"だった。藤原竜也が「なんでだよっ」と叫ぶシチュエーションだ。何度もリハをやる。
ちゃんとできるとこんなメッセージが表示される。
エクスプローラー(アプリ名なので長音記号を付けた)でみると"init"をやったフォルダに緑のチェックマークが付いている。
Initialized empty Git repository in C:/Users/[イニシャライズした今いるディレクトリ]
Gitに覚えてもらう
Gitの準備ができたらそのディレクトリ(フォルダ)の中にファイルを作ったりする。別に特別な話じゃなくて普段パソコンを使ってるのと同じ要領でファイルを作るだけ。
それをGitに覚えてもらう必要がある。
なんで?保存してるんだからいいじゃん。
そう。
一人で1つのパソコン使ってるだけだったらあんまり使い道が無い。気がする。なんならOnDriveあたりが勝手にセーブしてくれて「あ、やっちまった…」って時には巻き戻しもできたりするから。
ただ、何台もパソコン使ってあちらこちらを食い散らかすような浮気者には持ってこいのツールがある。GitHubって言うんですけどね。知ってました?
GitHubはまたいつか書くことにして、とりあえずGit。
何をしでかしたか覚えてもらうのは"add"コマンドを使う。
ファイルを保存したディレクトリで"add"ならファイル名を入れるだけでいい。
git add [ファイル名]
ファイルを相対パスやフルパスで書いても良し、なんならフルパスにダブルコーテーションが付いてても良し。
このあたりのポリシーはよくわからない。
ただ、これをやるとファイルに緑のチェックマークや赤いびっくりマークが付く。
Gitの気持ちがわからない
でもって、もっとよくわからないのがGitってそれをどうやって覚えてるのかって話だと思う。
実は隠している。
同じディレクトリ(フォルダ)の中に「.git」って名前の隠しフォルダが作られている。
Windows11の場合だとエクスプローラーの表示オプションで「隠しファイル」を包み隠さず申し渡すように言うとスラっと吐く。
その中に設定ファイルが入っているらしい。
試しにそのフォルダ(.git)を削除すると今まで付いていたチェックマークやびっくりマークが消える。
これは会社でやらないほうがいい。
今までの履歴が全部消えて職場でぶち怒られる。
結果にコミットする
さ、ようやくこのフレーズが登場しました(この動画では言わない)。
"add"したファイルを変更すると最初は緑のチェックマークで見逃してくれてたのにいきなり赤いびっくらマークになる。
こそっとやってもバレる。
なんせフォルダごと赤のびっくりマークに変わるから。
「こいつ、やりやがりましたよ!」ってぐらいすぐ表示してチクる。
ちょっと誤字を直しただけなのになんて言い訳は聞きたくない。
とも限らない。
"commit"すればいい。
git add [変更したファイル]
git commit -m "何を変更したかのちょっとしたメモ"
まず"add"する。
進捗会議と一緒で「うちからは以上です」と付け加えないでだまっていると議事録に残してくれない。
"add"で記録を残してもらう(たぶん隠しフォルダのどこかに)。
それを"commit"すると初めて正式な履歴として残される。
"commit"をする時には半角スペースのあとに"-m"を付けてさらに半角スペースの後ろにダブルコーテーションで囲んだメモを付ける。何をやらかしたかわかりやすくしておく。
これは"-m"を使わなくてもいいけどそうすると「メモをどうぞ!」と言わんばかりにドーンと何かのエディタが動いて書かされる。
なので自分は"-m"で済ますようにしている。
これでGitに履歴が残って後からでもなんとかなる。
それとGitHubを使い始めるとそことのやり取りがしやすくなる。んだと思う。自信がない。
何がどうなってる!
進捗会議に出ててOK出したくせに…でも、そう言われると自分でも思い出せない。
そんなあなたにGitの状態だとか今まで"commit"に付けたメモ(コメント)を見る機能をこっそりと。
git status
まさに状態を教えてくれるのがコレ。
"status"を付けることでなんで赤いびっくりマークになってるのか表示してくれる。英語で。
git log
メモ(コメント)が見られる。ファイルが多くなると鬱陶しいので後ろに"--oneline"("online"じゃないよ。"one"だよ)を付けると1行ずつで表示してくれる。
あと"--graph"ってのを付けると依存関係をキャラクタベースのグラフという無茶な仕様で見せてくれる。ただ、これを使いこなせていない。
とまあGitの初歩の初歩のところをあれこれやったので記録しておいた。
これで途中で書いたGUIツール「TortoiseGit」だとかそれこそIDE「VS Code」とかを使えばクリックだけで終わるけど、こんなことをさらっとやってんだぐらいに知っておくのはいいことじゃないかと思ってる。