The paradigm shift

saboyutaka’s diary なんかかく(ブログn回目)

Macリストア日記 2017/04

半年ぶりにMacクリーンインストールしてリストアした。せっかくのいいタイミングなので振り返りしてみようかなと思ってメモ書き程度のリストア日記。

前回のリストア

2016年9月24日 Sierra を導入するために

前回のリストアから今回までやったこと

Ruby

  • お仕事でRuby on Railsでのプロジェクト4つに携わった
  • 沖縄市主催で行われたプログラミング講座第2期(10~12月)の講師の一人として参加してRuby on Rails を題材に教えた
    • Newbieな方たちに2ヶ月間教えたけど初っ端からRailsは重すぎた印象… 仕上がった作品はとても素晴らしかった、けどWebの基礎よりもフレームワークドメイン知識が必要すぎてSinatraくらいからスタートが良かった気がする
  • PyCall試した

ふりかえり

去年は子供が生まれて1年目だったのもあって9月にあったRubykaigiに行けず、10月~3月は講座で講師をやってたのでOkinawa.rbにもほとんど参加できなかったのでRubyとの時間が少なかった。 加えてOSSにも何も貢献してない。もうちょっとRubyがんばりたい。

Python

  • Machine Learning Koza に参加した
  • Pydata Okinawa
    • #18, #19, #20, #21, #22, #23に参加
    • 途中参加ながらオーガナイザーの1人に
  • プログラミング講座第3期、3期はPythonを教える。2期の反省もあり薄いWAFということでBottleを使って講義を行った。Webの基礎に近いところを重点的に教えれたので良かった。参加者の中に教えた範囲を超えてめっちゃコード書いてシステムを作ってる方が居てすごいびっくりしたのととても嬉しかった。
  • 競馬予測をRでやっている方がいたので、その情報を基にPythonで書き直したりしてみた。学習はできたけど、未来予測する仕組みが作れてないので時間を見つけて続きやりたい。

ふりかえり

機械学習をキャッチアップするためにようやくPythonを使い始めた。普段Ruby書いてるとPython書くときにほとんど迷うことなくコードかけるので言語のスイッチングコストはとても低く感じてすぐ使えた。 あとJupyter notebookあるPythonずるい。学習にも便利だし機械学習で試行錯誤するのにも良くて、学びやすい環境がある言語っていいなと感じた。 機械学習は半年間だいぶ情報を浴びることでようやく自分の脳の機械学習に対する情報分類器が出来上がってきて情報ややりたい事を取捨選択できるようになった感じ。なんかやりたい事があったら試してみるくらいのスタートラインには立てた気がする。 Python機械学習のために使うツールという感じで言語への関心はあまり湧いてこないのが不思議。

Go

  • 受託させて頂いた会社の1つで「Go書いてみない?」と言われたので挑戦してみた。機会を与えてもらえて本当に感謝。

ふりかえり

1ヶ月間書いてみて、最初はめちゃくちゃ躓いてコードかけるどころではなかったけど2週間くらいして慣れてくるとGoの面白さにハマってた。 普段Rubyで使う考え方とまた違って楽しい。言語の特性を利用して適材適所で使えていけそうな感じが良い。 今後Goを自分のツールの一つとして使えるように学んでいきたい。

Microsft周辺のやつ

  • C#, Xamarin
    • チュートリアルやってみた。けどそもそもネイティブわかってないとXamarinどころではないのがわかった。それだけでも収穫。C#Javaぽくて昔を少し思い出して楽しかった。JavaC#、普段使いはちょっとどうかなという気持ちだけど言語としてはやはり良いなという気持ち。
  • Azure
    • Azure machine learning studio
      • イベントで紹介されてたので試しに使ってみた。GUIでポチポチすると機械学習できるの面白い
    • Azure VM
      • 機械学習やWeb AppのサーバーとしてVM立ててみたり。UIなかなか良い。

振り返り

Xamarin、どうですかね、来ますかね。個人的にはReactNative(JS)かなぁという気持ち。 AzureはUI良くて使いやすそう、ただAWSでいいかなぁとか。でも最近のMicrosoftはカッコイイ感じなので、どんどんいいものを作ってってほしいし、使ってみたい気もする。

