Macportsで古いバージョンのソフトをインストールする方法

OpenCV2.1を例にして古いバージョンのインストール方法を残しておく。

英語版の解説 も書いておいた。
(How to install old version softwares with Macports) written in English
http://d.hatena.ne.jp/hoimei/20110303#1299107506


STEP1. バージョン管理のsubversionをインストール
$ sudo port install subversion


STEP2. インストール予定のソフトウェアがMacports内の
どこにあるのか調べる。今回はOpenCV
$port search opencv
Warning: port definitions are more than two weeks old, consider using selfupdate
opencv @2.2.0 (graphics, science)
Intel(R) Open Source Computer Vision Library
↑みたいなことを言われる。
OpenCVはgraphics/science/opencvの階層にあるみたい。


STEP3. Macportsは、各のバージョンごとに番号(revision number)を
もっているので、それを調べる。
下のサイトで、ソフトウェア名とバージョンを入れて
検索すると、出てきます。OpenCV2.1は、revision @70430
http://trac.macports.org/browser/trunk/dports


STEP4. 階層とrevision numberがわかったので、
古いバージョンダウンロード。形式はこんな感じ。
svn co -r (revision number) (location of the revision)

OpenCV2.1だと、こんなコマンド
$svn co -r 70430 http://svn.macports.org/repository/macports/trunk/dports/graphics/opencv


STEP5.やっとインストール。さっきダウンロードしたフォルダの中に移動して、
$ cd opencv

そのフォルダの中で、インストールコマンド実行。
$ sudo port install opencv




参照:http://trac.macports.org/wiki/howto/InstallingOlderPort

install old version softwares with Macports

example: OpenCV 2.1

STEP1.
$ sudo port install subversion

STEP2.
check the location of the software in Macports trunk.


$port search opencv
Warning: port definitions are more than two weeks old, consider using selfupdate
opencv @2.2.0 (graphics, science)
Intel(R) Open Source Computer Vision Library


In this case, OpenCV located graphics/science/opencv


STEP3.
check a revision number of old version
http://trac.macports.org/browser/trunk/dports

STEP4.
download the old revision
svn co -r (revision number) (location of the revision)

$svn co -r 70430 http://svn.macports.org/repository/macports/trunk/dports/graphics/opencv


STEP5.
install the old software with MacPorts in the old revision folder.
$ cd opencv
$ sudo port install opencv




Ref:http://trac.macports.org/wiki/howto/InstallingOlderPort


日本語解説 (written in Japanese)
http://d.hatena.ne.jp/hoimei/20110303

ICE CAM Driver, Mac OSX 10.6.5(snow leopard)

ICE CAMの公式ドライバーが、Snow leopard上で全然動かないので、
困っていたんですけど、macamで動いたのでメモです。
macamって便利ですね。

macam URL
http://webcam-osx.sourceforge.net/index.html
ダウンロードページ:
http://webcam-osx.sourceforge.net/downloads.html

↑のページのmacam version 0.9.2 (current version) を使いました。


dmgパッケージの
macam.componentを"Library/QuickTime/"
macamを"/Application/"

に入れて、macamを動作させてみてください。
macam上では、取得画像サイズが合ってないので、変な画像が取得されますが、
Processing上とかでは、画像サイズ指定できるので、問題ないです。
参考: http://www.ecamm.com/mac/iusbcam/tellmemore.html

                                • -

The official driver of ICE CAM doesn't work on snow leopard
but we can use macam as a ICE CAM driver.
It is really useful.

macam URL
http://webcam-osx.sourceforge.net/index.html

download page
http://webcam-osx.sourceforge.net/downloads.html

The displayed image size isn't fit on a image, which are captured on ICE CAM, but it is no problem
because we can resize the image on Processing or another application.

Ref
http://www.ecamm.com/mac/iusbcam/tellmemore.html

HadoopをMacOSX Java 1.6.x 上で動かしてみる.

Hadoopとは,javaで大規模データを使った分散アプリを作るのに便利なフレームワークです.

未踏ソフト2009年下期本体の藤川幸一さんの“MapReduce汎用化のためのDSL基盤・実効基盤の開発”で発表された
JRubyのhudoop PAPYRUSを使いたいからです.


藤川さん曰く,OSX上でhudoopの動作はしたことないらしく,
google先生で,Java 1.6.xでhudoopの動作について詳細記述されているのをみつけることが出来なかった.
と,いうことでメモします.


とりあえず,Hadoop

ダウンロード
hadoop-0.17だとJava 1.5.xでも使えるらしいのですが,
やっぱり最新版hadoop-0.20を使いたいので,Java 1.6.xの設定をする.

アプリケーション/ユーティリティ/Java Preferencesを起動して
Java SE 6の優先順位を一番上にあげておきます.



1.6.xのJAVA_HOMEにパスを通します.
bashの場合は,こんな感じ.
打ち込むか,.bashrcに以下の1文を追加します.


% export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/


javaのバーションが1.6.xになったか確認してください.
% java -version



ついに,Hadoopダウンロード
以下のページから落としました.
http://ftp.kddilabs.jp/infosystems/apache/hadoop/core/hadoop-0.20.1/



% tar xzf hadoop-0.20.1.tar.gz
% cd hadoop-0.20.1

hadoop起動


% ./bin/hadoop


