ブックマーク / medium.com (33)

  • アーキテクチャレビューはじめました

    FiNCの篠塚(@shinofumijp)です。4月からCTOを拝任しました。 記事では1月から行ってきた「アーキテクチャレビュー」という取り組みについて紹介します。 FiNCではマイクロサービスを6年前から採用しており、順調にサービスも成長したおかげで、現在では稼働しているマイクロサービス数は50を超えるほどになりました。 マイクロサービスの採用により、限られた範囲での開発においては速度を落とさずスケールすることが可能という恩恵を得られましたが、一方でサービス数の増加は安定性、メンテナンス性をはじめとした様々な問題も生みました。その1つにアーキテクチャ全容の理解が困難になるという問題があります。例えば「ユーザが事を投稿した際に事アドバイスのプッシュ通知を送る」という機能1つをとっても、アドバイス管理サービスが事投稿のイベントを検知するためにイベントを購読し、同サービスがアカウント

    アーキテクチャレビューはじめました
    ota42y
    ota42y 2020/07/01
  • Docker 19.03新機能 (root権限不要化、GPU対応強化、CLIプラグイン…)

    NTTの須田です。2019年7月23日に公開された、Docker 19.03の新機能をお伝えします。2018年11月8日にリリースされたDocker 18.09以来、8ヶ月ぶりのリリースです。 root権限不要化従来のDockerは、ホストのroot権限でデーモン(dockerd)を動作させる必要があったため、脆弱性や設定ミスを突かれると、ホストのroot権限を奪われる恐れがありました。 Docker 19.03では、非rootユーザでデーモンを実行できるようになりました(Rootlessモード)。 Rootlessモードを有効化することで、万一Dockerに脆弱性や設定ミスがあっても、攻撃者にホストのroot権限を奪取されることを防ぐことが出来ます。ただし、現時点ではcgroupを利用できないなどの制約があります。 RootlessモードのDockerは, curl -fsSL http

    Docker 19.03新機能 (root権限不要化、GPU対応強化、CLIプラグイン…)
    ota42y
    ota42y 2019/07/23
    root権限不要になるのか( ゚∀゚)o彡゚
  • Redisを使って出入り自由・リアルタイム・日次平均・グループ対抗ランキングを作ろう

    こんにちは、FiNCで法人向けサービスを作っているエンジニアのyoshikenです。 今回、グループ対抗の歩数ランキングのシステムを作りました。 リアルタイム更新かつ 出入り自由かつ 日次平均かつ グループ対抗 上記のランキングシステムという少し複雑な要件で実装したので、その際のパターンを各要件のステップごとに分けて説明します! 写真右の枠で囲った部分が実際のランキング部分目次 Lv.0 日次平均歩数ランキングを作ろう!Lv.1リアルタイム歩数ランキングを作ろう!Lv.2リアルタイム日次平均グループ対抗歩数ランキングを作ろう!Lv.3 出入り自由リアルタイム日次平均グループ対抗歩数ランキングを作ろう!まとめLv.0 日次平均歩数ランキングを作ろう!要件 毎日定時にユーザーごとの歩数が集計されること 実装方法 RDBを使います テーブルはこんな感じ 単純ですね! Lv.1 リアルタイム歩数ラ

    Redisを使って出入り自由・リアルタイム・日次平均・グループ対抗ランキングを作ろう
    ota42y
    ota42y 2019/05/17
  • RubyKaigi 2019にPlatinum Sponsorとして参加しました!

    こんにちは!技術開発部大田( @ota57 )です! 株式会社FiNC Technologiesは4/18〜4/20に開催されたRubyKaigi 2019にPlatinum Sponsorとして参加して来たのでその時のレポートをお送りします! RubyKaigi 2019公式フライヤー会場の様子RubyKaigi 2019は福岡国際会議場での開催でした。昨年は仙台、一昨年は広島、その前は京都でしたね。 お馴染みになった、世界地図&日地図。様々な地域からの参加者がいますね!(rubyistsにmapメソッドをかましてますね。ブロック内容は各参加者が付箋を貼って実装)今回はGithubのアカウント名を付箋に書くようになっていました!

    RubyKaigi 2019にPlatinum Sponsorとして参加しました!
    ota42y
    ota42y 2019/04/24
    スポンサーブース、わりと受けが良かったらしいので何より…半分ぐらいグルメレポート…ww
  • RubyKaigiお留守番組でRailsのバージョン上げをしていました!

    こんにちは、FiNC Technologiesでエンジニアをしている@kenjiszkです。今回は、4/18~20に開催されたRubyKaigiの裏側でお留守番組のエンジニアたちがRailsのバージョンアップをしていた様子をお届けします。 RubyKaigiに参加している面々。今回は彼らの話はしません。なぜ開催された?弊社のアプリケーションはほとんどがRailsで書かれており、基的にはセキュリティパッチが当たるバージョンを保つように定期的にRailsのバージョンあげを行うことにしています。また、定期開催されているサーバーサイドエンジニアの情報共有ミーティングで全Railsアプリのバージョンがどのくらいか?という確認もしています。 あれ?Rails 4.2? 声を大にして言えませんが、Rails6のリリースが注目される昨今、Rails4がいるではありませんか! これは一大事!ということです

    RubyKaigiお留守番組でRailsのバージョン上げをしていました!
    ota42y
    ota42y 2019/04/23
  • Railsdm2019にスポンサーとして参加させていただきました!

    こんにちは、FiNC Technologiesでエンジニアをやっています@kenjiszkです。2019.03.22~23の二日間に渡って開催されたRails Developers Meetup 2019に、進行/ランチ提供スポンサーとして参加しましたのでその様子について紹介したいと思います。

    Railsdm2019にスポンサーとして参加させていただきました!
    ota42y
    ota42y 2019/04/10
    行動練習めちゃくちゃ良かった( ゚∀゚)o彡゚
  • JAWS DAYS 2019にランチスポンサーとして参加しました

    JAWS-UG(AWS User Group - Japan)は、日全国に70以上の支部を持つ Amazon Web Services(以下AWS)のユーザーグループ です。… JAWS-UG(AWS User Group — Japan)が主催し、アマゾン ウェブ サービス ジャパン株式会社が後援するJAWS-UG最大のイベントです。全国のJAWS-UGメンバーが中心となってボランティアベースでイベントの企画、準備を行い、最新技術からビジネス、ライフスタイルなどAWSに関わる幅広いテーマの様々なセッションを開催するイベントとなっています。 ランチスポンサーとして参加しました

    JAWS DAYS 2019にランチスポンサーとして参加しました
    ota42y
    ota42y 2019/02/25
    話した⊂(・8・)⊃
  • 半年で250回のリリース!? FiNCアプリのオンボーディングMicroserviceの裏側

    FiNCアプリは数十ものMicroservicesに分かれていますが、アプリを初めて利用した時に開始されるオンボーディングも、1つのMicroserviceとして存在しています。 チャットUIの応答式オンボーディングFiNCのオンボーディングは、会社の継続率/LTVの大部分を支えている実はFiNCアプリのオンボーディングは、内容をチューニングしただけでもアプリの継続率を1.5倍~2倍にしたり、会社の大部分の売り上げを支える企画をいくつも実現するなど、数ある中でも最も重要なMicroserviceになっています。 社内での運用ペースも凄まじく、実に半年で250回もの変更がリリースされています。リリースはデプロイを必要とせず、専用の管理画面から反映する作業は2~3分程度で行えます。 この記事ではそんなオンボーディングのMicroserviceをテーマに、以下のポイントについてまとめたいと思いま

    半年で250回のリリース!? FiNCアプリのオンボーディングMicroserviceの裏側
    ota42y
    ota42y 2019/01/11
  • 機械学習コンテストを社内で開催! – FiNC Tech Blog – Medium

    こんにちは。FiNCデータ分析グループのゆるふわ担当のこみぃです。 今回はデータ分析グループが主導して行った社内イベント。「FiNC秋の機械学習まつり2018」についてお話したいと思います。 「機械学習をもっと身近なツールにしたい」という想いが開催の原点これまで、データ分析グループのメンバーで話をする中で、共通の想いがありました。 それは「機械学習をもっと身近なツールにしたい」ということでした。 というのも、いくつか以下のような施策や企画を見てきたからです。 「機械学習というのを使えばうまくやれる可能性があるはずだがそれを調べる時間がない」と自ら判断してしまい、一旦ペンディングになる機械学習を導入すると改善ができそうだが、機械学習を利用するという選択肢がない、もしくは敬遠されてしまっている機械学習を使った分析の要望が、そもそも企画メンバーから上がってこないこういった事情は「機械学習というの

    機械学習コンテストを社内で開催! – FiNC Tech Blog – Medium
    ota42y
    ota42y 2018/12/19
    社内のコンテストで優勝したやつ⊂(・8・)⊃
  • ソリューションアーキテクトに学ぶFiNC AWS勉強会 SageMakerを使った機械学習編 – FiNC Tech Blog – Medium

    こんにちは。FiNC TechnologiesでSREをしている中村です。先日社内で開催した機械学習の勉強会についてご紹介します。 背景FiNC Technologiesは、”Personal AI for everyone’s wellness”をミッションにヘルスケアプラットフォームを構築している会社です。そのため、FiNCアプリには機械学習を利用した事解析・姿勢分析機能があったり、データ分析にも積極的に機械学習を活用しています。また、機械学習を専門としないチームのエンジニアでも当たり前のように機械学習を扱えるエンジニアであることを組織として目指しています。 ただ、機械学習を全く扱ったことがないエンジニアにとっては何から始めたら良いのか分からず何かきっかけが欲しかったりするのではないでしょうか。そこでAWSのSAの方にご協力いただき社内で機械学習を普段扱っていないエンジニア向けに勉強

    ソリューションアーキテクトに学ぶFiNC AWS勉強会 SageMakerを使った機械学習編 – FiNC Tech Blog – Medium
    ota42y
    ota42y 2018/10/30
    SageMakerやっていき
  • 技術書典5にてFiNC Technologies TECH BOOK EDITION #1が出ます! – FiNC Tech Blog – Medium

    こんにちは!FiNC TechnologiesでAndroidエンジニアとして働いている矢田です。 この記事では、技術書典というイベントの紹介と、そこで頒布する「FiNC Technologies TECH BOOK EDITION #1」の紹介をします。 技術書典とは?技術書典とは、企業や個人が作った技術書を頒布する技術書オンリーイベントです。10/8に池袋サンシャインシティにて「技術書典5」として第5回が開催されます。 今回、FiNC Technologiesのエンジニア有志が「謎のヘルスケアベンチャーFiNC(公式)」としてサークル参加します。

    技術書典5にてFiNC Technologies TECH BOOK EDITION #1が出ます! – FiNC Tech Blog – Medium
    ota42y
    ota42y 2018/10/03
    今回の技術書典5で出す三冊目。会社公式で本が出ます!!!!!!
  • 3週間で48,000行のコードをこの世から抹消した話 – FiNC Engineering Blog – Medium

    qsona (twitter) です。以前、7,600行のコードを安全にこの世から抹消した話 という記事を投稿しましたが、今回はそれよりもずっと泥臭い話を書きたいと思います。あまりテクニカルな話はありませんが、現場における取り組み・試行錯誤の経過を読んでいただければ幸いです。 たくさん消しました、がんばりました〜背景肥大化するRailsサービスFiNCはマイクロサービスを指向しており、主にRuby on Railsで書かれたサービスが30個ほど存在します。しかし、FiNCアプリのメインとなるRailsのサービスは、テーブル数800を超える大きなサービスになっています。 FiNCのサービスは2014年から書きはじめており、かなり初期の段階(2015年)からマイクロサービス化を意識してきました。にもかかわらず1つのサービスが肥大化している理由はいくつかあります。 最初の1〜2年ですでに大量のコ

    3週間で48,000行のコードをこの世から抹消した話 – FiNC Engineering Blog – Medium
    ota42y
    ota42y 2018/09/21
    ゴリゴリ消してた話
  • BottomNavigationViewをカスタムしてFiNCアプリ独自のUIを実現

    こんにちは、技術開発部のバイソン改め南里です。FiNCというヘルスケアの会社でアプリ開発(iOS/Android)に携わっています。 エントリでは、FiNCのAndroidアプリ上で利用するBottomNavigationViewのカスタムライブラリを作った際の取り組みに関して話します。 FiNCで利用するカスタムUIの課題FiNCでは、ホーム画面にBottomNavigationViewを利用しています。 BottomNavigationView自体は、Frameworkでも提供されているコンポーネントですが、FiNCでは以下の要件があります。(BottomNavigationViewの基を知りたい方はこちら。) BottomNavigationViewには未読を示すバッジがつくユーザータイプ(法人、一般ユーザー向けなど)によって異なるBottomNavigationItemを表示

    BottomNavigationViewをカスタムしてFiNCアプリ独自のUIを実現
    ota42y
    ota42y 2018/08/31
  • Railsアプリケーションで既存データの暗号化をした話

    こんにちは、法人開発のnakamoriです。エントリでは健康診断データを安全に扱うために、それらに暗号化を施しどう運用していったかを紹介しています。 ただし、暗号化のアルゴリズムやモードに関してはエントリでは扱いません。 暗号化の背景以前にも紹介しましたが、「FiNC INSIGHT」では様々なヘルスケア関連のデータを扱っています。その中には暗号化して保持しておいた方が良いものも存在します。 その中でも特に健康診断データは個人情報やヘルスケア情報を扱っています。 これらのデータをより安全に運用していくために、健康診断データを論理レベルで暗号化することにしました。 attr_encryptedによる暗号化の紹介特定のカラムを暗号化するには、attr_encryptedというgemを使うと便利です。 ここではUserモデルのemailフィールドを暗号化する場合を例にします。 attr_en

    Railsアプリケーションで既存データの暗号化をした話
    ota42y
    ota42y 2018/08/31
  • Flutter Meetup Tokyoで”How to Develop a Flutter Plugin”というタイトルで登壇しました。

    (会場提供は株式会社ミクシィさんでした) こんにちは、FiNCでアプリを開発しているバイソン改め南里です。 Flutter Meetup TokyoというFlutterのMeetupで登壇しました。 “How to Develop a Flutter Plugin“というタイトルで、FlutterのPluginの具体的な作り方を説明しました。 モバイルクロスプラットフォームのSDKであるFlutter(Dart言語)は、ReactNativeと同じように、モバイル開発の銀の弾丸として期待されています。(もちろん銀の弾丸などないわけですが) Framework(iOS/Android)間の差異を吸収するプラグインがない場合、自分で必要なプラグインを実装する必要がありますが、今回はその具体的な方法を説明しました。 今回はHealthKit/GoogleFitの機能を利用可能なプラグインを作成し

    Flutter Meetup Tokyoで”How to Develop a Flutter Plugin”というタイトルで登壇しました。
    ota42y
    ota42y 2018/08/29
    この辺りの話をまとめたflutter本を技術書典5で出します⊂(・8・)⊃
  • Rails Developers Meetup 2018 Day3 Extreme の感想と今後の話 – Yoshiyuki Hirano – Medium

    Rails Developers Meetup 主催者の徳用カルパスです。7/14(土)に開催された同イベントから一週間が過ぎました。ここ一週間、皆さまの感想エントリや感想ツイートを読むのは、至福のひとときでした(書いていただいた皆さま、当に有難うございました) KPT(アンケート)回答結果 さて、まずはイベント後に行なったKPT(アンケート)の回答結果をお伝えします。参加者・ご登壇者・スタッフと、計70名の方にお答えいただき有意義なご意見が聞けました。ご回答いただいた方々には改めて感謝いたします。なお、以下あまりまとめきれてませんがご容赦ください。 Keep: よかったこと 1. セッション内容について 見た範囲については、内容はどれも面白かった。発表が豊富で質も高かったこと。登壇にあたって調べたり実装し、懇親会でもセッションを聞いた人と話をしたりしてテーマとなった技術に対して理解が深

    Rails Developers Meetup 2018 Day3 Extreme の感想と今後の話 – Yoshiyuki Hirano – Medium
    ota42y
    ota42y 2018/07/23
  • ゼロから始める TypeScript対応 Reactボイラープレート入門(前編) – FiNC Tech Blog – Medium

    はじめまして。7月から業務委託として、FiNCのサーバーサイドエンジニアを担当している@yhirano55です。最近、来年3月に開催予定のRails Developers Meetup 2019の準備を始めました(次回は3トラック同時で進行する予定です)。 記事では、Railsエンジニア向けに npm initから始める、TypeScript対応の Reactボイラープレートの作り方を紹介します。チームや組織で共通するボイラープレートがあると、SPA(Single Page Application)を量産する際に生産性が爆速になるのですが、ちょうど最近、Reactボイラープレートを作る機会を得まして、その過程で得られた試行錯誤を記事としてまとめてみました。 モチベーション Ruby on Railsを通してフロントエンドの実装をしていると、各種設定は、webpackerを使って簡単(暗黙

    ゼロから始める TypeScript対応 Reactボイラープレート入門(前編) – FiNC Tech Blog – Medium
    ota42y
    ota42y 2018/07/12
  • Meetup #6 GraphQL Tokyo Summer がFiNCにて開催されました

    技術開発部の qsona (twitter: @qsona) です。 GraphQLに関してのユーザコミュニティである GraphQL Tokyo のMeetup #6が行われ、FiNCがスポンサーとして会場・事・飲み物の提供を行いました。 GraphQL TokyoのMeetupはオープンスペース方式で、各セッションでGraphQLに関するテーマを1つ取り上げて少人数で議論していきます。どのセッションも議論に花が咲き、とても盛り上がりました! 共同主催者の joe_re さん, Yosuke Kurami さん, mtsmfm さん, taiki-t さん, 素晴らしい会をありがとうございました。ユーザコミュニティの運営は継続的な熱意が必要で大変だと思います。GraphQLの日への普及に大きな役割を果たしていて、頭が下がる思いです。私個人としては2回目の参加でしたが、2回とも新しい

    Meetup #6 GraphQL Tokyo Summer がFiNCにて開催されました
    ota42y
    ota42y 2018/07/05
  • Anovaで低温調理🍴

    良い点タイマーをセットして放置すればいいので楽菌と肉の火の通しについて詳しくなったローストビーフと温泉卵が美味しいアプリと連動していて、タイマーやレシピiPhoneから確認できるお肉を柔らかくべることができる悪い点(注意点)低温調理の衛生面について自分が責任を負う必要があり、調べるのに少し手間がかかるこの悪い点というのは、Anovaが悪いのではなく低温調理全般において注意すべき点です。低温調理は、肉を柔らかくするために、アクチンというタンパク質が変性し始める温度(65.5度)よりも低い温度で長時間調理します。その温度は、中毒・寄生虫を防止するための基準温度より低いことが多いです。ですので、材ごとに菌のリスクや適正とされる調理温度を把握する必要があります。 ネットにあるレシピを参考にする場合は、いくつかのレシピを横断して判断した方が良いです。どの温度で、どれくらいの時間を加熱すればよ

    Anovaで低温調理🍴
    ota42y
    ota42y 2018/02/07
  • ES Modules in Node Today!

    I’m excited to announce the release of @std/esm (standard/esm), an opt-in, spec-compliant, ECMAScript (ES) module loader that enables a smooth transition between Node and ES module formats with near built-in performance! This fast, small, zero-dependency package is all you need to enable ES modules in Node today 🎉🎉🎉 @std/esm used in the Node REPL after `npm --save @std/esm`A tale of two module

    ES Modules in Node Today!
    ota42y
    ota42y 2017/08/14
    不思議な力でrequireするだけでimportできるようになる…不思議だ…