新しく使ったツール

  • ⌘英かな
    • SierraでのKarabinerの代替。こちらの方が後者より薄い感じなので気に入ってる。
  • 1Password
    • Dashlaneからの乗り換え。なんでいままで劣化1PassのDashlane使ってたんや…というくらい1Passwordべんり
  • Visual Studio Code
    • 講座でWin, Mac環境の方が混在する中で使ってみたらだいぶ良かった。あまりPCに慣れてない人がVScodeの上でTerminal, Git, Editorが使えるのは良かった。Powershellがちょっと不安定なのでもうちょい。Atomに比べて。あと少しして完成度高くなったらAtomから乗り換えワンチャンある。
  • Airmail 3
  • Dropbox paper
    • Markdownで共有メモ残したいときにpaper便利。ただなんでDropboxのフォルダにリンクとかできないんや。Google Driveでリンクできるのはキモいと感じるけど、Dropbox paperはそれできてほしい。Web UIの問題かな、リンクがほしいのは。メモは大量に残したいので管理し易い形にしてほしい。Webでリンクたどるとステップが多いのでステップ減らしたい。

使わなくなったツール

  • Dashlane
    • 1Password一択で
  • Evernote
    • かつてめちゃくちゃ好きだったサービス。数年たってなにも進化せず、他のツールの環境が整ってきたのでサヨナラした。悲しいけど、栄枯盛衰。

Brewfile

https://gist.github.com/saboyutaka/89d7a3631f4a5134b27b4981f4ffe5c0/revisions#diff-c7214f6b3e175bb89ac4600efdf6c64a

全体の振り返り

仕事と子育てと講師とギークハウスで結構忙しい半年だったけど、その中でも新しい言語に2つと機械学習に挑戦できたのは良かったかなと。その分Rubyへのコミット、OSSへの関心、勉強会などの参加は減ってしまった。特に半年間沖縄から出てない。 次の半年間は沖縄から出てイベントに参加したい。機械学習とGoの学習は続ける。Rubyは何かOSSにコミット・PR投げたい。

最後に

いつまでEl Capitanに居座ってるんですか! Sierra, production ready ですよ!(クリーンインストールしましょ委員会)

#半年に一回はクリーンインストール

Ruby + PyCallで機械学習をやってみた at Pydata Okinawa #23

機械学習といえばPythonがいますごい盛り上がりを見せていますが、Rubyでも最近 @mrknさんがPyCallというgemを作っていて、2月23日に行われたRuby Business Users Conference 2017で発表されたみたいです。

sssslide.com

ということで

Ruby + PyCallで機械学習をやってみる

以前、Python 3.5, scikit-learn, pandasでKaggleのTitanicを使って機械学習チュートリアルを行ったのでここのコードをRuby化してみる。

saboyutaka.hatenablog.com

基となるPythonのコード

  • Kaggleのデータ(train.csv, test.csv)をローカルのdataディレクトリに配置
  • pandasでデータを加工
  • scikit-learn RandomForestでmodelを作成
  • 学習
  • 評価

をやってます

gist.github.com

これをRuby化する

gist.github.com

比較してもらうと分かるんですが、ほとんどPythonのコードに近い状態でかけます。

違うところ

  • pyfrom, pyimport でPythonのlibraryをimportする
  • PythonのClassのmethodを呼ぶときには.methodで呼び出す
    • lambdaで実行してる?
  • PythonのDictionaryを使うためにPyCall::Dictを使用している
  • methodへの引数はRubyの書き方に置き換える

ぐらいでした。

やってみて

  • Rubyから簡単にPython呼び出せるの便利!!numpyとか普通に使えてすごい
  • オブジェクトがPyCall::Objectにラップされるのでmethodとか調べるのはむずかしい?

用途としてはPython, Jupyter Notebookでごにょごにょしてモデルを作成して、成果物としてのmodelをscikit-learnのシリアライズで永続化、それをRuby, PyCallから呼び出して実行すると言う感じでしょうか。Railsのコードなんかからmodelへの呼び出しなんかはすごい簡単にできそうです。evalでもできそうだけど失敗したときとか困るし、PyCallに置き換えると良さそう。

まだPyCallの開発は始まったばかりのようなのでこれからどんどん良くなっていきそうですが、すでに今の段階でも十分良さが伝わってくるので期待したいです!何か開発手伝えることがあればやりたいですねー :)

Pydata Okinawa

今回はPydata Okinawa #23 のLT大会ということでPyCallについて 発表してきました。

