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

  • Flutterの状態管理手法の選定

    Photo by Daniel Pelaez Duque on UnsplashFlutterの状態管理周りの手法はちょくちょく動きがあって、それに関する話題が度々盛り上がっている気がします。 今の自分は以下を組み合わせて使っていて、満足しています。 Riverpod (新Provider)StateNotifier (Better ValueNotifier)freezed (immutableなクラスの扱いなどを楽にするコード生成器)どうしてこの組み合わせを好んでいるのか、以下述べていきます(コード例などはリンク先で充分かなと思うものが多かったので少なめです)。 Riverpod (新Provider)そもそもProviderとはProvider自体、決して古いものではなく、2018年末に登場し、2019年初めにFlutterチームとのやり取りを経て認められ、Google I/O 20

    Flutterの状態管理手法の選定
    bsoo
    bsoo 2020/08/31
  • 「Infrastructure as Codeに疲れたので、僕たちが本来やりたかったことを整理する」を1年掛けて整理した

    こんにちわ。rwle1212です。 記事は JAWS Days 2020 で話す予定でしたが、昨今の事情によりオンライン開催となったため、登壇予定の内容を記事にしたものになります。 登壇していれば諸般の事情により左手首を骨折したネタが使えたのですが、ブログでは伝わらないので非常に残念な思いをしております。という話はどうでも良いので題に入ります。 50分の登壇内容なので少々長くなりますが、お付き合いください。 JAWS Days 2019で登壇した内容の振り返り昨年の JAWS Days 2019 で「Infrastructure as Codeに疲れたので、僕たちが来やりたかったことを整理する」という内容で登壇しました。 まずは上のリンクに添付されているスライドを5分位で読めると思うので一読頂いて、下の文に進んで頂ければと思います。 そもそもInfrastructure as Cod

    「Infrastructure as Codeに疲れたので、僕たちが本来やりたかったことを整理する」を1年掛けて整理した
    bsoo
    bsoo 2020/03/30
  • YouTubeの推薦アルゴリズムの変遷を追う〜深層学習から強化学習まで〜

    はじめにこの記事は「eureka Advent Calendar 2019」24日目の記事です。 こんにちは、Data Analystの @pacocat です! 私はeurekaには2019年11月に入社したばかりなのですが、毎日楽しく仕事させてもらっています。最近はプロダクト開発のための定性調査の仕組みづくりを手伝ったり、事業分析や組織開発をしていたりと、様々な定量・定性データを活用してどのように事業成長に貢献できるか考える日々です。 前職ではAI PdMとして、ゲームや強化学習領域でのAI活用を推進していました(興味ある方はGDC2019での発表や各種スライド slideshare / speakerdeck をご覧ください)。直近はがっつりAIに関わっているわけではありませんが、趣味で推薦×強化学習分野のサーベイをしていたら面白い話題がたくさんあったので、それらの中からYouTub

    YouTubeの推薦アルゴリズムの変遷を追う〜深層学習から強化学習まで〜
    bsoo
    bsoo 2019/12/24
  • Slack RTM Bot Engine: eure/bobo

    bsoo
    bsoo 2019/12/12
  • 大規模サービスを運営している会社が新規プロダクトを開発した時の物語~サーバーサイド編~

    プロローグ日一のオンラインデーティングサービスを運営する弊社。 2019年4月、桜の開花とともに新規サービスの概ねの仕様が固まり、いざ開発が始まった。 APIの開発はJimという私の同僚が1人で行う予定であった。 ある日、のんきに帰宅しようとしていると、Jimから呼び出された。 ) 私 「やあ、Jimどうしたんだい?」 Jim 「暇かい?暇だよね?山下さん。」 「実は、新規サービスの仕様が概ね決まったんだけど、既存サービスとはだいぶ仕様が異なっているんだ。」 「もともと既存サービスを元にして、少しシステムを拡張すれば良さそうだったんだけどそうもいかなそうなんだよね…」 「とりあえず手伝ってくれよ。暇そうだし。」 私 「OK!(暇じゃないけど…w)」 こうして2人で仕様を見つめながら開発に取り掛かったのであった。 基盤スクラッチ開発の選択Jim 「 んーやっぱり既存サービスをベースにするの

    大規模サービスを運営している会社が新規プロダクトを開発した時の物語~サーバーサイド編~
    bsoo
    bsoo 2019/12/10
  • エンジニアのキャリアに責任を持つためのスタンスとスキルの評価指針

    わかりやすく伝えようとすれば、それらのロールをキャリアとして伝えると思います。ただし、『あなたは〇〇がキャリアとして向いています』と伝えたとしても、自分と相手とではその職種の守備範囲の認識が違う可能性があります。そのため、『A, B, C があなたは得意なので、〇〇がキャリアとして向いている。〇〇の責務は D, E, F がある』のように具体的な Responsiblity に着目して伝えていくのが良いでしょう。 キャリアなんてあってないようなものさて、引用文の中に『このご時世、キャリアなんてあってないようなもの』ということも記載しています。キャリアという用語は上で述べたようにとても曖昧で認識齟齬が発生しやすい用語です。 キャリアとしてロールを伝えるよりは職責の範囲(=スキル)を共通認識するためにフィードバックをするのと、そのスキルが所属する会社や事業に依存しないファンダメンタルなスキルを

    エンジニアのキャリアに責任を持つためのスタンスとスキルの評価指針
    bsoo
    bsoo 2019/12/10
  • エウレカエンジニア組織の2019年振り返り

    こんにちは、エウレカCTOの @kaneshin です。今年も Advent Calendar の時期となったので、今年の振り返りと来年以降に向けたエンジニア組織のあり方に思考を深くしている日々です。 さて、初日の Advent Calendar ですが、エウレカでの Go歴史について書こうと思っていたのですが、今年のエンジニア組織の振り返りをしようと思います。 組織の動きについてエンジニア組織に限らないですが、『組織』というのはミッションに基づいた『やるべきこと』の具体化と共にそれを達成すべく実行可能領域を拡げることや、その領域内で最適値を最大化していくために形が変わるものです。 例えば、スタートアップでは全員がどの領域に対しても主導して実行することで、事業継続できる流れに載せて売上を確保していくことが主軸になると思いますが、事業が成長期に入る組織ではそれぞれの領域で専門性を持った人

    エウレカエンジニア組織の2019年振り返り
    bsoo
    bsoo 2019/12/02
  • Go: ent, Graph-Based ORM by Facebook

    Illustration created for “A Journey With Go”, made from the original Go Gopher, created by Renee French.ℹ️ This article is based on the master branch of the project still in development. ent is an ORM created by the team Facebook Connectivity. Motivated by the lack of tools able to query data as a graph in the Go community, as well as a lack of 100% type-safety ORM, ent has been designed to addres

    Go: ent, Graph-Based ORM by Facebook
    bsoo
    bsoo 2019/10/14
  • Cloud Data Fusion を最速で触ってみる

    Cloud Data Fusion とは?Cloud Data Fusion とはGoogle Cloud Next 2019でアナウンスされた、フルマネージドのデータ統合プラットフォームです。 今回の新サービスに関する情報は以下の公式ブログが詳しいです。 参照: From data ingestion to insight prediction: Google Cloud smart analytics accelerates your business transformation | Google Cloud Blog 今回やることQuickstart | Cloud Data Fusionの通りにやってみます。 内容としては Cloud StorageにあるJSONファイル(のベストセラーに関するデータ)を読み込むデータをパースして綺麗にする先週出版されて評価が高かった$25以下

    Cloud Data Fusion を最速で触ってみる
    bsoo
    bsoo 2019/04/23
  • Go言語のmime/multipartパッケージでファイルをアップロードしましょう

    Goによるファイルアップロード(ランタイムの中の様子)はじめにこんにちは。エウレカ APIチームのジェームスです。 最近Go言語でファイルをアップロードしたりするAPIクライントを作っていて、色々と学ぶことがありました。今回は基に戻りマルチパートメッセージの仕様を考えながら、標準ライブラリのmime/multipartパッケージでファイルをアップロードする方法を紹介していきます。 全てのコードはサンプルレポジトリにあります。 マルチパートメッセージのおさらいマルチパートメッセージはHTTPのデータ転送に利用されることが多いですが、その定義はもともとSMTPメールのために設計されたMIME規格にあります。そのため、「メッセージ」などの通常HTTPリクエストに対して使わない単語が出たりします。 HTTPの場合は、ファイルのアップロードによく使いますが、「マルチパート」という名の通り複数のパー

    Go言語のmime/multipartパッケージでファイルをアップロードしましょう
    bsoo
    bsoo 2018/11/29
  • GAE のログに憧れて – google-cloud-jp – Medium

    Google App Engine (GAE) は GCP の他のサービスとの連携が豊富で非常に便利なのですが、その中でも個人的に好きな機能の一つに、Stackdriver Logging に出力されるログの見やすさがあります。 Logging from Google App EngineGAE のログは、上記画像のようにアクセスログとアプリケーションログを一箇所にグルーピングして表示してくれるので、両者のログを行ったり来たりする必要がありません。これは日々の開発や運用で非常に役に立ちます。 今回はこの GAE のようなログ表示に憧れて、他の GCP サービス(特に GKE)でも似たようなことを行えないか模索してみた結果をお話ししたいと思います。 TL;DR条件付きですが、GKE でも以下のようにログをグルーピングして表示することができました。 Logging from Google Ku

    GAE のログに憧れて – google-cloud-jp – Medium
    bsoo
    bsoo 2018/10/12
  • オープン・クローズドの原則の重要性について

    こんにちは!eurekaのAPIチームでエンジニアをやっている@rikiiです。 少し前に発売されたclean Architecture 達人に学ぶソフトウェアの構造と設計を買ったのですが、で紹介されてるSOLID原則について改めて復習しておこうと思い、今回はその1つであるオープン・クローズドの原則についてまとめてみようと思います。 eurekaではgo言語を使っているので、goを使ったコード例とともにオープン・クローズドの原則の重要性について説明していきたいと思います。 ちなみにオープン・クローズドの原則とはSOLID原則と呼ばれるオブジェクト指向設計原則のうちのひとつです。 SOLID原則とは?下記5つの原則の頭文字を取ってまとめた、オブジェクト指向設計原則のことです。 ・S : The Single Responsibility Principle(単一責任の原則) ・O : Th

    bsoo
    bsoo 2018/09/18
  • FGO を支える負荷試験ツール

    これはアカツキとディライトワークスが共同で主催している “FGOなど大規模ゲームの課題から学ぶゲームサーバ・インフラ勉強会” での LT 発表資料です。こちらの資料に軽く補足を入れながら話をしていきます。 時雨堂では FGO の検証に利用するための負荷試験ツールを提供しています。 先日、大きめのメンテナンスが無事終わり、ほっとしています。 さて、メンテが無事終わって、FGO の中の人から以下のようなありがたいメッセージをもらいました。 負荷試験ツールなくしては今回の改修はなしえなかったと思いますので当にありがとうございました…。その負荷試験ツールがどんな仕組みで、どんなことを実現しているのかを書いていきます。時雨堂が負荷試験ツールで実現したことのみを書きます。 主に技術的な話というよりはこんなことやったよがほとんどです。 番データを利用した負荷試験利用されている負荷試験ツールは、時雨堂

    bsoo
    bsoo 2018/07/12
  • Nuxt.js 1.0 is out 🎉

    ) worked on it full time to create the same framework but with Vue.js (Next + Vue = Nuxt.js). Once the prototype was ready (v0.2.0 on November 2016), my brother ( ) came to help me and added the `nuxt generate` feature a week later (v0.3.2). Pooya Parsa joined the core team a few months after and introduced the nuxt modules. This changed the way we worked on nuxt.js and focused more on the core fe

    Nuxt.js 1.0 is out 🎉
    bsoo
    bsoo 2018/01/11
  • Logstash を使って MySQL データを Elasticsearch にインデックスする(基本編)

    リレーショナルデータベースで管理しているデータを Elasticsearch で検索・分析したい場合、Logstash が便利です。 Logstash とは?Logstash はオープンソースのサーバーサイドデータ処理パイプラインです。様々な数のソースからデータを取り込み、変換し、指定された任意のストア先にデータを格納することができます。 処理の内容はシンプルで、Input ステージでソース元の接続先情報を管理し、Filter ステージで変換をし、Output ステージで格納先接続先情報を定義します。Input 及び Output プラグインはデフォルトで様々なソースをサポートしています。そのため、Logstash を使えば、プログラミングレスで MySQL のデータを取り込み、変換し、Elasticsearch へインデックスすることができるのです。 事前準備MySQL と Elasti

    Logstash を使って MySQL データを Elasticsearch にインデックスする(基本編)
    bsoo
    bsoo 2017/12/19
  • ”仕事で始める機械学習”の要点をまとめてみたらとても良い入門書だった

    最近、販売された仕事で始める機械学習を買ったので、購入を考えられている方や機械学習を始めたいと思っている方に読んで、参考になればと思います。 この記事の目的と全体の流れただ読むのと、アウトプット(ブログに書く)前提で読むのとはインプットの質が違うということがわかったので、ブログに書きながら理解していく形を取ります。 全体の流れとしては、章の要約。あぁこの内容知ってるなって人は買わずに済むし、わからないこと多いという人は購入を検討して頂ければ。(出版関係者でもなければ、アフィリエイトなどの営利目的でもなく、いち消費者としての個人的意見になります。 ご了承ください。) 結論から言うと(書評)いままでのオライリーのデータサイエンスだと英語から翻訳したのでわかりにくい日語が非常にうっとうしいのですが、 このは、日の方が書かれており、日語スムーズに理解できます。 また、非常に論理立てられて

    ”仕事で始める機械学習”の要点をまとめてみたらとても良い入門書だった
    bsoo
    bsoo 2017/10/29
  • Elasticsearch と Google スプレッドシートで簡単業務分析基盤構築

    まだまだ、世の中、社内の業務分析で使用するデータを Excel で管理してレポートを作成していることが多いのではないでしょうか? 今回紹介するのは、 Google スプレッドシートでデータを管理して、そのデータを Elasticsearch + Kibana で分析、レポートを作成する基盤の構築です。 このような難しそうなシステムでも、プログラミングせずに構築できてしまうので、ぜひ試して見てください。 Google スプレッドシートのデータを Elasticsearch にインデックスする方法ですが、とても簡単な方法があります。 Google スプレッドシートのアドオン Spreadsheet To Elasticsearch を使う方法です。

    Elasticsearch と Google スプレッドシートで簡単業務分析基盤構築
    bsoo
    bsoo 2017/08/11
  • Draft on Google Container Engine

    At CoreOS Fest 2017, Microsoft Azure team announced Draft, a tool that streamlines application development and deployment into k8s cluster. It’s really cool to me. So I tried to install it on my test GKE cluster. Installation of Draft is quite easy (see documentation) and it’s done less than 10 min. But there are some missing parts for doing it on Google Container Engine (GKE) with Google Containe

    Draft on Google Container Engine
    bsoo
    bsoo 2017/06/02
  • 2017年時点でもっとも全方位をめざすデザインツール Gravit Designer

    Adobe/Macromedia Fireworks がCS6で新規開発が停止になったのは丁度2013年の今日5/7。Fireworksユーザに衝撃とやっぱり感が襲った日でした。記念日でもあるので今回はデザインツールGravit Desinger v3を紹介したいと思います。 2017/05/07現在バージョンはv3.0.5。私が試したのはWindows版で他のプラットフォームで試したわけではないことに注意してください。 2017/05/09追記:日語の表示は、日フォントをimportした上テキストのSpace(Char)を20前後にすると一応できます。しかし、直接のタイプはできません。 限りなく全てに近いクロスプラットフォーム対応!Gravit Desiner v3は、MacOS版、Windows10版(Store版とインストール不要なバージョンがある)、さらに、Linux版、Ch

    2017年時点でもっとも全方位をめざすデザインツール Gravit Designer
    bsoo
    bsoo 2017/05/09
  • Elasticsearch Full Text Queries と Term Level Queries の違いを理解するだけで仲良くなれる

    こんにちはクニです。今回は Elasticsearch を使い始めてまもない開発者がよくハマるクエリーの書き方について紹介したいと思います。 よくあるクイックスタートでヒットしない現象まず、ドキュメントをインデックス。以下の例では、user フィールドに、Kunihiko Kido と言う文字列を設定して登録しています。 curl -XPOST localhost:9200/blog/posts -d ' { "user": "Kunihiko Kido" }'次にインデックスしたドキュメントを検索。 curl -XGET localhost:9200/blog/posts/_search -d ' { "query": { "term": { "user": "Kunihiko Kido" } } }'この結果はどうなるでしょうか? 検索結果は0件です。ドキュメントの値も検索の値もどちら

    Elasticsearch Full Text Queries と Term Level Queries の違いを理解するだけで仲良くなれる
    bsoo
    bsoo 2017/05/02