macbookにインストールしているアプリケーション

macbook pro 15, macbook air 13, macbook air 11 にインストールしているアプリケーション。

  • Atok 2009
    • 日本語入力。
    • Google日本語入力と比較して、普通の単語変換をしてくれるので使用。
    • Atok 2010の新機能は必要なかったので2009のまま使用。
  • Dropbox
    • ファイル同期。
    • 5台のPC間のファイル同期に欠かせない。
    • "ln -s ~/Dropbox/Environment/Home/.bash_profile .bash_profile" とかでrcファイルを共通化
  • Quicksilver
    • コマンドランチャー。
    • HotkeyでQuicksilverを起動→起動したいアプリケーションのスペルを入力で、アプリケーション起動するので非常に重宝。
    • このアプリケーションがあったので、macに乗り換えられた。
    • Quicksilverから殆どのアプリケーションを呼び出すので、Dockにはアプリケーションを登録していない。
  • Firefox
    • Webブラウザ(メイン)。
    • 開発および通常のWeb巡回に使用。
    • googleアカウントは、必要な場合のみログイン。googleにweb履歴(例えOFFにしていもて)を収集されたくないため。
  • Firefox addon
    • Xmarks
      • ブックマーク同期。
    • Flashblock
      • Flashをブロック。必要なときだけ、ワンクリックでFlashを再生可能。
    • Inline Translator
    • Video DownloadHelper
      • 動画のダウンロード。
    • Firebug
    • HttpFox
    • User Agent Switcher
      • User-Agent切り替え
    • SQLite Manager
    • Web Developer
      • あんまり、使っていない。
  • Flash Player
    • 必要悪。Webブラウザには必要なときだけ、ON/OFFするアドオンをインストール
  • Xcode
    • ビルド用にインストール
    • iPhoneの開発をする予定は、今のところない。
  • TextWrangler
  • homebrew
    • パッケージ管理システム。
    • MacPortsの代わりに使い始めた。メリット・デメリットの差は、感じない。
    • $ brew install wget lha openssl
    • $ brew install subversion git
    • $ brew install ffmpeg
  • Eclipse IDE for Java Developers 3.5 Mac OS X 64bit
    • IDE
    • 3.6だと、コンテンツアシスタントが遅い問題とsubversiveのインストールに失敗する問題があったため、3.5を使用している。
  • iStat menus
    • システム情報をメニューバーに表示。
    • シェアウェアになる前の、1つ前のバージョンを使用。
    • 何故か、ネットワークのUP/DOWNスピードが表示されない。
  • Perian
    • コーデック。
  • Flip4Mac
  • TimeMachineEditor
    • バックアップ実行のサイクルを日 / 週 / 月単位で指定。
  • LangSwitch
    • アプリケーション毎にデフォルト以外の言語で起動できる。
  • BlueHarvest (シェアウェア)
    • ネットワーク・USBメモリに .DS_Store ファイルとリソースフォークファイルが作成されるのを抑制。
  • MacZip4Win
    • Windowsで開いても文字化けしないzipファイルを作成。
  • StartupSound.prefPane

eclipseに対応したmavenマルチモジュール プロジェクトの作成

maven3でマルチモジュールプロジェクトを作成する場合、デフォルトのディレクトリ構成では、親プロジェクト ディレクトリの下に子プロジェクト ディレクトリを格納する形になる。
例: 親プロジェクトが guide-ide-eclipse、子プロジェクトがguide-ide-eclipse-site、guide-ide-eclipse-core、guide-ide-eclipse-module1

問題点

親プロジェクトと子プロジェクトには依存関係がある。そのため、親プロジェクトディレクトリからのディレクトリ構成が必要になる。
eclipse上のsubversionから親プロジェクトをチェックアウトした場合、子プロジェクトはjavaプロジェクトとして認識されない。
一旦、親プロジェクトをeclipseから削除(物理削除はしない)した後で、子プロジェクトを個別にインポートする必要がある。
これは、面倒ということで親プロジェクト ディレクトリと子プロジェクト ディレクトリを同じ階層に持つ構造に変更する。
例:

eclipseに対応したmavenマルチモジュール プロジェクトの作成

