プログラマ行進曲第二章

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

2015年5月まとめ

はじめに

6月も半ば過ぎてから5月まとめを書くとか、中々習慣化してないことがバレバレだけど、このまま書かなかったら書かないままこの週間が終わりになりそうなので、過ぎても思い出せることだけ書いておく

cf. 2015年4月まとめはこちら

やったこと

  • iOSアプリ作りの勉強
    • 続けてる。
    • mixiのiOSアプリ開発勉強会も続けてる。というか最後まで通い続けた。詳しくは6月まとめに書くつもり。
    • 以前言及した本の実際の所は全て終わった(残っているのはsubmitのところなので、今後割愛するかも)
    • Swift1.2で書き換えながら学んだのは地味に収穫だった(と思いたい)。

TECHNICAL MASTER はじめてのiOSアプリ開発 Swift対応版

TECHNICAL MASTER はじめてのiOSアプリ開発 Swift対応版

  • Sphinx関連

    • Sphinx Tea Nightに久しぶりに参加した。
    • たまたま運がよかったのか、「SphinxのbuilderはVisitorパターンを使ってる」「build時に出来るdoctreeの内部構造を知りたいときはdocutilsのpseudo xmlの設定が使えるかも」という情報が得られて非常に満足度が高かった。
    • Sphinxに割く時間増やしていきたい…
      • 現状色々できてない。
  • 仕事

    • Ruby周り、よく分からないです。
    • HTML、CSSムズカシイデス。
  • アニメ
    • 楽しく見たい…

      所感

  • 4月に比べると後々に活かせる活動内容じゃなかった気がする(詳しく覚えていないので不明)

これから

6月まとめは6月中にやる。

ということをGoCon参加後の今日に書くのも何というかアレですね。

2015年4月まとめ

はじめに

先月から始めた月報を今回もやっていきます。

というかそういうことしないとアウトプットしようともしてないというダメな感じ。

やったこと

  • iOSアプリ作りのお勉強
    • 先月に引き続き、Objective-CでもSwiftでもやっている。
    • Objective-CmixiのiOSアプリ開発勉強会というのは変わらず。Swiftスタンフォード大学のSwiftで作るiOSアプリ講座に加えて、本でも勉強を始めた。この項目最後に該当の本を貼っておく。
    • 特に本で集中的にSwiftで書いてみたら段々iOSアプリの作り方が分かってきた気がする。特にSwift1.2になって、本の1.1用コードを自力で直しつつやってみたらCocoaPodsの使い方も含めて何となく分かってきた。
    • そしてCocoaPodsへの恨みが溜まってきた。
    • SwiftによるiOSアプリ開発、SwiftXcodeCocoa touchフレームワークとCocoaPodsを初めとしたエコシステム群の地雷全てを回避できるように動いていって初めてスタートラインになるって気が最近している。

TECHNICAL MASTER はじめてのiOSアプリ開発 Swift対応版

TECHNICAL MASTER はじめてのiOSアプリ開発 Swift対応版

  • ゼノブレイドを買った

    • New 3DSを買って一緒に。
    • とかく評判がいいのでとうとう買った。自分への誕生日プレゼント代わり。
    • まだ楽しさをそこまで実感できていないので、少しずつ進めていきたい。
  • gitの勉強してる

    • 仕事で多分これから同僚に対して教える機会が多くなりそうなのでgit力付けないと死ぬ。
    • というのは主要な動機ではないけれど、純粋にバージョン管理がどんな仕組みで動いているのか興味があって、普段(嫌に思いつつも)よく使っていて内部の仕組みに関する資料も豊富なgitを例にして勉強してる。
    • その一環として、自分の技術力向上のためにgitを自分で実装し始めたりしてる。ただ、中々時間が取れなくてまだ全然できてない。
    • 早いところadd, commitくらいできるようになりたい。がindex treeの実装で頭悩ましてる。まず仕様よく分からんし、今までバイナリ扱う機会ほとんど無くて勘所分からん…
  • Pythonに関して。

    • 最近ほとんどいじれてない気がする。
    • 最近Goの方がよくいじっている気がする。
    • 少しアレだなと思いつつ、いいネタが無くて未だにWebアプリ一つも作れてないのは変わらない。
  • 運動に関して

    • 最近空手も稽古日数少なくなっていて本格的にヤバい。
    • ストレスによる間食が増えていて俺の体重がヤバい。
    • なので少しIngressを軽く再開し始めた。
  • 仕事に関して

    • 察しろ。
    • というより書いていいことどれくらいあるのか分からんから書けないというのが正直なところ。
    • はい。
  • アニメに関して

    • 今期だけなのか、それとも年なのか、最近アニメ見ていても前ほど楽しめていない自分を感じている。
    • 将来が気になってアニメに入れ込めないのかも。
    • いずれにしてもあんまりよろしくない傾向な気がしている。

