Goはじめる

2018-12-14 | 未分類 | コメントはまだありません

まあすぐ放り出すと思うけれども。
Tour of Goの4ページ目で日付をプリントする例が載っていて、じゃあフォーマットするのはどうやんの?というとこでさっそく脱線している。
なんか、4桁の西暦を表現するためのフォーマット文字列は2006だという。
1234でもyyyyでも%Yでもだめで、固定で2006年1月2日15時45分じゃないとだめだと。

答えは単純だ。これはアメリカ式の時刻の順番なのだ。”1月2日午後3時4分5秒2006年”(つまり「自然な順番」で1, 2, 3, 4, 5, 6)を指しているのである。

Goのtimeパッケージのリファレンスタイム(2006年1月2日)は何の日? – Qiita 

なるほどそうか理由はわかった。
ぜんぜんわかんねえ。
本気だったんだろうか、この言語のデザインをやった人。少しはおかしいと思わなかったんだろうか。世界中どこでも日付の表記が一定だとでも?仮にそうだとして、15時を3時と表現してまでやることなんだろうか。
由来知らんけど、ジョークのつもりで書き始めた言語だったりするのかね。
毎日使ってれば麻痺して、そういうもんだよ〜みたいなメンタルになれるんだろう。

ということで、京都伏見の自転車のあんちゃんばりにキモイキモイと連呼して怒りのあまりこのエントリを書いている。こういうとこでカチンときて躓くと、その後の学習曲線に必ず悪い影響が出る。相容れない嫌なものを学ぶ、みたいな姿勢になってしまい、ただでさえ物覚えの悪い脳が記憶の定着を拒む。

なんでgoさわりはじめてるかっつーと、GAEのスタンダード環境でGo動くというので、たかだかjsonしゃべるだけならそれでいいんじゃないっていう程度の理由です。goって言語自体の換金性高そうだし。
なんかHaskellで仕事するのは(あたしのスペック的に)現実味薄いし、Elixirはまだまだ理解に掛かりそう。Nimはあんなに書いてる感じがイイのにRustのほうが妙に人気があり、そのRustはもうなんだがぞっとする記法だらけで近寄りたくないしみたいな。いまんとこPython書いてるのが一番しっくりきてはいる。

おねーさんブログのSSL化

2018-12-14 | AboutThisSite | コメントはまだありません

当ブログはさくらインターネットのレンタルサーバを借りている。レンタルサーバのサービスとしてはいろいろ言いたいとこもあったが、メールとWordPressくらいならもはやなんの不満もない。自分でアレコレつくって載せてるときは制約が多かったけれど、今は自分で環境作れるようになったから。進歩だなあ。

んでブログのSSL化を知らんぷりしてたんだけれども、ついに一念発起してトライ。ぱっとみできてると思うんだけど、保護されていない通信がどうたらって出るかも。http→httpsの転送設定をした(そういうプラグインがあった)んだけど、そいつがちゃんと動いてんのか疑わしい。

ゆくゆくは真面目に設定を見るので、ちょっと、あれって思ったらhttpsのurlに改めて飛んだりしてみてほしいです。ご不便かけますねえ。

目に見える更新を挟む

2018-12-13 | Cloud Functions, Final Fantasy XIV, Firebase, Firestore, Flask, GAE, GCP, halipe.co | コメントはまだありません

裏側のバッチ直してますとか、更新情報をシート管理にしましたとか、いわゆる運用タスク的な課題ばっかりをここ何日かはやっていた。すぐ先の未来の自分を助ける重要な必要な改修なのだが、ユーザの目にはなにも変化が見えない。
もっともそんな事を気にするほどの訪問数じゃないので別にいいのかもしれないのだが、しょぼい訪問数のうちから健全なイテレーションを回すのを習慣づけたいなという気持ちがある。

ぱっとみわかりやすいのは、地図の操作を直したとか、地図の画像増やしたとかそういうのだ。
一方でわかりにくいのがここ数日やってたような、裏方作業。
それぞれをいい塩梅に交互にやっていくようにしていくと、ユーザの側からは更新され続けていることがわかり、裏側に積み上がる課題も一定のペースで処理していける。

