2016年振り返り

このブログを読んでくださっている皆さん、今年もお疲れ様でした。皆さんにとってどんな年だったでしょうか。

参加しているCOUNTDOWN JAPAN 16/17の会場から今年を振り返ってみようと思います。何気にiOSアプリからブログ書くのは初めてだったり。

技術面の振り返り

技術的には個人的に3つほどやってました。振り返ってみると、どれも中途半端に終わり、迷走感があります。

Python

仕事で触れたことをきっかけにCheckiOの問題を解いたり、Flask、Djangoチュートリアルをやってみたりしました。

Kotlin

バージョン1.0が出たことをきっかけに公式チュートリアルをやったり、Android本をやったりしてみました。

iOS / Swift

アプリを作り上げることを目的に、Stanfordの講義なんかを見つつメインにやっていたものの、色々あって途中で断念しました。

その他振り返り

技術以外だとどんなことをやってたか振り返ってみます。

数学

プログラマーとして社会人になったけど高校数学を1から独学しているという、かなり久々に書いた記事が、ブログを書き始めて以来初めてバズりました。機械学習なんかで必要になることもあり、数学ブームと、学習し直したい人の需要の高まりを感じました。

進捗的には1年をかけて数I+Aの範囲を終えることができました

ロードバイク

ロードバイクを購入しました。これが一番大きな変化かも。ただ、あんまり乗れてないので2017年はもっと乗っていきたいです。他県への泊まり込みでの遠出なんかもしてみたいところです。

ギター

去年から継続してゆるくやってます。これももっと上手くなって他の人と合わせたりとかしてみたいです。

まとめ

振り返ってみると、何かこれといって成し遂げたものはないですが、それなりに楽しく過ごせたので、まあいいかなと思ってます。

来年も何か大きな目標をドンと立てるというよりは、数学やらギターやら技術やらを毎日地道にコツコツやってスキル向上していけたらと思っています。
働きながら何かを身につけようとすれば、時間が足りないぶん、やはり小さく積み重ねていくしかないと思っています。

ではでは皆さんよいお年を!

海外のテクノロジー・開発系の情報収集のために自分が行っている方法

テクノロジー・開発系の分野に携わっていると、日々の情報収集は欠かせません。国内の情報だけでも十分ではありますが、海外の情報に触れることも大切だと思います。

海外の情報であっても、ニュース系の記事は大抵すぐに翻訳されますが、コラムやエッセイなどは数ヶ月遅れでやっと翻訳されて、日本で話題になるのは結構あとだったりすることも多いです。

日々最新の情報を収集するため、僕が行っている方法を紹介したいと思います。僕の興味のあるiOS開発やSwiftでの例もとりながら紹介していきたいと思います。

Twitter

まずは基本のTwitter。興味のない記事が並びまくるメディア系のアカウントではなく、個人のアカウントを中心にフォローしています。日本人に多い、1日にツイートが途切れなく続くような人は少ないため、フォローを増やしてもそんなにノイズが無いのでいい感じです。

フォローしているTwitterアカウントの例です:

ユーザー名 名前 説明
@SwiftLang Swift Language AppleのSwift公式アカウント
@clattner_llvm Chris Lattner Swift、LLVMの作者
@modocache Brian Gesiak Swift、LLVMのコミッターで、Quickテストフレームワークの作者
@NatashaTheRobot NatashaTheRobot This Week in Swiftというニュースレターの作者

reddit

次に、日本では海外の2chと紹介されることが多いredditです。

2chredditで対応させると、板→subreddit、スレッド→post、レス→commentとなります。カテゴリーごとに区切られたsubredditの中で、誰かがpostを作成し、その中でcommentにより議論するという流れです。self postという、リンクを伴わずpost作成者の質問などに対して議論する場合もありますが、基本は記事へのリンクを貼って、それに対してみんなで議論するというのが主流です。

2chと大きく異なる点は、commentがツリー型となっている点と、それぞれのpostやcommentに対してupvote (👍)、downvote (👎) が出来る点です。これにより多くの人の支持を集めたpostやcommentが上位に来るような仕組みになっています。誹謗中傷や的外れなcommentは勝手に沈んでいきます。

