for DroidKaigi2018
![How to improve your MVP architecture and tests](https://cdn-ak-scissors.b.st-hatena.com/image/square/490e0c43787399565f08d462aeb4df790bde4af8/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F1a45a3d9492843558e6fb4da6ae076d7%2Fslide_0.jpg%3F9375509)
for DroidKaigi2018
自分はアプリケーションエンジニアでネットワークを触ることは少ないのだけど、ネットワークも関わるタスクや障害が現れた時に話についていけないのは良くないと思い、マスタリングTCP/IP 入門編を今読んでいる。データリンク層の章まで読み、この章ではデータリンク層の通信ではMACアドレスを用いて通信していると書かれていた。 しかし、読むだけではまだ理解が足りてないなと思い、pingをサブネット内のホストに打ちながらWiresharkでフレームを眺めるということをしていた。特にIPからMACアドレスの解決をどのようにしているのかと思い、192.168.10.7から192.168.10.4にpingしながら、ARPのフレームを眺めていると、 No. Time Source Destination Protocol Length Info 1811 87.235306 Apple_42:64:b2 Ap
DroidKaigi 2018、おつかれさまでした。 今年で2回目の参加でしたが、やはり日本のAndroidエンジニアのお祭りという感じでとても楽しかったです。 この記事では、DroidKaigi 2018公式アプリに出したRecycledViewPoolの共有PRについて書いています。 きっかけ 今回のDroidKaigi、@thagikura さんの講演「Deep dive into LayoutManager for RecyclerView」の中でRecyclerViewのViewPoolが共有可能だということを知りました。 そして共有可能ということは、ViewPagerの各ページで表示するViewがほぼ同じような画面で共有するといろいろ効率化できるのでは?と思ったので調べ始めました。 とりあえずRecyclerViewのドキュメントを見てみるとありました。 RecyclerVie
Become a Front-End Web Developer by completing a variety of projects for your portfolio - become an HTML, CSS and JavaScript pro! Become a Front-End Web Developer by completing a variety of projects for your portfolio - become an HTML, CSS and JavaScript pro!
main :: IO () main = do -- 最初に全ての情報を入力してもらう putStrLn "名前は?" name <- getLine putStrLn "年齢は?" age <- getLine -- 最後に全てのアクションを実行する putStrLn ("名前: " ++ name) putStrLn ("年齢: " ++ age) この短いプログラムには 名前を聞いて最後に名前を表示する 年齢を聞いて最後に年齢を表示する という明らかなパターンがありますが、それぞれの「聞く」と「表示する」が入れ子になっているせいでうまく分割できません。そこで登場するのがWizardモノイドです。Wizardモノイドを使うと以下のように書けます。 import Data.Monoid ((<>)) name :: IO (IO ()) name = do putStrLn "名前は?"
Cloud Functions for Firebase のデプロイ、遅いですよね。 早い時は 30 秒くらいで終わるのですが、遅い時はなぜか10分以上かかったりするし、1行だけ変えて実行結果を見たい時に数分待たされるとイライラします。 できればローカルで開発して正常に動くことが確認できてから deploy したいです。 ローカルでの関数の実行 | Firebase で関数のエミュレートができますが、コマンドラインで JSON の準備するのは大変だし TDD で開発ができるかというとそうではありません。 ということで、 Cloud Functions をローカルでテストできるようにしてみました。 (まだ Cloud Firestore トリガーしかテストできません) starhoshi/rescue-fire: A test helper for Cloud Functions. どう
はじめに Rx とは C# 発祥の Reactive Extensions のことで、様々な言語に移植されています。RxSwift は Rx の Swift 版です。 様々な言語に移植されているのは、それだけ有用だからです。しかし Rx は有用である一方で学習コストが高く、導入の敷居が高いとみなされがちです。 ネットで Rx について検索すると、Reactive とは・・・関数指向うんたら・・・と、そりゃオブジェクト指向プログラマにはとっつきにくそうに感じるわな、と思うものが多いです。 ここではオブジェクト指向設計で一般的に利用されるオブザーバーパターンを置き換えるところから、Rx の利用方法を解説してみます。 以下のようにシリーズになっていますが、この記事の内容だけでも十分役に立つと思います。 オブザーバーパターンから始めるRxSwift入門 RxSwift入門(2) 非同期処理してみる
GraphQLは実装内容に合えばタイタニックの救命ボードのように混沌から救い出してくれる。だからと言って全てのプロジェクトがタイタニックな訳ではないので、使い所が合わなければそんな救命ボードにもあまり意味は無い、という話。 先日、個人開発して公開したプロジェクト「node-node-node」のバックエンドはRails APIにGraphQLを使っていて、このプロジェクト内容に対しては最高の親和性を発揮してくれた。 GraphQLのメリットを一言で言えば「クライアント=サーバー間での複雑なトランザクション処理の全てをGraphQLが吸収してくれる」ということに尽きる。ややこしい技術の詳細を書いたところでメリットはこれ以外に無い。 /usersや/postsというそれぞれのエンドポイントにリクエストを投げていたのがRESTful。 GraphQLにするとエンドポイントを気にすることなく「これ
I wrote my first few lines of JavaScript not long after the language was invented. If you told me at the time that I would one day be writing a series of articles about elegant patterns in JavaScript, I would have laughed you out of the room. I thought of JavaScript as a strange little language that barely even qualified as “real programming.” Well, a lot has changed in the 20 years since then. I
Not all systems can meet their SLAs by relying on CPU/memory usage metrics alone, most web and mobile backends require autoscaling based on requests per second to handle any traffic bursts. This step by step guide shows you how to set up Kubernetes Horizontal Pod Autoscaler with Prometheus defined custom metrics, to fine tune your application monitoring and ensure high availability. Autoscaling in
2018/02/03追記 本記事には記述当時の古い情報が含まれます。わりと最新の情報を元にした記事がありますので、そちらも是非ご覧ください。 はじめに 皆が待ち望んでいたKotlin 1.1が3月1日にリリースされました。 様々なアップデートが含まれていますが、やはり目玉となるのはコルーチンでしょう。 この記事ではコルーチンのサポートによって実現されたasync/awaitをAndroidで使用する方法について説明します。 コルーチンとは ものすごくざっくりと言ってしまえば、コルーチンは中断・再開可能な関数です。 通常の関数は呼び出されると戻り値を返すまでそのまま進んでいきますが、コルーチンは任意地点で実行を中断して関数を抜けることができます。 また、抜けたところから抜けた時点の状態で再開することも可能です。 async/awaitとは コルーチンは色々と使い手のある機能ですが、async
前書き coroutineはKotlin 1.1から搭載された新機能ですが、まだexperimentalなこともあってバリバリ使っている人は多くないと思われます。しかしながら、experimentalとはいえproduction readyなことは宣言されており、Kotlin 1.3ではexperimentalが外れる(予定の)ため、そろそろ学んでおいても悪くない時期になってきています。 そこで、この記事ではcoroutineを実践するにあたって抑えておくと役立つ知見を共有します。ご参考になれば幸いです! 注: この記事はKotlin 1.2.21, kotlinx.coroutines 0.22.5に基づいて書かれています。 coroutineとは何であって何でないのか coroutineとは何か coroutineとは何かを一言で表現すると、「中断可能な計算インスタンス」になります。こ
DroidKaigi 2018 - Day1 Room1 16:50~ にて発表する内容です
Tensorflowの分かりにくい所を動画でやっていくシリーズです。 全第五回。 以下のサイトの補助動画です。 Tensorflow入門 https://karino2.github.io/tensorflow-introduction/ 教えてるのはkarino2、聞き手は @Ikeda_yu です。 補講も作...
TL;DR: ユーザー認証はほとんどのアプリケーションシステムに不可欠なもので、さまざまな認証方式やプロトコルの対応が求められています。求められているプロトコルのひとつが SAML で、本書ではその機能について学びます。 SAML とは何か?SAML(Security Assertion Markup Language)はService ProviderとIdentity Provider の 2 つの企業間の行われる認証と許可のための XML ベースのフレームワークです。Service Providerはユーザーを認証するIdentity Provider を信頼して同意します。引き換えに、Identity Provider はユーザーが認証されたことを示す認証アサーション を生成します。 SAML は標準 シングル サインオン(SSO)形式です。認証情報はデジタル署名した XML 文書
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く