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

[Common Lisp] PATHNAMEから情報を取得

わたくし、本職はJavaプログラマなのですが「ファイルのパスを受け取ってゴニョゴニョする」ことがそれなりにあるなーと思いました。具体的に言うと ファイルのフルパスからファイル名を取得 ファイルのフルパスから拡張子を取得 は結構頻繁にやっている気が…

[library] f-underscore

Weblocksで使っているライブラリの中身も、それなりに見ることが多くなってきたので纏めようと思ったのでした。たぶん、すぐに挫折します。f-underscoreは lambdaを少ないタイプ数で記述するためのマクロを持ったユーティリティです。引数の数や種類などで複…

[Weblocks] Weblocks - widgets - DataList, ListEdit

今回見るWidgetは前回のDataGrid, GridEdit のお仲間、DataListとListEditです。今回もEditと付いている方が追加/変更/削除が出来るバージョンになっています。GridEditとListEditの差ですが、見た目の違いだけかなーと思っています。たぶんね。 とりあえず…

Shibuya.lisp TT #6 に行ってきたのでした。

27日(土)に行われた Shibuya.lisp TT #6に行ってきたのでした。 お昼を食べていたら出発が遅れた 駅でPASMOがどうにかなったようで改札通れない 駅員のところへ行ったら、中学生くらいの女子にデレデレしていて電車2本逃す 渋谷で迷子 「道玄坂を登りきる」…

[Weblocks] Weblocks - widgets - DataGrid, GridEdit

Common LispのWeb Application Framework, Weblocksには便利な widgetがいろいろと用意されています。前回の Login widgetのように Webアプリケーションを作っていると使うことになる画面部品は標準で用意されていますし、それ以外のモノも結構簡単に自分で…

Weblocks - widgets - login

一つずつ見ていくとか言いつつ、最初の一個目でガッツリ詰まったのでした。 使った widgetは ログインフォームを作成する "login" widget。 基本的な使い方 どの widgetも基本的な使い方は make-instnaceで通常のクラスと同様にインスタンス生成するだけのよ…

Weblocks - widget

Weblocksの画面は、Wedgetを並べて作るらしい。 例えばexamplesに入っている weblocks-demoでは左側にメニュー、右側に一覧が表示されます。weblocks/examples/weblocks-demo/src/layout.lispを見ると、メニュー部分は `navigation'というWidget、右の一覧は…

Weblocksの make-appで作った結果

昨日の make-app で作成したソースを見ていたら src/init-session.lisp の内容が以下のようになっていました。 (in-package :hoge) ;; Define callback function to initialize new sessions (defun init-user-session (comp) (setf (composite-widgets comp…

Weblocksの新規アプリケーション作成

久しぶりにWeblocksです。久しぶり過ぎて、以前書いた内容すら覚えていません。自分で読み返します。Weblocksで新規アプリケーションを作成する際、私はいままで サンプルをコピー 適当に削ったり書き換える わーい自分用のテンプレートだー を何度も繰り替…

JavaScriptをS式で(parenscript)

S式でJavaScriptを書けるライブラリ Parenscript。全部S式じゃないと嫌だっていう欲張りな貴方にピッタリ!ゆるふわ括弧な愛されWEBアプリが作れます!実際のところ、letter: Parenscript で jQuery を使う場合は chain をで見かけて興味はあったけど今まで…

Shibuya.lisp Hackathon #1へ行ってきました

全然準備をせずに行ったため、前半2時間くらいは環境構築で消滅。その後もSBCL上でHunchentootを起動出来なくて全然LISP書けなかった。最終的に書いたのはHTMLとJavaScriptだけになって「HTMLのCanvas上でアレを描画、移動させた」だけになっちゃった。クズ…

Shibuya.lisp Hackathon #1

明後日に迫ってきた Shibuya.lisp Hackathon #1 : ATND。 さて、初めてのLISPイベント、初めてのHackathon、何をどうしたら良いか分からないので思いつくままに準備を進めようかと思うのでした。 持っていくもの ノートPC - Ubuntu 10.10を起動出来るように…

Quicklisp導入

一部で話題のQuicklispを(会社のPCで)試したのでメモメモ。QuicklispはASDF-INSTALLみたいに、指定したライブラリ+依存するライブラリをWEBから拾ってきてインストールしてくれるツールのようです。配布されているインストーラつぽいモノは 単一の .LISPファ…

Re: case 構文のキーを括弧でくくると何が変わるのか

http://d.hatena.ne.jp/kitokitoki/20101001/p1Common Lispは実装がいっぱいあるので、SBCLだけで考えると問題がある気がする。と思って他の処理系で実験。WindowsでのABCLとClozure Common Lisp。 ;; ABCL 0.18.0 (defvar letter 'u) ;; => LETTER (case le…

Shibuya.lisp Hackathon #1に行きたい

Shibuya.lisp Hackathon #1 : ATND が、人が集まってきたので現実味を帯び始めた今日この頃。 出来れば行きたい。だがしかし、ハッカソンに参加したことのないボクはハッカソンが何なのかもよく分かっていない!ググッてみたところ ハッカソン(Hackathon:H…

CLSQL+SQLite3

Weblocksの裏側で動くDBアクセス周りはElephant、CLSQL、CL-PREVALENCEなど好きなものを使うことが出来ます。今まで自宅ではPREVALENCEを使っていたのですが、ちょっとCLSQLに変えようかなと思い立ってソースを弄った結果動かない!何かが悪いらしいけど、何…

継続って何ナノさ

前回のABCLをビルドしてたらい回しさせてから早10日。その間、全然Common Lispを触っていません!Emacs Lispはちょっと触ったよ。いきなり話が変わって、Common LispのWebアプリケーションフレームワーク `Weblocks'はAjaxと`継続'を使っているそうで。そし…

