泡沫記

備忘録あるいは自分の背骨

日々の棚卸し20190217

さあ自分でアプリ作成だと意気込んだはいいものの。やはり詰まったのでもう一度復習を兼ねて A Complete Beginner's Guide to Django を勉強中。Part7中現在Part4まで来た。コピペでサクサク進むことはできるが理解は浅い。一番アタマにすんなりと入るのは鉛筆での写経というのはアナログ人間だからか。ひとつひとつ書くことでこれはどうなんだ、なぜこうなっているんだと疑問が湧いてくる。公式Tutorialでは学べなかったことが色々出てくるから色んな人のcodeを書いたり読んだりすることが大切なんだと思う。アプリの設計方法、テストを繰り返しながらの開発方法、フォームの使い方、ユーザー登録の方法など、自分に足りないことがわんさか出てくる。こうやって経験値を積むしかない。だいたいのことはわかったと天狗になったり、やっぱりできなくて自信喪失したりと毎日気分のアップダウンが激しいけれど、なかなか充実した日々でこうして勉強することは楽しい。2月中のアプリ作成は難しそうだ。2月末までにこのA Complete Beginner's Guide to Django を修得することに専念する。

勉強用ノートが1冊終了。不惑をとうに過ぎてようやく勉強方法というものがわかってきたし、自分なりのノートの書き方も定まってきた。今さらだが。それでも自分のスタイルができてきたのはいいことだと思う。

SSDを2個のパーティションに分けて片方作業用、もう片方は緊急用に使っていたのだけれど。アップデートをしたらいきなり作業用が消えて立ち上がらなくなる。何度か再起動してもとに戻ったものの、実験でいろんなソフトやデスクトップ環境をインストール・アンインストール繰り返していたのでその所為なのか。以前もWindowsLinux併用していてダメにしたことあったし、パーティション分けると苦い思い出しかない。なのでいっそのことともう一度真っさらにして1パーティションUbuntuをインストールし直した。最低限の開発環境だけ整えて、あとは極力汚さないようにする。ただ新しもの好きの血が騒ぐから、KVMで仮想環境作ってそこに色んなOSをインストールして遊ぶことにした。懸念事項だったネットにつなげる設定もデフォルトであっさり繋がった。アレ?ブリッジ接続じゃないと繋がらないんじゃなかったのか。おそらくNAT接続でゲストのみネットにつながってて、ホスト-ゲスト間での通信ができないんだろうと思われるが試してない。遊び場ができたのが嬉しくて調子に乗って、Windows7CentOS、Cinnamon、Manjaro、KaliLinux、などインストールしまくった。空いた時間でCentOSでサーバー立ち上げて見ようかと計画中。

Webアプリ作成中 (1)

Django を使って Web アプリを作成中。これもまたわずかな1歩ながら大きな1歩だ。というのも今までチュートリアルの写経だったり、若干のカスタマイズだったり、やっている意味もイマイチわかっていなかったが、今回は完璧に意味がわかって作っているという手応えアリ。わかっていないところをなぁなぁにせず、code の1単語1単語を公式ドキュメントとにらめっこして理解して実行しているから。まだ ”Hello World" レベルだけどね。今の理解は以下の通り。

  • path
  • include
  • URL dispather
  • URL reversing

鋭意勉強中。嬉しかったのでメモしておく。自分のできる範囲で簡単なアプリを作ろう。できたら2月中に。

Django tutorial も Djangogirls も 修了

公式チュートリアルが1月中に終わるといいなぁとダラダラ続けていたらいつの間にか終わっていたよ。厳密な期限設定をしていたわけではないけど期限内に終わったのは嬉しい。公式チュートリアルは(4)までが山場で、あとは惰性で流していくって感じ。このcodeの意味は??というのをそこまでこだわらずにいくとすぐ終わる。本当はこだわるべきなのかもしれないが、コードを読んで8割理解できるレベルにはスキルアップした、と思いたい。問題は読めても書けないというやつ。これは追々修行してできるようにするつもり。

あまりにもあっさりチュートリアルが修了して物足りなかったので、Djangogirlsもやってみようと思いたち、ちまちまやってたらこちらもあっさり3日で修了。去年の6月あれだけハマって詰まって挫折したのに…。あの苦労はいったい何だったのか。これもまた成長なのか。いろんなこと少しずつ囓っていって、回り回ってここまで来て、それがこの成果につながったか。

家や他の場所からひとつのコードを弄るということをしたので、開発ってこんな感じなのかというのも体験、同じ環境にするためにDockerにも少し手を出し(ただインストールしただけで使わなかった)、結局Gitを使えばいいのかとわかり、cloneしたりpullしたりpushしたりと経験値も上がった。Gitを恐る恐る触る段階から単なる道具だとわかった段階へ。初branch、初conflict、初merge も経験。

