カテゴリー別アーカイブ: プログラミング

twitterにつぶやく植物を作りました

twitterにつぶやくヒヤシンスを作りました。

すくすく芽々 (sukusuku_meme) on Twitter

sukusuke_meme

こんな感じです。

普段はヒトリゴトを、
水が足りなくなると僕のアカウント宛に
「@happy_meme 水が足りないでやんす」
とか言います。

語尾がヤンスなのはヒヤシンスだからです。

水が足りないかどうかの判断は、

ピアノ線(導電体ならなんでも良い)を2本土にぶっ刺して

電気の流れ具合をarduinoのアナログ入力から測定してます(乾燥すると電気が流れにくくなる)。

twitterbot

芸術的な概略図

Ethernet Shieldを使うことでarduinoから直接twitter APIにアクセスしてます。

実物はこんな感じ。

中身

これで水やりを忘れることもなくなるはず!

参考にさせていただいたページ
スタパ齋藤の「週刊スタパトロニクスmobile」
Arduinoでマイコンしよう!!

建築発明工作ゼミ2008: Arduino Ethernet Shield
ArduinoからTwitterにPOSTするライブラリ – Okiraku Programming
Less To It Than That: Arduino をはじめてみた (4) アナログ入力・アナログ出力

スイッチサイエンス/商品詳細 Arduino Duemilanove 328 (最も標準的なArduino)
スイッチサイエンス/商品詳細 Arduinoイーサネットシールド

openFrameworksでiPhoneアプリを作ってみる

openFrameworksというC++向けのマルチメディアライブラリがあります。

processingに影響を受けていて、難しいこと考えずにクリエイティブなコーディングを!というものです(語弊あり)。

これでiPhoneアプリも作れるので試しにやってみました。

環境はMac OS X 10.5.8、xcode 3.1.4です。

公式サイトdownloadから x-code / iphone sdk をダウンロード。

examplesのiPhone Touch+Accel Exampleを動かしてみました。

num10

おぉー。

なんかふよふよ動いている。

タッチするとその場所にボールが一つ移動します。

testApp.cppの

#define NUM_POINTS                10
を試しに100個にしてみると、

num100

おぉーw

でもこれiPhone Touch+Accel Exampleなのに、シミュレータだと傾いた時の動きが見れません。

実機に転送してみました。

※ひとまず普通のiPhone SDKで実機テストが出来るようになっている前提です。実機で動かすための大変めんどうな登録作業はgoogle先生に聞きながらがんばってください・・・

build環境をシミュレータからデバイスにしてビルドしてみると

Code Sign error: The identity ‘iPhone Developer: Mehmet Akten’ doesn’t match any valid certificate/private key pair in the default keychain

というエラー。

xcodeの「プロジェクト」→「プロジェクト設定を編集」で情報ウィンドウを開いて、ビルドタブのコード署名IDで自分のIDを選択しましょう。

もっかいビルド。

今度は

<com.apple.tools.product-pkg-utility>: error: CFBundleIdentifier ‘com.msavisuals.oF_iPhone’ contains illegal character ‘_’

というエラー。

CFBundleIdentifierにcom.msavisuals.oF_iPhoneのアンダーバーが気に食わないようです。

info.plistを開いてみると、com.msavisuals.${PRODUCT_NAME:identifier}となってます。

PRODUCT_NAMEはさっきのプロジェクト設定のプロダクト名という項目で定義されてます。

「oF iPhone」を「oFiPhone」に書き換えてもっかいビルド。

通った!

accTest

iPhoneを傾けるとちゃんと連動して動いています。

iPhoneアプリ作ってみたいけどObjective-Cはちょっと・・・という人は、

openFrameworksでお気楽プログラミングが楽しめるかもしれません(語弊あり)

今回はiPhoneアプリ開発の紹介ですが、もともとはC++でOpenCVとかOpenGLとか使って面白い物をサクサク作りたい人向けのフレームワークなので、ピンと来た方はぜひどうぞ。

