プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

第1回 カジュアル Swift 勉強会 @ 青葉台に参加してきました

要約

第0回に引き続き、第1回目のSwift勉強会に参加してきて、発表した方がより自分のためになっただろうなあ、と思ったって話しです。

前回の話しは軽くこの記事で触れています

感想

今回は自分は発表しなかったので感想だけ。

今回も改めて思ったのは「少人数&議論多めな勉強会は得るものが多い」ということでした。

少人数であるのと議論多めにするという方針(+会場が自宅から行きやすい)が気に入っていて前回も参加したのですが、これくらいの人数だと一人一人の発言を拾った上で話しを突っ込んでいける余地があるので、気になったことを少し掘り下げられて気がしています。

個人的にこれやっておけばよかったなと思ったのは「今回も発表する。そして前回とは違い、資料はslideshareなどにアップする」ということでした。

というのも、今回の話しの中で「1.2の情報ってもう余り見かけないんですよね」とか「Swift 2以前に、1.1と1.2の違いをまず調べるのが大変」とか「本で書いてあるコードが1.2だと動かない」とかいう話しが少し出ていたので、前回の私の「市販のiOSアプリ開発本(Swift1.1)をSwift1.2で書き直した話」のスライドをアップしておけばそこから話しがもっと面白く展開できたと思うし、そもそも今回も自分で何かしら発表するようにしておけば発表駆動で勉強してきてフィードバックも得られて得るものが多かったのと思うので、次回は何かしらネタを出して発表しようと思いました。

小学生並みの感想文でしかないですが、次回も勉強会が開かれるのが楽しみです。

最近Swiftいじれていなくて、仕事の関係で主にHTML/CSS/JavaScriptをいじる時間で大半占められていますが、時間作ってSwiftいじりたいと思います。

YAPC::Asia Tokyo 2014に行って、初めて #yapcasia に参加してきた感想

はじめに

この記事を書き始めたのは8/31辺りです。YAPC::Asia Tokyo 2014が終わってすぐ書き始めました。

…が、気づいてみたらもう9/14…PyConJP 2014が終わってしまっている!! さながら夏休みの宿題を片付けられずに新学期を迎えた子ども状態です。

というわけなので、宿題を片付けるため、下書き欄に残ったままの当記事を編集してブログ更新することにしました。

以下、本文

タイトルの通り、初めてYAPC::Asiaに参加してきました。「ブログ書くまでがYAPCだ」ということを主催側が何度も主張していたこと、別のイベントで運営とか関わったことがあるのでイベント後の参加者のブログ記事が運営側にとって励みになることが何となく分かっていること、最近ブログを更新してなかったことなど重なったので、久しぶりにブログ更新しています。

参加したきっかけ

普段一番よく使っている言語はPythonなので、普段参加する勉強会もPython界隈のものが多いのですが、そこで知り合った@さんが以前「YAPCに参加してみるのも面白いよ」という趣旨のことを言っていて気になっていたので、いつか参加してみようと思ったところ、今回ちょうどいい機会だったので参加しました。

きっかけを作った@さんの今回のYAPC参加記事はこちらですね。

参加した日程とプログラム

参加できたのは前夜祭と2日目です。1日目は仕事があって無理でした…残念。

前夜祭に関して

前夜祭は仕事終わりに何となく参加して途中からだったので半ば「ふーむ、最初からいないからよく流れが分からん」という状態でしたが、最後のクイズは印象深かったですね!

…あ、そういえば前夜祭の際に「失敗したなー」ということを思い出しました。

前夜祭の会場に入って、確か増井(@)さんがwri.peの話しをしていた中盤辺りの頃だったと思うんですが、私がいた場所の近くで弾(@)さんとどなたかがSwiftについて話し始めていたんですね。で、私、弾さんのSwiftのプログラムに参加したかったんですけど、1日目は仕事があって参加できなくて残念な思いをしていたところ、後ろで「type inferenceが云々」とか色々興味深いことを弾さんが話していて非常に興味あるなー、もっと聞きたいなー、と思って後ろを振り返ったら、どうやらうるさがって後ろを振り向いたものと勘違いされたらしくて弾さん達が話を止めてSwiftの話しをするために外に出てしまったんですね。

