javaでftp接続テストプログラム(commons-ftp)

FTP接続テストでなんだかよくわからない状況になってしまったときのために簡単なFTP接続テストプログラムを作ったので、ついでに公開します。
commons-net 2.0を使ってます。
もしかしたら動かないかも?動かなかったらゴメンナサイで。

エラー処理とかもろもろはちゃんとしていないので、あくまでご参考までということでよろしくお願いします。

2009.7.7追記: コメントでご指摘いただいたエラー処理を少し追加しました。少しだけ立派になった!
package jp.netmark.ftptest;
import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
public class Ftptest {
/**
* @param args
*/
public static void main(String[] args) {
if (args.length != 3) {
System.err
.println("args[0]=host, args[1]=username, args[2]=password");
System.exit(1);
}
String address = args[0];
String username = args[1];
String password = args[2];
boolean passiveOK = execute(address, username, password, true);
boolean activeOK = execute(address, username, password, false);
System.out.println("------------------------");
System.out.println("Check Result:");
System.out.println("Passive Mode\t=>" + (passiveOK ? "OK" : "NG"));
System.out.println("Active Mode\t=>" + (activeOK ? "OK" : "NG"));
}
private static boolean execute(String address, String username,
String password, boolean usePassiveMode) {
boolean success = false;
FTPClient client = new FTPClient();
try {
System.out.println("connect");
client.connect(address);
System.out.println(client.getReplyString());
client.login(username, password);
System.out.println(client.getReplyString());
if (!FTPReply.isPositiveCompletion(client.getReplyCode())) {
System.out.println("*** Login Failed ***");
client.disconnect();
return false;
}
if (usePassiveMode) {
client.enterLocalPassiveMode();
System.out.println(client.getReplyString());
} else {
client.enterLocalActiveMode();
System.out.println(client.getReplyString());
}
client.pwd();
System.out.println(client.getReplyString());
String fileNames[] = client.listNames();
success = FTPReply.isPositiveCompletion(client.getReplyCode());
System.out.println(client.getReplyString());
if (fileNames != null) {
for (int i = 0; i < fileNames.length; i++) {
System.out.println(fileNames[i]);
}
}
client.logout();
System.out.println(client.getReplyString());
client.disconnect();
} catch (Exception e) {
if (client.isConnected()) {
try {
client.disconnect();
} catch (IOException ignore) {
}
}
e.printStackTrace();
}
return success;
}
}

Java 

Firebugの致命的な欠陥を修正する方法

もはや必須機能のFirebugですが、以前やっていたプロジェクトでは例のゴキブリホタルのアイコンのせいで女性陣から利用を拒否されました;;

そんなFirebugの致命的な欠陥を修正する方法がこちら
Firebugの虫アイコンを変更する方法

firefox 3.0.5 on Windows Vista + Firebug 1.3.0 の場合、下記のファイルを書き換えました


C:\Users<i>ユーザ名\AppData\Roaming\Mozilla\Firefox\Profiles<i>なんかランダムな英数字.default\extensions\firebug@software.joehewitt.com\skin\classic</div>
firebug16.png
firebug24.png
firebug32.png
firebug.png
firebug-gray-16.png
↓すごくいい感じになりました!
firebug_tentoumushi.gif

[Read More]
Tool 

BP Study#17に参加しました

毎月恒例:Be Proudさん主催の勉強会 BP Study に参加してきました。


今回は開発ネタで、O/Rマッパー対決の続きでした。
3つのうち、MS系が1つ、Pythonが2つ、となかなか偏った構成で楽しかったです。

自分は開発から離れて久しいですが、、、しかも業務で開発したことあるのはJavaだけですが、SQLAlchemyが持つHibernate的なLazy Loadingのしくみなんかは、知っておくだけでチューニングの時に参考になりますね。

懇親会はshohu33さんたちと、MySQLネタや仮想マシンのネタ、UNIXネタなど楽しく話させてもらいました。
2次会は一転して会社のスタイルやライフスタイルの話を立ち飲み屋で。こちらも楽しかったです。
やっぱり合宿とかするべきですよね。24/365の会社には若干ハードル高いのが難点です。。。