とはいえ動かす手は二本、頭は鈍いやつ一個でしかないので、Nozbeに積み上げていくタスクがなかなか減ってくれない。
チケットはいまのところ50件前後を行ったり来たりしている。Kubernetesやらの関連チケットを別のとこに分けてこの件数。
なかには大きな玉(作業量の大きなチケット)もあって、いきなり抱えるとしんどくなって潰れるので、小分けにして乗り越える必要がある。チケット増えちゃう。
改善タスク的な今やる必要のないものもあるけれども、それでもできたら20件くらいにしておきたい。
やることだらけだよ―という気持ちがだんだんオリになって心に沈殿していくのはあんまりよいことでない。

地図つなげる作業はひとことで言うとダルいのだが、頭を使わないで黙々とやれる。考え事の合間に消化するような進め方がいいかもしれない。こないだの週末みたいに地図60枚とかいう馬鹿げた作業をするから疲れるんだ。

ニームの書で使った道具

2018-12-12 | Final Fantasy XIV, Flask, halipe.co, JavaScript, Python, Responder | コメントはまだありません

そのうち使ってるツールを差し替えたりもするだろうから、いったん今のとこの技術スタック(っていうの?)をメモしておく。
基本的にはPython(Flask)以外はほぼぜんぶ初めて使うもので占められている。ふつうは知らないことを追加するのは+1にしなさいっていうんだけど、完全に無視した。のたうち回ったし、のたうち回っている。

ニームの書(halipe.co)

Backend

スクリプトはすべてPython。Flaskつかってて、Responderにリプレイスできるか試している。最初はElixirいくか!!とか息巻いてたが、API作るくらいのことで死にそうなのでやめた。
いまはGAEのFlexible環境にDockerコンテナ投げてAPIサーバが立ち上がっていて、ほかにはCloud Functionsで関数(これもPython)がいくつか。

そもそもはKubernetesに習熟したいという野望があってしこしこyaml書いてた。超楽しい。が、SSL証明書の取得と設定らへんで盛大にすっ転んだうえ、誤ったコンフィグを投げてはLet’s encryptにロックされて作業が止まるため、急遽GAEに逃げ込んだという次第。証明書やらドメインまわりやらが便利すぎてヨダレ出た。一方でデプロイ10分以上かかるのはちょっと辛い。
なんかStandard環境でもPython3使えるみたいなのを見かけたのでそっちに移す予定。jsonやyaml読んでjson吐くくらいしかしてないしょぼいAPIの為に毎月5000円払っている。しょぼいわ。
むろんそんだけの機能を、Kubernetesでクラスタあげようとしてたわけです。立ち上がってたら5000円どこじゃ済まないが、それはいいんだ。インフラ屋でもない人がこういうのの構築やるにはホビーくらいしかチャンスがない。
コマンド一個でPodが増えたり減ったりするのは、なんとも言えない愉しみがあった。あのPodやらService、むかしは物理サーバ一個一個でやってたんだぜまじかよってかんじ。

CI

リポジトリはBitbucket使っているので、マスタへのマージの際にBitbucket Pipelinesを起こし、Slackに通知するようにだけしている。
Python側だけテストが少し書いてあって、フックでテスト通すとこまでできた。これももちろん初めてだったので、動いたときはそれはもう大変に嬉しくて、ムダにPushした(程なく無料ビルド時間を使い切り動かなくなった)。
JS側がテスト書くまで至っておらず、まだ完成してない。Jestというのを見つけたので使ってみようと思っている。

DB

DBはCloud Firestoreをつかっている。ゼロの状態からNoSQLのDBつくんの初めてだった。リレーションとかあんま気にしないでいい単純なアプリなので、あんまり深い困りごとには遭遇してない。タグ検索とかの実装用にインデックスのテーブルこさえたりしたけど、テーブルそのものに張ってるindexつかうのとどっちがいいんだろうみたいな感じ。活用してる感はない。
更新情報とかはSpreadSheetに書き付けていて、反映用のスクリプト叩くとFirestoreにデータを放るという運用をやっている。一番最初はvueファイルにまるまる書き込んでたので、更新情報のっける程度の用事でデプロイが発生していた。

Frontend