…あれは大失敗でしたね、個人的に。振り向かなければもっと話しが聞けたのに…

外に出てSwift話しに加わるという案も勿論考えましたが、YAPC初参加で会場の雰囲気を最初から味わわないまま行動するのもどうかなあと感じたので、結局最後まで会場で話しを聞いていました。が、それはそれでSwift話しを聞けないという後悔が残ってしまいましたね。ええ。

2日目に参加したプログラム

2日目に参加したプログラムは以下の通りです。

2日目のプログラムに参加した感想をそれぞれ簡潔に述べてみる

本当は長く感想を書きたいところですが、そうやろうとするといつも頓挫して記事がお蔵入りになるということを何度も繰り返しているので、一言くらいの感想を箇条書きにするくらいでとどめます。あと、感想が極端に短くなるプログラムの方、許して下さい!

突然ITインフラを任された人のための…監視設計入門

  • 個人的に一番楽しみにしていたプログラムでしたので参加。
    • というのも、監視とかITインフラ周りの知識が全くゼロの状態だったので、見取り図に当たる話しをちょうど聞きたかったからです。
  • 『Webアプリエンジニア養成読本』の「サービス運用の基礎知識」の担当著者が登壇者の@さんで、内容も期待できるからという理由もありました。
  • あと、始まる前の漫談がよかったですね。

当初の「監視に関わる運用の見取り図が欲しい」という私のニーズにマッチした内容で満足でした。PyConJP 2014にも参加されていたので、パーティの時に色々直接感想を伝えることが出来てよかったです。

Google BigQuery で DWH 構築

正直Hadoopとかそこら辺のものを一度も触ったことがないので、「PrestoとかImpalaとかnorikraとかBigQueryとか、何がどう違うのか全然分からん…」という所から少しは理解が進み、これからこれらのものをいじる必要が出てきたときに役立ちそうな話しだったのでよかったです。

JSON SQLインジェクション脆弱性と、そこから学ぶセキュアプログラミングの原則

すごいことを話していることは分かりましたが、余りに勉強不足で内容理解できなくてこれ以上感想書くのが難しいのが痛いですねえ…

後内容とは全然関係なのですが、登壇者の@さんは以前からネット越しに存じ上げていましたが、想像より声の高い方だったのが意外でしたね。

Perl入学式 in YAPC::Asia Tokyo 2014

  • Perl読めるようになりたかったから参加しました。
    • たまたま当日参加できるということを直前に知ることが出来たのがよかったですね。
  • 今回より前のPerl入学式を生徒側として修了した方が今度はサポーター側として参加者のサポートを行っているという体制が非常に印象的でした。

私の席の担当サポーターの方もそうでしたが、「仕事でプログラミングはしていないけれど、Perl入学式をきっかけにしてプログラミングを知って、今はサポーターになっている」という方の姿が眩しかったですね。

ほんの数時間しか参加してないですが、外野から見てると非常に良い体制でPerl入学式は回っているのかな?なんて思いました。

体調と予定さえ悪くなければ、第3回目も登録したので、これを機にPerlワンライナーで少し書けるくらいになりたいですね。

趣味開発のためのクラウド/VPS活用術

  • VULTR、名前だけ知っていたけれど使ったことはなかったので「なるほど〜」と思いました。
    • 東京リージョンがあるのはいいですね、確かに。
  • 発表の時間が足りてなかったのが非常に勿体なかったですね。もっと話聞きたかったです。

登壇者の@さんですが、自分の認識では「マコピーさんだったはずなのに何でファッションポエムって名前で登録されてるんだろう?」と思いましたが、セッション中に謎が解けてなるほど、と思いました。

Lightning Talks Day 2

  • TDD(Twitter Driven Development)の発表が非常に印象に残りましたね。とても面白かったです。
  • あと、Dancer2の開発者(?)の方もテンション高いなあと思いました。

