2008.03.16

[Zaurus]PHSの位置情報で地図表示「ざうもに」改変版0.0.1.5

昨日のエントリ「[Zaurus]PHSの位置情報で地図表示「ざうもに」改変版0.0.1.3」の続きです。

せらくんさんのLinux Zaurus用ソフトウェア「ざうもに」をモバイルマップNaviに対応させてみました。

ここの神のおかげです。qcoptestは設定ファイルを編集することで、監視チャンネルを指定できるとは……。
マニュアルを読まなければ分からないですね。

http://pc11.2ch.net/test/read.cgi/mobile/1203511361/574

qcop QPE/Application/mobliemap 'setDocument(QString)' 'N43.04.29.000 E141.19.51.000'

つまり、PHSから現在地の位置情報を取得して、モバイルマップNavi上で地図表示できるようになりました。

ご存知の通り、モバイルマップNaviはサービスを終了しているので、ローカルに地図データをコピーしている人でないと恩恵を得ることができません。

以下ファイルをダウンロードした後に拡張子「.bin」を削り、「ソフトウェアの追加/削除」等からインストールしてください。以前のバージョンがインストールされているなら、あらかじめ削除しておいてください。

0.0.1.4は内蔵のCFをサスペンドさせてしまう不具合があったので欠番です。

「zaumon_0.0.1.5-1_arm.ipk.bin」をダウンロード

無保証です。

| | Comments (8) | TrackBack (0)

2008.03.11

[Zaurus]PHSの位置情報で地図表示「ざうもに」改変版0.0.1.3

昨日のエントリ「[Zaurus]PHSの位置情報で地図表示「ざうもに」改変版0.0.1.2」へのmineさんからのコメントで、地図表示がうまくできないという話があったので、修正してみました。

mineさんのログを見ると、緯度・経度が取得できても郵便番号だけ取得できないことがあるようですが、「ざうもに」のソースを見てみると、郵便番号が取得できないと位置情報取得成功と判定しないようになっていました。
これが原因のようだったので、郵便番号が取得できなくとも緯度・経度さえ取得できていれば地図表示をするようにしてみました。郵便番号を取得しても、それを使っていませんでしたし。

また、ALPSLABの地図も追加してみました。

以下ファイルをダウンロードした後に拡張子「.bin」を削り、「ソフトウェアの追加/削除」等からインストールしてください。以前のバージョンがインストールされているなら、あらかじめ削除しておいてください。

2008.3.16追記:不具合があったため、ファイルは削除しました。0.0.1.5を使ってください。

「zaumon_0.0.1.3-1_arm.ipk.bin」をダウンロード


無保証です。

| | Comments (3) | TrackBack (1)

2008.03.10

[Zaurus]PHSの位置情報で地図表示「ざうもに」改変版0.0.1.2

2008.3.11追記:続編エントリに新バージョン置いておきました「[Zaurus]PHSの位置情報で地図表示「ざうもに」改変版0.0.1.3

先日のエントリ「[Zaurus]「ざうもに」を微修正してみた」の続きです。

PHSから位置情報を取得して地図表示するせらくんさんのLinux Zaurus用ソフトウェア「ざうもに」0.0.1を改変したやつをバージョンアップしました。

表示する地図を以下から選択できるようにしました。

  • Yahoo!地図情報
  • goo地図
  • Mapion
  • Mapion(PDA版)
  • MapFan Web

いじってはみたものの、メンテをする気力は無いので、こういうのは外部に追い出すべきなんですけどね。
C++は全然分からない。

Google Mapsは世界測地系で、座標変換が必要になるため対応してません。
もちろん、不可能ではないんですが、以前Molodensky法をPerlからCに移植しようとして、どうしても検算が合わなかったということがあり。

Zaumoni0012_2

以下ファイルをダウンロードした後に拡張子「.bin」を削り、「ソフトウェアの追加/削除」等からインストールしてください。

2008.3.16追記:不具合があったため、ファイルは削除しました。0.0.1.5を使ってください。

「zaumon_0.0.1.2-1_arm.ipk.bin」をダウンロード

無保証です。

| | Comments (2) | TrackBack (0)

2008.03.09

[Zaurus]「ざうもに」を微修正してみた

2008.3.10追記:続編エントリに新バージョン置いておきました「[Zaurus]PHSの位置情報で地図表示「ざうもに」改変版0.0.1.2

PHSカードから取得できる位置情報を元にWebブラウザで現在位置の地図表示する、せらくんさんのLinux Zaurus用ソフトウェア「ざうもに」ですが、近ごろはYahoo!地図情報の仕様変更で表示できなくなっているとのこと。

ということで、Yahoo!地図情報の「スクロール地図」でなく、「標準地図」を表示するように修正したやつを作ってみました……ものの、直したのはNetFrontの方だけで、Operaの方は修正し忘れてました。

表示する地図を選択するQComboBoxを加えてみたのを作っているので、後でアップし直します。

しかし、C++での文字列処理がよく分からない。

2008.3.16追記:不具合があったため、ファイルは削除しました。0.0.1.5を使ってください。

「zaumon_0.0.1.1-1_arm.ipk.bin」をダウンロード


ダウンロード後、拡張子「.bin」を削除して、「ソフトウェア追加/削除」等からインストールしてください。

無保証です。

| | Comments (0) | TrackBack (0)

2007.10.12

[Zaurus]ターミナル録画再生ツールttyrec1.0.8のLinux Zaurus向けパッケージ

これからは動画! ターミナルの動画だよ! ということで、高林哲さんのお作りになられたttyrecのLinux Zaurus向けパッケージを作ってみました。
パッケージにはttyrec ttyplay ttytimeを含みます。

ターミナルの操作の模様を録画再生できるツールです。
詳しくはttyrecのサイトを見てみてください。

Linux Zaurusでも、ちょっと変になることはある(?)ものの、動いています。
かなり面白いので、試してみてください。

ダウンロード

「ttyrec_1.0.8-1_armv5tel.ipk.bin」をダウンロード

使い方

パッケージをインストール後、ターミナルを起動します。
僕はUenoさんのカスタムEmbeddedKonsole を使ってます。

ttyrecは80x24固定で使う設計なので、ターミナルのフォントサイズを変更する必要があるかもしれません。80x24より大きければ大丈夫のようです。
「lcfont large」より小さいフォントを選択する必要があります。普通は「lcfont medium」でしょう。
フォントを変更/確認したら、一度ターミナルを再起動してから以下のような感じで実行します。

$ ttyrec -e emacs rec01.tty

すると、この例で行くとemacsの起動プロセスとなりますが、この瞬間から録画が開始されてます。
普通と違うのは、Emacsが80x24の範囲で描画されていることです。
Emacsを終了すると録画も終了となります。

$ ttyrec rec02.tty

上記のように-eオプション無しで実行すると、シェルが起動します。
exitでこのシェルを抜けるまで録画が継続されます。

再生にはttyplayコマンドを使います。さきほどの操作でrec01.ttyというファイルが生成されているので、それを引数に指定すると再生が始まります。

