Dojoでのイベントとログ出力

イベント dojo.connect() を使う。 でもloadのときはdojo.addOnLoad()を使う。 ログ djConfig="isDebug: true"を設定する。 console.log() 関数でログを出力する。 <html> <head> <script type="text/javascript" src="dojo/dojo.js" djConfig="isDebug: true,parseOnLoad: true"> </script> <script type="text/javascript"> dojo.addOnLoad(function() { var lo…</head></html>

Web2.0なトピックのpodcast

Audible Ajax ajaxian.comのpodcast。時々配信される。 Google Developer Podcast Googleが何か発表すると新しいエピソードが配信されるpodcast。 YDN Theater Yahoo!に関連したイベントを録画したものやインタビューが多い。 YUI Theater Yahoo!で主催され…

Rubyのpodcast

Ruby(Ruby on Rails)を扱ったpodcast。一通りRailsの本を読んだりした後、復習に聞くといいかも。 LearningRails 「教科書を朗読する」感じで、日本人的には聞き取りやすい。このpodcast自体は、サンフランシスコで行われているRuby on Railsのセミナーの広…

mod_perlのハンドラでフォームのパラメータを取得する

Apache2::Requestを使うとCGIモジュールと同じようなparamメソッドが使える。以下のモジュールを /handler に登録した場合、http://localhost/handler?test1=Hello のようにクエリストリングにつけたパラメータを取得できる。また、パラメータをPOSTした場合…

mod_perlでレスポンスを返すための、最小限の設定

httpd.confに以下の設定をする。 LoadModule perl_module lib/httpd/mod_perl.so LoadModule apreq_module lib/httpd/mod_apreq2.so PerlSwitches -Mlib=/home/www <Location /hello> SetHandler perl-script PerlResponseHandler My::Hello </Location>/home/www/My/Hello.pm を作る。 p…

Ext のフェードイン & フェードアウト

Ext.ElementのfadeIn()、fadeOut()を呼び出せば、そのままフェードイン・フェードアウトしてくれる。 <html> <head> <script type="text/javascript" src="ext-2.0/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="ext-2.0/ext-all.js"></script> <script type="text/javascript"> function fade_out() { Ext.get('div1').fadeOut()…</head></html>

Dojoの fadeIn、fadeOut

dojo.fxモジュールを読み込む。 dojo.fadeIn、dojo.fadeOut 関数でアニメーションオブジェクトを作る。 play() メソッドを呼ぶ。 <html> <head> <script type="text/javascript" src="dojo/dojo.js" djConfig="parseOnLoad: true"> </script> <script type="text/javascript"> dojo.require("dojo.fx"); function fade_in() { dojo.fadeIn({node: dojo.byId('div1'),…</head></html>

ExtでDOM要素をhighlightする

Ext.get() で取得した Ext.Element のオブジェクトに直接highlight() メソッドが実装されているのでこれを呼び出す。div1 というidが割り当ててある要素がある場合は以下のように使う。 function highlight_test() { Ext.get('div1').highlight(); } Ext.get…

DojoでDOM要素をhighlightする

一瞬黄色になってそのあとゆっくり fade out する見た目のEffect。手順は DOM IDの文字列指定、または dojo.byId などで取得した DOM 要素を指定して dojox.fx.highlight のアニメーションオブジェクトを作る。 作ったアニメーションオブジェクトのplayメソ…

WindowsでRamazeを使う

2008年1月29日現在での、WindowsでRamazeを導入するまでの手順。1. Windows版Rubyを、RubyForgeのワンクリックインストーラを使ってインストールする(http://rubyforge.org/projects/rubyinstaller/)。2. コマンドプロンプトから以下のコマンドを実行する…

ExtのCSSセレクタ

Ext でも Ext.query('p.test_class') のように Ext.query 関数を使えば同じことができる。ExtでもCSS3の文法が使える。

DojoのCSSセレクタ

DojoにはCSSセレクタを指定することで、HTMLドキュメント中の複数の要素を配列で取得できる関数がある。 <h1>Test H1</h1> <p>para 1</p> <h2>Test H2</h2> <p class="test_class">para 2</p> <h2>Test H2</h2> <p class="test_class">para 3</p> このHTMLでは dojo.query('p.test_class') という関数で2番目と3番目のpを配列で取得できる。 var elem…

BorderLayoutのネスト

ExtのBorderLayoutで以下の図のようなインターフェースを作りたい場合は、BorderLayoutを「ネスト」させる。以下、BorderLayoutのメモ。 layout:'border' を指定したとき、デフォルトでコンテナになるのはPanel。TabPanelなど他のウィジェットも指定できる。…

ExtのTree

Ext 2.0のTreeウィジェットの使い方。 ツリー構造のデータは「あるノードに対応する子ノードのリスト」。子ノードリストは情報を持つURLからJSON形式でその都度取得し、JavaScriptで静的に定義しない。 子ノードのリストを返すURLは、ノードIDをPOSTするとJS…

DojoでTreeを使う

ドキュメントを読んだりいろいろ試したりしているが、なにか誤解してるかもしれない。 dijit.Treeウィジェットに、ツリー構造の中身をdojo.dataを使って指定する。 dojo.data.ItemFileReadStoreを使うとJSONで書けるなる(XMLとかCVSでデータを書けるオブジ…

Ubuntuでpkgsrc

Ubuntu 7.10をVMWare Fusionにインストールしてあるが、Ubuntu上でpkgsrcを使うには以下のパッケージが必要だった。 sudo apt-get install build-essential sudo apt-get install libncurses5-devNFSマウントはこれが必要。 sudo apt-get install portmap nf…

Text::ASCIITableで整形表示

ASCII ART風の「表」の形式を作成するモジュール。setColsで列のタイトルを設定してaddRowで行のデータを追加して行き、drawメソッドで表形式の文字列を取得する。 use Encode; use utf8; use Text::ASCIITable; my $tbl = new Text::ASCIITable(); $tbl->se…

Twitterのhome画面のtimeline

Net::Twitterで、APIの仕様はよく知らなくてもいろいろできる。home画面で表示されるtimelineの情報の取得は以下のようにする。 use Net::Twitter; my $twit = Net::Twitter->new(username=>"????????", password=>"????????" ); my $timeline = $twit->foll…

textproc/php-jsonをインストール

Ext 2.0のアーカイブを展開したすると examples/tree/get-nodes.php というファイルが出来るが、このスクリプトでは json_encode 関数が使われている。phpをpkgsrcからインストールしている場合は textproc/php-json をインストールした後、${LOCALBASE}/etc…

DBIのbind_columns

SELECT文を使ってデータを取得する場合、DBIから配列やハッシュで取得する以外に「列と変数を bind する」という方法がある。以下のようなテーブルがあるとする。 CREATE TABLE table1 ( id integer PRIMARY KEY, name text, email text ); 結果をハッシュで…

DBIx::Class::Schema::Loaderのクラスをカスタマイズする

人のデータを表すテーブルがあるとする。 CREATE TABLE person ( id integer PRIMARY KEY, first_name text, last_name text ); first_nameとlast_nameをつなげた full_name という仮想的な列があると便利。 package TestDB; use base qw/DBIx::Class::Schem…

Adobe AIR (Flex)のテキストファイルの読み込み方

プログラムの初期化時にテキストファイルを読み出して表示する。 ファイル自体を表現するクラスの「File」 ファイル中のバイト列を表現するクラスの「FileStream」 を組み合わせて使う。 <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" title="Read File" creationComplete="initApp()"> <mx:Script> </mx:script></mx:windowedapplication>

Ext 2.0のAccordion

「Accordion」と呼ばれているインターフェースは、実は使い所が難しいような気がしてきた。 <head> <script type="text/javascript" src="ext-2.0/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="ext-2.0/ext-all.js"></script> <script type="text/javascript"> Ext.onReady(function() { var panel = new Ext.Viewport({ layout:'acco…</head>

Dojo 1.0のAccordion

いつの間にかものすごいWebサイトにドキュメントが用意されているDojoのAccordionレイアウトの使い方。少し前まで「ドキュメント無いな〜」という感じだったのに。AccordionContainerの中にAccordionPaneを入れればOK。 <html> <head> <script type="text/javascript" src="dojo/dojo.js" djConfig="parseOnLoad: true"> </script> <script type="text/javascript"> dojo.require("dijit.layout.Acc</head></html>…

Adobe AIR (Flex)のNativeMenu(Windows)

Adobe AIR Beta 2 + Flex 3 で Windows 上でプログラムを作るときにNativeMenuを使う方法。ドキュメントや、Web検索で見つかるサンプルと少し違うような……。 <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" title="Hello World" creationComplete="initApp()"> <mx:Script> </mx:script></mx:windowedapplication>

DBIx::Class の newメソッドでレコードを作った場合に serial が増分されるタイミング

DBIx::Class で new をつかって新しい行を作っても、insert を実行するまでは serial から id の割り当てはしないらしい。実験データベース CREATE TABLE url_path ( id serial PRIMARY KEY, url text UNIQUE, title text not null ); INSERT INTO url_path(…

nkf のオプション

メモ コード in out UTF-8 -W -w ISO-2022-JP -J -j EUC-JP -E -e Shift_JIS -S -s 適当に推測するとよく間違う。

Dojo 1.0のタブ

こちらは TabContainer の中に ContentPane titleはつけないとクリックするところが出てこない レイアウト周りはExt 使うより易しい気がする。 <html> <head> <script type="text/javascript" src="dojo/dojo.js" djConfig="isDebug: true, parseOnLoad: true"></script> </head></html>

Dojo 1.0のレイアウト

以前にExtでやった「左にメニュー、右にコンテンツ」みたいなレイアウト(http://d.hatena.ne.jp/jgoamakf/20071105)を Dojo 1.0 でやった場合のソース。 LayoutContainer の中に ContentPane 場所は layoutAlign で指定 がポイントか? <html> <head> </head></html>

bbsmenu.html の Parse

最初にbbsmenu.htmlをダウンロードする。 ftp http://menu.2ch.net/bbsmenu.html 「<BR><BR>」で始まっている行がセクションの始まりなので、文字列を取得して現在のセクションに設定する。 空行でセクションの終わり。 セクションの始まりと終わりの間にでてきたリ…