2007-01-01から1年間の記事一覧
Ext 2.0のTreeウィジェットの使い方。 ツリー構造のデータは「あるノードに対応する子ノードのリスト」。子ノードリストは情報を持つURLからJSON形式でその都度取得し、JavaScriptで静的に定義しない。 子ノードのリストを返すURLは、ノードIDをPOSTするとJS…
ドキュメントを読んだりいろいろ試したりしているが、なにか誤解してるかもしれない。 dijit.Treeウィジェットに、ツリー構造の中身をdojo.dataを使って指定する。 dojo.data.ItemFileReadStoreを使うとJSONで書けるなる(XMLとかCVSでデータを書けるオブジ…
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…
ASCII ART風の「表」の形式を作成するモジュール。setColsで列のタイトルを設定してaddRowで行のデータを追加して行き、drawメソッドで表形式の文字列を取得する。 use Encode; use utf8; use Text::ASCIITable; my $tbl = new Text::ASCIITable(); $tbl->se…
Net::Twitterで、APIの仕様はよく知らなくてもいろいろできる。home画面で表示されるtimelineの情報の取得は以下のようにする。 use Net::Twitter; my $twit = Net::Twitter->new(username=>"????????", password=>"????????" ); my $timeline = $twit->foll…
Ext 2.0のアーカイブを展開したすると examples/tree/get-nodes.php というファイルが出来るが、このスクリプトでは json_encode 関数が使われている。phpをpkgsrcからインストールしている場合は textproc/php-json をインストールした後、${LOCALBASE}/etc…
SELECT文を使ってデータを取得する場合、DBIから配列やハッシュで取得する以外に「列と変数を bind する」という方法がある。以下のようなテーブルがあるとする。 CREATE TABLE table1 ( id integer PRIMARY KEY, name text, email text ); 結果をハッシュで…
人のデータを表すテーブルがあるとする。 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…
プログラムの初期化時にテキストファイルを読み出して表示する。 ファイル自体を表現するクラスの「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>
「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>
いつの間にかものすごい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 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 をつかって新しい行を作っても、insert を実行するまでは serial から id の割り当てはしないらしい。実験データベース CREATE TABLE url_path ( id serial PRIMARY KEY, url text UNIQUE, title text not null ); INSERT INTO url_path(…
メモ コード in out UTF-8 -W -w ISO-2022-JP -J -j EUC-JP -E -e Shift_JIS -S -s 適当に推測するとよく間違う。
こちらは TabContainer の中に ContentPane titleはつけないとクリックするところが出てこない レイアウト周りはExt 使うより易しい気がする。 <html> <head> <script type="text/javascript" src="dojo/dojo.js" djConfig="isDebug: true, parseOnLoad: true"></script> </head></html>
以前にExtでやった「左にメニュー、右にコンテンツ」みたいなレイアウト(http://d.hatena.ne.jp/jgoamakf/20071105)を Dojo 1.0 でやった場合のソース。 LayoutContainer の中に ContentPane 場所は layoutAlign で指定 がポイントか? <html> <head> </head></html>
最初にbbsmenu.htmlをダウンロードする。 ftp http://menu.2ch.net/bbsmenu.html 「<BR><BR>」で始まっている行がセクションの始まりなので、文字列を取得して現在のセクションに設定する。 空行でセクションの終わり。 セクションの始まりと終わりの間にでてきたリ…
API Documentのサンプルと一緒。 <script type="text/javascript"> Ext.onReady(function() { var tab_panel = new Ext.TabPanel({ renderTo: 'tab-area', activeTab: 0, deferredRender: false, items:[ { contentEl: 'tab0-div', title: 'Tab 0' }, { contentEl: 'tab1-div', title: 'Tab </script>…
とりあえず左右に分けてみた。「左側にメニューがあって……」みたいな画面ならこれでOK。 <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"> Ext.onReady(function() { var viewport = new Ext.Viewport({ layout…</head></html>
テーブルを作る。 CREATE TABLE table1( c1 integer, c2 text, PRIMARY KEY(c1, c2) ); INSERT INTO table1 VALUES(1, 'a'),(2, 'b'),(3, 'c'),(4, 'd'),(5, 'e'); findの引数にはPRIMARY KEYになっている列の値を全て指定する。 $row = $db_schema->results…
UNIQUEフィールドを持つテーブルをつくる。 CREATE TABLE table2( c1 integer CONSTRAINT c1_unique UNIQUE ); INSERT INTO table2 VALUES(1),(2),(3),(4),(5); % psql -f testdb2.sql -d testdb1つのテーブルについて複数のUNIQUE制約を設定することができ…
PostgreSQLでテーブルをつくる。 CREATE TABLE table1( c1 integer PRIMARY KEY ); INSERT INTO table1 VALUES(1),(2),(3),(4),(5); % createdb testdb % psql -f testdb.sql -d testdbPRIMARY KEYに指定したフィールドの値を使って検索する。 package TestD…
Feed::Findというモジュールに、「RSS・Atomの auto discovery」が実装されている。 use Feed::Find; my @feeds = Feed::Find->find('http://d.hatena.ne.jp/jgoamakf/'); for my $feed_url (@feeds) { print $feed_url, "\n"; } % findrss.pl http://d.hate…
HTTP::Asyncを使うとき、HTTP::Requestにデータを追加できれば便利な気がする。例えば「あるURLに定期的にアクセスするプログラムで、2回 404 が続いたら別の処理をしたい」場合、前回のステータスをHTTP::Requestに保存できると、GETの結果を処理するときに…
こういうデータベースを作って CREATE TABLE table1( id integer PRIMARY KEY, data1 text ); CREATE TABLE table2( table1_id integer REFERENCES table1(id) PRIMARY KEY, data2 text ); INSERT INTO table1 VALUES(1, '1-1'); INSERT INTO table1 VALUES(…