プログラム

Ethnaのフォームヘルパが出力するHTMLのINPUT要素に読み込み専用属性

HTMLのINPUTタグで読み込み専用属性を与えるときは、 <input type="text" name="example" value="foo" readonly> とすることでよいのだけど、今日多少悩んだのは、Ethnaで作成しているアプリケーションのテンプレート中でフォームヘルパの機能を使って自動的にフォームを出力させる様にしているケースで... {form eth…

Amazon S3(Amazon Simple Storage Service)を使ってみる - PHPから操作

S3の契約からFirefoxでの簡単な操作も試みたので次はPHPから操作してみる。 今回利用したのは、google codeで公開されている"amazon-s3-php-class"(Standalone Amazon S3 REST implementation for PHP 5)を使った。 他にもいくつかライブラリを見つけたので…

Amazon S3(Amazon Simple Storage Service)を使ってみる - Firefoxプラグインで操作

Amaozon S3のアカウント開設が済んだので、実際にファイルをアップロードしてみる。 Amazon S3のAPIを見ると分かる通り、HTTPのPUTやGETでS3に命令を出す事ができる訳ですが、インターフェースの備えたツールがあるとオペレーションしやすいということで、S3…

Amazon S3(Amazon Simple Storage Service)を使ってみる - アカウント開設編

相変わらず1周、2周遅れているが、Amazon S3を使ってみた。 Amazon S3はAmazonが提供しているシンプルなストレージサービス。Twitterのプロフィール画像の保管とか大規模なサービスでもストレージとして使われているサービス。 あちこちのサイトで紹介もされ…

JavaScriptで文字列を切り詰める。prototype.jsを使って。

Ethnaの組み込みSmartyプラグインの "{...|truncate_i18n}"の様な処理をJavaScript側でできないかな。と、思っていたらprototype.jsのStringクラスの拡張でメソッドが用意されていた。 truncate([length = 30[, suffix = '...']]) -> string Truncates a str…

Ethna_Filterを継承したfilterでログを取る

ささやかにメモ。 Ethnaのフィルタクラスでログを取る場合、Ethna_Filterが継承されており、メンバに$loggerってのがいるので、それを使えばよい。 postFilterメソッドの中とかで $this->backend->getLogger() などとうっかりやってしまった。

PEAR::Cache_Lite_Function

以前も書いたPEARライブラリに登録されているキャッシュ処理のクラスに関数の呼び出し結果をそのままキャッシュできるものも含まれている事に気づいたので使ってみた。 メモリベースのキャッシュ機構がメジャーなのだろうけど、いま仕事で扱っている程度であ…

PHPでNaive Bayesを使ってみる

今月号のWEB+DB PRESS。 WEB+DB PRESS Vol.49作者: arton,桑田誠,角田直行,和田卓人,伊藤直也,西田圭介,岡野原大輔,縣俊貴,大塚知洋,nanto_vi,徳永拓之,山本陽平,田中洋一郎,下岡秀幸,ミック,武者晶紀,高林哲,小飼弾,はまちや2,WEB+DB PRESS編集部出版社/メ…

mercurial - その1 MacPortsでインストール

仕事でソースコード管理はSubversionでもVSSでもなくて、CVSを使い続けているのだけど多少は違う形態のものも知っておかないといけないと思っていたので勉強としてmercurialを試すべく自宅PCへ導入をしたので、その際のメモ。 環境はMacOSX10.5 Leopardな訳…

XCodeのバージョンアップ

愛用しているMacの開発環境一式はXcodeに依存している訳ですが、今使っているものは同梱のDVDに入っているものだったので多少バージョンが古い事に気づく。 ということで、Appleのサイトから最新のXcodeをダウンロードする。 ダウンロードのURLは以下の通り…

はてなダイアリーAtomPubをPHPで使う

はてなダイアリーAtomPubを使ってみた。PEARの中にもServices_Hatenaや、Do You PHP はてなの"mixiのあしあとAPI"の使い方を参照にしつつ。 Service_Hatenaはダイアリーの対応はまだの様だったので勉強がてら、PHP5専用で一から書いてみた。

fcounter

script.aculo.usを使ってみた事が数度あったのだけど、簡単に何か具体的に作ってみようと言う事でこないだからゴニョゴニョ作った。 単純なカウンタ。このブログにアクセスした記録を自分が利用しているサーバでも取っているので時系列でアクセス量を可視化…

VHDLで三項演算子

正確にはVHDLだと、条件付信号代入文か。セレクタだな。 たまにしか使わないので、すぐに忘れる。 s_out <= s_in1 when s_state = '1' else s_in2; あと、一致は"="だったな。"=="の様に重ねない。 改めて自分はなんでもやってて、何にもできてないなぁ。 こ…

Ethna_AppObject(まだ意見無し...)

昨日、折角コメント頂けたので少し考えてみようかな。と今朝から思っていたりしています。*1 http://ethna.jp/ethna-dblayer-discuss.html を見るとちょうど話題になっていたんだ..。 あと、あぁ、以前何気にちゃっかり読んでいた焼き肉会議の議事録にもちゃ…

Ethna_AppSeaechObjectを使ってみた

EthnaのAppObjectを使ってデータベースに検索条件を設定する場合、条件一致の場合は次の様にすればよい。 例えばSAMPLEというテーブルがあって、次の様な形だった場合、 NO MAILADRS USER URL MODE 1 foo@foo.com hideack ttp://d.hatena.ne.jp/hideack/ 1 2…

JavaScriptで連想配列をつくるとき

Javascriptで次の様な連想配列が作りかったとき。 PHPで書くとこの様な...。 "bar"; ); ?> 連想配列のキーは別途変数で保持られていて、値は直接与えられるケース。 これを、そのままのノリでJavaScriptで書くとこうなる。 str = "foo"; ary = {str : "bar"…

MD5の逆引きの話

PerlのCPANに、こんなライブラリがあった。 Digest-MD5-Reverse-1.3 http://search.cpan.org/~blwood/Digest-MD5-Reverse-1.3/ 要はMD5の得られたハッシュ値から、MD5に渡された値を得られる機能を持つらしい。 ソースのサンプルはこんな感じ。 use Digest::…

JavaScriptで加えられたDOM要素に対して後からスタイルシートを適用する(2)

昨日の回答は今ひとつだったようだ。 initのイベントってブラウザが読み込むタイミング(window.onload)なのだろうか? また別なのだろうか?? window.onload = function(){ addItem(); changeStyle(); } ま、ともあれ、解決したようなので何より。

JavaScriptで加えられたDOM要素に対して後からスタイルシートを適用する

id:its-tomから昨夜質問があった内容の回答。 質問の内容は表題の通り。 遅いかもしれないし、もう謎は解けたのかもしれないし。そもそも、私が質問を理解していないのかもしれない(ぉ 昨夜はバテバテでちょっと書けなかったので今日書いてみた。 JavaScrip…

Cisco developer content

以前、アルバイトで来てくれていた方*1が紹介してくれた。 シスコは、「プラットフォームとしてのネットワーク」のコンセプトを軸としたイノベーションの推進を目指して、既成概念にとらわれない考え方(think outside the box)のできるアプリケーション開…

Mapreduce1

最近、全く新しい知識が入らないので自発的に勉強中。 Mapreduceは、googleで利用されている分散処理アルゴリズム。 名の通り、"Map処理"と"Reduce処理"の2段階に分けて処理が行われる。 詳しくは末尾の参照ページをば。 内容をざっくり書くと... Map処理 入…

prototype.js bindメソッド

昨日の続き。 this.timer = new PeriodicalExecuter(this.showCounter, 2); と書いたときに何故未定義のエラーになったか。 prototype.jsのPeriodicalExecuterクラスのコンストラクタの定義を見ると、 PeriodicalExecuter:[constructor](callback, interval)…

委譲とPeriodicalExecuterとprototype.jsと。

とりえあずサンプル。 次の様なHTMLと... <html> <head> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript" src="mainctrl.js"></script> <script type="text/javascript"> //<![CDATA[ var mainctrl = new Mainctrl(); // ]]> </script> </head> <body> </body></html>

PHPでRSSを生成する。

何らかのフィード(AtomかRSSか)を作りたいな。と思ったので、ライブラリを探してみた。 簡単に探して見つかったのが次のライブラリ。 RSS74 - Version 0.3 RSS74 is a PHP class with that you can create RSS files. It provides a simple interface to do …

eval

JavaScriptを書いていて当たり前な事がぶっ飛んでいたので改めて整理。 evalでサーバーから受け取った文字列等々を評価させる場合、評価対象の文字列はJavaScriptの式で無ければならない。 なので、次の様に書くとエラーになる。 rcvstr = "{'foo':100, 'bar…

php -l その後

やっぱりphp.iniの設定が悪かったようだ。 というか、コマンドラインのプログラムだと、いま利用しているレンタルサーバーだとphp.iniの場所を教えてあげないと駄目なのだろうか? 以下の様にしたら解決したら、きちんとエラーも吐かれる様になった。もちろ…

php -l

はて... レンタルサーバーの上でPHPのシンタックスチェックをかけようと "-l" でチェックさせると... %php -l foo.php Errors parsing foo.php と表示されて、行番号等が表示されない。 自分のMac(Leopard)上だと、 % php -l foo.php Parse error: syntax er…

キャッシュ機構 その2 - PEAR::Cache::Lite

先日は、キャッシュ機構その1 - memcached ということで、memcachedを試したのだけど、memcachedの様にメモリベースのキャッシュではなくて、ファイルベースのキャッシュ機構だと、PEARのライブラリにPEAR::Cache::Liteというのがあるので試してみる。 前回…

キャッシュ機構その1 - memcached

前々から試してみようと思っていたmemcachedをMacOS X Leopardに入れたのでそのときのメモ。 memcachedは、分散メモリキャッシュサーバでRDBMSから得た結果やその他、動的にスクリプトから生成した結果をキャッシュしておく機構。と解釈。mixiや、はてな等々…

MySQLのチートシート

MySQL/CheatSheet - Wikibooks, collection of open-content textbooks A4 2up両面印刷とかして手元にあると「度忘れ」の時に便利です。 あ、両面印刷を「りゃうめんいんさつ」と呼ぶのは当方だけの風習であろうか?