あの日から5年が経った。ちょっと特別な11月1日

今回はちょっと自分語り的な話を

5年経ちました!!!

なにが5年立ったかというと、とっても大切なプロジェクトを作り始めた日から今日5年がたった。
それは、「Scamark(マークシート判定システム )」です。
f:id:matatsuna:20171101004005p:plain

証拠

gyazo.com
タイムスタンプが2012/11/01になってる

昔話

当時はmsreader(マークシートリーダーの略)でずっと作ってた。
githubなんて知るわけもなく、コピーしてバージョン管理をしてた。2012/11からガツガツ作ってた。
gyazo.com
1日書いたら0.1上げて、大きく変わったら1上げてみたいなことをしてた。
このプロジェクト、どうやったら読み取りの精度が上がるか、かなり手法を研究してたのでバージョンがスゴイことになったので、わかりやすく、世代で管理した。
gyazo.com
名前がダサい。
msreader→newmsreader(手法変えて新しいからnewつけるか)→msreader+(プラスつけるか)→msreaderCu(ポケモンって金銀銅だし、Cuにすっかww)→msreaderAg(次は銀だな)→scamark(コンテスト出すから命名すっか、スキャンとマーク=スキャマーク)
って具合に

HSPプログラミングコンテスト2013に出した
Scamark - SoupSeed
いつか、試した手法とかをまとめてソース公開したい

きっかけ

作ったきっかけは、ここにも書きましたけど、顧問に言われたから。

2012年11月1日顧問からマークシートの解析プログラムを作ったらどうかと落ちかけられる(すべての始まりかもしれない)

matatsunaの中高時代 - matablo

プログラミング(HSP)にドハマりしたのもこのプロジェクトのおかげ

結果的に

このプロジェクトを通して、たくさんのHSPの知識、組み方、アルゴリズムの考え方を学べた。sin,cosとか授業で習う前にHSPで触れてて、授業で出てきて「あ、そういうことか!」ってぐらいになってた。
高校時代のほぼほぼすべてをこいつにかけてた(特に高2)のですが、結果的に良い方向に行き着いた。
高校生で1つの物を1人で作り上げて、それを実際に使ってもらって、フィードバック貰って、改良して、そして、応募して、発表してという経験ができた。このおかげて強くなれたと思う。いまでも、このネタでいじられるし。だから勝手に作り始めた11月1日はちょっと特別な日に自分の中でしてる。といっても何もしないけどね。
日も当たらない、監獄みたいなところで頑張ってて、日が当たった瞬間が最高に気持ちよかった。やっててよかったと思えた。
この経験があるから、辛くてもプログラムを書こうと思うんだよな。
最近、かけなくなってもHSPが好きだ。

docker.exe: Error response from daemon: oci runtime error: container_linux.go:265: starting container process caused "exec: \"-p\": executable file not found in $PATH".

dockerをいじってて腹がたったので書きます。

環境:windows 10

現象

Dockerfileには

FROM node:latest

とだけ書いて、buildしました。

> docker build -t hoge .

runは

> docker run -it --rm --name hoge-app  hoge -p 5000:5000 /bin/bash

そしたら、

C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: oci runtime error: container_linux.go:265: starting container process caused "exec: \"-p\": executable file not found in $PATH".

と返されました。
ググってみたら、権限の問題だよとかいろいろ書いてあったんですけど、よくわからなくて諦めていました。

修正

> docker run -it --rm -p 5000:5000 --name hoge-app  hoge /bin/bash

にしたらちゃんと動いてくれました。
引数の順番が大事なんですね...
勉強します....

Raspberry Piでdockerを動かしたらstandard_init_linux.go:178: exec user process caused "exec format error"と言われる

問題

Raspberry Pi上でdocker buildしたら

standard_init_linux.go:178: exec user process caused "exec format error"
The command '/bin/sh hogehugapiyo' returned a non-zero code: 1

と言われる

原因

Raspberry PiカーネルはARMなのでWindowsMacのdocker imageをそのまま使うことができないから

解決策

ARM用にする。 rpi- から始まるimageを元に作れば良さそう

botをdockerを使って作ってみようとwindowsでしていて、自宅のRaspberry Piでホストさせようとして、このページを参考にしながらdockerをインストール

buildで上記のエラーを吐いて、1時間以上悩んでようやく原因が分かった

botを動かす環境でdockerが直接動くんじゃなかったら使うメリットないよな…. dockerの仕様上、仕方ないんだけどさ….

参考

github.com stackoverflow.com dr-asa.hatenablog.com dev.classmethod.jp