親プロジェクトの作成
$ mvn archetype:create -DgroupId=guide.ide.eclipse -DartifactId=guide-ide-eclipse
$ cd guide-ide-eclipse/
親プロジェクトの設定
  • 不要なsrcディレクトリを削除
  • project/packaging 要素を 「pom」に変更。
  • project/modules 要素を追加。
  • project/dependencies 要素を削除。
$ rm -rf src
$ vi pom.xml

guide-ide-eclipse/pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>guide.ide.eclipse</groupId>
  <artifactId>guide-ide-eclipse</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>guide-ide-eclipse</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <modules>
  </modules>
</project>
子プロジェクトの作成
$ mvn archetype:create -DgroupId=guide.ide.eclipse -DartifactId=guide-ide-eclipse-site
$ mvn archetype:create -DgroupId=guide.ide.eclipse.core -DartifactId=guide-ide-eclipse-core
$ mvn archetype:create -DgroupId=guide.ide.eclipse.module1 -DartifactId=guide-ide-eclipse-module1

※子プロジェクトの作成に成功すると、親プロジェクトのpom.xmlのproject/modules 要素に子プロジェクト名
が追記される。

guide-ide-eclipse/pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  ....

  <modules>
    <module>guide-ide-eclipse-site</module>
    <module>guide-ide-eclipse-core</module>
    <module>guide-ide-eclipse-module1</module>
  </modules>
</project>
子プロジェクト間の参照関係の設定

guide-ide-eclipse-module1にguide-ide-eclipse-coreの設定を追加する。

$ cd guide-ide-eclipse-module1
$ vi pom.xml

guide-ide-eclipse-module1/pom.xml

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <artifactId>guide-ide-eclipse</artifactId>
    <groupId>guide.ide.eclipse</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <groupId>guide.ide.eclipse.module1</groupId>
  <artifactId>guide-ide-eclipse-module1</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>guide-ide-eclipse-module1</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>guide.ide.eclipse.core</groupId>
      <artifactId>guide-ide-eclipse-core</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
動作確認

ここまでが、通常のmavenマルチモジュール プロジェクトの作成手順になる。
正常に作成できたか確認するため、プロジェクトのインストールとeclipse関連のファイルの生成を実行する。

$ cd ..
$ mvn install
$ mvn eclipse:eclipse
親プロジェクト ディレクトリと子プロジェクト ディレクトリを同じ階層に持つディレクトリ構成に変更

mavenディレクトリ構成をeclipseで使いやすいディレクトリ構成に変更する。

変更前のディレクトリ構成

変更後のディレクトリ構成

前の動作確認で作成したインストールとeclipse関連のファイルは削除しておく(必要ないかも)。

$ mvn clean
$ mvn eclipse:clean

guide-ide-eclipseディレクトリを作成し、親プロジェクトのpom.xmlを移動する。

$ mkdir guide-ide-eclipse
$ mv pom.xml guide-ide-eclipse/

project/modules 要素の参照設定を変更する。

$ cd guide-ide-eclipse
$ vi pom.xml

guide-ide-eclipse/pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  ....

  <modules>
    <module>../guide-ide-eclipse-site</module>
    <module>../guide-ide-eclipse-core</module>
    <module>../guide-ide-eclipse-module1</module>
  </modules>
</project>

以上で、設定手順は完了になる。

もし、relativePathが何とか、のエラーが出た場合、子プロジェクトのproject/relativePath要素に親プロジェクト ディレクトリの参照を追加する。
guide-ide-eclipse-module1/pom.xml

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <artifactId>guide-ide-eclipse</artifactId>
    <groupId>guide.ide.eclipse</groupId>
    <version>1.0-SNAPSHOT</version>
    <relativePath>../guide-ide-eclipse</relativePath>
  </parent>
  
  ....
</project>

参考資料

下記のURLの内容を抜粋したので、原文読んだ方が分かりやすいかも。

Macbookのセキュリティ強化

Macbookのセキュリティ強度を少しだけ上げた。

