勉強会に参加したらブログにまとめるマンです。

今日は.NETラボ主催の勉強会に行ってきました!

コミュニティ

.NETラボ: .NET技術やマイクロソフト製品について勉強するコミュニティー。毎月第4土曜日に定期開催しています。

とのことです。毎月開催タイミング決まってたら心の準備しやすいですね!

勉強会

今日は.NETラボ 勉強会 2017年3月ということで、テーマは幅広くということでしたが、Microsoft Bot Frameworkネタが2件 + LUIS(Language Understanding Intelligent Service。Cognitive Servicesの1つでリクエストに含まれる文を解析して文の目的と構成要素に分解してレスポンスを返すよう学習させられるAPI)今すぐ手を動かして開発したくなるような話題が特にアツかったです。
ハッシュタグ #dotnetlab

お品書きとスライド

上がってるものはまとめていきます!概要はconnpassより。

  • .NETラボ紹介とご案内(木澤朋和さん
  • マイクロソフトMVPアワードプログラムのご紹介(木澤朋和さん
    • マイクロソフトMVPアワードプログラムのご紹介と新しくなった申請方法についてお話します。応募を検討されている方のご相談にも乗ります。
  • 今こそMicrosoft Bot Frameworkを学ぼう中島進也さん
    • 2016年3月末に公開されたMicrosoft Bot Framework。 もうすぐ1年が経ち、そろそろPreview版から正式版になるのではと期待が高まります。 そこでBot Frameworkを使用したの開発を始めるにあたって必要な概要を俯瞰的に紹介いたします。
  • 最近流行りのエンジニア田舎へ移住ってどうなの?(藤原隆博さん)
    • ①移住を志した経緯 ②移住直前直後の失業時の苦労 ③田舎のit仕事って? ④客先常駐型の仕事はある? ⑤6次産業化、廃校利用等の新ビジネス ⑥マスメディアへの露出 ⑦兵庫県のit移住の補助金制度 ⑧移住に対する所感。
  • BotFramework と LUIS を使ったアプリの開発横浜 篤さん
    • BotFramwork(とBotServices)の概要と、Cognitve ServisesのLUISの概要を説明し、サンプルのアプリで開発の一例を紹介します。
  • 進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説~(日本マイクロソフト テクニカルエバンジェリスト さっくるさん
    • 今年の前半に公開が予定されているWindows 10 Creators Updateにより、Edgeには新しくさまざまな機能が追加されます。本セッションでは、Creators Updateで追加される可能性が高い新機能について、既存機能のおさらいやデモを交えてご紹介いたします。
  • ライトニングトーク & ディスカッション

セッションメモ

マイクロソフトMVPアワードプログラムのご紹介(木澤朋和さん

最近毎月申請できるようになったMVPについて。

特典はめちゃ多い!

  • MSDNサブスクリプション
  • Office 365 ENterprise E3提供
  • MCP受験料50% off
  • XamarinUniversityサブスクリプション
  • MVPグロサミ
  • Channel9での動画配信
  • 技術情報の提供(NDA)
  • 賞状と盾

それよりも、もちろんMVPになることが目的でないし、申請の要件にあるコミュニティへのよい影響や情報発信も受け取り手があってこそなので感謝を忘れずにというよいお話でした。

勉強会の後にお話聞かせていただきましたが、エンジニアとして大きくなるべくよい情報の発信(をするための鍛錬)やっていきたいなぁということで記事書いたりLTしたりやっていくことにします。

MVP詳細は公式ページにて!

今こそMicrosoft Bot Frameworkを学ぼう中島進也さん

Bot開発するためのフレームワークもいろいろ出てるんですね!

  • よさげなところ
  •  ワンソースでマルチチャネル(Slack、Skype、Facebook...)対応
  • Channel Inspectorで各チャネルにどの機能が対応してるか教えてくれる
  • 開発から公開までの全行程サポートが手厚い
  • 注意!
  • .NET Core未対応
  • Bot Directoryで公開することが前提で、プライベートで運用したい場合は要相談
  • 会話情報は匿名化して収集される(かも)
  • 気になる
  • Direct Line API: connector未対応のプラットフォームやスマホアプリと接続するためのしくみ
  • Xamarin Shopping App
  • C#でLine bot

よく使ってるプラットフォームにのっかって機能提供できるはめちゃくちゃアツいですね!

新しくアプリを入れるモチベーションがない人でもLineだったり、その他よく使ってるSlackやチャットサービスに向けて対話的なインタフェースでサービス提供できるとなったときに夢広がりますね。

と思う一方でLineにそういうサービス(アカウント)接続したところで継続的に使った試しはないので研究してみたいですね。

最近流行りのエンジニア田舎へ移住ってどうなの?(藤原隆博さん)

広い庭で犬と駆け回りたい…

というのはおいといて、僕は東京好きですが、土地の商機やチャンスを見出して生きていくのも素敵だなぁと思いました。

BotFramework と LUIS を使ったアプリの開発横浜 篤さん

Microsoftの言う「AIの民主化」の実感高まるセッションでした!

一から実装するには大変なAIパーツをGUIで設定するとAPIで利用できるし、もちろんbotから使うこともできる。

bot開発は中島進也さんの発表にもあった通り全フローのサポートが厚く、こんなエミュレータも!

コミュニティは盛んで資料も豊富!

4/8〜9にはハッカソンイベントも!

強いなぁと思いました。

進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説~(日本マイクロソフト テクニカルエバンジェリストさっくるさん

圧倒的情報量!

Edgeほぼ使ったことないですが、少なくともInternet Explorerに抱いていたイメージとはいい意味でかけ離れていました。

古いIEをエミュレートしたり、Windows Defender Application Guard(preview, 信頼されてないサイトを開くときに仮想環境でブラウザ立ち上げてチェックしてくれる)エンプラ系の設定も完全にスルーしてたので追っていきたいですね。

ディフェンスもガードもするんですか…!

あとエクステンションとUWPやWin32アプリを連携できるのは個人的にとてもとても気になるので攻めたいですね。

ライトニングトーク & ディスカッション

まとめ

自分も登壇しよう!と思いました。

今日聞いた話ももちろん、最近人と話しててぶつかり稽古が必要…

たまたま今日読んだこの記事(“ただの興味”がいつか武器になる–及川卓也氏が語る、一流エンジニアのアウトプット法)にも思うところがありました。

業務的にもWindowsデスクトップ(+ サーバサイドや関係するフロント)を作るのに加え、日々オープンに、ダイナミックに発展するMicrosoftの技術を取り入れてガンガン開発していこうぜ!というチームにしていくのでやっていくしかない状況です。

下のリンクの要件はちょっと古くなってますが、そんなチームを一緒に盛り上げていく仲間も募集してるので、ちょっとでも興味ある方は気軽に声かけてください!
日本を変えたいWindowsアプリエンジニア募集!!

Visual Studio2017のリリースの興奮冷めやらぬ中、C#関連の勉強会が2つあったのでそのまとめです!

まどすた: Windows 10 や Windows 10 Mobile、Windows Desktop など、Windows クライアント アプリ開発に焦点を当てた技術系勉強会コミュニティです。
日本C#ユーザー会: 日本のC#ユーザーを応援するコミュニティです。不定期に懇親会や勉強会を開催してきます。

ということで、C#で困ったときにググると行き着く方々がたくさん登壇したり、twitterタイムラインでうぇいうぇい言ってる楽しい感じでした。
#まどすた
#csugjp

Microsoft社の隣り合ったセミナールームで同時開催!ということで行き来できるもののどちらのセッションも聞くことはできません。

なので、この記事は僕が聞かせてもらった内容はまとめつつ、もう片方もスライド集めたりしてどちらの勉強会の内容も振り返れるようにできたらいいなぁと思います。

当日のスライド

見つけ次第足します。見つけられないかもしれないので、優しく教えてください…

僕が聞いたセッションには★がついてて、下の方にまとめなり調べたことなりを書いていきます。

まどすた #2

Visual Studio 2017 リリース記念勉強会

セッションメモ

自分の理解不足のところを調べたり、自分が思ったことを足したりしてるので、セッション内容そのものではないことをご理解いただけると幸いですm(_ _)m

①マイクロソフトの最新テクノロジー(高橋忍 さん

1時間のセッション。終始ワクワクするものでさすがやなぁと思いました。

大きく分けて2つ、MSの注力分野であるAIの民主化とMixed Realityのお話です。

Democratizing AI
この記事(Microsoft Ignite ~ “Democratizing AI” が実現する今後の方向性)にもあるように、AIをいろんな人に使えるようにセグメント別に様々なサービスを提供しているというお話。

レイヤーとその具体例としては、

Agent: Cortana等ユーザーと直接やり取りを行うUI、いわばout of box
Application: Office 365等、情報を活用し、洞察を得て、次の一手へのヒントを提供
Services: Cognitive services、Bot Framework等、情報の分析や解析を行うエンジン
Infrastracture: Azure等、アプリケーションやサービスをを支えるプラットフォームとしてのクラウド

というものです。AIサービスとしても、部品としても、基盤としてもなんでもありですね!

中でも Cognitive ServicrsはAPIも豊富。研究しがいありますね!(ほんとにいっぱいあってアクセスするとびっくりすると思います…!)

Microsoft Cognitive Services を始める ~ 全21種のサービス概説と開発準備

APIとして使え、叩けばjsonで結果が返るので開発しているサービスに組み込んで使ってみたいものです。

中でも動画解析が今アツいようで、動画ないで何が起きているかが文章化できるまで進んでいるようです。

ただ、既存の動画に対して行うもので、ストリーム処理は開発中のようで、実現すれば防犯にも使えるかもとのことでした。

音声認識の精度向上も凄まじく、世界記録更新(単語誤認率を5.9%)みたいな話題もありました。

マイクロソフトが GPU の活用で音声認識の世界記録を更新

人間で4.x%とのこと。

ただ、その数字を追うというよりも、生活にインパクト与えらえる方が大事というお話への共感が大きかったです。

紹介されていたこの動画とてもよいです。

CPU→GPU→FPGAの話はよく理解できなかったので割愛です。

あとはAmazon alexaとの対比で出てきたCortana Skills KitとCortana Devices SDKのお話。

CortanaをWindowsやAndroid、iOSはもちろん、このSDKベースの様々なデバイスで活用できるようにするという画期的なしくみです。

先発のAmazon.comの音声アシスタントAlexaで用いられる「Alexaスキル」のコードを転用することもできるそうです。

de:codeでセッション予定(?)とのことでかなりそそられるお話でした。

HoloLens

Mixed Realityとは何かについて。

Mixed Reality: フィジカルとバーチャル世界の融合。両世界の干渉がある世界。例えば、バーチャルな物体が床に落ちて壊れるようなこと。

HoloLensはスタンドアロンなデバイス。CPU、GPU、センサとか全部入ってる。もともとキネクトで開発やってたチームが作っていて、ジェスチャー認識のためのプログラムの強化版も入っているそうです。

ドイツのメーカーのThyssenKruppは既にエレベーターのサービスにHoloLensを導入していて、

  • 過去のメンテ状況表示
  • 今日の作業表示
  • アラートが出たときにどうするかの指示
  • 本社のエキスパートにスカイプで呼ぶ
  • 本社では作業者が見てる画面を確認でき、本社から画面にペンで矢印等書ける

みたいなことが実現してるんですって。めっちゃわくわくしませんか?

操作はwin10と同じようなもので、UWPベースでアプリが作れるとのことで高まりますね!

Xamarin.Forms とコンソールアプリでモデル層を共通化してみたYuka Abuno さん

C#のGUIアプリはM-V-Whateverで作りますが、その中のMVVMはFat View Modelになりがち!

でも、いろんなクライアントアプリが作れるC#( = マルチタイプ?)でアプリを作る上ではModelをしっかり作りこむことで効率的に開発することができる。Modelはアプリそのものなんだというお話でした。

具体的にご自身で作られた、バックエンド: ASP.new、クライアント: web、Xamarin.Forms、コンソールなチャットサービスを例に挙げモデルを作りこむお話でした。

これがサービスのコード。

yuka1984/ChatXFSample

自分で作ってるXamarin.Forms製の日用品管理サービスも(相対的に)Fat ViewModelになってきてこういう設計のお話を渇望していたので、じっくり読んで勉強したいですね。

途中で出てきた

も調べてみようと思いました。

③Unity の素人がスマホゲームをリリースしてみた ~ 副業解禁!? でおこづかいをゲットしたい ~(matatabi-ux さん

スライドは敢えてアップしないとのことだったのであまり詳細は書かずに…

群雄割拠・地獄絵図、個人でも出せばDLしてもらえる時代は終わったのスマホゲーム市場において、

  • iOS、Android、Windowsのダウンロード状況は?
  • 何に対して課金してもらえる?
  • ランキングを上げるには?
  • どういうジャンルのゲームを攻めるべき?

というのを分析して実践したお話。

単に面白い!みたいのではなくて、収益を得るためにとるべき論理的なアプローチで成果を上げているのは天晴れでした。

紹介されていた放置系ゲームの雄、ひとりぼっち惑星が印象的でした。

確かにバズってたなぁ…

④Desktop Bridge でデスクトップ アプリをストア公開するまで(亀谷学人 さん

Classic Desktop app(WPFやWindowsForms等exeファイルを実行するやつ)をストアアプリ(UWP)に変換(※変換ではない)するための手順や注意点についてです。

これはスライドぜひもう一度見たい & みなさんにも見て欲しいと思う内容でした。

というのも、今春リリース予定のWindows Creators Updateにはストアアプリ以外のアプリインストールを制限する機能が入るという話があります。

Visual Studio Codeまでインストールできないとか本家まではじいてたり、こういうの導入しそうな企業はこの設定にするように社内調整するのに時間かかったりそもそも運用できるのかとか色々あって直ちには進まないかもしれません。

ただ、MSとしてもストアアプリ介す世界にはしたいと思うのでストアアプリ対応需要は近々あるのではと戦々恐々としながら聞いてました。

お話にあったデメリット・メリットを実際に検証したいなぁと思いました。

メリット

    • 優れた展開プロセス
    • ストア掲載
    • クリーンなアンインストール
    • UWP機能の活用
    • マネタイズ
    • シームレスな更新
    • UWPの機能でライブタイル、コルタナ、トースト通知等UX改善に使えるものは使っていきたいですね!

一方、レジストリやAppDataへの書き込みがリダイレクトされ、ストアアプリ用の領域に書き込まれる等意図しない挙動や、権限周りで落ちる部分ないかは慎重な検証が必要そうです。

そういう知見はどんどん共有していきたい!

あと、VS2017専用拡張機能でDesktop bridge環境でデバッグできるというのはだいぶお世話になりそうですね。

Developing and Deploying .NET Core on Linux田中 孝佳 さん

わたくし.NETのWeb自体をよく理解しておらず…

stagingやproductionの環境変数の切り替えの話、private nugetサーバの話、SELinuxは有効にしようという話…

⑥Visual Studio 2017 の新機能(大田 一希 さん

URLにhttps://aka.ms/okazukiが追加されたokazukiさんのVS2017の注目新機能セッションです。

新機能に関する記事やイベントはあちらこちらで見かけますが、精緻なライブコーディングが多くすごかったです。

あまり取り上げられてない気がするけどヤバい機能としては、

Run to Click
ブレークポイントでとまってる状態からある程度先まで実行を進めたいとき、「ここまで実行」というGUI操作ができるのはおいしそうです。
ctrl + F10でも。

コーディング規約の共通化
他の言語だとライブラリ入れたり大変そうですが、this入れる入れないとかも「説明」「優先順位」「重要度(エラー、警告、提案…)」というフォーマットで細かく設定できる!

NullReferenceExceptionが詳細に
parent?.child?.nameみたいに書いてるときにnullで落ちてもこれまで行数くらいしかわかりませんでした。

でも、childがnullなってるで!みたいに細かく表示しれくれるようになりました。便利!

クラス名、ファイル名の整合性
どっちかだけ変えてもう片方は変更しそびれる…みたいなシチュエーションで、もう片方も変えとく?みたいに聞いてくれます親切。

XAMLerへの福音
デバッグ実行時リアルタイムで変更を反映してくれる!圧倒的にヤバい!

Xamarin.Formsにも早く来てくれますように…

感想

Visual Studioが新しくなるのはもちろん、Microsoft Platformがオープンに、多様に発展していく様子はほんとにわくわくするなぁと思いました!

クライアントだけでなく、インフラだけでなく、サービスだけでない、かつどれも日に日に新しくなっている。

広くマスターしていきたいなぁと思いを新たにした1日でした!!!

ということでMSのイベントに行ってきました。

昨日Visual Studio 2017の正式版がリリースされ、本国でKeynoteとDemoがあったんですが、それを見つつMSのエバンジェリストの人がわやわや喋る + LTみたいなイベントでした。

立食パーティみたいな感じであんまりメモとったりできなかったのですが、覚えてる範囲でVisual Studio 2017の目玉?を書いときます!

インストーラ

  • 超絶はやくなった。今まで2時間とかかかってたのが10分に!(※オプションによる)

本体

  • 起動もはやくなった。50%減!(※パッケージ* による)
  • ライブユニットテスト
    • 割とVS2017の目玉扱いされていて、コード変更して1秒後くらいにunitテストが自動で走り、落ちてるテストの行の横に×ついたりする。

こんな感じ!


Visual Studio 2017 RC のライブ ユニット テスト より

動画

  • コード検索絞り込み
  • mつけるとメソッドだけに絞れたり
  • エディタコンフィグのサポート
  • suggestionという形式でエディタにコーディング規約埋め込める

C#7

コンテナ

Docker for Windowsにデバッガ使える、ステップ実行できる!

Xamarin

  • インストーラ性能改善
  • テンプレート場面場面で適切なのに絞られて表示されるようになった(元々選択できるものすべて羅列されて大変だったんです…)
  • モバイルのプロジェクトだけでなく、バックエンドも一緒に雛形作ってくれるオプションが出た
  • インテリセンス賢くなった(特にXAMLまわり)
  • アプリのUIプレビューで階層構造が立体的に表示できるようになった(?)

Visual Studio Mobile Center

  • モバイルアプリのテスト、ビルド、配布、クラッシュレポート等統合管理できるやつに直接VSから繋げるようになった
  • windowsもcoming soon画面が出た
  • react nativeも入った(MSのプラットフォームで作ってないものでも受け入れていく意向)
  • github連携
  • ブランチ毎に
  • テストはエミュレータでない。デバイスファームにapk投げつける
  • 招待制だったがそうでなくなった

DevOps

  • Redgate Data Tools)が組み込まれた
  • DBスキーマからマイグレーション スクリプト作れる?
  • SQL Server標準ツールもインテリセンス強化

続きはde:code 2017)ということで見に行きたいなぁ…

まだ2015使ってますが諸事情によりサービスパックが出るまでは上げない予定です。

入れて試してみないと実感わかないですが、いろいろ試したいですね!

個人的にXamarin.Formsで家庭の日用品管理アプリを作ってるので、Visual Studio Mobile Center使ってみたいなぁと思ってます。

Xamarin.Formsで家の日用品管理アプリを作り始めたお話

Androidは実機でビルド・デバッグしてますが、使ってるmacにXamarin入れる容量的余裕がなく…

いろいろと楽しみですねーーー

エンジニアになって2年ちょい、ブログでは人生の進捗報告しかやってこなかったのでたまにはエンジニアしようと思います。

勉強した内容とかQiita書けばええやん、社内のことならQiita:Teamでええやん、と思ってたんですが、一時の気の迷いです。

 

サービスが作りたい

エンジニアになるまで人に教えてもらったり、独学したりする上で開発を勉強するなら自分で何か作るしかない!

ということで作ったのがこれとか、

【重大発表】飲み会幹事向け検索サービス「助三(すけさん)」リリース!!!

これとかでした。
http://toshi0607.sakura.ne.jp/kakusan/index.html

そして、物心ついてからは自分でサービス作ってない!

業務以外で書くコードは大体写経。別に作りたいものないし...

とかとか普段通りの休日を過ごしていたときに出会ったのがXamarin.Formsでした

Xamarin.Formsってなに?

Xamarin.FormsというのはC#で書くとWindowsのストアアプリはもちろん、iOSアプリも、Androidアプリも、macのデスクトップアプリも、もうちょっとしたらTizenアプリも作れてしまう便利なプラットフォームなんです!(雑)

※いろいろと誤解のある表現なので、厳密に知る必要がある方はいろいろググれば出てくると思います。
Xamarin(ザマリン) とはなんぞや

昨年Microsoft社がXamarin社を買収してVisual Studioと関連付けて無料で使えるようになったこともあって注目する人も増えて気がするし、Microsoft社も積極的に宣伝してる様子です。

そんな中、昨年Dev Days Tokyoというイベントがあり、参加してみると感動したのでXamarin.Formsで何か作ってみたい!!!という気持ちが高まりました。

感動したというのも、

  • 普段書いてるC#でアプリが動く!
  • コミュニティ(JXUG: Japan Xamarin User Group)の方超絶親切

というのがあります。環境構築なかなかうまくいかなかったんですが、めちゃくちゃ助けていただいた結果、自分の書いたコードが自分のスマホ上でアプリとして動く感動を得ることができました。

家の日用品の在庫を管理するアプリを作ろう

割ととりあえずコード書いて動くもの作りたい、という動機が強かったものの、日用品管理でたまに困ることがありました。

スーパーに行ったときにケチャップ家にあったっけ?

お風呂でシャンプー切れてるうわああああああああ

みたいに、日用品・食料品を買える場所に行っても家にある在庫の数がわかんなくてもやもやする、日用品切れてから気付いてイライラする、みたいなことがあるのでそれを解決できるものを作ることにしました。

もちろん、もの切らしたくないならAmazonで定期便セットすればいいんですが、食料品とか絶対近くのスーパーで買うし、日用品は薬局行くし、そこ突き詰めることはやめてとりあえず動くもの作って改善していくことにしました。

というわけでStockIOというアプリを作りました。

gif動くかなぁ...基本的な仕様は

  • 買わないといけない = 在庫数が自分で設定した閾値以下
  • 買い物リストを更新(+をクリックして在庫数を増やす)するとリストから消える
  • 管理タブには管理したい在庫の名前、在庫数、閾値を一覧できる
  • 在庫の新規登録、更新、削除ができる

 

という、今のところ何の変哲もないCRUDがあるだけです。いつもAndroid端末を使ってるのでAndroid端末だけ動作確認してます。

iOSをビルドするためにはmacにXamarin入れてリンクしないといけないんですが、容量的に厳しく...

コードはこんな感じです!

https://github.com/toshi0607/StockIO

開発した内容とか今後実装したいこととかもGithubのissueで管理してます。

https://github.com/toshi0607/StockIO/issues?utf8=%E2%9C%93&q=is%3Aissue

アーキテクチャ

バックエンドはご多分に漏れずAzureです。

Azure Mobile Serviceというのがあって、DB準備してくれるのはもちろん、

  • オフライン同期
  • ユーザ認証
  • プッシュ通知

等々、モバイルアプリを作るうえで欲しくなるものが揃っています。

オフライン同期には対応してます(たぶん)。

これからの展望

  • Realmで動くようにする
  • ユーザ認証できるようにする(家族単位とか、複数ユーザで共有したい)
  • エンプティUIになるときアニメーションつける(Lottie使ってみたい)
  • 画像登録できるようにしたい
  • 在庫に対してお店を登録して、残数が閾値下回ってる状態でそのお店の近くに行ったらプッシュ通知くるようにしたい
  • iOSでも動くようにする
  • 登録作業もうちょいどうにかならんかなぁ...もはや写真だけでよいかもやし、写真撮るだけで名前入ったら楽そう
    • Azure Cognitive Services使いたい(機械学習モジュールがAPIで使える!!)

とかとかです。機能作るというより、技術要素かじりたいという思いの方が大きいです。

一応MVVMで書くようにしてるので、今それっぽくないところは(それっぽくないと認識できる程度に勉強して)直していきたいです。

ストアにもゆくゆくは上げたいな~

明けましておめでとうございます。

2016年は前半はブログを振り返る範囲では仕事面ではパッとしない感じでしたが、後半は色々な経験ができ、掲げた目標もそれなりに達成できて盛り返した感じでした。

プライベートは文句なしです。

2016年を振り返り、2017年に向けて色々と考えようと思います。

2016年仕事面

今年何を目指すかみたいなところは元々

  • Windowsプロジェクトを体制として確立する
  • JavaScriptと真剣に向き合う(「ニャンちゅう圧倒的にこれできないからこのプロジェクトはなしかなぁ」をなくす)
  • android触る
  • API!

をがんばる年にしたかったみたいです。

転職して1年が経ちました。2015年の振り返りと2016年の目標!

が、6月時点ではもっと目の前の技術に向き合わないと何も成果出せないと打ちひしがれてたみたいですね。

28歳になりました

というわけで、この半年間はC#でWindowsのクライアントアプリを書くことと、アプリをちゃんと使ってもらうためにフロント(Backbone.js + CoffeeScript + CSSな部分。まだまだ残ってるので…)を変えていくことに集中していました。

結果、担当してる部分で対応範囲、品質、利用状況どれもだいぶよくすることができ、半年前には想像できなかったくらい良い気分で今年を終えることができそうです。

ざっくりとした内容は年末のfreee Engineers Advent Calendar 2016に書きました。

技術的マイノリティプロジェクトで幸せに過ごすための5つの方法
まとめると、社内的にマイノリティな言語を使ってるプロジェクトにいても、

  • 少し抽象化すれば他の言語、プラットフォーム、プロジェクトで活かすことができる技術や手法はたくさん学べる
  • どんな技術を使うか以前に、問題を正しく把握し、解決できているかどうかに集中すると幸せになれそう

というお話です。

特に印象深かったのは次のようなことです。

情報を得るために情報を発信する

今年は敢えてブログではなくてQiitaで技術記事を書きました。C#のことを基礎から学ぶにあたっても、知らないからこそ調べて記事にして発信することでフィードバックはもらえるし、調べて詳しくなるしでいいことしかなかったです。

去年の2記事に対して19記事。書く抵抗もだいぶなくなってきました。

Qiitaで書いた記事

ユーザさんが抱える問題の解決にフォーカスする

いわゆる「プロダクトマネジメント」の本を読む機会があってめちゃくちゃ影響されました。

特にこの本は学ぶものが多かったです。

ユーザさんがあれほしい!これほしい!って言ったからあれやこれを作るのではなく、あれやこれの背景にある課題は何かをとことん考え、それを解決するものを作る。

会社でもよく言われます。

freeeを支えるマジ価値開発の極意

意識しても簡単にできるものではないので、こういうのを意識してうまく作られたプロダクトをたくさん触ってみたり、課題をあぶり出すためのよいフレームワークを勉強してみたり追っていこうと思います。

フロントエンドとの闘争

少しずつ勉強してきたフロントエンド(Javascript)もやっと触る機会がありました。

仕事ではBackbone.js + CoffeescriptとCSSにほんの少し触れ、プライベートではReactの勉強が進みました。

本体ももちろんなのですが、トランスパイルの仕組みが整理できてないので今年はもう少しプライベートプロジェクトで進められたらと思います。

KPIのトラッキング

ユーザさんに価値が届いているかどうか、そのための施策が有効か、それらを可視化し追い続けることの重要性をひしひしと感じました。

基盤作りからクエリまで、ほぼ何もできないので今年は勉強しないと…

というような感じでした。総括すると、特に10〜12月のプロジェクトは自分がエンジニアになるときになりたいエンジニア像として掲げた

「技術寄りでサービスを考え、作り、変え、大きくしていくことができるエンジニア」

 

を体現したようなものだったのでとても有意義でした。

そして目指したい姿と、それに必要なスキルがもう少し具体的になったような気がします。それを踏まえて2017年仕事面でこんな風に過ごしたい!を考えようと思います。

2017年仕事面

「技術寄りでサービスを考え、作り、変え、大きくしていくことができるエンジニア」というのも2年経って少し変わってきた気がします。

サービスが立つべきはやっぱりユーザが抱える問題を解決できてるかどうかで、そのためにはどんな技術も頑張って身につけたいと思うようになりました。

また、特に解決したい、マジで価値あると思うのは「リスクをとって挑戦する人」が抱える問題です。

なので、目指したいのは

「リスクをとって挑戦する人が抱える問題を解決することができるサービスを作り、変え、大きくしていくことができるエンジニア」

です。

そのために必要な技術は意識的にキャッチアップしたいです。

特にデータを扱う領域で不足しているスキルは今年重点的に習得したいです。

整理すると次のようになります。

データを扱う領域

プログラミングなんだからそりゃなんでもデータは扱うだろう…という感じですが、具体的には

  • クエリ、データベース: 自分で早くKPIを追えるように、それが動く土台も詳しく
  • 機械学習: 経営者が一歩先に進むための判断をサポートするという文脈かついいタイミングなので追いたいです

基礎力向上

データ扱う領域はもちろん、エンジニアとしての身につけておきたい部分は引き続き。

  • 設計: 打ち手を増やして、サービスを作る、変える、大きくするを継続的によくするために。汎用的なデザインパターンとクライアントサイドの定石をまず身につけます。まだまだベストプラクティスを追うフェーズでよいと思っています。
  • フロントエンド: ユーザさんが直接的に触る部分をよくするための技術、問題解決できるサービスであることを伝えるための手段として。サービスで使われてるメインの技術をまずは追えるように…C#(WPF)的な文脈ではもうちょいxamlちゃんと理解しようと思います。
  • linux: もうちょっとコマンド自由に使えるように…去年はLinux標準教科書を環境作って追ってみたら多少ましになったので、その復習プラスサーバの負荷状況調べれるようになりたいです。

その他

日常的な作業を効率化したり理解深化したりとか興味本位だったりとかです。

  • git: 最低限もわかってない感があるので、本一通り見るのは最低限やります…
  • Xamarin: C#のコードが自分のスマホで動くのは純粋に楽しそう
  • エディタ: RubymineとVisual Studioもうちょい使いこなそう…

 

という感じで頑張っていこうと思います。求められる役割は四半期ごとかそれより細かい単位で変わるとは思いますが、ユーザさんの抱える問題が解決できるか?を常に考え開発していきます。

 

2016年音楽面

去年の目標は

  • 元気ハツラツ90年代をたくさん歌うこと
  • 久石譲さんの曲をピアノで1曲ちゃんと弾けるようになること
  • 心の底から歌い、届けること

だそうです!ピアノは皆無…好きで聴いてそれだけで満足していました。

ただ、今年も歌を歌う上の課題には1つずつ向き合い、潰していけたと思います。

1つ治ればまた1つ…みたいな感じで際限なかったですね。

相当な期間昼休み返上で練習すれば何とかなる部分もあればそうでない部分も…

まだまだ現役でがんばります。

2017年音楽面

個人として引き続き課題をつぶしていくこと、際限ない課題に向き合うことを諦めずに続けること。

これに尽きます。

あと会社で作った軽音部、人も増えてきたのでできる限りみんな楽しめるように頑張りたいです(あいまい)。

 

2016年家庭面・精神面

家庭面というセクションができる大きな変化の年でした。

一昨年マラソン途中棄権した男が東京マラソン完走するまでの過程とゴール

というわけで一昨年末に出会ったエンジニアと6月に結婚しました。

 

あと昨年のテーマであった「許す(問題にもっとフォーカスして解決できる人になる!)」はできませんでした。

原因は何かは『反応しない練習』という本を読んだらうんうんという感じだったので、そもそも「許さないといけない状況を生んだ自分の精神の未熟さ」を見つめる1年でした。

人に期待してためていらいらいしないように、今年は最初からぶつかろうと思います。

2017年家庭面・精神面

今年は海外旅行行きたい!

後結婚式なんらかの形でできると嬉しいです。

あと、すごい幸せなのでそれを当たり前と思わず幸せを維持できるように月々の生活を振り返ったり、仕組み化できる部分は仕組み化したりいい感じにやっていきたいと思っています。

そして「心身共に健康な状態を保つ」がテーマです。

具体的には睡眠を科学する、です。

今年もよろしくお願いします!!

6月7日(火)

28歳になりました。

hbd

会社でのいただきものです。カエルとガルボが好きです!といった結果…!

チアシードドリンクのラベルを外してもってくることでカエルの卵感が出ていてセンスを感じざるを得ませんでした。

毎年、年末年初と誕生日には振り返り、先のことをなんとなく考えるので則ります。(去年のコピペ)

エンジニア編

今のチームに移ってもう1年経ってしまいました…。

ざっくり振り返ると、腕力の伸び、遅くて心苦しいという感じです。

比較的手をつけやすい修正ですぐ片付くものは片付くものの、

  • 自分が所属するチームの関わる部分の全体像の描けてなさ
  • 大事なバリデーション追いきれてなさ
  • 調査やりきれなさ
  • これがダメなら次はこれ!の試す速さと切り替えの速さの足りなさ
  • 手に負えなくて(量的にも技術的にも)運用カバーという甘え
  • 使う技術の思想への踏み込まなさ
  • 自動化やらなさ

こう見るとエンジニアとしてショボいとしか言いようがなくて辛いですね…

今チームにはAとBプロジェクトがあり、僕はBプロジェクトにいるという想定で書きます。

昨年末Bプロジェクトではアーキテクチャを変更し、1〜3月はその精度向上に取り組んでいました。

とは言うものの、季節柄どうしてもA関連の対応に追われ後手後手に。

一度はそのいずれでもないプロジェクトでがっつりフロント周りを触ることになったものの、今はまたBプロジェクトに戻っています。

上で挙げた、自身に足りないと感じる部分はBプロジェクトで日々実感していることです。5月以降はまず改めてBプロジェクトの課題を洗い出すことからはじめ、優先度をつけ、1つずつ潰していく日々です。

チームに新しく入ってくるメンバー用にまとめたキャッチアップ用のドキュメントも結局は自分が一定以上理解している部分しかまとまってない感があります。というのも、書いてある以外の部分でも聞かれるものの、「この辺の処理読んでください…」とか簡潔に説明できないか、動かしながらでないとこういうもんですって言えない。

プロダクトの全てを深く理解しろ!!みたいなものが要求されてるわけでもないのに、チームが主に守る範囲ですら追いきれていないのもこの1年って何やたんやろう?ってなります。

Bプロジェクトの根本技術の理解深化、サンプル書きながら要素技術を導入していく、チーム向けのドキュメントブラッシュアップ(それ自体意味はあるものの、どちらかと言うと自分の鍛錬として仕様理解してる部分増やす)をここ2ヶ月くらいはしっかりやっていきます。

今年はじめ時点の目標は

  • JavaScriptと真剣に向き合う
  • android触る
  • API!

ということでしたが、ここは腰を据えてC#関連やりきるところだと最近思い直したところです。

ただ、JavaScriptと真剣に向き合うは年末からやっていて、この辺の本を写経したりしつつ勉強しました。

(途中)

(途中)

(途中)

(途中)

JS怖い、みたいなところがありましたが、教えてもらったりサンプル動かしたりで少し好きになりました。あと、最近主に書いてるC#もイベント云々扱うので活きてます。ただ前線はひたすら遠い…

でもねでもね!できないこといっぱいなんですけど、できるようになったことも…!みたいなことを言う気も起きないので、次記事書くときにはこれはなんとかできるようになった!を言えるようにやるしかないです。

音楽編

今年は90年代溌剌ミスチルソングを歌えるように!年末までに5曲くらいしっかり!が目標ですが、その土台はしっかりしつつあるような感じです。

歌い方を変えた去年のままでは弱々しくなってしまう部分を再度鍛えて地声寄りで張れるように少しずつよくなってきました。

少しずつ…

5月末のライブ動画は比較的落ち着いて聴けます。

課題に感じる部分とそれを解消するための歌い方の調整がうまくいきつつあるので、引き続き練習していこうと思ってます。

ピアノは1曲もやってない…

プライベート編

28歳を迎えた日に入籍しました。戸籍を引っこ抜いて新しい戸籍を作る、という行為に重みを感じました。

新居は8月〜、式は来年?という感じでまだまだイベントも残っていて生活の土台もできてないです。

仕事一層しっかりせんとなぁという思いを強くしました。

エンジニア同士仕事面でも高めあっていけるといいなぁ…!

プライベートの目標の「許す」もこの本

が期待以上によくて一時期捗りましたが最近進捗ダメなのでもう少し落ち着きます。

さいごに

仕事は特に不甲斐なくて何やってるんだ感が強いですが、公私のサポートが手厚く気持ちは前向き落ち着いているのでやっていこうと思っています。

決意

忘れもしない2013年12月7日。自分がエンジニアになる大きな一歩となったTech Garden Schoolの門を叩いた日。そして、フルマラソンに挑戦した日。

就活の自己PRの練習がてら始めたランニングのけじめとして軽い気持ちで申し込んだものの、走破はもちろん踏破すらできずにリタイヤ。

足が痛くて30km地点で歩くこともできなくなりました。(そのときの記事、旧doorlog)

それから約2年後の2015年10月、会社関係でたまたま東京マラソンに出走できることになり、そのときの雪辱を晴らす決意をしました。

フルマラソンを走りきる。別に肩肘張らなくても何なくクリアできる人もいるでしょう。歩いてればいつかゴールできるでしょう。でも自分にはできなかった、それなりに準備してできなかったことをできるようにするためには、よく考えてよく準備する必要があります。

課題

最優先で解決すべき課題は、致命的な(一発退場となる)ダメージから膝(の横の筋)を守ることです。

他にも、そもそも長距離を走ったのは前回リタイヤしたフルマラソンとハーフマラソン1回。

そういうわけで、膝を痛めないように体力をつけるために次のように練習すべき内容、解決すべき課題を整理しました。

1. 走るのに必要な体力を増やす
1-1 膝悪くしない加減のもとでとにかく走る

2. 走るときにかかる負荷を減らす
2-1 膝にかかるダメージを減らす
2-2 同じ膝へのダメージでも体が受ける影響を減らす
2-3 他の体の部位にかかるダメージを減らす(どこにダメージが加わるかは練習して探す)

練習

ざっと課題は上げてみたものの、意識して走らないとよくわからないので、とりあえず走ってみて改善していく!

1. 走るのに必要な体力を増やす
1-1 膝悪くしない加減のもとでとにかく走る
→無理はしない。ちょっと間が空いて年明けに地元を走ったとき、7kmくらいですごい膝が痛くなって翌日階段の昇降かなりきつい程度に…

練習で体を傷めたら元も子もないので、痛いと思ったら練習はやめて、違和感が残ったら走らないルールに。

あと、1月?のいつからかは1回走る毎に+0.8km、週末を挟むと4km増やしていく。それまでは大体4km〜6kmを週1〜3回走っていたので、最終的には平日夜に20kmくらい走りました。

・2月途中風邪引いてしばらく走れなかった
・平日そもそも仕事終わった後しんどい
・夜の時間は修行なり音楽なり会話なり大事にしたく、コンスタントに夜の1〜2時間削るの気持ち的に相当抵抗があった
・夕飯食べるの遅れるとおなか痛かった

とかでだいぶ葛藤してた気がします。

2. 走るときにかかる負荷を減らす
2-1 膝にかかるダメージを減らす

まずはシンプルに両膝にサポーターつけて対処しました。慣れるまではつけてもちょっと膝に違和感があったり、サポーターをつけることでふとももの裏が痛かったり(膝曲げるときに負荷がかかってつりそうになる)他の問題もありましたが最終的にはサポーターつけて体力消耗する以上に膝をゴールまで守り抜くことが最優先だったので妥協しました。

次に、そもそも走り方に問題があったのでそれを改善しないと…ということになりました。

・いろいろと走り方(足の地面へのつき方、姿勢等)をかえながら走る
・その道に詳しい人が近くにいる人にアドバイスともらう

中で、つま先を進行方向に対してまっすぐに、かかとから踏み込めておらず、膝の外側に無駄な負荷がかかっていることがわかったので、ペースを落として正しいフォームで走ることをひたすら意識して走る時期もありました。

2-2 同じ膝へのダメージでも体が受ける影響を減らす

2-1で走り方を改善してもダメージは残る…ので、同じダメージを受けても体への影響を減らしたい…

自分が課題に感じている問題は何の変哲もない、走る人にはよくあることらしかったので、よく走る友人に聞いたところ膝の横の筋よくストレッチして!!というアドバイスをもらいました。

確かにその部分全然伸ばしてなかったのでしっかり伸ばしました。

2-3 他の体の部位にかかるダメージを減らす(どこにダメージが加わるかは練習して探す)

膝が特に痛くなるのはわかっていたものの、きっと40kmとか走ったら他にも痛くなる部分があるはず。ということで、練習の中で痛くなるのはどこか?をきちんと覚えておくようにして、それを軽減するための走り方を探したり、ストレッチを重点的にやるようにしました。

結果的には
・足首: 上のよくない走り方が原因っぽかったのでフォーム改善するのと、足首回すのしっかりやることで解決
・肩: 僧帽筋をきゅっとしめて走る癖があったっぽいので下げるように改善するのと、上回ししっかりやることで解決
・太とも: サポーターつけてることで太ももの裏めっちゃ痛い…多少サポーターゆるめるのと、走り込んで筋肉つけるのでなんとかしました

という感じで当日を迎えました。

本番

前日は軽めに6kmくらい走り、早めに寝ていざ当日。朝の7時から受付スタート、9時10分出走!ということで割と早めに家を出て、配給されてたバナナやスポーツドリンクをいただいてスタートラインにつきました。

3万7千人が同じコースを走るということでスタート前のブロックはたくさんあり、スタートラインまでたどりついたのは9時20分頃だったような気がします。

0〜10km

けっこうな下り坂。ここで飛ばしたら膝への負荷が半端ないので、歩くのに近いペースで走ってました。

人も団子状態なので、無理してもいいこと無さげでした。

10〜20km

めちゃくちゃ苦しいこともなく最も楽な区間。ただ、時折膝が痛んで、このまま動けなくなるくらい痛くなったら…みたいな不安は常にありました。

それまで割と翌日の仕事を気にしていましたが、気にする余裕がなくなりました。

20〜30km

肩が泣きそうなくらい痛い一方で、膝がそこまで痛くなくなりました。

給水ポイントでしっかり水分をとり、ストレッチもしつつですがこの段階でほんとしんどかったです。

それまで割と目標タイムを気にしていましたが、気にする余裕がなくなりました。

30〜40km

膝が痛くないのは不幸中の幸いだったものの、ひたすら足(太ももの裏や付け根)が痛い…

けっこう怖いながらもとりあえずサポーターは外してしまい、ストレッチ、走る、歩くをひらすら繰り返しました。

それまでは残り10kmくらいは走り続けるぞ!とか思ってましたが、もはやどうでもいい、ただただゴールが見たい。

40〜42.195km

残り2km!って見えても、1kmが気の遠くなるほど長く、最後の1kmでやっと後は全部走り切ろうと思って走りきりました。

ランナーズハイなんて1秒もなかった…。

ゴール、ゴール

時間は4:57:52。4:30:00を目指していたものの、そんなことどうだっていい。

今回はちゃんとゴールに帰ってくること、2年前に失敗したことの原因をちゃんと考えること、考えて練習すること、練習して必ず成し遂げること、絶対逃げないこと、それが全てでした。

finish

就活のときにはじめ、途中けっこう空く期間もあったものの走行距離も1000kを突破!

スクリーンショット 2016-03-07 9.23.03

全部走ってるし、途中落として電源切れたり、電池切れたりしたのも何回もあるのでとにかく大台には乗ったはず…

結果として成し遂げることが世間的には平凡であっても、ある時点でそれは自分には敵わないことかもしれません。

でも、なんとかしたいと思うならなんとかする方法はあると思うし、それがどんな分野であっても立ち向かえるだけの人間になりたい。

公言してなかったですが、その象徴が今回の東京マラソンという場とそれにいたる過程でした。

こんな思いで臨んだ東京マラソン。練習に始まり、当日も各地点を回りながら応援し、ゴールで待ってくれていた人がいます。

その人にゴール後プロポーズしました。

自分が身の丈に合わない挑戦をするときにそばにいてくれて、ゴールに待ってくれてると思うだけでがんばれる人、逆の立場になったときに全力で応援したいと思える人だからです。(もちろんこれだけでないではないです)

自分勝手ではありますが、誕生日だったり、他の記念日でなく、自分が決意を貫くこの日、未熟な自分を乗り越えて行く日が他のどの日よりもふさわしいと考えました。

何事にも負けないこと、その人と幸せを築いていく決意をここに記します。

明けましておめでとうございます!昨年は公私共々人生が変わった1年でした。

それを振り返り、今年1年をどうしたいか考える。そんなことをしながら元旦の午前を過ごそうと思います。

2015年

隔月〜四半期くらいのペースで記事を書いて振り返っていました。改めて全部読んでみると、そのときそのときに必死に考えてること、その次の3ヶ月くらいでどうしたいか、その前に思い描いたことが実現できたのかがわかってよいなぁと思いました。

ただ、それだけではなくてやっぱりこんな風に1年とかそれくらいのスパンを振り返り、次を思い描くのもあるとなおよいなぁという感じです。

1月〜10月

SIer企画営業をやめ、クラウド会計ソフトのfreeeでエンジニアとして働きます : 0ヶ月

転職して3ヶ月が経ちました。もっと速く修正したい。 : 3ヶ月

27歳になりました : 6ヶ月

転職して半年が経ちました。「技術だけで生きるというのは幻想である」だなんて僕は言えない。 : 7ヶ月

freeeへの闘争、終結。正社員になりました。 : 8ヶ月

転職して9ヶ月、面接受けて1年が経ちました。ここは求めた場所なんやろか? : 9ヶ月

転職して10ヶ月、内定もらって1年が経ちました。この1年で何が身についたんでしょう? : 10ヶ月

スタートラインに立つまでのお話。自分の技術的な成長のボトルネックは技術そのものでなく、人との関わり方(頼る、自分を過度に卑下しない)にありました。

11〜12月

10月にはじまったプロジェクトが12月でひと段落しました。大事な目標を掲げるときはダルマを買う、いわゆるDDD(Daruma Driven Development)を実践しているのですが去年2つのDDDを達成しました。

daruma

5月頃既に立ち上がっていたプロジェクトではあったのですが、追加機能をリリースするのはもちろん、今後の拡大を見据えて再設計し、バグやKPIのトラッキング、開発体制を大きく変更するというもの。

それまで主に書いていた言語と異なるのも自分にとってはチャレンジでしたが、エンジニアになるときに掲げたこと、昨年はこんな風なことやりたいと掲げたこともあってビジネス上の文脈以上の意味を持たせていました。

リリース後に…があり、力不足は隠せなかったものの周囲の方々にだいぶ助けてもらって文字通りひと段落というところです。

6月の記事には目指す姿としてこんなことを書いていました。

  1. 今目の前にある、まさに必要とされることを何でもこなせる
  2. 今の体制では手薄になってしまう、けれどもみんな必要と思っていること部分の仕組みを一から(とは言わなくても「自分がやったった」って言えるくらいの貢献度で)作りたい
  3. 特定の分野と、逆に誰もやってないけど誰がやるといいやろう?みたいなときにアイツや!って声かけてもらえるようになりたい

それぞれ振り返ると、

  1. 社内に知見が少ない分野(聞いたら分かったこともあるかもですが、結局調べないとどうにもならないみたいなことが多かった期がする)でしたが、最低限動かすのに必要はことは調べ切りました
  2. 他のプロジェクト参考にしたものの、意識的に時間とらないと入れられない仕組みをいれました
  3. 8月か9月くらいの面談?での「この分野はニャンちゅう(※社内での呼称)が育てたって言える分野として育ててくれ!」という言葉と共にアサインしてもらったプロジェクト

という感じです。

単にコードを書くだけでなく、ほんの少しだけエンジニアリングに近づいた気がしました。

ただ、他のプロジェクトと同じように運用しようとするにはまだ足りていない部分が多いです。悔しいです。次の四半期でまたよい報告ができるようにがんばります。

朝会

4月頃?からみんなの前に立って担当し始めた全体朝会。忘年会にて特別賞枠で表彰してもらいました。

オフィス移転前には100人前後の前で話す感じで気分はさながらライブ。日付言うときにはずっと手震えてたし(日付以外はそうでもない)、未だにそうだし、きっとこんな時間無駄って思う人いっぱいいるし、それ言う?言っちゃう?みたいなことも言われたし…

駄菓子菓子1人あたりの時間×人数分自分が社員を拘束するのはそれだけの責任が生じて当然。体を張って(?)滑ることを恐れず(いや恐い)、声も多少集めつつよいと思ったことはとりあえず試してみる日々でした。

効率化できることがあったり、もう一歩踏み込むべきところがあったり、朝会司会を仰せつかった頃とは大きく異なる規模に見合った朝会を設計する(やめる、も一選択肢として考えるべき)ことがあったり、これはこれで大切な仕事だと思うので人の力も借りつつ続けていきたいです。

情報発信

チキって書けなかったQiita記事。freee Engineers Advent Calendar 2015をきっかけにとうとう年末2本書きました。

ここで紹介されているGrowing Rails Applications in Practiceという海外本の全訳もGW前にやった気がします。

自分くらいのレベルだと、こういうの書いてる暇あればコード書けって思われそうな気がしてついつい控えてしまいますが、特にC#とかほんとMSDN読んでもあてにならないことも多く、こういう善意で発信された情報に支えられたと思っているので、今度は自分も貢献したいと思う気持ちは強いです。

エンジニアやってていいなーと思うのは、大して価値があると思えない知識の有無で無駄に削られたりしないことです。属人的になってしまう部分やさすがに公にできない情報ももちろんあります。それでも、根本はオープンな情報の元でコミュニテイが存在し、オンライン/オフライン問わず門戸が開かれているという世界はほんとに好きです。好きです。好きです。

総括

というわけで、

職業としてエンジニアを選んでほんとによかった

会社楽しい部活も全力でやった

会社組織の一員として解決すべき問題はあるのでそっちもがんばった

最後までやりきれなかったことも…………

そしてこの会社でエンジニアとして今も変わらず(よい方向にはもっと変われ)働き続けていられるのが昨年一番の成果です。

対外的な部分で判断してなんぼやろ、と思うのですが去年の目標はひとまずそこなのでよしとしましょう次元低くてさーせん。

one more thing

2015年振り返るという文脈でどう考えても欠かせないのがルームシェア。大学入学と共に東京に引っ越し一人暮らしを始めましたが、縁あって1月半ばから3人で暮らしています。

2014年からプログラミングを教えてもらっている師匠と、一緒に教えてもらってた人です。

いろいろ思うところはあるものの、まとめると意外にもこんな感じで変わりはありません。

『ぼくは明日、昨日のきみとデートする』を読んで

7月の頭に書いた読書感想文でですが、人が大切だと思う感ってこんな風なんか…と今更ながら気付かされました。

全員プログラムを書いたり、エンジニアリングをしたりする人なのでそっちの話をするのが筋かもですが、より強く思うのはこっちです。

そういう感じの話も別の機会にできたら嬉しいです。

 

2016年

1年スパンで目指したいことを。

エンジニアとして

「エンジニアとして具体的に直近こうしたい」は11月〜12月で書いた通り10月からのプロジェクト、より体制として確立させることです。

その他は、

「ニャンちゅう圧倒的にこれできないからこのプロジェクトはなしかなぁ」をなくす!!!

です。

そういうと語弊しかないので言い直すと、フロントもちゃんと書きたいということです。

サーバサイド満足に書けないし、設計もできない、言語の周辺も知識/経験すべてが不足しているのはわかっているけど今年はそこなんとかしたい。

フロントに限らず、QAテスト的な文脈やいろんなプラットフォームで使えるクライアントアプリという文脈でJavaScriptと真剣に向き合いたい。

あと、クライアントアプリ書いたよしみでandroid触りたい。

API整備できる人になりたい。

他の細かいところはこの記事に書いたのとあんまり変わってません。

転職して10ヶ月、内定もらって1年が経ちました。この1年で何が身についたんでしょう?

ただ、1年大枠としては

  • JavaScriptと真剣に向き合う
  • android触る
  • API!

というのをやっていきたいです。バックエンドとフロントエンドちゃんとつなぎたい…

このやり方即戦力にはなれなさそう…と思いつつ、今そういうプロジェクトに携われたら勢いでどうにかなるという思い込みも込みでこの順番でやり直してます。

JavaScriptの学習本をレベル分け!入門、中級、上級全6冊

過剰な苦手意識とこれまで学んだことを活かして概念に馴染むところから。

最新動向は社内の圧倒的革命家たちの記事とコード読みながらいつの間にかキャッチアップします。

音楽

昨日振り返り、思い描いていました。こんな感じ。

ギターを弾く、ピアノを弾く、ミスチルを歌う、今年1年の音楽を振り返る

元気ハツラツ90年代をたくさん歌うこと

久石譲さんの曲をピアノで1曲ちゃんと弾けるようになること

心の底から歌い、届けること

以上!

人間として

人としてですね。大学のときから1年に1つテーマ的なものがあったんですが、昨年は定めず?定められず?でした。

今年のテーマは「許す」です。

昨年は楽しいことがとことん楽しい1年だっただけに、イラッとすることはほんとにイラッとしてた気がします。今でも思い出すだけでいろいろとイラッとします。体調まで崩すのほんと誰得。

とはいえ、イラッとしたところで結局状況は何一つ変わらなかったし、その環境から別の環境に移動するのに腐心するくらいならもっとエンジニアリングや価値の創出に集中したいので、受け入れも対峙もせず、ただ「許す」です。

きっとその状況の中で自分だけこんな思いして飲み込まねばらないのか…とか考えると思います。いや、きっとなんてことはなく絶対思います。

駄菓子菓子、この記事を読んで吹っ切れました。

【岩田 聡氏 追悼企画】岩田さんは最後の最後まで“問題解決”に取り組んだエンジニアだった。「ゲーマーはもっと経営者を目指すべき!」特別編 -

岩田さん、エンジニアとしてすごいのは別に誰が見てもそうでしょうという感じなのですが、とことん問題にフォーカスする姿勢、記事の最後のページに出てくる

「志向性が違えば衝突するのは当たり前です。それをわざわざぶつけさせるやり方を取るのが悪い」みたいに発想して,一つ一つ問題を解決していくんですよ。

というのに痺れました。社内にもその辺含めてすごい尊敬する人がいます。直近プロジェクトが無事乗り切れたのもその人に認められたいみたいな感情があったことは否定できません。

というわけで、外面としては「問題にもっとフォーカスして解決できる人になる!」ということにしておきつつ、その前提として「許す」ことができる人になりたいです。人間への闘争。

 

最後に。仕事はもちろんですが、プライベートでも本気出して幸せな感じの1年にします。

今年もよろしくお願いします!

1年位前にこんな記事を書きました。

ミスチルという呪縛の向こう側にある音楽

ミスチルという大好きな音楽。長年向き合ってるけど全然うまいことできない!けど、なんとかしたい!!ということでこれまでと歌い方を大きく変えてやってみよう。そんなスタンスで取り組んだ昨年のお話。

駄菓子菓子、いざ肝心のミスチルに新しい歌い方で取り組むことになる新しい1年はお仕事も変わる。果たしてうまく練習していけるかなぁ…

という内容でした。

今回の記事はまさにその結果、この1年の音楽が自分にとってどんなものだったかを振り返る記事です。

新旧の統合

昨年の様子

全然うまいことできないミスチルの音楽。いろんな「うまいことできない」はあるものの、自分が歌うにあたっての致命的なところは

  • 高い部分歌えない(音程が下がってしまう)
  • 無理に高い声を出そうとして喉をしめてしまう
  • 喉に高負荷をかけ続けるため最後までもたない

です。終わってます。

これらを克服するために、喉をしめて無理するこれまでの歌い方を根本的に変えないといけない状態でした。

そこで、ミックスボイスというのを教えてもらい、取り入れました。

平たく言うと、普段喋る地声とクロちゃんよろしく裏声の間の声を出す。太めの裏声で高い部分を歌うという感じです(とか言ってると怒られそう…)。

昨年は秦基博さんの鱗をこの歌い方で歌ってみて、だいぶそれっぽさが出た気がしました。

けど、ゆったりしたふわっとしたテンションの曲ではそれっぽくなっても、自分がやりたい元気ハツラツ90年代ミスチルソングにはちょっとか弱すぎるという状態でした。

今年の様子

そういうわけで今年最初に課題曲としたのはミスチルのNOT FOUND。普通に地声を張って歌うのは絶対無理!!というのを敢えて持ってきました。

途中で曲変えざるをえなくなって全然仕上がらなかったですが、

  • 地声の余裕ある音域でもかなりのどしめてる
  • 地声でがんばるかミックスにするか迷う音域がある
  • 歌い方変えたことによって息使いすぎて苦しい

等々課題山積。好きで歌ってきた数々のミスチルソングはもうこれまでと別の曲と捉えた方がいいというのがよくわかりました。

もしもピアノが弾けたなら

7月頃だったでしょうか?年末にコンサートがあると。

基本ピアノコースの方々が参加するもの、ということだったのでどうせならピアノ弾き語りでミスチルやろうかなと思いました。

  • ちっさい頃ピアノやってた
  • ハイスイノナサっていうバンドが好きで、ピアノけっこう入っててピアノの音を求めてた
  • 仕事しながら久石譲さんのピアノコレクションひたすら聞いててピアノ熱が高まっていた
  • 最近新しいこと挑戦しても何とがなる気がする

等々重なって挑戦してみることにしました。

やる曲はミスチルのHERO。

前奏・間奏のメロディに確実にピアノが合う気がするのと、伴奏は伴奏でけっこうピアノ入ってるのと、原曲もサビはミスチル楽曲には珍しくふわっと歌っていることからです。

あと、年末の寒い季節にこんな曲演奏できたら素敵かも…という妄想の産物ですね。

コンサート自体は音楽に限らずここ数年で最も緊張して散々でしたが、コンサート後も練習し続けて人前で歌う機会があってそれなりになったり、録音して聞けはする感じになったりと選んでよかったなぁ…という半年を過ごしました。

今年最後のレッスンはHEROにしてもらったものの、「あれ、こんな歌いづらかったっけ…?」ってくらい新たな課題が見える結果となりました。けどいったんこれはこれで区切って年明けは声張らないと迫力が出ない曲を課題曲にする予定です。

そして3月にあるライブでやります。

ピアノで弾き語る

ピアノ弾き語りは弾き語りで人生初だったので備忘録!

  • 本番1週間前の時点で、暗譜しようとせず暗譜した状態になってないと本番は弾けない
  • 最悪足、右手、左手、歌、マイク、聴衆、楽譜バラバラに意識することになるが、少なくとも楽譜は省きたい
  • 早めに妥協してシンプルなアレンジにすること。楽譜通り伴奏引くことが目的では決してない
  • けど何かしら本番が終わったら元のアレンジで弾けるように練習を再開すること。うまくならない

バンドでもミスチル

折しも7月に仲間を見つけ社内で立ち上げた軽音部。

忘年会でバンドをやろうということでミスチルのシーソーゲームをやらせてもらいました。

これこそザ・元気ハツラツ90年代ミスチルソング!自分がやるタイミングとしてはまだ早い…と思いつつ。

前後いろいろとあったり言われたりで歌える心境ではなかったんですが、しっとりとゆるっと歌うのとはまた違う空気に胸がアツくなったのでどうにかしようと思います。

番外編

もう1つの挑戦

久々に前職のサークルにも顔を出し、11月にはライブに出ました。aikoのギターで!

ギターだけ持って、歌なしでライブ出るというのは大学以来。何かと挑戦の多い年でした。

思ったより手も震えどうしようもない感じでしたが、ギターはギターで楽しいですね。

ボーカルやるにしても、ギター難しいからこのバンドコピーは無理!というのはもったいないので細々と続けていきたいです。

あとaikoよかったなんで聴いてなかったんやろう…

今年前半

年の最初の方にやってたの、よく考えたら秦基博さんのアイでした。

https://www.youtube.com/watch?v=9WoCR4B_qNo

これもギターがネックになりそうな曲で、ライブバーで弾き語ったときけっこう手が震えた気が…

ギターで細かいフレーズ弾かないといけない曲、まだ成功したないのでこれはこれで課題ですね。

好きな曲なのでもっかいどっかでやりたいです。

秦基博さんのアルバムも今月出たのでいろんな曲やってみたいですね。

来年の音楽

まず、今年は変わらず、むしろ多めに音楽できてすごくよかったです。

時間作るのはほんとにやりたかったらなんとかなる!

普通に人と楽しく昼ご飯食べたら40〜60分。昼休みに菓子パン買って、喉詰まらせながら30分カラオケ入るだけでも全然違う。すごいしんどいけど。

ピアノはピアノで久石譲さんの曲やっていきたいなぁ。

このアレンジがとてつもなく好きで落ち着きます。

ピアノでジブリ Studio Ghibli Works Piano Collection

ピアノ弾き語りもあと何曲かやってみたいのあるので、また機会があれば必死に練習するとしましょう。

でもやっぱり来年は元気ハツラツ90年代ミスチルソングをかっこよく弾き語りたい!

自分の音源聴いてても依然としてため息ばっかですが、去年よりは確実にマシなので来年は今年よりももっと上達させたいです。

勢いに任せて書いた去年の記事とは違って淡々としてしまいましたが、1年でミスチルのライブに3回も行ったり、ミスチル部作ったり、音楽的文脈でより憧れを強くし、前よりはほんのちょっと、ほんのちょっとだけ自信を持てたいい年だったかなぁと思いますいい年なだけに…

11月1日

に書いたことにしとこう。

内定もらったのがちょうど去年の10月28日(火)23:22。電話にて。条件付きではあったものの、ただただ嬉しくて師匠にすぐ連絡した気がする。

それはおいといて、そこから実務でエンジニアとしてやっていくための準備が始まりました。

bsPAK86_codeing20140517

それまではCakePHPとjQueryとRailsをほんの少し触っていたものの、いざ業務となると話は別です。

内定もらってすぐ会社に行って、こんな本読んだらいいよ!みたいなのを教えてもらって修行が始まりました。

いわゆるfreeeへの闘争というやつです。

前職では引継ぎや挨拶回りした後有給に突入し、それから入社まで大体の時間は課題図書を読んだり、ものをつくったりして過ごしました。

今回はこの1年で
・どんな勉強して(何読んで)
・何ができるようになって
・何ができてないのか

を書きたいと思います。業務より少し広い範囲でエンジニアとしての道のりを定点観測する大事な時期だったり。

入社前の課題(11月〜1月半ば)

内定とほぼ同時に言い渡された(表現的に受け身ですがとてもとてもありがたかったです)課題図書、3ヶ月でマスターしようシリーズ。

毎週会社に報告に行ってKPTを振り返り、今週はこんだけやります!って宣言してまた次の週、みたいなのを繰り返してました。

そのときの内容、Evernoteに「精神と時の部屋@freee」ってタイトルで丸々残っててそっ閉じせざるをえなかったです。

Webサイト

Railsチュートリアル4.0版
jnchitoさんのRspecに関するQiitaまとめ
Railsガイド

書籍

Everyday Rails

ものづくり

・二次会会場検索
・端末管理システム
・書籍管理システム

まず最初の1週間でRailsチュートリアルをやりました。実質4日くらいでひーひー言いつつ…。

途中から全然わからなくなってきて、でもこれ次行くときまでに最後まで動かせんかったら未来はないと思え…みたいなテンションでとりあえず出てくるエラーを潰しつつ最後までやりました。

結局半年くらいで4周写経しました。

1周の写経と写経の間にいろんな知識が身についてて(Rspec勉強する時期がったり、都度Rubyのメソッド調べたり)、やるたびに理解は深まってるのを感じたものの、最後に写経したとき、最後の方やっぱ難しいと思った覚えがあります。

1周目で
・マジRspecわかんねぇ
・RailsとRubyの境目どこだよ…

って思ったので、次に
jnchitoさんのRspecに関するQiitaまとめを読んだ上でEveryday Rails(Rspecのチュートリアル的な本の邦訳PDF。先に書いたjnchitoさんが翻訳)とパーフェクトRubyをやるという流れです。

こんな感じで特にわからないと感じた部分に関連する関連書籍を週3冊程度、それぞれ100〜250pずつくらい読み進めました。

11月末からは社内の端末を管理するシステムを設計して作り、Rspecも足してみるというのをやり、正月には書籍管理システムと作りながら年越しました。

バーコードリーダーでISDN読んで楽天APIをたたいて書籍名を引いてくる、というのをどうしてもやりたくて(こんくらいできないと未来はないと思えと思いながら)必死だった気がします。

1月からは業務も始まりつつということで、12月までに大体読み終えて(わからんものはわからんと割り切って)入社という形になりました。

当時通っていたプログラミングのスクールは年末でゼミが終わるということで卒業制作に勤しんでました。

こっちはこっちで必死で、
・食べログAPI
・GooleMapAPI
・ページ下部でクリックしたら上部まで戻るjQuery
・非同期通信
・UIの何かしらのライブラリ
をなんとか使いたくて、これはやる!って言ったものはとりあえず全部動かしたと思います。

結果できたのが、現在の近くにある飲み屋さんをマップ上に表示しれくれる、二次会会場検索サービス各参(かくさん)。※ふりではない

Github
各参

Qiita teamとか振り返ってみると、なんかすごい遠慮してる感じ…(1月半ば〜3月)

入社してすぐはあまりにもコード書けなくて、このままではあれですね的な面談を受けつつ社内向けの機能をリリースしたりしてた気がします。

private APIをいじって、クライアントも準備してみたいな感じでチームをまたぐ開発をしました。一歩一歩調べつつ。

コードの実行を途中で止めてデバッグする、というのを最初に教えてもらっていっぱい止めて動きを追いかけてました。

一方でどういう書き方がいいものか他社のコーディング規約を読んだりしたり、リファクタリングの本読んだりしたものの、
・cookpadコーディング規約

周りの人に相談してやっぱ手動かさないとどうにもならんよねってことで基礎振り返りつつとにかく写経してたっぽい。
・パーフェクトRuby(再)
・楽しいRuby
・パーフェクトRuby on Rails

あと、メタプログラミングRubyとか読んでて、よくわからんかった。

2015年10月10日に新版発売。

転職3ヶ月経った直後の記事、こちら

ただ、なんかこの辺りのQiita teamの記事1つ1つに空回り感というか、できない負い目みたいなのを感じられて胸がすごい苦しくなった。

まわりを頼れ!!!(4〜5月)

上でも触れたものの、なんかこうできない自分の負い目で過度に遠慮してまわりにあまりもの聞けないみたいな時期があって。

もちろんコード書くのはまだまだだったものの、それ以上に仕事のスタンスとしてある程度調べてわからなかったら周りに頼って聞く。自分で調べてどうにかするのが大事なんじゃなくて、ちゃんとリリースすること、聞くことを通じて爆速で成長することが大事やから!っていう話をしてもらった。

その流れもあって全社の朝会と社内イベント企画みたいの担当させてもらうことになった。

そこから少し肩の力が抜けて変わり始めた気がします。

この時期は
・Railsチュートリアルもう1周
・リファクタリング案件向けにEveryday Railsもう1周
Code SchoolのRubyシリーズ講座毎晩
・お決まりの書き方が知りたくてRails3レシピブック
Growing Rails Applications in Practice訳して読んだ
をやってました。

やることががらっと変わる(6〜8月)

紆余曲折を経てチームが変わりました。それまで馴染みのあまりなかったseleniumをたくさんたくさんたくたくさん触って、コードを書く量は少し増えたと思います。

それにプラスして、同じ技術を使って他のチームをサポートするコードを完全に自力で書き、その過程で技術選定もやってみました。

それまでは既存のコードに足して機能を追加したり、リファクタリングしたり、バグ直したり、調査したりと一から書くことはあまりなかったのでものすごい勉強になりました。

通常業務にもだいぶいい影響があったり、もう少しインフラ周りも勉強しないとと実感したり。

そのとき一番お世話になったのがこの本でめちゃくちゃ面白かったです。

それと、Railsチュートリアルよりももう少し実践的で具体的なサンプルあるもの写経したいと思ってこの本やりました。

プロジェクトでも目にするような設計になぜなっているのかシンプルな作りのものを作り変えながら進めていくのですごいよかったです。これはもう2周くらいしたい。

続編はKindleのみ。

あとseleniumの基礎とQAについて。

自分が主に育てていく領域をもつ(9〜10月)

新しいチームにも漸く慣れ始めてきたとき、それまで使ったことのない、型のある言語でクライアントアプリを書くことに。

わからないながらも短期間であほほど調べて何とかリリースを重ねるうちに、いつの間にがこれまでで一番大きな開発をやることになっていました。

まだ出たばかりのものを引き継いで、単にコード書くだけでなく拡張性を考慮して設計したり、修正のフローやサポートのしかたを考えていく楽しいプロジェクトです。

周りには何年もプログラミングを経験している人がいる中で思い切った開発させてもらうにはきっと社内に知見がそんなにない分野でもオーナーシップをもって諦めずにやりきるしかなくて、チャンスがあれば食い気味に案件取りに行くしかないと思っています。

そうやってもらった案件には愛着しかなくて毎日楽しいです。

最近はこの本も読んでて、本当に楽しい。

ある程度馴染みのある分野ならなかなか手を出せなかったJavaScriptとも仲良くなれるかも…という淡い期待があるからこその楽しみですが、QA的な分野にも活かせたらなぁなんて思っています。

ただ、やっぱりJavaScript書くならがっつりフロントやりたくてまだまだ距離あるなぁと感じつつ。

今の案件だとそこまでフロント書く感じではないですが、apiがっつり触れるタスクやらせてもらって詳しくなった上で、それ使いこなしてフロントへ…みたいな流れになるようお仕事もらおうと企んでます。

そういう意味だと.NETのWPFがけっこうイベントイベントしているので前よりは理解しやすくなってるのではとも期待しています。

身に付いたこと

という流れでこの1年で何が身についたんでしょう?

Rubyの基礎

・とりあえず今やりたいことは普通に調べて出てくる程度のメソッドでやりくりできる程度。
・メタメタしていると一切理解不能。

Railsの基礎

・処理の流れはbinding.pry挟みながら何とか追える程度。
・Railsコミュニテイで盛んな設計(formとかpresenterとかserviceとか)は何となく真似する程度。
・いやでも画面とかフロントエンド絡むと途端に手止まるなぁ…

まとめると、処理の流れは何とか追って既存のコードの真似して何とかコード書いているものの、設計思想とかパターンへの理解が曖昧で書くのも読むのもいまいち確信が持てない状態。

フロントはからっきしダメ。

直近身に付けたいこと

オブジェクト指向

・C#書いててどかっと新しい機能足すときに「ザ・オブジェクト指向」なところで完全に手が止まる。

設計

・こういうときはこういう設計するよね、みたいなの知りたい。
・なんでこういうフォルダの切り方するの?みたいなの普通によくあるデザインパターンだったみたいな事例があった。

フロントエンド

・この期待感を形にする

まとめると、少し実装は追えるようになったきたからこそなぜそうなっているのかを理解して自由度を上げたい。

身につけるべきこと

あれもこれも多すぎてもはや分野列挙することしかできない…
・CSS
・テスト
・SQL
・UNIX
・DB、モデリング
・git
・コンピュータのしくみ
・セキュリティ
・ネットワーク
・サーバ、インフラ

うわぁ…テストとCSSはさすがに情けなくなってきたので早めに…

まとめ

できるようになってきたかも…!みたいに思い始めてきたことって単にひたすら似たようなこと繰り返してるだけで以上でも以下でもないです。

だからこそ特定の分野は割り切ってその期間ひらすら没頭して成果を上げて、新しいことできる機会があれば絶対逃さないの繰り返しの気がします。

なんとなく全体感の中で足りないこと、足らせたいことは意識しつつ。

結局最高に気持ち良く没頭できることがしたい、できるようになって気持ちよくなりたいに尽きる。