キーノート

  • @さんの発表を聞くのは初めてだったのですが、「結構ウェットな内容を話すんだなー」とビックリしました。
    • 自身の心情とか身の上も含めた話しをするのって結構人生のスタンスがしっかりしてないと出来ない印象があるので、そういったスタンスで人生過ごせるようになっているのが結構印象的でした。

あと、自分に子どもがいればもっと理解できるところが増えるのかな?って思う、そんな内容でした。(…まとまらない感想だ)

全体的な感想

Perlを一ミリも読めない&書けないPythonistaの私でも十分楽しめたので良かったです!Perl以外の言語使用者でも十分楽しめる懐の深さがYAPCには確かにあるんだなー、と思いました。

あと、@さんがTwitterで語っていたコレ、本当にそうだと思います。

私も去年、PyConAPAC 2013でスピーカーとして登壇した経験があり、聴衆の方の反応があると非常に嬉しいしやりやすいということを身をもって実感したため、この意見はとてもよく分かります。

自分も聴衆として参加するときは少しそういった意識を持って自然と聴けるようになれればいいなあ、そう思いました。

最後に、運営されていたスタッフの方をはじめ、YAPC::Asia Tokyo 2014の関係者の方々、素晴らしいカンファレンスをありがとうございました。

こちらからは以上です。

ヤフー vs クラスメソッド「iOS 炎の7番勝負」に参加してきた

表題の通りです。

http://connpass.com/event/5159/

これに参加してきました。

今日の内にブログ更新したいので全く内容が無い感じになってしまいますが、イベントの内容は以下の方の参加記事を読むとまとまっていていいと思います。

簡単に感想でも書くとすると

  • 対決形式が予想以上に面白かった
    • 面白いと思った時にボタン連打するのが割と一体感を高めていて良かったと思う。
    • でも、今後同形式のイベントするときには今回のようなアプリだとJavaScript等でチートできそうな気がしたので、そこら辺のケアは必要な感じがしました。
  • 一つの発表が5分だけだったので、そこはちょっと物足りなく感じました。
    • 私は初心者なのでまだいいですが、少しでもツッコんでiOSに取り組んでいる人には物ないようだったのかも足りないないようだったのかも?
    • でもiBeaconは全く触ったことなかったので発表自体楽しかった。他は色んなところでちょくちょく名前を目にする機会多かったので。
  • iBeaconの発表をしていた人が両者とも内定者とのことでしたが、どちらも社員と間違えるほどの発表クオリティで素晴らしかったですね。

ヤフーさん、クラスメソッドさん、面白いイベントありがとうございました。

Sphinx+翻訳 Hack-a-thon 2014.1でEpub3ビルダーの実装の続きをしてました #sphinxjp

Sphinx+翻訳 Hack-a-thon 2014.1/Sphinxハンズオン

かなり久しぶりに参加してきました。と思って調べてみたら、昨年の10月に参加していたようです。記憶は当てになりませんね。

やったこと

SphinxのEpub3ビルダー実装しようと悪戦苦闘してました。

最初に言っておきますが、Epub3ビルダーといっても、まず形式をEpub3形式にする最初の段階のものなので、これができあがったからといってすぐに縦書きだとかルビ使えるとか思わない方がいいですよ。

Epub3ビルダー、これまで躓いていたのは目次に当たるナビゲーションドキュメントの生成だったのですが、ここにきてようやく形になりつつあります。

下のスクリーンショットはMacアプリのMurasakiで開いたPython3.3のepub2ドキュメントです。目次の階層構造が複雑であるという点でテストに適しているので、Python3.3日本語ドキュメントのリポジトリをテストに使用させてもらってます。

次が今作っているEpub3ビルダーで生成したPython3.3のepub3ドキュメントです。

左メニューに表示された目次はまだ階層構造を表現できていないですが、単なるページ内での目次ならちゃんとepub2のものを写し取れるようになってきています。

…が、はっきりいってコピペ&場当たり的なコードで作っているので、現状では下のようにiBooksとか他のリーディングシステムだとinvalidだと警告が出ます*1

epub2の方だとこんな感じ。

