未分類」カテゴリーアーカイブ

Ansibleもくもく会 #1 に参加してきました

今週の木曜日(2018/3/1)に、Ansibleユーザー会主催のAnsibleもくもく会(第1回)に参加してきました。

f:id:lycaon_mk2:20180304181037j:plain

もくもく会開始前の会場(顔が映っている方は、スタンプで消しています)

Ansibleは本当に少しだけ触った程度なので、ほぼ知らない状況での参加でした。

タイムテーブルと概要

  • ~ 19:00
    • 会場入場
    • 恵比寿ネオナートビルというとこでの開催でした。恵比寿といえばガーデンプレイスのイメージだったので、少しわくわく。
  • 19:00 ~ 19:12
    • イントロ
    • もくもく会なので、それぞれのペースでやれることをやってくださいという指示。
  • 19:12 ~ 21:05
    • もくもく
    • Redhat JPの社員の方が何人かいて、気軽に質問できる感じでした。また、Slackのチャンネルも用意されており、もくもくする環境としては最高だったと思います。
    • 僕はansible lightbulb(自習用のエクササイズ集)をひたすらやってました。その途中で、サンプルymlコードに問題を見つけたので、PRを出したりしました。
    • 参加者には一人あたり4台のインスタンスが用意されていて、すぐにlightbulbのエクササイズが始められるという状況。ありがたいです。
  • 21:05 ~ 21:30
    • 発表
    • 4人の発表。以下うろ覚えのメモ。
      • 1人目
        • towerインストールした
        • ジョブスケジューラとか過ごそう
      • 2人目
        • towerインストールした
      • 3人目
        • 自分
        • LightbulbにPR出した、以上
      • 4人目
        • ansible towerとcloudformationの違い
        • ansible towerのほうが優秀

感想

発表者の方は大体Ansible Towerを試している方だったので、Ansibleをすでにプロダクションで使っている方が多いのかな~という印象。Towerは確かに便利そうですが、10ノード以上はコストがかかってくるっぽいので、そこは導入できるチームと出来ないチームで評価は違ってくるのかなと思いました。ただ、やはりlightbulbが全編英語で、そこの壁があるかなと少し思いました。Google翻訳使えば大丈夫ですが、個人的にはきっちり日本語訳されたドキュメントが欲しいです。

余談

発表した人 or ブログ発表者には、Ansibleグッズプレゼントいう特典がありました。僕はAnsibleマグボトルをもらったのですが、これが大変便利で役立っています。本当にありがとうございました。

f:id:lycaon_mk2:20180304182830j:plainf:id:lycaon_mk2:20180304182826j:plain

2018年のほにゃらら

今年は上半期がめちゃくそプライベートで忙しいので、多分何かをガッツリはできないと思ってます。

何となく漠然とやってみたいこととしては、

ぐらいでしょうか。多分そんなにガッツリコーディング出来るモチベもないので、勉強会などに参加しつつゾンビ状態で上半期は過ごそうと思っています。

下半期はどうなっているかわからないですが、もしかしたら北陸行きを考える・着手してるかもしれません。

そんなわけで今年もよろしくお願いします。

退職しました

  • そろそろ転職後1ヶ月経ちそう
  • 前職の同僚に催促されていた

ので書きます。次の転職ではおそらく書かないと思います。

2017年11月末まで株式会社ニジボックスで働いていました。2014年6月に入社したので、かれこれ3年半ぐらいいたことになります。
いろいろと思い出しつつ、Q&A形式で書いてみました。質問者は、私の中の内なる批判者だと思ってください。

なぜ転職したの?

3年ちょい経ったから、というのがマジで主な理由です。私的な話なのですが、数年後に妻の実家(そういえば今年結婚しました)に帰ろうと思っています。実家は北陸の方で、当然IT系の会社が非常に少ないです。なので東京にいるうちに別の会社・業界を経験してみたかったというのが大きいです。もちろん他にもいっぱい理由はありますが、一番大きいのは3年経ったから、ですね。

ニジボックスは嫌だった?

基本好きでした。勤怠はエンジニアに優しい感じで(察してください)、休みもしっかりとれます。特に夏休みとかマジすごいです。夏の期間で好きな時に何日か(年によって変わりますが、5日貰える年も)休めます。正直名の知らないIT企業よりは圧倒的に働きやすい環境であると思います。ただ、ニジボックスはその設立経緯から雇用形態が普通の会社とは異なっている(でも実体は普通の会社と違わない)ので、そこを気にする人は辞めておいたほうが良いかもです。詳しくはニジボックスの採用担当にお問い合わせください。

ニジボックスでは本当にいろいろな経験ができたので非常に感謝しています。親会社であるRのとある部署とのつながりが深く、そこで1年ちょい働いたときの経験や学んだことは、今も何度も記憶の中で振り返ったりしています。また会社のメンバーも基本よい人が多いイメージでした。

