Flex BuilderでAIRアプリを作ってみた

2009/06/29

とりあえず作ってみた。アイコンは手抜き

ダウンロード: airファイル

ソース

gist.github.com

これは何

明日までの時間をミリ秒で表示します
プログレスバーとかのいい練習になった。参考にどうぞ


Ruby+JSの疑似Cometで疑似チャットを作ってみた

2009/06/14

注意:セキュリティチェックとかしてません!実装も甘いです!要注意!このスクリプトを使って何が起きてもソラは責任をおいません。自己責任でお願いします。
解説は後で書く。今回はファイルが大きいのでzipにした。
jQueryを同梱しています。
jQuery, Copyright (c) 2009 John Resig
ダウンロード: cometchat_sample.zip

使用しているライブラリなど

  • Ruby使ってます
  • Activerecordを単体でつかっています。gem install active_recordを行ってください。
  • sqlite3-rubyを使用します.インストールは少し大変です。Mac(leopard)では標準で付属しているので大丈夫です。Windowsはこちらを参考にインストールしてみてください。
  • CGIでローカルで動作させられることが条件です。Mac以外の人は、clog.rb,comet.rb,log.rb,post.rbの先頭の#!/usr/bin/rubyを環境に合わせて修正してください。
  • 共有サーバーで動かすのはちょっと迷惑かもしれません。

パーミッション

  • 設置したフォルダ 707(動かなければ777でw)
    • chat.sqlite 606(動かなければ666でw)
    • clog.rb,comet.rb,log.rb,post.rb 705(とりあえず動かなければ+xでもしておけばいいでしょう)

と設定してください。書いてないファイルは変更しなくて大丈夫です

データーベースについて

既にmigrateされたものが(設定されたものが)同梱されてますが、
一度削除して初期化する場合は
chat.sqliteを削除して、
migrate.rbを実行し(CGIではなくコマンドラインで)
再度パーミッションを設定してください。

解説

後で書く。


Rubyで疑似Cometを実装してみた。

2009/06/13

追記:Firefox+Firebugじゃないと動かないような感じがしたので急いで修正
業務連絡:そろそろ書かないとやばいので書きます。というかほかの人書いてくださいよ!リーダー!
Ruby@ApacheCGIでCometを実装してみた。
ソースは3つに分かれてまう。

  • index.html(表示部)
  • comet.js(Javascriptクライアント)
  • comet.rb(CGI)

すべてgist.github.comにあげました。
http://gist.github.com/129015

Cometを一行で解説

ずっと読み込んでて、イベント(チャットに発言されたとか)がきたらその内容を出力して、クライアントが再接続するの繰り返し!

何をイベントにするか

「あるメッセージを任意のタイミングで送信して、クライアントで表示」めんどくさい。
「毎0秒がイベント」簡単そう!
というわけですぐ実装しました。イベントは「毎0秒に現在時刻を送信」。

Ruby側実装


function createHttpRequest(){//XMLHttpRequestのブラウザ間の違いを補助する関数
  if(window.ActiveXObject){
try {
return new ActiveXObject("Msxml2.XMLHTTP")
} catch (e) {
try {
return new ActiveXObject("Microsoft.XMLHTTP")
} catch (e2) {
return null
}
}
} else if(window.XMLHttpRequest){
return new XMLHttpRequest()
} else {
return null
}
}

function requestFile(){//読み込み
var hobj = createHttpRequest();
hobj.open('GET','comet.rb',true);//GETメソッドでcomet.rbを非同期で読み込みます
hobj.onreadystatechange = function() {//readyStateが変更されたときのイベント
if (hobj.readyState==4) {//readyStateが4ならば(読み込み完了)
mesobj = document.getElementById("message");
mesobj.innerHTML += hobj.responseText+"
";//出力して
//mesobj.innerHTML = hobj.responseText + mesobj.innerHTML;
setTimeout(requestFile,1000);//一秒後に再読み込み(即時で読み込みを開始すると、0秒時点で6回ぐらい呼ばれるため)
}
}
hobj.send('');//読み込みを開始
}
requestFile();

(色付き,インデント付き[gist.github])
こんな感じです。細かいところはコメント参照。
たったこれだけで疑似Cometが動くんです。

動かしてみる

cgiで動かすので、Apacheとかの設定、パーミッションの設定を行ってアクセスしてみると

おおおお!動いてる!

おおおおお!読み込んでる!すごい!
って感じになります。

メリット・デメリット

メリット:

  • ほぼ時間差がなくメッセージなどを受信できる。

