移転しました。
2013年2月〜
http://kanonji.info/blog/

2008年11月〜2013年1月
http://d.hatena.ne.jp/kanonji/

はてなダイアリーに移転してたけど、そっからさらにWordPressでのブログに移転しました。
 
201302061607
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
別窓 | スポンサー広告
----------
自分が使ってる開発用PCに最低限必要なツール・ソフトウェア(ツール晒しエントリ その2)

これがないと始まらない


フリーウェアやオープンソースソフトウェアを使うのが好きなので、PCには大量のツールが入っています。
あまりに沢山入れすぎて、とても一度にはリストしきれないので、まずは開発をするPCにこれだけは入ってないとやる気が起きないものを並べてみることに。
ちょうど最近に、臨時の開発用PCをセットアップしたばかりだったので、割と簡単に書けたかな。


ブラウザ


Mozilla Japan - Firefox
IEのシェアを徐々に奪いつつあるオープンソースwebブラウザの雄。アドオン(拡張機能)などによるカスタマイズ性の高さが売り。アドオンを入れすぎると動作パフォーマンスがかなり低下するのが難点。アドオンでdel.icio.usを組み込んでいるので、主に調べ物用として使っています。

Opera ブラウザ: すべてのデバイスに最良のブラウザを
去年だかに無料化した営利企業によるブラウザ。シェアは多くは無いが、プロプライエタリならではの高いクォリティで、根強い人気がある様子。操作性やUIには特に気を使っているようで、使い勝手はとても良いが、シェアが少ないが故にOperaで正常に表示されないwebサイトも少なくないのが残念。IMでもらったURLなどをちょっと開くのに便利なので、現在の標準ブラウザ。

アップル - Safari 3 パブリックベータ
これも去年あたりに、Windowsでも使えるようになったMacの標準ブラウザ。今のところは製作したwebサイトの表示チェックにしか使っていない。

Prism - MozillaWiki
Mozillaによるwebベース・デスクトップアプリケーションのプラットフォーム。AdobeのAIRのようなものだけど、まだプロトタイプで殆ど機能は無い。今のところ特定のwebサイト専用のブラウザを作れるようなソフトウェア。とりあえずTwitterとGoogle Analytics用に使っている。「ブラウザを起動してブックマークから...」では無く「Twitterを起動」「Google Analyticsを起動」という感覚は、非常にスムーズ。

開発ツール


PDT Project
Eclipse Foundationによってリリースされた「PHP Development Tools framework for the Eclipse platform」
eclipseのPHP開発用プラグイン。基本的な構成のeclipseとPDTをセットにしたAll-in-oneパッケージが用意されている。Java用のJDT等、PHP向けとしては余計なものも入っているが、インストールして直ぐ使えます。

EclipseIDE for JavaDevelopers
2007年6月頃にリリースされたeclipse3.3(コードネームEuropa)の、目的別パッケージとして用意された物。
PDTがPHP用ならJDTはJava用のプラグインだが、そのJDTを含めJava開発向けのプラグインのみで構成されている様子。
上記のPDTのAll-in-oneは、PHP開発用のパッケージというよりノーマルのeclipse+PDTプラグインといったイメージ。
ちなみにEclipseIDE for JavaDevelopersはノーマルのeclipseよりも容量が少なめ。

PHPエディタ - スタンドアロン版 - phpspot
日本製のphp用エディタ。プロジェクト管理機能などを削除したシンプルなエディタ版で、ちょっとしたPHPスクリプトを書くときに便利。
日本製のフリーウェアだけあって、UIや設定周りはきめが細かい。特に全角スペースの可視化は、海外製ではなかなか対応が無いので便利。

ez-HTML
htmlコードをゴリゴリ書くためのhtmlエディタ。htmlとcssのコードアシスト機能が便利。
最近ezhtmlを使用して作成したwebサイトからezhtml公式へのリンクを要求する、リンクウェアという形態になったが、受注製作をしたwebサイトの場合どうすればいいんだろうか。その辺も含めてちょっと微妙な為、なるべくならAptanaに乗り換えたいところ。
EUC-JPやUTF-8にも対応はしているが、Shift-JISをメインと捉えている節があってちょっと扱い難い面もあり。

WinSCP :: Introduction
恐らく、無料かつWindows上でSCPやSFTPを扱えるツールといったらWinSCP一択といっても過言ではない。FileZillaがあるが、正直これは使いにくい。
最近のバージョン4になって普通FTPにも対応したので、サーバとのファイルのやり取りはこれ1個で出来る様になりました。
ファイルを複数選択する際の挙動が少し変で慣れが必要かも。