でも嫌なとこはあったでしょう?

もちろん、会社というのは組織なので、嫌な部分はあります。

  • 独特な雇用形態
  • 営業のパワーが強い
  • 勝どきの交通の便の悪さ

とかでしょうか。営業のパワーが強いのは、営業と仲良く出来るエンジニアにとっては逆に良いポイントかもしれない(かつやっぱり売上は重要)のでそれ自体悪いわけではない故に難しいです。しかし僕は営業さんが基本苦手なタイプなので、若干辛かったです。あと勝どき駅は明らかに鉄道に対して乗客がキャパオーバーしてます。駅を拡張しているようですが、それでも足りるんでしょうか?

またニジボックスで働きたいと思う?

難しい質問ですね。多分僕が独り身であれば全然働きたい、と言うと思います。ですが、今は既婚で、1,2年後には子供も欲しいという話をしています。その状態でまたあの独特な雇用形態に戻るのは少しリスキーかなという感じがしています。そもそも個人的に、実体が普通の会社と変わらないなら、そちらに制度を合わせるべき、という思いも持っています。結局歪みを引き受けるのは労働者側なので。

また将来北陸の方に行くので、どうやって働くのかもあまりイメージがわかないです(今のニジボックスにはリモートワークの制度も北陸支社もない)。そういう点を考えると、基本出戻る可能性は限りなく低いと思います。

最後に言い残したことは?

ニジボックスは、新卒で入った会社を半年で辞めて、その次に「絶対3年は働こう」という思いで入った会社でした。最初はソーシャルゲームの開発・運営などを経験し、その後会社のピボットに合わせて色々な開発を経験しました。時には会社の悪口なども言ったりしましたが、なんやかんやで3年ちょい在籍し、在籍中に結婚もしました。多分これから先、何度も思い返す時間になるのではと思います。良い時間を過ごせたと思います。

これから先はどうするの?

もう転職済みです。東京だけで出来ることをやって、ある程度満足したら北陸に行こうと思います(実はまだ転職先の上司には言ってないんですが><;)。地方でITエンジニアがどう生きていくのか、フルリモートなのか、それとも地場のITベンチャーなのか、わからないですが、どちらに転んでもいいように常に技術を磨き続けていく所存です!

2017年の目標

あけましておめでとうございます。本年もよろしくお願いいたします。

技術目標

  • Android開発経験をさらに深める
    • 2016年はAndroidにガッツリ関われた年だったので、引き続き2017年も継続したい。幸いなことに当面の仕事もAndroid関係で進められそう。
  • DDDの理解を深める・社内勉強会を開く
    • プライベートはこれかなと。良いアプリケーションを作る術を身につける一年にしたい。
  • Python/Djangoの勉強
    • なんかウェブアプリ作れって言われたら基本これでやりたい。管理画面使いやすすぎてもう離れられない…
  • 機械学習ディープラーニングをちょいとやる
    • とは言ったものの、どこから手をつけて何をするか…pix2pixとかは趣味の絵描きの色ぬりに使えるかも?

生活目標

  • プライベートを頑張る
    • あまり詳細は書けないが、2016年はプライベートも結構激変があった年だった。
    • このままいくと本当にまるで想定していなかった人生を送ることになる可能性もある。人生とは面白いものだと改めて感じた。
  • 肉体改造
    • 体は資本、どんな仕事をするにしても屈強な肉体は役に立つ。
  • 絵の練習
    • 優先度低いが、余裕があればデッサン教室などに通い真面目に習ってみたい。

以上本年の目標です。どれもパッと思いついたものではなく、2016年にやったことを踏まえてこうしたいと思って掲げたものです。2017年も頑張っていきましょう!

2016/09/28 #potatotips #33 のレポート(Android視点)

potatotips #33 に参加してきました。初参加です!

あまりレポートになれていないので、至らない部分があると思いますが、ご了承ください。

iOS発表

facebookやslackのタイムラインで、オフライン時に上から出てくるバーを作る

teruto_yamasaki

  • オフライン時に表示されるバー
  • タイムライン系のアプリに実装されている事が多い
  • UINavigationBarを拡張できないか
    • 拡張できるが、実際にはUIControllerにビューが追加されている
    • demo

大で小を兼ねるな

takasek

  • 日付を管理するときの型
  • Date型は便利だけど、ただ日付が欲しいならstructで良いんじゃないの

(仮)Firebaseでインスタグラム風アプリを作った話

motokiee

  • Firebaseで作るオリジナル結婚式アプリ
  • 世の中iOS
  • 配布はDeploygate
    • 人による運用でカバー
  • バックエンド
    • Firebase
    • フリープラン
  • リリース日(結婚式)厳守
  • tips
    • 嫁にデプロイ作業・push通知をお願いした

