自己嫌悪中。誠実さが足りていないという話

「誠実さが長所だ。」などと思い込んでいたが、実際全く誠実さが足りていないと痛感している。 頭で考えていること(思っていること)と、実際の言行が度々矛盾する ことがあるな、と。反省している。特に酔っている時、冷静でない時、余裕が無い時にこそ誠…

深層学習。ディープラーニング。特徴表現学習。基礎とか書籍学ぶのに良さそうなものまとめ

基礎イメージ、理論を知りたい人向け。自分の学習がてら。 Qiita 特にプログラマーでもデータサイエンティストでもないけど、Tensorflowを1ヶ月触ったので超分かりやすく解説 - Qiita 深層生成モデルのtensorflowによる実装(Importance Weighted Autoencode…

シャーディング時のデータ分散、ID採番戦略

データをどう分散するかに加えて、ID採番も考える必要がある データ分散の戦略 fixed mapping id % shard で求めるやつ。shard数が変わると計算結果が変わるのがネック dynamic mapping user_to_shard のようなマッピングテーブルをつくる。shardキーのカー…

シャーディング時のクエリ発行

use db1; select * from table1; 上記でもいいが、複数コネクション張っている場合、1番目と2番目の操作の間に他のコマンドがはいるかも create table test.personal(id int, name varchar(20)); insert into test.personal (id,name) VALUES (11, "abc"); s…

MySQL Scaling with Sharding

Sharding Pinterest: How we scaled our MySQL fleet - pinterest enginnering 8台の物理サーバに1つずつMySQLインスタンス。それぞれのインスタンスは master - master replicated onto a backup host in case the primary fails use master, not slave... …

GlobalDBの意義

DBシャーディングの際に、シャーディングしない GlobalDB の必要性を考えてみた。 auto_increment したい場合。 例えば foo テーブルの id (auto_increment) が bar baz など別テーブルの shard_key になるケース。この場合fooテーブル自体はシャーディング…

MySQLにおけるレプリケーション遅延の傾向と対策

レプリケーションは非同期。 漢(オトコ)のコンピュータ道: MySQLにおけるレプリケーション遅延の傾向と対策 遅延の原因 ネットワークの遅延 巨大なトランザクションを実行した スレーブの負荷が高すぎる

MySQL Sharding: Tools and Best Practices for Horizontal Scaling

MySQL Sharding: Tools and Best Practices for Horizontal Scaling from Mats Kindahl www.slideshare.net shardingの意味 Smaller index size Smaller working set working set innodb_buffer_pool_size の大きさとでも考えておけば良い。読み書き共にこの…

Dispose

C#

Dispose 正式な実装 class SomeClass : IDisposable { public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if (disposing) { // 管理(managed)リソースの破棄処理をここに記述します…

継承よりコンポジションとは

どちらが良いという話ではない。ただし、安易に継承を多用するなという話だ。 継承が適する場面 ほぼ下記の1ケースのみ。 サブクラスがスーパークラスの全ての性質を持つ場合 よく言われる「is-a ならば継承、 has-a ならばコンポジション」と意味合いは同…

C#におけるクラス型を引数で受けた時のnull判定

C#

タイプセーフを保証するために、 object ではなくちゃんとしたクラス型で引数を受けたいことがある その際に 指定しなかったパラメタ をどうやって弾くかという話 例えば // a class public class Person { public string Name { get; set; } public int Age…

MySQLパーティショニング

勘違いしておりました。テーブル名の末尾に _1 とかつけるテーブル分割がパーティショニングだと思っておりました。。。 それはどちらかと言うとシャーディング(水平分割)ですね 実際には、SQL(ALTER文)だけで実行可能な機能でした。 有効なケース カー…

doxygenとgraphvizによるドキュメント生成

C#

doxygenを使用してC#のドキュメントを自動生成する(その2) qiita.com

dapperはListでwhere-inを表現できる

C#

http://kiyokura.hateblo.jp/entry/2013/12/03/084248

What is the difference between “LINQ to Entities”, “LINQ to SQL” and “LINQ to Dataset”

C#

stackoverflow.com all of them are LINQ - Language Integrated Query - so they all share a lot of commonality. All these "dialects" basically allow you to do a query-style select of data, from various sources. Linq-to-SQL is Microsoft's firs…

C#で動的にコンストラクタを取得(Expression, 式木を使って)

C#

www.palmmedia.de qiita.com neue cc - C#での動的なメソッド選択における定形高速化パターン Don’t use Activator.CreateInstance or ConstructorInfo.Invoke, use compiled lambda expressions | Notes of a Software Pogromist

オブジェクト指向の基礎。同じインスタンスを異なるクラスから参照する

C#

https://www.google.co.jp/#safe=off&q=use+same+instance+c%23

IEnumerable<>, IList<>の使い分け

C#

単に列挙するだけならIEnumerable、リストの参照や操作を行う場合はIList型を指定させ、意図の違いをコード上に表現します。 内部実装を読む事無く、すばやくメソッドの「意図」を把握出来るのはどちらでしょうか? IEnumerableのように、より制限された型を…

Disposeの書き方, usingステートメント

C#

file操作は必ずtry - catch - finally finallyの中でClose()する。 こういうパターン(try句の中でリソースに対して操作を行い finallyでDispose()する)を「Disposeパターン」という。 だが、毎回手でそのパターンを書くのはだるい → usingステートメントと…

ParallelとTask(aync, await)の違い

C#

I/O待ちをするような処理は、非同期版のメソッドを使って、スレッドを作らずに待つことが重要 (非同期版 = Taskクラス+async, awaitによる「待機可能」な書き方のこと) Parallel.ForEach(Common.GetQueries(context, keys), q => { var ret = q.Execute(); …

RX概論

saneyukis.hatenablog.com

MessagePackプロトコル再考

blog.fenrir-inc.com C++ の実装の話ですが、構造体に直接シリアライズ・デシリアライズでき、無駄なコピーが起こらないように、テンプレートを駆使して実装されており、JSON とは比べものにならない速さ // データ構造 struct mystruct { std::string m_str…

MessagePackについて調べた

MessagePack って何? | おおたの物置ota42y.com バイナリでデータを保存するフォーマットです。 JSONと比べると、保存した状態の可読性を犠牲にする代わりに、 より早くて小さいフォーマットになっています。 また、汎用的なフォーマットのため、 いろんな…

io.js と node.js の統合で書き方は変わるか

Node.js v4がリリースされたらコードの書き方でどこが変わるか? - なっく日報yukidarake.hateblo.jp

InnoDBで行ロック/テーブルロックになる条件

blog.livedoor.jp ユニーク制約 or インデックス が貼られているカラムで検索した場合、行ロック それ以外 のカラムで検索した場合、テーブルロック インデックスの値によってロックされる=SCANされた行はすべてロックされる qiita.com ロックには 排他ロッ…

PM2でサーバ再起動時にNodeプロセス自動起動

PM2/ADVANCED_README.md at master · Unitech/PM2 · GitHub 起動用ファイルを作る $ pm2 startup centos -u <vagrant | ex2-user...> chkconfig, init.dに登録される pm2 [save | dump] dumpされた状態を復元するので、PM2にタスクを登録した状態で実行 /etc/init.d/pm2-init.sh の </vagrant>…

C#における複数スレッド並列処理(Parallel, PLINQ)

C#

C# による並列プログラミング | iSUS github のサンプルコードが多い。 C#によるマルチコアのための非同期/並列処理プログラミング - Google ブックス 以下の様な書き方で並列「操作」を複数スレッドを利用する例を示している # https://msdn.microsoft.com/…

C#における非同期処理 -Taskクラスとasync/await-

C#

Async および Await を使用した非同期プログラミング (C# および Visual Basic) ※並列処理(Parallelクラス、Parallel LINQ)は別 基本形 // The following line creates and starts the task. var myTask = someWebAccessMethodAsync(url); // While the ta…

データベースでLIMITが必要な理由

たとえば,フルスキャンを行うSQLがアクセスの対象とする表のサイズが10GBの場合を考えてみてください。この場合,SQLの中でどのような絞り込み条件が書かれていたとしても,Oracle Databaseは10GBすべてをストレージに要求します。 大規模なデータ処理が必…

What Your Computer Does While You Wait

コンピューターの内部構造を「レイテンシー」と「スループット」という視点から解説。 非同期I/Oのメリットを本当の意味で理解するために大いに役立つ What Your Computer Does While You Wait - Gustavo Duarteduartes.org