<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CEUMQn87cCp7ImA9WhRbEUg.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848</id><updated>2012-02-02T12:11:23.108+09:00</updated><title>ニャンパス 登尾のブログ</title><subtitle type="html">ニャンパスでのエンジニアリングの日々を書いていきます。</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://tnoborio.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>70</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/TnoborioBloggerBlog" /><feedburner:info uri="tnoboriobloggerblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;D0IGQX87cCp7ImA9WhRXFEo.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-2229917798301599809</id><published>2011-12-18T00:44:00.001+09:00</published><updated>2011-12-21T22:52:00.108+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-21T22:52:00.108+09:00</app:edited><title>あなたが参加したイベントの出席者はあなたが知らないこんなイベントにすでに参加しようとしている。</title><content type="html">(この記事は、&lt;a href="http://partake.in/events/393770ce-4637-4f07-bc14-a1f5120eab71"&gt;Clojure Advent Calendar 2011&lt;/a&gt;&amp;nbsp;21日目の記事です。)&lt;br /&gt;
&lt;br /&gt;
前々からATNDでAPIが利用できることを知ってましたので、週末起業的な意味で、以下のサービスをHeroku上で作って見ました。当然Clojureです。&lt;br /&gt;
サービスの内容はブログのタイトル通りです。&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://find-event.herokuapp.com/users/tnoborio"&gt;http://find-event.herokuapp.com/users/tnoborio&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
作ったときに残したメモを頼りに、Herokuでどんな感じで作っていったかをさくさくっと書いていきたいと思います。&lt;br /&gt;
&lt;br /&gt;
まずはLeinigenを作ってディレクトリを作成しますがそこらへんは割愛。&lt;br /&gt;
&lt;br /&gt;
Herokuにアプリケーションを作るときに、--stack cedraを忘れずに作ります。アプリの名前を付けないと、flower-company-hogehoge-xみたいな名前がつくので最初から決めといたほうがいいです。&lt;br /&gt;
&lt;br /&gt;
$&amp;nbsp;heroku apps:create --stack cedar find-event&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
それ以外にHeroku出動かすからという理由で必要だった作業はしProcfileを作る位でした。&lt;/div&gt;
&lt;div&gt;
こんな感じです。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
web: lein run -m find-event.web&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
あとはgitを使ってガンガンプッシュしていきます。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
$ git push heroku master&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
といっても、開発時はEmacs上でslimeつないで検証していく方が早くておすすめです。&lt;/div&gt;
&lt;div&gt;
プロジェクトを起ち上げた当初はproject.cljに必要なライブラリを追加して行く作業になりますが、clojarsからライブラリの最新バージョンを確認したり、どんなものがあるかというのを調べるのに最近では以下の直接のリポジトリから探すことが多いです。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;a href="http://clojars.org/repo/"&gt;http://clojars.org/repo/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
その結果、project.cljはこんな感じになりました。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(defproject find-event "1.0.0-SNAPSHOT"&lt;br /&gt;
&amp;nbsp; :description "FIXME: write description"&lt;br /&gt;
&amp;nbsp; :dependencies [[org.clojure/clojure "1.3.0"]&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[compojure "1.0.0-RC1"]&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[ring/ring-jetty-adapter "1.0.0"]&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[fleet "0.9.5"]&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[clj-json "0.4.3"]]&lt;br /&gt;
&amp;nbsp; :dev-dependencies [[swank-clojure "1.3.4-SNAPSHOT"]])&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Clojure 1.3はHerokuですんなり使えました。流石です。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
以降コードの話になりますが、ATND APIを使いたいのでこんなコードを書きました。(一部抜粋です。)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
(ns find-event.api&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; (use [clojure.walk :only [keywordize-keys]]&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[clojure.string :only [join]]&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[clj-json [core :as json]]))&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
(def events-url "http://api.atnd.org/events/")&lt;/div&gt;
&lt;div&gt;
(def users-url "http://api.atnd.org/users/")&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
(defn- fetch [url]&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; (-&amp;gt; (slurp (str url "&amp;amp;format=json"))&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; json/parse-string&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; keywordize-keys))&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
;; (fetch "http://api.atnd.org/events/?twitter-id=tnoborio")&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
イベントの検索、特定のイベントのユーザの取得、Twitter IDでの検索など、必要だと思った機能がそろってました。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
例えば特定のイベントからユーザを取得するのはこんな感じです。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
(defn- users-by-event-id [event-id]&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; (let [url (str "http://api.atnd.org/events/users/?event_id=" event-id)&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; users (-&amp;gt; (fetch url)&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; :events&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; first&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; :users)]&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; (map :user_id users)))&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
で、どうやってイベントをレコメンドするかというと、&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;Twitter IDからそのユーザの参加イベント取得&lt;/li&gt;
&lt;li&gt;取得したイベントに参加しているユーザ取得&lt;/li&gt;
&lt;li&gt;そのユーザたちが来月開催されるイベントで参加するものを取得&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;
という流れです。Clojure的に-&amp;gt;&amp;gt;を使ってそれを表したのが以下のコードです。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
(defn suggest-events [twitter-id]&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; (let [entry-events (fetch-events :twitter-id twitter-id)]&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; (-&amp;gt;&amp;gt; entry-events&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;event-users&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(take 50)&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(fetch-events :year 2012 :month 1 :users))))&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
みていただいて分かりますようにかなり手を抜いていて、もっとよくなるポイントはいくつもありますが、これだけのコードで面白そうなイベントが分かったので今日のところはオッケーとしました。&lt;/div&gt;
&lt;div&gt;
実際にもう少し作りこめば普段から使えるサービスになりそうです。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
ちなみにClojureとは関係ないのですがデザインにはTwitterのBootstrapを使いました。Fleetを組み合わせましたが、デザインにかけた時間は5分くらいです。プログラマだけでサービスを作るのにBootstrapはおすすめです。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
と、そんな感じでラフな記事になりましたが、皆様良いお年を、良いクリスマスを。&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-2229917798301599809?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xtITkX1yq2RPwE-jANcDwDg4Jps/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xtITkX1yq2RPwE-jANcDwDg4Jps/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xtITkX1yq2RPwE-jANcDwDg4Jps/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xtITkX1yq2RPwE-jANcDwDg4Jps/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/nSF52aWiySA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/2229917798301599809/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=2229917798301599809" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/2229917798301599809?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/2229917798301599809?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/nSF52aWiySA/blog-post.html" title="あなたが参加したイベントの出席者はあなたが知らないこんなイベントにすでに参加しようとしている。" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2011/12/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUCQH0-fyp7ImA9WhRQEUs.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-3062721479363025863</id><published>2011-12-06T10:25:00.001+09:00</published><updated>2011-12-06T17:31:01.357+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-06T17:31:01.357+09:00</app:edited><title>Clojureの会社を作った話。</title><content type="html">(この記事は、&lt;a href="http://partake.in/events/393770ce-4637-4f07-bc14-a1f5120eab71"&gt;Clojure Advent Calendar 2011&lt;/a&gt; 6日目の記事です。)&lt;br /&gt;
&lt;br /&gt;
Advent Calendarでお掃除ロボのルンバをClojureで制御するという記事を書こうと思ったんですが、Bluetoothデバイスとの繋ぎこみがうまく行かなかったので、一年前にニャンパスというClojureな会社起業した話を書きます。&lt;br /&gt;
&lt;br /&gt;
Clojureという決してメジャーではない言語を選んだということで、人によってはそんな言語で起業なんてしてしまって問題ないのかと驚かれることもありますので、この機会にまとめときたいと思います。&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;なぜ、Clojureを選んだのか&lt;/u&gt;&lt;br /&gt;
&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;
改めて考えてみました。ふんだんに主観が入ってますのでこういう見方もあるんだな位に考えてください。&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;JVMの安心感 -&amp;nbsp;人によって考え方はいろいろあるでしょうが、僕は結構信頼してます。受託の場合、お客さんも安心です。&lt;/li&gt;
&lt;li&gt;Javaのライブラリが使える - 後発のプログラミング言語の場合、いくら生産性高いといっても、ライブラリの充実度も重要です。そうでないと、サービスを公開する前に作らなきゃいけないライブラリを多くて、逆に回り道になってしまいます。その点Clojureの場合Javaで書かれている既存のライブラリが利用できるため安心ですし、Clojure用にJavaライブラリのラッパーが意外と揃っています。&lt;/li&gt;
&lt;li&gt;Lisp - いろいろと言語を触って来ましたが、Lispに落ち着きました。書いてて楽しいです。マクロの魅力もあります。&lt;/li&gt;
&lt;/ul&gt;
Clojureを選んだといっても、サーバサイドに限った話で、iOS / Androidアプリを開発する場合にはネイティブな言語を使います。(無理にClojureでAndroidアプリを書くことはしてません。)&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Q&amp;amp;A&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
このブログを書いているとき隣の席に、フリーランスエンジニア&lt;a href="http://ja-jp.facebook.com/momotarot"&gt;桃太郎君&lt;/a&gt;がいました。業務委託で仕事を頼んでいる普段Ruby使いの彼に、唐突にClojureの会社なんだけど何か質問ある？と聞いて出してもらった質問に対して、解答をまとめてみました。&lt;br /&gt;
&lt;br /&gt;
- Clojureの情報、ドキュメントは揃っているのか。&lt;br /&gt;
&lt;br /&gt;
日本語だとあんまりないです。みんなで頑張って書いていくしかないですね。ただ、PC買うときに回りにWindowsの人が多いのか、Macの人が多いのかで決めたほうが良いという話と同じで、周りにClojure使いが多ければ問題にならないんじゃないかなというレベルです。&lt;br /&gt;
&lt;br /&gt;
- Clojureの開発者は集まるのか&lt;br /&gt;
&lt;br /&gt;
マクロに見たらほとんどいないに等しいんですが、僕の能力的に数十人の人で何十ヶ月もかかるプロジェクトを受けることはなくて、今後も数ヶ月で数人のチームで開発できるくらいの規模で仕事をしていくと思います。なので、あんまり心配してない(あるいは考えてない)というのが正直なところです。&lt;br /&gt;
&lt;br /&gt;
- ライブラリはどうなのか&lt;br /&gt;
&lt;br /&gt;
上記の通りで、Javaのライブラリが使えます。ライブラリがなかったら作ろうと隙を伺ってますがなかなかそのチャンスが有りません。&lt;br /&gt;
&lt;br /&gt;
- クライアントはどうやって納得しているのか&lt;br /&gt;
&lt;br /&gt;
ここがポイントになるところですよね。開発会社は開発会社向けに仕事しているわけではないと考える所が重要かなと思います。&lt;br /&gt;
&lt;br /&gt;
例えば開発会社同士で仕事をしている場合にはこの案件はJavaのシステムだからJavaの開発が出来る人が欲しい、なんていう感じで依頼があったりしますが、ニャンパスでは原則、その製品を欲しいお客さんと直接仕事をするようにしています。&lt;br /&gt;
&lt;br /&gt;
本質的にはお客さんから見て言語がなにかということより生産性の高いものが望まれるわけで、(さんざん書いといてなんですが、)プログラミング言語はお客さんからしたら重要じゃないと思います。お客さんから生産性の高さが望まれ、それに答えるための手段としてニャンパスではClojureが有効かなと考えて提案しています。&lt;br /&gt;
(Clojure以外の言語が向いている場合やどうしてもPHPで、あるいはJavaでというプロジェクトについては、僕らより我々よりもっとうまくやれる会社がありますよ、きっとという提案です。)&lt;br /&gt;
&lt;br /&gt;
マイナーな言語でありながらこのタイミングですでにいろいろClojureのコード書いている人というのはプログラミング言語に好奇心がある人だと思うので、そういう人と仕事をやって裏切られることは少ないんじゃないかなという気はします。なので、起業したいというみなさん、周りのClojure好きなエンジニアと一緒に会社をクリスマス前に立ち上げたらいいんじゃないでしょうか。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-3062721479363025863?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EryXHxf6NDa9fYxTEEZcIzxdp9M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EryXHxf6NDa9fYxTEEZcIzxdp9M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EryXHxf6NDa9fYxTEEZcIzxdp9M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EryXHxf6NDa9fYxTEEZcIzxdp9M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/OPV-3ZoNkQU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/3062721479363025863/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=3062721479363025863" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/3062721479363025863?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/3062721479363025863?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/OPV-3ZoNkQU/clojure.html" title="Clojureの会社を作った話。" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2011/12/clojure.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcNQXw6cCp7ImA9WhdbFEQ.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-8186557832788794736</id><published>2011-10-13T18:11:00.003+09:00</published><updated>2011-10-13T18:11:30.218+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-13T18:11:30.218+09:00</app:edited><title>地域コミュニティとレイクタウン北自治会の話</title><content type="html">&lt;br /&gt;
いつもブログの更新間隔が長いので、書くたびにどんな語尾で書いていたかを忘れてしまう。&lt;br /&gt;
&lt;br /&gt;
今年１月に長男が生まれて、彼が大きくなったら2011年という君が生まれた年はパンダがやってきた年だったんだよと言おうくらいの、今思えば歌的な会話してたんだけど、それが今やエライコッチャな感じになっていて、それはつまり抽象的な表現になっちゃうけど、大きいシステムで持続可能ではなかったものがどんどん崩壊していっている時代なんじゃないかなと思う。&lt;br /&gt;
&lt;br /&gt;
そういった現在進行形で、大きな古いシステムにさよならを告げていく中で、小さい単位(=顔が見えるくらい)でのコミュニティの重要性が高まっていくんじゃないかなと勝手に妄想している。(3.11を経験したこともあって、近くの人とつながっているというのは重要なこととして捉えられて行っているんじゃないかなと思う。)&lt;br /&gt;
&lt;br /&gt;
そういった思いがむくむくとあるなかで、去年から住んでいるレイクタウンという町は、町としてできたのがまだ二、三年という大変新しいところで、まだ自治会がなかった。&lt;br /&gt;
&lt;br /&gt;
半年前に自治会をつくろうという有志の集まりに参加し、そこから半年間かけて、レイクタウンで暮らす方々となって自治会の設立に向けてにやってきたが、今月の初めに自治会設立の総会が開かれ、晴れて設立の運びとなった。&lt;br /&gt;
&lt;br /&gt;
ニャンパスという会社も"おはよう++(インクリメント)"という経営理念でやっていて、それはつまりおはようを言い合える近くの人をITの力で増やすことが目的だった。&lt;br /&gt;
自治会の参加は最初の一歩くらいに思っていて、具体的に小さいコミュニティが活発になれるようなサポートを具体的にやりたいと思っている。&lt;br /&gt;
(そういえば、去年ニャンパスという会社を立ち上げたことなど今二期目に入ったことなど気がつけば何も書いてなかった。ニャンパスとしての近くの人をつなげるサービスも進行中なのでその話はまた別で。)&lt;br /&gt;
&lt;br /&gt;
という訳で、レイクタウン北自治会の広報委員会会長になりました。&lt;br /&gt;
よろしくお願いします。&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-8186557832788794736?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-8GQASP4p2Mp7xmYG5MOHbtenFQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-8GQASP4p2Mp7xmYG5MOHbtenFQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-8GQASP4p2Mp7xmYG5MOHbtenFQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-8GQASP4p2Mp7xmYG5MOHbtenFQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/YbLNsSCPghU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/8186557832788794736/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=8186557832788794736" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/8186557832788794736?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/8186557832788794736?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/YbLNsSCPghU/blog-post.html" title="地域コミュニティとレイクタウン北自治会の話" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2011/10/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUARn09fip7ImA9WhdVE0U.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-3467806414317163472</id><published>2011-09-19T08:07:00.001+09:00</published><updated>2011-09-19T08:07:27.366+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-19T08:07:27.366+09:00</app:edited><title>函数プログラミングの集い</title><content type="html">9/17に行われました函数プログラミングの集いにて、Clojureとその界隈での最近の更新やどういったものがきているのかという話をさせていただきました。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://nyampass.com/presen/fpm2011/#slide1"&gt;函数プログラミングの集い | 発表資料&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
内容としては、Clojure 1.3の非常にざっくりとした話と、ClojureScript、Herokuで動くようになりましたよという３つで、狙いとしてはClojureがいろんな環境で動くことを知ってもらい、同時に短い期間でこれだけのサービス、ライブラリが立ち上げっていることからClojureがきている感じを伝えられればというところでした。&lt;br /&gt;
&lt;br /&gt;
普段から仕事で使っていて、使い勝手のよい、楽しい言語なのでもっと日本ででも広がればと思っています。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-3467806414317163472?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/klKI7VlTULeK0rTa0nkXDkJF5nE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/klKI7VlTULeK0rTa0nkXDkJF5nE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/klKI7VlTULeK0rTa0nkXDkJF5nE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/klKI7VlTULeK0rTa0nkXDkJF5nE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/5QjQ6zC3KvE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/3467806414317163472/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=3467806414317163472" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/3467806414317163472?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/3467806414317163472?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/5QjQ6zC3KvE/917clojure-clojure-1.html" title="函数プログラミングの集い" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2011/09/917clojure-clojure-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEBRn09fSp7ImA9WxFXFE8.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-5981046385776295523</id><published>2010-05-21T16:40:00.000+09:00</published><updated>2010-05-21T16:40:57.365+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-21T16:40:57.365+09:00</app:edited><title>Clojure + Jettyでウェブアプリケーションを動作させるJarファイル</title><content type="html">このところClojureを使ったウェブアプリケーションを書いていて、&lt;br /&gt;
そのアプリケーションを単体で動かそうとしたときのまとめを書いておこうと思います。&lt;br /&gt;
&lt;br /&gt;
ウェブアプリケーションをJarファイルにパッケージしたというそれだけのことですが、ClojureでJarアプリケーションを作って動くことに感動したので。&lt;br /&gt;
&lt;br /&gt;
前提としてLeiningenを使いCompojureでウェブアプリケーションを開発しています。&lt;br /&gt;
project.cljに以下の行を追加します。&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clj"&gt;(defproject hoge "1.0.0-SNAPSHOT"
  :main hoge.core
  ....
