大学を2回中退した

この登校は退学 Advent Calendar 2014 - Adventarの14日目の記事です。

なんで2回も中退したの?

記事のタイトルにある通り、私は大学を2回中退しています。

奇遇にも一日目の方も(いろいろな退学)2度退学しているそうで、居るところにはいるんだなーと感慨深い感じもしますが、一般的にはまあ居ないですよね。単純にお金と時間の無駄ですし(奨学金の返済が辛い…)。

で、なんで2回も中退してるのか?というと、1回めと2回めではちょっとだけ理由が違います。

1回目

高校を卒業後、福島のとある情報系単科大学に入ったのだが、(超単純に言うと)だんだん大学に行くのがめんどくさくなったのと、体調を崩しまくりうつ病になりかけたので2年でやめた。

あと建前としては、プログラマーよりクリエイター(音楽系)の道に進みたいとも思っていたので、今度はもうちょっとそっちよりの学科に行こうと思い、2つめの大学に行くことにした。

1回目はこんな感じでなんともしょーもないというか、あっさりした感じで大学をやめた。

2回目

そんなわけで、東京のとある私立大学に進学した。でもって、こちらも結局2年で中退した。

こちらをやめた理由は、1回目とは違い「とりあえず働いてみようかなー」というやや前向きな?理由である。

もっと詳しく言うと、PHPMySQL に出会い、こういうのなら行けるんじゃねえの?と思ったのが大きい。

 

元々プログラミング自体にはあまり抵抗がなく、個人的にもちょこちょことやってはいたものの、大学とかで今までやっていたのはいちいちコンパイルが必要だったり、CLI でちょっとした動きをするようなものがメインで、ここからどういう感じでまともな(いわゆるバリバリ絵が動くゲームみたいなもの)アプリケーションを作るんだろうなーという想像ができないでいた。

が、PHP なら書いてブラウザ開いての繰り返しだし(今はテスト書くのでちょっと違うけど)、なにより MySQL(というよりRDBMS)のただならぬ万能感を感じ、これなら行ける!と思った。

あと正直な話、クリエイターのようなセンスとか瞬発力が問われるような仕事はあまり向かないだろうなーと気付き始めていた部分もあったし、進学後も安定して働くイメージができないでいたので、結構序盤のほうで諦めていた。

 

でも、せっかく首都圏に出てきたのに、実家に戻りたくはないなーと思い、とりあえずこっちで Web プログラマーとして働いてみようと決心。

そして、運よくアルバイトとして採用してくれる会社があり、親にも言わず勝手に働き始め、2回めの中退をし、今に至るという感じである。

そして現在

それから2回ほど転職し、いまは六本木のとある会社でネイティブゲームのサーバーサイドをやっている。住むところも相模原→武蔵野→横浜→都心と転々とはしているが、それとなくいいところに住めるようにもなった。

働き始めて2回めの中退する直前に、親と話し合った時には「やっぱ大学は出といたほうがいいんじゃねーの?」的なことも言われちょっと揺らいだ部分もあるものの、その時には既にフルタイムで働いてたし、結果的には今までクビにもならず真っ当に働けているので、選択としては間違ってなかったと思っている(まあでも胸張って言えるわけじゃない)。

いま思うこと

  • 自分的にはそんなに後悔していることはないと思う
  • ただ、1つ目の大学の時に LL 系の言語で Web アプリってものが作れるんだよーっていうことを知っていれば、そのまま大学生活を続けていたかも
  • あと、とりあえず実家(というか地元)から出たい一心で他県の大学に進学してみたものの、その性格からか一人暮らしでの生活が破綻しかけたので、ぶっちゃけ地元の大学に通ったほうが良かったかも
  • 専門学校に行けばよかったんじゃねえのという気も

これから大学進学する / 中退したい or する人へ

  • 大学通う中で迷いが出てくると「あれ?これちょっと違うんじゃね?」という思いがだんだん強くなり、超やめたくなるので、大学選びはすごく慎重にしたほうが良い
  • なんだかんだで大学は出ておいた方が良い(ビザとか採用基準の関係もあり海外(というかアメリカ)では働きづらそう)
  • でも、「これだ!」と決めたものがあって、勉強し続けさえすれば、中退しても普通に仕事はあるし、そこそこ真っ当な生活は送れるので、自信を持って退学しろ
  • 特にエンジニア系統は(単純に職がないので)大都市圏(できれば首都圏)の学校に行っておいたほうがいざというとき中退しやすくて良い(というあまり役に立たない知見)

