2015年の振り返りと2016年やりたいこと

2015 年

頑張り過ぎて後半堕落した年だった。 2014年に比べてそれなりに実力もついてきたので、秋までは逆求人フェスティバルに参加したり、インターンに参加したり、バイトを始めたりとそれなりに頑張った。が、高専祭を終えてからは怠惰の日々だった。開発より遊んでた時間の方が長いくらい。Kindle 端末を買ったのもあって、9-12月の 4ヶ月間で20万円程度 amazon に貢いでいたらしい。半分以上が本であるのは言うまでもない。

ただ、堕落したからこそわかったこともあって、

  • 思っていた以上に面白いゲームはたくさんある。任天堂ハードしか所持しないなんてもったいない
  • 役に立つ物を作るのはつまらない
  • お金があれば楽しいことがたくさんできる

あと高専休学した。

2016 年

とりあえず大学に合格したい。

あとは、月の収入を 10万円程度に抑えたうえで、自己満足なプロダクトをたくさん作りたい。OS・(プログラミング|人工自然)言語・HTTPサーバ・DNSサーバー。構想はたくさんある。

おそらく大学に合格すれば下宿することになると思うので、QOLを維持するためにも月10万は譲れないラインである。小説or漫画を1日1冊のペースで購入するとして、それだけで月に500*30=1.5万円。実際には漫画を一気に購入してしまったり、技術書を購入したりもするので、可能であれば書籍代に月3万円を確保したいものである。

ところで、私を支援したいという心優しい社会人の方がおられるのであれば、ほしいものリストからプレゼントを購入することでそれが可能である。

最後に、プログラミング以外のことにもっと挑戦したいと考えている。プログラミングで飯が食えるからといってそれに固執する必要はないはずだ。スポーツ・音楽・イラスト・3DCG、その他にも、やってみたいことはたくさんある。

CTF始めました

経緯

id:umisama が SECCON とサイバー甲子園の宣伝をしていたので、予てから興味があった CTF に入門してみた。

とはいっても、CTF については本当に何も知らなかったので、適当にググッて見つけた ksnctf というサイトに登録して、問題を解いてみることに。

解いた問題

以下解法が含まれているので注意

Test Problem

表示されている FLAG を入力すれば AC。CTF の形式を確認するための問題らしい。

Easy Cipher

よくわからない文字列が表示されているが、区切りとかを見る限りなんとなく英語っぽい感じがする。英語だと考えると、幾つかある n という単語はおそらく a に違いない。ということで、n が a に対応する、かつシーザー暗号である仮定して復元してみると、それっぽい文字列が得られたので入力したら AC

Crawling Chaos

問題分は URL だけ。とりあえずアクセスしてみると、テキストボックスとサブミットボタンだけのフォームがある。ボタンを押してみると、no と alert が飛ぶ。

html を覗くと、script タグに見るからに怪しい文字列がある。(ᒧᆞωᆞ) こんな絵文字が延々と並んでいる。

また、ブラウザで挙動を眺める限りでは、どうやらボタンを押してもリクエストの類は飛んでいないらしい。となると、全てはソースの中にあるということになる。

となると、明らかに例の怪しい文字列鍵に違いない。試しにコピーして console に貼り付けてみると、実行できた。実行できるということはどうやら js として valid なようだ。

さて、どうしたものか。私にはこの謎のソースを読む気力はなかったので、alert の呼び出し元を調べることにした。ググってみると console.trace() という便利なメソッドがあるらしいので、alert = function() { console.trace() } という感じでモンキーパッチを当てて呼び出し元を調べると、直前に判定のようなものを発見。それがそのまま Flag になっているので、入力してAC。

Villager A

問題文に ssh の接続情報っぽいものが書かれているので、とりあえず接続。別のテキストが出力されて接続を切られると思ったが、ログインできた。ディレクトリの中には、q4, flag.txt, readme.txt があり、このうちreadme.txt 以外は q4a という別のユーザーがオーナーであり、flag.txt には読み取り権限がない。readme.txt には、「home ディレクトリには書き込めないよー」とか書いてある。

