Sophos Anti-Virus for Mac Home Edition をインストールしてみました。

インストールは特に難しいことはなく、

  1. 上記リンクをクリックし、
    以下の「無償ダウンロード」からインストールファイルをダウンロードします。
  2. ダウンロードしたら、ファイルをダブルクリック等でマウントし、以下のWindowが表示されたら、
    「Sophos Anti-Virus Home Edition.mpkg」をダブルクリックし、
    インストーラを起動。
  3. あとは、インストーラに従い、インストールするだけです。

Sophosはウイルス対策ソフト(セキュリティ)会社として、有名だと思いますし、
無料なので、ひとまずインストールしておいて損は無いと思います。

参考にした記事:
Macユーザーに贈る、そろそろ入れておくといいアンチウィルス・マルウェアソフト6選

 

昨日、Lionにアップデートしましたが、以下の様なエラーがでて
Time Machineでバックアップができなくなりました。

ググってみたところ、いくつかの情報が得られました。

なお、今回のバックアップ失敗では、以下の様なログが/var/log/syslog.log に出力されていました。

 


というわけで、Mac OS X Lionをインストールしました。

今のところ、トラックパッドによるスクロールが、上下逆さまになったことに慣れるのに必死ですw
(もちろん、設定で変更可能ですが、この方がiPad/iPhoneみたいで、きっと良いんだと思うことにします)

システム環境設定の「トラックパッド」のところ


では、
どのようなジェスチャーが使えるのか?がわかるので、便利です。

7月 212011
 

Mac OS X Lionがついに発売となりました!
と、ともに、新しいMacBook Airも発売になっています

現在、Lionをダウンロード中&インストール中。
再起動を促された


ので、詳細は後ほど。

 

Facebookコメントを追加してみました。

インストールしたのは、Facebook Comments for WordPressというプラグイン。
Wordpressのプラグイン新規追加から検索/インストールできます。

インストールの際には、以下の記事を参考にさせていただきました。
http://www.lastday.jp/2011/05/23/wordpress-facebook-commnet-plugin

特に問題なく、設置できました。
コメント欄の幅は、今のWordpressテーマ(Suffusion)だと600pxがちょうど良いようです。

 