PuTTY ごった煮版
Telnet/SSH クライアントであるPuTTYに、各所で公開されているパッチを適用したごった煮版。
PuTTYはデフォルトでは各設定や接続先ホストの情報をレジストリに記録するが、PuTTYをINIファイル対応にするパッチも含まれていて、文字通り設定をiniファイルに記録させるようにも出来る。
ちなみになぜPuTTYを使っているかというと、最初に使ったのがこれだったからです。

ユーティリティ(インストール不要)


TeraPad
いわゆるテキストエディタ。
機能が一通り揃っていて、UIが割りとキレイで使いやすい。アイコンがかわいいのも高ポイント。
秀丸エディタとかはまずアイコンが好きになれない。

Archon2
アーカイバー。統合アーカイバーDLLを使うタイプなのでDLLさえ集めれば殆どの圧縮形式に対応できる。
UIがシンプルで使いやすいが、ベータのまま開発がストップしてしまった。開発者のwebサイトそのものが更新されずBBSもメンテナンスされていないので、もう復活はしなさそうで残念。
現在、似たような操作感のアーカイバーを探しています。

caldix - kMonos.NET
上述の統合アーカイバーDLLを、自動でダウンロードしてくれるツール。
統合アーカイバーDLLを使う圧縮解凍ソフトは、DLLを集めるのが面倒という話を良く聞くが、caldixを1回起動すればそれでOK。
逆に統合アーカイバーDLLを使わないタイプの圧縮解凍ソフトは、稀に圧縮形式の細かなバージョンの違いで、ファイルを渡した相手先で解凍できなかったりするケースがあったりする。

Safarp
Windowsのコントロールパネルにあるプログラムの追加と削除と同じ機能を持ったツールです。
ただ違うところは、とても起動が早いというところ。Windows標準の方は、起動にやたら時間がかかりますが、Safarpは直ぐに立ち上がります。

fukehara.com myproduct - NNScanText
画面からテキストを抽出するツール。
エラーダイアログとか、通常マウスで範囲選択してコピーできない箇所のテキストを、テキストデータとして取得することが出来ます。
対象のプログラムによってはうまく抽出できないときもあるけど、やっぱりあると便利。
画面を画像で保存するスクリーンキャプチャも、最小限の機能ながら一応備わっているので、これも含めて困ったときに役立ちます。

A-1 DRIVE -Software / Fire File Copy
メモリを活用してファイルの移動/コピーを高速に行うツール。
同じHDD内での移動は直ぐ終わるが、異なるHDDへの移動やコピーは、サイズの大きいファイルだとすごく時間がかかります。
10分、と表示されたと思ったら20分、30分と、かかる時間が増えたり減ったりだったりしますが、Fire File Copyを使うとかなり早くなります。
多少設定などをする必要はあるので、初心者にはあまりお勧めできないかも。

Devas - namespace gimite
複数のテキストファイルを検索・置換が行えるツール。
単純な検索から正規表現を使った検索まで行えるので、Windowsのgrepツールといったところ。
正規表現は  が、通常検索でもタブ「\t」や改行「\n」だけを使うことが出来る。
HTML文書から複数行にわたる長い文字列を検索するとき、正規表現検索ではエスケープしないといけない文字が多すぎて、逆にめんどくさかったりするが、そんな時「\n」が使えるととても便利です。

ユーティリティ(要インストール)


Ultra Explorer
ファイラーとかファイルエクスプローラと呼ばれるツール。
かなり細かいところまでカスタマイズできる様だが、フォルダをBookmarkできるところが気に入っています。
eclipseなどのIDEを使っていると、プロジェクトの構成ファイルだけのツリーに慣れてしまうが、php editorのようなエディタを使う時に逆に不便さを感じてしまいます。
Ultra Explorerで開発しているプロジェクトのフォルダをBookmarkしておくと、多少やりやすくなるので使っています。
表示領域を2つに分割して、1度に2箇所のフォルダを表示できるのも、htmlフォルダとcssフォルダを同時に開けたりするので地味に便利。