興味のあるsubredditを登録してチェックしていくのですが、僕なりのredditの歩き方としては以下のような感じです:

  • 賑わっている、または重要なsubredditは、毎日同じ時間に、上部のtopタブを押し、links fromを24 hoursにしてチェック。これでその1日に話題になったpostをチェックすることができる。
  • 毎日きっかり同じ時間に見れるとは限らないので、24時間から外れて話題になったpostの漏れを逃さないため、hotタブを押し、"1 day"をキーワードにブラウザで検索、引っかかったpostをチェックする。
  • 賑わっていない、またはそこまで重要でないsubredditは https://www. reddit. com/r/[subreddit名]/top/?sort=top&t=week*1をブックマークに追加して毎週チェック。それらのブックマークをまとめたフォルダを作って、一気に全部開けるようにしておくと良い。
  • Reddit Enhancement Suiteという拡張機能を入れて使いやすく見た目や機能をカスタマイズ。

登録しているsubredditの例です:

subreddit 説明
/r/programming プログラミング全般
/r/iOSProgramming iOSプログラミング
/r/swift Swift

Hacker News

次はHacker Newsです。ポール・グレアムY Combinatorによって運営されている、テクノロジー特化のredditみたいなところです。redditジョーク受けがいいですが、こちらはもうちょっと真面目なコメントが上位に来やすいという印象があります。

Hacker Newsはそのままでは素っ気がなく、記事の数も多く使いづらいので、僕はhnrssという、条件でフィルターしてRSSとして垂れ流してくれるサービスを経由して購読しています。具体的にはhttp://hnrss.org/newest?points=200というフィードで、200ポイント以上のポストだけ流れてくるようにしています。

あとはHacker NewsにもHacker News Enhancement Suiteという拡張機能redditと同じようにあるので、これも入れています。redditと違いコメントの折りたたみなどが素のサイトでは出来ないため、redditのものより重宝しています。

メールマガジン

メールマガジンもいくつか購読しています。Podcastと同じく、近年見直されている昔からあるツールではないでしょうか。

毎週決まった曜日に、その週のニュースをまとめてキャッチアップできるので、役に立っています。また、複数購読しておくと、重要な記事が何回も目に触れるという利点があります。

購読しているメールマガジンの例です:

まとめ

ここまで僕なりの海外の情報収集について紹介しました。

1次ソースを直接見るのではなく、コミュニティによってキュレートされた情報を収集している形になります。これでも十分だと思いますが、自分の専門分野については1次ソースに当たったほうがいいかと思われます。

皆さんもこういう情報収集しているよーというのがあったら是非ブコメなどで教えてください。

*1:スパム対策のためか、はてなブログredditドメインを含むURLを貼れないためこういう書き方になっています。実際に入力する際はスペースを省いて下さい。

高校数学独学の途中経過ー数学I+Aを終えて

タイトルの通り、『プログラマーとして社会人になったけど高校数学を1から独学している』という記事で紹介した長岡の教科書の数学I+Aを終えることが出来ました。

Studyplusのログによると、今年の1/4に手をつけ始めて、途中2月半ばから1.5ヶ月ほど休みを入れたものの、そこからはコツコツと継続して、10/2にようやく終えることができました。休みの期間を省くと約7.5ヶ月かかったことになります。標準的な高校生が1年をかけてこの範囲を学習することを考えると、それなりにいいペースなのではないかと思います。ただ、問題集などは全くやっていないので、問題を解いた量なんかは比べ物にはならないですが。

勉強法

長岡の教科書を教材にするにあたって僕が取った勉強法を書いていきます。

勉強のスタイルとしては、解説のあとの問とセクションごとの演習だけ解いていく形で進め、センター試験対策である章末問題は飛ばしました。また、間違えた問題を繰り返し解くといったこともしませんでした。
あくまで必要になった時に引っ張れるような知識として蓄えることが目的で、受験数学の問題解決能力をつけたいのではないからという理由です。問題解決はプログラミングの世界でやっていこうという方針です。数学が得意な知人の方に、受験数学と大学からの数学は別物であると教えていただいたこともあります。
そのため、『プログラマーとして社会人になったけど高校数学を1から独学している』を書いた時点では目標としていた数検の受験も止めることにしました。さくっと高校教科書を終わらせて、その先の大学数学に進もうという考えです。