UITableViewのスクロールに合わせてUIViewControllerを縦方向にページングする

marty-suzuki

  • HoverControllerView
  • 説明しづらい

Xcode8のCI事情

nafu003

  • Xcode8のCI事情
  • CI対応事情

BPGの話

がんじー

  • WebPは時代遅れ?
  • BPG … 画像形式のひとつ
  • 容量が小さい割に高画質
  • HCImage+BPG
  • WebPに比べてデコード・エンコードはすごく遅い
  • 採用事例、特になし
  • 特許を何か侵害してる可能性あり
  • WebPでいいんじゃねという結論

使いたくないStoryboardを使わないでよくする為には

satomiretriever

  • Storyboardを使わない方向性
  • Storyboardを使う理由
    • 初速が出る
    • 画面遷移をおいやすい

最近のCoreDataについて

Noritaka Kamiya

  • iOS10でCoreData変わった
  • NSPersistentContainer
    • 一番話したかったところ
    • ちょーかんたん

Android発表

Battery Historian v2

futabooo

  • Battery Historian v2
  • eureka
  • バッテリーヒストリアンとは?
    • Google I/O 2014で発表されたもの
    • Android端末のバッテリー使用状況を可視化するもの
    • adbでログを出力→historian.pyでhtml可視化
  • v2について
    • 機能は変わってない
    • GoとJavascriptで書き直した
    • ブラウザUIが追加された(ログをブラウザからアップロードできる)
    • 倍ぐらい項目増えた
    • サービスの動きも見れる

Ormaのハマリポイント

lVlA0805

  • eureka
  • parisでOrma使用
  • Ormaではまったこと
  • Upserter == INSERT OR REPLACE
    • Conflict時はDELETEしてからINSERT
    • ON CASCADE DELETE
    • 外部キーあるとレコード消える
    • 対処
      • UPDATE件数を見てINSERT
      • OnConfig.FAILで例外キャッチ
  • 外部キー制約付きカラム
    • 外部キーのカラム型がINTEGERからBLOGに変わってる
    • WHEREに外部キーが絡むとバグる
    • 対策
      • storageTypeに
      • INTEGERを指定

gRPC(仮)

mootoh

  • Realm Mobile Platformの話
  • Dropbox Paper的なものを試しに作る
  • Realm使ってたなら特に違和感なくsync処理をかける
  • tips
    • Androidのサンプルだとそのまま動かない
    • keychain sharing onで動く
    • ローカルサーバーはnodejs

yuyakaid

  • ページングの状態管理から開放されたい
  • ページング = 追加読み込み
  • RecyclerViewでデータを取得
  • 普通にやると読み込みがたくさん走る
  • 読み込み中フラグを持とう
  • どこに持つ?
    • Activiy/Fragmentに持たせるのは嫌なので、クロージャに持たせる

Activity Transition Animation

bina1204

  • RecyclerViewからViewPagerへのActivity Transition Animation
  • アニメーションを遅延すれば色々できる
    • postponeEnterTransition

WebSocket for Android v3(仮)

kaelaela

  • okhttpでweb socketをつなぐ
  • okhttp3.5のsnapshotを使う

(仮)ヌガー対応

hashimoto

  • Android7.0
  • ヌガー対応
  • 更新するとRecyclerViewの画面が白くなる
    • notifyItemInsertedが原因だった
    • Handlerでpostしろ
  • ダイアログが白くなる
    • スタイルの問題
  • 早めのN対応おすすめ

Firebase Test Lab 5つのtips

horief1024

  • Firebase Test Lab
    • I/O 2016で公開されたもの
    • Android用のクラウドテスト環境
    • テスト結果動画で見れる
  • Roboテスト
    • Monkey Testと何が違う
      • ランダムな操作が毎回行われるわけではない
      • Roboテストで実行できる操作は限られる
    • 実行環境
      • サインインやログイン画面は突破できない
    • yamlでテスト実行環境を整備できる

僕が面白いなと個人的に感じたのはlVlA0805さんのOrmaのハマリポイントでした。最近プライベートでOrma使っていたので。

最後に会場で提供されていた軽食の写真です。サクッと食べることが出来て、なおかつとても美味しかったです。ありがとうございました。

f:id:lycaon_mk2:20161002031406j:plain

2015年の棚卸し

振り返るのも大事だなと思ったので。

月ごと

1月

あまり記憶にないけど、多分DevOps周りの何かをやろうとしてもがいてた。Puppetとか触って満足していた頃。

2月

多分Goを触り始めた時期。仕事はサービスのリリース時期で非常に辛かった。あと初めてデブサミに行った。

3月

勤め先でUnityの開発合宿がある。フロントもいいな〜と思う。ただこれ以降Unityに触れることは一度もなかった。

