Visual C++ 2010 を少し使ってみたんだけど、これは酷い。
前回の投稿で「最新版出たよ、なかなか良さそう!」と書いたのに、蓋を開けたら何とやらですよ。
良くなった点も当然あるんだけど、それ以上に駄目な点が多すぎる。

・テキストエディタがへぼすぎる。メモ帳に劣る -> Visual Studio 2010のword wrapの遅さ
・でかいヘッダインクルードするとファイルサーチでしばらく止まる
・C++0x 対応のお粗末さ
・vcproj 形式からのコンバートミスが多い
MPLPPL あんまり早くない (OpenMP で良いです)
・プロパティ弄っていると突然ちらついて、プロパティウィンドウが背景に溶け込む (XPだから?環境次第?)
・プロパティの構成切り替えだけでもたつく
・プロパティの保存も遅い、ちょっと固まる

他にも stdint.h が間違っているとか、ヘルプ使いづらいとか、その他たくさんの不満が聞こえてきます。(twitterで)
これにお金出すのは勿体無い、ね。

今回は Express Edition で。
Hotfix はやくきて。

Microsoft Visual Studio 2010
http://www.microsoft.com/japan/visualstudio/

リリースされました。
日本語版の発売は 4/20 だそうです。
英語版ですが、さっそく Visual C++ 2010 を試してみました。

RC 版では既に軽快だったかもしれませんが、beta2 では重すぎて使い物になりませんでした。
そんな IDE も、リリース版ではかなり軽快です。

コードを書いていると、構文チェックしてくれたり、インテリセンスの仕組みが変わって賢くなっているのがわかります。

C++0x の機能は完全にはサポートされていませんが、いくつか取り込まれました。
[Visual C++ Team Blog : C++0x Core Language Features In VC10: The Table]
http://blogs.msdn.com/vcblog/archive/2010/04/06/c-0x-core-language-features-in-vc10-the-table.aspx

STL も 中身を見てみたところ、Rvalue references 対応しているみたいです。
最適化レベルも上がっているので、VC++ 2010 でコンパイルするだけで実行速度が上がりそうすね。

価格は従来より割高?
Standard Edition がなくなり、有料版の一番下のモデルが Professional Edition になったみたいです。エディションが最近のWindows OSっぽくなった。
価格一覧 http://www.microsoft.com/japan/msdn/vstudio/2010/product/price/default.aspx

発売後、一定期間のみ安く販売する 「Microsoft Visual Studio 2010 Professional – Standard Edition 乗り換え優待パッケージ」があるみたいです。
これはアップグレード版になりますが、従来どおり Express Edition からでもアップグレードできるのでお得ですね。

GAE/J で opensocial-java-client の OpenSocialRequestValidator#getRequestUrl 使ってみたら

http://hogehoge.appspot.com:0

のような感じになった。ポートがおかしい。
# version : opensocial-20091229.jar

ソースを追いかけてみると、80, 443 でないポートの場合はポート番号をくっ付けるコードになっていた。
てことは、GAE がポート0を返しているのか。

とりあえずポート0番も無視するようにコードを書き換えると、意図した挙動になった。
もう少し検証したら Issue で投げてみてもいいかも。

メールサーバの以降作業があったのだけど、メールフィルタは同じものを使いたい、そんな備忘録。
アカウント追加したけど、同じメールフィルタ使いたいとか、PC変更したとかそういう時に使えるでしょう。

以下のファイルをコピーすれば良いです。

C:\Documents and Settings\{USER_NAME}\Application Data\Thunderbird\Profiles\xxxxxxxx.default\Mail

環境によって Mail じゃなくて ImapMail だったりする。

このディレクトリ内にはメールサーバ別にディレクトリがある。ローカルフォルダなら 「Local Folder」
そのディレクトリ内に msgFilterRules.dat というファイルがあるので、これをコピーすれば良い。

msgFilterRules.dat の中身はテキスト平文なので、余計なフィルタは削除しても良いです。

新年です。
明けましておめでとうございます。

去年はつぃったーでの飲み会等の機会は少なかったですが、別方面でいろんな人と出会えたのが良かったです。
今年もいろんな人と関わりを持てれば良いなと思います。