$ ttyplay rec01.tty

ttytimeの引数に録画ファイルを指定すると、その録画時間が秒数で表示されます。

$ ttytime rec01.tty
458 rec01

ttyrecで録画したファイルを以下にアップしておきます。
Linux Zaurus上でEmacsを使っている様子です。

デモ動画

「rec01.tar.gz」をダウンロード

動画の中で使っているtwit.elは個人的に改造したやつなので、emacswikiにあるオリジナルとは違います。

……って「twit.el」をググったら密かに置いてある糞改造twit.elがトップに来てるよwwww
@がうまく動かないからペンディングしてるのにwwwwwww

注意点

ttyrec ttyplayを使った後は、一度ターミナルを終了しないとおかしくなるようです。

展望

ttyrecのデータがいろいろ流通すると面白いんですけどね。
何か録画したら教えてください。

| | Comments (0) | TrackBack (0)

2007.10.04

[Zaurus]Linux Zaurus上のEmacsで選択した単語を「英辞郎 on the Web」で引く

英語を読み書きする際に、「英辞郎 on the Web」の用例が欠かせない自分用に、Emacsで選択した単語を「英辞郎 on the Web」で引く糞Elispを書いてみました。

「英辞郎 on the Web」はLinux Zaurusには重いんですけどね。Operaだと少しは軽いんでしょうか。

動作に必要な「urlencode.el」

動作にはurlencode.elが必要です。

urlencode.el(今404なのでWebArchiveの直リン)

Linux Zaurus版「英辞郎 on the Webで調べる」