UnEditor
タブテキストエディタ。
一つのウィンドウ内にタブで複数のテキストを開くことが出来るのが特徴だが、単純にプログラムの完成度がすごく高いのが良いところ。
terapadだけでも十分といえば十分だけど、気分次第ではUnEditorのほうがやりやすい時もあったり。
タブということもあってterapadよりは重たいけど、その分機能が豊富です。
YokkaGrepという前述のDevasと同種のツールが付属しているが、あくまでUnEditorの付属という扱い。
文字コード変換やインデント変換なども出来、これも完成度は高く単体でも十分一つのツールといえるが、Devasと違って「\n」や「\t」が使えない。
UnEditorとterapad。YokkaGrepとDevasを場合によって使い分けています。

UNLOCKER 1.8.5 BY CEDRICK 'NITCH' COLLOMB
他のプロセスによってロックされ、削除やリネームが行えなくなったファイルを、なんとかするためのツール。
Windowsを使ってるとたまに、どのプロセスもそのファイルを開いたりしていないはずなのに、削除できないファイルが出てくる。
再起動すれば削除できるようになるが、次に再起動したときには削除するのを忘れてしまったりするので、これを使って直ぐに削除します。
ただ、本当に他のプロセスが使用中で削除できないケースもあるので、扱いには多少の注意が必要。

home of the nerd cave | taskbar shuffle and more
タスクバーのボタンの位置を入れ替えることが出来るようになるツール。
基本的にタスクバーの順番は、左から起動した順番で並んでいる。
開発をするときなど、多数のツールを同時に使用するような場合、タスクバーの順番も使いやすい様にしたくなります。
細かいことですが、地味に便利。

Microsoft Baseline Security Analyzer (MBSA)
Microsoft謹製のセキュリティツールで、Windowsの基本的なセキュリティ設定の誤りや弱点を指摘・改善策を提示してくれます。
新しくセットアップしたときなど、分かってるつもりでも見落としがあるかもしれないので、念のため最低限のものとしてこれで確認します。
あまりPCに詳しくない人のPCをセットアップする時なども、とりあえずMBSAの指摘をクリアさせておけば、余計な責任を負わされなくて済むかも。

他のツール晒しエントリ


ツール晒しエントリの1つ目は、自分が使っている定番のFirefoxアドオン(拡張機能)一覧 - プログラマのチラシの裏です。

スポンサーサイト
別窓 | ツール | コメント:0 | トラックバック:0
200802140242
Eclipse Foundation公式のPHP開発用プラグイン「PDT 1.0」(Eclipse PHP Development Tools)がリリース。だけど起動時にエラー

eclipse3.4 (PDT2.0)での関連エントリ。
eclipse.iniでJVMを指定してメモリ関係(ヒープ)のエラーを回避する。ロケールを変更してhtmlエディタのバグを回避する。 - kanonjiの日記


PDT Project

eclipseを開発するEclipse FoundationからPHP開発用プラグイン「PDT 1.0」(Eclipse PHP Development Tools)がリリース。

18th of September, 2007 - PDT 1.0 Release

早速下記ページから、PDTをダウンロードしてみた。
1.0 Release Build: R20070917

既存のeclipseに入れたりするのは面倒だったので、下記PDT All-in-Oneをダウンロード。
pdt-all-in-one-1.0-R20070917-win32.zip

ZIPを解凍し実行してみるが、下記のようなエラーが出てしまう。
JVM terminated. Exit code=-1
以下省略


※PDTのエラーではなくeclipse3.3のエラーっぽい。

検索してみると以下のページを発見。
日記/2007-06-01 - Saisse's Wiki

メモリ関連のトラブルらしく、eclipse.iniにあるメモリ関連の設定値を削除するとエラーは出なくなった。

・変更前
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vmargs
-Xms40m
-Xmx256m


・変更後
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m


・各オプションの説明
-vmargs:JVMのオプションが指定できるようになる。下記Xms・XmxはJVMのオプションなので、先にvmargsを指定する必要がある。
-Xms:起動時のヒープサイズを設定する。
-Xmx:ヒープサイズの最大値を設定する。Xmsの設定で不足したら、この設定まで領域を確保していく。


ちなみに、どうしてもこのオプションの意味だけはわからなかった。
--launcher.XXMaxPermSize

下記ページに一応説明が書いてあったが、Solaris編だし解説も意味がわからなかった。
Java 2 SDK 開発ガイド (Solaris 編)

-XXMaxPermSize=64m 恒久的な世代のサイズ

GC関連じゃないかとなんとなく思っているが、なんともいえない。

ただ、チューチューマウスというソフトウェアとの相性が悪いとも書いてあり、下記でもAltIMEというソフトとの相性問題が書かれている。
ただぶろぐ - eclipse3.3 起動エラー