&lt;/pre&gt;&lt;br /&gt;
src/hoge/core.cljには以下のように記述しました。hoge.web/appというのをCompojureのdefroutesで定義しています。&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clj"&gt;(ns hoge.core
  (:use hoge.web
 compojure)
  (:gen-class))

(defn -main [&amp; args]
  (run-server {:port (Integer/parseInt (first args))}
       "/*" (servlet app)))
&lt;/pre&gt;&lt;br /&gt;
これで、Leiningenを使いJarファイルを作成します。&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;lein uberjar
&lt;/pre&gt;&lt;br /&gt;
作成された、hoge-standalone.jarがJettyで起動するかを確認します。&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;java -jar hoge-standalone.jar 8080
&lt;/pre&gt;&lt;br /&gt;
Jettyの起動時のログが出力され、ブラウザでhttp://localhost:8080/を見るとアプリケーションとして動作してるかどうかが分かります。&lt;br /&gt;
&lt;br /&gt;
あとは、このJarファイルをサーバへアップし起動すればOKです。&lt;br /&gt;
&lt;br /&gt;
このやりかただとアプリケーション単体でアプリケーションサーバとして動かしているので、既存のウェブアプリケーションサーバに配置したい場合は、warにしてXMLファイルをゴニョゴニョすればいいんだと思います。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-5981046385776295523?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xFONxiUS-8-gJyyFZAtukzp3Ygk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xFONxiUS-8-gJyyFZAtukzp3Ygk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xFONxiUS-8-gJyyFZAtukzp3Ygk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xFONxiUS-8-gJyyFZAtukzp3Ygk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/4q982Zw22R4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/5981046385776295523/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=5981046385776295523" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/5981046385776295523?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/5981046385776295523?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/4q982Zw22R4/clojure-jettyjar.html" title="Clojure + Jettyでウェブアプリケーションを動作させるJarファイル" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2010/05/clojure-jettyjar.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcAQnw_eip7ImA9WxBbFk8.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-892119895635023443</id><published>2010-03-15T12:00:00.000+09:00</published><updated>2010-03-15T12:00:43.242+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-15T12:00:43.242+09:00</app:edited><title>携帯セッションを管理するSinatraアプリケーション用プラグイン</title><content type="html">Sinatra、Rackアプリケーションで携帯のセッション管理の自動化を行うためのプラグインをgithubに公開しました。&lt;br /&gt;
セッション情報をmemcacheに格納し、HTML中に自動的にセッションIDを埋め込みます。&lt;br /&gt;
&lt;br /&gt;
機能&lt;br /&gt;
- ボディ内のリンクおよびフォームを解析し、自動でセッションIDのURLに変更します&lt;br /&gt;
- URL中に含まれるセッションIDをもとにセッションの管理を行います&lt;br /&gt;
- セッション情報はmemcacheに格納されます&lt;br /&gt;
&lt;br /&gt;
昨年末に作った携帯サイト用の機能を切り出したものです。&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://github.com/tnoborio/mobile_session"&gt;MobileSession&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-892119895635023443?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eBJqMLcdqfr-fUHdj7m_W5enFao/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eBJqMLcdqfr-fUHdj7m_W5enFao/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eBJqMLcdqfr-fUHdj7m_W5enFao/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eBJqMLcdqfr-fUHdj7m_W5enFao/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/By2mwGqE2Fc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/892119895635023443/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=892119895635023443" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/892119895635023443?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/892119895635023443?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/By2mwGqE2Fc/sinatra.html" title="携帯セッションを管理するSinatraアプリケーション用プラグイン" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2010/03/sinatra.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkADRnk7cSp7ImA9WxBbE08.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-6478042825731624663</id><published>2010-03-12T02:30:00.001+09:00</published><updated>2010-03-12T02:32:57.709+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-12T02:32:57.709+09:00</app:edited><title>WakameTech #1 そろそろ本気でIaaS型クラウドを作る会のプレゼン資料</title><content type="html">&lt;a href="http://atnd.org/events/2753"&gt;当日&lt;/a&gt;話しをさせていただいたプレゼンの資料をアップしました。&lt;br /&gt;
まもなく公開されるWakame1.0の内部を作るエンジニアとしてのWakameの実際の動きを話させていただきました。&lt;br /&gt;
（40人もの前で話すのは初めての経験でしたがなんとかなると思ってたところ、けっこうカミカミで、来ていた友人にもあとで指摘されました、、、）&lt;br /&gt;
懇親会での参加者とのクラウド、関数型言語あたりの話が面白かったです。&lt;br /&gt;
&lt;br /&gt;
スライドショーの内容は前提としてあくしゅ代表の山崎さんの資料が先に頭に入ってないと略語だらけであまり分からないかと思います。&lt;br /&gt;
&lt;a href="http://blog.livedoor.jp/sparklegate/archives/50574156.html"&gt;[Wakame] IaaSを本気で作る会のスライドをアップしました！ | やむにやまれず&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="width:4００px" id="__ss_3386922"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/tnoborio/wakeme-presen" title="Wakeme Presen"&gt;Wakeme Presen&lt;/a&gt;&lt;/strong&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=wakemepresen-100310102709-phpapp02&amp;stripped_title=wakeme-presen" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=wakemepresen-100310102709-phpapp02&amp;stripped_title=wakeme-presen" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/tnoborio"&gt;tnoborio&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
フリーランスとしてですが開発に参加させていただき、また発表の場まで与えていただいたあくしゅさんありがとうございます。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-6478042825731624663?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HIMin5j552LfdoB7g_j_6HTQXPI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HIMin5j552LfdoB7g_j_6HTQXPI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HIMin5j552LfdoB7g_j_6HTQXPI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HIMin5j552LfdoB7g_j_6HTQXPI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/MYzKvE6Yunc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/6478042825731624663/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=6478042825731624663" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/6478042825731624663?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/6478042825731624663?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/MYzKvE6Yunc/wakametech-1-iaas.html" title="WakameTech #1 そろそろ本気でIaaS型クラウドを作る会のプレゼン資料" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2010/03/wakametech-1-iaas.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMGQXg8cCp7ImA9WxBUEE8.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-104608396174384533</id><published>2010-02-24T17:35:00.001+09:00</published><updated>2010-02-25T01:03:40.678+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-25T01:03:40.678+09:00</app:edited><title>ClojureでCompojureを使わずにサーブレットを書く方法</title><content type="html">Clojureでgen-class、proxyを使ってみようと思い、試しにサーブレットを書くとどうなるかを試してみました。&lt;br /&gt;
&lt;br /&gt;
コンパイルにLeiningenを使うためプロジェクトを作ります。&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;lein new sample-servlet&lt;/pre&gt;&lt;br /&gt;
まずはsrc/sample_servlet/servlet.cljを書いてみます。&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clj"&gt;(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 "&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;hello world&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;"))))