q4 は実行できるみたいなので実行してみると、ユーザー名を要求された後に「フラグがほしいか?」と聞かれる。が、no を入力すると終了し、それ以外だと聞き返されるだけ。

ここに正しい文字列を入れれば flag を吐くのかなーと思い、解析してみる。とりあえず strings q4 してみて、出てきた文字列を試してみたがダメっぽい。その後も od したり objdump したりするも、よくわからず。

結局、気力が尽きてギブアップ。ぐぐってみた感じだと、Format string attack ができるらしい。

感想とか

web周りはともかく、バイナリとかの未知の分野はちゃんと勉強しないと厳しい。ただ、CTF 強い人には憧れるので、ちょっとずつでも勉強したい。

なので、誰か、私に CTF 本を買ってください!

www.amazon.co.jp

高専を辞めたいあなたへ

はじめに

イレギュラーな高専生の観点から、高専を辞めたい人へのアドバイスを真剣に書きます。また、順風満帆な高専生活を送っている人も「こういう人も居るんだなあ」とは思ってもらえるのではないでしょうか。

学年別アドバイス

高専を辞めたいと思った時、どのような行動をするべきか。それはあなたが何年生かによって異なります。

1年生

いろいろなものを見ましょう。1年生には時間も選択肢もたくさんあります。

部活を覗きに行ったり、研究室に遊びに行ったり。特に人がいない場所では、一年生は歓迎されます。

そもそもその分野に興味が持てない場合には、転科という選択肢があります。また、そもそもその分野のおもしろさにまだ気付けていない可能性もあります。高学年になって、専門科目の面白さに気づいたという方も多いです。

どうしてもダメそうなら、高校に入り直すことを考えましょう。高専の入試はどこもそれなりに難しいので、地元の公立高校に入り直すのはそれほど難しいことでは無いはずです。1年遅れることへの抵抗感はあるかもしれませんが、あまり気にしないようにしましょう。無理して高専に残れば、5年か、それ以上の時間を無駄にする可能性すらあります。

2年生

一年生と同様、専門科目に関してはまだ面白さがわかっていないだけという可能性があります。ただし、この段階でほんの少しも面白さを感じないのならば、その分野はあなたに会っていない可能性が高いように思います。

高専を辞めるのならば、大学受験を考えましょう。この段階から高校に入り直すよりは、高専に通いつつ大学受験を目指すのが良いでしょう。高専の3年生はそれなりに忙しいので、早めから少しずつ受験勉強をすることをおすすめします。

どうしても高専を辞めたい場合は仕方ありませんが、できるだけ辞めないことをおすすめします。高専の3年生を修了すると、大学を受験することができますが、2年生でやめてしまうと、高等学校卒業程度認定試験(旧大検)に合格する必要があります。また、途中で高専に残りたくなる可能性も無いわけではありません。

3年生

急いで受験勉強を始めましょう。勘違いしている人も多いのですが、受験するのに高専を辞める必要はありませんし、合格しても高専に通い続けるという選択肢もあります。本当に辞めるかどうかは、合格してから考えても遅くありません。

また、担任の先生の理解を得られる場合は、推薦入試すら利用することが可能です。

4年生

よほどの理由がない限りは、卒業まで待つことをおすすめします。

普通に大学受験をするよりは、編入から入るほうがお得なことが多いです。ただし、文転など特殊な理由がある場合はこの限りではありません。

5年生

ここまで来たなら卒業しましょう。どんな道を選ぶとしても、卒業しない理由はありません。学歴は思ったよりも役に立ちます。

さいごに

自分だけを信じましょう。他者からのアドバイスを聞くのは良いですが、最終的には自分が信じる道を選びましょう。あなたの直感は、常にあなたがやるべきことを知っているのですから。