しかし、上記エントリに習って常駐ソフトを順次終了させてみたが改善せず。
もしかしたらサービスのほうに何か相性の悪いものがあるのかもしれない。

また、エラーメッセージがすごく似ているが、下記の場合は複数バージョンのJRE(or JDK)がインストールされていて、どれを使っていいかわからない状態らしい。
JVM terminated. Exit code=1
以下省略


こっちが今回のメモリ関連のエラーメッセージ。
JVM terminated. Exit code=-1
以下省略


「1」か「-1」かの違いなので混同しやすい。

eclipseの場合、インストールディレクトリ(※configurationフォルダとかfeaturesフォルダが入っているフォルダ)にjreというフォルダを作って、eclipse起動に使いたいjreを入れておくとそれを使ってくれる。

JRE1.5 Update11を使いたい場合は、以下のようにする。

C:\Program Files\Java\jre1.5.0_11フォルダをeclipseインストールフォルダにコピー。
eclipseインストールフォルダ\jre1.5.0_11をjreにリネームして、下記のようにする。

eclipseインストールフォルダ\jre
別窓 | 開発環境 | コメント:1 | トラックバック:0
200709270054
Windows用ポータブルwebサーバ Apache Mobile
Blackdot.be :: Run Apache From USB

USBに入れて持ち歩けるApache。
スペックは以下の通り。

Features:

* Management Application
* Apache 2.2.x
o mod_deflate
o mod_ssl
* mod_security
* mod_perl
* PHP 5.1.2
* Perl 5.8

Requirements:

* Windows 2000, Windows XP or Windows 2003
* 256mb USB-key



PHPやPerlが組み込まれている上に、サイトには書いてないがSSLとwebDAVも組み込まれている。
256MBの容量があるUSBフラッシュメモリ等に入れておけば、Windows2000以上のPCがあれば直ぐにwebサーバが立ち上がる。
webアプリのデモやプレゼン、簡易の開発環境として使えそうという紹介をちらほら見かける。

PHPのちょっとしたツールの開発に使ってみたが、自分のWindowsマシンにApache入れてPHP入れてとしなくても良かったので確かに便利だった。
ただ、WindowsのPHPだからなのか、それともApache Mobileという特殊環境だからなのか、PHPの挙動が少しおかしい点があった。

変な挙動1:exec, system, shell_exec等を使う場合のファイルパスのあたり

Windowsサーバでexecコマンドなどを使う場合、シェルはDOSコマンドになる。
DOSコマンドでスペースを含むファイルパスを記述する場合、以下のように「"」で囲む必要がある。

"C:\Document and Settings"

逆に半角スペースを含まないファイルパスの場合「"」で囲っても囲まなくても問題は無い。

"C:\Windows"
C:\Windows

execコマンドで実行したいexeや引数としてファイルパスを渡す場合に半角スペースを含むならば、上記のように「"」で囲まなければならない。

おかしい挙動はここからだが、なぜか「"」で囲む必要が無い場合に囲むとうまくコマンドが実行されないといった動きがある。
具体例を挙げると以下のようになる。

下記からexec($cmd), system($cmd), shell_exec($cmd)などを実行する。

NGな例
$cmd = '"C:\example.exe" -a';
$cmd = 'C:\example.exe -a "D:\folder\example.txt"';
$cmd = 'C:\Program files\example.exe -a';
$cmd = 'C:\example.exe -a D:\My folder\example.txt';

OKな例
$cmd = 'C:\example.exe -a';
$cmd = 'C:\example.exe -a D:\folder\example.txt';
$cmd = '"C:\Program files\example.exe" -a';
$cmd = 'C:\example.exe -a "D:\My folder\example.txt"';

ファイルパスに半角スペースが必ず含まれる・含まれないと分かっている場合は回避できるが、実行毎に変わる場合に非常に困ることになる。

変な挙動2:\3を消すpreg_replace

これもファイルパスだが、文字列としてファイルパスをpreg_replaceしたときに起こった。
例えば以下のような文字列を置換対象(subject)としてpreg_replaceすると、\3が消えてしまう。
もちろん、\3の部分は置換とは無関係でも。

"c:\example\3test.jpg"

具体例で説明すると以下のようになる。

$pattern = '/\.jpg/';
$replacement = '.gif';
$sucject = 'c:\example\3test.jpg';
$result = preg_relace($pattern, $replacement, $sucject);
echo $sucject;
echo $result;

"c:\example\3test.jpg"
"c:\exampletest.gif"


