- 主題
- 数千万オーダーの文字列集合(およびマップ)を如何にサイズ効率良く表現するか、の話
- 諸事情で集合をメモリ上に保持したいことがあるが、サイズは節約したい
- 実際にはサイズのみを追求するのではなく、諸々のトレードオフを加味しつつバランスを取る
- 今回はそれを実現するための方法の一つである 簡潔データ構造 について説明する:
{-# LANGUAGE TypeSynonymInstances #-} | |
data Dual d = D Float d deriving Show | |
type Float' = Float | |
diff :: (Dual Float' -> Dual Float') -> Float -> Float' | |
diff f x = y' | |
where D y y' = f (D x 1) | |
class VectorSpace v where | |
zero :: v |
# Generate a BaseSystem.dmg with 10.13 Install Packages | |
hdiutil attach /Applications/Install\ macOS\ 10.13\ Beta.app/Contents/SharedSupport/InstallESD.dmg -noverify -mountpoint /Volumes/highsierra | |
hdiutil create -o /tmp/HighSierraBase.cdr -size 7316m -layout SPUD -fs HFS+J | |
hdiutil attach /tmp/HighSierraBase.cdr.dmg -noverify -mountpoint /Volumes/install_build | |
asr restore -source /Applications/Install\ macOS\ 10.13\ Beta.app/Contents/SharedSupport/BaseSystem.dmg -target /Volumes/install_build -noprompt -noverify -erase | |
cp -R /Volumes/highsierra/Packages /Volumes/OS\ X\ Base\ System/System/Installation | |
hdiutil detach /Volumes/OS\ X\ Base\ System/ | |
hdiutil detach /Volumes/highsierra/ | |
mv /tmp/HighSierraBase.cdr.dmg /tmp/BaseSystem.dmg |
2016-01-23
@voluntas
0.1.2
#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に感謝したいと思う
data Cofree f a = a :< (f (Cofree f a)) | |
-- Fix point | |
newtype Mu f = Mu { unMu :: f (Mu f) } | |
extract :: Cofree f a -> a | |
extract (a :< _) = a | |
-- catamorphism | |
cata :: Functor f => (f b -> b) -> Mu f -> b |
1: i, jの書き違い (例: for(int i = 0; i < n; i++) for(int j = 0; j < m; i++) ) | |
2: 問題文の読み違え | |
3: 変数名の重複 | |
4: 提出するコードを間違える | |
5: 初期化忘れ | |
6: 計算量の見誤り | |
7: builtin関数の未定義動作 (例: __builtin_ctz(0) ) | |
8: 二分探索の最大値・最小値の見誤り | |
9: forの++,--を逆にする (例: for(int i = n - 1; i >= 0; i++) ) | |
10: long longなのにint用の関数を使う |
2018-09-21
18.9.3
2018-09-25 21:10-21:30
さくらインターネット 大阪本社