YAPC::Fukuoka 2017 HAKATAに行ってきた

6/30、7/1に開催されたYAPC::Fukuoka 2017 HAKATAに行ってきました。

初めての九州、福岡の良さ

今回のYAPCがキッカケで始めて九州に行きました。
福岡空港は市街地と近いと話には聴いていましたが、実際に見てみると市街地のど真ん中に飛行機が降りていくのは不思議な感じでした。そして地下鉄で博多や天神まですぐということで、東京とのアクセスは思っていた以上に良かったです。

あと、ラーメン屋が大量にあってラーメン好きとしては最高の街ですね。

前夜祭

ホテルにチェックインした後、新天町の立ち飲み屋で1杯飲んでから前夜祭会場であるヌーラボさんのオフィスに向かいました。
LTを聴いたり、聴かずに議論したり、酒のんだりいつものYAPCの光景でした。

前夜祭のあと沖縄の学生たちを連れて鯖を食べに行きました。

酒の隠れ家 博多鯖郎(中洲/海鮮(海鮮料理)) - ぐるなび

時間が遅かったこともあってお造りなどは食べられませんでしたが、ごまさば、鯖のなめろうが美味しかったです。あと日本酒が大量にあったのも高ポイントで若波FY2が特によかったです。

声に出して読みたい日本語↓

本編

以下のトークを聴きました。

  • 2017年夏のPerl
  • ウェブセキュリティの最近の話題早分かり
  • コンテナを「守る」仕組みから、中身を理解しよう!
  • はてなブログ最近の開発テクニックと最新の開発風景のご紹介
  • Web application good error messages and bad error messages
  • cpm
  • P6W に基づく Perl6 に於ける Web 開発の基礎となる Crust
  • スペシャルセッション
  • 新時代のテストフレームワークTest2
  • スキップしていいテスト、スキップしてはいけないテスト 〜速さと信頼を兼ねたテストコードを構築する術〜

今回はPerlトークが多くて良かったです。個人的には仕事でPerlよりPythonを多く書くようになっていますが、Perlの話はやっぱり楽しいです。
あと、LINEさんのフリードリンクサービスめちゃくちゃ良かったです。

懇親会、そしてその後

懇親会では福岡のPHP勢と「CPAN Testersはいいぞ」という話をしたり、CPAN文化と他の言語のパッケージ文化の違いについてなど話していました。
懇親会の後、Goodbeer STAND、ふとっぱらに行き、終電過ぎたので歩いて中洲の屋台へというコースでした。

残念だった点

あまり言いたくはないですが

スポンサーセッション

スポンサーセッションで「あれはちょっと・・・」となるものがありました。社内でエンジニア相手にリハーサルしておいたほうが良いと思います。あれだと「現場と採用担当のコミニケーションがうまくいってないのかな?」とか「関わりたくない」といった感じを受けて逆効果ではないでしょうか?

まさかのノベルティ被り

個人スポンサー特典とスポンサー企業のノベルティがモバイルバッテリーで被ってしまいました。これは調整が難しく仕方のない話なのですが。

ランチ食べながらこの話をしていて、タオルならいくらあっても困らないしいいのではという結論になりました(ライブとかのグッズでも定番ですね)。

お疲れ様でした。

今回のYAPCも楽しかったです。運営の皆さんお疲れ様でした。

次は沖縄

次回のYAPC JAPANは、2018/3/3 沖縄で開催ということで、できるだけ多く休みをとって沖縄を楽しみたいですね。

Y8 2017 Springに行ってきた #y8spring

5/27に開催された、Y8 2017 spring in Shibuyaに行ってきました。

よかったトーク

初心者枠なのに完全に初神者枠でしたが、非常に面白かったです。やっぱり闇を感じるマイグレーション四方山話は強い。

WindowsC#は仕事でも使っているので、.Net Coreでのデバッグは気になっていました。P/Invokeで遅くなる罠や、リモートデバッグが興味深かったです。

Node.jsのC++モジュールを書いてたときにV8のソースコードも読んでいたので、V8を読む難しさに共感しつつ、変わった部分についても知ることができたので非常に有意義なトークでした。

タイトルの「慢心、環境の違い」からネタ臭がしましたが、それを覆して既存の機能を非推奨・廃止していく難しさを「慢心、環境の違い」と絡めて伝えるいい話でした。

さいごに

今回は1日で1トラックでしたがとても楽しかったです。
あと、Macのアダプタは純正が正義ですね。本物はすごい。

uzullaさんはじめ、スタッフの皆様ありがとうございました。そしてお疲れ様でした。