(defn -doGet [this request response]
  (-servlet this request response))&lt;/pre&gt;&lt;br /&gt;
依存関係とクラスファイル生成のオプションを与えたproject.cljファイルを作りました。&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clj"&gt;(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])
&lt;/pre&gt;&lt;br /&gt;
必要なライブラリを取得しコンパイル。&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;lein deps
lein compile
&lt;/pre&gt;&lt;br /&gt;
無事生成されたことが分かります。&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;% ls -lr classes/sample_servlet 
total 48
-rw-r--r--  1 tnoborio  staff  2617  2 24 16:03 servlet__init.class
-rw-r--r--  1 tnoborio  staff  6178  2 24 16:03 servlet.class
-rw-r--r--  1 tnoborio  staff  1631  2 24 16:03 servlet$loading__6309__auto____12.class
-rw-r--r--  1 tnoborio  staff  1401  2 24 16:03 servlet$_servlet__14.class
-rw-r--r--  1 tnoborio  staff  1006  2 24 16:03 servlet$_doGet__17.class
&lt;/pre&gt;&lt;br /&gt;
と、ここからサーブレットを起動させる方法はいくつもありますが、&lt;br /&gt;
以下のページを基にJettyとMavenを使った方法を試しました。&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.mail-archive.com/clojure@googlegroups.com/msg21663.html"&gt;Re: Deploying Leiningen project as WAR file?&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
1. project.cljに :compile-path "target/classes" を追加する。Jettyが見るパスがtarget/classesになっているのでそのためです。&lt;br /&gt;
2. src/main/webapp/WEB-INF/web.xmlを作る。今回作ったサーブレットsample_servlet.servletを指定します。&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;lt;web-app&amp;gt;
  &amp;lt;display-name&amp;gt;Sample Servlet&amp;lt;/display-name&amp;gt;
     &amp;lt;servlet&amp;gt;
       &amp;lt;servlet-name&amp;gt;s&amp;lt;/servlet-name&amp;gt;
       &amp;lt;servlet-class&amp;gt;sample_servlet.servlet&amp;lt;/servlet-class&amp;gt;
     &amp;lt;/servlet&amp;gt;
     &amp;lt;servlet-mapping&amp;gt;
       &amp;lt;servlet-name&amp;gt;s&amp;lt;/servlet-name&amp;gt;
       &amp;lt;url-pattern&amp;gt;/&amp;lt;/url-pattern&amp;gt;
     &amp;lt;/servlet-mapping&amp;gt;
   &amp;lt;/web-app&amp;gt;&lt;/pre&gt;&lt;br /&gt;
