Skip to content

Instantly share code, notes, and snippets.

@myaumyau
myaumyau / geo.js
Last active March 14, 2021 11:45
[js]位置情報(緯度経度)を操作する機能を提供します。 WGS84 <=> Tokyo geo.js
/*
* 位置情報を操作する機能を提供します。
* [Ref]
* ・計算式 <http://vldb.gsi.go.jp/sokuchi/surveycalc/algorithm/>
* ・二地点の緯度・経度からその距離を計算する:日本は山だらけ~ 技術研究本部 報告書 #1 <http://yamadarake.web.fc2.com/trdi/2009/report000001.html>
* ・02 DATUM <http://homepage3.nifty.com/Nowral/02_DATUM/02_DATUM.html>
* [Usage]
* var tokyoPos;
* // 日本測地系(deg)として位置情報を取得
* tokyoPos = new Geo.Position(35.6554639, 139.7486389, { type: Geo.Datum.Type.tokyo });
@myaumyau
myaumyau / MailAddressValidator.js
Last active September 28, 2015 13:08
[js]メールアドレス検証 rfc5321 || rfc5322 => MailAddressValidator.js
/*
* メールアドレスがRFC 5321, 5322にほぼ(*1)準拠しているかどうかを検証します。
* *1 domain が IPアドレスは不可とか address-literal 非対応とか、一般的なメールアドレスを対象として削ってる
*
* [Reference]
* <http://tools.ietf.org/html/rfc5321>
* <http://tools.ietf.org/html/rfc5322>
*
* [Use]
* MailAddressValidator.validateRFC5321('hoge..hoge@hoge.net'); // false
@myaumyau
myaumyau / DateTime.js
Last active September 28, 2015 21:38
[js]DateTime.js
(function(namespace) {
// local symbol
var _win = window, _ns = _win;
if (namespace) {
var nsArr = namespace.split('.');
for (var i = 0, l = nsArr.length; i < l; i++) {
var ns = nsArr[i];
if (typeof(_ns[ns]) == 'undefined') _ns[ns] = {};
_ns = _ns[ns];
}
@myaumyau
myaumyau / domready.js
Created December 20, 2011 03:26
[js]domready.js
(function(namespace){
// local symbol
var _doc = document, _win = window, _ns = _win;
if (namespace) {
var nsArr = namespace.split('.');
for (var i = 0, l = nsArr.length; i < l; i++) {
var ns = nsArr[i];
if (typeof(_ns[ns]) == 'undefined') _ns[ns] = {};
_ns = _ns[ns];
}
@myaumyau
myaumyau / StringBuilder.js
Last active September 28, 2015 22:48
[js]StringBuilder
(function(){
/**
* コンストラクタ
* @class 可変型の文字列を表します。
* @constructor
*/
StringBuilder = function() {
this.initialize.apply(this, arguments);
};
StringBuilder.prototype = {

#NoSQLデータモデリング技法

原文:NoSQL Data Modeling Techniques « Highly Scalable Blog

I translated this article for study. contact matope[dot]ono[gmail] if any problem.

NoSQLデータベースはスケーラビリティ、パフォーマンス、一貫性といった様々な非機能要件から比較される。NoSQLのこの側面は実践と理論の両面からよく研究されている。ある種の非機能特性はNoSQLを利用する主な動機であり、NoSQLシステムによく適用されるCAP定理がそうであるように分散システムの基本的原則だからだ。一方で、NoSQLデータモデリングはあまり研究されておらず、リレーショナルデータベースに見られるようなシステマティックな理論に欠けている。本稿で、私はデータモデリングの視点からのNoSQLシステムファミリーの短い比較といくつかの共通するモデリングテクニックの要約を解説したい。

本稿をレビューして文法を清書してくれたDaniel Kirkdorfferに感謝したいと思う

@myaumyau
myaumyau / latency.markdown
Created June 4, 2012 02:27 — forked from hellerbarde/latency.markdown
Latency numbers every programmer should know

Latency numbers every programmer should know

L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns             
Compress 1K bytes with Zippy ............. 3,000 ns  =   3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns  =  20 µs
SSD random read ........................ 150,000 ns  = 150 µs

Read 1 MB sequentially from memory ..... 250,000 ns = 250 µs

@myaumyau
myaumyau / yosou.rb
Created June 27, 2012 16:09 — forked from ssig33/yosou.rb
ファーストサーバーの事故についてちょっと具体的に想像してみました
# ホットスタンバイがバックアップじゃないとかその手の話はとりあえず置いておきます
#
# なぜこんな間抜けな事故が起きたかについてだけ想像
#
# 1. いろんなサーバーメンテナンスをスクリプトでやっていた
# 2. スクトプトは随時使い回したり書き換えたりして使っていた
#
# という状態であったと推測する。中小規模自社サービスとかやってるところとかもわり
# とこうなんじゃないですかね。ホスティングでそのレベルでいい加減なのどうなんでし
# ょうか。
@myaumyau
myaumyau / gist:3349263
Created August 14, 2012 13:30 — forked from avalanche123/gist:981817
GitHub Emoji
:+1:
:-1:
:airplane:
:art:
:bear:
:beer:
:bike:
:bomb:
:book:
:bulb:
@myaumyau
myaumyau / README.md
Created August 28, 2012 08:38 — forked from victusfate/README.md
QUICK setup Github Pages + Cloud9 IDE for HTML/CSS/JavaScript hacking

QUICK setup Github Pages + Cloud9 IDE for HTML/CSS/JavaScript hacking

GitHub + GitHub Pages

  1. Get a GitHub account: https://github.com/
  2. Github > Dashboard > New Repository ... https://github.com/repositories/new
  3. Enter a Project Name and Description; click "Create Repository"
  4. On the project page ignore the suggested setup instructions... instead click on the "Admin" button
  5. Check the "GitHub Pages" checkbox... You'll get a popup.
  6. Click the "Automatic GitHub page Generator" button.
  7. Choose a funky colour... or go safe with just white... then click "Create Page" button