トップページ | 2008年7月 »

2008年6月

たまには違う話題でも。

今回は、プログラミングとかそういうのとは全く無縁の話題です(笑)

既に気付いていらっしゃる方もいると思いますけど。
このブログのテーマ、時間によって変わるんですよね。
昼のときと夜のときで、違うのです。

考えたことさえなかったので、ちょっとびっくりしました。
「こういうのもアリだなー」と。

「ちょっとした遊び心」ですよね、こういうの。
でも、こういうのも忘れちゃいけないよね、って。

| | コメント (0) | トラックバック (0)

RubyでTwitterクライアントを作る(読むだけ編)

休日にひきこもって、作ってました。
ちなみに、Rubyでのプログラム経験無し。
この前本を買ったので、それを見ながら、というかんじでした。

以前から作りたかった、「Twitterのfriends timelineを取得して保存するクライアント」を作ってみました。
今日はお仕事休みになってしまったのでね。

http-access2を使いました。
これがまた便利で。
Cookieの管理もこのclassでやってくれるので、とても楽。

TwitterのhomeにアクセスするプログラムはこんなかんじでOKです。


require 'http-access2'
client = HTTPAccess2::Client.new( "" , "Set your User-Agent name" , "" )
targetURI = "http://twitter.com/sessions"
targetData = "username_or_email=" + id
targetData << "&password=" + password
content_body = client.post( targetURI , targetData , {} ).content
if ( /redirected/ =~ content_body ) then
targetURI = "http://twitter.com/home"
targetQuery = ""
content_body = client.get( targetURI , targetQuery , {} ).content
end

こんなかんじかな。
ログインパラメータに関しては、ログインページを見ればわかるかな。
TwitterとのHTTP通信内容 - きりの日記を参考にさせていただきました。

本文のHTML構造は、ソース見ればわかると思います。
とりあえず私の書いたソースの一部をば。

    cond = 0
