タグ

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

  • 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の状態管理手法の選定
  • TCPが遅すぎる?QUICを使おう!

    「それ、QUIC使えないの?」 それがなんであれ、QUICを使うことを主張することで、みんなが「なんか良くわからないけど、TCPを置き換えたほうがいいのかな?」と思うようになるはず。全てのアプリケーションを、TCPの代わりにQUICを使うように修正するとなれば、この先10年間ぐらい、エンジニアみんなの仕事を作ることができます。業界愛ですね。 すでに、SSHやDNSのQUIC対応は始められています。既存のアプリケーションをQUICに対応させる難しさを調査するために、RustでBGP over QUICを実装してみました。 QUICの実装QUICは、TCPと同じく、パケットの再送、輻輳制御など、信頼性のある通信を実現するトランスポートプロトコルです。実装面の大きな違いは、TCPがオペレーティングシステムのプロトコルスタックの一機能として実装されるのに対して、QUICはアプリケーションで実装され

    TCPが遅すぎる?QUICを使おう!
  • Flutter Interact キーノート 発表内容のまとめ

    Flutter Interactのキーノートを視聴したので、そのまとめを共有します。一通りトピックを網羅できているはずです。 Google Fonts for FlutterGoogle FontsをFlutterで利用できるパッケージが紹介されました。すでにpub.devで公開されています。

    Flutter Interact キーノート 発表内容のまとめ
  • 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プラグイン…)
  • 美少女声への変換と合成

    Introduction今までは主に可愛い女の子の画像(or 動画)を生成することに取り組んできましたが、画面上に映せるようになったらやはり可愛い声で話して欲しいものです。そこで今回は、別の人の声が与えられた時に美少女声へと変換するための声質変換と、テキストが与えられた時に美少女声を生成するText-to-Speech(TTS)を行なった試行結果について述べようと思います。 Voice ConversionIntroduction声質変換のデータには2種類あります。それが、パラレルデータとノンパラレルデータです。以下にそれぞれの特徴を述べていきます。 パラレルデータを用いた声質変換 同じセリフを発する2種類の声を学習データとして用います。発話内容が同じのため、言語特徴を気にせず音響特徴量の変換を行うことが可能です。しかし、話速の違い等によって言葉を発するタイミングがずれてしまうのでDyna

    美少女声への変換と合成
  • 我々はいかにシステム開発におけるドキュメント腐る問題と戦えば良いのか

    フューチャーアーキテクト Advent Calendar 2017 の2日目です。 システム設計が大好きで大嫌いな皆さん、こんにちは。 突然ですが、皆さんはどのようにシステム設計における ドキュメント腐る問題 に立ち向かっていますか? … ドキュメント腐る問題とは、設計時に作成した各種ドキュメントがGoogle Driveやファイルサーバ上で陳腐化してしまい、現状の正しい状態を指していないことです。せっかく新規参画者がキャッチアップしようとしてもドキュメントが真実を示していないという怖いやつですよね。 今まで出会った一番辛いドキュメントは、PJ初期に作成したホワイトボードに書かれたラフスケッチの画像しか無かったところですね。まず字が汚いし、内容も最新版と微妙に異なっていました。新規参画者殺しにもほどがあると、ほんのちょっとだけ恨みました。 いやいや、ちゃんとサボらず整合性を取れよって?サボ

    我々はいかにシステム開発におけるドキュメント腐る問題と戦えば良いのか
  • Vue.js からみた AtomicDesign

    この記事はVue.js #3 Advent Calendar 2017の13日目の記事です Atomic Design自体の記事は色々ありますので、この記事ではAtomicDesignで設計したコンポーネントをVue.jsで実際に運用してみて感じた事をまとめてみました 実際にどんな感じになるか結論から言うと、AtomとMoleculeにStoreを持たせず。 OrganismsとTemplateあたりの粒度でStoreを利用するとIA的にも収まりがいい様に思えます。是非デザイナーにツッコミ入れましょう。 VueコンポーネントをAtomicDesignで実装するとだいたいこんな感じになります。Atomの役割色・タイポ・ボタン固定文言など 直接描画要素にデータをレンダリング描画要素のイベントを発行親要素からのデータ受け取り登場箇所がすごく多いのでステートレスを徹底するStoreみちゃダメ絶対!

    Vue.js からみた AtomicDesign
  • Introducing F2

    F2 is a free and open-source modern charting library, released under MIT license. The aim of F2 is helping developers to create interactive visualizations for mobile devices more easier. F2 is born for mobile, developed for developers as well as designers. It is Html5 Canvas-based, and is also compatible with Node.js, Weex and React Native. Based on the grammar of graphics, F2 provides all the cha

    Introducing F2
  • 真面目な人を本気にさせる方法

    先日、他社の開発の方々が、アジャイルに関する相談ということで、弊社にいるアジャイルに詳しい髪の長いおじさんに訪ねてきた。その中で、実感駆動開発の話になって、久しぶりに「気(マジ)と真面目(マジメ)」の話を聞いた。 この話を聞いてから、人がプロダクトの価値について考えられるようになるにはどうしたらいいのか考えてみた。 TL;TRありきたりな回答だけれど、さっさとリリースして、さっさと使ってもらう。それをできるためのことを、もちろんリスクを下げつつ、できるようにするためのことを頑張ろう。

    真面目な人を本気にさせる方法
  • プログラミングを教えるときの10のポイント (という論文の紹介)

    1. ギークの遺伝子なんてないことを心に留めようよく、「プログラミングには得意不得意がある(some kids get it, and some kids don’t)」とか、さらには「プログラミングには向いていない子がいる」とか聞きますね。 大学のコンピュータサイエンスの授業の成績分布が、とても良く理解できる生徒と何もわかっていない生徒にくっきりわかれる、という話も聞きます。当でしょうか?Patitsasらの最新の研究によると、実際にはそんなことはなく、くっきりと成績の分布が分れてしまったコンピュータサイエンス入門のクラスは、5.8%に過ぎなかったそうです。 この論文では、「プログラミングには得意不得意がある」という迷信は、プログラミングを学びだしたときに躓きがちな生徒でなく(意識的か無意識的かにかかわらず)、スムーズに学ぶ生徒の方へ教える時間や熱意を費やすことにつながり、ひいてはコン

    プログラミングを教えるときの10のポイント (という論文の紹介)
  • Building a Socket.io chat app and deploying it using AWS Fargate

    This article walks through the process of building a chat application, containerizing it, and deploying it using AWS Fargate. The result of following along with this guide will be a working URL hosting a public, realtime chat web app. But all this will be accomplished without needing to have a single EC2 instance on your AWS account! If you want to follow along with the article and build and deplo

    Building a Socket.io chat app and deploying it using AWS Fargate
  • Foursquare: A UX case study

    Foursquare’s iOS app after tweaked experience of user journey I love Foursquare and have used it since I lived in Tokyo. After I moved to San Francisco, I was impressed that I could use it seamlessly. It helped me discover a new place anywhere in the world. Last summer, I also planned a trip to Portland with Foursquare but I realized a problem while using the iOS app. So I set out to explore featu

    Foursquare: A UX case study
  • 個人で運用している Web サービスをどう管理しているか 2018年版 - r7kamura - Medium

    個人で運用している幾つかの Web サービスについて、自分がどう管理しているかを振り返る。 実験には Heroku を利用習作につくったアプリやβ版段階のアプリは、Heroku で動かしている。Heroku を使う場合のより具体的な条件としては、データベースが明らかに無料枠に収まりそうで、24時間動いていなくてもまあ誰にも怒られそうないような場合。Slack 用の Bot や、nippo という日報専用サービスのクローズドβ版などを主に置いている。 メリットに感じている部分は、無料で使えること。デメリットに感じている部分は、サーバが US に配置されることと、データベース系の Add-On が高くつくこと。例えば日語圏向けのサービスだと、通信時間がそこそこ長くなり、結果的にサービスの体験が悪くなる(昨今の平均的な Web サイトの速度はまだまだ遅いので、それと比較すると悪くなるというほど

  • コードレビューにおけるレビュアー側のアンチパターン

    tl;drコードレビューが上手く回って無くてチームが疲弊して辛かったよレビュアーの言い方を変えるだけで大体解決するよ立場とかで例外を許さず、みんながレビューしてレビューされると良いよはじめにあるプロジェクトGitHubのPRベースでのコードレビューを導入をしました。いかんせんチーム開発が初めてレベルの新人さんが多く、何かと苦労しました。特にレビュイーに対して不効率な指摘はそのまま指示の不明確さに繋がり、チーム全体の開発生産性を下げるので、レビュアーはレビュイー以上に気を使う必要があると感じました。下手をすると、レビュイーのメンタルが弱って闇堕ちするので、チームメンバーの最も大人な人がメンタルケアしたりします。大人な人は大体がリーダー格なので、その人の時間が奪われると何かと開発現場が疲弊しちゃいますね。コードレビューってそんなに難しいものだっけと思ったりもしますが、反省の意味も込めて実際に

    コードレビューにおけるレビュアー側のアンチパターン
  • エンジニアが「明日からマネジメントして」と言われたら

    製品開発におけるマネジメントの全体感最初に結論エンジニアがマネジメント始める際には、↑のようにざっくり簡単にでいいので開発チームのマネジメントの全体像を掴んだうえで、自分がマネジメントするべき範囲を明確にして動くことをオススメしてみます。 以降、もう少し詳しく説明します。 なんで書こうと思ったかエンジニアにとってマネジメントとはなにか。突出した技術力を持った人というのがエンジニアでは花形なイメージが一般的にはあるでしょうし、マネジメントはエンジニア全員にとって必須科目ではありませんが、一定の経験、年齢、スキルになったら考えることだと思います。 しかし、エンジニアにとってマネジメントという言葉はとても曖昧。必須科目でない分、特定技術に関するものよりもずっとドキュメントや教材がすくなく、なにをやればいいかけっこうわかりにくい。 最近だとVP of Engineeringみたいなポジションがメジ

    エンジニアが「明日からマネジメントして」と言われたら
  • コミットメッセージの書き方

    コミットメッセージにはどのような情報を残すべきだろうか?はじめにこの記事ではGitのコミットメッセージの重要性と良いコミットメッセージの書き方を説明します。いままで良いコミットメッセージについて考えてこなかったかたも一度立ち止まって考えてみてくれると嬉しいです。 対象読者GitGitHubを業務で使っている人「良いコミットメッセージ」をあまり意識しない人目次Gitを使ったソフトウェア開発で、なぜコミットメッセージが重要なのか?コミットメッセージの書き方の1例を紹介まとめGitを使ったソフトウェア開発で、なぜコミットメッセージが重要なのか?ソフトウェア開発において、良いコードとはどんなコードでしょうか? 私は「 他人が読みやすく、理解しやすいコード」だと考えています。ソフトウェアにバグは必ず出ます。そのバグを修正する時間を最短にできるような、読みやすい、理解しやすいコードが良いコードだと思

    コミットメッセージの書き方
  • 🌟 Introducing Dash 🌟

    Create Reactive Web Apps in pure PythonDash is a Open Source Python library for creating reactive, Web-based applications. Dash started as a public proof-of-concept on GitHub 2 years ago. We kept this prototype online, but subsequent work on Dash occurred behind closed doors. We used feedback from private trials at banks, labs, and data science teams to guide the product forward. Today, we’re exci

    🌟 Introducing Dash 🌟
  • JavaScript’s new #private class fields

    What they are, how they work, and why they are the way they are

    JavaScript’s new #private class fields
  • チャットボットフレームワーク Ruboty を振り返る - r7kamura - Medium

    Ruboty を利用したデプロイの様子この記事では、Slack や HipChat で動く Bot をつくるためのフレームワーク Ruboty の仕組みを振り返り、現状の実現方法を把握し、今後 ChatOps を改善するための足掛かりとしたい。 出勤、デプロイRuboty というチャットボットフレームワークを数年前から開発しており、仕事でも Ruboty でつくった Bot を使った業務フローを導入・運用する機会が増えてきた。例えば、いま働いている会社では、Qiitan という Bot が出勤管理やデプロイに使われている。 Qiitan に最もよく投げかけられている発言は、「@qiitan 出勤」である。この発言を行うことで、自動的に社で利用している出勤管理サービスに対して、発言者が出勤した旨を代わりに登録してくれる。他によく使われる発言として「@qiitan デプロイしたい」がある。これ

    チャットボットフレームワーク Ruboty を振り返る - r7kamura - Medium
  • $PHP = 💩;

    It’s well known that PHP is a dead programming language and that its 22-year-old ecosystem is effectively useless now that we have Node and its fancy new asynchronous frameworks. Node’s superiority is evident because everyone knows that single-threaded, asynchronous, programs are better by default. Faster. Stronger, even. “But Simon! Why?!”, you’re probably yelling at your MacBook screen. Here’s w

    $PHP = 💩;