まとめ

PHPMySQL に命を救われた。

Docker で ufw を使う

Docker で作ったコンテナへ外部から接続する際、普通は「-p」オプションを使ってポートフォワーディングして外部からも特定のポートで接続できるようにするのが普通だと思います。

が、「-p」オプションを使ってポートフォワーディングすると、文字通りどこからでも接続できてしまうので、例えば MySQL などのように「ローカルネットワークからは全許可したいけどそれ以外からは接続できないようにしたい」っていう用途に不適*1です。

なので、ufw とか iptables を使ってポート制限掛けたいなーと思うのですが、このへんのブリッジネットワークの仕様が複雑で、ホスト側の ufw などでは制御しきれないっぽいのです。

で、最新の Docker*2では、ブリッジネットワークではなくホスト側のネットワークにそのまま繋ぐ設定があるのでそれを使用してコンテナを立ち上げるとホスト側の ufw 設定を使うことが可能、ということで Docker をバージョンアップしてそれを使うことにした。

# add-apt-repository ppa:docker-maint/testing
# apt-get update
# apt-get install docker.io
# docker.io run -d --net=host mysql-container mysql-image

もし、ブリッジネットワークで ufw を使う方法があったら教えてほしい*3

*1:MySQL にもアクセス制御的な処理はありますが…

*2:0.11以降

*3:ip route とかを使うのでも可

MySQL を docker で動かす Dockerfile & スクリプト作った

やってること

  • Dockerfile
    • 会社で Debian つかってるのでとりあえず Debian 用に作った
      • apt-get のあたりを適宜 yum とかに変えれば CentOS とかにしても動く(たぶん)
      • レポジトリ追加すれば MariaDB とかにしても動く(たぶん)
    • 事前に作ってある設定ファイルをぶち込んで mysql-server をインストールする
    • 3306番ポートを開けておいて mysqld_safe を起動するだけ
      • 自動リスタートとかしたい場合は Supervisor とかも使ったほうが良い
  • docker_build.sh
    • Dockerfile に従って build する
    • データディレクトリを外側に置きたいのでそっち関係の処理を同時にやる
    • 最後に作った image を使って prepare_mysql.sh を動かす
  • prepare_mysql.sh
  • docker_run.sh
    • docker を走らせる(そのまま)
    • 外側から MySQL-server につなぐためのポート番号をファイルに書き込む

GitHub の Pull Request で File Changed が∞になる

お役立ち情報ではないですが、会社の GitHub:Enterprise でこんな現象に遭遇しました。
詳細・条件は不明ですが…。

リモートの mosh が古くて動かない

…ときは普通に apt-get なり yum なりでアップデートするのが普通だと思うのですが、多数のユーザーが共有している環境*1で、グローバルにインストールされているものをアップデートするのがためらわれる場面があると思います*2

そういうときは、おもむろに自分のホームディレクトリに mosh をインストールしてそいつを呼び出せばいいや、と思ってインストールして PATH を設定してから mosh-client で接続しようとしても、やっぱりグローバルにインストールされている mosh-server が呼び出されて全然動かないよ!えー!という感じになってしまいます。

こういうときは --server オプションを使い、自分がインストールした mosh-server を明示して呼び出せば良い。

mosh --server="~/mosh-new/mosh-server" user@host

*1:よくある例だと、社内環境に入るための踏み台サーバーとか

*2:まあ、そうそう無いとは思うけど…

ターミナルでフルスクリーンなやつを開いた後に元のスクリーンが消えちゃう奴

なにやら terminfo とかいうやつが絡んでるらしい*1

で、iTerm2 の設定と .zshrc を見比べてみたら、iTerm は xterm-256color になってるのに .zshrc は TERM=xterm-color になってた。

たかが $TERM、されど $TERM ...

参考にした
http://tech.portalshit.net/2010/07/07/finish-editing-then-restore-console/
http://d.hatena.ne.jp/lurker/20061118/1163810847

*1:Debian なので CentOS とかは違うかも