とりあえずは上記2つの挙動を除けば、一応普通に使えている。
上記2つの挙動がApache Mobile固有なのか、Windows上のApache+PHPだからなのかは、あまり検証していないので分からない。
別窓 | 開発環境 | コメント:0 | トラックバック:0
200704140851
Leak Monitor
Leak Monitor

20070311094247.png


JavaScriptのメモリリークを検出してくれる拡張機能。
日ごろアクセスしている各webページにて動作しているJavaScriptも、コーディングによってはそのページを閉じてもオブジェクトが消えないといったリークが発生するらしい。
Ajaxなどを使ったwebサイトを作る際には役に立つだろう。

また、Chrome JS・chrome JavaScriptというものに関しても検出が可能らしいが、chrome JavaScriptが何なのかがよくわからない。

Chrome とは何か?

Chrome は、ウィンドウのコンテント領域の外側にある、アプリケーションウィンドウのユーザインタフェース部品です。ツールバーやメニューバー、プログレス(進捗)バー、ウィンドウのタイトルバーなどはすべて、主として chrome に属する要素の例です。

設定可能な Chromeより引用



ということなので、FirefoxのUI部分の記述にJavaScriptが使われているんだろう。
そしてその部分のメモリリークも検出できるということだろうか。

Leak MonitorのUIは画像のとおりだが、このウィンドウは自分から開くことは出来ないようだ。
webページを閉じたときに本来消えなければならないオブジェクトが残っている場合にメモリリークと判断されるため、ページを閉じたときメモリリークがあればポップアップしてくる。
Leak Monitorには設定画面もないので、最初はちゃんとインストールされたかもよくわからず、少し悩んでしまった。

意図的にメモリリークを発生させ、LeakMonitorが動いているか確認するには以下の手順で出来るようだ。
どうやらFirefoxのバグのようなので、バージョンによっては確認できなくなるかもしれない。

○adding an observer and not removing it

・Go to about:config

・Enter javascript:void(alert(Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService).addObserver({observe: function() {}, foobar: 3, arr:["baz", "bah"], 7:3.574, doc:<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><title>title</title></head><body><p>Paragraph</p></body></html>}, "xpcom-nothingmuch", false)))

・Leave the page

Leak Monitor Extensionより引用

別窓 | ブラウザの拡張 | コメント:0 | トラックバック:0
200703110949
eclipseの設定
[3.1.2]eclipse+[1.0.3]aio-WST+[1.0.1a]TruStudio+[0.2.7]aptana

とりあえず気になったところだけ。

General->Editor->Text file encoding:Other: EUC-JP(or UTF-8)
New text file line delimiter:Other: Unix(LF)

文字コード設定は一応設定できるが、不便なことにすべてのケースに適用されない。
HTMLやCSSなど、そのファイルに文字コードを定義できる場合、そのファイルに定義された文字コードが使用される。
もし、Smartyなどテンプレート化してありheaderタグを持たないようなHTMLファイルがあれば、なぜかMS932(Shift-JIS)に設定される。
気をつけないと、いつの間にかマルチバイト部分が文字化けしていることがある。
回避方法は、そういったファイルを一つ一つ、プロパティ開いて正しい文字コードを設定していく。

Aptana->Browsers/User Agents:とりあえず全部チェックしておいて損はない
Aptana->Editors:Formatting:Insert spaces insted of tabs:タブは微妙なのでチェック
Aptana->Editors->HTML Editor:Automatically insert the equals sign:on
Aptana->Editors->HTML Editor:Default extension for new HTML files:.html

PHP->Code analyzers: Compiler compliance level:PHP5( or PHP4)
PHP->Editor:Typing:Select options for automatic text modifications:Insert spaces for tab:こっちもチェック
別窓 | 開発環境 | コメント:0 | トラックバック:0
200702211549
JSView
JSView

現在表示しているページの、JavaScript、CSSを表示する。
設定により、コンテキストメニューや、メニューバー → 表示、ツールバーから呼び出せる。
なぜかデフォルトでは、コンテキストメニューに「ページのソースを表示 - JSView」という、機能的にはFirefoxにビルトインの「ページのソースを表示」と何も変わらない機能がONになっていて、コンテキストメニューからJavascriptやCSSを表示する機能がOffになっていた。
ちょっと謎。
「ページのソースを表示」画面からも、メニューバー → 表示から外部Javascript、外部CSSを開くことができる。

他のサイトを参考にしているときに、地味に便利。
別窓 | ブラウザの拡張 | コメント:0 | トラックバック:0
200702102003
| プログラマのチラシの裏 | NEXT
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。