2012年12月22日土曜日

PhpStormのフォント設定


昨日、Jetbrainsにて世界終了記念(マヤ暦的に)、有料IDE75% OFFセールだったので、PhpStormを買ってみました。25USDと非常にリーズナブルでした。


評判通り、EclipseやNetbeansと比べてキビキビ動くのはよいですが、うちの場合、エディタ部分のフォントを[Consolas 14pt]に設定すると一部の日本語が潰れて表示されてしまいます。

とりあえず、こちらのサイトを参考に日本語フォントをMiguフォント(migu-1m)に変更するも、設定が反映されず。
(PhpStormのバージョンは5.0.4, OSはWindows7 x64 SP1)

Link: 脱MSゴシック!Consolas+メイリオで快適環境


フォント周りはSwing製アプリの鬼門ですが、そもそも、このIDEはシステムJREのfontconfig.propertiesが反映されていない模様。で、軽く調べてみたらJREを自前で持っていた! その為、JDKやJREをインストールしたディレクトリではなく、PhpStormをインストールしたディレクトリ内のJREに任意のfontconfig.propertiesを置くことでフォントを自在に変更することが可能になります。

例) Cドライブ直下にPhpStorm 5.0.4をインストールした場合

c:\JetBrains\PhpStorm 5.0.4\jre\jre\lib

別のJREでPhpStormを動かす場合、bin/PhpStorm.batの先頭部分で環境変数JDKを設定している部分を書き換えて、使用したいJREのディレクトリを指定するとよいです。なお、PhpStorm 5.0.4のJREはJava 6 Update 31でした。

例) 環境変数[JAVA_HOME]で指定したJREを使用する場合

; ↓ここからコメントアウト
;IF EXIST "%WEBIDE_JDK%" SET JDK=%WEBIDE_JDK%
;IF NOT "%JDK%" == "" GOTO jdk
;IF EXIST "%~dp0\..\jre" SET JDK=%~dp0\..\jre
;IF NOT "%JDK%" == "" GOTO jdk
;IF EXIST "%JDK_HOME%" SET JDK=%JDK_HOME%
;IF NOT "%JDK%" == "" GOTO jdk
; ↑ここまで
IF EXIST "%JAVA_HOME%" SET JDK=%JAVA_HOME%
IF "%JDK%" == "" GOTO error


それと、今回はライセンスの発行に約1日必要でした。セール中に複数のプロダクトを購入する場合、1本ずつ順に購入しようとすると2本目購入時にセールが終わっている可能性があるので要注意です。PyCharm買えんかった(^^;;;

2012年12月18日火曜日

pythonでデバイスがCDROMドライブか調べる(Windows)


まず、自環境に合ったpywin32(Python for Windows extensions)をインストール


ドキュメントは以下にインストールされるので要参照
[python_dir]/Lib/site-packages/PyWin32.chm


コードはこんな感じ。今回はwin32conのDRIVE_CDROM以外は使わないので
コメントアウトしています

import win32file
from win32con import (
#    DRIVE_UNKNOWN,
#    DRIVE_NO_ROOT_DIR, 
#    DRIVE_REMOVABLE,
#    DRIVE_FIXED,
#    DRIVE_REMOTE,
    DRIVE_CDROM,
#    DRIVE_RAMDISK,
)


def isCDROM(device):
    t = win32file.GetDriveType(device)
    if t is DRIVE_CDROM:
        return True
    return False


if __name__ == '__main__':
    devices = ("c:/", "d:/", "e:/") # target device
    
    for device in devices:
        res = isCDROM(device)
        if res:
            print device + " is CDROM"
        else:
            print device + " is not CDROM"

※Eclipse(Pydev)でpywin32関連のコード補完を有効にする場合、インタプリタのライブラリに以下を追加
  • [python_dir]/Lib/site-packages/win32
  • [python_dir]/Lib/site-packages/win32/lib