EclipseでLiftプロジェクトを作ってWTPで動かす方法

思いのほかスマートにできた気がします。
Scala-IDEがちゃんと動くようにするために少し面倒な作業あり
結局うまくいってません。

  1. JDKをインストール
  2. Mavenをインストール(環境変数M2_HOMEか何かの設定も必要)
  3. Eclipse-jee-galileorをインストール
  4. Eclipseにm2eclipseプラグインをインストール( http://m2eclipse.sonatype.org/sites/m2e )
  5. Eclipseにm2eclipse-ectrasプラグインをインストール( http://m2eclipse.sonatype.org/sites/m2e-extras )
  6. eclipse.iniの-vmargsの行の手前に「-vm(改行)C:\Program Files\Java\jdk1.6.0_21\bin\javaw.exe」を追記し、Eclipse再起動
    • JDKのパスは自分の環境に合わせること
  7. EclipseScala-IDEプラグインをインストール( http://download.scala-ide.org/update-current-35 )
  8. File->New->Other->Maven->Maven Project->Next
  9. Select project name and locationの画面はそのままNext
  10. Select an Archetypeの画面でFilterに「liftweb」と入れ、適当なArchitypeを選択してNext
    • 例えばlift-archtype-basic_2.8.1を選択
    • ローカルリポジトリに無いと無理かも
  11. Enter an artifact id.の画面でGroup Idに適当なグループ名、Artifact Idに適当なプロジェクト名を入れ、Finish
    • 例えばGroup Idにjp.applepedlar、Artifact Idにhelloliftと入力
  12. このままではコンパイルが通らないので.projectと.classpathScala-IDEを有効にするための追記を行う(後述)。
  13. プロジェクトを右クリック->Run As->Run on Serverでサービス起動

.projectのの先頭に追記


org.scala-ide.sdt.core.scalabuilder


.classpathの先頭に追記

.classpathの使用VMの定義を1.5から1.6に変更

変更前:
変更後:

コードを書き換えると激しいビルドエラーになってうまくいかない・・なんでだろう?


参考

学内ロボコン「人生山あり谷あり」 kosenconf Advent Calendar : 2010

この記事はkosenconf Advent Calendar : 2010の参加エントリです.12月25日クリスマス(最終日)を担当しています。

例によって昔話でもしようかと思います。
10年以上前のことなので細部はうろ覚えです。

      • -

福井高専の機械工学科3年後期には創造工学演習という授業がありました。この授業は一言で言うと学内ロボコンのための授業です。毎年あるテーマに沿って2人1組でロボットを設計・製作し、年度末に小さな大会を開きます。

僕が3年のときは「人生山あり谷あり」という題名が付いていて、割とシンプルな障害物タイムアタックでした。

フィールドはこんな感じでした。
上から見た図

横から見た図

左の正方形が30cm×30cmのスタート地点で、ロボットはこの枠に収まる必要があります。高さ制限はありません。
スタート直後には立方体の固定された障害物(山)が多数設置されています。普通のタイヤでは回避困難です。
それを越えると今度は谷が待っています。ロボットはこれを何とかして超えなければなりません。谷には鉄棒が2本かかっており、これを利用することができますが、場合によっては邪魔にもなります。当然ながら落ちたら失格です。フィールド外はすべて崖です。ここに落ちても失格です。
谷を越えると平坦な土地があり、その先にゴール地点があります。
競技はこのフィールドの走破時間を競います。

      • -

ロボットのレギュレーションは以下のとおりです。
・スタート時点で底辺30cm×30cmの直方体に収まっていること
・動力は支給されたタミヤ製モーター4個と、エアシリンダー2個
※エアシリンダーはこれの小さいやつで、金属の棒はコントローラーのボタンを押すと空気圧で5センチほど勢いよく飛び出し、ボタンを離すと引っ込みます。
・フィールドを破壊しないこと

      • -

さて、僕のチームが取った作戦は以下のとおりです。
・山は十字型の特殊タイヤで超える
・谷はロボットの全長を長くし、荷重移動で乗り越える

左図は横から、右図は正面から(図A)

変形後(図B)

ロボット(というより車?)は前部と後部に分かれていて、ちょうつがい(赤い部分)で繋がっています。スタート時点では図Aのように規定スペースに収まるようにロボットは折りたたまれていて、スタート直後に前進しながら図Bのように変形します。このとき、紫の部分ががっちりとハマることによって、ロボット前部と後部は完全に結合します。
前半の山は十字車輪によって難なく超えることができます。
ロボット後部には重り(茶色の部分)が付けられているので、谷に差し掛かってもロボットはそのまま直進できます。ロボット後部の車輪が谷に落ちる直前に、エアシリンダー(緑色の部分)を発動させ、セロハンテープで固定されているだけの重りを力任せにひっぺがし、谷底に落下させます。元々ロボットは前部がやや重く作られているので、重りが無い状態では前方に重心が移動し、そのまま前進させればなんとか谷を越えることができます。

      • -

さて、思い返してみるともっとスマートな方法で課題を解決できそうな気がしてきます。
例えばスタート地点からゴール地点までを巨大な橋で埋め尽くし、あとは悠々と普通の車体で乗り越えていくとか。
例えば谷に掛けられた鉄棒にモノレールのような車輪を引っ掛けて乗り越えるとか。
みなさんも高専時代に出された自由課題を振り返って再考してみてはいかがでしょうか?

メリークリスマス!

ATNDのiCalを作ってみた

イベント開催支援ツール アテンド : ATNDRSSを配信しているので、これを取ってきてiCalendarを吐くサービスを作ってみた。

Googleカレンダー
http://www.google.com/calendar/embed?src=k59g1docqqq1vahill040j5cl3e41fef%40import.calendar.google.com&ctz=Asia%2FTokyo&gsessionid=SvGoPGrRcHDDqfhjf6vSdQ

iCalendar本体
http://applepedlar.ddo.jp/atndical/e/events.ics

高専カンファレンス in 福井 に行ってきました

http://kosenconf.jp/?%E9%AB%98%E5%B0%82%E3%82%AB%E3%83%B3%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%20in%20%E7%A6%8F%E4%BA%95

第4回目となる高専カンファレンス福井県鯖江市の福井高専大講義室(階段教室)で行われました。

多少の手違いはあったものの(おびなたさんごめんなさい)、無事に1時間前に会場に到着し、june29さんと受付(愛想が悪くてごめんなさい)をやりました。名簿で確認した限りではスピーカー含めて60人以上も!集まったようです。

カンファレンス開始と同時に急きょタイムキーパーを任され、時間を知らせるための紙がないので手持ちのMacBookでなんとかすることに。

最初は画像エディタでむりやり「5分前」とか「1分前」とか出し、合間にカウントダウンタイマーを探しました。ところが手頃なソフトが見つからず、無理やりJavaで組むことに(ちょっとハマって15分くらいかかった)。

どら娘さんは近隣から苦情が来ないか心配になるほどの大音響でどらを鳴らしてくれました。(よく考えたら近くに民家が無いので騒音の心配はないのだった)

懇親会はなんと教室を1部屋使わせてもらい、いつものようにビアバッシュ形式で。私はビールが飲めないので日本酒1升(梵 生の無ろ過のやつ)を持ち込んで振舞いました。

二次会は鯖江駅裏の秋吉で焼き鳥。相変わらず厨房がファイヤーしてました。

三次会は「らてんぽ」という謎の場所で朝までボードゲームやテレビゲームやハッカソンをやってました。

      • -

反省点はいくつかあったものの、今回は地方開催としては大成功だったと思います。個人的な予想ではWikiでの募集が45人だったので、直前キャンセルと飛び入り参加が相殺されて40〜50人くらいかなと思っていました。

会場も懇親会も高専内で行うことができ、高専の教官や現役学生の参加もあり、高専との連携がうまくいった例だったのではないでしょうか。

視線

ユーザがいまディスプレイのどのあたりを見ているのかを認識できれば面白いことができるかも。と思いついて早速ググってみたらオープンソースの視線認識エンジン「Opengazer」というものがあるらしい。

カーソルを動かしたりするようなダイレクトな用途ではなく、もっと補助的なものに興味がある。

たとえばウィジェットエンジン。デスクトップ上に配置はしたもののほとんど見ていないウィジェットはどんどん小さくしていき、やがては自動的に削除するとか。もしくはよく見るウィジェットはより見やすい場所に自動的に移動したり大きくしたりとか。

マイクロプロジェクター兼拡張バッテリー付きUMPC

・普通のUMPCにマイクロプロジェクター兼拡張バッテリーが付く
UMPCのバッテリーが無いときにはマイクロプロジェクター兼拡張バッテリーが電源を供給する
UMPCはマイクロプロジェクター兼拡張バッテリーに無線で絵を送る
・マイクロプロジェクター兼拡張バッテリーはUMPCが充電中に充電される

タッチパッドでお絵かきは辛い