(when (load "urlencode" t)
  (defun my-eijiro(beg end)
	(interactive "r")
	(call-process "qcop" nil nil nil "QPE/System"
				  "execute(QString,QString)"
				  "netfront3"
				  (concat 
				   "http://eow.alc.co.jp/"
				   (urlencode (buffer-substring-no-properties beg end) 'utf-8)
				   "/UTF-8/")))
  (global-set-key "\C-ce" 'my-eijiro))

Mac OS X (CarbonEmacs)版「英辞郎 on the Webで調べる」

(when (load "urlencode" t)
  (defun my-eijiro(beg end)
    (interactive "r")
    (do-applescript (concat "
tell application \"Safari\"
if (count of document) is 0 then
make new document
end if
tell document 1
set URL to \"http://eow.alc.co.jp/"
(urlencode (buffer-substring-no-properties beg end) 'utf-8)
"/UTF-8/\"
end tell
end tell")))
  (global-set-key "\C-ce" 'my-eijiro))

使い方

英語でも日本語でもどっちでもいいので選択したら起動するだけです。
上記から変えていなければ「Ctrl+C e」で起動です。
Linux ZaurusではNetFrontで、Mac OS XではSafariで、選択した単語の「英辞郎 on the Web」の検索結果を表示します。
Safariはあえてactivateせず、SafariのウインドウをCarbonEmacsの隣に開いておく使い方を想定してます。

いっしょに使うと便利なElisp「sense-region.el」

単語を選択するのが面倒臭い。

そんな場合は、「sense-region.el」を使うと、単語のどこかにカーソルが乗ってさえいれば、Ctrlを押しながらスペースキーを二度押すだけで単語の選択が完了します。
さらにスペースを押していくと、後方に向かって単語を一つずつ選択範囲に加えていきます。
物凄く便利なのでおすすめです。

| | Comments (0) | TrackBack (0)

2007.10.03

[Zaurus]Ruby用ライブラリHpricotとWWW::MechanizeのLinux Zaurus向けパッケージ

電車での移動時間を使ってLinux ZaurusでWebのスクレイピングの仕込みをするべく、RubyのHTMLパーサ等を用意してみました。

はけさんのはけのザウルス備忘録別館Hpricotの0.5がありますが、0.6が出ていたのでそれを。
WWW::Mechanizeにも興味があったので、それも。

幾霜の橘さんから「-static-libgcc」というオプションを教わったので、ruby-serialportとruby-termiosをlibgcc(3.4.4)不要版としてパッケージを作り直しました。

いずれのパッケージも、FocVさん版パッケージのRubyの構成に準拠してます。FocVさんのところにある1.8.6-p110を入れた環境で幾霜さんのzgcc34でセルフコンパイルしてます(Pure RubyなWWW::Mechanizeを除く)。

ダウンロード

Hpricot 0.6
「ruby-hpricot_0.6-1_armv5tel.ipk.bin」をダウンロード

WWW::Mechanize 0.6.10
「ruby-mechanize_0.6.10-1_armv5tel.ipk.bin」をダウンロード

ruby-serialport 0.6
「ruby-serialport_0.6-2_arm.ipk.bin」をダウンロード

ruby-termios 0.9.4
「ruby-termios_0.9.4-2_arm.ipk.bin」をダウンロード

ライブラリの紹介等

Hpricotは、HTMLを解析してオブジェクトを生成します。HTMLから特定の部分を切り出したい場合等に便利。正規表現を使わず思ったものを切り出せます。

WWW::Mechanizeは、あたかもブラウザを操作するかのようにRubyからWebアクセスできます。普通はRubyからWebをいろいろいじろうとすると、HTMLの中身を仔細に調査する必要がありますが、WWW::Mechanizeを使うと、かなり見た感じでいけます。Cookieやヒストリなんかも管理してくれます。

正規表現でバリバリやるより、スクリプトのメンテナンス性が向上します。

Linux Zaurusで動かすと、ちょっと重いですが。

何の役に立つのか? サンプル

WWW::MechanizeとHpricotでmixiのあしあとを取得する例です(リニューアル後のさっき試しました)。
World Wide Walkerさんの「mecanize.rb で mixi diary を自動取得する」のパクりともいう。

mixiのような認証があるサイトの場合、普通はログインフォームからCookieをもらって、それをヘッダにセットしてログインしないと読めないページを読む、といった処理をしますが、WWW::Mechanizeがその辺りのCookie管理をやってくれているので楽ができてます。

取得したあしあとページから必要な部分を切り出すのをHpricotでやってます。
ほぼ正規表現無しでスクレイピングができちゃってます。便利。

あしあとの取得ならAPIを使うべきですが、とりあえずサンプルということで。

アクセスログマニアの方は、こういうのをCronInetで定期起動させて、Linux Zaurusでいろいろなログを監視してみては。

#! /usr/bin/env ruby

require 'hpricot'
require 'mechanize'
require 'logger'
username = 'YOUR_EMAIL_ADDRESS'
password = 'YOUR_PASSWORD'

agent = WWW::Mechanize.new {|a| a.log = Logger.new('access.log')}
page = agent.get('http://mixi.jp/')
form = page.forms[0]

form.fields.find {|f| f.name == 'email'}.value = username
form.fields.find {|f| f.name == 'password'}.value = password
form.fields.find {|f| f.name == 'next_url'}.value = '/home.pl'
page = agent.submit(form, form.buttons.first)

if /url=([^"])"/ =~ page.body
link = 'http://mixi.jp' + $1.to_s
agent.get(link)
end

doc = Hpricot(agent.get('http://mixi.jp/show_log.pl').body)
doc.search("#log_color").search("li").each do |li|
puts li.inner_text
end

徒然に

なぜか、かの伊藤栄一郎氏のサイトhttp://oohito.com/からリンクされていてビビった!

| | Comments (0) | TrackBack (0)

2007.09.24

[Zaurus]Lua 5.1.2のZaurus向けパッケージ

プログラミング言語Lua 5.1.2のLinux Zaurus向けパッケージを作ったので置いておきます。VMware PlayerにVine Linuxをインストールしてクロスコンパイル環境を作って、何か試したかっただけで特に意味はありません。

「lua_5.1.2-1_armv5tel.ipk.bin」をダウンロード

「readline_5.2-1_armv5tel.ipk.bin」をダウンロード

参考:解説サイト

readlineはスタティックリンクにした方がいいんでしょうね、きっと。

| | Comments (0) | TrackBack (0)

2007.09.18

[Windows Mobile][Zaurus]Linux Zaurus用Advanced/W-ZERO3 [es]モデムドライバー

Advanced/W-ZERO3 [es]をLinux Zaurus SL-C3200のモデムとして使いたいと思い立ち、SL-C3200のKernel Source付属のドライバー(Kernel Module)ipaq.cを、Advanced/W-ZERO3 [es]のデバイスIDを追加してコンパイルしてみました。とりあえず使えています。

インストール

下記のipkをダウンロードして、インストールするだけでOKだと思います。自分のSL-C3200ではAdvanced/W-ZERO3 [es]がモデムとして認識しています。3桁機種には使えません。
無保証です。

「zero3modem_0.1-1_armv5tel.ipk」をダウンロード(コンテクストメニュー等から保存してください)

ダウンローダ向けにURLも書いておきます。
http://moyashi.air-nifty.com/hitori/files/zero3modem_0.1-1_armv5tel.ipk


/lib/modules/2.4.2.0/kernel/drivers/usb/serial/ipaq.o
/lib/modules/2.4.2.0/kernel/drivers/usb/serial/usbserial.o

をインストールします。ほかのディレクトリにこれらが入っている場合は削除しといてください。
また、ここに同名のファイルがある場合は、問答無用で上書きすると思います。注意してください。

確認

USBケーブルで接続する前にAdvanced/W-ZERO3 [es]の「設定>接続タブ>USB接続」を表示し、「モデムとして使用する」のラジオボタンをONに。

USBホストケーブル経由でAdvanced/W-ZERO3 [es]をZaurusに接続。両方ともUSBホスト機ですが、無論Zaurus側にUSBホストケーブルを。

「設定タブ>システム情報」を実行し、「デバイス」タブを表示します。USBのツリーの下を見て、以下のように「Driver: serial」となっていればOK。

設定

Small Islandさんのエントリ「ZAURUSにW-ZERO3をモデムとして使う(2)」を見て設定してください。

「設定タブ>ネットワーク設定」でダイヤルアップ接続の「追加」を実行。「PPPダイヤルアップ接続 [赤外線]」を選択して「選択」ボタンを押す。基本的には通常通りのダイヤルアップの設定をし、「モデム」タブの初期化コマンドを「AT」にして「OK」ボタンを押して保存。

ターミナルで以下を実行。

$ su
# cd /etc/ppp/peers/
# vi `ls IRDA*`

で、viで以下のようにタイプ。

ji/dev/ttyUSB0 [Cancel]:wq

[Cancel]はキャンセルボタンを押す、(Escを押す)ってことです。
要するに2行目の「115200」を「/dev/ttyUSB0 115200」と書き換え、保存します。

ソース変更内容

ipaq.hには以下を追加

#define SHARP_VENDOR_ID 0x04dd
#define SHARP_WS003SH_ID 0x9102
#define SHARP_WS004SH_ID 0x9121
#define SHARP_WS007SH_ID 0x9123
#define SHARP_WS011SH_ID 0x91ac
#define SHARP_S01SH_ID 0x9151

ipaq.cには以下を追加

{ USB_DEVICE(SHARP_VENDOR_ID, SHARP_WS003SH_ID) },
{ USB_DEVICE(SHARP_VENDOR_ID, SHARP_WS004SH_ID) },
{ USB_DEVICE(SHARP_VENDOR_ID, SHARP_WS007SH_ID) },
{ USB_DEVICE(SHARP_VENDOR_ID, SHARP_WS011SH_ID) },
{ USB_DEVICE(SHARP_VENDOR_ID, SHARP_S01SH_ID) },

つまり、ipaq.cのデフォルトに加え、ZERO3シリーズ+EM・ONE(S01SH)しか認識しません。

| | Comments (3) | TrackBack (0)

2007.09.04

[Zaurus]拡張オーディオドライバでLinux Zaurusをドンシャリサウンドに

tetsuさんのspecial kernelが、Andre Beckedorf氏の拡張オーディオドライバ対応版になったという話を聞いたので試してみました。

Andre Beckedorf氏の拡張オーディオドライバは、Zaurus SL-C1000/C3×00に内蔵されながら未使用だったWM8750 mixerを使い、以下のようなことができるようになっているとのこと。

  • 高音、低音、3Dステレオサウンドの制御
  • サウンドチップの各種カットオフ周波数の制御
  • 出力先の選択(自動、内蔵スピーカ、ヘッドフォン)

インストール

tetsuさんのページに従い、カーネルをv18i(現時点の最新版。それ以上のバージョンなら対応済みでしょう)に入れ替えます。

さらに、Andre Beckedorf氏のページに行って、「wm8750mixer_0.9_arm.ipk - WM8750 mixer for Sharp ROM / Cacko ROM」をダウンロードしてきてインストール。設定タブに現れた「WM8750Mixer」のアイコンを長押し、「ルート権限で実行する」チェックボックスをON、これで準備OK。

Wm8750scrn001

使ってみる、調整してみる

WM8750Mixerを起動します。

Wm8750scrn002

適当に曲を再生、設定をいじってみます。

このわたくし、何を隠そうドンシャリ厨で、Nakamichiの試聴機の過剰な音が大好物。

早速「ドン」を求めて「Bass」のスライダをググっと上げていくと、簡単に音が割れます。

そこで、「-6 dB ATT/Prevent Clipping」のチェックボックスをONにして、クリッピング防止-6dBアッテネータを有効にします。これで音割れが防げて一安心。

「Adaptive Bass Boost」というチェックボックスが気になるのでONにします。「Bass Boostに適応」ということなので、ドンシャリ厨の自分が退くことはありません。……が、よく効能が分からない。デフォルトでは-6dB〜+9dBとマイナスの値から振られた「Bass」のスライダの目盛りが0%〜100%とプラスの数値だけになります。

小さいヘッドフォンでは「Bass」の「Cut-Off」が「200Hz」でないと増幅した感がないかもしれません。
「130Hz」では、音程感の無いバスドラムの下の方が、「200Hz」ではベースの下の方から増幅される感じです。
「200Hz」だと、ヘッドホンによってはちょっとくぐもった印象が出るかもしれません。

続いて「シャリ」の方も、と「Treble」のスライダを上げていきます。

「Cut-Off」は「4kHz」と「8kHz」で迷うところかもしれません。
「4kHz」の方は人声の擦過音辺りが強調される感じです。
「8kHz」はハイハット、ノコギリ波の倍音辺りが強調されます。

手持ちのSennheiser HD25では、自分的に上の画像のようなセッティングになりました。

「3D Stereo」は音が悪くなるし気持ち悪いので無効です。

個人的に超使える「Output」選択機能

「Output」という項目があり、スピーカー、ヘッドフォン端子、自動切替から選べます。

「Headphone」を選ぶと、ヘッドフォンを接続していようがしていまいが強制的にヘッドホン端子からのみ音が出るようになります。

この設定はオーディオプレイヤーとして使うときにとても便利ですね。

例えば、満員電車でだれかにヘッドフォンのケーブルが引っ張られて、ヘッドフォン端子からヘッドフォンが外れてしまった場合、デフォルトではカバンの中のZaurusのスピーカーから再生中の曲が流れてしまうことになりますが、「Headphone」を選んでおくと、そういうことは起きません。

インプレッション

この手のイコライザーはiPodに実装されているもののように(4Gまでしか知りませんが)音が割れてしまって使いものにならないのが常ですが、これは十分実用になります。使わない手はありません。

バキバキにドンシャリにしたセッティングでKoss PortaProと組み合わせると、あのNakamichiの試聴機ばりに過剰な音が出て満足です。

| | Comments (0) | TrackBack (1)

2007.06.25

[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter v1.2

Linux Zaurus用Ruby/Qte製Twitter簡易クライアント「RQTwitter」をバージョンアップしました。v1.2です。

着信音は決め打ちです。変えたい人はとりあえずソースを.wavで検索して書き換えてください。/dev/dspにぶち込んでいるだけなので、プチります。
Qtesoundが動けばよかったんですが、セグフォで落ちてしまいます。

結構いじったので、不具合出るかもしれません。

v1.2
・タイムライン取得をスレッド化、エラー表示方法変更

・スレッド化にともないタイムライン取得を中止できるように

・初回は24時間以内の20件を取得、次回以降は差分を取得するように

・新しいメッセージがあった場合に着信音を鳴らせるように

・一定時間ごとの定期的チェックができるように

・時刻のパースにTime.parseを使うように(あさあささんアドバイスありがとうございます)

・Post時にUser-Agentを送るように

ファイルや説明は、古いページ「[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter」に置きました。

| | Comments (0) | TrackBack (0)

2007.06.20

[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter v1.1

Linux Zaurus用Ruby/Qte製Twitter簡易クライアント「RQTwitter」をバージョンアップしました。v1.1です。

v1.1 APIの時刻フォーマットの変更に追従

Twitter APIの仕様変更で時刻がパースできなくなっていたので直しました。

ファイルや説明は、古いページ「[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter」に置きました。

| | Comments (0) | TrackBack (0)

2007.06.11

[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter v1.0

Linux Zaurus用Ruby/Qte製Twitter簡易クライアント「RQTwitter」をバージョンアップしました。v1.0です。

v1.0 ダイヤルアップ後に自動更新できるように

オフライン状態からでも「Ctrl + 1」を押しさえすれば、タイムラインが更新できます。

ファイルや説明は、古いページ「[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter」に置きました。

| | Comments (0) | TrackBack (0)

2007.06.06

[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter v0.9

Linux Zaurus用Ruby/Qte製Twitter簡易クライアント「RQTwitter」をバージョンアップしました。v0.9です。

v0.9 タイムライン画面で"A"で発言中のURLをNetFrontでブラウズ

発言貼られたURLをワンキーで見られるようにしました。
RFC見てないので、URL構成文字に抜けがあるかも。あったら教えてください。
一つの発言に複数のURLが貼られててもシラネ。
http://で始まるもののみ対応。

ファイルや説明は、古いページ「[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter」に置きました。

| | Comments (0) | TrackBack (1)

2007.06.03

[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter v0.8

Linux Zaurus用Ruby/Qte製Twitter簡易クライアント「RQTwitter」をバージョンアップしました。v0.8です。

翠蓮さんとサムさんからTwitterでバグ報告と要望があったので修正したものです。

v0.8 更新ボタン利かなくなっていたのを修正。タイムライン画面で"S"もしくは"Space"で更新できるように

ファイルや説明は、古いページ「[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter」に置きました。

なんかもっと慎ましいバージョン番号付けるべきなんでしょうけどね。

| | Comments (0) | TrackBack (0)

[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter v0.7

Linux Zaurus用Ruby/Qte製Twitter簡易クライアント「RQTwitter」をバージョンアップしました。v0.7です。
v0.6も一瞬置いてましたが、すぐv0.7に差し替えました。

一瞬履歴の文字が化けるv0.7を置いていたので、おかしい場合はダウンロードし直してください。

翠蓮さんからv0.5のコメントでいただいたご要望にお応えする形で機能追加したものです。

タイムラインの定期自動更新は、バックグラウンドでの更新ができるようになったら検討します。
一応スレッド化してるんですが、自分の使い方が間違ってるはずです。

v0.7 送信メッセージのヒストリ機能追加 Ctrl + Up(逆順) / Ctrl + Down(正順)
v0.6 送信後クリア、送信後タイムライン更新、送信後タブ切替機能追加

ファイルや説明は、古いページ「[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter」に置きました。

| | Comments (0) | TrackBack (0)

2007.05.30

[Zaurus]Linux Zaurusでサンプリングシンセサイザー Milkytrackerを再び試す

昔のエントリ、「Linux ZaurusやPocket PC (Windows Mobile) でサンプリングシンセサイザー Milkytrackerを試す」の続編です。

Milkytrackerはサンプリング音源を使った音楽を制作できるDTMソフトです。
MOD Trackerというジャンルのソフトウェアですね。
これを使うと、Linux Zaurus単体でかなり手の込んだ曲が作れます。
上記のエントリにサンプルを置いてますので、興味があったら聞いてみてください。

ゆめのからだ@SeeSaaさんのエントリ、「milkytracker on zaurus」にて、前回のエントリでは解決できなかった、libSDLに起因するMilkytracker終了時のフリーズを回避する方法が紹介されてました。これはかなりエポックです。

元々は、2007年5月12日、韓国のBBSに掲載された情報なのですね。

というわけで、それをまとめたパッケージを作りましたので置いておきます。
今より遡ること10日の2007年5月20日、Milkytrackerのバージョンはv0.90.60に上がってますが、残念ながら上記BBS掲示のlibSDLでは起動しませんでした。ちなみに、阿川さんのlibSDLでもダメだったです。

MilkytrackerはWindowsでもMac OS XでもWindows Mobile系のOSでも動くので、マシンを取っ替えひっかえしながらデータ制作できます。

ダウンロード

「milkytracker_0.90.50-slc-1_arm.ipk.bin」をダウンロード

インストール

上記パッケージをインストールするだけです。

起動するとQVGAモードに切り替わりますが、そのままで使った方がいいです。

とりあえず試してみる

後で書きます。

インプレッション

まだあんまり試してないですが、タスクスイッチしても、終了してもフリーズしません。
これはとても素晴らしい。

ただし、カーソルキーが上下左右逆さまですね。差し替えたlibSDLの副作用でしょう。
KeyHelper Appletで矯正するか、あるいはそれで慣れてしまうか。

| | Comments (6) | TrackBack (0)

[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter v0.5

Linux Zaurus用Ruby/Qte製Twitter簡易クライアント「RQTwitter」をバージョンアップしました。v0.5です。

メッセージの送信後の自動的なサスペンド移行を可能にしました。

サーバが重いとタイムアウトが出ていたので、タイムアウト時間を設定可能にしました。

ファイルや説明は、古いページ「[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter」に置きました。

| | Comments (2) | TrackBack (0)

2007.05.25

[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter v0.4

Linux Zaurus用Ruby/Qte製Twitter簡易クライアント「RQTwitter」をバージョンアップしました。

タイムラインの表示機能を直しました。
これで一応、読み書きができるようになったかな。

エラー処理は一応ほどこしましたが、低品質です。

ファイルや説明は、古いページ「[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter」に置きました。

| | Comments (0) | TrackBack (0)

2007.05.22

[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter v0.3

2007.05.25追記:v0.4出しました。

inux Zaurus用Ruby/Qte製Twitter簡易クライアント「RQTwitter」をバージョンアップしました。

タイムラインの表示機能を付けました。
今やったらタイムライン表示できなかったです。
Twitterから送られてくるJsonのcreated_atのフォーマットが2種類あるみたいでコロコロ変わるんですよね。
何なんだこれは。とりあえずそのどっちでも対応できるようにはしたいですが、事情知ってらっしゃる方いらしたら教えてください。

これで一応、読み書きができるようになったかな。

相変わらずエラー処理とかは適当なので、低品質です。

ファイルや説明は、古いページ「[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter」に置きました。

Twitterから送信されるJsonのパースには、Greenbear DiaryさんのJSONクラスを使わせていただきました。ありがとうございます。

あ、またTwitterへのジャンプ機能を付けるの忘れた。

| | Comments (0) | TrackBack (0)

2007.05.21

[Zaurus]TobilogさんにZaurus用MySQL4.1.22が!!

Tobilogさんのところで、Zaurus向けMySQL4.1.22が公開されてます。これはうれしい。
Zaurus向けパッケージにはMySQL3しか無い時代が長らく続きましたが、Tobilogさんがやってくれました!! やはり苦労されたみたいですね。

これでMySQL + Ruby on Railsが出来るはず。

しかもGDライブラリが有効になったphp4.4.4、rewriteモジュールだけ有効にしたapache2.0.48も同時に公開されてます。
GDライブラリが有効になったZaurus向けphpって、無かったんではないかな。

Zaurusの、PHPいじり環境、RoRいじり環境としての価値がグンと上がりましたね。
サーバと環境を合わせることができます。

libstdc++5のパッケージを置いてますが、ググっても確かにほかに見当たらないんですよね。
僕は、……どっから持ってきたんだったかな。ココログだとファイル名が化けるので、どうぞ再配布してください。

| | Comments (0) | TrackBack (0)

2007.05.20

[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter v0.2

Linux Zaurus用Ruby/Qte製Twitter簡易クライアント「RQTwitter」をバージョンアップしました。

Twitterは、そのサービスの形態から、とにかく手間無くメッセージが送信できるべきですが、Linux Zaurusではダイヤルアップが面倒で不利です。

その手間を省くべくダイヤルアップの自動制御機能を追加しました。

ファイルや説明は、古いページ「[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter」に置きました。

あ、Twitterへのジャンプ機能を付けるの忘れた。

| | Comments (0) | TrackBack (0)

[Zaurus]Zaurusで日本語音声合成 zmuDaTTS.rb v0.3

音声合成エンジンMBROLAのフロントエンドで、日本語を読み上げることのできるmuDaTTS.rbのLinux Zaurus向け改悪版、zmuDaTTS.rbの微小修正版をアップしました。

全角のピリオドを半角に置換するようにしただけです。
これで全角で書かれた小数もちゃんと読み上げるようになりました。

「zmudatts_0.3_arm.ipk.bin」をダウンロード

インストール方法等については過去のエントリをどうぞ。

(実践編)Zaurusで日本語音声合成 MBROLA+muDaTTS

国産の非プロプライエタリな日本語音声合成エンジンとしては、恐らく最高品位と思われるGalateaTalk: Speech synthesis module for Galateaに挑戦していたんですが、ビルド自体はGCC3.3で何とか通るものの、どうもうまく動かすことができません。
どなたかやってみませんか(笑)。

| | Comments (3) | TrackBack (0)

2007.05.17

[Zaurus]Zaurus用Twitter簡易クライアントRQTwitter

友達なんか居ないのにTwitter始めてみました。

ボロくてすいませんが、Ruby/QteでLinux Zaurus用のTwitterクライアントを作ってみました。名前は「RQTwitter」。ほぼ正常系しか確認してないので、エラーが出るはず。何かあったら教えてください。

qrtubeのソースを参考にしました。

Qpe::Configで設定を~/Setting/xxx.confに書き出す処理が参考になりました。
参考:Ruby/Qte普及委員会の「設定ファイル (Qpe::Config) の保存とリストア

免責

責任取れません。

不具合のようなもの

発言中に貼ったURLが自動的にtinyurlで省略された場合、今のところエラーが出ます。
送信が成功したかどうかを、送信後にサーバから返信されてくるものとの一致で判断しているので。

ダウンロード

RQTwitter v1.2 (2007/06/25) ネオ人柱版

「rqtwitter_1.2_arm.ipk.bin」をダウンロード

RQTwitter v1.1 (2007/06/20) 朝まで人柱版

「rqtwitter_1.1_arm.ipk」をダウンロード

履歴

v1.2
・タイムライン取得をスレッド化、エラー表示方法変更
・スレッド化にともないタイムライン取得を中止できるように
・初回は24時間以内の20件を取得、次回以降は差分を取得するように
・新しいメッセージがあった場合に着信音を鳴らせるように
・一定時間ごとの定期的チェックができるように
・時刻のパースにTime.parseを使うように
・Post時にUser-Agentを送るように

v1.1 APIの時刻フォーマット変更への対応

v1.0 ダイヤルアップ後に自動更新できるように

v0.9 タイムライン画面で"A"で発言中のURLをNetFrontでブラウズ

v0.8 更新ボタン利かなくなっていたのを修正。タイムライン画面で"S"もしくは"Space"で更新できるように

v0.7 送信メッセージのヒストリ機能追加 Ctrl + Up / Ctrl + Down

v0.6 送信後クリア、送信後タイムライン更新、送信後タブ切替機能追加

v0.5 タイムアウト時間設定機能追加、送信後の自動切断後にサスペンドへ移行する機能追加。

v0.4 v0.3でタイムラインが表示できなかった不具合修正、エラー処理強化、Twitterのページへのジャンプ機能追加。

v0.3 タイムラインの表示機能追加

インストール

Rubyをインストール→FocVさんのPrivate Packagesよりダウンロード

Ruby/Qteをインストール→Takahiro's inside outさんからダウンロード

RQTwitterをインストール→上記よりダウンロード

Ruby/Qteは、今なら「ruby-qte_0.5.4_arm.ipk」というパッケージですね。
Rubyは「ruby_1.8.6-1_arm.ipk」というパッケージです。

スクリーンショット

※スクリーンショットはv.0.4のもの

タイムライン画面:

Rqtwitterscreen02

POST画面:

Rqtwitterscreen01

設定画面:

Rqtwitterscreen03

使い方:設定とPOST

「設定」タブで「ユーザー」と「パスワード」を入力。そして、「更新」ボタンを押してください。

「Home」タブにある入力欄にテキストを入力して、ネットワーク接続後、「送信」ボタンを押すか、Ctrl + Enterを押します。

よりクイックに送信するために「テキスト編集で自動ダイヤルアップ」、「送信後自動切断」という機能があります。

「設定」タブの当該チェックボックスをON、「接続」コンボボックスから設定済みのダイヤルアップの設定を選択し、「更新」ボタンを押します。

すると、入力欄にテキストを打ち込むやいなやダイヤルアップが開始され、送信が完了するやいなや切断されるようになります。

「設定」タブの「自動切断後サスペンド」チェックボックスをONにすると、切断後にサスペンドします。

設定は、「~/Setting/rqtwitter.conf」という名前で保存されます。パスワードは平文での保存です。

今、Twitterのサーバはものすごく重くなる時間帯があります。タイムアウトしたり、例外が出たりするときは、タイムアウト時間を長く設定してみてください。

ちなみに、アイコン長押しで出るダイアログで高速起動を入れると、起動が早くなります。

使い方:タイムライン

オンライン時にCtrl + Rを押すか、タイムラインタブの「更新」ボタンを押すか"S"キーを押すか"Space"キーを押すと、タイムラインの取得/更新をします。

カーソルキーでタイムラインの特定行にフォーカスを合わせ、Enterを押すとPOST画面に発言者の名前が引用され、また同時にその発言内容がクリップボードにコピーされます。レス・引用支援機能ですね。

Twitterサーバが重くてタイムアウトする場合は、「設定」タブの「タイムアウト」を長く取ってみてください。

キーボード操作

■タイムラインタブ

S:タイムライン更新
A:発言中のURLをNetFrontでブラウズ
Space:タイムライン更新

■送信タブ

Ctrl + Up:送信メッセージのヒストリを呼び出す(逆)
Ctrl + Down:送信メッセージのヒストリを呼び出す(正)
Ctrl + Enter:メッセージの送信
Ctrl + W:全選択
Ctrl + U:入力のクリア
Ctrl + A:行頭
Ctrl + E:行末
Ctrl + K:カーソル以降削除

■共通

Ctrl + Space:タイムラインタブとPOSTタブのトグル表示
Ctrl + R:タイムライン更新
Ctrl + 1:ダイヤルアップ開始
Ctrl + 2:ダイヤルアップ切断

以下余談

Yet AnotherなTwitterクライアント探し。

mofiganさんのMeadowでTwitter

バックエンドがcscriptだからWindowsだけですねー。

RubyForgeにRuby Twitterあり。日本語解説Ruby Twitter Gem簡易リファレンス
Mac OS X Tigerへのインストールは、gem経由で、

$ sudo gem install hpricot --source http://code.whytheluckystiff.net
$ sudo gem install twitter

でOK。hpricotは、現時点で一番バージョンが大きな「hpricot 0.5.140 (ruby)」をチョイス。
--sourceを指定しないと選ぶことになるhpricot 0.5では、Ruby Twitterは動きませんでした。
デフォルトutf-8設定のTerminal.appから、

$ twitter post "テスト"

でTwitterにPOSTできました。

| | Comments (3) | TrackBack (1)

2007.03.29

[Zaurus] Exif Jpegヘッダー/サムネイル操作プログラムjhead Version 2.7のZaurus向けパッケージ

Exif Jpegヘッダー/サムネイル操作プログラムであるところのjhead 2.7のLinux Zaurus向けパッケージを作りました。

exiftags、Exiv2の類いのものです。Exif等のメタデータ好きなもので……。

以前パッケージを作ったexiftagsと違ってExifの操作ができます。
サムネイルの抽出、置換、生成ができたりと高機能です。
普通のJpegにExifを新しく埋め込んだりできます。
あるJpeg画像に埋め込まれたExifをほかのJpeg画像に移したりできます。
Exifの削除ができます。

「jhead_2.7-1_arm.ipk.bin」をダウンロード

使い方一例

Exifタグを標準出力に表示

$ jhead dscf0001.jpg

File name : dscf0001.jpg
File size : 789239 bytes
File date : 2007:03:29 18:31:04
Camera make : FUJIFILM
Camera model : FinePix40i
Date/Time : 2001:12:31 14:24:56
Resolution : 2400 x 1800
Flash used : No
Focal length : 8.7mm (35mm equivalent: 31mm)
CCD width : 10.08mm
Exposure time: 0.015 s (1/69)
Aperture : f/9.8
ISO equiv. : 200
Metering Mode: matrix
Exposure : program (auto)

サムネイルを書き出し

$ jhead -st thumb.jpg dscf0001.jpg

Exifタグによるファイルマッチング(FinePix40iで撮影したファイルをリストアップ)

$ jhead -model 'FinePix40i' *.jpg | sed -e '/File name \+: /s///p;d'

関連するエントリは以下です。jheadと併用が前提になっているjpegtranを含むパッケージがあります。
jpegtranは無劣化で画像の回転ができたりして便利ですが、Exifに対応しておらず、これで加工するとExifタグが落ちてしまいます。しかし、jheadの「-cmd」オプションを使うと、jheadが事前にExifタグを退避し、加工後のファイルにExifタグを再び埋め込んでくれます。「-cmd」オプションの引数にjpegtranのコマンドラインを書けば、Exifタグ対応のjpegtranの出来上がりです。jpegtranにとどまらず、汎用に使うことができるのでとても便利ですね。しかも、ワイルドカードが使えるのでシェルスクリプトの「for in」ループ要らずです。

jpegtran(JPEG加工ツール)
cjpeg(JPEGエンコーダ)
djpeg(JPEGデコーダ)
wrjpgcom(JPEGコメントライター)
rdjpgcom(JPEGコメントリーダ)

JPEG加工ユーティリティ集jpeg-progs 6bのZaurus向けパッケージ

高速JPEG縮小ライブラリEpeg 0.9.0とコマンドepegfe 0.0.1、EXIF情報表示exiftags 1.00のZaurus向けパッケージ

| | Comments (0) | TrackBack (0)

2007.03.20

[Zaurus] Linux Zaurus向けPerl5.8.7パッケージ(幾霜版)

すいません。しばらく403で落ちていました。理由は恥ずかしくて言えない……。

幾霜さんのところにあるビルド済みPerl5.8.7を入れてみたくなったので、そのまんまパッケージにしてみました。

SDへのインストールが完了することを確認しています。SDにインストールすると、膨大な数のシンボリックリンクを張るので、相当時間がかかります。
画面が真っ白になることもあるかと思いますが、自分のところではその状態を経た後インストール完了することを確認しています。

perl-man_5.8.7-1_arm.ipkは、manが不要なら入れないで大丈夫です。

CPANができるのも確認してますが、これswap入れてもメモリが逼迫してターミナルが吹っ飛びますね。特に初回CPAN時の./cpan/Metadata生成時は必ず吹っ飛びます。ターミナルが吹っ飛んでも作業を続行していたので、放置していたら終わりました。「init 2;chvt 1」して生コンソールに落ちてからやった方がいいのかもしれません。はけさんの日記「Qtopiaを抜けて」経由で知りましたが、Qt上だと、swapをONにしていても勝手に終了させられてしまうそうで。
CPANするには、少なくともGNU Makeが必要です。

「perl-bin_5.8.7-1_arm.ipk.bin」をダウンロード

「perl-lib1_5.8.7-1_arm.ipk.bin」をダウンロード

「perl-lib2_5.8.7-1_arm.ipk.bin」をダウンロード

「perl-lib3_5.8.7-1_arm.ipk.bin」をダウンロード

「perl-lib4_5.8.7-1_arm.ipk.bin」をダウンロード

「perl-lib5_5.8.7-1_arm.ipk.bin」をダウンロード

「perl-man_5.8.7-1_arm.ipk.bin」をダウンロード

| | Comments (2) | TrackBack (0)

2007.03.12

[Zaurus] SKK用辞書サーバskkserv2 20051107パッケージ

そういえば、Linux Zaurus向けのskkserv2のバイナリパッケージが無いようなので置いておきます。

gcc2.95ではコンパイルできなかったので、gcc3.3でコンパイルしました。

ダウンロード

skkserv2のほか、libgcc3.4.4、libstdc++.so.5が必要です。

「skkserv2_20051107_arm.ipk.bin」をダウンロード

「libgcc_3.4.4-1_arm.ipk.bin」をダウンロード」

「libstdc5_3.4.4_arm.ipk.bin」をダウンロード

「libstdc5_3.4.4_arm.ipk.bin」は、「libstdc++5_3.4.4_arm.ipk.bin」というファイルなんですけどねぇ。アップロード時に名前が変わってしまいます。

別途SKK辞書が必要です。FocVさんのところにパッケージがあります。
FocVさんのパッケージを入れると、辞書は以下のパスに入ったと思います。

/opt/QtPalmtop/share/skk/SKK-JISYO.L

インストール

skkserv2に用がある人に説明不要でしょう。

「/opt/QtPalmtop/bin/skkserv2」として入ります。

僕は、

skkserv2 -p 1179 /mnt/card/SKK-JISYO.L &

などとして実行してます。

skkserv2 -d -p 1179 /mnt/card/SKK-JISYO.L &

といったように -d を付けるとデバッグメッセージが表示されるので、動作を確認しやすいです。
skkserv2にSKKからアクセスがあると、都度表示されます。

.emacs.elの記述は以下。下二つはいらないと思いますが。

(require 'skk-setup)
(setq skk-server-host "localhost")
(setq skk-server-portnum 1179)
(setq skk-server-prog "/opt/QtPalmtop/bin/skkserv2")
(setq skk-server-jisyo "/mnt/card/SKK-JISYO.L")

結構メモリを食うようなので、swapが必要かもしれません。

| | Comments (0) | TrackBack (0)

2007.03.11

[Zaurus] Rubyを使って現在位置の地図を一発表示 RQPosition.rb

2007.5.30追記

ほかの環境だと動かないみたいですね。ご迷惑おかけします。
僕の環境は、SL-C3200 + AH-S405Cです。端末が違うとダメなんでしょうかね。
協力していただける方がいらしたら、端末からの出力のログを取るスクリプトを置こうかと思います。
「ざうもに」は多くの端末に対応できているようなので、あれを参考にするといいのかな。
でも、ざうもにはC言語なんだよなー。

結局、KeyHepler Appletからrequireを通す方法が分からないので、そのうちRuby/QteでGUI付けようかと思ってます。

本題

RQPosition.rbというLinux Zaurus用Rubyスクリプトを作ったので置いておきます。

本スクリプトはPHSから位置情報を取得して、それを元にマピオンで現在位置の地図表示をします。
ブラウザはNetFrontを使用していますが、Operaでも大丈夫なんではないでしょうか。

特徴は、実行一発で地図表示することです。

いちいちダイヤルアップしたり切断したりをしなくていいようになっています。

また、Rubyスクリプトなので、容易に変更が可能です。

GUIはありません。KeyHelper Appletに登録して実行……してほしいところですが、うまくいっていません。こちらのエントリをどうぞ「[Zaurus] RubyとKeyHelper Appletで質問」。

免責

責任取りません。

ダウンロード

「rqposition.rb_2007.03.10_arm.ipk.bin」をダウンロード

使い方

rqposition.rb DialUp.conf

などといった感じで、ダイヤルアップのコンフィグファイル名を引数に与えます。
コンフィグファイルは以下のパスにあります。ここを調査して、適当なコンフィグファイルを指定します。

"/home/zaurus/Applications/Network/modules/"

-rw-r--r-- 1 zaurus qpe 838 Oct 1 20:08 DialUp.conf
-rw-r--r-- 1 zaurus qpe 838 Oct 1 20:02 DialUp0.conf

上記パスは内部処理で足しますので、ファイル名だけ指定すればOKです。

KeyHelper Appletへの登録は現状うまくいかなくとも、Shell Scriptから呼び出したり、aliasに登録するなどは可能です。

インストール

上のリンクからダウンロードしたパッケージをインストールします。

Rubyとruby-serialport、libgcc3.4.4が必要です。

「ruby-serialport_0.6_arm.ipk.bin」をダウンロード」

「libgcc_3.4.4-1_arm.ipk.bin」をダウンロード」

ruby-serialportのパッケージはFocVさん版のRubyパッケージのディレクトリ構成を前提としているので、RubyはFocVさんのものを使うと不便が無いかと思います。

KeyHelper Appletへの登録

これできないと意味無いですよね……。

注意点

処理中に電源を切るとstopして確実におかしくなるので、処理中は電源を切らないでください! それでも切った勇敢なあなたは、WhatsUpOnZ、kill等で当スクリプトをkillしてください。

これに対処すべくTrapでSIGSTOPを捕捉しようとしましたが、スペカ入れているせいか捕捉できないorz...。同時に監視スクリプトを起動してstopしてたらkillって感じですかね? それともスレッド化でしのげるものなのだろうか。

活用

パッケージをインストールすると、/opt/QtPalmtop/bin/rqposition.rbにスクリプトが入ります。
これを適当な場所にコピーして、編集するといいんではないでしょうか。

主処理はPhsという名前のモジュールに分割しているので、そのメソッドを呼び出すと簡単に使えます。
ただ、低品質だし、モジュールの作法とか分かっていないので、ファイルを分けることはやってません。
あくまでも「俺スクリプト」です。

「Phs.position_info」を呼び出すと返り値で位置情報が取得できます。

LatLon.pc # 郵便番号
LatLon.n1 # N{ココ}.nn.nn Enn.nn.nn
LatLon.n2 # Nnn.{ココ}.nn Enn.nn.nn
LatLon.n3 # Nnn.nn.{ココ} Enn.nn.nn
LatLon.e1 # Nnn.nn.nn E{ココ}.nn.nn
LatLon.e2 # Nnn.nn.nn Enn.{ココ}.nn
LatLon.e3 # Nnn.nn.nn Enn.nn.{ココ}

できなかった場合はfalseが返ります。できなかった場合も空のオブジェクトで返した方がいいんだろうか。
緯度、経度が取得できても郵便番号が取得できないことがあるので、その場合は「0000000」を返すことにしてます。

スクリプトのmain()を抜き出したのが以下です。Phsモジュールのメソッドを呼び出してます。
簡単にカスタマイズが可能なことが分かると思います。
例えば、Yahoo!地図の場合は、「url = 」を以下のようにすればOKです。

url = "http://map.yahoo.co.jp/pl?nl=#{p.n1}.#{p.n2}.#{p.n3}&el=#{p.e1}.#{p.e2}.#{p.e3}"

現在地の郵便番号から住所を検索したい場合は

url = "http://search.post.japanpost.jp/kt/zip/e7.cgi?z=#{p.pc}&xr=1"

でOKです。Operaを使いたい場合は、最後のやつを以下のようにすればOKなはずです。
Operaを使っていないので確認してませんが。

system("qcop QPE/System 'execute(QString,QString)' " +
"opera '#{url}'" )

main()を抜き出したもの

# 位置情報を取得、変数pに代入
p = Phs.position_info

# 位置情報が取得失敗した場合はfalseが返るので
# 事前処理が必要
if(p == false)
#タスクバーにメッセージ表示
Phs.mes("Failed get position info.")
#実行終了
exit
end

# URLを生成 とりあえず日本測地系で、セグメントごとにバラしてます
url = "http://www.mapion.co.jp/c/f?uc=1&nl=" +
"#{p.n1}/#{p.n2}/#{p.n3}&el=#{p.e1}/#{p.e2}/#{p.e3}" +
"&scl=10000&size=665,460&grp=Air"

# 郵便番号(postal code)の取得(取得できなかった場合は"0000000"が返る
#puts "postal code: " + p.pc

# ダイヤルアップ開始
# 引き数無しの場合は"DialUp.conf"になります
# /home/zaurus/Applications/Network/modules/ にあるダイヤルアップの
# confを指定します
if(Phs.connect(ARGV[0]))

# ブラウザで表示
system("qcop QPE/System 'execute(QString,QString)' " +
"netfront3 '#{url}'" )

一応ソース

ruby-serialportのサンプルがkodersとかにもあんまり無くて苦労したので、一応載せておきます。

「rqposition.html」をダウンロード

予定等

ここを見てMolodensky法のサブルーチンを移植したので、世界測地系への対応も可能ですが、NetFrontでGoogle Mapが見られないみたいで、実装はやめました。
Google Mapのメリットって何かありますかね。

あとは、緯度、経度を10進の小数で使うところもあるみたいで、そのメソッドは付けようかと思ってます。

| | Comments (0) | TrackBack (0)

[Zaurus] RubyとKeyHelper Appletで質問

Rubyで現在位置をマピオン等で表示するLinux Zaurus用スクリプトを書いたはいいんですが、KeyHelper Appletから実行できなくて困ってます。

10_position = @exec/opt/QtPalmtop/bin/ruby /opt/QtPalmtop/bin/rqposition.rb DialUp.conf

keyhelper.confへの登録は上記のようにしますが、requireが通りません。requireのあるスクリプトはエラーコード1で終わります。

/opt/QtPalmtop/bin/ruby -I /opt/QtPalmtop/lib/ruby/site_ruby/1.8/arm-linux/ /opt/QtPalmtop/bin/rqposition.rb DialUp.conf

といったように-Iオプションを加えてみましたが、どうもだめなようです。
もしお時間あったらどなたか教えてください。

#!/usr/bin/env ruby

require 'date'

テストコードは上記で十分です。
これすらKeyHelper Appletから起動するとエラーコード1となります。

よろしくお願いします。

| | Comments (0) | TrackBack (0)

2007.03.03

[Zaurus] Rubyからシリアルポートをコントロール ruby-serialport

Rubyからシリアルポートをいじれると、ぜってーおもしれーと思い、ruby-serialport 0.6をコンパイルしてみました。ruby-termiosを最初にいじってみようとしましたが、わけ分かんな過ぎて諦めました。

FocVさんの配布しているRubyのパッケージ向けのディレクトリ構成です。パッケージにはruby.hがいっしょに入っていたので助かったです。

開発環境をgcc3.3ベースにしたので、使う場合はlibgcc_3.4.4をインストールする必要があると思います。

「ruby-serialport_0.6_arm.ipk.bin」をダウンロード

「libgcc_3.4.4-1_arm.ipk.bin」をダウンロード

一応ruby-termiosもパッケージ置いときます。

「ruby-termios_0.9.4_arm.ipk.bin」をダウンロード

とりあえずPHSから位置情報を取得するのはOKでした。CFGPS2からもOKです。
CFGPS2の方は、

sp = SerialPort.new(port, 4800, 8, 1, SerialPort::NONE)

と4800bpsでOKかと思います。
ちょっとテストしてみたうんこRubyスクリプト置いておきます。

「ruby-serialport01.html」をダウンロード

可能性は無限大ですね。手始めに測地系の簡易変換関数でも移植しようかな。

| | Comments (2) | TrackBack (0)

2007.02.25

[Zaurus] マップ対策?

この時期、マップをダウンロードしまくっている人が多いみたいですね。

ダウンロードには認証がかかっていて、なおかつhttpsのやりとりということで、調査に制限がかかってきます。
Etherealでキャプチャしてみると、当然横から見ているものだから暗号化されていて中身が見えない。

フォームの解析だけでは限界があって、うまく認証が通らない。
https通信の内容を知り得るのはブラウザ自身のみ、ならばFirefoxの拡張で何とかなるんでは、と調べてみると、

LiveHTTPHeadersというものを発見しました。

これはとても素晴らしい一品で、httpsのやりとりでもバッチリ分かります。
いや、勉強になった。
みなさん、こういう場合はどういう手法で調査してるんですかね。

| | Comments (0) |