3. "lein pom"でpom.xmlファイルを生成。生成されたpom.xmlに以下のリンクの内容を追加します。&lt;br /&gt;
&lt;a href="http://github.com/gmfawcett/simplest/commit/44d978c55ae02112647a743b6f957156787fba25"&gt;http://github.com/gmfawcett/simplest/commit/44d978c55ae02112647a743b6f957156787fba25&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
4. "mvn jetty:run"でjettyが起動します。今回のプロジェクト名なら以下でアクセスできます。&lt;br /&gt;
http://localhost:8080/sample-servlet/&lt;br /&gt;
&lt;br /&gt;
最初はどこまでをLeiningenがやってくれてどこからがMavenの範囲か分かりませんでしたが動かしてみて分かりました。次はHadoopとClojureを絡ませられればと思います。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-104608396174384533?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/awl4sWvGlbSy9Q1VqFU8KvyX-Gw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/awl4sWvGlbSy9Q1VqFU8KvyX-Gw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/awl4sWvGlbSy9Q1VqFU8KvyX-Gw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/awl4sWvGlbSy9Q1VqFU8KvyX-Gw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/70mMpXa1mSs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/104608396174384533/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=104608396174384533" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/104608396174384533?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/104608396174384533?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/70mMpXa1mSs/clojurecompojure.html" title="ClojureでCompojureを使わずにサーブレットを書く方法" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2010/02/clojurecompojure.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIMRn88fSp7ImA9WxBVFks.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-2242586059514110066</id><published>2010-02-20T21:23:00.000+09:00</published><updated>2010-02-20T21:23:07.175+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-20T21:23:07.175+09:00</app:edited><title>はじめてのiPhone3プログラミング</title><content type="html">生徒へのレッスン用と、iPhone3の技術の確認(最近iPhoneアプリを作っていなかったので)のため、以下の本を購入しました。&lt;br /&gt;
一年前は全然iPhoneの本もなかった状況でしたがその後雨後の竹の子状態でいろいろと技術書、関連書籍が出てきましたね。&lt;br /&gt;
&lt;br /&gt;
と選び放題の本の中で以下の本がおすすめです。&lt;br /&gt;
&lt;br /&gt;
&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=learnsnoiporg-22&amp;o=9&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=1X69VDGQCMF7Z30FM082&amp;asins=4797358106" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;第1章:ジャングルへようこそ!
第2章:Xcode入門
第3章:基本操作をハンドリングする
第4章:より高度なユーザーインタフェースを作る
第5章:画面の自動サイジングと自動回転を作る
第6章:マルチビュー・アプリを作る
第7章:ツールバーとピッカーを作る
第8章:テーブルビュー入門
第9章:ナビゲーションコントローラーとテーブルビューを作る
第10章:アプリケーションの設定画面とユーザーデフォルトを作る
第11章:SQLiteによるデータの永続化
第12章:QuartzとOpenGLによるドローイングアプリケーション 
第13章:タップ/タッチ/ジェスチャーをコントロールする
第14章:ここはどこ? 位置情報を扱う
第15章:さらにクールなアプリを作る
第16章:iPhoneカメラとフォトライブラリをコントロールする
第17章:多言語対応するには?
第18章:iPhoneアプリの次なる道は?&lt;/pre&gt;&lt;br /&gt;
あれっ、実際の本と目次が違います。2章は「ティキ神さまを怒らせるな」ですがAmazonで見ると上記の通りで違っていますね。よく見ると15章も本の方は「やってしまった！」です。&lt;br /&gt;
内容もこういう感じで砕けていて随所にユーモアが見られます。&lt;br /&gt;
ユーモアがあるだけでなく、基本をしっかりと抑えつつ、丁寧な解説がコードごとにあり非常に分かりやすいです。&lt;br /&gt;
いくつもiPhone SDKの本を見てみましたがこの本は書いだなと思います。&lt;br /&gt;
&lt;br /&gt;
ちなみに本書と対応しているソースコードがたいへん見つけにくく、フォーラムへの会員登録が必要でした。&lt;br /&gt;
今日時点でのソースコードの置き場をリンクして置きます。&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://iphonedevbook.com/forum/viewtopic.php?f=26&amp;t=5&amp;sid=e4cf743ccca4196bc4333d6f0941cbbd"&gt;Read this BEFORE you download any source code...&lt;/a&gt;&lt;br&gt;&lt;br /&gt;
&lt;a href="http://iphonedevbook.com/forum/viewtopic.php?f=26&amp;t=2938&amp;sid=e4cf743ccca4196bc4333d6f0941cbbd"&gt;Latest source archive, Oct 12, 2009, goes with SDK 3.1.2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-2242586059514110066?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VEwItGuM0z3cONdoxKw7Q2SGgu8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VEwItGuM0z3cONdoxKw7Q2SGgu8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VEwItGuM0z3cONdoxKw7Q2SGgu8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VEwItGuM0z3cONdoxKw7Q2SGgu8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/Jdq7qI6OrPY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/2242586059514110066/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=2242586059514110066" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/2242586059514110066?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/2242586059514110066?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/Jdq7qI6OrPY/iphone3.html" title="はじめてのiPhone3プログラミング" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2010/02/iphone3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4BR3Y5eyp7ImA9WxBVEU4.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-8456877366121267297</id><published>2010-02-14T17:05:00.004+09:00</published><updated>2010-02-14T17:42:36.823+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-14T17:42:36.823+09:00</app:edited><title>Fedora 8でRails2.3を入れる</title><content type="html">前回Rails 2.3をAmaozon EC2のFedora 8イメージで試そうとしましたが失敗したため、&lt;br /&gt;
再度チャレンジしてみましたが、今回はあっけなく最初にgemsをアップデートするだけで解決してしまいました。&lt;br /&gt;
ということでEC2にあるFedora 8の"Ruby on Rails Web Starter (AMI Id: ami-22b0534b)"をRails 2.3にする手順は以下の通り。&lt;br /&gt;
&lt;pre&gt;# 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)
&lt;/pre&gt;1.3.5に先にアップデート。&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;# gem install rubygems-update
# update_rubygems
&lt;/pre&gt;前回と違いすんなりインストールされました、、、&lt;br /&gt;
&lt;pre&gt;# 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)
&lt;/pre&gt;無事Railsの最新状態になりました。Railsアプリケーションを作ります。&lt;br /&gt;
&lt;pre&gt;$ rails -d mysql app
$ cd app
$ script/server 
=&gt; Booting Mongrel
=&gt; Rails 2.3.5 application starting on http://0.0.0.0:3000
=&gt; Call with -d to detach
=&gt; Ctrl-C to shutdown server
&lt;/pre&gt;&lt;br /&gt;
接続も無事成功します。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-8456877366121267297?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6KLYBppf8IErVHz5-iTZqTIi5wM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6KLYBppf8IErVHz5-iTZqTIi5wM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6KLYBppf8IErVHz5-iTZqTIi5wM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6KLYBppf8IErVHz5-iTZqTIi5wM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/SXZ9DqJRCgQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/8456877366121267297/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=8456877366121267297" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/8456877366121267297?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/8456877366121267297?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/SXZ9DqJRCgQ/bash.html" title="Fedora 8でRails2.3を入れる" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2010/02/bash.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4ERXwyeip7ImA9WxBVEEg.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-5280972559398327008</id><published>2010-02-13T17:09:00.005+09:00</published><updated>2010-02-13T19:28:24.292+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-13T19:28:24.292+09:00</app:edited><title>Bloggerでのコードの色付け-Clojure編</title><content type="html">Bloggerでソースコードを色付したいと思い調べてみました。&lt;br /&gt;
&lt;br /&gt;
見つけた色付けのコードは以下の二種類。&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;  &lt;li&gt;&lt;a href="http://code.google.com/p/google-code-prettify/"&gt;google-code-prettify&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://alexgorbatchev.com/wiki/SyntaxHighlighter"&gt;http://alexgorbatchev.com/wiki/SyntaxHighlighter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
デフォルトの状態では両方共Clojureに対応していませんでしたが(まだそこまでのメジャー度ではないわけですね)、SyntaxHighligher用のClojureに対応するJavaScriptコードを以下のサイトで見つけました。&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.undermyhat.org/blog/2009/09/list-of-brushes-syntaxhighligher/"&gt;http://www.undermyhat.org/blog/2009/09/list-of-brushes-syntaxhighligher/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
あとはGoogleサイトのファイルキャビネットを使いちまちまとSyntaxHighligherファイルをアップし、Clojureのコードは本サイト中に埋め込んで完成です。&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: clj" name="code"&gt;(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)))
&lt;/pre&gt;&lt;br /&gt;
ファイルキャビネットは初めて使いましたが一括ファイルアップロード機能が欲しいですね。ディレクトリを内部で作ってもファイルのパスはディレクトリを無視するという仕様にはまりました。ちなみに以下のようなファイルをアップしてます。&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://sites.google.com/site/tnoborio/hightlight"&gt;http://sites.google.com/site/tnoborio/hightlight&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-5280972559398327008?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fkAinZxjP2pZ95NK1TpnhKQOuSI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fkAinZxjP2pZ95NK1TpnhKQOuSI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fkAinZxjP2pZ95NK1TpnhKQOuSI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fkAinZxjP2pZ95NK1TpnhKQOuSI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/OmNhLq0CnVc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/5280972559398327008/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=5280972559398327008" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/5280972559398327008?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/5280972559398327008?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/OmNhLq0CnVc/blog-post.html" title="Bloggerでのコードの色付け-Clojure編" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2010/02/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYCSXg_fSp7ImA9WxBWGUQ.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-4365291394516084399</id><published>2010-02-13T00:56:00.000+09:00</published><updated>2010-02-13T00:56:08.645+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-13T00:56:08.645+09:00</app:edited><title>Fedora 8でRails2.3が入らず途中までの記憶</title><content type="html">AmazonのAMIを使いRails 2.3を入れてみようとしていろいろステップが必要だったので共有します。&lt;br /&gt;
Railsライブラリは入りますが最後、Railsを起動で成功していません。&lt;br /&gt;
&lt;br /&gt;
今回は、Fedora 8の"Ruby on Rails Web Starter (AMI Id: ami-22b0534b)"を使いました。&lt;br /&gt;
&lt;br /&gt;
パッケージ管理で最新のFedora 8のパッケージに入っているRailsに更新します。&lt;br /&gt;
&lt;br /&gt;
# yum install rubygem-rails&lt;br /&gt;
&lt;br /&gt;
yum listで見てもRailsは2.2のままです。gemでチェックしてみます。&lt;br /&gt;
&lt;br /&gt;
# gem list&lt;br /&gt;
actionmailer (2.2.2, 2.1.1)&lt;br /&gt;
actionpack (2.2.2, 2.1.1)&lt;br /&gt;
activerecord (2.2.2, 2.1.1)&lt;br /&gt;
activeresource (2.2.2, 2.1.1)&lt;br /&gt;
activesupport (2.2.2, 2.1.1)&lt;br /&gt;
cgi_multipart_eof_fix (2.5.0)&lt;br /&gt;
daemons (1.0.10)&lt;br /&gt;
fastthread (1.0.1)&lt;br /&gt;
gem_plugin (0.2.3)&lt;br /&gt;
mongrel (1.1.5)&lt;br /&gt;
open4 (0.9.6)&lt;br /&gt;
rails (2.2.2, 2.1.1)&lt;br /&gt;
rake (0.8.3)&lt;br /&gt;
&lt;br /&gt;
まずはgemsを更新してみます。&lt;br /&gt;
&lt;br /&gt;
# gem update&lt;br /&gt;
Updating installed gems&lt;br /&gt;
Updating actionmailer&lt;br /&gt;
ERROR:  While executing gem ... (Gem::InstallError)&lt;br /&gt;
    actionpack requires rack (~&gt; 1.0.0, runtime)&lt;br /&gt;
