Fedora17でAmazon Elastic MapReduce Ruby Clientを使った際のメモ

Amazon Elastic MapReduce Ruby Clientがruby 1.8用であるため、Fedora17では使えない。 ruby1.8をインストールしてAmazon Elastic MapReduce Ruby ClientをFedora17で使えるようにした。 なお、https://github.com/rbotzer/elastic-mapreduce-rubyにruby1.9…

Fedora17でCDH4をインストールし、擬似分散モードを起動させた際のメモ

Fedora17でCDH4をインストールした。 また擬似分散モードでの起動を確認した。 インストール JDK6をインストールする CDH4がOracleのJDK6に依存しているので、 http://www.oracle.com/technetwork/java/javase/downloads/jdk6u37-downloads-1859587.htmlより…

パラメータの事後分布計算を実装した

PRML3.3.1のパラメータの分布を読んで、パラメータの事後分布計算を実装した。 事前分布、事後分布、尤度関数の関係 観測データが得られた時に、そのデータがパラメータに依存していたとする。 この時、観測データがあるパラメータの条件下で得られる確率は…

PRML3章の線形回帰を実装した

PRML3章の線形回帰を実装した。ベイズ線形回帰は未実装。中谷さんのgihyo.jp連載記事「機械学習 はじめよう」 第11回 "線形回帰を実装してみよう"が非常に参考になりました。http://gihyo.jp/dev/serial/01/machine-learning/0011?page=1実装は以下の通り。…

形態素解析エンジンMeCabをFedora17でHaskellから使う際のメモ

Fedora17でのMeCabのインストールとUTF-8用の設定方法、 及びHaskellからMeCabを使う方法を紹介する。以下のページを参考にさせて頂きました。 http://kane.meta-scheme.jp/article/37183101.html MeCabのインストールと設定 Fedora17にはmecabパッケージが…

Haskellの線形代数用ライブラリで多変量ガウス分布を計算した際のメモ

Haskellで行列計算したい場合にはhmatrixという線形代数用ライブラリが使える。 この記事では、行列計算でよく使いそうな手続きを紹介する。 また、それらの例として多変量ガウス分布を実装する。 hmarixのインストール 例によってcabalでインストールする。…

多項式曲線フィッティングを実装してみた

PRMLの"1.1 例:多項式曲線フィッティング"を読んだ。 実際に実装して、科書通りにフィッティング出来ることを確認した。 多項式曲線フィッティングの実装 xを0~1の間で10個選び、それぞれのxに対してsin(2πx)を計算した値にノイズを加えて訓練集合tを作成す…

HaskellからGnuplotを呼び出してチャートを描く

gnuplot用のパッケージをインストールして、 import Graphics.Gnuplot.Simple するだけ。とても簡単。 パッケージのインストール $ cabal install gnuplot チャートを描く まずはGraphics.Gnuplot.Simpleをインポートする。 $ ghci GHCi, version 7.0.4: htt…

ghcでの相互依存のあるモジュールのimport方法について

1. 相互依存のあるモジュールは、そのままではコンパイル出来ない。 以下のような相互依存のあるコードのコンパイルを試みる。Foo.hs: module Foo(Foo, getData, idProduct) where import qualified Bar as B data Foo = Foo { name :: String, id_ :: Int }…

linuxのスレッド生成処理に関するメモ

linuxのスレッド生成処理に関するメモ。 sys_cloneから呼び出されるdo_forkあたりについて。 1. スレッドの生成 以下のプログラムを実行すると、スレッドを一つ生成する。 #include <stdlib.h> #include <stdio.h> #include <pthread.h> #include <unistd.h> #include <sys/types.h> #include <sys/syscall.h> #define THREADMAX 1</sys/syscall.h></sys/types.h></unistd.h></pthread.h></stdio.h></stdlib.h>…

SystemTap Beginners Guide 5.3と5.4のメモ

5.3 プロファイリング 以下のセクションでは、関数呼び出しの監視によりカーネルの活動状況を分析する方法を説明する。 5.3.1 関数呼び出しを数える このセクションでは、カーネルが30秒間に何回カーネルの関数を呼び出すのか特定する方法について説明する。…

SystemTap Begginers Guide 5.2 のメモ

5.2 ディスク 以下のセスクションではディスクとIOの状況について監視するスクリプトを説明する。 5.2.1 ディスク読み書きトラフィックの集計 disktop.stpは実行中のプロセスで最も重いディスク読み書きをしているプロセスを特定する。 #!/usr/bin/stap # # …

SystemTap Beginners Guide 5.1 のメモ

Useful SystemTap Scripts この章では、SystemTap スクリプトを紹介する。 これらはsystemtap-testsuite RPMをインストールすると、/usr/share/systemtap/testsuite/にインストールされる。 5.1 Network 以下にネットワークに関するスクリプトを紹介する。 5…

SystemTap Beginners Guide 4章のメモ

User-Space Probing SystemTapはカーネル向けに作られたが、ユーザー空間のプローブも可能になった。 SystemTapのユーザ空間プローブには、カーネルのutrace拡張が必要である。 詳細は http://sourceware.org/systemtap/wiki/utrace で確認せよ。 現在のカー…

Systemtap Begginers Guide 3章のメモ