インプットはある程度できたので次はアウトプットできるようになれれば。出来合いのモノをカスタマイズして学びつつ、その知識を使って0からフルスクラッチできたら、成長したと実感できるか。

思い出すことは自分の再生産に他ならない

20代に映画を見まくってマイ映画ベスト10をつくって悦に入ってた時期があったけれど、年食って映画を観るスタミナが衰え、今ではほとんど観なくなってしまった。もう何年も前からマイベスト10は更新されておらず。今日愕然としたのはあれだけ好きだった映画が思い出せなくなっているという事実。自分は何を好きだったのか、それすら記憶から薄れつつある。本当に若年性アルツハイマーじゃなかろうかと不安になるが、思い出したりとか人に話したりとかあまりしないせいだと自分に言い聞かせている。好きなものは好きだと口にしないと、しかも言い続けないとそれすら消えてしまうのだとぞっとした。あまりにも自分が立っている場所が脆く不安定なのだと知って。

自分が好きだったモノは自分を形作る背骨みたいなもので、それが消えゆくのは何だか自分がなくなっていくようで心細い。だから「あぁオレってこういう人間だったな」と改めて記録を残していきたいと思う。自分が生きていた証を残したい、わけではない。そんなアリバイを残したいという欲求は薄い。でも書き残しとこうという欲が湧いたのは、何だろう、今を楽しみたいのだ。自分が立っている場所をハッキリさせて、ちゃんと足で立って、これから経験することを楽しみたい、からか?

書き連ねていけばどんどん思い出していくこともあるだろう。思い出したことは前とは違っているのかもしれない。人間は勝手なもので過去を自分が都合の良いように改ざんするらしい。なんでそんなことをするのか、つらつら考えるに、過去は今の自分に繋がっていて、今の自分を何とかしたいから過去も変えていくんだろう。そう思うと過去の改ざんもそう悪いものでもない気がしてくる。恥多い後悔だらけの自分の生きてきた道程がちょっとだけマシに見えるから。自分をつくりなおす、思い出すってそんな感じだ。

誰に書くわけでもない、誰かに読んで欲しいわけでもないけれど、暇つぶしに読んでもらって自分が好きなものを誰かに好きになってもらえたら、嬉しいなと思う。

Ubuntu 18.04 : Gnome の壁紙の設定を変える

意外なところで悩まされた。自分のお気に入りの壁紙を設定してもZoomで拡大されて画面いっぱいにしか表示されない。こちらの望みは全体をそのままスクリーンに映してくれればいいだけなのに。他のDesktop環境ならすぐできたことが、Default の Gnome でできないことに納得いかず。どこで設定すればいいのかここ2〜3日ググるものの、知りたい情報が出てなくてモヤモヤしていた。皆同じ問題で悩んでないのか?あ、そうか日本語で出てこないなら英語で探せばいいじゃない?

askubuntu.com

一発で出てくる。tweak という機能拡張を入れれば設定が出てくるらしい。

$ sudo apt install gnome-tweak-tool

tweaks をインストールした後にアクティビティでtweaksを起動、外観を選択すればこの画面になる。

f:id:soh506:20181228080453p:plain

背景の調整でお好みの設定を選択すればいい。ああやっとスッキリした。

小さな一歩だが大きな一歩

DjangoというPythonのwebフレームワークをチュートリアルで勉強中。Webアプリを作りたいな、Pythonが使えるようになりたいなと2つの欲望を同時にかなえられそうなのが Django だった。本家のチュートリアルは(7)まであり、現在(4)まで修了、最後までざっと眺めて、山場を超えた?っぽいので現在復習中。が、単にチュートリアルの指示通りにやっているだけだと何の手応えもないし、これができるようになったという自信もない。ただ入力し動きを確かめているだけ。これではいかん、復習が必要だともう一度やり直している。

復習その1 写経する

パソコンでポチポチ入力するのもいいが、昭和生まれの私はアナログのノートが一番しっくりくるようで、ノートに書き写す。今までわからなかったこともあらためて書くとなぜか納得しやすい。特に一覧性に優れているのがいい。パソコンだとエディタのタブをあちこち移動して確かめなければいけないが、ノートだと見開きですべてのコードを見ることができるので、関係性がつかみやすいのだ。

復習その2 変数名を変えてみる

