スキップしてメイン コンテンツに移動

投稿

2月, 2010の投稿を表示しています

ClojureでCompojureを使わずにサーブレットを書く方法

Clojureでgen-class、proxyを使ってみようと思い、試しにサーブレットを書くとどうなるかを試してみました。 コンパイルにLeiningenを使うためプロジェクトを作ります。 lein new sample-servlet まずはsrc/sample_servlet/servlet.cljを書いてみます。 (ns sample_servlet.servlet (:gen-class :extends javax.servlet.http.HttpServlet)) (defn -servlet [this request response] (.setContentType response "text/html; charset=UTF-8") (let [out (.getWriter response)] (.. out (println "<html><body>hello world</body></html>")))) (defn -doGet [this request response] (-servlet this request response)) 依存関係とクラスファイル生成のオプションを与えたproject.cljファイルを作りました。 (defproject sample-servlet "1.0.0-SNAPSHOT" :description "FIXME: write" :dependencies [[org.clojure/clojure "1.1.0"] [org.clojure/clojure-contrib "1.1.0"] [javax.servlet/servlet-api "2.5"] ] :namespaces [sample_servlet.servlet]) 必要なライブラリを取得しコンパイル。 lein deps lein compile 無事生成されたことが分かります。 % ls -lr

はじめてのiPhone3プログラミング

生徒へのレッスン用と、iPhone3の技術の確認(最近iPhoneアプリを作っていなかったので)のため、以下の本を購入しました。 一年前は全然iPhoneの本もなかった状況でしたがその後雨後の竹の子状態でいろいろと技術書、関連書籍が出てきましたね。 と選び放題の本の中で以下の本がおすすめです。 第1章:ジャングルへようこそ! 第2章:Xcode入門 第3章:基本操作をハンドリングする 第4章:より高度なユーザーインタフェースを作る 第5章:画面の自動サイジングと自動回転を作る 第6章:マルチビュー・アプリを作る 第7章:ツールバーとピッカーを作る 第8章:テーブルビュー入門 第9章:ナビゲーションコントローラーとテーブルビューを作る 第10章:アプリケーションの設定画面とユーザーデフォルトを作る 第11章:SQLiteによるデータの永続化 第12章:QuartzとOpenGLによるドローイングアプリケーション 第13章:タップ/タッチ/ジェスチャーをコントロールする 第14章:ここはどこ? 位置情報を扱う 第15章:さらにクールなアプリを作る 第16章:iPhoneカメラとフォトライブラリをコントロールする 第17章:多言語対応するには? 第18章:iPhoneアプリの次なる道は? あれっ、実際の本と目次が違います。2章は「ティキ神さまを怒らせるな」ですがAmazonで見ると上記の通りで違っていますね。よく見ると15章も本の方は「やってしまった!」です。 内容もこういう感じで砕けていて随所にユーモアが見られます。 ユーモアがあるだけでなく、基本をしっかりと抑えつつ、丁寧な解説がコードごとにあり非常に分かりやすいです。 いくつもiPhone SDKの本を見てみましたがこの本は書いだなと思います。 ちなみに本書と対応しているソースコードがたいへん見つけにくく、フォーラムへの会員登録が必要でした。 今日時点でのソースコードの置き場をリンクして置きます。 Read this BEFORE you download any source code... Latest source archive, Oct 12, 2009, goes with SDK 3.1.2

Fedora 8でRails2.3を入れる

前回Rails 2.3をAmaozon EC2のFedora 8イメージで試そうとしましたが失敗したため、 再度チャレンジしてみましたが、今回はあっけなく最初にgemsをアップデートするだけで解決してしまいました。 ということでEC2にあるFedora 8の"Ruby on Rails Web Starter (AMI Id: ami-22b0534b)"をRails 2.3にする手順は以下の通り。 # gem list *** LOCAL GEMS *** actionmailer (2.2.2) actionpack (2.2.2) activerecord (2.2.2) activeresource (2.2.2) activesupport (2.2.2) cgi_multipart_eof_fix (2.5.0) daemons (1.0.10) fastthread (1.0.1) gem_plugin (0.2.3) mongrel (1.1.5) open4 (0.9.6) rails (2.2.2) rake (0.8.3) 1.3.5に先にアップデート。 # gem install rubygems-update # update_rubygems 前回と違いすんなりインストールされました、、、 # gem update (...略...) # gem list *** LOCAL GEMS *** actionmailer (2.3.5, 2.2.2) actionpack (2.3.5, 2.2.2) activerecord (2.3.5, 2.2.2) activeresource (2.3.5, 2.2.2) activesupport (2.3.5, 2.2.2) cgi_multipart_eof_fix (2.5.0) daemons (1.0.10) fastthread (1.0.7, 1.0.1) gem_plugin (0.2.3) mongrel (1.1.5) open4 (1.0.1, 0.9.6) rack (1.0.1) rails (2.3.5, 2.2.2) rake (0.8.7, 0.8.3) rubygems-update (1.3.5) 無事Railsの最新状態になり

Bloggerでのコードの色付け-Clojure編

