#えむけーろぐ

間違った事を書いていたらやさしく教えてください

golangでAPIサーバ書いてた

先週、8月13日(日)に東京に来て、14日(月)から17日(木)まで、Liaroのお手伝いさんとしてgolangで社内向けツールのAPIサーバを書いていた。もっと早く記事書こうと思ってたけど、土日のオープンキャンパスやらなんやらで忙しかったので今投下しておく。

f:id:mktakuyax:20170817122807j:plain

Liaroは、苫小牧高専の4個上の先輩(ぼくが1年生のときの5年生)であるhanaken_nが作った会社で、まぁだいたい機械学習やらDeep Learningやらをやっている渋谷のミクシィがない側にあるスタートアップだ。

Liaro

やっている事的にはPython一択なのだけど、会社としてPython以外の選択肢もほしかったらしく、「ちょっとgolang試してみたいから社内ツール4日くらいで作ってよ」と言われた。

僕自身も、なんか作るってなったらとりあえずRubyで書くけど、Ruby以外の選択肢は持っておきたいなと思ってgolang入門だけして放置していたところだったので、実際に動くモノを仕事として作る機会が降ってきてさらに小遣い稼ぎにもなってラッキーという感じ。

Webアプリケーションフレームワークとしては、gin-gonic/ginを採用した。net/httpとその他細々したライブラリで頑張る人も多かったけど、某golangやってる知り合いに「WAF何使ってるの」と聞いたところ「ginかecho」と言われたので、なんとなくginにしてみた。書いてみた感想は、Sinatra書いてるときの気持ちと近いなというところか。

ORMは、jinzhu/gormを使った。理由はなんだったかな……忘れたけど、たぶんgolangちゃんとやってなかったときからなんとなく名前は聞いていたからだと思う。そもそもgolangの構造体とORMって相性悪いのではという話を小耳に挟んでいたのだけど、実際そうなのかもと思いつつ……。とはいえ僕はActive Recordしか知らないだけだろと言われればそうな気もする。

golang自体を書いていた感想としては、まぁ、「型つらい」が一番だ。ずっとRuby書いてたんだからそりゃそうだという感じだろう。いつか、型に感謝する日が来るのだろうか。

完成したコードは恐ろしいクソコードになった。マトモにモノ作るの初めてな言語で、しかも期間が4日間しかないんだから仕方ないでしょうという言い訳は一応しておく。4日ぶっつづけて書いた結果、「ここはもっとDRYにできるな」とか、「エラーハンドリングもっとこうすりゃいいじゃん」というところが見えてきたので、これからリファクタリングする。(と思う)

 

今回得た学びというか体験としては、「自分の中でgolangという選択肢が増えた」ということもあるが、それ以上に「golangで一本アプリ作ったぞ」という自信を得たということだ。今回Liaroのお手伝いをしにいくにあたって一番心配だったのが、「僕がgolang書いてて躓いたときに助けを求められる人が社内にいない」ということだった。

ぼくがはじめてLOUPEでRubyを触ってWebアプリケーションを書きはじめたときは、メンター的な頼れる存在がいたし、その他のインターン・バイト先でもメンター的存在がずっといて、そういう存在無しでやっていけるようになったのは僕の中である程度Ruby/Railsかけるぞという自信を持てるようになってからだ。

今回はそうではなくて、マトモにモノを作ったことのない言語で、はじめて触るフレームワーク、そしてすぐ近くに頼れる存在がいないという状況で、クソコードとはいえ一本アプリを作ったということが、自分の中での精神的なブレイクスルーとなったような気がする。

今後もたぶんなんか作るってなったらRuby使うと思うけど、golangという選択肢があるということ、そして新しい言語でいきなりなんかやるということも不可能ではないということを胸に、明日からは某インターンRubyを書きます。

mktakuya先生の次回作にご期待ください!

スレッドフロート型の匿名掲示板

スレッドフロート型の匿名掲示板、いわゆる2chスタイルの掲示板を遊びで作ってみた。といっても1週間くらい前の話だけど。下書きだけ書いて公開するの忘れてた。