今年も宜しくお願いいたします。

いろいろ調べていたんだけど、GAE/J でアプリを作成するなら slim3 が良さそう。
以下、雑多なメモ

slim3 + Lift というのはどう? どちらもDatastore 操作は Enhancer だし、うまくやれば動くんでない?
これをやるなら Lift(scala) + slim3(java) を行き来することになりそう。
Scala のアノテーションが完璧になるのは 2.8 なので, もう少し待ちたい肝。
GAE/J は何でもない処理でもエラーが出る!なにこれ仕様なの?
memcacheの信頼性が低い。
memcache のインクリメントがatomic
memcache から引っ張るのと、Datastore から引っ張るのはそこまで速度変わらない
Datastoreは異なるテーブル間でjoinできない
10秒の壁、30秒の壁

さて、面白くなってきた

時間ができたときに Google App Engine for Java + Lift/Scala を調べたりしてるんだけど、
前回作ったプロジェクト作成コマンドがいつのまにかエラーが出るようになっていた。

# mvn archetype:create -U
-DarchetypeGroupId=net.liftweb
-DarchetypeArtifactId=lift-archetype-blank
-DarchetypeVersion=1.1-SNAPSHOT
-DremoteRepositories=http://scala-tools.org/repo-snapshots
-DgroupId=j2
-DartifactId=PROJECT_NAME

1.1-SNAPSHOT から 1.1-M7 にすることで動くようになった。
でもいつからエラーが出るようになったんだろう・・・

# mvn archetype:create -U -DarchetypeGroupId=net.liftweb
-DarchetypeArtifactId=lift-archetype-blank
-DarchetypeVersion=1.1-M7
-DremoteRepositories=http://scala-tools.org/repo-snapshots
-DgroupId=j2
-DartifactId=PROJECT_NAME

ちなみに 1.1-M7 の方が開発版ということもあって更新されている。
とりあえず M7版でやってみることにします。

1.1-M7 以外にも 1.1-scala2.7.7.RC1-SNAPSHOT, 1.1-scala2.7.7.RC2-SNAPSHOT なんてものあるみたい。

Google App Engine for Java に Scala で作られている Lift というフレームワークを載せてみた。

**Lift の導入
***Apache Maven

Lift は Apache Maven でプロジェクトを作成できる。最新版は 2.2.1
http://maven.apache.org/download.html

こちらは
C:\Program Files\Apache\Maven\2.2.1 にインストール。※インストーラでは無いのでコピー

インストールした後はパスを通す
set PATH=C:/Program Files/Apache/Maven/2.2.1/bin;%PATH%

***プロジェクト作成

Apache Maven が導入できたら、プロジェクト作成
Lift が GAE/J に対応しているのは 1.1 以降なので安定版である 1.0 は利用できない。
1.1-SNAPSHOT を利用する

PROJECT_NAME は適当に変更してください

# mvn archetype:create -U -DarchetypeGroupId=net.liftweb -DarchetypeArtifactId=lift-archetype-blank -DarchetypeVersion=1.1-SNAPSHOT -DremoteRepositories=http://scala-tools.org/repo-snapshots -DgroupId=j2 -DartifactId=PROJECT_NAME

***ビルド環境

Simple Build Tool を利用する
最新版は sbt-launcher-0.5.6.jar
http://code.google.com/p/simple-build-tool/

ダウンロードしたら、先ほど作成した PROJECT_NAME プロジェクトに入れる
PROJECT_NAME/pom.xml
PROJECT_NAME/src
PROJECT_NAME/sbt-launcer-0.5.6.jar

同ディレクトリに sbt.bat を作成する
set SCRIPT_DIR=%~dp0
java -Xmx512M -jar “%SCRIPT_DIR%sbt-launcher.jar” %*
と記述して保存。

詳しくはここ読んで。
http://code.google.com/p/simple-build-tool/wiki/Setup

sbt.bat を叩くとプロジェクトが作成される

