くうと徒然なるままに

モバイルアプリを作りながらバックエンドも作っています。

Azure サブスクリプション の共同管理者を追加する

前提

作業

  1. 元アカウントで Azure ポータル にアクセスしポータル画面を開く

f:id:kuxumarin:20180311014203p:plain

  1. 左カラムよりコストの管理と請求へ移動

f:id:kuxumarin:20180311014348p:plain

共同管理者を追加したいサブスクリプション を選択します。

  1. 対象アカウントの招待

アカウントの制御 -> 追加を選択します。

f:id:kuxumarin:20180311014526p:plain

  1. よしなに設定して招待

[f:id:kuxumarin:20180311014623p:plain

あとは、よしなにメールが届くのでそこにあるリンクを踏んで完了です。

ピクシブ インターンシップに参加してきた。マンガは、愛だ。

こんにちは、ピクシブインターンシップに参加してきた くぅです。

今回のピクシブインターンシップのアプリ関連で参加した人は自分だけなのでアプリ関連に関することを書いていけたらいいなと考えています。

以下のように定義しておきます。

#define メンターさん達 @kwzr @verno3632 

何に参加してきたの?

日本中の{アニメ|マンガ|技術|*}オタクの愛する ピクシブインターンシップです。

東京の千駄ヶ谷にあるのでホテルに住みながら参加してました。(ちなみに、ホテルはピクシブ が取ってくれてました)

ぶっちゃけ ピクシブの第一印象

「オタクがオタクでいることができる会社」

ピクシブの ホームページに「創作活動がもっと楽しくなる場所を創る」 と書いてあるような会社です。

社員さんの中にも技術書展 の運営をしてたり アプリを作ってたりと クリエイターしつつ働いている人が多い印象です。

クリエイター自身がクリエイターにとって使いやすいサービスを作るような。

メンターさんの机の上にフィギュアが置いてあっても誰も突っ込まないような雰囲気です。お互いにニックネームで呼び合い 高校の文化祭の前日のようなワイワイした雰囲気ですo(^▽^)o

面白かったエピソードとしては、全社会議のプレゼンの中で 百合物が好きであると公言する人がいたり、それに対する質問の中でアニメのコアな部分な質問を返したりしてたのが印象的でした。

何してきたの?

したこと

pixiv コミックの Android 版の新規機能追加をしてました。

技術的には以下の要素でした

  • RxJava
  • Android Architecture Components
  • DI
  • Retrofit2
  • Kotlin

(詳しい作業内容を書くと おこられ が発生するので書けないです)

春休み中には開発した機能を含んだアプリが公開されるかなと行った感じです。

pixiv 本体、BOOTH、技術基盤 コースの人たちは すでにデプロイされてて羨ましいと感じました。(アプリはどうしてもデプロイまでタイムラグが発生する。

インターンシップの流れ

応募 ~ インターンシップ参加確定 まで

ピクシブインターンは友人が応募してたので自分も応募してみたいなーと思い調べたのが始まりです。

普段からお世話になっている会社を覗いてみたいというのがモチベーションですね。

ピクシブの書類審査

インターンシップの第一審査は 書類選考 or GitHub 選考でした。

最近作成しているプロダクトは ソースコードを公開していないことともあり、自分は書類選考を選択しました。

インターンシップに一緒に参加した人に聞いたところ GitHub 選考を選択した人がほとんどだった(バイアス有り)ので GitHub 選考を選択してみるといいと思います。

インターンシップのメンターさんから「書類選考の志望動機とか過去の作品とかがしっかりと書けていてよかった」とのアドバイスもいただけました。

ピクシブのリモート面接

私は田舎に住んでいるのでリモート面接をしました。リモート面接だとお互いの空気が完全に伝わらないのでちょっと辛いですよね。

(東京に住んでいれば ピクシブで面接だったのかな、、、?)

面接では、書類選考で提出したことを元に 以下のようなことを質問されました。

  • 何の技術を使ったことがあるか
  • 作った作品について
  • 作った作品を他人に使ってもらって改善した経験があるか
  • Android Native のアプリの経験はどれくらいあるのか
  • サーバーサイドの経験はあるのか (この項目については記憶が曖昧...)

また、コーディング面接もその時にありました。

書いているコードをシェアできるサービスを利用してしました。(Visual Studio Live Share のようなやつ)

課題を解く言語は自由に選べるということでしたので、 C# を選択しました。

課題自体はプログラミングの経験がまともにある人ならそこまで考える必要もなく解くことができるかと思います。

インターンシップ参加確定

f:id:kuxumarin:20180303204945p:plain

インターンシップに参加することが確定したら SNS とかで行きます宣言 をするといいと思います。 色々物事がスムーズに進みます。

インターンシップに実際に参加したこと.log

1日目 インターンシップ初日のあれこれと歓迎会

インターンシップ開始

ピクシブに訪れるのはこの時が最初でした。そのため 東京に詳しそうな人と一緒に行きました。なんとかたどり着くことができました。

※ここで罠があります。ピクシブは 2F と 6F 両方に入っているのですが, 2F の方に最初集合しなければいけなかったです。

インターンシップに関する説明等々がありました。

そのあとに自己紹介を2分でする時間がありました。自己紹介で使うスライドにインターンシップ参加者・メンターさん双方が好きなアニメについて書いており、ピクシブみをひしひしと感じました.

ちなみに私は以下のようなスライドを使用しました。

f:id:kuxumarin:20180303210604p:plain

アプリに最初の機能の実装

インターンシップでは MBA'13 i5 8GB な手持ちマシンを利用しました。

普段は Windows を使っているので ADB のパスが通っていない点で苦労しました。

とはいえ、なんだかんだありつつも最初のインターンシップの最初のタスクを初日のうちに解決することができました。

夜には歓迎会

初日の夜には歓迎会?がありました。

6F でメンターさん、人事の方、ちょこめろんさんも集まりパーティーでした!

人事の方と「リアルでは初めまして」のような謎の会話をしましたw ( Twitter ではお世話になってました

pixivを食から体験しています。

2日目 インターンシップな作業の開始

Data Binding との死闘

この日は Data Binding と格闘していました。

しかし、メンターさんの方に聞いたら優しく教えていただき無事に解決できた感じです。

メンターさんや社員さんに気軽に聞ける雰囲気はよさみが深いと感じました。

社員さんとランチ

まーくん(旧まのひと) や あつやさんと ご飯行きたい !! って言ってたら叶った感じですね。 人事の方がセッティングしていただけました。

メンターさん、ちょこめろんさん、kamiko さん、kameike さん達と話すことができた感じです。

ピクシブの必要としてる人はどんな人か、今働いてて楽しいかについて聞くことができました。

お昼ゴハンダヨー!♪( ´θ`)ノ

メンターさんと勉強会参加

メンターさん、まーくん(旧まのひと)、あつやさん と CA.apk に参加してきました。

CA さんで開催されている Android の勉強会です。 インターンシップでちょうど触っている部分のお話も聞くことができました。

サイバーエージェントさんで開催されている CA.Apk に参加しています。 東京!!

3日目 作業を進めた

業務時間終了後に 神保町へカレーを食べに出かけた

東京らしいことをしたかったので神保町にあるカレー屋に食べに出かけました。

カレー🍛

終電時間が遅くて便利ですな。

4日目

インターンシップでのタスクをあらかた終了させた

最終日は何かと作業をすることができなかったです。インターンシップとしてタスクを処理できるのは、4日目が実質最後でした。

途中でAPI の仕様が変更されており そこの部分の修正に手間取りました。

初めての歌舞伎町

この日は、東京の歌舞伎町というところにプライベートで行きました。

かぶきちょー

5日目 インターンシップ最終日

インターンシップの成果報告のためのプレゼン作りで時間のほとんどを使ってしまいました。

インターンシップ懇親会

インターンシップが終わった後は、懇親会がありました。

同じインターンシップに参加した人、今までお世話になったメンターさん、kamikoさん、世界のちょこめろんさん...

まとめ

  • プロダクションコードに機能追加することができて最高かよ!
  • メンターさん優しい
  • ピクシブ はいいぞ

追加

はてなブログって pixiv 貼り付けに対応してたんですね。知りませんでした。

f:id:kuxumarin:20180306022139p:plain

Visual Studio for Mac で using していないクラスも入力補完して欲しい

グロサミでやまちゅう氏と話してて見つけた Tips です。

f:id:kuxumarin:20180307060436p:plain

インポート項目を表示するという項目を設定から変更すればできる感じのようです。

C# で Json にプロパティを追加する

コード

 class MainClass
    {
        public static void Main(string[] args)
        {
            var beforeJsonData = new BeforemetaData();
            beforeJsonData.Greeting = "おっはー";

            var beforeJson = JsonConvert.SerializeObject(beforeJsonData);

            Console.WriteLine(beforeJson);
            // ここまではプロパティが存在していないJson を錬成している

            var afterJsonObject = JsonConvert.DeserializeObject<metaData>(beforeJson);

            afterJsonObject.Message = "とりま申し込も!";

            var afterJson = JsonConvert.SerializeObject(afterJsonObject);

            // プロパティを追加したJson を錬成完了

            Console.WriteLine(afterJson);


        }
    }

    public class BeforemetaData
    {
        public string Greeting
        {
            get;
            set;
        }
    }

    public class metaData
    {
        public string Greeting
        {
            get;
            set;
        }

        public string Message
        {
            get;
            set;
        }
    }

HACK-CHU で 優秀賞 && 2年連続日本Microsoft 賞を受賞しました。 #hackchu

おはこんばんにちは。ハッカソンで睡眠不足気味なくぅです。

この度、 東海地方で一番人気のある 中京テレビの主催した「HACK-CHU」 というハッカソンに参加してきました。

また、ハッカソンにて 優秀賞、日本Microsoft賞をいただきました。
チームのメンバーありがとうございます。

作ったもの

はみがき から生活を楽しくする IoT 高性能はぶらし を作りました。

子供が はみがきをを嫌がるというのは良くあると思います。

はみがきをするときに 楽しいゲーム要素があったら 楽しみながら毎日はみがきをさせることができるのでは? がコンセプトです。

技術構成図のようなもの

f:id:kuxumarin:20180225222912p:plain

この中で私の担当したのは、 Azure 関連と Web Front && Backend さらに はみがきデータを 蓄積しビジュアル化するところです。
Azure については、 MSP や MVP のアレで 毎月クレジットもらっていたりするので普通に使うことができました。

また、 Web Front については Vue.js で 低学習コスト && Binding はいいぞ なので選択しました。
実際、 Binding の存在を意識しながら開発したため、仕様変更で追加の開発が必要になった時も追加のコストはそこまでかからずに開発できたのは良かったと思いましta.

はみがきデータを蓄積点については、 インフルエンザになったリーダー、榊原さんが PowerBI の勉強会を開催しているということで採用しました。(けど本人当日いなかった!

Azure の使ったサービス

  • Azure Web Apps
  • Logic Apps
  • Azure Functions
  • CosmosDB
  • Face API via Cognitive Services

技術的困難点

Azure Functions と CosmosDB の接続設定がうまくいかなかったです。 そこは、 Logic Apps を代用することがでソリューションしました。

勝因分析 又の名をレトロスペクティブ ともいう

勝利したからには、その理由を分析しなければいけないと思います。

日本Microsoft賞をもらえた理由

Microsoft Azure を中心にサービスを組み立てたところに利点があると思います。

下手に、他社サービスを絡ませて問題発生点を作るぐらいなら、1社で囲い込み・開発を終了させ追加的コンテンツを作成したほうがいいと自分は判断しました。

自分が、 Azure を中心にサービスを組み立てようとした理由は、 Azure のサービスの網羅性とサービス間の相性の良さにあります。

例えば、 Github においてあるソースコードを プッシュされたら そのまま WebApps に展開しデプロイできる機能など。

最近だと、 Azure Functions を Azure の各種サービス を繋げる糊 として利用しやすくなっていったりしています。 EventGrid がでたりさらに進化していて使いやすいサービス群になっていて楽しみです。

優秀賞をもらえた理由

家族に焦点を当てたサービスだったからだと思います。
昨年度の HACK-CHU の作品を見ても、最終結果的には 家族に焦点を当てたサービスが評価されています。
また、勢いとノリだけのサービスは評価されないのが現実だと思っています。

まとめ

  • ハッカソンは技術の話のできる友達ができるから楽しい!
  • Azure を中心にサービスを立ち上げると 効率よく開発できる
  • 月曜日から pixiv のインターン! 頑張りたい!

Azure Functions の インストールコマンドが間違っていたのでPR を出した。

学生LT もくもく会での進捗です。

Azure Functions を ローカルで開発するときに使うツール に Azure Functions Core Tool があります。 Github の 非Windows 環境での インストールコマンドのドキュメントで足りない部分があったので PR を出して修正しました。

Fix install command for non windows platform by fumiya-kume · Pull Request #376 · Azure/azure-functions-core-tools · GitHub

無事にマージされていますヾ(๑╹◡╹)ノ"

英語は、、、なんとか頑張って書きました。

PR を出した当初に 外国の人からその修正必要なくない?って言われて焦りました。

しかし、 Microsoft の社員の方が助けてくれました(ありがちょ🙇‍♂️

良かったこと

Azure 側のドキュメントを引用して間違っていることを伝えた
引用して出したら相手も簡単には否定できないかな&& 自分の意見の正しさを上げるため

docs.microsoft.com

まとめ

とりあえず、下手な英語でも伝わる