% mkdir input
% cp conf/*.xml input
% ./bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
% ls output/



% vim ./conf/hadoop-site.xml



fs.default.name
localhost:9000


mapred.job.tracker
localhost:9001


dfs.replication
1




% sudo ssh-keygen -t rsa -f /etc/ssh_host_rsa_key -C '' -N ''


% sudo ssh-keygen -t dsa -f /etc/ssh_host_dsa_key -C '' -N ''



% vim /etc/sshd_config
# HostKeys for protocol version 2
HostKey /etc/ssh_host_rsa_key
HostKey /etc/ssh_host_dsa_key



% sudo /usr/sbin/sshd


% ssh localhost


% bin/hadoop namenode -format


% ./bin/start-all.sh



NameNode http://localhost:50070/


JobTracker http://localhost:50030/



出力ファイル













.


.

.


.



.


参考:オルカンモブログ
http://orukanmo.blogspot.com/2008/11/hadoop-quick-start-on-mac.html


つづく...

プログラム: Arduino IDE + Ruby (twitter4r, serialport)

Arduino IDE 0017】

Arduinoさんに,USB経由でシリアル通信するためのプログラムです.


twiSendData/twiSendData.pde

/* Cyber Finko in Arduino IDE 0017
 published by hoimei and CyberFinko!, 2009.09.10
 http://d.hatena.ne.jp/hoimei
 http://twitter.com/cyberFinko
 Background Material: http://d.hatena.ne.jp/iwkn/20090322
*/
int val;//送信データ用の変数を用意

void setup(){
  Serial.begin(9600);
}

void loop(){ 
  val = analogRead(0);
  Serial.println(val);
}


センサからの情報を垂れ流しにしている様に見えますが, そこはArduinoさんが,きちんと制御していて, PC(サーバ)側からの受信信号が来たときにしかAnalogInの情報を送信してこないです. ArduinoIDEのメニューバーの Tool>Board Tool>Serial Port で,Arduino基盤とシリアルポートの指定ができます. クロスコンパイル(⌘R)して,USB経由でArduinoさんに送って(⌘U)おきます. Ruby with rubygems, twitter4r and serialport】 Mac OS X 10.5.7上で動かしています. 以下の3つを使って,Arduinoさんからの信号を投稿します. インストール $ sudo port install rb-rubygems $ sudo gem install twitter4r $ sudo gem install ruby-serialport プログラムはこんな感じ.

Teet.rb

# Cyber Finko 
# published by hoimei and CyberFinko!, 2009.09.10
# http://d.hatena.ne.jp/hoimei
# http://twitter.com/cyberFinko
# Background Materials: 
# http://d.hatena.ne.jp/iwkn/20090322
# http://d.hatena.ne.jp/takahirox/20090505/1241525041

#!/usr/bin/ruby

require 'rubygems'
gem( 'twitter4r', '>=0.3.1' )
require 'twitter'
require 'serialport'


def generateMessage
messages = ["ピョ・・",
                      "ピョ・・",
                      "モフッ.",
                      "ピョ!ピョピョッ!",
                      "外に出たいなぁ."]
msg = messages[rand(messages.size)]
return msg
end

#シリアルポートを指定
port = "/dev/tty.usbserial-A6004cl0" 
#Arduinoさんで指定したポート $ls /dev/tty.*で探せます.
sp = SerialPort.new(port, 9600, 8, 1, SerialPort::NONE)
#sp.puts "a" #read serial values

#p sp.gets

#10個の値の平均をとる
$val = 0
for i in 0..9
  $val = $val + sp.gets.to_i
#  $val = $val + sp.read.to_i
#  p $val
end
$val = $val/10

#p $val


#つぶやき
#距離が近いと,Analog Inの値が大きくなります.
if($val > 500)
	$message = "センサーが気になる."
elsif($val > 400)
	$message = "羽繕いしているよ."
elsif($val > 300)
	$message = "休憩中・・・zzZZZ"
elsif($val > 200)
	$message = "お水のんでいます."
elsif(50>$val)
	$message = "ご飯食べてます.豆おいしいです."
else
  $message = generateMessage
end

p $message


begin #ログインIDとパスワードを忘れずに・・・
client = Twitter::Client.new(:login=>"name", :password=> "**")
client.status(:post, $message)
rescue
end


装置: Arduino + センサ


今回,センサは,シャープ測距センサ[GP2Y0A21YK]を使いました.
10~80cmの対象物の位置を検出することができます.
電源とグラウンドとAnalog Outputだけの簡単接続です.
Arduinoさんの5V電源とGNDとANALOG INの0番に接続します.
これで,籠の中のどの位置にいるかわかる!!
便利〜.


スイッチサイエンスでケーブルつきのものが売っていたのですが,
完売中なので,秋月でモジュールを購入して個別にコネクタケーブルを購入するのがお勧めです.
400円~980円では購入できます.


Arduinoは,電気電子系が苦手な人でも簡単に扱える基盤とソフトウェアとのシステムです.
基盤自体は,スイッチサイエンスAmazonで購入できます.USB A-Bケーブルを使ってサーバ(PC)に接続します.

ソフトウェア開発は,ProcessingベースのArduino IDErubyを使ってます.

小鳥にtweetして頂く

hoimei2009-09-11

最近,twitterとかいうもので,人間ばかりがtweet(さえずる)しているので,
ここは本場の小鳥であるクルッポー(本名:Finko)にtweetして頂きました.


Finko (@CyberFinko) | Twitter


全体の設計は,こんな感じ.

センサを使ってクルッポー(Finko)さんの状態からTweetします.


材料:

  1. センサ(シャープ測距センサ[GP2Y0A21YK])
  2. Arduino
  3. USB A-Bケーブル
  4. ネットワークにつながったPC

参考:
id:iwkn さんのponyoV3 (@ponyoV3) | Twitterを参考にさせていただきました!
rubyのrequireでは,id:takahiroxさんのtwitter4r を使用した twitter client for ruby - やる気のないはてだ(A boring diary)を参考にしました!
ありがとうございます.