Understanding How Systemtap Works SystemTapは実行中のLinuxシステムを、単純なスクリプトで詳細に調査出来るように設計されている。SystemTapスクリプトの裏側にある主なアイデアは、イベントとハンドラである。 SystemTapがスクリプトを実行すると、Syst…

Systemtap Begginers Guide の1章と2章のメモ

Introduction SystemTapは、主にカーネルに対するトレースと探査をするツールである。 1.1 ドキュメントの目標 SystemTapは実行中のカーネルを監視するための機構を提供する。 SystemTap無しでは、実行中のカーネルを監視するのに非常に手間がかかる。 また…

単純なキャラクタ型ドライバを実装した際のメモ

単純なキャラクタ型ドライバsimple_charを作成した。 simple_charの機能概要 キャラクタ型ドライバsimple_charは以下のような機能を持つ。 ドライバsimple_charは、デバイス毎にバッファを持つ。 プロセスはread,writeを使って、そのsimple_charのバッファに…

linuxカーネルが提供するリストの使い方について

linuxカーネルではlinux/list.hでリストを提供している。 リストはlist_head構造体と、その構造体のオブジェクトを操作するための関数によって構成される。 list_head構造体は以下のように定義されているため、一見しただけでは任意のデータをリストとしてど…

Fedora17でcyclictestを実行した際のメモ

Fedora17でリアルタイム性能テストプログラムcyclictestを動かしてみた。 計測対象 対象のカーネルは以下の通り。 デフォルト: Fedora17のデフォルトカーネル3.4.0 PREEMPT有効: 3.4.0でCONFIG_PREEMPT=y, CONFIG_NO_HZを無効にしてビルドしたカーネル Fedo…

Fedora17でsystemtapを実行する

Fedora17でsystemtapを実行出来るようにするまでの手順のメモ環境は以下の通り。 $uname -rs Linux 3.4.0-1.fc17.x86_64 $cat /etc/redhat-release Fedora release 17 (Beefy Miracle) $stap -V Systemtap translator/driver (version 1.7/0.153 non-git sou…

C/C++のコーディング中に静的解析を実行する。

目的 コーディング中にコンパイルと静的解析を実行し、問題箇所を早期に発見する。 方針 emacsとflymakeを使う。 flymakeのマニュアルに従って、make check-syntaxが呼ばれた時に、 C言語であればsplintを、C++であればcppcheckを呼び出すように設定する。 …

MIT schemeのエディタedwinの設定

MIT schemeのエディタedwinをlinuxで動かす際のメモ。 MIT schemeをmake installしたら、schemeコマンドでMIT schemeが起動します。 Windowsと同じようにedwinを使う場合には、以下のように--editを指定します。 scheme --edit ただこれだけだとフォントの色…

第4回スタートHaskellの予習

第四回スタートHaskellの予習をしました。第四回スタートHaskellでは8章と9章をやるそうですが、 今回は8章の練習問題のex1, ex2, ex6, ex7しか出来ませんでした。

4.3.3 amb評価器の実装とcall-with-current-continuation

SICP 4.3.3を読んでamb評価器を実装しました。 またほとんど教科書からの書き写しですが、そこそこちゃんと動くと思います。 (amb-loop)を評価して評価器を実行します。 ここのポイントはreadマクロで得られた木をanalyzeすると、 継続による処理のシリアラ…

bridgeでDHCPを使うように設定する

kvmでゲストOSをネットワークに参加させる場合にはbridgeを使います。 bridgeを使ってDHCPでIPアドレスを取得するよう設定するのに手間取ったのでメモを残しておきます。 OSはfedora15です。 結果はいまいち 今回の設定でDHCPでIPアドレスを取得する事ができ…

SICP4.1にとりかかる前に足し算evalを作る

SICP4章ではschemeの評価器を作ります。 SICPの4.1を読んでそのまま実装するだけでクロージャを装備した簡易schemeが出来上がります。 しかしそれだけにハードルが高くなるためなかなか先に進めなくなってしまう場合も多いそうです。 そこで今回は足し算を実…

第2回スタートHaskellの補足演習問題と宿題をやりました

第2回スタートHaskellの補足演習問題と宿題をやりました。 補足演習問題 Google グループこの補足演習問題では関数の型をなるべく書こうとしたのですが、 どうも演習14の関数fの型が書けません。 だれか詳しそうな人に聞いてみたいと思います。 畳み込みの…

第2回スタートHaskellの範囲を予習しました。

第2回スタートHaskellの範囲の演習問題を解いてみました。 間違っている箇所が多々あると思いますが、ここに載せておきます。第2回スタートHaskellの範囲はプログラミングHaskellの以下の章です。 第5章 リスト内包表記 第6章 再帰関数 第7章 高階関数 5章 …

第1回スタートHaskellの範囲を予習しました。

プログラミングHaskellの2章から4章まで予習しました。 つまづいた点や練習問題の解答を書いておきます。 間違っている箇所が多々あると思います。 第2章 はじめの一歩 関数適用の仕方とかコメントの書き方といった基本中の基本です。 この章でつまずいた…

Boost.Poolでメモリ確保に要する時間について

Boost.Poolを使ってメモリを確保するのにどのくらいの時間がかかるか調べてみた。 常に一定時間で、かつ、newよりも高速にメモリを確保出来るかどうか知りたかったからだ。 実際に動かして確認してみたところ、Boost.Poolは大きめのサイズのメモリをプールと…