D-7 <altijd in beweging>

Day to day life of a Perl/Go/C/C++/whatever hacker. May include anything from tech, food, and family.

タイトルの通りです!YAPC::Asia Tokyo 2014Go For Perl Mongersというタイトルですが、基本「Perl mongerな俺がはまったN個の罠」という感じの話になります。

LLの世界からGoに入ってきて「これ、絶対みんなはまるだろ」っていうあたりをどどーんと解説します。初心者にありがちな「Goちょっと手を出してみたけど使い方がイマイチなぁ〜」とか「なんであの機能はあんな形で実装されてるんだろう」というあたりをカバーしてこれから安心してGoのコードを書けるようにすっきりしてもらおう、というトークですね。

可能な限りその場での質問に答えたり必要であればライブコーディングもしたいとは思いますが、時間の制限があるのでさてはてどうなることやら。

なお想定している観客層は「最低限Goをかじったレベル」の方です。Goを知らないで来られるのはお互いきついので最低限A Tour Of Goを一通りやっておいていただけると助かります。逆にGo上級者の方にはちょっと物足りないかもしれません。

GoもPerlも極めたいあなた!是非ご来場をお待ちしております!

なお今月上旬にHDE Inc様で発表した内容とほぼ同じですので、そちらに来ていただいた方はもう一度聞きたい!という酔狂な方を除いて来ていただいてもあまり新しい内容はありません!


    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

去年の記事(息子1歳のいる風景:平日スケジュール)があがってきて思い出したので子供が二人になった今年の状況をメモっておく
続きを読む
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

このブログを普段から読んでいただいている方達は当然既知の事かと思いますが、来週YAPC::Asia Tokyo 2014というイベントが開催されます

YAPC::Asia Tokyoは確か2006年が初開催で、その時は現在はRebuild.fmで有名な宮川さんが旗を振って開催されました。自分は最初の年からスタッフとして参加していてその後毎年同じように参加していました。

それまでも裏方をなんとなく覗き見していて運営大変だなーとは思っていたのですが、2008年の小山さんのLTの内容を見て「法人が必要だろこれ!」と決心したところからJapan Perl Association (JPA)という団体の創設とその団体によるYAPCの運営の引き継ぎをしました。本当は2009年はJPAは裏方で助けるつもりだったのにいつのまにか主催になってたけどな!

 2009年は色々あり開催こそできたものの、かなりメチャクチャでした。その後櫛井さんを首謀者の一人として迎え2010年2011年2012年2013年とやってきて、僕個人としては2006年から足掛け8年関わってきたイベントでしたが去年を持って「俺はここで終了!」と引退宣言をしました。

これで終わりかなーとも頭のどこかで考えていたのですが、ありがたい事に今年は和田裕介氏に舵取りをバトンタッチする事ができました。というわけでYAPC::Asia Tokyo 2014は僕が関わらない初めてのYAPC::Asia Tokyoです(まぁ実は今年も完全に手が切れているわけではないのですが、それでも9割方僕は見守ってるだけです)。

なんというか、感無量ですね。2年くらい前にYAPC::Asiaはなんらかのクリティカル・マスを超えた感じがしてたけど、来ていただく皆様も、トークをしてもらう皆様も、スポンサーの皆様も、「YAPCというイベントだから!」という人が一定数できてるということなのかなー。

ともあれ、今年のYAPC::Asia Tokyoも盛況のうちに無事終わる事を願ってる。楽しみ楽しみ。

あとみんな、YAPCに行ったら是非感想をブログに書いてあげてね!運営スタッフにはそれが最高のご褒美です。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

今回の勉強会、自分的にも久しぶりに出る勉強会でもあるんだけど、なんと当方多分初めてPerl以外の話を(まともに)公でしてきました。資料は… YAPC後で上げます! 

追記: ustの録画があるようです。最初の10分間は僕が主催者とだべってるだけなので飛ばしてください。あと残念ながら会場からの質問が聞こえないですが、まぁわかる…はず

今回はYAPC::Asia Tokyo 2014で話すネタの前哨戦という事で「そもそも俺の話したいネタに需要はあるのか?」とか「この内容でわかってもらえるのか?」とかを調べる意味合いもかねて話してきました。結果的には自分が喋りたい事を聞きたい人も一定数いることはわかったので大変よかった。

質疑応答を絡めた発表をやりたい!と思ってたんだけど、俺の今までのYAPCでの8年にわたる経験だと日本では誰も質問というか、発声をしないからそのまま始めたんじゃ質問は期待できないと思って、今回は冒頭に自己紹介をした後 まずまっさきに発声練習をしてもらった。本当はもう少し長めの文章を言って欲しかったんだけど、残念ながらそんな余裕がなかったので「Go大好き〜!」と叫んでもらいました。効果があったような気がするんだけど、どうだろうな。笑点の公開収録とかで前説の人いなかったらちゃんと拍手できなかったわーって俺いつも思ってたから効いたと思いたいw

 まぁその成果がでたのかどうかはわからないけど、かなり質問が来てちょっと時間オーバーしたくらいだったので意図としてはばっちりだった。時間制限の厳しいYAPCで同じテクニックを使うかどうかはまだちょっとわからない。