# sbt
# set SCRIPT_DIR=PATH_TO_WORKDIRECTORY\PROJECT_NAME\
# java -Xmx512M -jar “PROJECT_NAME\sbt-launcher-0.5.6.jar”
Project does not exist, create new project? (y/N/s) : y
Name: Hello World
Organization []:
Version [1.0]: 1.0
Scala version [2.7.7]:
sbt version [0.5.6]:

# sbt compile
コンパイルをしたらエラーが出た。設定ファイル等が間違っているかもしれない
今回はプロジェクト作成にのみ利用した

sbt ではエラーになってしまったので、代わりに Maven を使う

src/main/webapp/WEB-INF/appengine-web.xml を作成する。内容は下記

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
  <application>PROJECT_NAME</application>
  <version>1</version>
  <system-properties>
    <property name="in.gae.j" value="true" />
  </system-properties>
  <sessions-enabled>true</sessions-enabled>
  <static-files>
    <exclude path="/**" />
  </static-files>
</appengine-web-app>

# mvn package
コンパイルできた。必要なライブラリは勝手にダウンロードされる

# dev_appserver target\PROJECT_NAME-1.0-SNAPSHOT
でローカル環境で実行される

# appcfg update target\PROJECT_NAME-1.0-SNAPSHOT
でアップロードされる

とりあえずひな形作成とローカル、ウェブサーバでの動作確認まではできた。

クラウド使う機会がありそうなので、まずは環境を導入してみました。
Googleの導入事例に沿ってのメモなので特に特筆すべき点とかはないです(^^;

*GAE/J (Google App Engine for Java) 導入メモ

**環境
windwos XP SP3
Mac OS X 10.5.8

**必要なものなど
Java5, または Java 6 (JDK5, JDK6)
Google App Engine for Java
eclipse (option)

**手順
***JDK6

http://java.sun.com/javase/downloads/widget/jdk6.jsp
Mac の場合は下記
http://developer.apple.com/java/download/

windows では
C:/Program Files/JDK/1.6.0_17 にインストールした。

インストールした後はパスを通す
set PATH=C:/Program Files/JDK/1.6.0_17/bin;%PATH%

下記のコマンドを叩いてバージョンを確認する。

# java -version
-> java version “1.6.0_17″
# javac -version
-> javac 1.6.0_17

***Google App Engine for Java (GAE/J)
GAE/J をインストールします。現在の最新バージョンは 1.2.6
http://code.google.com/intl/ja/appengine/downloads.html

>Eclipse と Google Plugin を使用している場合は、Eclipse のソフトウェア更新機能で
>App Engine SDK をインストールできます。「Google App Engine Java SDK」コンポーネントを
>まだインストールしていない場合は、上に示した場所からインストールしてください。

windows では
C:\Program Files\Google\AppEngine\SDK\Java\1.2.6 にインストールしました。

インストールした後はパスを通す
set PATH=C:/Program Files/Google/AppEngine/Java/1.2.6/bin;%PATH%

Mac では下記のように設定した
export GAEJROOT=$HOME/sdk/Google/AppEngine/Java/1.2.6
export GAEJBIN=$GAEJROOT/bin:$PATH

**デモ
各種パスが通っていれば下記のコマンドでアプリが起動する

windows:
# dev_appserver.cmd “C:/Program Files/Google/AppEngine/Java/1.2.6/demos/guestbook/war”

Mac:
# dev_appserver.sh $GAEJROOT/demos/guestbook/war

起動が確認できたら

http://localhost:8080/

Mac,winともに、これで最低限の環境構築が出来たはず。
次はプロジェクトを作ってみて、お目当ての Scala を動かしてみます

http://www.itmedia.co.jp/enterprise/articles/0910/20/news056.html
http://itpro.nikkeibp.co.jp/article/NEWS/20091113/340428/

エディションが「Ultimate」「Premium」「Professional」の3種類
価格が
* Ultimate with MSDN:新規購入価格は1万1924ドル、アップグレードは3841ドル
* Premium with MSDN:新規は5469ドル、アップグレードは2299ドル
* Professional with MSDN:新規は1199ドル、アップグレードは799ドル
* Professional without MSDN:799ドル

MSDN 無しのProfessional はアップグレードないの?