結構長い間手を付けていなかったのでそろそろ作業再開して、いい加減報告できるような形にしたいと思ってます。

今日のハッカソンでepub2の方を生成するときの動きをデバッガ使って結構調べられたので、epub3の場合はどうするか考えながら作業進めたいですね。

*1:別にiBooksがEpubリーディングシステムとして優れているというわけではないと思いますがね。

2013年を振り返ってみるとアニメのことばかり思い出しますね

何となくTwitterを見ていたら2013年の振り返りエントリを書いている方が結構いらっしゃいますし、いい機会なので私も真似て今年を振り返りたいと思います。

人生が好転したときに「あの時って俺、どうだったっけ?」と振り返られる記録を残すという意味でも。

PyCon APAC 2013 in Japanで登壇した夏

以前書いたとおりです。

実はこの時、発表用の資料を用意するとき色々個人的に苦しかったことがあったのですが、今後何かの機会にチラシの裏でかければ良いなあ、とか思ってます。

あ、後こういう機会でないと書けないので言及しますが、資料用意するときにenchantMOONが大変活躍しました。

(私の目につく範囲の)プログラマ界隈では評判が悪い(?)enchantMOONですが、個人的にはかなり助かったことをid:shi3z氏にお伝えしておきます。

ゼーガペインの夏

今年2013年はゼーガペインにとって非常に多くのことがありました。

サンライズフェスティバルで後半の一挙放送をしてくれたこと、公式でリセット祭りを開催してくれたこと、ゼーガペインの新たな動きが始まったことなど、ゼーガファンとしては望外の喜びでしたね。

以下、サンライズフェスティバルの時に舞浜アンフィシアターに言って撮影してきた写真をいくつか掲載してお茶を濁します。

舞浜の空は青かった。

マジェスティックプリンスが放送された夏

今年どころかここ数年で一番見てよかったと思えるアニメです。アニメ見ていて良かったと思える作品に出会えたのは久々でした。

このアニメ見た人は『オフィシャルアーカイブ』は絶対に買った方がいいと思います。

銀河機攻隊 マジェスティックプリンス オフィシャルアーカイブ

銀河機攻隊 マジェスティックプリンス オフィシャルアーカイブ

  • 作者:
  • 出版社/メーカー: 一迅社
  • 発売日: 2013/12/13
  • メディア: 単行本(ソフトカバー)

結論

あれ、夏のことしか振り返ってないし、アニメのことばっかりだ!

第8回Jenkins勉強会に参加してきました #jenkinsstudy

一度もJenkinsをまともに試していないのに(から?)、Jenkinsの勉強会に参加してきました。

第8回Jenkins勉強会

継続的デリバリーだとか継続的インテグレーションだとか、いまやIT系(特にWeb系)では当たり前になっているというのに今まで手を付けていなかったので、始める言い訳としていいかなと思い、参加してみました。

以下、話を聞きながら適当にメモしたことを箇条書きにして備忘録代わりにします。適当なので内容的に間違っている可能性あるので、そこら辺はご了承の程を。

川口さん:「2013年Jenkinsの歩み」

  • 1090人のコミット人数
  • 平均1人20のコミット
  • 62コミット/day
  • プロジェクトとしてはかなり大きな方

  • カオスになっていたgitプラグイン

    • 2.0にするときに設定画面を簡素にした
      • 複雑さは奥に押し込めた
  • gitのブランチをプッシュしたらJenkinsが走るように出来るようになった
  • かなり内部のパフォーマンスを上げたんだな、という話しが続く

    • SSHフローコントロールのあたりをいじったり
  • OS Xの仮想化とかアツイ話しやで。

    • ZFSとか使った <- Sunが潰れてから初めて!
    • cloudbees.com/osxの話し
      • iPhoneアプリとか作っている人でOS Xのビルドしたい人とか試してみてほしいですね」

