君は牛を二頭持っている

渋谷あたりのエンジニアのブログ。OSからウェッブなフロントエンドまでとか色々。

YAPC行ってきました(2日目のみ)

こんにちはこんにちは。
最後のブログ更新から4ヶ月ぐらい経ってますが、突然のPerlの話題です。
先週の8/30にYAPC Asia(yet another perl conference)の2日目に行ってきたという話です。
概要は公式見たら詳しく書いてますが、Perlに興味あったりPerl書いてる人とお酒飲みたい人がワイワイしたり、会場で便利なツールの紹介をしたり聞いたりして知見を得る場です。
YAPC::Asia Tokyo 2014

Dockerで遊んでみよっかー(@kazeburoさん)

概要

  • Docker Hubなども含めた全体の概念
  • Dockerのアーキテクチャの概要
  • Vagrant + DockerでMac上でVMをセットアップしてHello World
  • Dockerfile、docker buildコマンドについて
  • Dockerの利用例(ここで時間切れ)

発表の感想

  • Dockerで具体的にどんなリソースが隔離されるのかっていうのが今まで話し聞いててもほんわかしたイメージしか付いてなかったので、リストアップしてくれてよく分かった
  • 実際にコマンドラインで動作させるためのHowToをスライドで順を追って解説してくれてるので、とりあえず動かしてみよう!って人にはおすすめ
  • 後半は時間切れになってたけど、多分スライドが十分詳しいので問題ない

Dockerでbashを少しだけ動かしてみて

  • docker run ubuntu:14.04とかやると、CentOS上で動かしててもUbuntuから作ったイメージが実行できてすごい。
  • Vagrantみたいにイメージが手元になければリポジトリ( Docker Hub Registry - Repositories of Docker Images )から落としてくる。すごい。
  • /etc/debian_versionがあって、Ubuntu14.04っぽいのにunameで取得するカーネルのバージョンはやっぱり2.6.xだったりする。この辺りはAufs(UnionFSの後継らしい差分を付けたしていくタイプのファイルシステム)で/etc/以下とかもまるっとコンテナに含まれてるのが分かる。
  • コンテナを作った環境とカーネルのバージョンが違っても動くかというと、そんなことはなさそう。少なくとも新->旧のパターンはシステムコールレベルで存在してないインタフェースを使っているする可能性がなきにしもあらずだと思う。
  • Aufsのパフォーマンスとか色々気になる点はあるので、ある程度情報を整理してからひと通り確認したい

あやかNow

  • Rubyアイドル見てきた
  • 無限コーヒー、無限ジュース最高✌

Perlの静的解析入門とPerlリファクタリングツールApp::PRTのご紹介(@hitode909さん)


概要

感想

全体を通して

  • 発表者の皆様、運営の皆様は局所的にコミケみたいになってた中、本当にお疲れ様でした。また来年もよろしくお願いします。
  • 慶応大学の日吉キャンパス、大学なのにHUBあるのちょっと羨ましすぎる
  • 大学内にセントラルスポーツとかいうジムあるし、格差を感じた
  • 意外と「膝にレガシーコードを受けてしまってな....」みたいな話はなくて、結構モダンなツールを使って開発効率を上げる系の話が多かった気がする。というかあまりPerl関係ない話も結構あったのでそこまでPerl界隈じゃない人も発表できそう
  • 他にも色々と書きたいけどぼちぼち1時間ぐらい書いてるので寝たい

Python3.4で追加されたensurepipの紹介

Python3.4が今年の3月16にリリースされました。
色々追加要素があって、詳細は公式見たほうが良いです。

この中でも特に「pip(パッケージマネージャ)がすごく入れやすくなった」というのが、Pythonをよく使う皆はもちろん、これから使う人には非常に嬉しい要素なはずなので、とりあえず紹介してみます

はじめに

7割ぐらい書いたあたりで、非常にわかりやすい記事を見つけてしまって脱力感を抱いているのでこちらを見たほうがいいかもしれません
Python3.4のensurepip(それとpyvenvの更新)

pipって何よ?

「pip is 何」という問に関して端的に答えるとともにpipに対するこれまでのPythonユーザのイメージを表す端的なツイットがあります


pipはモジュールとかを入れたり消したり検索したり色々できる便利なパッケージマネージャなのですが、今までは以下の様な手順を経て入れる必要がありました*1

  1. 同じくパッケージマネージャであるeasy_install(を含むモジュールであるsetuptools)をインストール*2
  2. easy_installでpipをインストール
  3. めんどくさい( ◞‸◟)

ちょっと前に、もう少し楽になったようですが、いずれにしてもPythonのインストールとパッケージマネージャのインストールが全く別の作業になっていたわけです

3.4でpipの何が変わったの?

pipがセットアップしてすぐに入れられるようになりました。
細かくはどういう感じになっているかというと

  • Python3.4にensurepipというモジュールが付いてくる
  • ensurepipにpipのwheelが付いてくる
  • ここからちょっとどうなってるのかわからないけど、どうにかしてpipのwheelを使ってpipをインストールしている

つまりensurepipというpipをインストール、アップグレードするためのモジュールが追加されていて便利になったって感じです。

使い方

python -m ensurepip

これでsetuptoolsとpipが入るようです

python -m ensurepip --upgrade

これでパッケージマネージャが最新版になります

そのほか

  • 今回の内容はすごく大雑把に書いたけど、とりあえず「pipのインストールの手間が省けるようになったんだなあ」ぐらいの話です
  • 実験中にCentOSでPython3.4をビルドしたんですが、SSLを利用する準備が整っていないと怒られたのでopenssl-develをインストールしました
  • 他にも色々追加要素や変更点があって、個人的には以下のようなものが気になります。誰か教えてください。
  • これを書きながら食べたスタバのデビルズケーキがすごく美味しかったのですが、ガトーショコラと何が違うのかちょっと僕の舌では分かりませんでした。

*1:OSやディストリビューションによって色々な入れ方はありますが、どれでも共通しているやり方として

*2:このステップではスクリプトを落としてくる必要があります https://pypi.python.org/pypi/setuptools

Python3.4の便利機能の紹介をしたい

ensurepipとかstatisticsとかのドキュメントを読んでPythonの知見を深めたい
明日あたりに読む気がする。読みたい。

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

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

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

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

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

その他

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

株式会社ディー・エヌ・エーに入社しました

野球はやらないというか観戦もあまりしないけどDeNAに就職しました
東京の皆様よろしくお願いします
東京に魂売りに来たとかでもないので、関西の人も引き続きお願いします

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:動画配信をコマ落ちさせるために手をブンブン振り回したりもする