その後はいつもどおり(?)朝まで楽しく飲ませていただきました。
また次回もよろしくおねがいします!

[Read More]
Event 

MySQLチューニングの基本ツール - MySQL Tuner

MySQLをチューニングする時に、基本的な事項をチェックするツールとして便利なものがあったのでご紹介。



1ファイルのperlプログラムなので、ダウンロードして実行権限設定すれば簡単に実行できます。

↓実行結果はこんな感じ。カラーで安心。
mysqltuner.gif

細かい見方は、またおいおい。

[Read More]

URLの最大文字数

URLの最大文字数の制限について、改めて調べてみました。
URIではなく、URLについて。

URLなのでHTTPだろう、ということでRFC 2616をチェック。すると・・・

The HTTP protocol does not place any a priori limit on the length of a URI. Servers MUST be able to handle the URI of any resource they serve, and SHOULD be able to handle URIs of unbounded length if they provide GET-based forms that could generate such URIs. A server SHOULD return 414 (Request-URI Too Long) status if a URI is longer than the server can handle (see section 10.4.15).
Note: Servers ought to be cautious about depending on URI lengths above 255 bytes, because some older client or proxy implementations might not properly support these lengths.

[Read More]
OpenX 

[読書]デジタルネイティブ

NHKスペシャルの放送当時(2008.11.10)はTVを持っていなかったので、本で興味深く読ませてもらいました。

デジタルネイティブの細かい定義とか、誰が入る/誰が入らないなどは不毛なのでやめておくとして。。。

単純に、インターネットの歴史が一回りして、健全に成長している姿が見てとれてとても嬉しいです。
ふた昔前、インターネットは実名でやりとりする場でした。
その後、(日本だけかもしれないけど)匿名性がクローズアップされて「無責任なユーザによる無法地帯」のイメージがついたように感じます。
でも今、ふたたび実名(もしくは特定のハンドルにより中の人を特定できる形)でのコミュニケーションの場に戻ってきています。
それによって、再び活用できるツールとして復権してきたことがとても嬉しいです。

そのベースには個人が自立していること、これがあるように感じます。
物事の判断、人生のコントロールは自分の責任において、自分でする。
この覚悟がある/なしが、フラットな感覚の有無・リテラシーの高さに結びついているように感じます。
はてなが情報共有型で経営できているのは、メンバーが自立した人ばかりだからなのではないかな~と思います。。
(はてなに知り合いがいないので、あくまで推測ですが)

もう1点気になったのは、ワールドワイドに活躍するデジタルネイティブの姿。
インターネットが世界中で利用できることによって、コミュニケーション・情報共有の対象が「言語圏」に拡大しました。
本書でも、インド系アメリカ人の少年がイギリス人と仕事をする例が挙げられてます。
また、何かのwebサービスを作ったら、まず対象はその言語圏になります(他言語版は翻訳が必要)。
そうなんです。日本語って、あんまりインターネットを有効に使えていないかもしれない。
この状況をどう乗り越えるべきか。。。国家レベルで真剣に考える必要がありそうです。
Others 

Windows VISTAで休止状態が使えなくなった

タイトルの通り、とある日からWindows VISTAで休止状態が使えなくなってしまいました。。。

BIOSの設定を見ても、有効になってるし、、、ということでWindowsのヘルプを見て下記を発見

[Microsoft サポート オンライン]ディスク クリーンアップ ツールを使用した後に Windows Vista でハイブリッド スリープ機能と休止状態機能が使用できなくなることがある

管理者権限でコマンドプロンプトを起動して

powercfg -h on
で解決しました。

※管理者ユーザーでも、管理者権限で操作しないとダメです。

ヘルプが優秀で助かりました。

[Read More]
Others 

謹賀新年

あけましておめでとうございます

本年も宜しくお願いいたします

2009初日の出.jpg


某ブログにも同じエントリがあるのはご勘弁ください・w・;

その他の新年な写真はこちらで⇒Zorg

[Read More]
Others 

BP Study#16に参加しました

毎月恒例:Be Proudさん主催の勉強会 BP Study に参加してきました。
今回はMCということで、インフラまわりのことについて喋らせてもらいました。
→BP Study #16