もちろん、それが失敗を招くこともあります。しかし、他人のアドバイスに従って失敗し、その原因を他人に押し付けるよりはよほど良いというものです。

【障害】【対応終了】alfheimrにおける起動障害

本日、alfheimr(開発用ラップトップ)において以下の通り障害が発生いたしました。

概要

発生日時: 2015年09月16日20時41分 - 同日23時36分

影響範囲: alfheimr

障害内容: 起動時に error: ELF header smaller than expected. と表示され、grub rescue が起動する。

原因: おそらく dist-upgrade の最中に強制終了したことだと思われるが、詳細は不明。

対応

対策

bootable USBメモリを常に携帯する。また、時間に余裕があり、復旧の手段を保持しているとき以外はシステムのアップデート等、危険性の高い操作を行わないこと。

高専キャリア参加記

正式名称は ジースタイラス×高専ベンチャーコラボ企画「高専生のキャリアについて考える会」(仮)

総合火力演習を見に行っていたので、遅れての参加でした。

交流

slackでだけ知ってる人。久しぶりに合う人。初めて合う人。いろいろな人と交流できた。

楽しかったけど、後半はつかれたので座って二人で話してたりもした。

LTとか

授業サボるくらいなら休学するのがおすすめ、みたいなLTをした。 正直内容も学びもないネタだけのLTで、 休学という選択肢を提示するどころかネタっぽくしてしまったのは本当に申し訳なかったと思っている。

本当は、真面目に休学という選択肢のメリットやデメリットについても説明するつもりだったので、ここにでも書いておく

休学のメリット

  • 休学中は学生
  • 上記に関連して、図書館などの学校の施設は使用できる。学生証も発行される。学割も使える。
  • 授業料を払う必要はない。別途ちょっとだけお金がかかる(学校によって違う)。

休学のデメリット

  • 学年が一年遅れる。同級生が先輩になる。
  • 戻ってきたクラスは、当然知らない人ばかりになる。
  • 休学中に目的をもって何かしないと、就活等では不利になる。逆に、こういうことをしたんだと説明できれば問題ない。

ところで、私の休学は休学の中でもイレギュラーなのであんまり参考にしないほうが良いです。

YAPCAsia 2015 参加記

YAPCAsia 2015に参加した。

一日目

寝坊したので午前中のセッション聞き逃した。

フロントエンドの話とか、はてなブログの話とか、esaの話を聞いた。

全体的にかなり面白かったが、正直かなり忘れてる。

懇親会チケットの申込忘れてたので、@e10dokupと丸亀製麺に行った(おごってもらった)。。

二日目

やや遅刻して、途中からISUCONの勝ち方の話を聞いた。計測大事。

冗長化に失敗した話。面白かったけど、その手の経験がないので実感はあまりわかなかった。

Docker三兄弟のセッションは入れなかったので、Perl5.22の話を聞いた。結構面白かった(けどPerlよく知らない)。

ランチは豪華でした!!!

午後は、リファクタリングGolangの話が神発表だった。pprofすごい。

まとめ

めっちゃたのしかったけど、ちょっと時間が経ってるので内容がない感じになってしまった。

最近使っている技術の話

最近、3つのプロジェクトのリーダーと、1つのプロジェクトに参加してる。結構いろいろ幅広く扱ってるので列挙してみる。

以下に挙げているのは、(実際に使っている or 最近まで使っていた)技術。試しに使ってみたとか、入門してみたとかは含んでいない。

似たようなものも多いので、頭の切替が追いつかなくて困ったりする。

rubydef hoge():みたいにかいたり、pythonでself書き忘れたり。jadeとslimとか、markdownとrestとか、結構間違える。

プロジェクトの数が5つ、かつそのうち4つはリーダーだったりと、自分だけじゃなくてチームメンバーにも扱える必要があるので、とりあえずこれ以上新しい物を採用することはないかなという感じ。そもそも私自身にもそろそろ扱える限界っぽいので、風呂敷を広げる前に既存のものを深めていこう。