&lt;br /&gt;
Rack 1.0.0が求められるようなのでバージョンを指定して先にインストールします。&lt;br /&gt;
&lt;br /&gt;
# gem install rack -v 1.0.0 &lt;br /&gt;
Successfully installed rack-1.0.0&lt;br /&gt;
1 gem installed&lt;br /&gt;
Installing ri documentation for rack-1.0.0...&lt;br /&gt;
Installing RDoc documentation for rack-1.0.0...&lt;br /&gt;
&lt;br /&gt;
再度更新してみます。&lt;br /&gt;
&lt;br /&gt;
# gem upgrade&lt;br /&gt;
Updating installed gems&lt;br /&gt;
Updating actionmailer&lt;br /&gt;
Successfully installed actionpack-2.3.5&lt;br /&gt;
Successfully installed actionmailer-2.3.5&lt;br /&gt;
Updating activeresource&lt;br /&gt;
Successfully installed activeresource-2.3.5&lt;br /&gt;
Updating fastthread&lt;br /&gt;
Building native extensions.  This could take a while...&lt;br /&gt;
Successfully installed fastthread-1.0.7&lt;br /&gt;
Updating open4&lt;br /&gt;
Successfully installed open4-1.0.1&lt;br /&gt;
Updating rails&lt;br /&gt;
Successfully installed rails-2.3.5&lt;br /&gt;
Updating rake&lt;br /&gt;
Successfully installed rake-0.8.7&lt;br /&gt;
Gems updated: actionpack, actionmailer, activeresource, fastthread, open4, rails, rake&lt;br /&gt;
&lt;br /&gt;
無事Railsの最新状態になりました。Railsアプリケーションを作ります。&lt;br /&gt;
&lt;br /&gt;
# rails app&lt;br /&gt;
/usr/lib/ruby/site_ruby/1.8/rubygems.rb:578:in `report_activate_error': Could not find RubyGem test-spec (&gt;= 0) (Gem::LoadError)&lt;br /&gt;
 from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:134:in `activate'&lt;br /&gt;
 from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:158:in `activate'&lt;br /&gt;
 from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:157:in `each'&lt;br /&gt;
 from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:157:in `activate'&lt;br /&gt;
 from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:158:in `activate'&lt;br /&gt;
 from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:157:in `each'&lt;br /&gt;
 from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:157:in `activate'&lt;br /&gt;
 from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:158:in `activate'&lt;br /&gt;
 from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:157:in `each'&lt;br /&gt;
 from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:157:in `activate'&lt;br /&gt;
 from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:49:in `gem'&lt;br /&gt;
&lt;br /&gt;
必要だといわれるパッケージtest-specをインストールします。&lt;br /&gt;
&lt;br /&gt;
# gem install test-spec&lt;br /&gt;
# rails app&lt;br /&gt;
&lt;br /&gt;
再度エラーが出てしまいます。&lt;br /&gt;
&lt;br /&gt;
# rails app&lt;br /&gt;
/usr/lib/ruby/site_ruby/1.8/rubygems.rb:578:in `report_activate_error': Could not find RubyGem camping (&gt;= 0) (Gem::LoadError)&lt;br /&gt;
&lt;br /&gt;
必要なパッケージを入れます。&lt;br /&gt;
&lt;br /&gt;
# gem install camping&lt;br /&gt;
&lt;br /&gt;
# gem install fcgi&lt;br /&gt;
Building native extensions.  This could take a while...&lt;br /&gt;
ERROR:  Error installing fcgi:&lt;br /&gt;
 ERROR: Failed to build gem native extension.&lt;br /&gt;
&lt;br /&gt;
/usr/bin/ruby extconf.rb install fcgi&lt;br /&gt;
checking for fcgiapp.h... no&lt;br /&gt;
checking for fastcgi/fcgiapp.h... no&lt;br /&gt;
*** extconf.rb failed ***&lt;br /&gt;
Could not create Makefile due to some reason, probably lack of&lt;br /&gt;
necessary libraries and/or headers.  Check the mkmf.log file for more&lt;br /&gt;
details.  You may need configuration options.&lt;br /&gt;
&lt;br /&gt;
Provided configuration options:&lt;br /&gt;
 --with-opt-dir&lt;br /&gt;
 --without-opt-dir&lt;br /&gt;
 --with-opt-include&lt;br /&gt;
 --without-opt-include=${opt-dir}/include&lt;br /&gt;
 --with-opt-lib&lt;br /&gt;
 --without-opt-lib=${opt-dir}/lib&lt;br /&gt;
 --with-make-prog&lt;br /&gt;
 --without-make-prog&lt;br /&gt;
 --srcdir=.&lt;br /&gt;
 --curdir&lt;br /&gt;
 --ruby=/usr/bin/ruby&lt;br /&gt;
 --with-fcgi-dir&lt;br /&gt;
 --without-fcgi-dir&lt;br /&gt;
 --with-fcgi-include&lt;br /&gt;
 --without-fcgi-include=${fcgi-dir}/include&lt;br /&gt;
 --with-fcgi-lib&lt;br /&gt;
 --without-fcgi-lib=${fcgi-dir}/lib&lt;br /&gt;
&lt;br /&gt;
Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/fcgi-0.8.8 for inspection.&lt;br /&gt;
Results logged to /usr/lib/ruby/gems/1.8/gems/fcgi-0.8.8/ext/fcgi/gem_make.out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fcgiを先にgemsではなくyumでインストールしました。&lt;br /&gt;
&lt;br /&gt;
# yum install fcgi fcgi-devel&lt;br /&gt;
# gem install fcgi&lt;br /&gt;
&lt;br /&gt;
fcgiの問題が解決したあとも、色々なパッケージのインストールを求められましたので状況を省略して必要なコマンドを列挙します。&lt;br /&gt;
&lt;br /&gt;
gem install memcache-client ruby-openid&lt;br /&gt;
gem install ruby-openid --version='~&gt;2.0.0'&lt;br /&gt;
yum install gcc-c++&lt;br /&gt;
gem install thin&lt;br /&gt;
gem install shotgun&lt;br /&gt;
gem rack-test&lt;br /&gt;
&lt;br /&gt;
途中ruby-openidの問題は原因が分からず、以下のサイトが参考になりました。&lt;br /&gt;
&lt;a href="http://www.v-sands.com/~jgb/tecmemo/?Sinatra+%BD%E0%C8%F7"&gt;http://www.v-sands.com/~jgb/tecmemo/?Sinatra+%BD%E0%C8%F7&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
これでようやくrailsコマンドが動くようになりました。&lt;br /&gt;
&lt;br /&gt;
# rails app&lt;br /&gt;
# cd app/&lt;br /&gt;
&lt;br /&gt;
database.ymlをMySQLに修正し、サーバを起動してみます。&lt;br /&gt;
&lt;br /&gt;
# script/server &lt;br /&gt;
Rails requires RubyGems &gt;= 1.3.2 (you have 1.2.0). Please `gem update --system` and try again.&lt;br /&gt;
&lt;br /&gt;
なんと起動時にgemsのバージョンが古いことを怒られます。&lt;br /&gt;
&lt;br /&gt;
# gem install rubygems-update&lt;br /&gt;
# update_rubygems&lt;br /&gt;
# gem install session&lt;br /&gt;
# gem install hoe-seattlerb&lt;br /&gt;
# gem install rubyforge&lt;br /&gt;
&lt;br /&gt;
# update_rubygems &lt;br /&gt;
/usr/lib/ruby/site_ruby/1.8/rubygems.rb:578:in `report_activate_error': Could not find RubyGem gemcutter (&gt;= 0.2.1) (Gem::LoadError)&lt;br /&gt;
&lt;br /&gt;
gemcutterを必要とされますが、&lt;br /&gt;
&lt;br /&gt;
# gem install gemcutter&lt;br /&gt;
ERROR:  Error installing gemcutter:&lt;br /&gt;
 gemcutter requires RubyGems version &gt;= 1.3.5&lt;br /&gt;