f:id:mktakuyax:20170811135447p:plain

f:id:mktakuyax:20170811135501p:plain

f:id:mktakuyax:20170811135513p:plain

f:id:mktakuyax:20170811135529g:plain

まぁ別にサービスとして動かしたいわけでもなく、なんとなく素振り的な意味で作っただけだけど。

身内向けにこっそり公開してみたら後輩(と思われる人物)が早速邪悪なスレ立てをしていた。まぁ数時間だけ動かしてすぐ消したからいいけど、こういうの本当に運用していくとして、誹謗中傷等の対策ってSNSやらなんやらやる人にとっての課題だよなぁ。

一応コンセプトは高専生のための新しい匿名掲示板ということで、ユーザ登録は必須だで誰が書き込んだかも記録されるけどユーザから見たら匿名という感じ。まぁTwitterログインのみだと捨てアカウントなどやられちゃうので、本気でやるんだったら高専のメールアドレスになんらかのトークンを送って本人確認とかやると良いのだろうか。

ひらがなせいかつ への いざない 2017

さいきんは なんとなく むかしの rebuild.fmを きいている。

さっき きいた Nさんはつとうじょうの えぴそーど37で しょうかいされていた 「ひらがなせいかつ への いざない」という きじを よんで いや よんでというか すごく よみづらかったので はんぶんも よんでいないのだけど まぁ おもしろいなと おもったので ぼくも まねしてみる ことにした。

たぶん ねて おきたら わすれて ふつうに かんじを つかっていると おもうけど いつか ぼくや ほかのだれかが このぶろぐを よんだときに このえんとりだけが ひらがなで かかれている という そういう ふしぎなたいけんを してほしいな とか かいてみる てすと。

ちなみに Nさんは ひらがなせいかつ の ためのあい・えむ・いーまで つくったと いうのだから おどろきだ。そのなも hiragany である。

github.com

ちなみに、りーどみーは ふつうに えいごで かいてあって うけた。

いんすとーるすると こんなかんじで うごいてくれる。

うん。つかいづらいでしょ。これ。ゎ。

ちなみに、ゎ。は、くしょうをあらわすらしい。

f:id:mktakuyax:20170807005425g:plain

ひらがなせいかつに にゅうもんしてみて きづいたこととして ぼくは いかに あいふぉーんの よそくへんかんに たよりきっていたか ということが ある。

あいふぉーんは ゆうしゅうな あい・えむ・いーを とうさいしている ので たしょう ふりっくにゅうりょくを みすっても いいかんじに してくれる。たとえば、「ふりっくにゅうりょく」と うちたいのに びみょうに ゆびが ずれて「すりっくにぬうりょく」と うってしまっても そのへんくうきを よんで いいかんじに してくれる。

f:id:mktakuyax:20170807005911p:plain

しかし、ひらがなせいかつしゃ、ひらがにすと は にゅうりょくした ありのままの てきすとを つかうしか ないので よそくへんかんの おんけいを うけることが できない。

この ふりっくにゅうりょくだと ひらがなせいかつつらいもんだい に たいして Nさんは どう たいしょして いるのだろうか。 そもそも もはや ひらがなすら つかっていないの だろうか。というか ふつうに QWERTYきーぼーどで ろーまじうち してるのかな。

さて ここいらで こうはいが りついーとしていた このついーとを しょうかいして ひらがなせいかつにゅうもんも おしまいに するとしよう。

 

FAXとジャイロ操作と老害と

思考のメモ。

ぼくはデジタルネイティブ世代の生意気なワカモノなので、E-Mailで済む所をわざわざFAXでやらせようとする現場を見ると、「2017年にもなってFAXとか、何考えてるの?E-Mailもロクに使えないの?やる気あるの?老害なの?」と反射的に思ってしまう。

