Antigenを導入してみた

Antigenという、zshプラグインマネージャを導入してみた。 VimNeoBundleとかと似たような感じでzshプラグインが管理できる。

導入

antigen自体のリポジトリはどこに置いても特に問題ないが、 デフォルトではプラグインリポジトリ~/.antigen/repos以下に配置されるため、 それに合わせてantigen本体を~/.antigenに置くようにした。

git clone https://github.com/zsh-users/antigen.git ~/.antigen

プラグイン管理用のファイルを分けるために.zshrcに下記を記述。 (チェックが面倒くらいから~/dotfiles/.zshrc.antigenは存在している前提)

[ -f ~/.antigen/antigen.zsh ] && source ~/dotfiles/.zshrc.antigen

antigenの設定を書く~/dotfiles/.zshrc.antigenにはこんな感じで記述した。 antigen.zshを読み込んでからantigen applyするまでの間にantigen bundle hogeすれば良さそう。

source ~/.antigen/antigen.zsh

# antigen bundle git    # on にするとなんかやばいからoffにしてる
antigen bundle brew
antigen bundle zsh-users/zsh-syntax-highlighting
antigen bundle zsh-users/zsh-completions

antigen apply

これで、次回.zshrcが読み込まれたときに、使用するプラグインで必要なものがダウンロードされて使用可能になる。

以上、めもっす。

YAPC::Asia 2014に参加してきました

YAPC::Asia 2014に参加してきました。
参加ブログを書かないとイベントが終了しないらしいのでこの記事が存在します。

聴いたトーク等

1日目

  • Releasing perl
  • Go For Perl Mongers
  • お待たせしました。Perl で BDD を簡単に実践する最高にクールなフレームワークができました
  • DBIx::Class - what is it and what is it good for?
  • Scala In Perl Company : Hatena
  • One layer down below.
  • いろんな言語を適材適所で使おう
  • WHERE狙いのキー、ORDER BY狙いのキー
  • Mojoliciousを使ったwebアプリケーション開発 実践編
  • Java For Perl Mongers
  • Lightning Talks Day 1

2日目

  • 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情(5.6対応)
  • 地域.pmミートアップ 2014
  • Perl For (Non?) Perl Mongers
  • Changing the tires on a moving car: a case study in upgrading legacy architecture
  • Mobile Application Development for Perl Mongers [ninjinkun x gfx]
  • そんなにビッグでもないデータ処理手法の話
  • Lightning Talks Day 2
  • キーノート

ざっといくつか感想

Goの話

勝手に「LLのノリの静的型付け言語」というイメージをGoに抱いていましたが、実際は全く違うようでした。

  • 例外処理機構
  • オブジェクトの考え方
  • 並列処理

この辺りは、Goを弄ることがあるときは気をつけようと思います。

Test::Kantanの話

出力が見やすそうで良い感じでした。 テストがコケた時に変数の中身を勝手に出力してくれるのは地味に便利で良さそうな雰囲気を感じ取りました。 ただ、試しにサンプルコードを走らせたらコケたので、今後のバージョンアップに期待です(自分でプルリクを送る元気勇気がない/(^o^)\)。

DBIx::Classの話

通訳がないとやはり英語わかりませんでした/(^o^)\が、通訳があったのである程度はわかったような。 普段はORMとしてTengを使っておりDBIx::Classは使ったことがないのでアレですが、joinするクエリを書きやすいのかなと思いました。

PHPの話

ベストトーク賞に輝き、Yet Another PHP Conference状態に! 勢いがハンパなかったです。 的確な質問が仕込みっぽくなったのは、想定される質問に対するスライドを丁寧に用意した成果だと思います。 その辺も含めてすごいなぁという感想でした。 PHPに対しては、例外処理機構ヤバい・テンプレート言語とは何だったのか的な感想を抱きました。

githubの話

