2008-01-01から1年間の記事一覧

(flip id) -- その2

(flip id) の解釈の仕方がよく分からないので、とりあえず自分なりに考えてみました。 flipとidの定義が、こんな感じだとします。 flip :: (a -> b -> c) -> b -> a -> c flip f = \b -> \a -> f a b id :: a -> a id = \a -> a(flip id)を簡約すると、次の…

(flip id)

System.Console.GetOpt のサンプルコードを読んでいたら、訳の分からないところがでてきました。 compilerOpts :: [String] -> IO (Options, [String]) compilerOpts argv = case getOpt Permute options argv of (o,n,[] ) -> return (foldl (flip id) defa…

手習いにファイルを分割するプログラムを書いてみました。 GHCのドキュメントを見ても、どうやってバイナリファイルを取扱うのか分かりませんでした。ぐぐってみると、System.IO.openBinaryFileという関数が見つかったのでこれを使ってみました。 英文マニュ…

Data.ByteString

GHC には、Data.ByteStringというモジュールがついています。バイナリファイルを扱うには、こいつを使った方がよさそうです。ファイル分割のプログラムを書き直してみました。 {- Usage: splitfile path -} module Main (main) where import Prelude hiding …

Data.ByteString(その2)

as構文を使って、import宣言を書き直してみました。 {- Usage: splitfile path -} module Main (main) where import System (getArgs) import Data.ByteString (ByteString, empty) import qualified Data.ByteString as BS main :: IO () main = do args <-…

ふつうのHaskellプログラミング

ふつけるを読了しました。とても分かりやすく書かれていて、よい本でした。ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門作者: 青木峰郎,山下伸夫出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/06/01メディア: 単行…

金魚

昨日の晩、近所の幼稚園の「夕涼み会」に行ってきました。来年の春には健太も幼稚園に入るので、偵察です。 夕涼み会の金魚すくいで、健太が、小さな和金を3匹もらってきました。小さな袋に入っているので、窒息してしまいそうで心配です。 金魚には申訳あ…

PropelのforeignKeyは、主キー制約しか想定していない

ようだ。主キー以外にunique制約を加えたカラムをforeignKeyとして指定しても、こんな感じのコードが生成され、内部でretrieveByPKメソッドが使用されるので、外部キーで関連付けたオブジェクトを正しく取得できない。 public function getSectionRelatedByP…

schema.ymlで複数カラムにprimaryKey

を設定すると複合キーを作れるようです。単一カラムにしか設定できないと思い込んでいました。とはいえ、sfPropelUniqueValidatorなども主キーは単一カラムしか対応してませんし、主キーの変更を行う場合には対応していません。やはり、主キーはすべてデフォ…

phpMyAdminのID,パスワードを設定しておく

PHP

XAMPPにくっついてきたphpMyAdminを使っていまうが、デフォルトの設定だと30分経つとcookieが時間切れになってしまい、ID/パスワードを入れ直さなくてはなりません。面倒なのでどこかに設定があるはずと思い、探してみるとconfig.inic.phpの中にありました…

ユーザに対するクレデンシャルの付与

myUser.class.phpを改造して、ログイン時にクレデンシャルを追加してみます。今、作成しているアプリケーションでは、ユーザ管理にはsfGuardPluginを使っているので、myUser.class.phpの中味は次のようになっています。

生命保険の見直し

10年ほど前に入った保険の見直し時期が迫っていると担当の生保レディから連絡がありました。あらためて現在の保険内容と保険料を調べてみると、三大疾病特約やら入院医療特約やらで、保険料の半分近くが、病気や障害に備えてのものです。 でも、支払う保険…

adminジェネレータで画面を生成すると、sort条件はセッション情報として登録されるようです

schema.ymlをいじって、気に入らないテーブル名称を変更してみました。当然、関連する部分のコードもすべて名称変更が必要です。やっと全部終わって、動かしてみると、HogePeer::translateFiledNames()でエラーが発生します。変更前のフィールド名が使われて…

フィッシング

高木浩光@自宅の日記にPayPalフィッシングにひっかかりそうになったという記事がのっていました。ほとんどWeb上で買物をしない原始的な生活を送っているので、PayPalにお世話になる機会はないのですが、ドメイン名を確認するという基本も知らない人は、あん…

YAMLの読込みライブラリ

symfonyの設定ファイルは大半がYAMLです。YAMLの処理はsfYamlクラス(PEAR/symfony/util/sfYaml.class.php)で取扱われますが、このクラスはsyckがあれば、それを使います。syckが存在しない場合には同梱しているSpyc(sfYamlと同じディレクトリにあります)を使…

アクションのメンバ変数はテンプレートにわたらない

symfonyでは、テンプレートに値を渡すためにアクションクラスの中で変数に値をセット(例えば:$this->variableName)すると、テンプレート側では、グロ−バル名(例えば:$variableName)としてアクセスすることができる。これはとても便利なのだけれど、メンバ…

isset()は値がnullの場合にもfalseを返す

PHP

慣れの問題なのでしょうが、やっぱりこういう仕様を見るたびにゲンナリします。以下はPHPマニュアルのisset()の説明の抜粋です。 説明 bool isset ( mixed $var [, mixed $var [, $... ]] ) 変数がセットされているかどうかを調べます。 変数が、unset() に…

ZendFramework

そういえば、いつの間にかsfZendPluginがなくなっています。 ちょっとググッたらこんなページがありました。http://angelicwing.net/diary/4899.html仰せのとおりにpearを使ってインストールしました。 # pear channel-discover zend.googlecode.com/svn # p…

symfony1.0.13にアップグレード

エイプリルフールにsymfony1.0.13がリリースされていました。ということで,またアップグレードします。PEARを使ってインストールしているので,やはりPEARを使ってアップグレードします。 C:\xampp\htdocs\hoge>pear upgrade symfony/symfony downloading sym…

How to subclass an ATContentType in 7 Minutes(その4)

作成したXMIファイルを元に、コードを生成します。 archgenxml EvilZPTDocument.xmi プロダクトのフォルダが作成されますので、これをまるごとProductsフォルダにコピーします。Ploneを立上直し、[サイト設定]-[アドオンプロダクト]にEvilZPTDocumentが表示…

How to subclass an ATContentType in 7 Minutes(その3)

引き続き、ArgoUMLで指示どおりのクラス図を作成します。終わったら[File]-[Export XML...]メニューで、XMIファイルに落とします。指示は次のような簡単なものです。 ATDocumentクラス ATDocumentクラスを作成する。 作成したクラスに、>, >の2つのステレオ…

How to subclass an ATContentType in 7 Minutes(その2)

まずは、イントロダクションです。 IntroductionIf you're familar with ArchGenXML and UML and have the products already installed you'll need around 7 minutes. Otherwise ~30 minutes should be enough.Prepare your development-environment: Insta…

How to subclass an ATContentType in 7 Minutes(その1)

Ploneのサイトをのぞいていたら、こんな記事がありました。 How to subclass an ATContentType in 7 Minutes しかもその中味は、ATDocumentをサブクラス化して、PageTemplate自体をコンテンツにする、というものです。 In this how-to we're creating an ATD…

自宅PCのPloneを2.5.0→3.0.6にupdate

自宅PCのPloneも3.0,6にアップデートしました。手順は次のとおりです。 Ploneコントローラで動作中のPloneを停止 一応、Data.fsをバックアップ 移行したいコンテンツを一箇所のフォルダに集めて、zexp形式でエクスポート Plone-3.0.6.exe をダウンロードして…

プラグインのwebディレクトリ

プラグインでcssを使うためにmyplugin/web/myplugin/css/hoge.cssを用意して"use_stylesheet('/myplugin/css/hoge.css')"とやってみたが、どうやら読込んでくれない。表示されたページのソースを読込んでみると、やはり"myproj/web/myplugin/css/hoge.css"を…

Plone3.0.6

社内のWebサーバのコンテンツを更新するために、ひさびさにPlone(Windowsインストーラ版の3.0.6)を触りました。2.5のリリース以降、まったく触っていなかったのですが、UIは大分洗練された気がします。インストール後は、ちょこっとだけ見た目のカスタマイズ…

プラグインのテスト

アプリケーションについてはlimeを使ったテストの解説があるのですが、プラグインのテストはどうやってやるのでしょう?test-unitタスクが定義されているsfPakeTest.php を調べてみると、引数としてファイルパターンを与えることはできますが、sf_test_dir/u…

アドミン・ジェネレータのフォームラベルの':'をi18nから除外する

アドミン・ジェネレータの作成するeditフォームは、デフォルトで国際化対応してくれてます。それはいいんですが、フォームの各項目のラベルにつく":"まで、__()で括って国際化対応文字列にしちゃってます。 このままでmessages.ja.xmlを作ると、いちいち"my_…

symfony1.0.12にアップグレード

いつの間にかsymfony1.0.12がリリースされていました。ということでアップグレードします。PEARを使ってインストールしているので,やはりPEARを使ってアップグレードします。 C:\xampp\htdocs\hoge>pear upgrade symfony/symfony downloading symfony-1.0.12…

Windowsエクスプローラのフォルダオプションの設定で、"Webページとフォルダを対にして管理します"という項目があります。

ずっと気になってはいたのですが、やっとどんな意味の設定項目か分かりました。どうやら、ここでいう「Webページ」は "hoge.htm" ファイル、「フォルダ」はこれに対応する"hoge.files"フォルダを指すようです。 ラジオボックス項目のうち上二段を選択してい…