まぁともあれ自分的には手応えあったし、改善点とかも色々あったのですがすがしい感じで終えられました。尾藤さんありがとうございました!


あと今回僕の話に関してよかった・わるかった、どっちでもいいのでなんなりと感想があったらブログ等に書いていただけると大変ありがたいです。Twitterにあがっているもの以上のつっこんだ意見とか聞きたい!よろしくお願いいたします。 
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

さきほどちょろっとアップデートが入ったpeco v0.2.2をリリースしましたChangeログ)。

で、ついでに昨日mattnさんがpecoについてツイートしてたので流れてしまう前にまとめておく


続きを読む
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

本当に手前味噌な話ですけど、STFさん。今回も「あー、俺いいソフトウェア書いた」と満足できたので、この記事を書きます。ちなみにSTFとはみんな大好きPerlで書かれた分散オブジェクトストレージです。(github)

tl;dr;

  • ああ、俺いいコード書いた
  • 8ヶ月間最初のスクリプトをキックする以外何もしてないけど、18億個のデータを無事格納しおえた
続きを読む
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

pecoのv0.1.0をリリースしてから今日で丸一ヶ月がすぎました。今日という日にちょうどGitHubでのスターも1000を超え、大変うれしい次第です。ちなみに昨日の夜840くらいだったのにそれから200弱ものスターがついた。これぞまさにTJのロックスター効果:



「percolをインストールするのにpythonの事調べるのだるい」というだけのところからmattn氏の悪魔のささやきを真に受けて始まったこのプロジェクトですが、まぁ何がよかったのかこの程度の注目を集められるレベルに到達できて大変うれしいです。自分もこのコードを書いててようやくgo-stf-serverでメタメタだった部分が少しずつ昇華できている気がしているし、クロスコンパイル部分も完全自動化できたりと技術的な学びの意味でもやってよかったと思えるプロジェクトになりました。

v0.2.1では 複数のアクションをまとめて1キーからディスパッチできるようになる機能などが同梱される予定です。

機能的にはだんだん落ち着き始めているので、もし何かあったらイッシューに書いてください(日本語でいいんですよ!)。これからも皆様の意見、PRをお待ちしております! 
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

先週 @k0kubunさんがpecoで複数キーの入力シーケンスに対してアクションを起こす(例:C-x, C-cで終了する、みたいなの)PRをしてくれたのでそれをマージした。pecoには楽しいお兄さんが色々コントリビュートしてくれているので、そのPRを見た瞬間にこんなコメントが

おお、いいですね、ということで実装してみようとしたところ… うっ… 設定ファイルから読み込んで動的に作る無名関数からレキシカルな変数へのスイッチングしてて、これをプログラム内部から他に作る方法がねぇ!w 設定ファイルからはできるのに!w むきー!

ということでその後、基本的な設計構造を変えないでその辺りを奇麗にできる方法は ないかと一日くらい費やした。が、やはりうまくいかない。薄々気づいていたけどこれFSMとかの出番だよな… 一から実装面倒くせぇなーと、つぶやいたらすぐ返信が:


うほ!goでahocorasickの実装があるwwww ありがとうございます!全部ぱくります!

コードを眺めているとトップレベルではstringに対しての実装で、 中身はruneに対してノードを返すみたいな事になってるので、これまぁ用はstring = []rune として考えられるので、キーシーケンス= []キー で代用できるね、って分かったのでガツガツ変更。といっても検索キーとか、ちょっと再起的に使うためにinterfaceを足した程度で、基本は何も変えていない。

そんなこんなで最初にpecoを書き始めてから一番大きいPRをマージして、キー入力周りがそれまでのコードと一変した。コードを提示してもらったおかげで任意の長さのキーシーケンスを特定のコマンドを高速かつ分かりやすい形で検索+ディスパッチできるようになった。

これも含めて先ほどpeco v0.2.0としてリリースした。このリリースはかなりの数の変更が入っているので、pecoヘビーユーザーには嬉しい機能が結構あると思う。是非お試し有れ!

本日の教訓:この一つ前の記事もパクリの話だったけど、こういう汎用的な方法論についての助言はどんどん受け入れるべきだし、コードもがんがん再利用してやればいいと思う。

プログラムを書く作業は孤独だけど、わからない事は「分からない!どこから始めるか教えて!」って聞けば誰でもヒントをくれるので人に頼る事を恐れないほうが良い(ただし、そこから先は自己責任でちゃんと勉強しましょうね)。そういえばgo-xslate書いた時もgfxに「これ、どこのサイト読むとxslateで使ってるVMのモデルの概要わかるの?」って聞いたな。