YAP(achimon)C::Asia Hachioji 2016 mid in Shinagawa に行ってきた

7/2-3に開催されたYAP(achimon)C::Asia Hachioji 2016 mid in Shinagawa (通称ヤパチー)に行ってきました。

懇親会

懇親会はドタキャンなしの100名参加という驚異の参加率でした。
懇親会ではベストトーカーとなった@soudai1025さんとDBの話や格ゲーの話をできてよかったです。

打ち上げ

何を話したかよく覚えていないけどひたすら楽しかったです。

さいごに

@uzullaさんを始めスタッフの皆様、ありがとうございました。そして、お疲れ様でした。
ヤパチーに参加したことで「やっていく」という気持ちを得られたので最高としか言いようがありません。

YAPC::Asia Tokyo 2015に行ってきた #yapcasia

YAPC::Asia Tokyo 2015に行ってきました。

今年は開催時期の近辺で仕事が忙しくなることが事前にわかっていたのでトークには応募せず、個人スポンサーとして参加しました。

↓の個人スポンサーのノベルティのタンブラーが非常に良かったです。大事に使います。

スタッフの皆様、良いネットワークを提供してくださったCONBUの皆様お疲れ様でした&ありがとうございました。


以下、聞いたトークの雑な感想です。特に意識してなかったけどハードウェア系を中心に見ていた模様。

前夜祭

PHP帝国の逆襲!(を願うPHPerが話す最近のPHPについてのクイックツアー PHP7対応版)

前回のベストスピーカーにして、我らがHachioji.pmの主宰uzullaさんのPHPトーク。聴衆を弄りつつ盛り上げていくトークはさすが。

Perlワンライナー入門

「入門」ということなので正直、対象者から外れていた・・・
ワンライナーでよく使うモジュールを質問された時にワンライナーで解決するのは良かった。

我々にできるOSSとそのコミュニティの育てかた

主に会社としてOSSを開発し、育てていく場合の話。
趣味開発なOSSにはそのまま適用できるものではないが、参考になった。

1日目

Web由来の組み込みエンジニアの半年間のすべて 〜WebとiOSとBLEとハードウェアデバイスのこと〜

スマートロックロボット「Akerun」の開発に関するお話。発表者のkazuphさんとは懇親会でも耐久試験の話などいろいろでき、Akerunステッカーもいただけたので良かったです。

どうしてもPerlでドローンを飛ばしたい人のためのハードウェアハック概論

既存のドローン(クアッドコプター)に電気的に介入して制御する話+ドローンを自作する話でした。暴走しないように電気的な対策を講じているのが倫理があって非常に良い感じ。

Perlの上にも三年 〜 ずっとイケてるサービスを作り続ける技術 〜

オブジェクト指向最高、DDD最高という感じでした。
非常に共感性の高いテーマでもあるので納得のベストスピーカー賞でした。

Yet Another Perl Cooking

低温調理の話。他のハードウェア系の人が安全対策しているのと対照的にヒューズなしの電源ハックなど明らかに倫理がないところがmoznionらしく「ロック」って感じで良かった。

大規模でも小中規模サービスでも捗る microservices な Web サービスのつくりかた

サービスが成長していくと自然とmicroservices的なものにたどり着くというのが納得感ある発表でした。

LT

全俺が選ぶこの日のベストLTは「(昔の) PHP が誇った最高の機能 register_globals の真実、そして未来へ」かなー。昔、PHPを書いていたことはあるけどここまで闇が深いとは・・・

2日目

Perlでゼロから作るコンテナ

Linuxシステムコールの基礎からコンテナの仕組みを学べる発表でした。Linuxの権限周りの説明などは同時通訳が大変そうでひやひやしましたが、とてもおもしろかったです。

Parallelism, Concurrency, and Asynchrony in Perl 6

この発表は本当に素晴らしかった。Perl6がもつ構造的な並列処理、並行処理、非同期処理の仕組みは(いい意味で)キメラ的に他の言語の良い所をとってきてくっつけていて興味深い。俄然Perl6を書きたくなってきた。
あと、Jonathan Worthington氏の英語は聞き取りやすかったので同時通訳なしでも結構いけた。

Profiling & Optimizing in Go

ほぼライブコーディング&デバッギングな発表でした。自分もgolangを書いているのでとても参考になった。

LT

CONBUのライブ設営が最高だった。

io.js on Travis-CIでNode.jsのC++アドオンのビルドが失敗する件

Node.jsのC++アドオンをTravis-CIでテストする際に、io.js@v3の環境でのみビルドエラーが発生していたので原因と対策を記録しておく。