Yahoo!japan Jenkinsはじめました - Yahoo! JAPANのCI/CD

  • 「始めました!」という話しから「結構使ってきたよ」という話しに変更とのこと。
  • Yahoo!のプロモーション広告担当の人(らしい)
    • Yahooの石川真幸さん
  • Ops2名 + Jenkinsで運用

  • マスター3台、スレーブは各10台

  • デプロイ

  • 最初は有志の活動、後に組織化してエバンジェリストが出来る

  • 結果

    • Jenkinsのジョブから、1Clickでデプロイを実現
    • 運用体制2名での確立ができた
  • 課題とかトラブル事例

    1. JenkinsとGitHubエンタープライズの連携にSCMポーリング使っていた
      • GitHubエンターブライズに負荷集中!
      • そのため、Webhookに切り替える
    2. サーバを増やすときに稟議を通すのが大変
      • 仮想環境を有効活用しよう!
        • Jcloudsプラグイン
          • これを用いてOpenStackやCloudStackとかとJenkinsの連携を行う
        • 社内でOpenStackベースの社内PaaSと連携して、物理サーバ不要とした
        • ビルド終了で仮想サーバも自動削除
    3. その他細かい物
      • 細かいフロー(リリース、ジョブ数増加)
      • テストコードが不足していたりとか
      • もっと高度なデプロイに挑戦
        • 今注目されているBlueprint deployment(ここ自信なし)とかImmutable Infrastructureとか
  • まとめ

    • CI+CDを達成するために必要な2つのこと
      1. エバンジェリスト’s
        • 周囲にその大切さを伝え、巻き込んでいくことの重要性
      2. ルールや議論はほどほどで、まずはやってみること!
  • 質問

    1. (メモし忘れました)
    2. ボトムアップで始めたと言ったが、何年前から始めた?」
      • 途中入社のため詳細は把握してないが、少なくとも3-4年前から始まっている
    3. 「上手くいかないテストとは具体的にどういった所か?」
      • 単純にテストを書く習慣がないということに加えると、画面など主導で行わざると得ないところ
        • 今後Seleniumとか推し進めているところ
    4. 「社内PaaSにOpenStackを使うようになった経緯とその利点とかあるかどうか」
      • 元々社内PaaSがあったが、古くなっていて調査したところ、OpenStackが良さそうだという結論になったので採用した
      • 拡張しやすいので、社内のセキュリティルールに則した独自の仕様を盛り込むことができるのがいい

株式会社シフト 玉川さん:Jenkinsエンタープライズについて

注:だいたいここら辺から内容の理解も追いついていないので力尽きてメモが適当です!

  • 第三者検証をやっている会社の者

    • 基本的にマニュアルテストをやっている会社
      • 私は自動テストやCIの導入を仕事にしている
    • Cloudbeesとパートナー
    • Jenkinsに関するセミナーとかもしている
    • Jenkins Enterprise By Cloudbeesの販売代理店も担当している
      • Enterpriseにしかない独自のプラグインとかも使える
  • Jenkins Enterprise By Cloudbeesの特徴

    1. 豊富なプラグイン
      • 大きな軸
        • 稼働率向上
          • High AvailabilityとかJenkins Operations Center
          • Folders Plugin
            • ジョブをフォルダに入れて階層管理
          • Templates Plugin
        • 大規模開発向けのプラグイン
        • セキュリティ向上機能
          • Role-Base Access Controlo Plugin
          • Secure Copy Plugin
          • Custom Update Center Plugin
            • インストールするJenkinsのコアやプラグインのバージョンを社内で縛る機能
        • リソース最適化

LTの時間

メインのセッションが終わって休憩を挟んだ後LTの時間になりました。上の写真はその休憩中に配備されたお菓子や酒類の成れの果てです。

割とすぐに無くなってしまった…かのように見せかけて、人数が結構こなかったせいか、あまりが出そうだったので主催の人がどんどん取ってってくださーい(余っても処分に困るので)、といってましたね。

後すみません、お菓子食べるのに集中しててLTのメモするの忘れたため、LTに関しては全く記録がありません!話しは聞いていましたけどね!

参加してきた感想