&lt;br /&gt;
と表示され、gemcutterとrubygemsがお互いに必要とする三すくみ状態で表題の通り詰まってしまいました。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-4365291394516084399?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Vdu7smIWjAsgQLeotVNmmSUeXM4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Vdu7smIWjAsgQLeotVNmmSUeXM4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Vdu7smIWjAsgQLeotVNmmSUeXM4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Vdu7smIWjAsgQLeotVNmmSUeXM4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/5D_as35m45A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/4365291394516084399/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=4365291394516084399" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/4365291394516084399?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/4365291394516084399?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/5D_as35m45A/fedora-8rails23.html" title="Fedora 8でRails2.3が入らず途中までの記憶" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2010/02/fedora-8rails23.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIMQ3o7fyp7ImA9WxBWF00.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-759282314724367997</id><published>2010-02-09T18:09:00.001+09:00</published><updated>2010-02-09T18:09:42.407+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-09T18:09:42.407+09:00</app:edited><title>Google App Engineで動く、Clojure + Compojureで作るTwitter Bot</title><content type="html">表題のアプリケーションを作ってまして、今日からgithubに公開するようにしました。&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://github.com/tnoborio/gomitoban"&gt;http://github.com/tnoborio/gomitoban&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
なぜgomitoban(ゴミ当番)という名前かというと今日は何のゴミ出しの曜日かをTwitter botが親切にも教えてくれるアプリケーションだからです。半分ジョークのような作品ですが、Clojure、Compojure、Google App Engineの勉強に調度良いかと思いはじめてみました。&lt;br /&gt;
&lt;br /&gt;
一昨日やってみたClojureコードバトンでgithubをはじめたこともあって、そこにおいてみようということでスタートさせたプロジェクトです。&lt;br /&gt;
&lt;br /&gt;
まだ未完成なので完了したら告知します。&lt;br /&gt;
&lt;br /&gt;
Compojureやってみようという方の参考になれば幸いです。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-759282314724367997?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hogxfiVH34n9_KT-XFkHR9jDyHQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hogxfiVH34n9_KT-XFkHR9jDyHQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hogxfiVH34n9_KT-XFkHR9jDyHQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hogxfiVH34n9_KT-XFkHR9jDyHQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/Un2lu5jQaeU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/759282314724367997/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=759282314724367997" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/759282314724367997?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/759282314724367997?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/Un2lu5jQaeU/google-app-engineclojure.html" title="Google App Engineで動く、Clojure + Compojureで作るTwitter Bot" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2010/02/google-app-engineclojure.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04ESXY5eyp7ImA9WxBWFUQ.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-4351860683110112079</id><published>2010-02-08T11:25:00.000+09:00</published><updated>2010-02-08T11:25:08.823+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-08T11:25:08.823+09:00</app:edited><title>Clojureコードバトン参加中</title><content type="html">&lt;a href="http://twitter.com/omasanori"&gt;omasanori&lt;/a&gt;さんからClojureコードバトンを受け取りました。&lt;br /&gt;
&lt;br /&gt;
コードを見てみてClojureならではのことをやれたら面白いなと思い、Swingを使ったGUI化をメインでやりつつ、途中GUIかCUIかという昨日の切換えのところでマルチメソッドを使ってみました。&lt;br /&gt;
&lt;br /&gt;
ということでフォークして変更を加えたコードバトンの今現在のURLはここです。&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://gist.github.com/297546"&gt;http://gist.github.com/297546&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
やってみて面白かったです。Clojureでさくさく書けるという面白さと、バトンで渡ってきた受け継がれてきたきれいなコードを読んでちょこちょこ追加する腕試し的な楽しさと。&lt;br /&gt;
&lt;br /&gt;
gist.githubははじめて使いましたがウェブ上で編集、フォークができるというのは便利ですね。&lt;br /&gt;
といいいつつも、なれているgitの方で結局cloneしcommitしましたが、、、細かい単位でコミットしたいという場合はgitに頼ってしまいます。githubもアカウントとったままだったので鍵を設定したりと今度コードを公開するためのちょうど良い機会になりました。&lt;br /&gt;
&lt;br /&gt;
バトンに関するリンクは以下の通り。&lt;br /&gt;
&lt;ul&gt; &lt;li&gt;&lt;a href="http://d.hatena.ne.jp/higepon/20100111/1263202895"&gt;Scheme コードバトンまとめページ - ひげぽん OSとか作っちゃうかMona-&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;バトン、二人前の走者のdeltamさん - &lt;a href="http://deltam.blogspot.com/2010/01/clojure.html#links"&gt;サルノオボエガキ: Clojureコードバトンを受け取った&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Clojureコードバトンにご興味ある方はぜひご連絡(&lt;a href="http://twitter.com/tnoborio"&gt;tnoborio&lt;/a&gt;)ください。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-4351860683110112079?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JqsmaO7qPulVALecoIC8TR6kyDE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JqsmaO7qPulVALecoIC8TR6kyDE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JqsmaO7qPulVALecoIC8TR6kyDE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JqsmaO7qPulVALecoIC8TR6kyDE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/im0datvpo8E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/4351860683110112079/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=4351860683110112079" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/4351860683110112079?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/4351860683110112079?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/im0datvpo8E/clojure.html" title="Clojureコードバトン参加中" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2010/02/clojure.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYESXw5cSp7ImA9WxBWFU8.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-7145840909894922733</id><published>2010-02-07T14:54:00.001+09:00</published><updated>2010-02-07T14:55:08.229+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-07T14:55:08.229+09:00</app:edited><title>プログラミングを学びたいひとのためのメールサポートプラン</title><content type="html">先週axshさん主催のWakameTechでの発表もなんとか無事終りました。&lt;br /&gt;
と言っても参加してもらった友人曰くカミカミだったとのことで発表に関しての課題は残りましたが、、、&lt;br /&gt;
&lt;br /&gt;
また、生徒に対してプログラミングを教えるという活動をやっているのですが、対面だけでなく、メールでのサポートを始めてみようと２月に入ってからメールサポートプランと言うのを用意してみました。&lt;br /&gt;
&lt;br /&gt;
以下は某マッチングサイトに乗っけた内容そのままなのでちょっと口調が違いますがご了承ください。&lt;br /&gt;
興味のある方はご連絡くださいませ。&lt;br /&gt;
&lt;br /&gt;
&lt;hr&gt;10名限定！業務仕込みのプログラミング入門講座&lt;br /&gt;
昨年一年間、企業、個人の方に教えてきましたプログラミング開発のノウハウを&lt;br /&gt;
多くの方に低価格でご提供しようと思い2月限定でメニューを一新しました(2010/2/4更新)&lt;br /&gt;
--&lt;br /&gt;
[メールサポートプラン]&lt;br /&gt;
プログラミング初心者あるいは、すでにエンジニアの方で新しく他の言語を効率的にマスターしたい方向けのコースです&lt;br /&gt;
例えば、新しく言語を勉強したいと思って本は買ったけど最初でつまづいてしまっている、分からないところだけを聞きたいという方を対象としています&lt;br /&gt;
&lt;br /&gt;
- 一ヶ月間無制限のメールサポート(忙しい方でも気軽にスタートできます)&lt;br /&gt;
- テキストあるいは、こちらから出す課題に沿って学んでいきます&lt;br /&gt;
- 対象言語: Java/Ruby/Python&lt;br /&gt;
- 初回申込費用を除くと6,000円以上かかりません&lt;br /&gt;
&lt;br /&gt;
忙しい方でも気軽にスタートできますし、&lt;br /&gt;
プログラミングの楽しさを感じられるお手伝いができれば幸いです&lt;br /&gt;
&lt;hr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-7145840909894922733?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AsyOphaN5C6rGgkwKmelWXBwFdc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AsyOphaN5C6rGgkwKmelWXBwFdc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AsyOphaN5C6rGgkwKmelWXBwFdc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AsyOphaN5C6rGgkwKmelWXBwFdc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/NZSiciAoXeg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/7145840909894922733/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=7145840909894922733" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/7145840909894922733?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/7145840909894922733?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/NZSiciAoXeg/axshwakametech-10-2201024.html" title="プログラミングを学びたいひとのためのメールサポートプラン" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2010/02/axshwakametech-10-2201024.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAFSHw7eip7ImA9WxBXF04.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-8875719296741761209</id><published>2010-01-29T12:45:00.000+09:00</published><updated>2010-01-29T12:45:19.202+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-29T12:45:19.202+09:00</app:edited><title>Clojure + Compojure on Google App Engine</title><content type="html">プログラミングClojureを購入し、ここ数日Clojureにはまりつつあります。&lt;br /&gt;
JVMで動き、Javaのライブラリが使えるという実用性とそのJVM上で優雅に動く関数型言語というイメージです。Scalaも同じようにJVMで動く関数型言語ですがClojureの方がLisp側に傾いています。&lt;br /&gt;
&lt;br /&gt;
で、そんなClojureをCompojureというフレームワークとともにGoogle App Engineで動かしてみようと昨日、今日試してみて成功しましたのでその手順を忘れないうちに書き留めておきます。&lt;br /&gt;
&lt;br /&gt;
参考にしたのは以下のサイト&lt;br /&gt;
&lt;a href="http://elhumidor.blogspot.com/2009/04/clojure-on-google-appengine.html"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;Clojure on Google App Engine&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Compojureをビルドすると、Clojureを含めたライブラリの依存関係を解決してくれるので最初に取得しておきます。&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://github.com/weavejester/compojure"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;Compojure&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
解凍先のディレクトリ内で"ant deps"と"ant"を行うと必要なライブラリ、compojure.jarが生成されます。&lt;br /&gt;
これらのライブラリと、その他GAE的に必要なライブラリをディレクトリにまとめ、build.xmlは以下のように編集しました。&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&amp;lt;project name="guestbook-clj" basedir="." default="test"&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;property environment="env" /&amp;gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;property name="sdk.dir" location="/Users/tnoborio/lib/appengine-java-sdk-1.3.0" /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;property name="classes.dir" value="war/WEB-INF/classes" /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;property name="lib.dir" value="war/WEB-INF/lib" /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;property name="src.dir" value="src" /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;property name="test.dir" value="test" /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;property name="compojure.dir" value="/Users/tnoborio/src/clojure/compojure" /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;property name="appengine.clj.jar" value="/Users/tnoborio/src/clojure/appengine-clj.jar" /&amp;gt;&lt;/blockquote&gt;(略...)&lt;br /&gt;
&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;lt;target name="copyjars"&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;copy file="${sdk.dir}/lib/user/appengine-api-1.0-sdk-1.3.0.jar" todir="${lib.dir}" /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;copy file="${compojure.dir}/compojure.jar" todir="${lib.dir}" /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;copy file="${appengine.clj.jar}" todir="${lib.dir}" /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;copy todir="${lib.dir}"&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;filelist dir="${compojure.dir}/deps" files="clojure.jar clojure-contrib.jar commons-io-1.4.jar commons-codec-1.3.jar commons-fileupload-1.2.1.jar" /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/copy&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/target&amp;gt;&lt;/blockquote&gt;(略...)&lt;br /&gt;
&lt;blockquote&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;アップ後、Internal Server Errorが出て途方にくれていたところ(オーバーですが)、&lt;a href="http://twitter.com/nitro_idiot"&gt;@nitro_idiot&lt;/a&gt;さんからアドバイスいただきました。&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;@tnoborio Compojureのソースのhttp.cljの17行目(http.multipart)をコメントアウトしてビルドし直すといいかもしれないです。GAEはファイルのアップができないので、ライブラリをimportするだけでエラーになるっていう&lt;/blockquote&gt;&lt;br /&gt;
試したところまさにそのとおりの対応で動作！ずばり的確な対処方法を教えていただけました。&lt;br /&gt;
まだHello Worldができただけなのでこれからですが、それなりのアプリを書いてみようと思います。&lt;br /&gt;
&lt;br /&gt;
&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=learnsnoiporg-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;md=1X69VDGQCMF7Z30FM082&amp;amp;asins=4274067890" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-8875719296741761209?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ftM3EJsDtrERxLY6ME7hCGqS4b8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ftM3EJsDtrERxLY6ME7hCGqS4b8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ftM3EJsDtrERxLY6ME7hCGqS4b8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ftM3EJsDtrERxLY6ME7hCGqS4b8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/faRIjkY1sXE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/8875719296741761209/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=8875719296741761209" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/8875719296741761209?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/8875719296741761209?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/faRIjkY1sXE/clojure-compojure-on-google-app-engine.html" title="Clojure + Compojure on Google App Engine" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2010/01/clojure-compojure-on-google-app-engine.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIBSX88cSp7ImA9WxBXFkQ.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-3600952575980553548</id><published>2010-01-29T01:02:00.000+09:00</published><updated>2010-01-29T01:02:38.179+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-29T01:02:38.179+09:00</app:edited><title>Wakame開発中</title><content type="html">いよいよ明後日になりましたWakameTech #1&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://atnd.org/events/2753"&gt;WakameTech #1&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
現在鋭意開発中で、イベントに向けた用意のため今日も新宿にあるaxshに行き開発をしていました。&lt;br /&gt;
僕もRubyを使い開発しているWakame内のデータセンタマネージャというモジュールについて話すのでそのための資料を開発の合間合間に作成中。&lt;br /&gt;
明日はもうちょいプレゼンの用意をして、なるべく来ていただいた方に分かりやすい説明になるよう頑張ります。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-3600952575980553548?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qjqr6mEq5pp_aEVVjWqQ2x0zWZI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qjqr6mEq5pp_aEVVjWqQ2x0zWZI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qjqr6mEq5pp_aEVVjWqQ2x0zWZI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qjqr6mEq5pp_aEVVjWqQ2x0zWZI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/Tu57t4tO7c4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/3600952575980553548/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=3600952575980553548" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/3600952575980553548?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/3600952575980553548?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/Tu57t4tO7c4/wakame.html" title="Wakame開発中" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2010/01/wakame.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYASXk-fCp7ImA9WxBXE0g.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-6067068961276930052</id><published>2010-01-25T01:55:00.000+09:00</published><updated>2010-01-25T01:55:48.754+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-25T01:55:48.754+09:00</app:edited><title>Androidをネットブックで動かす方法</title><content type="html">昨年の日経Linux 11月号に執筆した「ネットブックでAndroidを動かす」がネットでも読めるようになっていましたので紹介。&lt;br /&gt;
&lt;br /&gt;
Android徹底解説---内部構造，移植，開発&lt;br /&gt;
&lt;ul&gt; &lt;li&gt;&lt;a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20091219/342415/"&gt;ネットブックでAndroidを動かす(1)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20091219/342435/?ST=android-dev"&gt;ネットブックでAndroidを動かす(2)&lt;/a&gt;&lt;/li&gt;
&lt;a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20091219/342455/?ST=android-dev"&gt;ネットブックでAndroidを動かす(3)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
執筆中はネットブック用に何度もイメージを作り直しては検証を重ね、ということをやっていて、なかなか思い通りのスケジュールには進められませんでしたがCerevoの中河さん協力のもと無事書き上げることができました。&lt;br /&gt;
雑誌に掲載という初めての経験でいろいろと大変でしたが、それを書店で見た時は嬉しかったことを覚えています。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-6067068961276930052?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Zaoj-g0qbl0cc9JoO33ar9rvbgY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Zaoj-g0qbl0cc9JoO33ar9rvbgY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Zaoj-g0qbl0cc9JoO33ar9rvbgY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Zaoj-g0qbl0cc9JoO33ar9rvbgY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/AMuDKWQfTLQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/6067068961276930052/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=6067068961276930052" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/6067068961276930052?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/6067068961276930052?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/AMuDKWQfTLQ/android.html" title="Androidをネットブックで動かす方法" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2010/01/android.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYNSH89fCp7ImA9WxBXEkg.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-3292073334038632422</id><published>2010-01-23T22:09:00.000+09:00</published><updated>2010-01-23T22:09:59.164+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-23T22:09:59.164+09:00</app:edited><title>ネットブックへのUbuntuインストール</title><content type="html">AcerのネットブックにUbuntu 9.10をインストールしました。&lt;br /&gt;
去年入れたときはUbuntu 9.4で、ディスプレイの解像度が低いままだったのと、Wifiが使えずに実用的に使えずそのままにしていました。&lt;br /&gt;
今回はそのネットブックに9.10のインストールを試したところ無事にグラフィックの問題とWifiの問題が一気に解決したのでその方法を共有します。&lt;br /&gt;
&lt;br /&gt;
1) USBインストーラの作成&lt;br /&gt;
またネットブックにはCD-ROMがついていないので、USBメモリにイメージを入れます。&lt;br /&gt;
たまにやるとやり方を忘れてしまいますが、まずはUbuntuのページからisoファイルを取得します。&lt;br /&gt;
今回は、&lt;a href="http://www.ubuntulinux.jp/"&gt;Ubuntu Desktop 日本語 Remix&lt;/a&gt;を使用しました。&lt;br /&gt;
&lt;br /&gt;
最初はsyslinuxを使ってUSBメモリのフォーマットを指定したりといろいろいくつか試しましたが成功しませんでした。&lt;br /&gt;
最終的にインストーラの作成には、Macに入っているVMware FusionのUbuntu上の作成ソフトから行いました。isoファイルを指定するだけで良いので楽です。&lt;br /&gt;
&lt;br /&gt;
2) Ubuntuのインストール&amp;起動&lt;br /&gt;
ブートがUSBから起ち上がるようにしたあとはすんなりインストールを行います。ここは何の問題もありませんでした。&lt;br /&gt;
インストール終了し再起動後は、Ubuntuが立ち上りサウンドもOK、Wifiも利用可能という嬉しい検出率です。&lt;br /&gt;
&lt;br /&gt;
3) グラフィックドライバの設定&lt;br /&gt;
解像度が1024x600、glxgearsでチェックしてみると20〜30fpsくらいでいちいちウィンドウの切替に待たされます。&lt;br /&gt;
これをこのマシンが持っているドライバのpsbを認識させて快適にしたいと思います。&lt;br /&gt;
&lt;br /&gt;
注意点というか僕が失敗したのはカーネルを先にバージョンアップし、そこから作業を始めることでした。そうでないとどのカーネル用のモジュールを作るのかという問題でややこしくなるようです。&lt;br /&gt;
&lt;br /&gt;
なので先に"apt-get update"、"apt-get upgrade"を行い再起動した状態で作業をはじめます。&lt;br /&gt;
&lt;br /&gt;
参考にしたのは以下のページ&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://wiki.ubuntu.com/HardwareSupportComponentsVideoCardsPoulsbo/"&gt; HardwareSupportComponentsVideoCardsPoulsbo - Ubuntu Wiki&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
再起動するも、Xorgのエラーが出て起動しなかったため、起動後以下のコマンドを実行し再起動。&lt;br /&gt;
&lt;br /&gt;
# apt-get purge psb-kernel-source&lt;br /&gt;
&lt;br /&gt;
無事解像度が1366x768で見事立ち上がりました。&lt;br /&gt;
&lt;br /&gt;
ここまでくればあとはEmacsやデザインをカスタマイズするなどして使い倒してみようと思います。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-3292073334038632422?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WpqEXG5gKpUfoGrtvCs8-mE0VxA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WpqEXG5gKpUfoGrtvCs8-mE0VxA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WpqEXG5gKpUfoGrtvCs8-mE0VxA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WpqEXG5gKpUfoGrtvCs8-mE0VxA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/243b--F0zyQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/3292073334038632422/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=3292073334038632422" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/3292073334038632422?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/3292073334038632422?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/243b--F0zyQ/ubuntu.html" title="ネットブックへのUbuntuインストール" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2010/01/ubuntu.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEGRng6fSp7ImA9WxBXEU4.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-5739304890049437838</id><published>2010-01-22T12:23:00.000+09:00</published><updated>2010-01-22T12:23:47.615+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-22T12:23:47.615+09:00</app:edited><title>「フリー」</title><content type="html">最近読んだ本の中で良かったもの。&lt;br /&gt;
&lt;br /&gt;
&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=learnsnoiporg-22&amp;o=9&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=1X69VDGQCMF7Z30FM082&amp;asins=4140814047" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
オープンソースのWakameに関わっていたり、いくつかウェブサービスを作ってみたりとネットの世界に関わっているものとして興味深く読めました。すでに膨大なフリーのビジネスが存在し、これからも生まれるであろうことが分かるおすすめの一冊です。&lt;br /&gt;
これからの自分の仕事の考えに影響を与えましたし、例えば昨日もセミナーをやっている友人にコンテンツをYoutubeに配信してみたらどうかなと、アドバイス？してみました。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-5739304890049437838?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FPH4zbUeAJrlPPxRmE25Lz0JwFs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FPH4zbUeAJrlPPxRmE25Lz0JwFs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FPH4zbUeAJrlPPxRmE25Lz0JwFs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FPH4zbUeAJrlPPxRmE25Lz0JwFs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/Qv3Gecrky-E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/5739304890049437838/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=5739304890049437838" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/5739304890049437838?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/5739304890049437838?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/Qv3Gecrky-E/blog-post_22.html" title="「フリー」" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2010/01/blog-post_22.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMEQ3w_eyp7ImA9WxBXEE0.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-7441921747438151096</id><published>2010-01-21T01:03:00.000+09:00</published><updated>2010-01-21T01:03:22.243+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-21T01:03:22.243+09:00</app:edited><title>フリーランス</title><content type="html">久しぶりに書き込んで、ブログを再開しようと思います。&lt;br /&gt;
書き込んでない間の変化として、フリーランスになったことと結婚したことがあります。&lt;br /&gt;
フリーとしてやっていけるか心配でしたが一年間やってみてなんとかなりました。&lt;br /&gt;
&lt;br /&gt;
最近はアクシュという会社でWakameという、サーバをクラウド化するソフトウェアの開発にどっぷりと協力させてもらっています。&lt;br /&gt;
来週はそのイベントでちょっと発表しますのでクラウドにご興味ある方はぜひとも。&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://atnd.org/events/2753"&gt;WakameTech #1&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
なるだけこのブログも続けて行こうと思います。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-7441921747438151096?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/INAGyn_6hHXitIxWjb7c4l4_95o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/INAGyn_6hHXitIxWjb7c4l4_95o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/INAGyn_6hHXitIxWjb7c4l4_95o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/INAGyn_6hHXitIxWjb7c4l4_95o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/X91Me8J3g_k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/7441921747438151096/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=7441921747438151096" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/7441921747438151096?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/7441921747438151096?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/X91Me8J3g_k/blog-post.html" title="フリーランス" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2010/01/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MFRHczfip7ImA9WxdUF08.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-2624000340519967607</id><published>2008-08-03T09:51:00.003+09:00</published><updated>2008-08-03T10:03:35.986+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-03T10:03:35.986+09:00</app:edited><title>プログラミングGauche: P.202 練習問題</title><content type="html">オブジェクトを文字列に変換するための手続きwrite-to-stringを、&lt;br /&gt;call-with-output-stringを使って実装する問題。&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;gosh&gt; (write-to-string '(1 "abc" "\"" #\z))&lt;br /&gt;"(1 \"abc\" \"\\\"\" #\\z)"&lt;br /&gt;gosh&gt; (define (write-to-string2 obj)&lt;br /&gt;   (call-with-output-string (lambda (port)&lt;br /&gt;                  (write obj port))))&lt;br /&gt;write-to-string2&lt;br /&gt;gosh&gt; (write-to-string2 '(1 "abc" "\"" #\z))&lt;br /&gt;"(1 \"abc\" \"\\\"\" #\\z)"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;逆に文字列をオブジェクトへ変換&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;gosh&gt; (define (read-from-string2 str)&lt;br /&gt;    (call-with-input-string str (lambda (x)&lt;br /&gt;                      (read x))))&lt;br /&gt;read-from-string2&lt;br /&gt;gosh&gt; (read-from-string "(1 \"abc\" \"\\\"\" #\\z)")&lt;br /&gt;(1 "abc" "\"" #\z)&lt;br /&gt;gosh&gt; (read-from-string2 "(1 \"abc\" \"\\\"\" #\\z)")&lt;br /&gt;(1 "abc" "\"" #\z)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;cut版&lt;br /&gt;&lt;pre&gt;(define (write-to-string2 obj)&lt;br /&gt;      (call-with-output-string (cut write obj &lt;&gt;)))&lt;br /&gt;&lt;br /&gt;(define (read-from-string2 str)&lt;br /&gt;    (call-with-input-string str (cut read &lt;&gt;)))&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-2624000340519967607?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ypP-9Q3pYs4jj4KW6WpQz20SV7Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ypP-9Q3pYs4jj4KW6WpQz20SV7Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ypP-9Q3pYs4jj4KW6WpQz20SV7Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ypP-9Q3pYs4jj4KW6WpQz20SV7Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/7TUl_lRfBOY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/2624000340519967607/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=2624000340519967607" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/2624000340519967607?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/2624000340519967607?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/7TUl_lRfBOY/gauche-p202.html" title="プログラミングGauche: P.202 練習問題" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2008/08/gauche-p202.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4AR3c4cCp7ImA9WxdUEkg.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-2216987471254098761</id><published>2008-07-28T22:13:00.002+09:00</published><updated>2008-07-28T22:15:46.938+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-28T22:15:46.938+09:00</app:edited><title>パスワードを表示するブックマークレット</title><content type="html">以前から作ってみたいと思っていた一作。思った通りの時間で思った通りのものができた。&lt;br /&gt;&lt;br /&gt;javascript:(function(){ var i, p, chars; chars =&lt;br /&gt;"&lt;div id=":g1" class="ArwC7c ckChnd"&gt;&lt;wbr&gt;abcdefghijklmnopqrstuvwxyzABCD&lt;wbr&gt;EFGHIJKLMNOPQRSTUVWXYZ01234567&lt;wbr&gt;89"; p =&lt;br /&gt;""; for (i = 0; i &lt; 8; i++) { p = p +&lt;br /&gt;chars.charAt(Math.floor(Math.&lt;wbr&gt;random() * chars.length)); }&lt;br /&gt;prompt("password", p); })();&lt;br /&gt;&lt;br /&gt;IEとFirefoxで動作することを確認済み。実行すると8桁のパスワードが入力ボックスに表示されます。それだけ。&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-2216987471254098761?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/j6as1kIGab097O085PMIx6eIJuQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/j6as1kIGab097O085PMIx6eIJuQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/j6as1kIGab097O085PMIx6eIJuQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/j6as1kIGab097O085PMIx6eIJuQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/ELdGZDd4M6E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/2216987471254098761/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=2216987471254098761" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/2216987471254098761?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/2216987471254098761?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/ELdGZDd4M6E/blog-post.html" title="パスワードを表示するブックマークレット" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2008/07/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4BR3k_eip7ImA9WxdUEU8.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-2578377846907371397</id><published>2008-07-27T10:32:00.003+09:00</published><updated>2008-07-27T10:42:36.742+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-27T10:42:36.742+09:00</app:edited><title>Mac OS X LeopardのCarbon Emacsで透明化</title><content type="html">.emacsファイルで設定を試し、透明化を行う。&lt;br /&gt;Emacs Lispはよくわかってないけど、alphaで透明度を設定し、color-themeでお気に入りのテーマを設定すれば大変クールに。&lt;br /&gt;&lt;br /&gt;(require 'color-theme)&lt;br /&gt;(color-theme-initialize)&lt;br /&gt;(color-theme-dark-laptop)&lt;br /&gt;(set-frame-parameter nil 'alpha 80 )&lt;br /&gt;&lt;br /&gt;Meadowでも同じ設定で動くんだろうか。color-themeは3.0に入ってなかったような。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-2578377846907371397?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MZLabYq18X8cRT9-Y13fqRC_weY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MZLabYq18X8cRT9-Y13fqRC_weY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MZLabYq18X8cRT9-Y13fqRC_weY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MZLabYq18X8cRT9-Y13fqRC_weY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/Vp2YOD0ldM4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/2578377846907371397/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=2578377846907371397" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/2578377846907371397?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/2578377846907371397?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/Vp2YOD0ldM4/mac-os-x-leopardcarbon-emacs.html" title="Mac OS X LeopardのCarbon Emacsで透明化" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2008/07/mac-os-x-leopardcarbon-emacs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04BQ3o9cSp7ImA9WxdUEU8.&quot;"><id>tag:blogger.com,1999:blog-4565885322903449848.post-6008582432501094962</id><published>2008-07-27T10:18:00.002+09:00</published><updated>2008-07-27T10:25:52.469+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-27T10:25:52.469+09:00</app:edited><title>脳が教える! 1つの習慣</title><content type="html">頭ではやった方がいいと思っているけどなかなか続けられない、変わらない、なんとかして変化させたいというとき、小さな小さな一歩から始めればいいよというようなことなどを、脳科学的アプローチから始める、続ける方法をレクチャー。分かりやすくまとまっていて、行動につながりやすく感じる、最近のマイヒット本。&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=learnsnoiporg-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=4062144700&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4565885322903449848-6008582432501094962?l=tnoborio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JA-slslIlDTLRVpbiiZFABw5G-k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JA-slslIlDTLRVpbiiZFABw5G-k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JA-slslIlDTLRVpbiiZFABw5G-k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JA-slslIlDTLRVpbiiZFABw5G-k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TnoborioBloggerBlog/~4/jSKEjnJ--Uw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tnoborio.blogspot.com/feeds/6008582432501094962/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4565885322903449848&amp;postID=6008582432501094962" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/6008582432501094962?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4565885322903449848/posts/default/6008582432501094962?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TnoborioBloggerBlog/~3/jSKEjnJ--Uw/1.html" title="脳が教える! 1つの習慣" /><author><name>Tokusei Noborio</name><uri>https://profiles.google.com/115901351312743828821</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-SA9D4fBgk1k/AAAAAAAAAAI/AAAAAAAAAAA/oQh6O820Stw/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://tnoborio.blogspot.com/2008/07/1.html</feedburner:origLink></entry></feed>