難しかったorz Rubyでgitのwrapperを作ってたけどスケーラビリティが辛くてlibgit2を作ってどうにかこうにか…的な感じにしか覚えていないです(´;ω;`)

mobileの話

ReactiveCocoaというやつが凄く気になりました。 来月辺り作る予定のアプリで試してみる予定です。 gfx氏はアイコンの仮面のイメージが強く、もっと年齢が高い方だと勝手に思い込んでいましたが、実際はイメージよりかなり若そうな方で若干の驚きがありました。

LT大会

Sawyer X氏の英語が速いけどめちゃめちゃ聞き取りやすくて「英語わかる!すげー!」状態でした。 ぷらす、papix氏のフリー素材感良かったです。 Dancer2が良い感じの雰囲気というのは感じられました。

某G者の同期が2人もLT大会に出ていて「うへぇーすげー」と思い、「来年はワイもがんばるぞい」と気合いを入れるところですが、最近は元気がないので申し込み宣言はできないです…。 来年元気だったら申し込む感じでいきます。

エンジニアとして生きる話

俺得なサービスを作る

という言葉にはめっちゃ共感しました(いつも思っていることなので)。 それをずっとやってきているのは、かっこいいことだと思います。 そして、もうすぐ20代後半になってしまう身としては「残り半分の20代を有意義に過ごさねば」と考えさせられました。

懇親会

知らない人に話しかける元気がなく、2日間とも勿体なくしてしまいました。 この辺は個人的な深遠な問題すぎて辛い感じがします…。 もうすぐ開催されるPyConの懇親会ではどうなるか、大きな不安が残る形に。 そもそも真性コミュ症が懇親会へ行くのはどうかという話ですが。

全体的感想

面白い・興味深い話をいろいろ聞けて良かったなーと思います。 著名な方々を生で見られたことも良かったです。 自分にコミュ力(初対面の人に話しかけようという気概)があれば直接お話もできてもっと充実した場になったのかなと思います。

英語力不足・コミュ力不足を、世界の広さを改めて実感した2日間でした。 関係者の皆さま、お疲れさまでした。

逆誕生日プレゼントを貰いました!

逆誕生日プレゼントとは?

@dictav氏の↓のツイートが発端です。

なぜか誕生日なのに他に人にプレゼントをくれるということでした。 なので、とりあえず尼の次のリストを作って応募?しました。

作ったリスト

CORSAIR Gaming Keyboards Vengeance K70 CH-9000011-NA (K70)

CORSAIR Gaming Keyboards Vengeance K70 CH-9000011-NA (K70)

【Amazon.co.jp限定】世界征服 ~謀略のズヴィズダー~ 黒星紅白デザインワークス イラストカード付き

【Amazon.co.jp限定】世界征服 ~謀略のズヴィズダー~ 黒星紅白デザインワークス イラストカード付き

上を目指すプログラマーのためのiPhoneアプリ開発テクニック iOS 7編

上を目指すプログラマーのためのiPhoneアプリ開発テクニック iOS 7編

iOS Core Data徹底入門

iOS Core Data徹底入門

※キーボードが当選したら申し訳ないと思いつつ、外す事ができませんでしたw

結果…

CoreDataの本が当選しました。 この本は、ツイッタークライアントを作る時に大活躍間違いなしです!

@dictav氏、ありがとうございました!!!!
自分の誕生日の時もパクリ企画をやろうかな、と思います。

NUT Hackathon ver.2 に参加してきました

12月7日に技大某クラスタで開催された #nut_hackathon に参加してきたので一応感想的なものを書きます。
イベントの詳細はここを参照。

作ったもの

こんな感じの秘密を保護してそうなツイートをしていくボットちゃんを作りました。 そろそろツイート頻度を下げるので、フォローしてあげてくださいm(_ _)m

2徹からの大爆睡によって6時間という大遅刻をかましてしまい、残りが3時間弱しかなく苦肉の策で思いついたのがこれでした。 前日に、虚構新聞の例の記事を読んでいたため、こんなツイートをしていくボットで良いや!かなりタイムリーなネタだし!実装がクソ簡単だし!ちょうど良い!という理由でした(酷い)。 ちなみに、何かしらの(Web?)APIを使う縛りは、ついったAPIを使うことでごまかす方向で行きました。

そーすはGithubに晒しておきます。 基本的には、ツイートするタイミングの時点で最新のPublic Timelineのツイートをパクって、日本語の意味を成す文字を「■」で置換しているだけですw この使い方だと、あきらかにREST APIで良かったですね。 最近、Streaming APIをいじっていたので、いつの間にかStreamingの方を使っていました。 いつか治そう。

発表会にて

圧倒的一発ネタでしたが、なんと審査員3人のハートに響いたようで、全員から審査員賞をいただきました! ありがとうございました!

みんな「できてない」「できてない」というわりに、動くものを出してきて、アイデアも面白かったです。 一人一人、全然違った発想があってとても良いことだと思います。

というわけで適当ですがこの辺で。 皆さま、お疲れ様でした。 お祭り気分で楽しかったです。 そしてありがとうございました。

よく使いそうなLLのインストール

MBPRに乗り換え後に使う環境構築メモ その1

よく使いそうなLLを、ぐちゃぐちゃな環境にならずに綺麗に管理するための第一歩! まずは言語のバージョンを綺麗に管理するためのメモ。

インストール(Linux向け)

Ubuntuの場合に必要そうなパッケージ

pyenvだかのREADMEに書いてある。

$ sudo apt-get install libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev

pyenv のインストール

$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc.local
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc.local
$ echo 'eval "$(pyenv init -)"' >> ~/.zshrc.local
$ exec $SHELL

plenv のインストール

$ git clone git://github.com/tokuhirom/plenv.git ~/.plenv
$ git clone git://github.com/tokuhirom/Perl-Build.git ~/.plenv/plugins/perl-build/
$ echo 'export PATH="$HOME/.plenv/bin:$PATH"' >> ~/.zshrc.local
$ echo 'eval "$(plenv init -)"' >> ~/.zshrc.local
$ exec $SHELL

rbenv のインストール

$ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc.local
$ echo 'eval "$(rbenv init -)"' >> ~/.zshrc.local
$ exec $SHELL

~/.zshrc.local は、適宜読み換える。

インストール(Mac向け)

面倒なので全部まとめてw

$ brew install pyenv plenv rbenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc.local
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc.local
$ echo 'eval "$(pyenv init - zsh)"' >> ~/.zshrc.local
$ echo 'export PATH="$HOME/.plenv/bin:$PATH"' >> ~/.zshrc.local
$ echo 'eval "$(plenv init - zsh)"' >> ~/.zshrc.local
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc.local
$ echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc.local
$ exec $SHELL

zshを使っている場合、eval "$(pyenv init -)" だとエラーが出るので eval "$(pyenv init - zsh)" にする。

てきとうに簡単な使い方

xx = ['py', 'pl', 'rb'] として、使いたい言語で読み換える。

インストール可能なバージョン一覧を表示する

$ xxenv install -l

バージョン x.x.x をインストールする

$ xxenv install x.x.x
$ xxenv rehash

インストール済みのバージョンを表示する
'*' がついているバージョンが現在適用されている

$ xxenv versions

(出力例)

$ pyenv versions
  system
* 2.7.5 (set by /home/mihyaeru/.pyenv/version)

バージョン x.x.x に切り替える

$ xxenv global x.x.x

どの言語でも同じような使い方ができるので、とてもわかりやすくて良いです。
今回はここまでで。

参考