Category Archives: Code

System.out.print

ちょっと古いJavaのネタですが… System.out.print(“011の値は:” + 011);

TeraTermマクロとFTPでちょっと面白いことをやってみる

普段何気なくつかってるTeraTermですが、マクロというものがあります。TeraTermヘルプを見れば詳しく書いてあります。FTPもコマンドを外部ファイルに待たせば一覧の処理を自動化してくれます。今日はちょっと実際に作ってたものをサンプルとして掲載します。 処理の流れは以下のようになります。 SSHでWindowsクライアントからサーバーAに接続して、Apacheログをftpから取得できる場所にコピー ftpでサーバーAに接続して、ApacheログファイルをWindowsクライアントにダウンロード SSHで再びサーバーAに接続して、ダウンロードしたApacheログファイルを削除 ftpでサーバーBに接続して、Apacheログファイルを特定のディレウトリにアップロード Windowsクライアントのログファイル削除 SSHでサーバーBに接続して、Apacheログ解析プログラムを実行 1. batファイル作成 apache_log.bat “C:\Program Files\teraterm\ttpmacro.exe” “C:\apache\copylog.ttl” ftp -s:”C:\apache\getlog.ftp” “C:\Program Files\teraterm\ttpmacro.exe” “C:\apache\deletelog.ttl” ftp -s:”C:\apache\putlog.ftp” cd apache_log del /Q *.apache.gz “C:\Program Files\teraterm\ttpmacro.exe” “C:\apache\update.ttl” 2. ttlファイル作成 copylog.ttl connect ’192.168.0.2:22 /ssh /auth=password /user={user} /passwd={pw}’ wait ‘bash-2.04$ ‘ sendln ‘copylog-ctl’ ← シェルで作成したログコピースクリプト wait ‘bash-2.04$ ‘ sendln ‘exit’ deletelog.ttl connect ’192.168.0.2:22 /ssh /auth=password [...]

PHP on Google App Engine

1. Quercusライブラリダウンロード http://quercus.caucho.com/ から Quercus 3.1.6をダウンロードする(Quercus 4.0.1は文字化けが発生するので、今回は3.1.6を使うようにする) jar xf quercus-3.1.6.war (quercus.jar, resin-util.jar, script-10.jar) 2. Jettyライブラリダウンロード http://dist.codehaus.org/jetty/jetty-6.1.17/ から jetty-6.1.17.zip をダウンロード (jetty-6.1.17.jar, jetty-util-6.1.17.jar) 3. ライブラリをlibフォルダに入れる 1と2で取得したjarファイルを war/WEB-INF/lib に入れる 4. 設定ファイル修正 4-1 appengine-web.xml <static-files> <exclude path=”/**.php” /> </static-files> <resource-files> <include path=”/**.php” /> </resource-files>   4-2 web.xml <servlet> <servlet-name>Quercus Servlet</servlet-name> <servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class> <init-param> <param-name>script-encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>ini-file</param-name> <param-value>WEB-INF/php.ini</param-value> </init-param> [...]

Android SDK 1.5を試してみる

Android SDKってどうゆうもんかと知りたくて試してみました。 1.SDKをダウンロード http://developer.android.com/sdk/ からWindows用 android-sdk-windows-1.5_r2.zip ダウンロード 2.インストール インストールと言ってもzipファイルを解凍するだけです。(適当な場所に) 自分の場合は「F:\ide\android-sdk」に入れてます。 3.emulatorを起動してみる 「F:\ide\android-sdk\tools」 に「emulator.exe」がありますが、コマンドプロンプトからそのまま > emulator.exe 起動すると以下のエラーが発生します。 emulator: ERROR: You did not provide the name of an Android Virtual Device with the ‘-avd <name>’ option. Read -help-avd for more information. If you *really* want to *NOT* run an AVD, consider using ‘-data <file>’ to specify a [...]

Google App Engine for Java

