プログラマ行進曲第二章

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

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の関係者の方々、素晴らしいカンファレンスをありがとうございました。

こちらからは以上です。

積ん読状態になっている技術書(電子書籍)を再び読み始める方策を考えてみた

電子書籍で買った技術書がPCの奥深くに眠っていて紙の書籍よりも全然読み進められていないことに気がついたのでどうにかしないといけないと思ったのが動機。

結論

以上。

こんな感じ

狙っていること

  • PCを立ち上げたら嫌でも積ん読状態になっている技術書が目に入るので「しょうがない、読むか」と思う機会を増やしている
  • 読んでいないままだとデスクトップが乱雑なままなので、デスクトップを綺麗にしたい人は嫌でも積ん読を解消せざるをえなくなってくる。

注意点

普段からデスクトップが乱雑な人には恐らく効かない。

まあ、とりあえずの施策である。

WEB+DB PRESS vol.80の特集「エンジニアの学び方」の書評を読んで気になったので該当書籍買って読んでみた

要約

  • はてなブックマークを眺めていたら、「エンジニアの学び方」というタイトルの書評エントリを見かけた。
  • 記事を読む限り、今の自分のニーズに合致しそうなことが書いてありそうだったので、該当書籍の「WEB+DB PRESS vol.80」を買ってみた。
  • 該当特集の「エンジニアの学び方」を読んだところ、この特集内で言うところの「深い理解」軸と「応用対象」軸の学びに関して2年間くらい悩んでいたため、今後の学習計画の糸口が出来て非常に良かった。

Web+DB PRESS vol.80を購入したきっかけと実際に特集を読んでみて

直接のきっかけは上記要約に書いたように「『エンジニアの学び方』というタイトルの書評エントリを見かけて、内容が気になったから」というものです。

「じゃあ、何で該当エントリを読んで特集の内容が気になったの?」というと、2年くらい前から「個別具体的な技術とか知識とかツールの使い方ばかり覚えてきたけど、そういったものを自分の作りたいものに上手く活かせない…どういう風にしたら学んできた技術なりツールの使い方を実際のプロダクトを作る際とか目の前に表れた問題を解決する時に応用できるんだろう?」という疑問を持っていたからです。

そんな疑問を持っていた私に、この「エンジニアの学び方」では以下の2つのモデルを教えてくれました。

  • 知識には3つの軸がある

    1. 「広い視野」軸
    2. 「深い理解」軸
    3. 「応用対象」軸
  • 学びには3つのフェーズがある

    1. 「知識収集」フェーズ
    2. 「抽象化」フェーズ
    3. 「応用」フェーズ

それぞれの詳細について書くと長くなってしまうので割愛しますが、上記のモデルで言うと私は知識も学びも1ばかりに偏ることをずっとしていて、2,3を疎かにしていることが特集を読んだ後はっきりしてきました。

2,3に当たる部分を疎かにしていることは何となく自覚していたのですが、「抽象化」フェーズといった明確な名前と位置づけを与えられたことで「今自分がしている学びはどのフェーズに当たるもので、現在の自分に足りない知識はどの軸のものか?」といった判断がしやすくなったと思います。

領域は多少違えど、デザインパターンの文脈やリーダブルコード的な文脈で良く言われている「名前重要!」という話しと被るところが多く、理解をモデル化して適切な名前を与えることの大切さを実感できました。

特集「エンジニアの学び方」の内容に関してもっと知りたい方は著者の西尾さん自身がブログに書いているので、それを読むといいと思います。

結論

非常に俺得な記事でしたので非常に幸せになりました。

特集記事を書いた西尾(@nishio)さん、書評エントリを書いたmarcoさん、ありがとうございました! 手を広げすぎると失敗するので後回しになると思いますが、この特集が生まれるきっかけになった『コーディングを支える技術』も良い本だと聞いているので、いずれ買って読んでみようと思います。

特集気になった人はWEB+DB PRESS vol.80買ってみるといいと思います。他の特集も「Web技術入門」だとか「テスト駆動インフラ」だとか「Courseraで計算機科学を学ぼう」だとかあるので、私みたいに基本的なところがボロボロ抜け落ちている人間にはオススメだと思いますよ。

WEB+DB PRESS Vol.80

WEB+DB PRESS Vol.80

電子書籍版もあるみたいですね -> 電子書籍版 Web+DB PRESS vol.80