所感

時間の使い方を上手くやらないと死ぬし、運動しないと数年後死にそう。

とはいえ、githubみたいな表だった所に足跡は残せてないけど、3月よりかは後に残る作業をたくさん出来た気がする。

これから

iOSアプリに関しては5月くらいから何か自作のものを作ることを目標にしておく。少しは作り方分かってきたので。

最近読了した本のことについて軽く書いてみる

言いたいこと

ちょっとはプログラマの端くれとして最近読んだ技術書的な本の書評をブログにしたためたいと思いつつ、無駄に書評をかっこつけて書きたくなってきていつも無駄に時間をかけて結局お蔵入りすることが多いので、お蔵入りしないように適当に本のリンクと一言紹介だけで終わらせようという記事をかくことで精神安定を図ろうとする記事です。

無駄に長い。

ちなみに読んだ本、流し身じゃなくてちゃんと手を動かしたり一通り読み通したものを対象にしてます。

読んだ本 1冊目

はじめよう!  要件定義 ~ビギナーからベテランまで

はじめよう! 要件定義 ~ビギナーからベテランまで

読んだ理由

  • 仕事で要件定義っぽいことをすることになったけど、今まで経験無かったから。
  • こちらに代表されるような書評を読んで、ちょうどいいレベルの書籍だと思ったので。

感想

  • 「要件定義初めてやるけどかなり不安」という私にピッタリな分量&内容でちょうどよかった。
  • 特に分量がこれだけコンパクトで読み通しやすいのに結構内容が含められているのがよかったですね。

ちょうどこの本の読者を対象にしたワークショップをたまたま発見したのでそこに参加してもう少し勘所をおさえて実戦に活かしたいところです。

読んだ本 2冊目

Amazon Web Services 基礎からのネットワーク&サーバー構築

Amazon Web Services 基礎からのネットワーク&サーバー構築

読んだ理由

  • この書評読んで興味を持ったから。
  • AWSまともに使えない。
  • それ以前にネットワークとかサーバー構築でかなり基本的なところが抜けていると自覚していたので。

感想

  • 実際のネットワークの繋がり方をこれっぽっちも理解してないレベルだったので勉強にはなった。
  • ただ、AWSのことは大して理解が深まるわけではないのは当初の予想通り。
  • あくまで私みたいな初心者向け。AWSのことを深く知りたい場合は他の情報源を当たるしかないと思います。
  • とはいえ、「ネットワークのことを何も分かってない初心者がAWSを使ってどんなものなのかの触りを理解していく」ということは十分に達成できる書籍だと思うので、そういう場合には向いているかと。

穴が空きまくっている領域を少し埋めることが出来たので、次は『ハイパフォーマンスブラウザネットワーキング』とかを読んでおかないといけない気がする今日この頃。

ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化

ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化

ただ、実際のプロダクトとかWebサービス構築に繋がるように手を動かして作っていくことと上手くバランス取ってやらないと、いつまで経っても成長がないのでどんな風に進めようか悩んでいるのが最近です。

2015年3月まとめ

はじめに

「今年はもう少しブログ更新したい」とか思いながら前回の更新から1ヶ月以上経過してしまいました。

で、何かいいネタ無いかなと思っていたら、id:yosida95氏の2015年2月まとめのブログ記事をたまたま読んで、「この形式なら俺でも何とか出来そう」と思ったので手を出してみた次第です。

なので、章立てから何もかも全て上記記事のパクリです。吉田氏にお礼の念を飛ばしておきます。

やったこと

今年入ってからやったことをまとめようとすると書くのに時間かかって記事挙げられなくなると思うので今月のみを箇条書きで。

所感