早速役に立っている

高校数学を勉強していて早速嬉しいことがありました。
ソフトウェアの世界では枯れた技術であるデータベースの勉強をしようと、『達人に学ぶ SQL徹底指南書』を読み進めているのですが、そこに数学Iで学習した集合や、数学Aで学習した順列と組合せが出てきたのです。『1-2 自己結合の使い方』という章で、自己結合の背後には「順列」、「組合せ」、「集合」が隠れているというところです。
もし数学I+Aを勉強していなければ、これらのキーワードに首をひねっていたところでしょうが、勉強していたお陰ですっと頭に入ってきました。著者は、この本をただのSQLレシピ本として読むのではなく、集合指向的考えでSQLに臨むことができるようになって欲しいといったことを書かれていますが、集合とはなんたるかが分かっている分、そういった考えが出来やすくなっていました。
高校数学がプログラミングに効果を発揮した一例です。

数学の旅は続くよ、どこまでも

次は数学II+Bとなります。

これまでは中学数学のそのまま延長といった感じでしたが、これからは複素数微分積分、ベクトルといった、特に独学で学ぶにはなかなか手強そうな単元に入ってきます。
しかし、プログラミングで手強い問題を解決する快感を覚えてしまったからか、こういったキーワードを目次で見るだけでワクワクしてしまいます。数学が楽しくてしょうがないのです。

果てしなく続く数学の旅、新たな世界へ運んでくれると信じて、これからも続けていこうと思います。

【音声DVD-ROM付】長岡の教科書 数学I+A 全解説

【音声DVD-ROM付】長岡の教科書 数学I+A 全解説

【音声DVD-ROM付】長岡の教科書 数学II+B 全解説

【音声DVD-ROM付】長岡の教科書 数学II+B 全解説

【プレゼントあり】Rocksmithというゲームでギターを楽しく始めよう!

昨年の7月から、止めたり再開したりしながら地道にエレキギターを練習しているのですが、その中で僕が遊んでいる『Rocksmith』という素晴らしいゲームについて紹介したいと思います。

記事の最後にゲームのプレゼントも用意しているので、ギターに興味のある方は最後までお読みいただければ幸いです。

Rocksmithとは

Rocksmithとは簡単に説明すると、本物のエレキギターを専用ケーブルでゲーム機に繋いで、Dance Dance Revolutionのように、流れてくる譜面に合わせてギターを弾いて遊ぶゲームです。売り文句は"the fastest way to learn to play guitar."。いちプレイヤーとして、誇大広告ではないと自信を持って言えます。
Rocksmith 2014という無印Rocksmithの続編が現在の最新版で、対応プラットフォームはWindows/Mac/PS3/PS4/Xbox 360/Xbox Oneです。

Rocksmith界のアイドルAudreyのプレイ動画

Dance Dance Revolutionを知らない方などはイメージが湧かないでしょうから、動画を見ていただきたいと思います。当時10歳の女の子AudreyがRocksmithでメタルの難曲を弾いている様子です。

どうでしょう。楽しそうじゃありませんか。

力量に合ったプレイができる

「楽しそうではあるけど、いきなりこんなの弾けねーよ」と思った方もいるでしょうが、心配はありません。易しいものから難しいものまで、様々な難易度の曲が揃っていますし、プレイヤーの力量に合わせて譜面に並ぶ音符の量を減らすことで難易度を調整してくれる機能があるので、自分の好きな曲を易しいバージョンで弾くといったことが可能なのです。

弾ける曲については、Wikipediaにリストがありますので、自分の好みのアーティストの曲がないか探してみてください。

ラインナップとしては、メジャーどころでいうとNirvanaFoo FightersGreen DayMuseなどの曲があります。邦楽もほんの少しだけ存在し、B'zや9mm Parabellum Bulletなどの曲があります。『キル・ビル』で使われた布袋寅泰の『BATTLE WITHOUT HONOR OR HUMANITY』なんかもあったりしますね。

