KZKY memo

自分用メモ.

python: socketio-client

jsからだけではなく,pythonからsocketio serverにリクエストしたい.1. python-socketio-client 2. python-socketio-sever 3. jsという順にメッセージを送りたい 環境 ubuntu 14.04 python 2.7 server: flask-socketio client: python socketio-client Inst…

KVM How-To

kvm

How-To Disk Formatの確認 qemu-img info disk.img Disk作成 qemu-img create -f qcow2 ${disk-name}.${qcow2} ${n}G Disk Copy cp –sparse=never olddisk.img newdisk.img Disk Convert qemu-img convert -O raw file.qcow2 file.img qemu-img convert -O q…

python: pandas 基本

基本 Rからnumpyに入った人にとってDataFrameがないのは痛い. pythonのlibraryにpandasというのがあって,それでDataFrame-likeなオブジェクトを扱える. データ構造 -------------------------------------------------- Dimensions Name Description ----…

python: Supervisord 基本

Supervisord ClouderaManagerのこれを使用してHadoop Serviceを起動している. subprocessesの管理もできるので分散システムに関しては向いている. 日本語の記事がかなりまとまっているので基本はそれを参考 調べるときは本家を見る Configはini形式 環境 U…

Celery 基本

前提 OS: ubuntu14.04 インストール sudo apt-get install rabbitmq-server python-celery python-celery-doc 基本 celeryはmessage passing framework message brokerを必要とする Broker 選べる RabbitMQ Redis SQLAlchemy, Django Database (not recommen…

Flask-Auth 基本

Pluginの列挙 DIY Flask-Login Flask-Auth FlaskSecurity DIY http://blog.miguelgrinberg.com/post/restful-authentication-with-flask Flask-Login https://blog.openshift.com/use-flask-login-to-add-user-authentication-to-your-python-application/ …

Flask-SocketIO 基本

Installation pip install flask-socketio まずはこちらをやる 短いから WebSocket 基本 Communication protocol in HTML5 Permanent connection Bi-directional communication Either client or server can initiate communication Flask-Socketsとの違い F…

Flask-SQLAlchemy 基本

SQLAlchemyの基本 ORM: Object Relational Mapper DMP: Data Mapper Pattern; classes mapped to a database Quick Start https://pythonhosted.org/Flask-SQLAlchemy/quickstart.html で事たりる hello_sqlalchemy_mysql.py from flask import Flask from f…

Flask基本

Installation 環境 Ubuntu14.04 pip install $ pip install Flask $ python hello.py * Running on http://localhost:5000/ Getting Started Super Basics from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World…

python: pairwise-distance

numpyでfor-loopしながらpairwise distanceを計算すると非常に遅い. pairwise distanceはgram行列のカーネルにrbfを使った時に絶対に出てくるので,高速計算は必須要件. 比較 普通のfor-loop 行列計算ベースで一気に行う方法 numbaで比較する 環境 Ubuntu1…

python: 行列演算の高速化

こことここにinspireされてnumbaを試した. 結論から言うと超早い.ごりごりの数値計算をするなら絶対使うべき. Installation Ubuntu14.04でanacondaは使わない llvm3.5 / llvmlite sudo apt-get install -y llvm3.5* sudo apt-get install -y libedit-dev …

GPU/CPUの計算速度比較 02

ここに載っている一般的なlogistic regressionを解くとき,GPU vs CPUで速度比較したのでその時のメモ. 実験環境 計算リソース GPU: GeForce GTX 780 CPU: Intel(R) Xeon(R) CPU X5680 @ 3.33GHz 実験1 設定 #dims = 784 (固定: same as in sample code) #sa…

GPU/CPUの計算速度比較

全サンプルの内積計算をNumpy (CPU) vs Theano (GPU)で速度比較をした時のメモ.実際のサンプルを書く前に,普通に計算する場合を考える.普通にd-by-nの行列があったら,すべてのサンプルの内積計算の計算量は で,nに関してsquare-order.基本的にこういっ…

Theano BLAS周りのリンクエラー

こんな感じのエラーがでたら /usr/bin/ld: cannot find -lf77blas. collect2: ld \xe3\x81\xaf\xe3\x82\xb9\xe3\x83\x86\xe3\x83\xbc\xe3\x82\xbf\xe3\x82\xb9 1 \xe3\x81\xa7\xe7\xb5\x82\xe4\xba\x86\xe3\x81\x97\xe3\x81\xbe\xe3\x81\x97\xe3\x81\x9f. ',…

Java: src/main/resource からファイルを読み込む

タイトルの内容を質問されて,Spring/log4jを使ってしかやったことがないことに気付き調査した.ClassLoader.getSystemResourceAsStreamを使う. src/main/resources/subres/resource_file.prop key0=val0 key1=val1 key2=val2 ReadResourceMain.java packag…

REST API まとめ

REST API設計に関してまとめようと思ったけれど, 既に誰かがやっていたのでまとめofまとめになってしまうため,簡単なメモとして残す.素晴らしいまとめ. REST APIとは REST APIとはときかれれて,一文で答えるならば, 「EntityやResourceに対してCRUD操作…

CUDA Toolkit and Driver Installation for CentOS6.6

GeForceが手に入ったので設定を行う. OSは,CentOS6.4のminimalをインストール画面でサーバー設定として入れてからupgradeしてCentOS6.6にした.取り敢えず,Docchap.2 pre-installation action chap.3 package manager installation chap.6 post-installat…

Scala: メソッドの関数リテラル化

クラスの中で同じ名前のメソッドを使うが,振る舞いを切り替えたい場合がある. 例えば,文字列によって,同じメソッド名でも振る舞いを違くしたい. もっと具体的にいうと,update_alphaをいうメソッドを呼ぶが,変数ver: Stringに指定されているver, ver1:…

Theano: Logistic Regressionまでの道のり

Theanoの基本的シンボル操作から,基本的な微分を経て,Logistic Regressionまでの道のり. 基本 installation ubuntu14.04の場合 $ sudo pip install theano version確認 $ python -c "import theano; print theano.__version__" 0.6.0 import 取りあえずim…

怒涛のAkka: Futures

基本 Futureはakka pgkではなくてscala pkgのしたにある. concurrent操作結果を受け取るときに使用されるがblockingでも使える. Execution Contextが必要 Actor内ならimport context.dispatcherでExecutionContextを使うのも良い Timeoutも必要 Await.resu…

怒涛のAkka: Actor DSL

REPLなどで使う. import akka.actor.ActorDSL._ import akka.actor.ActorSystem implicit val system = ActorSystem("demo") val a = actor(new Act { become { case "hello" ⇒ sender() ! "hi" } }) become/unbecomeやlife-cycle manegementも可能らしい.…

怒涛のAkka: Testing Actor Systems

基本 Synchronous/Asynchronousの2つがあると考えて良い. Synchronous Test メッセージの順序が決定的かつコンカレンシーを考えない場合のテスト基本は import akka.testkit.TestActorRef import scala.concurrent.duration._ import scala.concurrent.Awai…

怒涛のAkka: FSM

基本 Finate State Machineとは 状態 イベント アクション のtripletで構成される.ある状態の時にあるイベントが起こるとあるアクションをとって別状態 に移動するというマシン.ただし,とり得る状態は有限. APIと設計 Event/State/Dataを定義する. Even…

怒涛のAkka: Routing

基本 Router Actorは別のActorにラップして使用する. 理由は,Router ActorはRouter Actorをextendして使うわけではなく,実装も普通のActorとは違うため,別のActorにラップしてsupervised strategyを適用できるようにしたいから. Routerの基本的使い方 W…

怒涛のAkka: Mailboxes

1 acotr: 1mailboxだけれども,BalancingPoolのようにそうでない場合もある. message queueのタイプをアクターに要求 RequiresMessageQueueをタイプ付きでインプリ import akka.dispatch.RequiresMessageQueue import akka.dispatch.BoundedMessageQueueSem…

怒涛のAkka: Dispatchers

Actorを動かしているのがMessageDispatcher. すべてのMessageDispatcherのインプリがExecutorContext. actor systemの作成時にExecutorContextを渡すとそれがシステム全体のDispatcher 指定がなければ,defaultはfork-join-executor.Dispatcherは,mailbox,…

怒涛のAkka: Fault Tolerance

Fault Handling in Practice ここに書いてあるダイアグラムとコードを読むべき.Fault-Toleranceなsystemの設計指針がわかる. Creating a Supervisor Strategy こんな感じでStrategryを定義できる import akka.actor.OneForOneStrategy import akka.actor.S…

怒涛のAkka: Typed Actors

When to use Typed Actors Active Objectの実装. Active Objectはメソッド呼び出しとメソッド実行をそれぞれ別のスレッドにするデザインパターン.インターフェイスを持つクラスをTyped Actorを使うことで非同期にできる. こうするとActorの実装とOO-likeな…

怒涛のAkka: Actor編

Akka Scala DocのActorsを大体読んで噛み砕いたのでそのメモ. Actors 怒涛のAkka: Actors - KZKY memo 怒涛のAkka: Actors - KZKY memo Typed Actors 怒涛のAkka: Typed Actors - KZKY memo 怒涛のAkka: Typed Actors - KZKY memo Fault Tolerance 怒涛のAk…

怒涛のAkka: Actors

Actor API extends Actorしたときに使える APIの説明 context.actorOfでchild actorつくる start/stopのhook etc. Actor Lifecycle 図を見る 登場人物 ActorPath ActorSelection pathの表現 actor refの名前解決 ActorRef incarnationの表現 pathを持つ uid…

Scala Scalatra サンプル

ScalaのWeb Application Fraworkに関して調べ,Scalatraは比較的簡単に書けそうだったので,Scalatraを使って書くWeb Applicationの例をまとめる. 環境 Eclipse Juno Scala IDE 4.0 Scala 2.11 Gradle Build インストール (giter8経由) Javaは入っている前…

Scala Spray

基本 特徴 完全非同期のノンブロッキング Actor/Futureベース ハイパフォーマンス ライトウェイト モジュール テスト可能 モジュール sprayはフレームワークという扱いにはしたくないようで, sprayはライブラリのスイートと言っている. spray-xxxのように…

Scala RESTful Web Server調査

ScalaのWAFはいっぱいあるようだがどれがいいか調べてみた.ここを参考にGoolg Trendで検索.トレンドが皆無なものは除去してトレンドがこんな感じ. 全体トレンド play >> spray > lift >> others 最近 spray > lift 全体ボリューム play > lift >> spray >…

Scala Json4s

ooyalaの記事だと,json4sを推奨していた. パフォーマンス比較もしている. json4s jacksonとnative(pure scala)がある. json4s-jacksonを使う. Producing Json 基本的に (key -> value) ~ (key -> value) のように,kvのペアを結合していく ProcudeJsonSa…

Slick 入門

現時点で,2.1が2系最新だが3系が出た. ここでのまとめは,2.1.0のドキュメントを参考にしている. 基本 Collection-likeにqueryを扱える.普通のSQLも扱える. サポートしてるDB 詳しくはここDriver Capabilities DB2 (via slick-extensions) Derby/JavaDB…

Python: Flake8

Cask経由でflycheckを入れるとsyntax checkerはflake8になっているよう. flake8のデフォルトの設定だと警告を出し過ぎて,目に良くないので抑制する設定. $ vi .config/flake8 [flake8] ignore = E226,E302,E303,E41,C0326,W0621,C0111,C0103,W0702,W0703,…

Scala: call-by-name

関数の引数に"f: => R"を入れて,関数内で名前で呼び出す( = call-by-name) こうするとブロック,値を渡せる scala> def foo(f: => String) = {println(f)} scala> foo {val x = "10"; x} scala> foo ("10")

Scala Test

基本 Eclipse + Scala開発で,Testをするのにどうしたらよいのか. 簡単にまとめた. Scala Test Installation Scala IDE for Eclipse この手順は,多分いらない. market placeから取得するScala IDEではScala Test Pluginがはいってないよう help -> insta…

Scala: call-by nameの実行

関数リテラルを受けとる関数で,関数内で関数リテラルに引数を指定せずに,関数リテラルを実行する. val a = 2 val b = 3 val n = 10 def func(n: Int, f: (Int, Int) => Int) = {n * f(_: Int, _:Int)} プレイスホルダーを使う.関数が返ってくるのでそれ…

Scala Breeze 触った

ScalaでLinear Algebraic操作ということでMLlibも使ってるbreezeを触った. 用語 Broadcasting column-wise, row-wiseの操作をしたい時 Linear Algebra Cheating https://github.com/scalanlp/breeze/wiki/Linear-Algebra-Cheat-Sheet を見る 注意する点 カ…

Scala Reflection まとめ

導入 Scala2.10からreflectionの機能が拡張された Scala 型とジェネリックスに対する完全な実行時リフレクション マクロ という形でコンパイル時リフレクション機能 Scala の式を抽象構文木へとレイファイ (reify) する機能 記事からの引用 他の JVM言語同様…

Ansible まとめ

導入 サーバプロビジョニングにおけるOrchestration/Configurationに相当 chef/capistrano/fabric/pdshに代替可能 冪等性があるが半自動(ユーザがファイルの有無で条件付する)のモジュールもある 基本 host/playbook/moduleで構成される host ini形式でhost…

Spark on YARN

Spark on YARNのまとめ Sparkのアーキテクチャとしてクラスタマネージャーはプラッガブル. Spark Standalone 登場人物/役割の総括 Master/Slave (or Wokrer) クラスターマネジャー Driver SparkContextを持っているmainクラス Executor ワーカーで起動され…

Hadoop Yarnの基本

YARN SparkのYARN-modeを使うかもしれないので基本をメモ. 1つのJob, DAG of JobsなどのApplicationをクラスターで実行させることが可能 Applicationは,MapReduceに限らない JobTrackerの役割をリソースマネジメントとスケジューリング/モニタリングに分割…

Scala akka 導入

基本 http://www.slideshare.net/sifue/akka-39611889が超わかりやすい. 並列処理の基本とJavaのconcurrent packageとを引き合いにして, Akka Documentをかなり完結にまとめている. Akkaとは 状態とアドレス,MailBoxをもった1つのThreadであるActorを提…

Scala Main

Scala でdef main書かなくてもいいのを知らなかった.いままで object SampleApp { def main(args: Array[String]) = { // processing somthing } } あるべき姿 object SampleApp extends App { // processing somthing

Java Reflection: Call by Name Singleton Class

Call by nameでクラスを呼ぶのは,Javaでは簡単 Class clazz = Class.forName(className); clazz.newInstance() しかし,classNameがシングルトンだったらどうなるかというと, 普通シングルトンのコンストラクタはprivateなのでException発生.ではどうする…

Cassandra 入門

序論 2011の記事では,Facebook/Twitterが使っているらしい Facebook (2011) 5億人規模 150Tバイト以上のデータ量 ユーザメッセージの検索機能(Inbox Search) 150ノードのCassandraクラスタ 基本 CAP定理のAPを満たす Cに関しては,遅延とのトレードオフで…

Cask

Emacsでコード書くときのプロジェクトマネジメントツール yasnippetやflycheck等の便利ツールをバンドルで入れてくれる. 今まで知らなかったのがばかみたい. Installation (ubuntu14.04) $ curl -fsSkL https://raw.github.com/cask/cask/master/go | pyth…

Spark Streaming 4

Fault-tolerance Semanticsについての話.基本はここのまとめ Spark RDDのfalut-tolerence semantics Spark RDDのfalut-tolerence semanticsのおさらい. イミュータブルで決定的に再計算可能で分散化されており,自分の決定的操作の系譜を覚えている. ワー…