タグ

ブックマーク / hydrakecat.hatenablog.jp (13)

  • 浮動小数点数の二段階丸め誤差 - hydrakecat’s blog

    さいきん『浮動小数点数小話』という同人誌を読んでFMA (Fused Multiply-Add)の二段階丸め誤差(double rounding error)について色々と知る機会があったのでまとめておく。ついでにFMAに関するOpenJDKのバグっぽい挙動を見つけたのでそれも併せて記しておく。 FMA (Fused Multiply-Add)とは FMAは以下のような演算のことを呼ぶ。 この演算自体は行列の乗算やベクトルの内積の計算でよく現れるものであるが、通常の浮動小数点数の乗算と加算を別々に行うと誤差が出るので一度の演算で正確な値を算出したいときに用いる。たとえばC言語(C99)では fma、fmaf、fmalという3つの関数が導入されているらしい。 FMAの実装における二段階丸め誤差 FMAはターゲットとなるCPUのアーキテクチャがFMA命令をサポートしていればその命令を直接呼び出

    浮動小数点数の二段階丸め誤差 - hydrakecat’s blog
    gfx
    gfx 2020/10/21
  • 中年プログラマの競プロ事始 - hydrakecat’s blog

    これはなに 自分がここ2年ほど趣味として競技プログラミングをやった経緯と感想です。いわゆるプログラマの定年と呼ばれる35歳を過ぎてから始めたのですが、思ったよりも楽しめました。自分のようなシニアと呼ばれるプログラマが競プロに興味を持ってくれたらいいなと思って書きました。 競技プログラミング競プロ)とは 競技プログラミング(以後、競プロ)は、プログラミングをして順位を競うコンテストです。コンテストはたいていオンラインで毎週のように開かれており、誰でも参加できます。形式としては、与えられた時間内にいくつかの問題を解くコードを提出して、その正解数と提出までにかかった時間を競うというものです。たいていは、コードの実行時間および使用メモリに制限があり、その制限内で実行できるコードを書く必要があります。またコードが正解かどうかは出題者が用意したテストケースをパスするかどうかで判定されます。 多くのコ

    中年プログラマの競プロ事始 - hydrakecat’s blog
    gfx
    gfx 2020/07/26
    "1. 問題を考えることがたのしい / 2.ちょうどよい暇つぶしになる / 3.容赦なく現実を突き付けられる"
  • 近況報告 - hydrakecat’s blog

    TL;DR 11月中旬にmixiを退職してGoogle転職しました 引き続きAndroidアプリを作っています mixiのみてねチームもとてもいいところなので、興味がある人はぜひ 11月の中旬からGoogleでソフトウェアエンジニアとして働いています。勤務先は引き続き渋谷で、やっていることもAndroidアプリを作っているのでそんなに変わっていません。 よいチームに巡りあうことができ、毎日たのしくやっております。 一方で上司も含めてチームに日語話者がほぼいない状況は初めてで、自分の英語のできなさを噛みしめつつ、がんばっています。 みてねは大企業の新規事業部でしたが、POの笠原さんとさえ話をつければ物事が進むところや個々に大きな裁量が与えられるところなど、スタートアップ然としていて楽しかったです。 メンバーもよい人たちばかりで、互いに敬意を持って働けるよいチームでした。興味がある方はぜひ

    近況報告 - hydrakecat’s blog
    gfx
    gfx 2019/12/16
    Cool!
  • 『データ指向アプリケーションデザイン』を読んだ - hydrakecat’s blog

    『データ指向アプリケーションデザイン』を読んだ。たいへんおもしろかった。技術書でこんなにわくわくしながら一気に読んだのは『Androidを支える技術』以来かもしれない。 データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理 作者: Martin Kleppmann,斉藤太郎,玉川竜司出版社/メーカー: オライリージャパン発売日: 2019/07/18メディア: 単行(ソフトカバー)この商品を含むブログを見る 書はソフトウェアシステムの設計について「データ」という観点からまとめたものだ。もちろんデータベースは登場するが、それだけでなくJSONなどのデータ形式、RPC、メッセージキュー、全文検索インデクス、バッチ処理やオンライン処理も等しく「データ」という観点から扱っている。特筆すべき点は、理論だけでなく実際のミドルウェア製品を引き合いに出しつつ具体例を

    『データ指向アプリケーションデザイン』を読んだ - hydrakecat’s blog
    gfx
    gfx 2019/09/24
  • 近況報告 - hydrakecat’s blog

    TL;DR 4末でFablicを退職してフリーランスをやっていました 8/1からmixiに入社し、家族で写真を共有するサービス「みてね」の開発に携わる予定です 業務委託で働いているだけですが、 https://kibe.la を作っている BitJourney はいい会社なので興味がある人はぜひ その他 Too longと書きつつ、ぜんぜん長くなりませんでしたが、そんな感じです。何社か話を聞かせていただき、ありがとうございました。また、向こうから声をかけていただいた企業もいくつかあり、感謝しております。 「みてね」は、試しに1日だけ働かせてもらったところ、チームの感じが良さそう、かつ、大企業だけれど新規事業でスタートアップっぽい雰囲気なところが気に入って入社を決断しました。 BitJourneyは前からフリーランスで働いてみてないかと声をかけていただいており、いい機会だからと働かせてもらい

    近況報告 - hydrakecat’s blog
    gfx
    gfx 2018/06/24
    🌱
  • ソフトウェアエンジニアに必要な英語 - hydrakecat’s blog

    ソフトウェアエンジニア英語の話というのは、しばしば話題になります。 それだけ多くの人が英語について気にしていると思うのですが、「英語やらなきゃ」と言っている人に話を聞くと意外と動機が漠然としている印象があります。 果たして日企業で働くソフトウェアエンジニアにとって英語は必要なのでしょうか?必要だとしたら、どういう英語が必要なのでしょうか? この記事は、そのあたりの疑問を自分なりに整理するために書きました。 いつもの固い記事とは違って、きちんと下調べもしていないし、勢いで書かれた内容となっていますが、ご容赦ください。 なお、この記事はエンジニア英語力 - 怠惰を求めて勤勉に行き着くに触発されて、 Androidアプリのビルド待ち時間に書かれています。エモい記事を書いてくださったしろやまさんと、Androidアプリのビルド時間、それに業務時間中に記事を書くことを快く許してくれた会社に感謝

    ソフトウェアエンジニアに必要な英語 - hydrakecat’s blog
    gfx
    gfx 2017/12/15
  • companion object vs. top-level - hydrakecat’s blog

    JavaにはあるけれどKotlinにないものの1つに、クラスメソッドやクラス変数があります。 この記事では、そのクラスメソッドとクラス変数をKotlinではどう定義すべきかという話をします。 より詳細に言えば、メソッドや定数*1をtop-levelで宣言するのとcompanion objectに宣言するのとどちらが良いかという話です。 Java -> Kotlin 自動変換 JavaからKotlinへの自動変換を使ったことのある人は、Javaのクラスメソッドや定数がcompanion objectに変換されることに気付いたでしょう。 こういうJavaクラスがあったとして、自動変換をすると、 package shape; public class Circle { public static final double PI = 3.14159265358979323846; private

    companion object vs. top-level - hydrakecat’s blog
    gfx
    gfx 2017/12/04
  • 『Androidを支える技術』を読むべきか? - hydrakecat’s blog

    ソフトウェア・エンジニアを長くやっていると、自然と得意分野というものが出来る。 自分だったら、Androidアプリ開発やJavaの仕様についてはそれなりに知っているつもりだけれど、LinuxカーネルやGPUについて詳しいとはお世辞にも言えない。 得意分野というと聞こえはよいけれど、それは裏を返すと、他のことを学ぶのに及び腰になるということだ。さっきの例でいえば、LinuxカーネルについてもGPUについても知っておくにこしたことはない。それでも、「興味はあるけれど、いますぐに必要じゃないからいいか」という気分になって後回しにしてしまう。 この記事で紹介する『Androidを支える技術』はそういう知っておくにこしたことはないことを解説している。 『Androidを支える技術』とは Androidを支える技術〈I〉──60fpsを達成するモダンなGUIシステム (WEB+DB PRESS plu

    『Androidを支える技術』を読むべきか? - hydrakecat’s blog
    gfx
    gfx 2017/08/28
  • RxJava のテスト(2): RxJavaHooks, RxAndroidPlugins - hydrakecat’s blog

    これはRxJava Advent Calendar 2016の第14日目の記事です。前回はTestSubscriberやTestSchedulerを使ってRxJavaに関わる単体テストのしかたを説明しました。 この記事では、それらでは足りない場合の奥の手、スケジューラを差し替える方法について説明します。 TestSubscriberやTestSchedulerでは解決しない場合 以下のコードを見てください。これは前回の記事で使用した AsyncService をラップした WrappedService のテストです。このラップが適切かどうかは、措いておきましょう :-) @Test public void testWrappedService() { final WrappedService service = new WrappedService(new AsyncService());

    RxJava のテスト(2): RxJavaHooks, RxAndroidPlugins - hydrakecat’s blog
  • RxJava は Subscriber を中心に捉えると理解しやすいんじゃないかという話 - hydrakecat’s blog

    これは RxJava Advent Calendar 2015 の第22日目の記事です。昨日は kazy さんによる RxJava 2.xについて でした。 この記事では、 RxJava を理解するために自分が RxJava をどのように捉えているか、という話をします。なお、自分は ReactiveX や Reactive Functional Programming について詳しいわけではないので、その方面の理解の助けになるものではありません。どちらかといえば、RxJava という特定のライブラリをこう理解しておけば全体の挙動を把握しやすいのではないか、という生活の知恵のようなものになります。RxJS や他のライブラリではまた異なる実装かもしれませんのでご留意ください。 RxJava は非常に強力でよく考えられたものですが、ソースを見て挙動が直感的に分かるとは言えないライブラリです。稿

    RxJava は Subscriber を中心に捉えると理解しやすいんじゃないかという話 - hydrakecat’s blog
    gfx
    gfx 2015/12/22
  • Kotlin Inline Functions - hydrakecat’s blog

    これはKotlin Advent Calendar 2015の第8日目の記事です。昨日は n_yunoue さんによることりん、ビッグウェーブに乗るでした。 今日は inline functions の話を書きたいと思います。題に入る前に function literal と function expression の違いについて説明して、その後に inline modifier やそれにまつわる Kotlin の機能(non-local return、reified modifier や crossline modifier)について説明します。 Difference between Function Literal & Function Expression Kotlin を書き始めた最初は、function の様々な書き方に戸惑わなかったでしょうか。以下はすべて正しい書き方です。

    Kotlin Inline Functions - hydrakecat’s blog
    gfx
    gfx 2015/12/14
    便利やん、っておもったら思いの外複雑で、これは人類には早すぎるのでは…って気持ちになった
  • Fragmented Ep. 21: Diving Deep with Dagger - hydrakecat’s blog

    恒例の Fragmented レビュー。今回は第21回の Diving Deep with Dagger について。久しぶりに Donn と Kaushik の2人だけの回だが、カメオ出演(というのか?)で Square の Jesse Wilson が出ている。 Dagger さて Dagger と Dagger 2 である。どちらも Android では有名な Dependency Injection (DI) のライブラリだ。 実を言うと、Dagger は自分にとっては「いつか使いたいと思いつつ、使えていない」ライブラリの1つだ。学習コストがそれなりにかかりそうで、ぱっと目につくメリットがそんなにないと二の足を踏んでしまう。良くない癖だ。だから、そんな自分にとっては、このエピソードは Dagger を勉強する良い機会だった。 珍しく最初に雑談があって、Game of Thrones

    Fragmented Ep. 21: Diving Deep with Dagger - hydrakecat’s blog
    gfx
    gfx 2015/11/23
  • DroidKaigi を終えて - hydrakecat’s blog

    去年の年末あたりから運営として関わっていた DroidKaigi が無事に終わった。備忘録がてら、準備および当日を通して感じたことを、掻い摘んで書きたい。やー、ようやく終わった。 準備期間 たしか事の発端はとある勉強会の懇親会だったように思う。最初は Droidcon Tokyo をやって Jake 呼びたい、みたいな他愛もない話だった。で、一ヶ月後くらいに唐突にチャットに招待され、年の瀬に第1回のミーティングが開かれたのだった。 まずは1日で終わるくらいの開発者中心のカンファレンスをやろう、という話でまとまったのだが、そのときからコンセプトは「開発者の、開発者による、開発者のための Android カンファレンス」と決まっていて、最後までそのコンセプトがぶれなかったのが、いま思い返しても時々の判断の基準になって良かったように思う。 その後は SlackGitHub ベースで準備を進

    DroidKaigi を終えて - hydrakecat’s blog
    gfx
    gfx 2015/05/01
  • 1