ゲーム本体についてくる楽曲は少なめなので、1曲大体¥360でDLCを買っていくことになります。高いと思うかもしれませんが、ゲーセンで音ゲーを遊ぼうとすると100円硬貨がどんどん吸い込まれてしまうことを考えると安いのではないかと思います。 あとは無印Rocksmithの曲をインポートするには無印Rocksmithに加え、インポート用の¥1,200のDLCを買わなかればなりません。これはちょっと高いかなと思いました。

また、法的にはグレー(というかブラック?)なので小声で話しますが、Windows/MacについてはCDLC (Custom DLC)という形で、ユーザーが作成した譜面で演奏することも可能です。CDLCを使えばラインナップは無限に広がります。

2016/10/04に大規模無料アップデート実施

このRocksmithですが、現地時間2016/10/04に、Rocksmith 2014 Edition Remasteredとして大規模なアップデートが行われます。それも無料です。難易度調整の細かな設定や、統計機能、曲の検索の改善などが行われます。
あこぎな課金ゲーが増える中、これだけの大規模アップデートを無料で行ってくれるとは素晴らしいと思います。

Rocksmith 2014を1名の方にプレゼントします!

お待たせしました。では、プレゼントのコーナーです。

大規模アップデートを記念して、布教活動としてRocksmith 2014を1名の方にプレゼントします。

The Humble Storeというサイトを利用し、Steamキーのギフトという形で送らせていただきます。

応募方法

それでは応募方法です。

応募期間

2016/10/04(火) 21:45〜2016/10/09(日) 23:59まで とさせていただきます。

注意

ゲーム単体では専用ケーブルであるリアルトーンケーブルが付いてこないため、ゲームをプレイしたい場合、 エレキギターとケーブルはご自身で用意していただく必要があります 。ご了承ください。

と、ここまで書いて調べてみたら、リアルトーンケーブルが国内では在庫切れで買いづらい状況になっているようですね…。無印Rocksmithのケーブル同梱版を中古で買うのが安上がりなようです。ケーブル自体はWindows/Mac/PS3/PS4/Xbox 360/Xbox One版全て同じものですのでどのプラットフォームに同梱されているものでも構いません。

また、Steamキーを利用する関係で、 対応プラットフォームはWindows/Mac となります。ゲームのページでシステム要件などをよく確認してご応募下さい。

応募方法

プレゼントをご希望の方は、この記事を読んでプレゼントに応募した旨と、ご自身のメールアドレスを記入して、下記の私のTwitterアカウント宛にダイレクトメッセージを送信してください。
https://twitter.com/tommy6073

複数の方の応募があった場合、抽選にて当選者の方を決めます。抽選結果はダイレクトメッセージにてお知らせいたします。

では、奮ってご応募下さい!

最後に

この記事をきっかけにRocksmith (ロック鍛冶屋) が1人でも増えることを祈ります。

ギター楽しいですよ🎸

ラップトップを手に闘った悲劇の革命家アーロン・スワーツ

久々に心動かされる映像作品をNetflixで観ました。
2013年に自殺という形で26年の短い生涯を終えたプログラマー、活動家であるアーロン・スワーツのドキュメンタリー『インターネットの申し子: 天才アーロン・シュウォルツの軌跡』です。
観ようと思ったきっかけはうめのんさんのブログの『IT業界の住人が好みそうなドキュメンタリーがNetflixにある |』という記事です。せっかくの連休なのに天気が悪く暇だったので観たのですが、もっと早く観ておきたかったと思える作品でした。

アーロン・スワーツについて

米国においてはオンライン海賊行為防止法案(SOPA)騒動の時などにITの専門家としてテレビにも出演していたほどの有名人であるアーロン・スワーツですが、日本ではあまり馴染みがないかもしれないので簡単に紹介しておきます。

1986年にイリノイ州ハイランドパークに3兄弟の長男として生まれ育った彼は、RSSの構想に関わり、スタンフォード大学を1年で退学したあとY Combinatorに採用され、そこでredditの共同経営者となります。また、Python界隈ではweb.pyというウェブアプリケーションフレームワークの開発者としても有名なようです。その後、連邦裁判所の訴訟情報公開システムPACERや、論文などをネットで配布する電子図書館JSTORを相手に不正を正そうとプログラミングを武器に闘い、晩年はSOPAに反対する運動を展開します。そんな中、FBIや検察、MITに目をつけられ執拗に捜査され、それに耐えきれなくなってしまったためか最後は自殺してその生涯を終えます。