pydataokinawa.connpass.com

機械学習に興味がある方で沖縄に居る方/来れる方はぜひお越しくださいー :)

ギークハウス沖縄をrebuildしたい 2.0

f:id:saboyutaka:20161219210405p:plain

この記事はギークハウス Advent Calendar 2016 - Adventarの16日目です。

去年のギークハウス Advent Calendar 2015 - Adventarにも「ギークハウス沖縄をrebuildしたい」というタイトルで記事を書きました。1年間では実現しませんでした。。

が、

現在わりと現実味をおびてrebuildプロジェクトが進行中です。

去年の考えてた事

那覇か宜野湾か

沖縄の主要な場所といえばはやり那覇。アクセスの面でも人の多さでも前回ギークハウス沖縄があったのもあって那覇もありかなと思ってましたが、実際那覇は全国的に見ると普通の地方都市で渋滞もかなりあるので沖縄の人でも那覇の外に住むは用事がない限りあまり行きたくない場所でもあります。宜野湾はGwave cafeがあったり、琉球大学があったりITを使う企業がちらほらあったりで個人的には第一候補でした。しかし、旅行客に来てもらうにも県内の人に来てもらうにも強力な訴求力がなくてちゃんと人が来るか微妙。。みたいなところがあってうまく考えがまとまらずに来た経緯があります。

県内の需要

県内に住む人にとって遊びに来たい訴求力を提示出来るかという問題がなかなか思いつきませんでした。会場をGwave cafe行っている勉強会もあるので宜野湾かなーとか思いつつも月1行くか行かないか。Gwave cafe以外に行くところないし。。という感じでした。

1年で実現しなかったわけ

物件探してたけど具体的イメージがわかなかった

1つは上の理由で、これだというイメージが沸かなかったことがあります。

エンジニアとして沖縄で面白い場所を見つけるのが難しい?

東京から引っ越してくる時は薄々わかっていたもののやっぱり東京で普段得ていた刺激が味わえないのは結構つらい状況でした。ギークハウスを作れば解決するかなーともどうかなーと思いつつこれでギークハウス作っても盛り上がらないだろうなとか。県内にちらほら面白いエンジニアの人が居ますがどこで仕事してますー?って聞くとだいたい「家ですね。」と。なるほど。

スタートアップカフェコザ爆誕

f:id:saboyutaka:20161217160328p:plain

8月上旬に沖縄市でスタートアップカフェコザオープニングイベントなるものがTLが流れて来たのでへーおもしろそーくらいの気持ちで行ったのが最初です。スタートアップカフェに初めて入ってコワーキングスペースとして使わせてもらってた時に隣で孫泰蔵さんがインタビュー受けててすげーこんなところで会えるのかって思ったのがハイライト。

スタートアップカフェコザは起業支援・スタートアップ支援の場所でありコワーキングスペースでもあります。ここは3Dプリンタや3Dスキャナを始め多くの機材があります。また地方ではありえないような面白いイベント頻繁に開催されてます。ここが出来たおかげで沖縄でのエンジニア生活が65535倍楽しくなりました。

スタートアップカフェコザのおもしろいところ

面白い人が集まって来てる

沖縄の経営者やマネージャーレベルの人が頻繁に来てるし、面白いイベントを頻繁に開催しているので県内外からいろんな人がスタートアップカフェに集まってきてます。

初心者向けにプログラミング講座を実施

プログラミング初心者の方たち向けに2ヶ月間のプログラミング講座が開催されています。現在第2期が実施されていてプログラマコースとデザイナーコースに分かれてプログラマコースではRuby on RailsでWebアプリケーション構築、デザイナーコースではWordpressでサイト作りを勉強中です。かなり本気な講座で第1期の卒業生はすでに学習したスキルを活かして仕事を受けてる人もいます。

沖縄市のコミット量がすごい

スタートアップカフェコザは沖縄市運営がしています。コミュニティを盛り上げようとする行政の人たちと一緒に何かをやれる機会はなかなかないのではと思います。東京とかから来るとなおさらそう感じます。 個人的にエンジニアとして面白い場所は沖縄県沖縄市島根県松江市とかなのかなーと思ってます。

面白いイベントが多数開催されてる

  • イケハヤさん来ました f:id:saboyutaka:20161217160831j:plain f:id:saboyutaka:20161217173603j:plain

  • 家入さん来ました f:id:saboyutaka:20161217161252j:plain

