テストステ論

京大卒の高テス協会会長がテストステロンに関する情報をお届けします

情報技術

【ファーウェイ問題】Google Mobile Serviceがないスマホはありまぁす!!!(小保方さん風)【イータイルズ問題】

まず断っておきますが、おれはAndroidアプリは作ってるけど、Androidそのものには詳しくないし、ライセンス関係も詳しくはないから、かなりエアで話す部分も多いということです。正しくない部分があれば@GodAimAkiraまで。 www.akiradeveloper.com で話した…

【Firebase】FirestoreとCloud Functionsを使ってイータイルズにレーティングシステムを実装した話

イータイルズのパズルゲームとしての面白さには確信がある。しかしそれだけでは世界中で爆発的にヒット出来るとは思わない。プレイヤーの向上心を喚起する仕組みが必要である。 リーダーボードはある。Google Play Gamesのリーダーボードだ。今やってるプレ…

【Android】話題のパズルゲーム「イータイルズ」に通信対戦を実装した話【Google Play Games】

イータイルズはオフラインでも、リーダーボードやアチーブメントによって面白いゲームだとは思いますが、スマホゲーである以上はネット対戦が出来ないとトロールということになります。そこで、Google Play GamesのReal-time Multiplayerという機能を使って…

【React Native】etilesというゲームアプリをScala.jsからTypeScriptで書き直した理由【TypeScript】

etiles(イータイルズ)というのは、おれが作ってるパズルゲームで、自札のNxNタイルを裏返したり入れ替えたりして、答えにマッチさせるというゲームです。今はTypeScriptとReact-Nativeで書かれています。 インストールお願いします。 https://play.google.co…

エディタ開発の魅惑

おれは最近、自分のエディタを開発している。 GitHub - akiradeveloper/ijk: A real editor for real programmers イージックと読む。名前の由来は、easy codingとか、プログラミングで典型的な三重ループのインデックス名だったりとか、こじつけはいくらで…

ライトブーストをネイティブ4KBセクタに対応させる

死んだはずのソフトウェアに対して昨日2つのコメントをもらった. 1. Transparent Migrationについて 2. ネイティブ4KBセクタへの対応 まとめる 1. Transparent Migrationについて Transparent migration from linear device to writeboost device · Issue #1…

ゼロから作るDeep Learning まとめ(3)

今日は7章「畳込みニューラルネットワーク」を読んだ. ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者: 斎藤康毅出版社/メーカー: オライリージャパン発売日: 2016/09/24メディア: 単行本(ソフトカバー)この商品を含むブログ…

ゼロから作るDeep Learning まとめ(2)

今日は6章を読んだ. ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者: 斎藤康毅出版社/メーカー: オライリージャパン発売日: 2016/09/24メディア: 単行本(ソフトカバー)この商品を含むブログ (18件) を見る 6章 学習に関する…

ゼロから作るDeep Learning まとめ(1)

とりまDeep Learningでも学ぶかみたいな感じで読んでる. 非常によく出来た本で, 分かりやすい. TensorFlowだとかフレームワークを使えるようになることが目標. ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者: 斎藤康毅出版社/…

Bizur: Shardごとにメンバーシップを管理する

www.akiradeveloper.com でBizurアルゴリズムの概要を説明した。 Bizurアルゴリズムは全世界のエンジニアにとって興味のあるものであったが、論文を読むのはひたすらだるく、さくっとまとまった資料があれば良いが存在しないという状態だった。だからおれはB…

Bizur: Log-less consensusの解説

Bizurの筆者が2日前に新しい投稿をしたようだ. この記事は, Raftのようなlog-basedのものとBizurのようなlog-lessのものを比較している. distributedthoughts.com ざっくりやっていくぞ log-basedは, 状態を1つのglobal stateの初期値+変更のリストで表現す…

ドワンゴがRustで分散ファイルシステムを作っているらしい

gihyo.jp ドワンゴが分散ファイルシステムを作っているというニュースを見た. しかもRustで. ニュース以上のことも知りたくなったがツテがないし, あったとしても教えてくれるわけがないので外側から推測することにした. 実は分散ファイルシステムも独自に開…

Raft: Processing read-only queries more efficientlyの解説

引き続きRaft. Rustは書いていない. Rustを書く時間はすべてオーバーウォッチに捧げてしまった. github.com の6.4を説明する. Raftでreadを行う時はどう考えればいいか. Read-only client commands only query the replicated state machine; they do not ch…

Raft: Membership Changeのシンプルなアルゴリズム

Raftは理解と実装の容易性に重きを置いた合意アルゴリズムだ. 合意アルゴリズムは複数のサーバが何か1つの値について合意するために使われる. このアルゴリズムは2014年に発表された. PFIがSlideを作ってくれているからこれを読めば大体は分かる. しかしもっ…

RaftのMembership Changeは博士論文を読めとのこと