メリット少ないな
デメリット:

  • 負荷がかかることがある
  • 共有サーバーでは負荷がかかって迷惑になりそう><
  • 共有サーバーではプロセスがkillされたりして動かない><
  • 共有サーバーでアカウント削除なんてことも・・・あるかも

デメリット・・!
でも、気にしないことにします。共有サーバーで動かせないのはなあ・・・。仕方ないか。

まとめ

  • 「Cometってむずかしそう・・・」=>「Cometって面白いし簡単!」
  • やっぱり共有サーバーでは動かせないので、自宅サーバーなどじゃないとむずかしい。
  • 実装も簡単だった。XMLHttpRequestを少し覚えられた。
  • なにかに応用してみたい

よくわからない文を見てくれてありがとうございました。


Macにsubversionをportで導入するとき、surfでエラーがでる場合の解決方法

2009/05/24

なんかMacbookにしてからsvnでソースを落とすとかやってなかったけど、なんか久々にやってみたらエラーが出たので一度uninstallして再インストールしてみた。
でもエラーがでたりしたのでとりあえずググれカスとかの人向けに自分用に解決方法をメモっておきます。
エラー:

–> Building serf

とりあえず勘で

sudo port install serf

を実行してみて、今度は

configure: error: Sorry: can’t find libtiff

となったので

sudo port install tiff

をやって、またserfを入れ、今度こそsubversionを・・・!
またserfでエラーでました。

ld: library not found for -ldb-4.5

はい。なんのこっちゃ。とか思ってていろいろ調べたけど
標準で入っていたので意味がありませんでした!おとなしくそれつかおう。
これに関して知っている人はコメントor sorah[at]yrfw.netまで!


ドメインを取得しました

2009/05/23

WP.comに登録しようと思ったけど有料なのでURL転送つかってます。
xrea鯖に移転したーい!とか思ってます。
でもまあいいや。
とまあ、本題に入ります。
ドメイン盗りました。
http://yrfw.net/
このurlにアクセスするとここに飛ばされます。
http://yrfw.net/about_us
とかやるとAbout usに飛ばされます。
ベンリベンリ。
まあ、これからもよろしくお願いします


Pasta-Kです

2009/05/21

僕のことを知ってる人も知らない人もこんにちわ。

今から、自己紹介記事を書きますが、決して、ソラに「記事書けや」と脅されたわけじゃないです。

と言っても、面白く書くにも思いつかないので、怠惰の限りを尽くしメンバー一覧にも書いた自己紹介をコピペします。

京都の某高校で怠惰な日々を送り続ける高校一年男子。
扱う言語は低レベルなjavascriptとphp。日常生活ではそれ以下のレベルの日本語を使用中。
Online.sg(http://onsg.techtalk.jp)のスタッフです。

ブログ: http://d.hatena.ne.jp/Pasta-K
Twitter: pastak
ツッコミ・質問はpastak[at]yrfw.netまでどうぞ。

担当はプログラミング雑記と言い張っているので、プログラミングに関する与太話から真面目なtipsまでを書くつもりです。

情報提供やリクエストお待ちしております。

ではまた。


このサイトについて(2)

2009/05/21

初めまして、daiki CHIJIWAです。
先程ソラが書いたように、このサイトではプログラミング関係の記事を書いていきます。
筆者は現在2人だけですが、これから少しずつ増やしていきたいと思っています。
よろしくお願いします。

筆者紹介

daiki CHIJIWA
・P2Pや言語処理系などの記事。

原上ソラ
・WEB開発などの記事。

詳しくは主な筆者を参照してください。


このサイトについて

2009/05/21

ソラです。初めましての人は初めまして。知ってる人はこんにちは!
このサイトについて、daikiが書かないので少し書かせてもらいます。
一応リーダー・daikiが詳しく書くと思いますが、とりあえず仮で書かせてもらいます。

このサイトの主旨

ゆるふわ系なプログラミング情報サイトです。主にプログラミング技術やtipsなどを書いていきたいと思っています。雰囲気を似せたいサイトはあるんですが、あえてここには書きません。

このサイトの運営方法

複数人で書いていきます。リレーとかじゃなくてお好みで。
まだリーダーのだいきちと副リーダーの自分合わせて二人しかいませんが、まあこれから徐々に拡大していくと思います。

筆者について

一応現在はこちらからの誘いで拡大していくつもりです。
書きたい!っていう人はもうしばらくお待ちください。

一応

こんな感じです。
のろのろとやっていきますが、そのうち活発に活動し始めます!
応援よろしくお願いします。


フォロー

Get every new post delivered to your Inbox.