一方、ゲーム機に関しては、中学校低学年の時にやっていたPSPで時代が止まっている。アナログスティックでフィールドを駆け回り双剣ラオシャンロンを狩っていたあたりで記憶が止まっている僕にとって、Nintendo Switchのジャイロ操作は正直つらい。マリオカート8 DXに関してはアナログスティックオンリーで操作しているし、スプラトゥーン2も最初はアナログスティックでやるつもりだったけど、後輩にジャイロをオススメされたので頑張ってジャイロでやっているという感じ。

そのうちゲーム機はジャイロで操作するのが当たり前になって、次世代ゲーム機にアナログスティックが搭載されなくなったら、怒る人が出てくるかもしれない。そういう人は、ジャイロ操作が当たり前の新しい世代の人たちから、「20XX年にもなってアナログスティックとか、何考えてるの?ジャイロもロクに使えないの?やる気あるの?老害なの?」と馬鹿にされてしまうかもしれない。

そういうわけで、僕は新しいモノを受け入れる練習として、スプラトゥーン2をやっているのだ。今はランク11ですよろしくお願いします。

スプラトゥーン2買った

イカ買った。

 

今はランク8くらい。

ブキは、プロモデラーMGというやつが今のところのお気に入り。隠れて撃って隠れて撃ってというのがとても楽しい。

一十珍海堂 紋次郎いか 100本入

一十珍海堂 紋次郎いか 100本入

 

 

Apple Watch Series 2のSuicaにチャージしたお金が虚無に消えた時の対処法

appsuica.okbiz.okwave.jp

iPhoneSuica Appから、Apple Watch Series 2へチャージしたのに、チャージした金額がApple Watchに反映されていなかった。チャージ失敗かなと思ったら、カードの請求だけはしっかり来ている。「悪徳企業JR東日本絶対にゆるさん。」と思っていたら、そういう不具合だったらしい。

詳細はリンク先の通りなのだけど、iPhoneApple Watch AppのWalletの欄からSuicaのタブへ移動し、ヘルプモードをONにしたら改善された。

めっちゃエモい

夕日がとてもキレイだった。奥に薄っすらと見えるのは樽前山。もう僕は、ここに6年もいるのだ。

f:id:mktakuyax:20170712182749j:plain

ここ最近は、2年生たちにRubyを教えている。去年1年間C言語をやりながらプログラミングの基礎について学んだので、じゃあ今年はRubyやってOOPとものづくりをやってみましょう〜的な感じ。みんなどんどんコード書けるようになっている。すごい。

今年の5月に逆求人に参加した時に、アピールポイントとして、「学内でプログラミング教えてコミュニティ活動してます、理由は学内にプログラマ仲間を増やしたいとか、もっと学校を楽しい場所にしたいとかそういう系です」みたいな話をしたのだけど、他にももっと強い理由がある気がしていて、それはたぶん僕が低学年の頃にいろいろ教えてくれた高専内外の先輩達みたいになりたいとか、もっと本音で言えばプログラミングを通じて新しい世代の人達とつながりを持っていたいとか、そういうのだと思う。

教えているのはRubyで、当然彼らより僕の方がRubyできるのだけど、逆に僕も勉強になっている。ああこういう書き方あるなとか、ああこういう問題の出し方だとこういう解釈もできて、むしろそっちの方が正解だなとか、そういうやり取りがとても楽しくて、勉強になる。実は僕はいきなりRailsから始めたタイプのRubyistなので、ActiveSupportなりActiveRecordなりに頼り切ってきた僕のRubyプログラミングの常識を一緒に破壊しつつ、Rubyの全体像を一緒におさらいしていっている感じ。

僕自身も、後輩たちのやっていきを見ていて、あぁ僕も新しい事どんどん学んでかなきゃいけないなと思い、『メタプログラミングRuby 第2版』を読み進めている。テクニックとして知っている事はいくつかあったものの、それらが体系的にまとまっているのは強い。読み進めていくのがとても楽しい。

専攻科のクソ忙しさもなんだかんだ慣れてきて、時には楽しめるようにもなってきて、他人のやっていきに触発されたりもして、気持ちも高ぶるような、良くも悪くも何かに追われて続けているような、そんな微妙な感じだけど、まぁ僕もぼちぼちやっていきましょう。