君は牛を二頭持っている

ウェブエンジニアのブログ。はてなブログ以外のブログサービスいろいろ探し中

基本情報技術者試験受けた話

本日、大学時代になんだかんだで、受ける機会を逃していた基本情報技術者試験を受けてきました。
会場は世田谷区の国士舘大学で、立命館と比べて人里離れてないどころか区役所とか近くにあって凄みを感じた。
本題の試験の方ですが、余裕だろと高を括ってたら意外と余裕でもない部分があったけど、平均的には合格点を上回ってるはず。午後の方は詳しい配点は分からないけど正答率的には悪くなかった。

午前午後の振り返り + 感想

  • 午前
    • マネジメント・ストラテジ系が特にボロボロに弱い。
    • あとはケアレスミスがいくつかあった。ケアレスミスが社会人になってもなくならないのはかなり辛いものがある。
  • 午後
    • 選択問題の人間擬似アセンブリコンパイラ問題が大変な間違いをして問題を酷く複雑にしてしまったのが大変厳しい。
    • その他のプログラミング系は凡そ良かった。
    • 擬似アセンブリ問題に45分ぐらいかけてしまって他のところに時間をかけられなかったので結構スレスレ

局所的に酷いところと局所的に良いところが両方あったけど色々と良い振り返りにはなった。擬似アセンブリ問題の復習は来週末に。

その他

最近Pythonに関する話をしてないなあと思ったのと、先日Python界隈と認識されたみたいなのも合わせて、Python3.4あたりの新機能とか便利になった部分とかのうち、あまり日本語で紹介されてない
部分を紹介してみようかと思います。

IEICEの総合大会に参加してきました

明日からキュアカイシャイン(研修生)なので、ぼちぼちこのあたりの話題を書ききっておかねばという気持ちになった
3月18~21日の間,新潟大学で開催していたIEICE(電子情報通信学会)の総合大会に参加した時の話
ペーパーは1ページで発表時間10分なので,卒論の成果+αを発表する感じ
蓋を開けてみるとそれはもう偉い黒歴史になったので、色々と得るものはあったもののそのあたりの話は割愛してその他の話を

  • 新潟は醤油と塩ラーメンがおいしかった
  • あとマトウダイがあったので,食べたらやはり美味かった.のどぐろがどこも売り切れてたので,来年ぐらいにまた行こうと思う
  • 鶏もあったのでいくつか食べたが,つなぎ(ハツ元という呼び方が一般的?)というのを初めて食べた。ハツの一部らしいが,ハツよりもだいぶジューシーというか肉々した食感と味だったので是非ともまた食べたい
  • 日本酒は普段あまり飲まないので,一緒に来てくれた先生のお勧めにしたがっていくつか飲んだ。久保田とかいうのがすっきり系で特に好きな味だった気がするが,最終的に5〜6種類ぐらい飲んだので良く覚えてない*1
  • 発表前日に他の発表を見に行こうとしたら,ホテルから徒歩1分のところにカラスの死体が。運命的な出会いを感じた

新潟はトータルすると,田舎ながらもお酒と魚や肉が美味くて出張とかで隔月とかで行くと丁度良いんじゃないかなという土地でした
その他には移動時間とか暇だったので外を見てたら,越後湯沢のあたりで山に雪が残ってたのが印象に残ってる
温泉施設とかと合わせてすごく風情があってちょっと感動した
その時に,まだまだこんな感じで感動するような綺麗だったり壮大だったりする場所は日本だけでもたくさんあって,元気な間にそういうものをたくさん見れたら良いなあという気分になった
そういうことを考えると,自分がいつに病気をして,いつに人生のピークを迎えて,いつまでに死ぬとかいうのが分かれば人生の最適なライフプランを組めるのに,現実は面倒だという結論に至った
とにかく,いつ何が起こるかは全く分からないので早く地球一周とか世界の史跡巡りとか行きたいです

*1:なお、発表前日の夜

このたび立命館大学を卒業しました

昨日3月22日をもちまして、立命館大学情報理工学部を無事卒業いたしました。
大学そのものには4年間の間お世話になりましたし、特にシステムソフトウェア研究室(毛利研究室)には1年半という短い間でしたが大変お世話になりました。

正課の振り返り

大学ではemacsへの洗脳を経てからのC言語を用いたプログラミングに始まり、B2に上がって情報システム学科に配属されると

などなど他にも広く浅く*1やったことで様々な方向への興味を持つことができました。
スイッチを色々繋ぎ変えてLinuxルータでLANを構築して便利機能で遊んだりする実験*2は運動にもなりましたし、LEGOのロボットにライントレースさせるのは楽しかったです。あと、コンパイラの実験はほとんど忘れてるのですが、コンパイラの原理を理解するには良かったような気がします。

課外活動の振り返り

B1の夏ぐらいからRi-oneでロボカップのシミュレーションリーグで優勝するためにC++との出会いを果たしましたし,B2に上がるぐらいにはRiPProの方でACM-ICPCで優勝するために競プロとの出会いを果たしました。
Ri-oneの方ではB2の夏ぐらいから部門長を務めましたが、私含めて当時の同期が3人(ちなみに次の年は7〜8人ぐらい)だったのでえらいことでした。
えらいことだったけども3人で団結したり優秀な後輩に支えられたりして、大学生活の中でもかなり良い経験が積めたのではないかと思います。
その他、アルバイトを通してWebプログラミングに触れたり趣味としてPythonを使ってみたり色々と正課ではやらないことに手を出した4年間でした。
特に課外活動においては、自分の中で持ってる「つよいエンジニア像」みたいな人が同期(成績もつよすぎて現在先輩)にいたのがモチベーションにもなったし、良い教師を持ったような感じでもありました。
色々ありましたが、私個人としての記録みたいなものを特に残せなかったのは残念ではあります