Cloud Foundry で Scalatra アプリを実行してみます。
Scalatra 自体については、ググってください。 :-P

  1. sbtをインストール
    インストール方法は、Mac で Scala と Lift を使ってみる(1) インストール編に記載した通りです。
    Linuxならばapt-getやyum等でインストールできるかもしれません。
    Windowsはわかりませんw

    下記のgit cloneでsbtも取得できるので不要
  2. sbtアプリ作成&テスト実行
    Quick start (SBT 0.7.x)に書かれている方法を実行します。

    $ git clone git://github.com/scalatra/scalatra-sbt-prototype.git my-app
    $ cd my-app
    $ ./sbt
    > update
    > jetty-run
    > ~prepare-webapp
    

    で、あとは、http://localhost:8080/ へアクセスすれば、上記の様な画面が表示されると思います。

  3. Cloud Foundryへpush
    $ sbt package
    $ vmc push --path target/scala_2.8.1
    Application Name: 好きなアプリケーション名を入力
    Application Deployed URL: 'アプリケーション名.cloudfoundry.com'?
    Detected a Java Web Application, is this correct? [Yn]:
    Memory Reservation [Default:512M] (64M, 128M, 256M, 512M or 1G)
    Creating Application: OK
    Would you like to bind any services to '好きなアプリケーション名'? [yN]:
    Uploading Application:
      Checking for available resources: OK
      Processing resources: OK
      Packing application: OK
      Uploading (9K): OK
    Push Status: OK
    Staging Application: OK
    Starting Application: OK
    

    とすれば、warファイルが作成され、Cloud Foundryへpushできますが、
    1点注意点があります。デフォルトでは、scala-compiler.jarがwarファイルに含まれないらしく、
    このwarファイルをvmc pushしても実行時にエラーとなります。
    http://d.hatena.ne.jp/fits/20110521/1305942644
    というわけで、以下の修正を加えた後、

    $ git diff
    diff --git a/project/build/MyProject.scala b/project/build/MyProject.scala
    index 0b8e9e0..c5fc24a 100644
    --- a/project/build/MyProject.scala
    +++ b/project/build/MyProject.scala
    @@ -15,6 +15,9 @@ class MyProject(info: ProjectInfo) extends DefaultWebProject(info) {
       // http://groups.google.com/group/simple-build-tool/msg/1f17b43807d06cda
       override def testClasspath = super.testClasspath +++ buildCompilerJar
    
    +  // http://d.hatena.ne.jp/fits/20110521/1305942644
    +  override def webappClasspath = super.webappClasspath +++ buildCompilerJar
    +
       val sonatypeNexusSnapshots = "Sonatype Nexus Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"
       // For Scalate
       val fuseSourceSnapshots = "FuseSource Snapshot Repository" at "http://repo.fusesource.com/nexus/content/repositories/snapshots"
    
    $ vmc push
    

    します。

  4. Cloud Foundryで動作確認

    http://好きなアプリケーション名.cloudfoundry.com/へアクセスし、

    「hello to Scalate」リンクをクリックして、以下の画面が表示されれば成功です。

 

Software update for upgrading to Lion

Mac のソフトウェアアップデートが来てました。
いくつか更新項目はありますが、
「Mac OS X Lionへのアップグレードを Mac App Store からできるようになります」
というのが大きなところだと思います。

http://www.apple.com/jp/macosx/によると、
Lion は7月発売予定 価格は 2,600円 ということなのですが、待ち遠しいですね。

 

Scala Play

Typesafe.comのページを見ていたところ、右下に、

for Play

の、アイコン&リンクがあるのに気づき、クリックしたところ、前述のscala.playframework.orgの Play framework Scala ページにたどり着きました。
なんだか面白そうなので、試してみることにしました。

  1. バイナリダウンロード
    http://www.playframework.org/downloadより、Play frameworkバイナリをダウンロードします。

    Play download

  2. ダウンロードファイル解凍
    $ unzip Downloads/play-1.2.1.zip
    Archive:  Downloads/play-1.2.1.zip
    Play! 1.2.1
    (省略)
    
  3. リンク作成
    $ ln -s play-1.2.1 play-latest
    
  4. 環境変数PATHに追加
    以下の様なものを.bashrcに追加し、反映させます。

    $ cat ~/.bashrc
    export PLAY_HOME=${HOME}/play-latest
    export PATH=${PATH}:${PLAY_HOME}
    $ . ~/.bashrc
    
  5. テスト
    $ play -version
    ~        _            _
    ~  _ __ | | __ _ _  _| |
    ~ | '_ \| |/ _' | || |_|
    ~ |  __/|_|\____|\__ (_)
    ~ |_|            |__/
    ~
    ~ play! 1.2.1, http://www.playframework.org
    ~
    ~ Usage: play cmd [app_path] [--options]
    ~
    ~ with,  new      Create a new application
    ~        run      Run the application in the current shell
    ~        help     Show play help
    ~
    ~ Invalid command: -version
    ~
    

    問題無し。

  6. play scalaインストール
    $ play install scala
    ~        _            _
    ~  _ __ | | __ _ _  _| |
    ~ | '_ \| |/ _' | || |_|
    ~ |  __/|_|\____|\__ (_)
    ~ |_|            |__/
    ~
    ~ play! 1.2.1, http://www.playframework.org
    ~
    ~ Will install scala-0.9
    ~ This module is compatible with: 1.2
    ~ Do you want to install this version (y/n)? y
    ~ Installing module scala-0.9...
    ~
    ~ Fetching http://www.playframework.org/modules/scala-0.9.zip
    ~ [--------------------------100%-------------------------] 28983.6 KiB/s
    ~ Unzipping...
    ~
    ~ Module scala-0.9 is installed!
    ~ You can now use it by adding it to the dependencies.yml file:
    ~
    ~ require:
    ~     play -> scala 0.9
    ~
    
  7. サンプルアプリ作成
    $ play new myScalaWebapp --with scala
    ~        _            _
    ~  _ __ | | __ _ _  _| |
    ~ | '_ \| |/ _' | || |_|
    ~ |  __/|_|\____|\__ (_)
    ~ |_|            |__/
    ~
    ~ play! 1.2.1, http://www.playframework.org
    ~
    ~ The new application will be created in /Users/igawa/src/myScalaWebapp
    ~ What is the application name? [myScalaWebapp]
    ~
    ~ Resolving dependencies using /Users/igawa/src/myScalaWebapp/conf/dependencies.yml,
    ~
    ~ 	play->scala 0.9 (from playLocalModules)
    ~
    ~ Some dependencies have been evicted,
    ~
    ~	play 1.2 is overriden by play 1.2.1
    ~
    ~ Installing resolved dependencies,
    ~
    ~ 	modules/scala-0.9 -> /Users/igawa/play-1.2.1/modules/scala-0.9
    ~
    ~ Done!
    ~
    ~ OK, the application is created.
    ~ Start it with : play run myScalaWebapp
    ~ Have fun!
    ~
    $ find myScalaWebapp -type f
    myScalaWebapp/app/controllers.scala
    myScalaWebapp/app/views/Application/index.html
    myScalaWebapp/app/views/errors/404.html
    myScalaWebapp/app/views/errors/500.html
    myScalaWebapp/app/views/main.html
    myScalaWebapp/conf/application.conf
    myScalaWebapp/conf/dependencies.yml
    myScalaWebapp/conf/messages
    myScalaWebapp/conf/routes
    myScalaWebapp/modules/scala-0.9
    myScalaWebapp/public/images/favicon.png
    myScalaWebapp/public/javascripts/jquery-1.5.2.min.js
    myScalaWebapp/public/stylesheets/main.css
    myScalaWebapp/test/Application.test.html
    myScalaWebapp/test/data.yml
    myScalaWebapp/test/Tests.scala
    
  8. 実行
    $ cd myScalaWebapp/
    $ play run
    ~        _            _
    ~  _ __ | | __ _ _  _| |
    ~ | '_ \| |/ _' | || |_|
    ~ |  __/|_|\____|\__ (_)
    ~ |_|            |__/
    ~
    ~ play! 1.2.1, http://www.playframework.org
    ~
    ~ Ctrl+C to stop
    ~
    Listening for transport dt_socket at address: 8000
    04:57:23,101 INFO  ~ Starting /Users/igawa/src/myScalaWebapp
    04:57:23,107 INFO  ~ Module scala is available (/Users/igawa/play-1.2.1/modules/scala-0.9)
    04:57:25,615 WARN  ~ You're running Play! in DEV mode
    04:57:25,720 INFO  ~ Listening for HTTP on port 9000 (Waiting a first request to start) ...
    04:57:40,996 INFO  ~ Application 'myScalaWebapp' is now started !
    

    アプリケーションの起動までに結構時間がかかるので注意。
    ブラウザでhttp://localhost:9000/にアクセスし、以下の画面が表示されれば成功。

    Play Scala sample application

  9. 若干モディファイ
    自動的に変更が反映されるのか?を
    http://localhost:9000/@documentation/modules/scala/hello-world
    のチュートリアルを参考に確認してみます。

    Scala Play sample application

    動いた。
    チュートリアルにはまだまだ続きがありますが、続きはまた気が向いたらやります :-)

 