Bloggerでソースコードを色付したいと思い調べてみました。 見つけた色付けのコードは以下の二種類。 google-code-prettify http://alexgorbatchev.com/wiki/SyntaxHighlighter デフォルトの状態では両方共Clojureに対応していませんでしたが(まだそこまでのメジャー度ではないわけですね)、SyntaxHighligher用のClojureに対応するJavaScriptコードを以下のサイトで見つけました。 http://www.undermyhat.org/blog/2009/09/list-of-brushes-syntaxhighligher/ あとはGoogleサイトのファイルキャビネットを使いちまちまとSyntaxHighligherファイルをアップし、Clojureのコードは本サイト中に埋め込んで完成です。 (ns gomitoban.bot (:use clojure.set clojure.contrib.str-utils) (:require [appengine-clj.datastore :as ds]) (:import (com.google.appengine.api.datastore Query) (twitter4j Twitter) (twitter4j Paging))) (defn setup-tw [username password] (def tw (Twitter. username password))) ファイルキャビネットは初めて使いましたが一括ファイルアップロード機能が欲しいですね。ディレクトリを内部で作ってもファイルのパスはディレクトリを無視するという仕様にはまりました。ちなみに以下のようなファイルをアップしてます。 http://sites.google.com/site/tnoborio/hightlight

Fedora 8でRails2.3が入らず途中までの記憶

AmazonのAMIを使いRails 2.3を入れてみようとしていろいろステップが必要だったので共有します。 Railsライブラリは入りますが最後、Railsを起動で成功していません。 今回は、Fedora 8の"Ruby on Rails Web Starter (AMI Id: ami-22b0534b)"を使いました。 パッケージ管理で最新のFedora 8のパッケージに入っているRailsに更新します。 # yum install rubygem-rails yum listで見てもRailsは2.2のままです。gemでチェックしてみます。 # gem list actionmailer (2.2.2, 2.1.1) actionpack (2.2.2, 2.1.1) activerecord (2.2.2, 2.1.1) activeresource (2.2.2, 2.1.1) activesupport (2.2.2, 2.1.1) cgi_multipart_eof_fix (2.5.0) daemons (1.0.10) fastthread (1.0.1) gem_plugin (0.2.3) mongrel (1.1.5) open4 (0.9.6) rails (2.2.2, 2.1.1) rake (0.8.3) まずはgemsを更新してみます。 # gem update Updating installed gems Updating actionmailer ERROR: While executing gem ... (Gem::InstallError) actionpack requires rack (~> 1.0.0, runtime) Rack 1.0.0が求められるようなのでバージョンを指定して先にインストールします。 # gem install rack -v 1.0.0 Successfully installed rack-1.0.0 1 gem installed Installing ri documentation for rack-1.0.0... Installing RDoc documen

Google App Engineで動く、Clojure + Compojureで作るTwitter Bot

表題のアプリケーションを作ってまして、今日からgithubに公開するようにしました。 http://github.com/tnoborio/gomitoban なぜgomitoban(ゴミ当番)という名前かというと今日は何のゴミ出しの曜日かをTwitter botが親切にも教えてくれるアプリケーションだからです。半分ジョークのような作品ですが、Clojure、Compojure、Google App Engineの勉強に調度良いかと思いはじめてみました。 一昨日やってみたClojureコードバトンでgithubをはじめたこともあって、そこにおいてみようということでスタートさせたプロジェクトです。 まだ未完成なので完了したら告知します。 Compojureやってみようという方の参考になれば幸いです。

Clojureコードバトン参加中

omasanori さんからClojureコードバトンを受け取りました。 コードを見てみてClojureならではのことをやれたら面白いなと思い、Swingを使ったGUI化をメインでやりつつ、途中GUIかCUIかという昨日の切換えのところでマルチメソッドを使ってみました。 ということでフォークして変更を加えたコードバトンの今現在のURLはここです。 http://gist.github.com/297546 やってみて面白かったです。Clojureでさくさく書けるという面白さと、バトンで渡ってきた受け継がれてきたきれいなコードを読んでちょこちょこ追加する腕試し的な楽しさと。 gist.githubははじめて使いましたがウェブ上で編集、フォークができるというのは便利ですね。 といいいつつも、なれているgitの方で結局cloneしcommitしましたが、、、細かい単位でコミットしたいという場合はgitに頼ってしまいます。githubもアカウントとったままだったので鍵を設定したりと今度コードを公開するためのちょうど良い機会になりました。 バトンに関するリンクは以下の通り。 Scheme コードバトンまとめページ - ひげぽん OSとか作っちゃうかMona- バトン、二人前の走者のdeltamさん - サルノオボエガキ: Clojureコードバトンを受け取った Clojureコードバトンにご興味ある方はぜひご連絡( tnoborio )ください。

プログラミングを学びたいひとのためのメールサポートプラン

先週axshさん主催のWakameTechでの発表もなんとか無事終りました。 と言っても参加してもらった友人曰くカミカミだったとのことで発表に関しての課題は残りましたが、、、 また、生徒に対してプログラミングを教えるという活動をやっているのですが、対面だけでなく、メールでのサポートを始めてみようと2月に入ってからメールサポートプランと言うのを用意してみました。 以下は某マッチングサイトに乗っけた内容そのままなのでちょっと口調が違いますがご了承ください。 興味のある方はご連絡くださいませ。 10名限定!業務仕込みのプログラミング入門講座 昨年一年間、企業、個人の方に教えてきましたプログラミング開発のノウハウを 多くの方に低価格でご提供しようと思い2月限定でメニューを一新しました(2010/2/4更新) -- [メールサポートプラン] プログラミング初心者あるいは、すでにエンジニアの方で新しく他の言語を効率的にマスターしたい方向けのコースです 例えば、新しく言語を勉強したいと思って本は買ったけど最初でつまづいてしまっている、分からないところだけを聞きたいという方を対象としています - 一ヶ月間無制限のメールサポート(忙しい方でも気軽にスタートできます) - テキストあるいは、こちらから出す課題に沿って学んでいきます - 対象言語: Java/Ruby/Python - 初回申込費用を除くと6,000円以上かかりません 忙しい方でも気軽にスタートできますし、 プログラミングの楽しさを感じられるお手伝いができれば幸いです