自動ログイン:OFF & Firewall:ON

  • Sytem Preferences
    • Security
      • Require password [ 5 minutes ] after sleep or screen saver begins: ON
      • For all accounts on this computer
        • Disable automatic login: ON
        • Use secure virtual memory: ON
        • Disable Location Services: ON
      • Firewall: ON
        • Advanced:
        • Enable stealth mode: ON

ファームウェアパスワードの設定

ファームウェアパスワードを設定することにより、下記の設定が有効になる。

  • 「C」キーを使って CD-ROM ディスクから起動する機能を無効
  • 「N」キーを使って NetBoot サーバから起動する機能を無効
  • 「T」キーを使って (この機能を利用できるコンピュータ上で) ターゲットディスクモードで起動する機能を無効
  • 「D」キーを使ってインストール DVD の Diagnostic ボリュームから起動する機能を無効
  • 起動時に「command」キーと「S」キーを同時に押してシングルユーザモードで起動する機能を無効
  • 起動時に「command」、「option」、「P」、「R」の各キーを同時に押してパラメタ RAM (PRAM) をリセットする機能を無効
  • 起動時に「option」キーを押して「Startup Manager」にアクセスするときにパスワードを要求

ファームウェアパスワードのインストール手順は、下記になる。

  • Mac OS X のインストールディスクから起動。
  • 「ユーティリティ」メニューからFirmware Password Utilityを選択。
  • パスワード入力ダイアログにパスワードを設定する。

動作確認は、下記の手順で実行する。

  • Mac OS X 起動時に「option」キーを押して「Startup Manager」にアクセスするときにパスワードを要求することを確認する。

詳細は、下記のURL参照。

FileVaultの設定(未実施)

FileVaultの設定はしていない。
TimeMachineでホームフォルダ全体が1つのファイルとしてバックアップされることになるので、バックアップに時間がかかるようになるから。

セキュリティを高めると、利便性が低くなるので匙加減が難しい。

(Macbook Air|Macbook Pro) の Eclipse 起動時間を測定

OSの起動時間

電源ボタンを押してからログイン画面が表示されるまでの時間を計測した。手計測なので1秒くらいの誤差はある。

MBPは、起動時にDVD-ROMにアクセスしている部分も遅い要因と思う。あと、VMWareも入れているので厳密な比較にはなっていない。

Eclipseの起動時間

Eclipse for Java Developer 3.5を起動してからIDE画面が表示されるまでの時間を計測した。プラグインは、subversive, android をインストールしている。

Core i7の分だけ、Eclipseの起動は速い。ただ、起動した後の操作(エディタ・ビューの切り替え等)は、ワンテンポだけMBAが遅いくらい。

追記:
ワンテンポ遅いだけなのだが、そのワンテンポが遅いのが気になる。MBP 15inchは、売りに出そうと考えていたが、暫く様子を見ようと思う。

Macbook Air 13inch のネットワーク転送速度

Macbook Air 13inch の有線LANと無線LANの転送速度を計測した。
有線LANは、ギガビットHUBにApple純正のUSB-Ethernetアダプタを使用して100Mbpsで接続している。
無線LANは、AirMac Exstream(5GHz, WPA2 Personal)に300Mbpsで接続している
なお、参考までに、Macbook Pro 15inch の有線LAN(1000Mbps)での接続速度も計測している。

計測方法は、16GBの単一ファイルをNASにコピーした速度を計測している。

$ time cp source.android.com.dmg /Volumes/Public/

実行結果は、下記になった。

# Macbook Air 13inch 有線LAN(100Mbps, USB-Ethernetアダプタ)
real	25m0.327s
user	0m0.037s
sys	3m57.888s

# Macbook Air 13inch 無線LAN(300Mbps, 5GHz)
real	14m53.223s
user	0m0.038s
sys	2m38.863s

# Macbook Pro 15inch 有線LAN(1000Mbps)
real	7m5.913s
user	0m0.040s
sys	1m55.273s

思ったより、有線LAN(100Mbps, USB-Ethernetアダプタ)の速度が遅い結果になった。リンク速度からいうと一番遅いわけだが、無線LANの速度は遅いというイメージがあった。
これなら、Macbbok Airは、常時無線LANで運用しても構わないかもしれない。