c4se記:さっちゃんですよ☆

.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)

.。oO(此のblogは、主に音樂考察Programmingに分類されますよ。ヾ(〃l _ l)ノ゙♬♪♡

音樂はSoundCloud等バラバラの場所に公開中です。申し訳ないがlinkをたどるなどして探してください。

考察は現在は主に此のblogで公表中です。

programmingは、ひろくみせるものはGitHubで、個人的なものはBitBucketで開発中です。

c4se

private-values : Delete private values and private files from your git repos.

private-values // Speaker Deck

private-values: 秘密情報や個人的なfileを共有リポジトリから隠す爲のツールで紹介したtoolだ。今あたらしい機能を一つ考へてゐる。複數のteamで使へるやう、site (假り名) と云ふ概念を入れやうと思ってゐる。後方互換性は保てる見通しでゐる。

Serverless Frameworkとは何か、何故使ふのか

Serverless Frameworkを本番環境に投入するために // Speaker Deck

Tutorialは以下に書いた。本當に簡單なのだ。 Serverless Framework (1.0) でAWS LambdaとAWS API Gatewayを設定する、單純なサンプルを書いた

纏め丈轉記しておかう。

What?

サーバーレスアーキテクチャ
Functionを第一級市民として扱ふインフラ設計
Function
1つの入力と1つの出力を持ち、狀態を變更する
Serverless Framework
FaaSと周邊serviceをdeployするtool

Why?

サーバーレスアーキテクチャ
インフラ管理costが激減する
FaaS
Applicationとインフラ管理を分離出來る
Serverless Framework
FaaSへのdeployが凄く簡單になる

FaaS (Function as a Service) の基本的なgraph

f:id:Kureduki_Maari:20161120141716p:plain

多量のデータをストリームして省メモリで統計処理するgemを作った

logを撫でまはし乍らごそごそしてゐたら出來てゐたのでgemにした。

github.com

N個のデータから成るlarge_dataが在りRubyのEnumerableとして取得出來る時、標準偏差や分散等を計算しやうとしたら、単純にやるとN個のデータをディスクに置かなければならない。全体の平均を計算した後でなければ標準偏差は計算出來ないから、得られたN個のデータを何処かに保存しつつ平均を得た後、保存したN個のデータを読み出しつつ標準偏差を計算してゆく。2 pass掛かってゐる。何の爲のEnumerableだったのか。

stream_statを使へば、

p StreamStat.new(large_data).inject { |_a, stat| stat }.sd

と1 passで標準偏差を計算出來る。上記injectの中のstat變數は、途中結果を保存してゐる。今は、平均 (算術平均)・分散・標準偏差・最大値・最小値を計算してある。avg・variance・sd・max・minの名のメソッドで參照出來る。メモリーには幾つかの方法に就いて浮動小數点數計算の誤差を検討し、總數・平均・二乘の平均・最大値・最小値の五つを保持してゐる。データ數がどれだけ増えようが五つだけで濟む。

今後は、中央値と最頻値を計算しやうと思ふ。中央値や最頻値そのものは、N個のデータに対しN個の情報を保存しなければならず、省メモリに計算出來ない。そのものではなく類似を探してゐる。確率的な計算を行なふ類似は幾つか在るやうだ。それも検討するし、確率的なオンラインアルゴリズムでなく、幾何学的な類似でオンラインで計算出來るものも探さうと思ふ。