これも箇条書きで適当に残しておきます。

  • かなりの人数の多さ

    • 普段参加している勉強会・コミュニティとは違う層の人が多い印象
    • スーツな姿の人も結構目立ったところが印象的
    • コミュニティが力だと言っていたが、確かにそうなんだろうと感じる
  • 最初の導入がJenkinsの2013年の現況と歴史みたいな話しだったので、初心者でも分かりやすくて良かった

    • こういうとっかかりがあると入りやすい、とか思ったりした。
  • 川口さんのライブコーディングがさらっと自然に出来ていたのが印象的

    • 「英語をタイプしながら日本語を喋るのは難しい」という発言が出てきていました
      • そうはいいながら結構スムーズに出来ていたので、講演慣れしてそうだなー、という印象を受けました

本当はもっと文章の体で記事を残そうかと思ったんですけど、メモから文章に書き直す間に時間が過ぎて記事を更新する意欲がなくなりそうだったので、適当でもいいから更新すること優先にしました。

とりあえず参加してみて良かったです。流石にそろそろJenkinsとか継続的インテグレーション関連のことも知らないといけないと思っていたので、とっかかりとして非常に良かったです。

はてなのイベント #エンジニアブロガー祭り に参加してきた

12/14(土)に品川で開かれた「はてなエンジニアブロガー祭り」というイベントに参加してきました。

どういう内容のイベントだったかというのはもう私が書く必要ないくらい他の方が詳細を書いていらっしゃいますし、他の方のエントリをまとめた記事も出ているので、当日何があってどういう内容だったかというのは触れずに、参加してみた感想でも書いておこうかと思います。

写真で軽く振り返るイベントの様子

Untitled

こんな感じでクラウディアさんが入り口で迎えてくれました。

Untitled

後ろで展示されていたSurfaceです。実際に触って遊ぶことも出来ました。写真はツインビーが動いているSurfaceですね。

Untitled

最初のはてなスタッフの方の発表の時に撮影した(はずの)ものです。id:onishiさんもid:hitode909さんも発表面白くて良かったですね。

私は今はてなブログを使っていますが、今まで知らなかったはてなブログの機能をid:onishiさんの発表で知りましたし、id:hitode909さんの発表は内容だけで無くLT5連発のテンポが良くて笑わせてもらいました。

Untitled

パネルディスカッションが始まる直前に撮影したものです。パネルディスカッションは結構内容が詰まっていたのですが、一番印象に残っていたのは 長永さん(id:a666666 / @kyanny)が元々は非モテブロガーだったというところ ですね。Twitterで初めて知ったので、Twitterのプロフィール写真の爽やかな印象からは想像できない過去の歴史話やはてなダイアリーでどんな記事書いていたかという話しなどは中々趣深くてよかったです。

いや人は見かけによらないものなんですね、なんて思ってしまいました。

Untitled

懇親会が始まってからのLTの時の様子です。こちらはMicrosoftの方がXamarinの発表をしているところです。が、最初の導入が藍澤祈だったので、最近のMicrosoftのフリーダムっぷりを再確認しました。

参加してみてどう思ったか

「あんまり長々と書く意欲もなくなって結局更新しない」というのがいつも陥りがちな私のダメなところなので、サクッと軽く書いて終わりにします。

イベントの最初から最後まで「みんなブログを書こう!」という、良い意味で意識の高まりが感じられるイベントでした。

多少のポジショントークはあったのかもしれませんが、主催のはてなの方だけではなく、登壇者の方の多くから「ブログを書いていて良かった」という趣旨の発言が自然と出ていたことが本イベントの良さを象徴していた気がします。

まとまった技術的な蓄積がないと中々ブログを更新しないという状態が続いていたので、こういうイベントにこのタイミングで参加できて良かったです。来年はもう少しブログの更新頻度を高めてみることを考え始めました。

あ、後これは書いておこうと思いますが、当日の全般にわたり、後ろのスクリーンに映されていたブラウザ画面を操作している方がプログラムの進行状況に即した画面を出していて、かなりいい仕事をしていたと思います。

最後になりましたが、主催のはてなの皆様、会場提供のマイクロソフト様、登壇された皆様、素晴らしいイベントをありがとうございました。