最近iPhoneアプリの開発に夢中になって、なかなか時間が取れなかったのですが、今日やっと時間がすこしあったので、前からやってみたかった app engine for java を試すことにしました。Pythonの時はSDKをダウンロードして、秀丸なり好きなエディターでコードを書いてましたが、今回はEclipseのプラグインという素晴らしい選択肢がありました。もちろんJava版のSDKも用意してますけど。 推奨されてるJavaバージョンは6ですが、5でも大丈夫みたいです。Javaはすでにイスントールしてあるので、Eclipseのプラグインを入れることにしました。使ってたEclipse3.3.1にプラグインを入れようとしましたが、「org.eclipse.wst.xml.core」が必須ですと怒られて、本体のUpdateを行いましたが、今度はEclipseの起動すらできませんでした。ショック!しょうがないんでEclipse3.4でチャレンジすることにしました。 まずは、こちらからEclipse3.4.2をダウンロード(http://www.eclipse.org/downloads/packages/) 英語が得意ではないんで日本語化(http://mergedoc.sourceforge.jp/index.html#/pleiades.html) 次はGoogle Plugin for Eclipseを入れる。(http://dl.google.com/eclipse/plugin/3.4) 完了すると、メニューに三つのアイコンが出てきます。(可愛い~)左からプロジェクト作成、コンパイル、デプロイです。新規でプロジェクトを作成するとテンプレートでAjaxを使ったサンプルコードが自動生成されます。試しにappspotにデプロイしたのがこちら(http://term.appspot.com/)。これだけだと寂しいんでGuestBookも入れようとしましたが、失敗しました。ローカルでは問題なく動きますが、appspotにデプロイするとServer Errorが発生します。 「java.lang.ClassCastException: com.google.appengine.api.users.UserServiceFailureException cannot be cast to javax.servlet.ServletException」 どうもこれが原因らしい。(http://groups.google.com/group/google-appengine-java/browse_thread/thread/3263e14c37391830) やってみて、Pythonの時と比べると少しは楽かと思いました、少なくとも言語がJavaなんで言語そのものの勉強は要らないですね。さ~何を作ってみようかな?時間があるときですけど。時間は自分が作るものだと言われてますが、なかなか難しいですね・・・

iPhone用Webページを作成してみた

最近世の中で、WebサイトをiPhone用インタフェースにするところがどんどん増えてきてます、今後も増え続けると思いますが、例としてあげたいのはFacebookのiPhone用ページです。iPhoneのブラウザがSafariなんで、Safariを使えばコンピュータでも確認できます。Firefoxでもある程度正しく表示できますが、IEではボロボロでした。そういった格好いい動いをするページ、今まで見たことのないページをどう作成したかはFacebookの開発者しかわからないですが、表面上のものはある程度まねできると思います。 1.まずはiuiというJavascriptライブラリをダウンロードします。 http://code.google.com/p/iui/downloads/list ここからライブラリをダウンロード。 ダウンロードしたファイルを解凍してみるとサンプルがあるので、イメージはつかめると思います。 2.iui.css, iui.js の読み込み ページのhead 部分に iui.css と iui.js の読み込みコードを追加 <link rel=”stylesheet” type=”text/css” href=”/css/iui/iui.css” /> <script type=”text/javascript” src=”js/iui/iui.js”></script> 3.ページ作成 <!– トップバー –> <div class=”toolbar”> <h1 id=”pageTitle”></h1> <a id=”backButton” class=”button” href=”#”></a> </div> <!– Homeページ –> <ul id=”home” title=”Home” selected=”true”> <li><a href=”#blogs”>Blogs</a></li> <li><a href=”#play”>Play</a></li> <li><a href=”#me”>Me</a></li> <li><a href=”/” target=”_self”>Safari</a></li> </ul> <!– Blogsページ –> [...]

DNS逆引き高速化

Perlの gethostbyaddr は遅くて使い物にならない!2000個ぐらいのIPアドレスをホスト名変換するのに5時間以上もかかる。はじめはネットワークか、DNSサーバーのせいかと思ったが、nslookup で試したところ gethostbyaddr よりずっと早かった。ということはやっぱり gethostbyaddr の問題と推定できる。自力でnslookupの情報からホスト名を取り出すのもよいだが、CPANのライブラリを使うとずっと簡単だと思う。 1.ライブラリダウンロード http://search.cpan.org/~olaf/Net-DNS-0.63/lib/Net/DNS.pmから Net-DNS-0.63.tar.gz ダウンロード。 2.インストール インストールというよりは設置ですね。Perlのライブラリパスにダウンロードしたものをコピーする。 3.コード #!/usr/bin/env perl use strict; use Net::DNS; use vars qw/ $myRes $query $rr $host /; $myRes = Net::DNS::Resolver->new; sub myLookup($){ $query = $myRes->search($_[0], ‘PTR’); if (!$query) { return “?”; } foreach $rr ($query->answer) { if ($rr->type eq “PTR”) { return $rr->ptrdname; [...]

半角ダッシュ

日本語キーボードから「半角ダッシュ」入力できる? ー [全]長音 - [全]マイナス – [半]ハイフン、マイナス ー [半]長音 ― [全]ダッシュ ‐ [全]ハイフン いろいろ試してみたが、駄目でした。ユーザはどうやって入力できったんだろう?いたずら? PostgreSQLのキャラクターセットをUTF8以外に設定した場合、半角ダッシュは登録されないらしいです。2ヶ月前にリリースしたシステムでバグリました。正確に言うと2年前にリリースしたシステムなんですけどね...うっん。 何社経由して来たが、今回 ”運がよかった” のでぴったりあたりました。ハハハ~ そろらくMysqlも同じでしょう。

MAX_FILE_SIZE . PHP

今日、PHPで作られたグループウェアWizを弄ってみました。中にはファイル共有機能があってデフォルトのアップロードサイズは5MBでした。これはけちすぎる。少なくとも50MBにはしないとね。 早速環境定義ファイルであるgw.phpの中身をのぞいてみたら、$maxfilesize = “5242880″;という変数の定義がありました。メガバイトに換算すると大体5MBだったので、これだ!後ろに0をつけて10倍にしました。更新した定義ファイルをサーバーアップロードしてから、16MBぐらいのファイルをアップロードしてみました、が、アップロードされない。正常か異常かの結果も出してくれない。これは困ったね、どこが悪い?試しに6MBのファイルをアップしてみたら、これは上手くいった。定義ファイルの更新は反映されたぽい。これはどこかでサイズの制限が掛かってるね。 ネット調べてみたらphpの設定にもアップロードの最大サイズを定義できるみたい、php.iniの中を検索して以下のものが発見されました。 max_execution_time=30 post_max_size=8MB upload_max_filesize=8MB   タイムアウトが30秒、POST形式で送れる最大サイズが8MB、ファイルのアップロード最大サイズが8MB。これを50MBにすれば解決できそうな予感。それぞれ、50MBに変更して保存、Webサーバ再起動。もう一回さっきの16MBのファイルをアップしたら、上手くいきました。

DecimalFormat と四捨五入処理

import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.Locale; /**  * @author King  *  */ public class DecimalFormatTest {     public static void main(String[] args) {         NumberFormat nemf = NumberFormat.getPercentInstance(Locale.JAPAN);         DecimalFormat decf = (DecimalFormat)nemf;         decf.applyPattern(“#.###”);                 double d1 = 1.0015;         System.out.println(d1+ “=>” + decf.format(d1));                 double d2 = 1.0025;         System.out.println(d2+ “=>” [...]

Follow

Get every new post delivered to your Inbox.