公式サイトのギャラリーで色々面白い作品が見られます。

rubyでtwitterbotを作ってみる その2 自動follow返し

前回

今回はfollowしてくれてる人に自動でfollow返しをする関数を作ります。

自分がfollowしてる人とfollowされてる人の配列を作って
引くとfollow返しすべき人の配列が出来ます。

今回はボット用なので、
自分がfollowしてる数 < followされてる数
の場合しか考慮してません



# 自動follow返し
def auto_follow(base)
# friendsを取得
friends = Array.new
base.friends.each{
|f| friends << f.id } # followersを取得 followers = Array.new base.followers.each{ |f| followers << f.id } # friendsとfollowersの差を取ってfollow返し targets = Array.new targets = followers - friends targets.each{ |id| base.friendship_create(id, true) } end

--

配列 - 配列をしたらかぶってないのが残るというrubyさんの賢さに感動したんだけど
最近の言語って皆こんなに賢いの?

rubyでtwitterbotを作ってみる

rubyでtwitterのbotを作ってみます。

まずはrubyでtwitterのAPIを叩くところまで。

rubyにはRuby Twitter Gemという便利なものがあるのでそれを使います。

portsからgemsを入れる。
# cd /usr/ports/devel/ruby-gems
# make install clean

twitter gemを入れる。
# gem install twitter

準備完了。

ひとまずネット上のサンプルを参考に作ってたら
`initialize’: wrong number of arguments (2 for 1)とかいうエラーが出た。
base = Twitter::Base.new(‘username’, ‘password’)
の引数の数があってないとか。

で、調べてみるとこのやり方は昔ので、最近のバージョンでは一度HTTPAuthに通してからするようになっている。
httpauth = Twitter::HTTPAuth.new(‘username’, ‘password’)
base = Twitter::Base.new(httpauth)

参考

でこれが作ってみたサンプルコード。
—-

#!/usr/bin/ruby

require ‘rubygems’
gem ‘twitter’
require ‘twitter’

message = “ほげほげ”

httpauth = Twitter::HTTPAuth.new(‘account’, ‘password’)
base = Twitter::Base.new(httpauth)

# つぶやく
base.update(message)

# タイムラインを表示
puts “Friends Timeline”, “=” * 50
base.friends_timeline.each { |tweet| puts tweet.text }

—-
とてもシンプル!

rubyでtwitterbotを作ってみる その2 自動follow返し

OpenCV 1.1を導入&SURFを動画で

いつのまにかOpenCVが1.1を公開してたので導入しました。

で、dandelion’s logさんと同じくSURFアルゴリズムを動画でテストしてみました。
参考:dandelion’s log OpenCV 1.1:SURFを動画で試してみた

OpenCV 1.1をインストールすると
C:Program FilesOpenCVsamplescfind_obj.cpp
に静止画用のSURFアルゴリズムがあるのでこれをカメラからの動画に対応させました。

surf

かなりの性能!指で隠れてるのにちゃんと認識してます。
速度もちょっとカクカクしますがまぁまぁリアルタイムです。
SIFTなみの性能でこのスピードはすごい。

以下、ソースコード。
続きを読む

「見えない」プログラム言語 Whitespace

変態プログラム言語を発見。

Whitespace

WhiteSpaceのHello Worldサンプルです。

Hello World

1行目の「Say hello.」以降は真っ白です。

なんとこのプログラム言語は「半角スペース、TAB、改行」のみで記述されるプログラム言語だそうです。

読めるかw

参考サイト

これはジョークではない! 空白文字 [Space][Tab][LF] だけで記述するプログラム言語 “Whitespace”【▲→川俣晶の縁側→ソフトウェア→技術雑記】

【ニコニコ動画】Whitespaceでネギを振ってみた

Wikipedia – Whitespace

ジョン・ケージの「4分33秒」を思い出したw