1ヶ月単位で振り返ろうとしても記録取っていないと中々忘れてしまうものだなあと反省。そして頭脳労働だけじゃなくて身体を鍛える方にもう少しパラメータを割り振る必要があるかなと思う昨今です。何せ体力少ないので。

これから

前から書いていてまだ実現していない「これが私のプロダクトです」と言えるような何かを作る方向の作業に絞って行動したいなと思ってます。

2014年の振り返りと今後やっていきたいこと

要約

気がついたら前回ブログを書いてから半年近く経過していて、これはマズいなー、なんて思っていたので久しぶりに筆を執ってみようと思った次第。

Twitterとかでは休まず稼働していたけど、ブログでは近況も書いてないし、年末の振り返りとか年初の意気込みとかも放っておいたので、時季外れだけどそれらをやってみて文章書くのを思い出していこうというのが狙いです。

2014年(一部2015年)の振り返り

文章形式で書くと長くなってどうせ書くのに挫折するので、箇条書きで殴って書いていくスタイルにしていきます。

  1. 2014年の7月から働き始めた。

    • 実に無職期間2年超え(のはず)なので、生きるの大変。
    • この2年間、色んなことがありました…(遠い目)
    • この間に起こったことは一部ポエムにしたためたことがあるけど、オープンなインターネット上には書きたくないこと満載でした。はい。
    • Web系IT業界周りで散見されるけど、次の職場が決まっているのに「無職だ」とか言っている人たちの言動見て黒い感情がどろどろと湧いてきましたね*1
    • とりあえず今はIT企業じゃないところでHTML/CSS/JavaScriptとかWordPressで記事の更新してたりとかしてます。
  2. プログラミングは続けています。

    • だが成長遅くて泣ける…
    • とりあえず一つ「これ私が作りました」と言えるものが欲しいです。
    • できるならプログラミング分からない人でも存在意義が理解できるものを作ってみたい。
    • と思いつつ幾星霜。言うだけで形になっていないので辛い。
    • 最近は以下のことをやっている(気がする)
      • CSS設計の勉強。HTMLのお勉強も含めて。
      • JavaScriptで基本的なフロントエンド作りっぽいこと。
      • Go~
      • Webアプリケーションの作り方
      • iOSアプリの作り方(Swiftで)
  3. (仕事で)まるまる一つ全て自分の作業でサイトを作ってリリースした。

    • ごめん、嘘ついた。画像素材とかは別の人が作ったし、サイトのデザインはクライアントが要望したものだった。
    • どんなもの作ったかというと、「オンラインストアの期間限定キャンペーン用のランディングページ」です。
    • 「タブをクリックしたらそれに伴って商品画像とかリンクが切り替わる」的な挙動するページ作るの初めてだったので、何となく感慨があります。
    • 以前同様の仕事を担当していた人はjQueryでやっていたようなのですが、今回初めて要望された機能とかがあり、jQueryでやったらゴチャゴチャして死ねると思ったので、knockout.js使って解決。
    • knockout.js使うの初めてでしたが、かなり勉強になりました。オライリーのknockout.js本、マジ役に立った。
    • このknockout.js使った技術的な経験をブログかQiitaにまとめてみたいと思いながら時間だけが過ぎていく毎日です。

今後やっていきたいこと

これも箇条書きで。

  1. 何かプロダクトっぽいものを一つ出す。
    • WebアプリかiOSアプリで。
  2. SphinxのEpub3ビルダー、さっさとPRして取り込んでもらうようにする。
    • 英語辛い。
  3. epub関係のライブラリ作り。
    • epubで一攫千金目指す*2
  4. RubyHaskellを少しは書けるようにする。
  5. 低レベル・低レイヤーの技術や知識を深める
    • CとかRustとかDとか使うとか。
    • そもそもコンピューターサイエンスの知識をちゃんとやるとか
    • アルゴリズム分からない状態を解消するだとか。
  6. 自然言語処理とか機械学習だとか勉強したい。
    • でもトライしてみても特定分野の基礎学力無い人お断りな分野なので多分挫折する。
    • というかもう何回もトライしてみて挫折している。

もう書ける気がしないのでここら辺で締める。

*1:今でも湧きますけどね

*2:嘘だよ!

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

注意点

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

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