YAPC::Asia 2012 に参加してオッサンであることを実感できました #yapcasia
昨年に引き続き YAPC::Asia に参加してきました。
昨年のブログは...ありませんね。きちんとブログを書きましょう。>自分
LTソンに参加させていただきました
メインセッションとは別に、LTソンというイベントが行われました。
お世話になっている Hachioji.pm 主催のイベントということで、事前登録して参加させていただきました。
発表資料はこちらです。
「Perlでプチコン」ということで、拙作の p5-Data-Petitcom を紹介しました。
ベーマガ知らないのね...
プログラマが集まるイベントなので、ベーマガ知ってる・読んでた方々がたくさんいるだろうと思っていたのですが、LT聴いていた方々の1/5ぐらいでした。んぐぅ。
まぁそうですよね。懇親会でお話させていただいた方の半数以上は、私と一回りぐらい年齢が違いましたもんね。
思えばずいぶんとオッサンになったものだなぁと。
年齢でもうひとつ
尊敬するある方の年齢が判明。
ずっと年下だと思っていたのですが、実は年上の方でした。年齢をまったく感じさせない若さよ...
ちなみに相手は私の方が年上だと思っていたそうです。
お互いの認識としては合っていたわけですが、まぁ...その...なんだ...
メインセッション
インフラ系のセッションを中心に聴講しました。
個人的にFluentdまわりのお話が大変参考になったのですが、懇親会で登壇者の方々にもうちょっと突っ込んだ話を聞けばよかったなぁと後悔。
下記の3つのセッションがベストトークだとオレの中で話題に。
- Perl初心者が作ったサーバ運用ツール - @riywo さん
- 半リアルタイム・分散ストリーム処理をperlで - @tagomoris さん
- 中規模ソーシャルゲーム開発に学ぶWebサービス開発と運用ノウハウ。もしくは2012年にPerlでWeb開発をする理由 - @songmu さん
というわけで
今年も大変楽しく、刺激を受けるイベントでした。
YAPC::Asia 運営の方々はもちろんですが、LTソンという楽しいイベントを用意して下さった Hachioji.pm のメンバーの方々も、たいへんお疲れ様でした。
Niigata.pm も負けじとがんばりますね! (主に猫型さんがw)
Niigata.pm tech talk #2 に参加しました #niigatapm
すでに1週間以上経過していますが、そこはご容赦を。
詳しいまとめはこちらをご覧ください。
- Niigata.pm tech talk #2 を開催してきました #niigatapm - life.should be_happy # => 1 examples, ? failures
- Niigata.pm Tech Talk 2に行ったよ - aokcub::Blog
- Niigata.pm tech talk #2 がありました - .blog
あと写真は主催の @neko_gata_s さんが作成した Niigata.pm ステッカーです。ありがたや。
今回は「データ処理」
お題はデータ処理ということで、みなさんテキスト解析と分類器を中心にお話されていました。
なるほど…よくわかっ…たようなわからないような。
自分の知識が深まったかどうかは別として、このあたりの技術で困った場合は、皆さんに聞けば詳しく解説していただける!ということが分かっただけでも収穫です。テヘペロ。
LTではご迷惑をお掛けしました
さて、LTで発表をさせていただいたのですが、時間を無視して長々と話してしまったため、後続の方々の発表時間が極端に少なくなってしまいました。
大変ご迷惑をお掛けしてしまいました。申し訳ありませんでした。
発表内容は、目下作成中の Data::Petitcom というモジュールの解説とデモを行いました。
現在も修正&機能追加中なので、YAPCを目処にスライドと併せて公開する予定です。
作成が間に合うようなら LT-THON への参加してみようかなと思っています。がんばれ自分。
次回のテーマ
開催日は未定ですが、テーマは「ちゃんと入門! Perl(みたいな感じ」のようです。
@aokcub くんによる Mojolicious 講座もある(ホントか!?)よう なので、次回の開催が待ち遠しいですね。
というわけで
Niigata.pm に関する情報は Twitterアカウント や ML でお知らせされるので、お見逃しなく。
それでは YAPC::Asia Tokyo 2012 で会いましょう。あでゅー。
VMware Player 5 で vmnetcfg.exe を使う
どうやら VMware Player 5 のインストーラには vmnetcfg.exe が同梱されなくなったようなです。
Workstation 9 の評価版インストーラにある core.cab を解凍するとあるので、これを利用しましょう。
LL DECADEに参加してきました。 #lldecade
お仕事の一環でLL Decadeに参加してきました。
LL ほげほげ の存在は知っていましたが参加したことはなかったので楽しかったです。
お祭り的なノリのイベントだったので軽くまとめる程度に。
基調講演(@miyagawaさん)
- CとJava以外はLL
- polyglot
- Perlプログラマはライブラリ作ってCPANに上げたがる、RubyプログラマはDSLとテストフレームワークを作りたがる、Pythonプログラマはrstでドキュメントを書きたがる
- パクりパクられ
- CPANが転職のレジュメ
- better late than never
- PHP Sadness
- 「転職する時にPHPやってる会社は最初から候補にいれない。DISじゃなく自分がやりたくないだけ。」
- 若者のEmacs離れ
- Vimはあきらかにおかしい
Language Update Decade
- __SUB__ (Perl:@dankogaiさん)
- 「いつも身近で役に立つ存在、それがPHP」 (PHP:@rui_hiさん)
- マイクロフレームワークの発祥 (Python:@atsさん)
- 「2013 年 2 月に Ruby 20 周年を記念して 2.0 をリリースします」 (Ruby:@yukihiro_matzさん)
プログラム言語処理系を自作してわかったこと
「なるほど。よくわからん。」と聴いていました。
mruby面白そうですね。
俺たちの継続的hogehogeは始まったばかりだ!
- Jenkinsは高性能cron(@cactusmanさん)
- 通知はメールだけでなくIRCやランプ、ペルソナなど。ユーモアを継続の糧に。(@TrinityTさん)
- 「PHPでバッチ。ないわー」(@yamashiroさん)
- レガシーコード改善ガイド 第24章(@yamashiroさん)
LT
- miyagawanize2 - ゆーすけべー日記 (@yusukebeさん)
- 「自分のできることより少し上の、噛み付く感じでチャレンジしていく」(@kakutaniさん
- 「LLプログラマーは仕事は早いが始めるのは遅い」(@hourinさん)
@kakutaniさんの言葉はすごく響きました。
頭では分かっていても実践は難しいのですが、この姿勢を忘れたくありません。精進せねば。
あと@takahashimさんの生高橋メソッドを聴けて、とても満足です。
リンク
最近まったくPHPを触っていないのでトレンドが分かりませんが、FuelPHPがよさそうな感じなんですかね。Tシャツ着ている人を見かけましたし。
会社の人にすすめてみよう。
前日に孤独のグルメで採りあげられた 中国家庭料理 楊 2号店 さんの「汁なし担々麺」を食べてきました。山椒がかなり効いていてしびれますが、とても美味しかったです。
あと吉祥寺楽しい。またいきたい。
NDS#27 「Git 入門ハンズオン + いつものLT」 に参加したのでメモ #nds27
第27回勉強会(2012/07/28) - 長岡 開発者 勉強会(NDS)
というわけで、Git 入門ハンズオンでの個人メモです。
ハンズオンで解説していないことも書いていますがお気になさらず。(LTまで手が回らなくてごめんなさい)
詳しいところはやんごとなき方々のダイナミックかつスリリングな参加レポートに期待しましょう。
追記です。素晴らしいまとめが公開されました。
こっち読んでこ!
Togetterもありますぞ。
-
HEAD^とHEAD~の違い。
HEAD^^^^^とかするの大変だからHEAD~5とか。
HEAD^ == HEAD~
-
git-reflogは必修です。
git reset –hard とかしちゃっても安心。あきらめないで!
-
branch切ってこ。
一人開発だと「まぁブランチ切らなくてもいいかなー」なんて考えがちですが、しっかりブランチ切ってこ。
git add -p (後にsでハンクを細かく区切る)でコミット単位を調整するやりかたではなく、ブランチ切ったほうがよさげですね。
-
mergeとrebaseの使い分け指南。(@neko_gata_s流)
-
統合ブランチにトピックブランチを取り込むときはmerge。
-
トピックブランチに最新の統合ブランチを取り込むときはrebase。(履歴を一本化)
このへんは運用で変わりそう。一人開発なのでこのまま採用だけどwww
mergeとrebaseはここがわかりやすい。
ブランチの統合【ブランチ】 | サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ
-
-
~/.gitconfigにaliasを定義して(゚д゚)ウマー
個人的にこんな感じ。graphのフォーマットはお好みで。
[alias] co = checkout br = branch st = status graph = log --graph --date-order -C -M --pretty=format:\"<%h> %ad [%an] %Cgreen%d%Creset %s\" --all --date=short
-
git-now, git-master がよさげ。
これですかね?
-
コミットログは「In English, please.」らしいです。
これ読んででなおしてきます。
間違っているところがあったらご指摘ください。それでは。
JSON日の金曜日@新潟 1週目 に参加しました #friday13json
「昔はEmacsを使ってたが小指に矢を受けてしまってな…」hayajoです。
そういえば仕事中になぜか左手小指に大型のダブルクリップを装着してプログラミングをしていたのですが、EmacsだろうがVimだろうが、小指が使えないとまともにキーボード叩けませんね。小指大事。
JSON日の金曜日@新潟 1週目 7/13(金) #friday13json : ATNDに参加してきました。絵はまったく関係がありませんね。
さて、内容は…
「JSONのRFCを読んでみた」(@saisa6153)やら「Androidで使えるJSONライブラリ」(@Nkzn)やら「Objective-CでのJSONライブラリ」(@dictav)やら「pythonでJSON」(@mihyaeru21)やら「JSON, BSON, MessagePack, YAML」(@neko_gata_s)やら「GroovyでJSON」(@toby55kij)やら「perlでJSON」(@John_7701)やら「OpenPNEでJSONでiOSアプリ」(@eb___)と、もりだくさんでした。(内容うろ覚えな部分もありますので間違っていたらごめんなさい)
ネタ勉強会だと思っていたのですが、みなさんしっかりと資料を用意してきていたのでびっくりしました。
最近、勉強会に参加するたびに発表内容のハードルが上がっている気がします。「資料用意できませんでした。テヘペロ。」な勇者がなかなかいませんね。あぁ胃が痛い。
ボクの発表は…
「VimとJSON」というお題で発表させていただきました。
最近Vimスクリプトをさわり始めたばかりなので勉強不足な感が否めないコードだと思われますが、改善点があればご指摘いただけるとうれしいです。
Vimスクリプトは「関数の引数の扱い方やら変数のスコープやらが結構面倒かなぁ」なんて小生意気にも思ったり。
雑談にて…
スマホでVim使いたい。で、日本語も入力したい。
リモートサーバーにvimとskkの環境を用意してssh経由でやってみてはいかがでしょうか。skk使ったことないですけど。
環境構築にはさくらのVPSとか安くておすすめですよ。
でも素直にパソコン用意したほうがよいかと思います。苦行。
ちょろっとVimの設定を…
あとVimでnormalモードとinsertモードを視覚的にわかりやすく云々って話もでたようなでなかったような気がしますが、ボクの設定はこんな感じです。求められていないかもしれませんけどね。
普段はターミナル(putty.exeやTerminal.app)越しにVimを使っているので、IMEの状態を視覚化するのはあきらめています。
set cursorline let s:hi_insert = 'highlight CursorLine guifg=white guibg=darkred gui=bold ctermfg=white ctermbg=darkred cterm=bold' let s:hi_normal = '' if has('syntax') augroup InsertHook autocmd! autocmd InsertEnter * call s:CursorLine('Enter') autocmd InsertLeave * call s:CursorLine('Leave') augroup END endif function! s:CursorLine(mode) if a:mode == 'Enter' silent! let s:hi_normal = 'highlight ' . s:GetHighlight('CursorLine') silent exec s:hi_insert else highlight clear CursorLine silent exec s:hi_normal endif endfunction function! s:GetHighlight(hi) redir => hl exec 'highlight '.a:hi redir END let hl = substitute(hl, '[\r\n]', '', 'g') let hl = substitute(hl, 'xxx', '', '') return hl endfunction
ご飯…
ごちそうさまでした。おいしかったです! >@neko_gata_s
醤油をペットボトルからそのままというのは難易度が高かったですけどね。
というわけで…
今度はディストリビューション談義や(Vimに偏った)エディタ談義など「もっとゆっくりとお話ししたかったなぁ」と少々消化不良の感もありますので、次回イベントも楽しみにしていますね。(他人任せ
Acme::Ikamusume の環境構築でゲソ
ボクの開発環境(debian squeeze)におけるAcme::Ikamusume環境構築手順でゲソ。
こちらが大変参考になりたでゲソ。ありがとうございますでゲソ。
MeCabのインストールでゲソ
aptのmecab関連パッケージでゲソとmecab-configの吐くパスがアレで、Acme::Ikamusumeのmake時にコケるでゲソ。また、最新のmecab-0.994でゲソとText-MeCab-0.20013のテストが失敗したでゲソ。
というわけで、実績のあるmecab-0.98をソースからインストールするでゲソ。
あとstow使ってパッケージ管理してますでゲソ。
まずはMeCab本体をインストールするでゲソ。
$ cd /usr/local/src $ wget http://mecab.googlecode.com/files/mecab-0.98.tar.gz $ tar xzf mecab-0.98.tar.gz $ cd mecab-0.98 $ ./configure --prefix=/usr/local/stow/mecab-0.98 -enable-utf8-only $ make $ make check $ sudo make install
make check で run-cost-train.sh が失敗することがあるでゲソが気にしませんでゲソ。大丈夫でゲソ。多分でゲソ。
引き続きipadicのインストールを行うでゲソ。
$ cd /usr/local/src $ wget http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz $ tar xzf mecab-ipadic-2.7.0-20070801.tar.gz $ cd mecab-ipadic-2.7.0-20070801 $ ./configure --prefix=/usr/local/stow/mecab-0.98 --with-charset=utf8 --with-mecab-config=/usr/local/stow/mecab-0.98/bin/mecab-config $ make $ sudo make install
最後にstowでシンボリックリンクを張るでゲソ。念のためldconfigも実行しておきましょうでゲソ。
$ cd /usr/local/stow $ sudo stow mecab-0.98 $ sudo /sbin/ldconfig
ためしてみるでゲソ。
$ echo 'インストールできたでゲソ' | mecab インストール 名詞,一般,*,*,*,*,インストール,インストール,インストール で 助詞,格助詞,一般,*,*,*,で,デ,デ きた 名詞,一般,*,*,*,*,きた,キタ,キタ で 助詞,格助詞,一般,*,*,*,で,デ,デ ゲソ 名詞,一般,*,*,*,*,* EOS
できたでゲソ。
[ご注意] このあとのperlのモジュールのインストールでは、アプリケーションディレクトリ(APP_DIR)にcartonとcpanmを利用してインストールしているでゲソ。これらを使わない場合は適宜読み替えが必要になるでゲソのでご注意くださいでゲソ。
Text::MeCabのインストールでゲソ
carton install Text::MeCab でスパっとインストールしたいのでゲソが、辞書エンコーディングがデフォルトのeuc-jpになってしますでゲソ。
というわけでcpanm -vでインストールして、プロンプトからutf-8を指定するでゲソ。
$ cd APP_DIR $ cpanm -L local -v Text::MeCab ... Encoding of your mecab dictionary? (shift_jis, euc-jp, utf-8) [euc-jp] utf-8 ...
Acme::Ikamusumeのインストールでゲソ
本命のAcme::Ikamusumeのインストールでゲソ。
ここまで手順通りに進んでいれば一番簡単な作業でゲソ。cartonでサクっとインストールしましょうでゲソ。
$ cd APP_DIR $ carton install Acme::Ikamusume
上記操作でlocalにインストールされたText::MeCabもcartonツリーに登録されるでゲソ。すばらしいじゃなイカ。
使ってみるでゲソ
準備が整ったのでさっそく使ってみなイカ。
$ cd APP_DIR $ cat <<EOF | carton exec perl -- -e 'use Acme::Ikamusume;use open ":utf8";use open ":std";print Acme::Ikamusume->geso(do {local $/;<>})' pipe heredoc $ この道を行けばどうなるものか pipe heredoc $ 危ぶむなかれ pipe heredoc $ 危ぶめば道はなし pipe heredoc $ 踏み出せばその一足が道となりその一足が道となる pipe heredoc $ 迷わず行けよ pipe heredoc $ 行けばわかるさ pipe heredoc $ EOF この道を行けばどうなるものじゃなイカ 危ぶむなかれでゲソ 危ぶめば道はなしでゲソ 踏み出せばその一足が道となりその一足が道となるでゲソ 迷わず行けよ 行けばわかるでゲソさ
できたじゃなイカ。
というわけでAcme::Ikamusumeを利用するでゲソまでの手順を紹介したでゲソ。
とくに誰じゃなイカの役に立つでゲソというわけでもないだったね。おそまつさまだったでゲソ。