content_body.each { |line|
case cond
when 0 then
if ( /<body/ =~ line ) then
cond = 1
end
# 中略
when 4 then
if ( /<table class=\"doing\"/ =~ line ) then
cond = 5
end
when 5 then
if ( /<td class=\"thumb vcard author\">/ =~ line ) then
cond = 6
end
when 6 then
# アイコン
%r|<a href=\"http://twitter\.com/([^\"]+)\"| =~ line
screenname = $1
%r|<img alt=\"([^\"]+)\"| =~ line
username = $1
%r|src=\"(http://[^\"]+)\"| =~ line
image_uri = $1
upd_protected = 0
entry_content = ""
# かうんと
getcount += 1
cond = 7
when 7 then
if ( /<strong><a href=/ =~ line ) then
cond = 8
end
when 8 then
if ( /<img alt=\"Icon_red_lock\"/ =~ line ) then
upd_protected = 1
end
if ( /<span class=\"entry-content\">/ =~ line ) then
cond = 9
end
when 9 then
if ( /<\/span>/ =~ line ) then
cond = 10
else
entry_content << line
end
when 10 then
if ( /<span class=\"meta entry-meta\">/ =~ line ) then
cond =11
end
when 11 then
# meta data
%r|<a href=\"([^\"]+)\"| =~ line
ptr_html = $1
%r|/([0-9]+)$| =~ ptr_html
unique_twitId = $1
%r|<abbr class=\"published\" title=\"([^\"]+)\"| =~ line
pubdate = $1
cond = 12
when 12 then
entry_content = entry_content.gsub( /\s+/ , " " )
entry_content = entry_content.gsub( /^\s+/ , "" )
cond = 5
# --- push to array
# --- debug out
print screenname , "(" , username , "):" , unique_twitId , "/"
print pubdate
if ( upd_protected == 1 ) then
print " [protected]"
end
print "\n"
print entry_content
print "\n"
# --- end of debug out
else
print "error??"
end
} # htmlbody.each

いきなりこういうかんじになって、はてなまーく連チャンかなと思います。
condの変数内容でどのへんを指してるかを説明すると、

0:実行前〜head要素
1:body要素開始
(中略)
4:「What are you doing」側。左側ね。
5:各発言の最初
6:ユーザーごとのアイコン
7:ユーザー名(太字)
8:protectedアイコン(もしあるなら)
9:本文
10:本文終了〜メタデータ
11:メタデータ(更新時刻とか)
12:メタデータ終了

・・・と、なります。
経験的に(?)、「いま、どの部分を見ているか」をcond変数で管理して、それをcaseで分岐させたほうがスマートと思ったので、こういう構造になっています。

| | コメント (0) | トラックバック (0)

番外編:15インチPowerBookG4(Al)のHDD交換

今回は、いきなりの番外編です。
使ってるPowerBook G4のHDD容量が逼迫してるので、そろそろやらなきゃなーと思ってます。
Titaniumのときと違って、すごく面倒という話はきいていたので、なかなかやらずにいました。

でも、そろそろ・・・と思って調べてみたら。
以下にやりかたが書いてありました。
PowerBook日記:【ハードディスク自力交換・前編】一難去ってまた一難去ってまた一難 - livedoor Blog(ブログ)
PowerBook日記:【ハードディスク自力交換・後編】.macの威力を思い知る - livedoor Blog(ブログ)
やはり難しいです(;´Д`)
とりあえず、最大の難所は手前の引っかけみたいですねー。

これは、土日をフルに使わないと無理かなー。

| | コメント (0) | トラックバック (0)

MacOSXの開発環境設定

とりあえず、私が使っている環境をどうやって作ったかを順を追って説明してみます。
※もう1台買って、新しく入れるときのメモ用としても。

■MacOSXのインストール
・X11をインストールするオプションを忘れないこと

■XCodeのインストール
・一通りインストールが終わってから。
・OSのインストールディスクの中に「XCode Tools」のフォルダがあるので、その中にあるインストーラを実行。


▼以下は任意。お好きな物をどうぞ。


■ktermのインストール
gccのパスが通っていれば問題なし。
ktermのソースは下記にあります。
ftp://ftp.x.org/contrib/applications/kterm-6.2.0.tar.gz
makeが終わったら、/usr/X11R6/bin に kterm をコピー。

$ sudo cp kterm /usr/X11R6/bin

MySQLのインストール
Downloadsのページ→インストールしたいバージョン(新しいほう)
やや下のほうに「Mac OS X (package format) downloads」があるので、これを使うと楽。

PostgreSQLのインストール
方法1:ソースをダウンロードしてmake。
方法2:インストーラに頼る。
  PostgreX - PostgreSQL Easy Installer for Mac OSXにあります。
  インストール・ユーザー作成から、initdbまでやってくれます!

■pathを通すのを忘れないように。
.bashrc に(必要に応じて)追加。

PATH=$PATH:/usr/local/mysql/bin ; export PATH
PATH=$PATH:/usr/local/pgsql/bin ; export PATH

■もしかしたら、/etc/hostconfig を弄る必要があるかも

MYSQLCOM=-YES-


▼既に入っているものは下記の通り
・Apache → コントロールパネルで「パーソナルWeb共有」を有効にするとOK
 httpd.conf とかは、/etc/httpd/ にあります。VirtualHostとかDocumentRootとか弄る人向け。
 ちなみに、http://localhost/~username/ で自分の ~/Sites/ にアクセスが出来ます。
・Ruby → 10.4.x は、1.8.2がデフォルトのはず。
 嫌な人は自前で入れ替えてもOK。
 (私のは、ruby 1.8.3 (2005-09-21) [powerpc-darwin8.6.0] になってました。)

| | コメント (0) | トラックバック (0)

今、やってること(2008/06/07現在)

手がけてる範囲ね。


▼OS系。
Windowsには、まるで興味がないですねー。仕事で使ってるくらい。

■FreeBSD
自宅にてサーバ運用中(2台ほど)
・Apache+PHPで遊んでる。
・postfixにてメールサーバ。

■MacOSX
いつもPowerBook G4を持ち歩いています。
X11入れて、常時起動中。当然ktermも。やはりこれがいちばん落ち着く(笑)


▼言語系
仕事でVisual C++を使って(ライブラリはMFCで)たり、VBAだったり。
正直好きじゃないですね。転職したら縁を切りたい(笑)

■PHP
いまいちばん使っているかな。

■Ruby
目下勉強中。


▼RDBMS
仕事ではMSSQLべったりなのですが、同様に好きじゃない(笑)

■PostgreSQL
前の勤務先で結構使っていたおかげか、いちばん勝手がわかってるかも。

■MySQL
Macに入れ・・・たまではいいけど、使ってない(笑)
使ってる環境が多いので、知ってないといけない部分が多いんだけどねー・・・。


▼その他
■Ajax
Web系でいろいろやってる都合、使うべき場面が増えてきたなー、と。
このへんも(システム設計の側面から)使えるようにならないと・・・というかんじ。


まぁ、守備範囲+興味範囲をずらずらと並べてみました。

| | コメント (0) | トラックバック (0)

はじめてみた

技術的なメモ中心でやってみようかーということで。
とりあえず作ってみました。

|

トップページ | 2008年7月 »