GAEとかVue.jsとかMartiniとかいじって何か作り始めた

地味にiOSプログラミングは続けているのだけれど、表に出せる結果が無いのでショボーンとしつつ、久しぶりにブログでも更新しようかなとか思い始めて今こうして書いている。

が、特にネタは無い。

強いて言えば、タイトルで書いたように、GAE/Goを使って何か一つWebアプリっぽいものをこしらえたいなと思ったので、まだ動作するわけじゃないけどMartiniを使ってアップしてみた。

本をどこまで読んだか読書記録を残しておけるものが欲しかった*1ので、それが出来ないかな?と思いながら作り始めた。

で、作りながら「これ、Vue.jsみたいなクライアントサイドの仕組みを勉強するいい機会なのでは?」と思ったので、それにも挑戦している。

現状、ローカルで単にブラウザを起動して試したときではちゃんとVue.jsのデータバインディングが機能していたのに、goapp serveで実行すると何故かデータバインディングが機能しなくて困っているところだ。

フロントエンド周りのこと全く不案内で意味不明なので自力で解決できるのかよく分からないでやっている。何かクリックでイベントが発火しなかったりして困っているのだった。

*1:というかiOSアプリでそういうものがある

iOSプログラミングの勉強をしているのですが、こっそりと…

今やっている勉強メモとか貼り付けておきます。

上記リンク先はQiitaの限定共有です。勉強しているネタ元は以下の書籍。

iOS Programming: The Big Nerd Ranch Guide (4th Edition) (Big Nerd Ranch Guides)

iOS Programming: The Big Nerd Ranch Guide (4th Edition) (Big Nerd Ranch Guides)

なんで限定共有でやっているかというと…

  • 勉強途中で書き途中だから
  • それ以上に本の中身の記述をそのまま書いている箇所が多いため、公開で投稿してるとアウトだと思っているから

じゃあ何で今回記事にしているかというと、今はこういうこと勉強してます!というアピールしたいから。

なので、ある程度時間が経過したらリンクをサクッと削除すると思います。

こうやってブログ更新しておかないと勉強しているのに何もやってないように外からは見えるだろうからです。

無職は辛い!!仕事したい!!

Xcodeにプラグインを導入してみた

最近iOSプログラミングもちょびちょびと勉強しているわけですが、iOSプログラミングする際に使うXcodeにそろそろプラグイン導入して楽したいなと思い始めてみたので、軽く調べてみました。

ここら辺を見ると「何をすればプラグインを導入できるか」「どういう風に役立つプラグインがあるか」といったことが一望できるので、まずはここら辺から始めてみるといいかと思いました。

プラグイン入れすぎるとXcodeが重くなるのかどうかは知りません。

最初に何を入れればいいか分からないという人は、Xcode5に対応したパッケージマネージャのAlcatrazとコード補完を強化するプラグインFuzzyAutocompletePluginを入れてみるといいと思います。

前者を入れてしまえば後はメニューからプラグインを管理できるだけでなく、どんなプラグインがあるのか概観できるし、後者はコード補完がデフォルトより融通が利くようになるので導入直後から便利さを感じ取れると思うのでお勧めです。

"The Flask Mega-Tutorial"のPartXIVまで進んでて、詰まってる

前回の記事の続き…というわけではないが、ブログ更新しないと永遠に更新しなくなりそうなので、こんなネタでもいいから書いてみる。

実は2〜3週間前(確か)には既にPart XIVまで進んでいたのですが、諸事情あってそこで止まってます。

  1. 右腕を怪我したこと。

    • 実はまだ痛みがあるので空手とか激しい運動は止めた方がいいと医者から言われている。
  2. Part XIVが上手くいかない

    • i18nl10nなので日本語圏に済んでいる私としては関係ある話題なのだが、最初に取り組んでみたとき、書き写すのを間違えたのか、ちゃんと動かなくて放置していた。
  3. 最後に提供されているソースコード使って起動させようとしても失敗した。

    • 途中上手くいかないから最後の完成物を使って次のPartに進もうとしたらそれが動かなくて萎えた & 今日久しぶりに取り組んで、次のPartからやろうとしたらPart XIVの成果を使いそうな漢字だったので現在進行形で萎えている。

そんなわけで今はiOSプログラミングとかに現実逃避している。

そうじゃなくても現実逃避している、という突っ込みは受け付けません。