資料も公開します。はみ出しているところがあるのはご愛嬌ということで。。。
Linuxシステムの物理制約と(web)システム監視のポイント

今回はかなりライトな内容にしました。
中にはディープなのを期待してくださっていた方もいたようで、もうしわけないです。
次の機会があれば、もっともっとマニアックな話をしたいとおもいます!

MySQLのネタでトラブルと解決方法の話をしたときに、場が急に盛り上がったのが印象的でした。
みんな困ってるんですね。
MySQLはMySQLなりの、PostgreSQLはPostgreSQLなりの悩みとか、ポイントとかあるんですよね。
しかし、Slony-Iにはがんばってもらわないと。


懇親会、2次会と、いろいろ楽しくお話させていただきました。
やっぱり、もっとインフラはアプリのことを、アプリはインフラのことを知るべきですよね。
お互いに協力して1つのシステムをつくっているわけで、チームなんですから。
インフラ系同士のエンジニアの交流・インフラとアプリのエンジニアの交流はもっと推進していきたいですね!


しかし、いまのRails実行環境の定番って何なんでしょう。。。。
mongrel_railsは開発とまってるし、どうなんでしょうねぇ〜

[Read More]
Event 

ギズモードラジオの公開収録に参加してきました

縁があってギズモードラジオの公開収録に参加できることになったのでいってきました。
場所はマイクロソフト@赤坂。

会議室が超キレイです。
タリーズのコーヒーとマフィンも出してくれました。
これだけでも幸せ★


参加者は20名ちょい+スタッフの方々って感じでした。
みなさんノートPCを持ってきてるんですが、さすがにこの手のイベントにしては異常なMacの低さでした。さすがWindowsLive協賛(それでも2割くらいはMacでした)。


内容はというと、前半がギズモードラジオの公開収録。
後半はWindowsLiveの体験会でした。

ギズモードラジオのほうは、基本的に井戸端会議なんですがグダグダで楽しかったです。
MSのバルマーネタが面白かった。
すさまじいハッスル!さすがCEOです。
お土産にカレンダーと、バルマーTシャツ I'M A PC Tシャツをいただきました。
PCの起動音にバルマーのシャウトでも設定してみようかな。


後半のWindowsLiveの紹介コーナーもなかなか面白かったです。
なんでもWindowsLiveは写真を得意分野として押し出していくもよう。
SkyDriveも25GBまで置けるようになったので、これからどんどん便利になりそうです。

個人的には、IEであればドラッグ&ドロップで写真がuploadできるのがいい感じ。
グループを作ると、25GBが個人用のものとは別にグループに対して割り当てられるので、写真部グループを作ればそこに集約できそう。
RAWデータ(自分の場合、現時点で36GBあった)を入れちゃうとアウチだけど、JPEGだけであれば容量的には余裕っぽい。

基本的にはwebベースなんだけど、クライアントソフトを利用するともっと便利だそうで。
画像から顔を検出して、顔に対してタグを付与できるとのこと。
例えば、普段は日付ごとにディレクトリを整理しておいて、長男の成長の記録を横断的に見たい時には顔タグで抽出すれば簡単に一覧できるみたい。
この機能、すごくいいかんじ。

これがWindows版しかないってのが痛い。
クラウド推進の足枷になってますね。。。


ちなみに、近々にWindowsLiveMessengerがupdateされるそうです。
自分のスキンが相手に見えるようになったり、動画アイコンを設定できたり、人ごとに着メロを設定できたりとなかなか面白そう。
WindowsLiveの広報チームの方々もチームワークよく、楽しそうでなによりでした。



イベントの最後に WindowsLive活用法アイデアコンテスト が実施されました。
いちるさん+MS中村さん(?うろおぼえ)による選考の上、参加者による投票で大賞を決める方式でした。

アイデアの中身は言っていいのか分からないので保留するとして、
私が投票したのは得票数1でダントツ最下位という素晴らしい結果に。
一番面白そうなのに投票したので、悔いはないですw


と、いうわけで、楽しい場をご用意していただいたギズモード編集部の方々、マイクロソフトの方々、参加者の皆様ありがとうございました。

[Read More]
Event