Scalaスケーラブルプログラミング

Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)(コップ本)を購入しました。

まだ、1章を読み終え、2章に入ったばかりですが、
原題にある「Step-by-step Guide」というものの通り、
非常にいい感じでわかりやすいと思います。

実は、このコップ本の前に、
Scalaプログラミング入門
を、図書館で借りて読んでいたのですが、何となく「わかりづらいなー」と、
感じていました。
もしかしたら、もうちょっとコップ本で学習してから、
もう一度読むと良いのかもしれません。

 

「Mac で Scala と Lift を使ってみる」の2回目

今度は、作成したアプリをCloud Foundryへpushしてみます。
つい最近、Cloud FoundryScala-Liftに対応したので可能になりました。

今度は、「ゆろよろ日記」さんのサイト:
http://d.hatena.ne.jp/yuroyoro/20080808/1218168453
記述を参考にしました。

  1. アプリを作成
    $ mvn archetype:create -U  -DarchetypeGroupId=net.liftweb  -DarchetypeArtifactId=lift-archetype-basic -DarchetypeVersion=0.9  -DremoteRepositories=http://scala-tools.org/repo-releases  -DgroupId=org.orzlabs -DartifactId=hello-lift
    
  2. パッケージ作成
    $ cd hello-lift/
    $ mvn package
    $ ls -l target
    

    warファイルが作成されていることを確認します。

  3. Cloud Foundryへpush
    以下手順からは、事前に、Cloud Foundryにて、sign upを済ませておく必要があります。

    $ gem install vmc (vmcをインストールしてない場合)
    $ vmc target api.cloudfoundry.com
    $ vmc login
    $ vmc push --path target/
    (以下の内容を聞かれるので、適当に入力)
    Application Name: xxxxx (アプリケーション名。好きな様につけて良い。)
    Application Deployed URL: 'xxxxx.cloudfoundry.com'? (デフォルトで良ければ単にEnter。アクセスするURLを指定する)
    Detected a Java Web Application, is this correct? [Yn]: (Enter)
    Memory Reservation [Default:512M] (64M, 128M, 256M, 512M or 1G) (デフォルトで良ければ単にEnter)
    Creating Application: OK
    Would you like to bind any services to 'nano'? [yN]: (DBを使用したければy。今回はとりあえず不要なのでN)
    Uploading Application:
      Checking for available resources: OK
      Processing resources: OK
      Packing application: OK
      Uploading (7M): OK
    Push Status: OK
    Staging Application: OK
    Starting Application: OK
    
  4. Webブラウザでアクセス

    Scala-Lift app push to CloudFoundry

    これだけ!。超絶簡単にScala-Liftアプリを公開できる!

TODO:

  • Cloud Foundryでの(DB)サービスの利用
  • Scala学習
  • Lift学習
  • もっとまともなアプリ作成