おわりに

19〜21日の間にIEICEの総合大会のために新潟に行ってたのでそのあたりの話も書こうと思ってます
正直大学4年間で学内にはあまり友達ができなかった(B1後半からあまり授業に出席してないからだと思いたい)ですが、特に単位取得には不自由しなかった(最後の最後まで卒論の単位以外に3科目残ってたぐらい)ので、無事卒業できました。
4月からは東京でエンジニャリングしまくりたいと思うので、既に東京にいる方々や就職先の方々はよろしくお願いします

謝辞

図書館の職員の方々、どうせ卒業するし延滞ペナルティ怖くないからって1ヶ月ぐらい延滞してすみませんでした。
本から得ました知識は就職してからも有効活用させていただきますのでそれを以ってお詫びと致したいと思います。

*1:こうして書いてみても、うちの学科は本当に何をやる学科なのか未だに説明に困るので10秒ぐらいで説明できる上手い文句を誰か考えて下さい。

*2:動画配信をコマ落ちさせるために手をブンブン振り回したりもする

Amon2でブログを作成するまで(設計編)

前:
Amon2でブログを作成するまで(環境構築) - 君は牛を二頭持っている
ギッハブ:https://github.com/AKdozum/Amon2_blog

このあたりから,公式のチュートリアルを大いに参考にしてます
http://amon.64p.org/bbs_tutorial.html

DBとか設計する感じです

作りたいもののおさらい

  • ログイン機能があって(面倒なのでTwitter認証にする)
  • 日本語の文字列を投稿できて
  • 後から編集とか削除出来て
  • コメントも付けられる

ブログ的なもの(検索は作らない)

DB

一応今のところこんな感じですが,もしかすると変わるかもしれません

PRAGMA foreign_keys=ON; #https://www.sqlite.org/foreignkeys.html
CREATE TABLE IF NOT EXISTS member (
id INTEGER NOT NULL PRIMARY KEY,
name VARCHAR(255)
);

CREATE TABLE IF NOT EXISTS entry (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
body TEXT not null,
created DATETIME,
FOREIGN KEY(id) REFERENCES member(id)
);

CREATE TABLE IF NOT EXISTS comment (
id INTEGER NOT NULL PRIMARY KEY,
name VARCHAR(255),
body TEXT not null,
created DATETIME,
FOREIGN KEY(id) REFERENCES entry(id)
);

これをsql/sqlite.sqlに保存して

sqlite3 db/development.db

で,開発環境用のDBをセットアップ完了

API設計

backbone.jsとか見てると,最近はPUTとかDELETEとかのHTTPのメソッドで分けるのが良いのかな?とか思うけど,Amon2のソースぱっと見たところ,PUTが対応してるのかどうかよく分からなかったので,POSTとGETで以下のような感じに.

  • 閲覧 GET /entry/[id]
  • 投稿 POST /entry/post
  • 編集 POST /entry/edit/[id]
  • 削除 POST /entry/delete/[id]
  • コメント投稿 POST /comment/post
  • コメント削除 POST /comment/delete/[id]

実装の前に

テストを書かないといけないので,Amon2でのテストのやり方を調べて次に書きます

Amon2でブログを作成するまで(環境構築)

前:Amon2でブログを作成するまで(前提の話) - 君は牛を二頭持っている
ギッハブ:https://github.com/AKdozum/Amon2_blog

本記事,ご確認頂きたく

環境とか

ステップ1 cpanmインストール

  • cpanm(App::cpanminus)とは

Perlのパッケージ管理ツールのcpanを色々便利にしたり綺麗な設計にしたりしたやつ.つよい
どれぐらいつよいかと言うと

    • cpanに比べて速いらしい
    • cpanに比べて省メモリらしい
    • cpanは外部モジュールに依存しまくってるが,cpanmはそうでもないらしい

らしいです

  • インストール方法

curl -L http://cpanmin.us | perl - --sudo App::cpanminus

sudoを使わずにユーザのディレクトリにインストールすることもできます.
これだけ

Amon2のインストール

cpanm Amon2 -n

  • -nオプションの意味

cpanmがモジュールをインストールする前に行うテストをスキップするように指示します.
テストもスペックしょぼいとそれなりに遅くなる + 今回はテストが一部通らないモジュールがあったので,やむなくスキップします.
製品開発時には,テスト通らなかったモジュールがある場合どうするんだろう.やはり自分でパッチ当てるしかないのかな.つらそう.

Cartonのインストール

Rubyのgemsみたいな感じで,アプリケーションが必要とするモジュール郡を全部インストールしてくれるツールです.

cpanm Carton

アプリケーションのセットアップ

amon2-setup.pl blog(アプリケーション名)

これでアプリケーションのディレクトリと,必要なファイル一覧が展開されます
そのディレクトリに移動して

carton install

で多分大丈夫なはず.

起動確認

アプリケーションのディレクトリで

carton exec perl -Ilib script/blog-server

で起動して,localhost:5000にアクセスして表示されればOK,されなければエラーメッセージを見て逐次対応しましょう.
ちなみに僕は,Xslate(テンプレートエンジン)がホームディレクトリ直下の作業ディレクトリでpermissionで弾かれるよ!って言われました.
なんかroot権限でディレクトリが作成されてたのでchmodガッとすれば通りました.

- 以上 -