TypeScript + Nuxt.js。どっちも使ったことないので採用。ホビーとはいえ無茶な挑戦だった。困ったときにTypeScript/Vue.js/Nuxt.jsいづれの問題なのかの切り分けすらできないような三下が、まるっきり全部わかんない状態で挑んだ。
作業の大半は調べ物の時間で、文字通りヨレヨレになっていた。
いっぽう尋常でない学びはあった。イベントハンドラって何?みたいな基礎部分への理解も危ういくらいの人だったんだが、なんとかなりつつある(まだ危うい)。
CSSまわりはBulmaを入れた。じつはCSSフレームワークの導入からやったのも初めて。
ほんと今まで何やって食ってたんですかねという感じなんだが、すでに動いてるプロジェクトに参加することが多いと下地はあらかた出来上がっていたりで、構築にはあんまり関与しないで済んじゃってたという背景がある。

ほか

手元でバッチやらを書く下地はJupyterNotebookを使うことがある。ド頭から動かさずに気になるとこだけ叩けるというのがことのほか便利で感動している。
表の操作はPandasとか使ってるけど、必要でというよりは使う理由になるので入れてるといった感じ。慣れておきたい。

地図をはじめ、さまざまな画像は基本的にFireworksでやっている。今となっては太古のアプリなんだろうか。あたしの用途ではこいつを超えるアプリケーションが地上にない。Vectorスイスイ書いてビットマップを切り取る切り抜くとかを、こやつだけが軽快にやってくれる。問題は古いのででかい画像に超弱い。もともとメモリの危ういソフトなんだがすぐ吹っ飛びそうになるのでおそるおそるやっている。横1900のPNGを9枚も食わすともう挙動不審になる。

ロゴのVectorを作るとかはIllustlatorをつかっている。これも昔々のやつだけど、あたしは線が書けてaiが書き出せたらいいので、それ以外のことでは全く用途がない(せいぜいトレースくらい)ので、たぶんもうこの先新しいIllustlatorを買う機会もあるまい。いまはそっち側で食べてるわけでもないし。
あ、名刺作るときは活躍してるんだった。赤作るときはYMを100にするだけじゃなくて黒10%入れろとか、ああいう細かい話がたまーに活きることがある。
オンデマンド機だと関係ないけれども。

紙箱の迷路の話

2018-12-10 | halipe.co, 考え事 | コメントはまだありません

小学校の一時期、ボール紙とビー玉かなんかでつくる、箱を傾けて玉を転がす迷路を作るというのが(個人的に)流行っていた。
様々な角度のコーナーやカーブにジェットコースターのループ。パチンコ台の羽みたいにくるくる回るやつとか、箱を下から小突いてジャンプさせないと超えられない障害物など、大抵は誰かの思いつきを直輸入してたと思うけれども、そんなんを駆使しては新作迷路の開発に勤しんでいた。
ティッシュやらお菓子の外箱と少しの針金、木工用ボンドがあたしの遊び道具だった。

学校の図画工作の授業でそんなのをやったのね。
あたしは学校で習った何かが気に入ると家でも延々やり続けるような子供で、お面の作り方を習えばお面を作り続けていたし(ロビンマスクのヘルメットはかなり気に入っていた)、木製のナイフを作るのも延々やっていた。あのまま進んだらそういう職業の人になっていたのかもしれない。
お面の職人なんてなかなかかっこよい進路だったんじゃないか。

この性向が趣味のプログラムに反映されているんじゃないかなという気はしている。なんか学ぶ、出来た喜びでモチベーション上がっちゃってそこのイテレーションだけガンガン回す、みたいなの。

なんでこんな話を急に思い出したのかというと、ロケハンちゃんとかでやってることがまるっきり同じ構造なんじゃないのとふと思ったわけです。学校ではなく職場や、行き帰りの電車で見た記事なんかが導入になることだけが違いで、いそいそとあれこれ試しておもちゃを作っているのがあの頃と何ら変わらない自分の姿なんではないか。

作った迷路にしろ、お面にしろ、それで遊ぶのはあたしひとりだったし、あたしの(どのくらいいたかは覚えてないがごくわずかの)友だち誰一人としてあたしの迷路やお面を見たことのある人はいない(と思う。見せた記憶がない)。人に見てもらうという発想が欠落してたので、作ってはひとりで遊んで、次を作ってというのをただやっていた。
いま作っている場所はWebの上だから誰かが見に来ることもあろうし、使ってくれたら嬉しいなというのはある。あるんだが、なんかどっかで、作った迷路で遊んでたように、あたしがただ楽しいから作ってるだけなのかもなーと。