ABCL 0.21.0

子供が産まれて自分の時間がほぼ無くなったワタクシ。ちょっと時間が出来たので先日リリースされた ABCL 0.21をビルドしてみました。 ABCL 0.21のソースを取得 JDK 6と antをインストール ABCL 0.21を展開 展開したディレクトリに入って "ant" ビルドが終わ…

CLSQLのマニュアルを読む

CLSQLはCommon LispでSQLなライブラリらしいです。現在マニュアルを読んでいます。自宅に帰ると赤さんのお世話があってサンプルを動かす暇がありません。ちくしょー。あ、6月25日に父親になりました。よかったですね。

画面に表示される項目名

お勉強予定の「表示されるテーブルの項目名が、クラスのスロット名のままなので変更したい」が解決。defviewする際に、表示項目の設定をするところで :label に文字列で表示したい項目名を指定すれば良いみたい。 (defview post-form-view (:type form :inhe…

電子書籍リーダー

電子書籍リーダーで、防水仕様な製品は存在しないのかな?ボクはお風呂で本を読む人なので、防水仕様の電子書籍リーダーは、紙の本に対する圧倒的なアドバンテージに感じます。お風呂で本を読む人の方が少ないでしょうけど。日本の各メーカーは電子書籍リー…

お勉強予定

だんだん解決していきたい。 課題 WEBLOCKSのサンプル simple-blogの ADMIN画面を開いた際、画面が崩れる 一度アクションを発生させれば崩れは解消される レイアウトに関わる部分? レイアウトの編集方法(CSSの指定とかどうやるの?) 一対多、多対多の永続…

電子書籍リーダーが欲しい

最近、電子書籍リーダーが欲しくなってきました。原因は間違いなくiPadなのですが、iPadである必要はありません。電子書籍が読めればいいです。 それなりの画面サイズ (文字が読みづらいとストレス感じそうだから) 紙のページをめくるようなスピードでページ…

widget

Weblocksのサンプルで、WIDGETを生成するときに WIDGETクラスを使用しているサンプルと COMPOSITEクラスを使用しているサンプルがありました。何の違い?と思ってソースを見たところ WIDGETクラスは defclassで作られたCLASS、COMPOSITEクラスは defwidgetで…

find-persistent-objectsの取得データ絞込み

find-persistent-objectsメソッドは永続化されたクラスのオブジェクトを一括取得します。で、そのときに欲しいデータを絞り込む方法を調べてみました。SQLのWHERE句相当を指定させろ、ってお話。ちなみに動かして確認とかしていないので信用すると痛い目にあ…

Weblocks難しい

Weblocksの examplesを見て、結局あまり理解できませんでした! 分からない事 複数クラスに跨るような登録/更新をするにはどうしたらいいのだろう 本に対する著者のように、1対多の関係の永続化クラス定義方法 上記のクラスのVIEWの定義方法 そもそも全体的…

Elephant-1.0a

Elephant-1.0aの asdファイルに ele-sqlite3.asdとか全然見当たらないけど、どこいったのだろう。

Weblocks, Elephant

Weblocksの exampleの weblocks-elephant-demoが動かないのでした。 私の持っていたWeblocksと elephantのバージョンが合っていないのか、存在しないキーワード引数が使われていた このサンプル、そもそも動くの?メンテナンスされていないって話? 起動は出…

自宅でElephant

下のおや?Elephantのようすが・・・は会社のサーバに勝手に仕込んだSBCL+SQLite3で試したのですが、自宅で試してみたら上手く動かなかったのでした。ELEPHANT:OPEN-STOREすると「UFFI-CFFI-COMPAT:CONVERT-FROM-FOREIGN-STRINGマクロの引数で :encodingっ…

おや?Elephantのようすが・・・

EmacsでLispに出会い、いろいろあってCommon Lispに出会ってから約4年。業務のちょっとした作業をCommon Lispで自動化出来る程度にはなりましたが、読んだ本の数と使うようになってからの年数を考えるとレベルが低すぎる私。考えてみるとCommon LispでDB接続…