他にもVCの方によるスタートアップの資金調達のイベント、テクノロジーWordpress講座、 ITジャーナリストでTheWaveの編集長の湯川さんによるテクノロジーによって変わる将来の働き方、などのイベントが開かれてます。

機械学習が熱い

設備がすごい

最新技術に触れ合えそうな雰囲気感が出てきてる

沖縄は本島と離れててある程度の人口規模があるため様々な実証実験が行われる場所になってます。最近では自動車自動運転の実証実験を開始するニュースが発表されてました。 また仮想通貨案件が出て来るかもーとの風のうわさがあったりで、機械学習ブロックチェーン、自動運転技術なんかが沖縄に居ると仕事を受けれるチャンスが出てきそうな雰囲気になってきてます。

スタッフになりました

面白すぎてほぼ毎日行ってたらいつの間にかスタッフになってました。 プログラミング講師もしてて2ヶ月間非エンジニアの人向けに教えてます。Ruby on Railsを初心者の人に教える機会を頂いてかなり楽しくやってます。

あれ、ここにギークハウス沖縄作ったらおもしろいんじゃね

ということでギークハウスの話をしたところスタートアップカフェコザのすぐ近くのところの物件が空いていると紹介してもらえたのでプロジェクト再開しました。

f:id:saboyutaka:20161217161813p:plain 沖縄県沖縄市コザ。沖縄でいうと中部に位置します。

f:id:saboyutaka:20161217161851j:plain f:id:saboyutaka:20161217161955j:plain f:id:saboyutaka:20161217162235j:plain

どんな感じになるか

現在予定しているレイアウトは2Fをリビング・キッチン。3Fを寝室にする予定です。2段ベッドを4つ配置するドミトリーとして使います。 f:id:saboyutaka:20161217162446j:plain f:id:saboyutaka:20161217162719j:plain

2Fリビングには大きなガラス窓があります。その前に数人座れるデスクを用意し、作業が出来るスペースを作ります。 壁はプロジェクターを投影出来るようにし、イベントなどに使えるようにする予定です。 また、リビングでVR体験が出来る装置を配置したいと思っています。

3Fのドミトリー部分では2段ベッドを4つ置き最大で8名が住める場所を提供します。2段ベッドはプライバシーを考慮しベッド内を他人に見えない作りにする予定です。

3Dモデリング

f:id:saboyutaka:20161219174638j:plain

Fusion

上をクリックすると3Dモデリングをブラウザ上で見る事ができます。スタートアップカフェコザの3Dプロフェッショナルな方が作ってくれました。こういう人が(なぜか)普通にいます。

生活コストが安い

近くのローカルな飲食店や商店で昼ごはんが350円くらいで済ませれます。ギークハウスの家賃は25000円くらいにしようかなぁと思ってるので月5~7万あれば生きていけるかなと思ってます。

東京から来るといくら?何時間で行ける?

f:id:saboyutaka:20161217162944j:plain 出所: http://news.ameba.jp/20161001-409/

成田空港から那覇空港までLCCを使うと、往復13000円ほどで航空券が買えます。バスやタクシーを組み合わせると、片道4、5時間で都内からコザまで来ることが出来ます。

こんなギークハウスにしたい

  • 県内のギークと県外から遊びにくるギークの交流の場所
  • 県外の人がいつでも遊びに来れる
  • 沖縄にショートステイ、ロングステイしたい人が泊まれる
  • 勉強会開催地
  • 花粉疎開避難所
  • 生活コストさげて働く時間を減らして低ストレス

こんな人が住むと良さそう

  • 県内のエンジニアやITに興味がある人
  • フリーランスノマドワーカーやってる人
  • 季節限定で夏だけ沖縄に済むとか花粉疎開で来る人
  • 都内のブラック企業で働くのが嫌になった人
  • エンジニアに興味がある学生
  • 日本向け or アジア向けスタートアップで企業したい (New!)
  • 機械学習したい (New!)
  • 最新技術使いたい (New!)

Campfire やります!

f:id:saboyutaka:20161219210928j:plain

ギークハウス沖縄の立ち上げ費用としてCampfireクラウドファウンディングする予定です! 来週ぐらいに出せればいいかな。支援していただけると幸いです! 完成したら遊びに来てくださいー。