Go 1.9 Release Party in Okinawa に参加した
とっても楽しかった!!
沖縄よりGo1.9リリースおめでとうございます!!#go19party #golang pic.twitter.com/BS73QfvWcS
— 西島 幸一郎 (@k_nishijima) 2017年8月25日
初めの 1 時間は deeeet さんの資料をみんなで読み進めながら、この機能はどう使うんだ?って話し合っていた。
死霊です #go19party / “Go 1.9 Release Party in Tokyo” https://t.co/6FGQhaa2qP
— Taichi Nakashima (@deeeet) 2017年8月22日
印象に残っているのは Monotonic Clock の導入について。Go 1.8 の time.Now()
はあくまで「現在の正しい時間」の取得に向いている Wall Clock のみだったが、 1.9 から時間計測にも向いた仕様に変更されたとのこと。つまり、閏秒や ntpd による時間の削除(変更)が行われた時もきちんと計測が可能になったとのこと。
もう一つは sync.Map
について。これを使うよりは自前で実装した方がシンプルなのでは?といった疑問を持っていたが、この資料を読んで並行処理中の map の排他処理は一筋縄ではいかないようで、自前で実装するくらいなら色々便利な機能が含まれて高速な sync.Map
を使った方が良い感じがした。
LT
今回の LT で Go で CLI ツールを作る時に error をどんな感じに返しているか、オプションの処理はどうしているのかといった話をした。
最終的に os.Exit
へ結果を持っていくような構成にしているため、どんな方法を用いて exitcode を error に合わせた値を返すようにしているのかといった Tips を紹介した。
github.com
こういった知見を久しぶりにちゃんとアウトプットできてよかったし、何よりパーティが楽しかったから本当に参加してよかった。
plenv を使った環境で AI::MXNet を簡単にインストールする
もっと簡単な方法があれば教えてほしいが、公式のインストールガイドを若干変更することで、簡単に依存関係を含めインストールできた。環境は OS X で以下の手順。
brew install swig cpanm PDL Mouse Function::Parameters export MXNET_HOME=${PWD} # AI::MXNetCAPI のインストール cd ${MXNET_HOME}/perl-package/AI-MXNetCAPI/ cpanm . # ここで Fail するが以下を続ける install_name_tool -change lib/libmxnet.so \ ${MXNET_HOME}/lib/libmxnet.so \ blib/arch/auto/AI/MXNetCAPI/MXNetCAPI.bundle make install # AI::NNVMCAPI のインストール cd ${MXNET_HOME}/perl-package/AI-NNVMCAPI/ cpanm . # ここで Fail するが以下を続ける install_name_tool -change lib/libmxnet.so \ ${MXNET_HOME}/lib/libmxnet.so \ blib/arch/auto/AI/NNVMCAPI/NNVMCAPI.bundle make install # AI::MXNet のインストール cd ${MXNET_HOME}/perl-package/AI-MXNet/ cpanm . # 依存関係のインストール、テストもやってくれるが時間がかかる
これで使える!!
Openblas を Mac へインストールしようとして詰まった
MXNet を Mac でのインストール手順を頼りに進めていたが、brew install openblas
で詰まった。
brewformulas.org に Active といった状態になっているのだが、なぜかインストールができない。
brewformulas.org
しまいには homebrew-core リポジトリへ こんな感じの issue を挙げた。
さて、すぐに issue は解決するはずがないため、ここで行った対応策を記録する。
対応したこと
python で anaconda をインストールしていれば、conda install openblas
でいけるはず。僕は anaconda をインストールしてないし、インストールしたくなかったので以下の手順を実行した。
brewformulas.org で Active なっているということは homebrew-core のリポジトリで formula を探せばいいのではと考え、以下のようなページを見つけた。 github.com
formula が分かれば手動でインストールする方法が分かる。以下の手順通り行った。
wget https://github.com/xianyi/OpenBLAS/archive/v0.2.20.tar.gz
tar xzf v0.2.20.tar.gz
cd OpenBLAS-0.2.20
ここまでやって formula を確認する。 すると以下の 2 行を確認できる。
# Must call in two steps system "make", "CC=#{ENV.cc}", "FC=#{ENV.fc}", "libs", "netlib", "shared" system "make", "PREFIX=#{prefix}", "install"
ということは homebrew の環境変数をみれば分かるだろうなということでチェックする。
brew --env
を実行するとだいたいこんな感じで表示される。
HOMEBREW_CC: clang HOMEBREW_CXX: clang++ MAKEFLAGS: -j4 CMAKE_PREFIX_PATH: /usr/local CMAKE_INCLUDE_PATH: /usr/include/libxml2:/System/Library/Frameworks/OpenGL.framework/Versions/Current/Headers CMAKE_LIBRARY_PATH: /System/Library/Frameworks/OpenGL.framework/Versions/Current/Libraries PKG_CONFIG_LIBDIR: /usr/lib/pkgconfig:/usr/local/Homebrew/Library/Homebrew/os/mac/pkgconfig/10.11 ACLOCAL_PATH: /usr/local/share/aclocal PATH: /usr/local/Homebrew/Library/Homebrew/shims/super:/usr/bin:/bin:/usr/sbin:/sbin
つまり、CC は clang を使い、 prefix は /usr/local
で良いことが分かった。
ここで分からないのは FC である。これは Fortran Compiler なので、gcc をインストールしている場合、gfortran
という fortran のコンパイラーが使えるので、 FC=gfortran
となる。
ここまで分かれば make は以下のように行える。
make CC=clang FC=gfortran libs netlib shared make PREFIX=/usr/local install
homebrew の formula はベストなインストール手順が記されているので、読めるようになると後から凄く助かることの連続だろう。
集中力が切れてきたので対応してみた part 2
今日は2日目。こういう集中力が切れた時のハックをみんな積極的に公開して欲しいと思っている。
今日は友達が朝9:45に迎えに来てくれた。それからもう1人を迎えて出発。
今日の目的として、沖縄読谷村にある手動のUFOキャッチャーこと「やどかりの宿」を探しに行くことであった。残波岬の近くにあるということなので、とりあえず残波岬へ向かった。そして到着。
こんな感じのところに灯台がある。せっかくなので、上に登って景色を眺めることにした。入場料は中学生以上200円だった。
こういう感じの景色が楽しめる。広く見渡せることで、沢山のシーンを楽しめた。
それから再び探索を行ったが、目撃情報近くの残波ロイヤルホテルの人に聞きに行ったところ、何年も見かけていないということだったので落胆した。
しかし読谷は素晴らしいので、意外と最近出来た「読谷ファーマーズマーケット」へ行った。
このすぐそばにあるこういう建物に入った。
ここの3階に「はちれん」というラーメン屋がある。
これが名物?の梅風味のつけ麺なのだが、食欲がない時でも食べやすく、さっぱりとした味なのでとても良い。オススメ。
これが午後14:00位で、暫く読谷をウロウロした後友達の家へ行って映画を見た。運転してくれた友達から「THE BLUE HEARTS」が好きなら観るべきだと紹介された映画を観賞した。
「リンダリンダリンダ」という映画だった。女子高生が「THE BLUE HEARTS」のコピーバンドを組んで文化祭でやるという内容。
これを観た後オレ達の青春は…ってなったが、凄く面白かった。
9時間位でドライブしてた訳だが、ずっと運転してくれた友達、家に上げてくれて映画を見せてくれた友人に感謝している。
今日はもともと自分の好きな曲はどういったものだったか思い出すことができてよかった。(最近ヒップホップしか聞いてなかったため)
今はTHE BLUE HEARTSを家でガンガン流して聴いている。
今日のドライブもあんまり行かない場所へ行ったため、気分転換になったし、曲をガンガン聴くことも癒しになるんだということを思い出すことができて本当に良かった。
集中力が切れてきたので対応してみた part 1
研究室で自ら設定したタスクを日々こなしていくうちに、色々考えすぎてしまって先週くらいから自分のタスク処理速度が落ちてきた。
今までは運動不足による集中する体力を気にして、バッティングセンターに通うようにしていたが、段々とそれすら効果がなくなってしまった。
原因として、4年次になって以降、研究室に篭り続けていたからだと考えた。そこで今日から暫くの間、思い切って休暇を確保することにした。
手始めに今日はその1日目だが、友達と一緒にドライブに行くことにした。沖縄で遊ぶとなると基本は車での移動になる。
友達の提案で「泊いゆまち」へ行った。
そこでは新鮮な海産物が揃っており、中には、ポン酢を垂らしてすぐに食べられる生牡蠣や鰻の蒲焼など調理済みのものまであり、新鮮な材料での食事を堪能することができた。中でも「アーサ汁」がかなり美味しかった。
そのあと、割と最近?できた糸満市にある潮崎町へ行った。そこでドライブしててたまたま着いたのだが、名前が分からない公園っぽい場所があって、なんと歩行用通路と海との距離が近い!こういう感じ。
階段を降りると海という謎の設計だけどこれはいい!
歩行用通路にはベンチがありそこに座ると「ここpanchi」と書かれてるM要素のある建物が見えた。
このベンチで1時間以上過ごした。
人が少なく環境が素晴らしかったので、無の状態で過ごすことができた。日々考えることが多いので、久しぶりにリフレッシュ出来たのではないのではないかと凄く感じた。(かなり気分がスッキリしたし、考えもまとめられた)
対応して1日目だが、これだけでも気分がだいぶ良くなったし、沖縄はやっぱり素晴らしいと改めて実感することができた。
Builderscon へ参加してきました :tada:
今回は前夜祭からだったので合計 3 日間参加しました。
前夜祭
前夜祭は記憶がなくなってしまっているので、きっとそれほど楽しかったのでしょう!!
撤退スペシャルで、結構きわどい話が多くて本当に面白かったです。(てっきりこの時はこれが本番と思っていた)
カンファレンス初日
聞きました一覧です。
横山三国志に「うむ」は何コマある?のトークがすごく面白かったです。
これは、「横山光輝 三国志」という漫画のコマを切り抜きながら、セリフをOCRにかけ保存(セリフとコマの画像は結びつけられている)し、それを全文検索で探し出すといったサービスの裏側をどのようにやりくりしているのかをトークされていました。
それで何が良かったかというと、コマ抜きのアルゴリズムにも感心はしましたが、
そもそもサービスが良すぎる
飛び入りで LT をした
なんと今回のビルコンに旅費 + 宿泊費含め 7 万円越えてしまったので、自分で作ったものを紹介しようと思い急遽スライドを作りました。
どれも終了できないものばかりなので、ちゃんと最後まで完成するように継続的に開発はします。 僕の身寄りが増えたので、協力してくださった皆さんには感謝です。勉強会や飲み会などへ招待していただいた際は、今度紅芋タルトか黒砂糖、もしくは泡盛コーヒーをお持ちします。
カンファレンス懇親会
本当に自分でも何を言ってるのか分からなくなっていて、良く分からないくらい楽しかったです。
ネットの記事で見かけるけど、なかなか目にかかれない方々も沢山いらっしゃって、そういった方々と関われたのも非常に良かったです。「フェイル」という最高なしゃもじも貰えたので最高でした!!
カンファレンス最終日
- 3Dプリンタで作る ~1次元セル・オートマトン~、階差機関、~アナログコンピュータ~
- 小さく始めて育てるコンパイラ
- OSS の引き継ぎ方
- WEB+DB PRESS 100号記念 特別企画
- The Evolution of PHP at Slack HQ
どれももっと聞きたい内容ばかりだったのでビルコンに本当に来て良かったと思いました。
全体的に、様々な分野の技術者がいて、僕も誰かと似つかないような分野での技術磨きをしたいなと強く感じました。次はトークに応募して参加しようと思います💪
今回運営に携わった方やスタッフの皆さん本当にありがとうございました。
やよい軒の裏メニューが素晴らしかった
勝手に裏メニューとか言ってるけど…(笑)
ここ 2、3 年の間で沖縄に進出してきた飲食店が多いように感じる。
その中の一つが「やよい軒」なんだけど、今日やよい軒へ行ったことのある友達、留学生、僕の三人で行ってきた。(留学生と僕は初めて)
入り口に注文専用の機械があって、それで券を発行して中に入るという仕組みだった。
友人が鯖の塩焼きを頼んでいるのを見て、僕は鯖の味噌煮を注文した。留学生は野菜と肉野菜のなんちゃら(野菜炒めみたいな感じ)を注文しながら、「Challenge!!」と繰り返し言っていた。
店の中に入った時、まるで羽田空港の某所に似た作りになっていたことがまず驚いた。ここでテンションが上がる。
ワクワクして辺りを見渡すとなんとも大雑把なペンキの塗り方で、天井や壁の至る所が剥がれていて、もったいないなーと感じたけど、メインはご飯なのでテンションは維持していた。
そしてついにテーブルに美味しそうな御馳走が並び始めた。
ここでもう一度驚いた。なんと留学生の野菜と肉野菜のなんちゃらに「コチュジャン」がセットでついてきた。しかも自分の好きな量を入れることができるという…
普通野菜にコチュジャンのせるか?とか思いながら僕は鯖の味噌煮を食べていた。
もちろん鯖の味噌煮は美味しかったのだけど、留学生が隣でコチュジャンを野菜にのせながら美味しそうに食べているのを見て、僕もコチュジャンを鯖の味噌煮にかけたら美味しいんじゃないかと思い始めていた。「Nice taste ですね!」なんて言うから我慢できずに、ちょっと頂戴とコチュジャンを分けてもらい、コチュジャンを鯖の上にのせて食べてみた。
本当に美味しかった!!
やよい軒のコチュジャンはピリ辛な感じで、死ぬほど辛いまでではなかった。これと味噌がいい感じにマッチしたんだと思う。
鯖の味噌煮とご飯が進む進む、お陰様でご飯を 3 杯お代わりするほどだった。こんなにご飯を食べようと思ったのは中学の時以来くらいだった。
この「鯖の味噌煮」+「コチュジャン」メニューを実現するためには、2 名以上で行って、誰かに野菜と肉野菜のなんちゃらを頼んでもらうか、勇気を出して「コチュジャンをください」と店員に伝えなければいけないが、それくらいの価値は十分にある美味しさだった。