Raftは簡単だ. Yeah. Raftは素晴らしい. YEAH! しかしMembership Change... WHAT!? おれは, In Search of an Understandable Consensus Algorithm (Extended Version) (https://raft.github.io/raft.pdf) を読んだ. Membership Changeの章で分からないことが…

ライトブーストのRPMパッケージプロジェクトがはじまった

おれはライトブーストに関しては、カーネルとテストはおれが良いものを作るが、ディストリビューションにパッケージを突っ込むのは誰かがやってくれるのを期待することにしている。やってくれないならばそれまでのソフトウェアと諦めるだけだ。 しかし実際に…

Rustを勉強したら低レベルが理解出来る!!!わけねえだろ

プログラミングRust作者: Jim Blandy,Jason Orendorff,中田秀基出版社/メーカー: オライリージャパン発売日: 2018/08/10メディア: 単行本(ソフトカバー)この商品を含むブログを見る おれはOSを書く仕事をしたこともあるし、今までの仕事はほとんどがいわゆ…

SSDキャッシュの歴史

私は2012年頃からdm-writeboostを開発しているわけだが、私がdm-writeboostを開発しはじめてから新しくSSDキャッシュは開発されていない。少なくともOSSでは。一応、Oh Yongseokという韓国人の学生がdm-writeboostを元にしてdm-srcという研究プロジェクトを…

discardの実装を再考する

discardというのは, ブロックデバイスのある指定領域を「もう使いません」とブロックデバイスに教えてあげる処理です. SSDでは内部でGCが走りますから, 使わない領域を教えてあげると有利になります. 今の実装は, backing deviceにそのまま転送します. /* * …

finchの紹介

akka-httpベースでS3を実装することを完全に断念した私は今、finchの勉強をしている。この記事では、finchというのは一体何なのか?ということをすごくざっくりと説明する。 finchはfinagle-httpの上に作られた、RESTを関数的に書くことを助けるフレームワー…

ForkJoinPoolとblocking

以下は、いつも通り、私のざっくりな調査内容をまとめるものだから、もし、内容に誤りがあったら報告してほしい。(想像も含むので) 前提 調査 結論 どうすればよいか? 前提 目的としては、akkaベースのウェブフレームワーク(sprayかakka-http)で、複数のリ…

DRBD

DRBDは, ブロックレベルでのデータ冗長化を実現するソフトウェアである. 仕組みはよくわからない. 一番実直に作るとすると, デバイスを固定セグメントで分割して, それぞれについて同期しているのか/していないのかを記録しておくという仕組みだろう. たぶん…

古事記由来の名前をつけるのがセンス良い?

ソフトウェア開発で一番悩ましいのは、設計でもコーディングでもない。名前だ。 dm-writeboostは初期にはdm-lcという名前だった。lcはlog-structured cachingの略であり、同時に愛するエルシィも含んでいたが、DMメンテナに意味不明だと言われて改名した経緯…

likely/unlikely and readability

GCC and other major C compilers have a extension to give hints for compiler's branch prediction. This is called likely/unlikely. Regarding the readability, it's generally true that less comments is virtue. When I was in the former company,…

java.io.Fileを使うのはやめましょう。java.nio.file.Pathを使いましょう

FileもPathも, ファイルシステム上のノードを表しているには違いないのだが, 大きな違いがある. 前者が, デフォルトファイルシステム(そのOSのローカルファイルシステムのこと)中のノードを表しているのに対して, 後者がもっと抽象的な仮想ノードを表してい…

ファイルへのアトミックなライト

アトミックというのは, ざっくりいうと, いかなるタイミングでサーバのHDDがぶっ壊れたとしても, ストレージから読み取れる状態は, 処理をする前 処理が完了した後 のいずれかであって, 中間的な状態ではないということです. 例えば, みなさんがファイルをオ…

HTTPについて基礎がまとめられてる良書

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)作者: 山本陽平出版社/メーカー: 技術評論社発売日: 2010/04/08メディア: 単行本(ソフトカバー)購入: 143人 クリック: 4,320回この商品を含むブログ (183件) を見る HTTPについて基礎的…

Scalazのマコーレー・カルキン演算子

Scalazは, 以下のような演算子をApplyで定義している: (m1 |@| m2 |@| m3) f. このような, ちょっとかっこいい演算子はsyntax/というディレクトリ以下に実装されている. これはマコーレー・カルキン演算子と呼ばれる. 実装が面白いので紹介する. マコーレー…

ScalazのPimp My Libraryパターン

Scalazは, Haskellのような関数型プログラミングをScalaでやろうというライブラリである. Scalaの勉強としても有用であるため, ざくっと眺めてみた. 私は学生時代にJavaを書いていた時は, Apache CommonsやGoogle Collectionsなどを読んで学んだが, Scalaに…

DKMSが素晴らしい

Dynamic Kernel Module Support(DKMS)は、アウトオブツリーモジュールを公開する上での強力な味方である。 Linuxカーネルは、モジュールを動的にインストールすることが出来る。この用途は主にドライバだが、ファイルシステムやDMターゲットの開発にもこの機…