神童時代

そのアーロンですが、作品の中で神童っぷりが語られています。

3兄弟とも好奇心の多い子どもだったようですが、その中でもアーロンは抜きん出て天才ぶりを発揮していました。
例えば3歳の時、父親に「無料の家族向けの娯楽って?」と聞くので何かと思ったら、冷蔵庫に貼ってあるポスターに書かれていることを読んでいたというのです。
また、同じく3歳の頃からコンピューターに熱中し、12歳の時には誰でも編集可能な情報提供サイトを作り上げます。それなんてWikipedia?と思ってしまいますが、アーロンはWikipediaが世に出る5年も前に12歳という年齢で同じアイデアを形にしていたのです。
そして、RSSの構想に関わり始めたのも若干13歳でした。

これらのエピソードを聞いて、本当の天才というのは存在するんだなと思わされました。

印象的だったのは、自殺から時が経っていないにも関わらず、彼の幼少期を語る時、両親や兄弟の目からは優しさが溢れていることです。短い生涯ですが、周りの人に対して強烈な閃光を残していったのだと思います。

枠に収まりきらなかった学生時代

そんな彼ですが、高校時代は押さえつける学校の教育に馴染めず、前述の通りスタンフォード大学も1年で退学してしまいます。常に物事を疑問の目で見て常識を疑っていた彼には、学校という枠は狭すぎたのでしょう。

活動家時代

redditの共同経営を経たのち、法外な値段を要求するうえ検索性も全く無い、連邦裁判所の訴訟情報公開システムPACERや、こちらも高額なライセンスを支払わないと論文などを閲覧できない電子図書館JSTORを相手に、プログラミングの技術を駆使して、それらの所有物を無償公開してしまおうという闘いを挑みます。このあたりの手段の是非などは作品をご覧になって皆さん自身で判断していただきたいですが、その行動の根底には「一部の人にだけ知識が渡る世の中を正しくするんだ」という強い正義感があったのだと思います。

その意味でアーロンは真の革命家だったのかもしれません。それも武器ではなくラップトップを手にとった現代の革命家です。

その最後

活動をするうえで、PACERの件ではFBI、JSTORの件では検察とMIT、SOPAの件では国家に目をつけられ捜査を受ける彼ですが、その強烈な正義感とは裏腹に、非常に繊細な人という印象を受けました。
例えば最初の職場では満足いく環境で働けずトイレに篭って泣き続けたり、FBIに捜査を受けていた際はずっと震えていたと明かしています。彼の弁護士もemotionally vulnerable(感情的に脆弱)と分析して気をつける必要があると検察に提出したそうです。
彼の正義が、巨大な組織を相手に精神的に耐えられず、結果的に自殺という形で屈することとなり、見ているだけで非常に悔しい思いを抱きました。

彼の残していったもの

僕はredditのヘビーユーザーです。多少の問題があるとはいえ、健全でユーモアにあふれた議論が成り立つredditという場所が大好きで、それを残してくれた功績だけで彼には感謝しきれないです。

これからも彼が残してくれたものを通して、僕はインターネットの世界に生きていこうと思います。この素晴らしくも腐った世界に残された最後の砦で、時代が彼に追いつくことを願いながら。

Rebuildに受けた影響のリスト

たまにはゆるい記事を。

Tatsuhiko Miyagawaさんがホストのテクノロジー系ポッドキャストRebuildの熱心なリスナーである僕がRebuildから受けた影響をネタ混じりにずらっとリストにしてみました。ちなみに嘘が3つ混じっています(笑)。

改めて僕にとってLife-changing podcastだなぁと。そして、こうして見るとhakさんネタが多い(笑)。

働きながら勉強している開発者としてRui UeyamaさんがゲストのRebuild 153が刺さりまくった

Tatsuhiko MiyagawaさんがホストをされているポッドキャストRebuildに、Rui Ueyamaさんがゲストとして初登場された、2016/08/09配信のRebuild: 153: Connecting The Dots (rui314)が非常に刺激的で、「働きながら勉強している全ての開発者に聴いて欲しい」と思うほど感銘を受けたので紹介します。