年を取れば取るほど経験値はたまっていくけど、それと同時に自分の知らない事が世界にはまだまだあるのがわかる。もちろんそれらを全部吸収できればベストなんだけど、脳にも限界があるので他人に聞く事によって自分の知らない事を素早く正しく補完できるのであればそれを活用できるようにつながりを作ったり、素直に質問できるようにしていくのが老いてゆくエンジニアの進む正しい道な気がする。おすすめです。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

pecoでは何個か前のリリースからバイナリビルドをリリースの成果物として登録するようにしている。これのおかげでpecoはそもそもの存在理由である「2014年だしこういうツールはバイナリ一個置いておくだけで動いてほしい!」というをより簡単に実現できている。


で、その実装方法。基本motemenさんのスクリプトにmattnさんがツッコミを入れたりしてるのを見ながら「よし!パクろう!」と思ってパクったんだけど、一つだけpecoでは意図的に変えたところがあって、それはboxの選定のところ。

motemenさんのgolang-goxc box自体に基本何も問題がないのだけど、pecoで色々やっているうちにgo1.3がリリースされたのにこのボックスを使っているといつまでもgo1.2.1だった(今はもう違うかもしれない)。まぁ当たり前ですよね。そこは他人の褌で相撲を取ろうとしている俺が文句言うところではない。

ただやっぱりバイナリのサイズが小さくなったり、多少パフォーマンス改善も見られている1.3系を使いたいと思いが募ったのと「これから先もきっとこういう事があるだろうし、そういうことがあるごとに文句を言わないといけないのか?」という思いがあり、pecoにはpeco専用のビルドボックスを作る事にした。それがこちら。もちろんgo1.3とgoxcを入れているところ以外はたいした事してない。

たいしたことはしてないんだけど、よくよく考えればライブラリとかではなくpecoのようにエンドユーザーに直接届くプログラムに関してはあまり自分が制御できていない環境に依存するのもどうかなーと思ったのでもうボックスから作る事にしてしまった。これなら自分がやりたいタイミングでgo1.4が出たらgo1.4にすることもできるし、goxcの特定のバージョンが欲しい、とかにも対応できる。

あとはmotemenさんの元記事と一緒。タグ打ってgit pushすれば勝手にファイルがあがってくる。おっさんは何もする必要がありません。大変すばらしい。また時間のある時にはhomebrewのレシピも自動的に作成しようとは思ってるけどそこまで至っていない。ともあれ、自動化はすばらしい。





ちなみに、drone.ioも一応登録はしてあって、こっちでもリリースとかできるかやってみたんだけど失敗して、ただただコンパイルして成果物を残しているだけ(基本前のやつは上書き)。あんまり必要じゃないけど、別の環境でコンパイルするとたまにバグが見つかったりもするので悪くはないと思ってる。まぁそのうち消すかも。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

諸事情によりうちにまともなバスマットがないまま暮らしてきて5年?くらいたった。あんまり気にしてなかったんだけど、この間からバスマット代わりに使っているタオルの繊維が浴室に入るのが気に入らず俺がキレて「値段が高くてもいい!高性能バスマットを買おう!」と宣言した。

そしたら妻がこれにしない?と提案してきたので「よっしゃそれだ!」と買ったのがこちら




やー、これすごい!シャワーを浴びて普通に体を拭いて浴室からでてきたら足の裏がサラサラしている…ッ!すごい、サラサラだ!何回も言うけどサラサラだ!足の裏の革命だ!なんでもっと前に買っておかなかったんだー!

何日かに一回陰干しして乾燥させる必要があるけど、これはたまらん。このサラサラ感、ちょっと説明できないくらいサラサラなので是非試して欲しい。布で水分を取るのとはわけが違う感じ。

あとはこれがいつまでも持つのかとかが気になるが、もしすぐに使えない とかになったらここのページをアップデートすることを約束します。が、その日までは僕は毎日足の裏のサラサラを楽しんでいることでしょう

8/1 追記 購入から1ヶ月ちょいがたちました。というわけで現状の報告です。マットは相変わらず現役、基本的には何も文句はありませんが、正直に言うと吸水率は最初に比べると一回がくっと落ちて、一瞬でさらさら!というのはなくなりました。ただし、1、2回足踏みすれば完全に乾きます。で、吸水率が一度がくっと落ちたあとはその状態で保っているという感じです。我が家は子供が二人いるので大人だけの家庭よりかはお風呂を使う事が多いですが、基本使用には問題ありません。ただし、慌てん坊さんがささっとマットに足を載せただけで水分吸収!というのはちょっとできなくなりました。個人的にはこの状態で1年もてばいいかな、という感じです。
    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

このページのトップヘ