チュートリアルを単にそのまま写すだけだと自分がどこをいじくっていいのかわからない。自分で勝手に命名していい変数なのか、もうすでに定義されている変数で名前を変えてはいけないのかはっきりしないので、適当に名前を変えてコードを実行、結果を確かめている。ここはいじっていい、あそこはだめと徐々に理解が深まる。これをやって Django の views.py と urls.py のつながりがようやくつかめた。ついでに関数の使い方もおぼろげながら見えてきた。

復習その3 アウトプットする

どんな形でもいい、自分の言葉にしてアウトプットすること。他人から見れば大したことないことでも、やってる本人からすれば大切なことだったりする。それを記録することで自分の血肉になる。年を取ると本当に物忘れが激しく、以前はできたこともすぐに忘れてしまってできなくなるから、記録することが必要なのだ。以前、悟りのごとく「なるほど!そういうことか!」と色々知識がつながったことがあったけれど、記録してなかったせいで何がわかったのかすらわからなくなってしまった。阿呆である。未来の自分は見知らぬ他人で、その他人に向けて親切丁寧に教えるように記しておくこと。

いろいろ弄って「お!わかるぞ!」という手応えがあった。自分の仮説どおりに動いたときは嬉しかった。自分にもできると確信を持てた。これならなんとかやってけそうだ。やってみたいことからするとほんのわずかで小さい1歩なのだけど、目的地に到達するには絶対に必要な1歩。これを繰り返していくことでいつの日かそこへたどり着けるはず。亀の如き歩みでも歩き続けようと思う。

魔術師になりたい

ドラクエファイナルファンタジーなどのRPG、漫画で言えばBASTARD!!でおなじみのこんな場面。魔術師が何やら詠唱して大魔法ぶっ放すってやつ。Linuxのコマンドを使い始めると自分がその魔術師にでもなったかのような、そんな気分になる。コマンドを打ち込む。命令が実行されてドドーンと結果が出てくる。とんでもない技術を持ったプログラマーたちはWizardと呼ばれることもあるらしいが、さもありなん。

Linuxと戯れて面白いなぁと思うのは、ハードウェアの制御やソフトウェアの挙動も区別なく平等に、単なるテキスト(文字列)でできるってことだ。紙(?)に書いたものがホンモノになる。子どものとき紙に絵を描いて「これは宇宙船!」「ビームだー!ドカーン!」と夢中になったりしたけれど、基本アレと同じ感覚。書いたモノ(設定やプログラム)が本当に動くんだから、これは魔術だと言ってもいいだろう。それなりの作法を覚える必要があるけれど。それは呪文を詠唱し魔法陣を空中に描き魔法ぶっ放すための修行なのである。

で、その魔術言語として今回選んだのがPython。今までも囓ったことはあったが本腰を入れて勉強しようと思う。プログラミングができるようになりたいと思ったはもう10年前だ。iPhoneが日本で発売されて自分でもアプリをつくりたいなぁと。あれ?時間は進むが私はちっとも進んでいない。人生って怖い。10年も何の成果もなく無為に過ごしてしまうとは。

アレやコレやと手を出し入り口をウロウロするものの難しくなったらそのまま放置、いつの間にか離れて記憶は忘れてまた知識ゼロからの積み上げ。それを何度となく繰り返してきた。失敗の経験値だけは上がったので、この失敗は以前もやったなとか、こんな感じでこのトラブルはクリアできるはず、とあんまりあわてなくなりそれなりに対処できるようになったが。

どんな失敗をやってきたかと言えば。Linuxをインストールしては弄って壊し起動しなくなったり(おかげでパソコンの起動の仕組みに少しだけ詳しくなった)、Androidスマホのroot化を試みて失敗し文鎮化してしまったり(おかげで1ヶ月スマホなしの生活を過ごし、スマホを復活させるために少しだけAndroidの仕組みに詳しくなった、が、その貴重な経験と知識をすでに忘れてしまっている)、スマホのバッテリを交換しようとして電源スイッチのコードを切ってしまったり(中国から部品が届くまで1週間スマホなし、以下同文)などである。変に手を出して痛い目を見るというのが大体のパターンで、ググって対処しようにも、載っかっている対処法は自分の場合当てはまらないケースだったりするのはお約束。…プログラミングの前にハードを壊しているな。

もちろん言語にも手を出した。C言語、Swift、HTML、CSSJavaScriptPython…こうしてみると立派だがすべて入り口である。ひと通り本を読み通したり、ネットの講座を視聴し終わったりしたこともある、が、その先が続かない。何をどうしていいのやらわからない。自分のつくりたいものと学んだ知識がつながらない。そのうちに知識が消え去っていく。う〜ん、これはなぜなんだろう。つくりたいもののビジョンが明確でないのか、プログラミングの才能がないのか、単に勉強が足りないのか。ともあれ、やろう。思いだけは10年も続いたのだ。