4月

仕事の環境が変わり、Javaのバックエンドを中心に触る。相変わらずGoいいなーと思っていたけど、勤め先のチームのリーダーから色々ツッコミを受ける(Goがジェネリック持ってないとことか、言語設計が古いこととか)

5月

Node.jsでサービス運用のためのツールを作る。Nodeいいなーと思う。

6月

確かこの頃からNode学園にチラチラ参加するようになった…気がする。

7月

仕事でAndroid側もやることになり(ネイティブアプリのサービス)、色々と世界が開ける。

この頃から、できるだけ仕事はフロント(というか非インフラ)な部分をやりたいと思い始める。サーバーレスという単語も最近出てきたけど、僕は全面的にその方向性を支持している。

8月

Androidフィーバー中。Rustに少しだけニアミスするタイミングがあったが、難しさにギブアップ。

Goでインフラ管理用のツールを書いた。(プログラムを長期稼働させた際のメモリリークが問題になっていたので、そこら辺をクリアするために色々と頑張った)。

9月

相変わらずJavaでバックエンド&AndroidScalaもちょっとやってみる。

10月

相変わらずJavaでバックエンド&AndroidAndroidのことが少し分かり始める。

11月

ほぼAndroidだけ。やっぱりフロントは慣れないと色々難しい。(アニメーションとThreadはサーバーサイドからやってきたエンジニアにはなかなか難しかった)

あとGoで簡単な言語実装を行う。

github.com

12月

Androidとインフラ少し。AWS Lambdaを使う機会があって、サーバーレスの魅力を存分に感じることができた。

まとめ

プライベートは仕事とは全然別のことやってやる!と思ったけど、やっぱり仕事に追われてなかなか出来なかった。特に今の職場環境では自分のスキルアップも評価の項目に入るので、思うように取り組めず(スキルアップするためには結局自分のプライベートな時間も使うしかない、でもそれ仕事の評価にも関係するんだ、と思うとなんかモチベを上げられなかった)

この1年で把握できた自分の癖は、

  • あらかじめ「〇〇やる!」と宣言して取り組む → 絶対にできない、やる宣言した時点でやれた気になっちゃってるのかもしれない
  • 流行ってるからやる → これも以外と無理だった、最初取り組めるけど長続きできない
  • 自分が興味が強いからやる → これはギリギリ継続できるかもしれないと思えた、特に言語実装とかは自分のペースでできるから良い。ただ他人からの評価が貰いづらい(特に仕事との兼ね合いが…)

という感じで、とにかく自分の興味を伸ばす方向で何かをやるしかないなと思った。当たり前といえば当たり前なんだけど。

ただ一口に「興味」と言っても難しいと思うので、僕はより「一般化した興味」を考えるようにした。つまり個別具体的な技術じゃなくて、もっと目的に近い(例えば「〇〇を使って何かする」、じゃなくて「何かをしたいから、そのために〇〇を使う・作る」というような)ことを考えた。で、今の自分がどういう一般化された興味を持っているというと、

  • インフラ管理が必要ないアプリ開発の実現
    • Lambdaはやっぱり良いと思えるし、FirebaseやParseも気になる。Meterorも。
  • 分散したインフラ環境を用意に扱える環境の実現
    • yonでやりたいこと。
  • モバイル端末をもっとプログラマティカルにする
    • 言語実装への興味の派生系、Smalltalk的な環境を自分で作ってみたい。あと、電車内で立ちながらサクッと何かアルゴリズムの勉強(コーディング)ができたらいいな〜と思っている。
  • テストコード、どうしよう
    • 色々とテストコードとの向き合い方について考え直す必要があるなと感じている。自分が一から書くテストコードならパラメトリックにしたりしてメンテナンス性をある程度考えてモチベを保てるけど、そうでないベタ書きのテストコードを前にしてにあまりにモチベを保てない自分に驚きを感じたので。

というような感じ。

逆に興味の度合いがやや減ったのは、

  • 機械学習
    • このビッグウェーブに乗り遅れるちゃダメだ!と思ってたんだけど、やっぱりそれほどやる必要はないかなと思った。多分そのうち頭が良い人たちがAPI化してくれて、仕組みを知らなくてもそれなりに使えるようになると思う。

という感じで、流行りから目を背けようとしている感じが辛い。でも強い興味を持続できないから技術を自分のものにできない可能性が高いので、やらないという選択肢も大事なのではないかと思う。

とにかくこの1年は、個別具体的な技術に触れて満足していた自分からの脱却を図る(図りたい)という点につきた。まだそれを自分が納得いくレベルで実践できていないと思うけど、できるだけその方向性で取り組めれば良いと思う。(曖昧な言葉を使うのは、その言葉で自分を縛りたくないから)