Rui Ueyamaさんについて

ゲストのRui Ueyamaさんについては、最近書かれた記事がよくホットエントリーになっていたこともあり、お名前は聞いたことがあったのですが、どんなお仕事をされているかなど詳しいことは知りませんでした。

今回のRebuildの紹介によると、Googleに所属しながらLLVMのリンカーであるlldにオーナーとしてフルタイムで貢献する仕事をされているとのこと。それだけでも低レイヤー扱っててなんか凄そうと思ったのですが、話が進んでいくと、「ある日思い立って」趣味でCコンパイラーを書いたという話や、本屋での立ち読みで独学していた話など、聞けば聞くほどなにやら凄まじい方だと思いました。

働きながらスタンフォード大学

前半のお仕事についての話ももちろん興味深く聞いたのですが、何より刺激を受けたのが働きながらスタンフォード大学を履修したという後半の話です。

スタンフォード大学は全ての講義を録画しており、それらをネットで観ることができるので、ほとんどオンラインのみで履修が可能なのだそうです。これについてはnoteにRui Ueyamaさんが書かれた以下の記事に詳しいです。

ただ簡単に履修できるかというと、そこはトップ大学で、予習復習や課題に時間がかかり、多い時は週40時間もかけていたそうです。深夜遅くまで課題を解いていたこともあったとか。いやぁ凄まじい…。

そういった姿勢に、働きつつ勉強している開発者の端くれとして、自分も頑張らねばと奮い立たされました。 ただ、苦しみながら勉強されていたのではなく、楽しみながら勉強されていたのではないかと想像します。僕はそうなのですが、社会人になってからやる勉強って楽しいんですよね。

スタンフォード大学の講義は無料で受講可能

ちなみにRui Ueyamaさんも受講したIntroduction to Compilers (CS143)などの講義はLagunitaというスタンフォード大学が提供するプラットフォームで無料で受講可能です(Compilersはこのページ)。このCompilersの講義は評判がよくてよく名前を聞いているので、僕もいつか受講してみたいと思っています。

あとCourseraUdacityなどのMOOCsでトップ大学の講義を受けてみて思うのが、トップ大学だからといって超難解な講義になっているかというとそういうわけではなく、むしろ解りやすかったりすることです。もちろん機械学習やらアルゴリズムなどの講義になると高度な数学的知識が必要だったりはしますが。

社会人になってから大学に入ることについて

日本では一度社会人になってから大学に入ることは一般的ではないですが、redditなどを見ていると30代、40代になってからコンピューターサイエンスの学位を取るため大学に入るという人も少なくないようです。日本でもそれが普通のことになればいいなと思います。

ここからは妄想なのですが、人工知能などの発達によりもっと機械化が進み人間のする仕事が減って、1週間のうち3日は働いて2日は学生をやるとか、3年働いて2年学校に通うサイクルを繰り返すとか、そういう余裕がある社会になってくれないかなぁなどと思ったりしてます。

夢はでっかく…

それにしてもRebuildというポッドキャストが存在してくれていてよかったです。確実に自分の人生に影響を与えています。今こうやって高校数学の勉強をしているのはMiyagawaさんのインタビューの影響が大きいですし、最前線で働いている方の話を通してテクノロジー業界の広い世界を見せてくれることで、自分の置いている世界に希望を持たせてくれます。面白いアニメ、ゲーム、小説、映画、ドラマの話題にも事欠かないですし*1

しかし今回のエピソードには刺激を受けました。こうなったら、夢はでっかく「スタンフォード大学で学位を修得すること」としてみようと思います。

日本の大学にすら入ったことのない僕ですが、その分、大学への憧憬の念が人一倍強ったりします。今の段階では、ほとんど無謀で、あくまで夢であって目標ではないですが、まずは小さな山から始めて、いつか登ってやるという気概でいようと思います。全くの不可能ではないと信じて…。

*1:今は勉強に時間をかける時だと思って、興味あるものがあっても遊んだり見るのをグッと我慢してますが。あー、Overwatch遊びたい!