※バージョン等の情報は2015-08-19時点のものである。

事象

io.js@v3.0.0の環境で以下のようなビルドエラーが発生する。

/home/travis/.node-gyp/3.0.0/include/node/v8.h:336:1: error: expected unqualified-id before ‘using’
/home/travis/.node-gyp/3.0.0/include/node/v8.h:468:1: error: expected unqualified-id before ‘using’
/home/travis/.node-gyp/3.0.0/include/node/v8.h:499:48: error: ‘Handle’ does not name a type
/home/travis/.node-gyp/3.0.0/include/node/v8.h:499:48: error: ISO C++ forbids declaration of ‘parameter’ with no type [-fpermissive]
/home/travis/.node-gyp/3.0.0/include/node/v8.h:499:54: error: expected ‘,’ or ‘...’ before ‘<’ token
...

原因

Travis-CIのデフォルトのGCCが古い。

Travis-CI(Node向け)のGCCのバージョンは以下であった。

g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

io.js@v3用のC++アドオンをコンパイルするためにはC++11に対応したコンパイラが必要であるが*1GCC 4.6.3はC++11に対応していないためエラーとなっていた。

対策

暫定対処として、io.js用のテスト環境ではビルド前にGCCのバージョンを4.8.xに上げることによりエラーを回避した。
以下が対処を行った.travis.ymlである。

language: "node_js"
node_js:
  - "0.8"
  - "0.10"
  - "0.12"
  - "iojs"
before_install:
  - if [ "$TRAVIS_NODE_VERSION" == "iojs" ]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; fi
  - if [ "$TRAVIS_NODE_VERSION" == "iojs" ]; then sudo apt-get update -qq; fi
  - if [ "$TRAVIS_NODE_VERSION" == "iojs" ]; then sudo apt-get install -qq g++-4.8; fi
  - if [ "$TRAVIS_NODE_VERSION" == "iojs" ]; then export CXX="g++-4.8"; fi
追記

" container based infrastructure"(sudo:falseを指定)では上記の方法は使用できないが、以下の設定でできた。

language: "node_js"
node_js:
  - "0.8"
  - "0.10"
  - "0.12"
matrix:
  include:
    - node_js: "iojs"
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          packages:
            - g++-4.8
      before_install:
          - export CXX="g++-4.8"
sudo: false

Redirecting…

*1:というかio.jsで使用するバージョンのV8がGCC >= 4.8を要求している

Hachioji.pm 46で「Goを書いてたら、いつのまにかアセンブリを書いてた話」をしてきた

1/31に開催された Hachioji.pm #46に行ってきました。

Goを書いてたら、いつのまにかアセンブリを書いてた話

Goで最適化のためにアセンブリ書いた話をしました。

スライド
https://github.com/hideo55/go-popcount
参考:http://golang-jp.org/doc/asm.html

追記:GoでPopCountやってるパッケージはすでに他にもあるけど、POPCNT使えて、かつPopCount単機能で使えるのが無かったので書きました。

LT

他の人の LTの雑なメモです。

  • @xtetsujiさん
    • 透過的に例外をキャッチ
      • ENDだとだめ
  • @tsucchiさん
    • DBの自動再接続
  • @ichigotakeさん
  • @akira1908jpさん
  • @mackee_wさん
  • @karupaneruraさん
    • 昔、Windowsで取り込んだMP3の曲情報がiTuneで文字化けして辛い
  • @uzullaさん
    • PSR-7
  • @moznionさん
    • DBIx::TransactionManagerを参考にししてJaveに移植
      • Javaのtry-with-resource
  • @maka2_donzokoさん
    • Kichijoji.pmでやった話
    • iThread

Hachioji.pm #43 に行ってきた

9/13に開催された Hachioji.pm #43 に参加してきました。
今回の参加者は10名。うち初参加3名でした。

LT

以下、雑なLTのメモです。

  • @ytnobodyさん
  • 初参加: Yuichiro Tanakaさん
    • JSの3Dライブラリ
    • Apache CORDOVA
  • 初参加:@ace_projectさん
    • 浦和.pm やりたい
    • Acme大全に名前が載った
      • Acme::MotorcycleGang
  • @hkobaさん
    • テンプレートエンジンNightでYAT-Liteの話をする
  • @uzullaさん
    • Twitter Public Stream がアレ
    • ZeroMQ
  • 初参加:@hoyo1111さん
    • iPhone6 Plus
      • Full HDってまじかよ
    • SVG
      • img使っとけ
  • @fnomu_11さん
  • @maka2_donzokoさん

自分のLT

LOUDS-Trieの話をしました。
資料