複数のイメージをまとめてPDFに変換する(iTextを使用) 2007-07-04
納品するソフトウェアのスクリーンショットを印刷しなければならない。
印刷対象となるスクリーンショット画像が多数あるので、なんとか単純化できないか?
(今後もバージョンアップのたびにこの作業は発生することだし。)
オライリーのPDF HACKSを見てみると、ImageMagickの convert ツールでこれができると 書いてある。
$ convert -density 100 -page "800x800>" -resize "800x800>" *.gif output.pdf
やってみると確かにカレントディレクトリにある *.gif画像のスクリーンショットを
全部一ページ一画像の形でPDFに変換してくれた。
超便利!と思ったけど、余白がない状態で出力される。
これなんとかならないか、と思って調べたが、余白をとる方法がわからなかった。
そもそも生成するconvertコマンドのオプション自体も意味がわからない(まさにマジックだ)。
仕方がないので再び iText にお世話になることにした。
自動組版を前提に考えた場合の InDesign と FrameMaker との比較 2008-02-27
FrameMakerとInDesignを使って、自動組版をする、 ということについて ここ一年くらい具体的にマニュアルの制作にも関わりつつ検討している。
いずれも内容をXMLで表現し、それをFrameMaker/InDesignを使って、 自動的に(ルールベースで)レイアウトしていく、というアプローチを取るのだが、 両者はかなり得意分野が違う。
とはいえ、InDesignはあとから出てきた製品ということもあり、 拡張をしやすい設計になっているため、 いろいろな方法で カスタマイズすることで、 FrameMakerの得意領域にも踏み込んでいける。
また、ビジネスで使うにはコストパフォーマンスが常に問われるため、
FrameMakerが得意とする領域の印刷物制作に、
InDesignをカスタマイズして使用するのは基本的によいとは言えない。
でもビジネスでは別の側面もあって、
単にお客さんがInDesignを好むから、とか、
制作する人を募集するときに、FrameMakerを扱える人が少ない・単価が高い
とか、そういう理由によって、どちらを使うか決める必要が出てきます。
そんなこともまで考えると、何がいいのやら。頭が痛いですね。
だから、ここでは、制作のことだけを考えることにします。
特定日時点のソースコード一式を得る方法(Subversion) 2006-06-17
リリースごとに、 リリースブランチを作成していれば、各リリース時点のソースコード一式を取り出すのは簡単。 でもそうでない場合は、どうすればいいか?
XWindowで画面キャプチャを取る 2006-04-25
2009-07-07 追記 Ubuntu8.04 では【アプリケーション - アクセサリ - スクリーンショットの取得】でOK. 付属のGIMP からはスクリーンショット取得はなくなっているようです。
GIMPで取る方法と、import というコマンドラインで作動するツールで取る方法がある。 (他にもあると思いますが)
実際にやってみるまでは、
GIMPは、起動に時間がかかるので、importの方が都合がいいと思ったのですが、
違いました。
importでスクリーンショットを取ったそのままの画像を使用する場合は問題ないのですが、
その画像を加工する必要がある場合は、
結局GIMPを起動するため、
結論としては、GIMPですべて処理してしまった方が話がはやいようです。
Illustrator CS3 + JavaScript を使用して EPSをSVGにバッチ変換するJavaScript 2009-04-27
oXygenのoXygen Authorの作者モードでは、 EPSは表示できないが、SVGは表示できる。 また、Apache FOP を使って変換する場合も、PDFに直接出力する場合は、EPSは使えない。 (PostScriptに書き出す場合は、EPSを扱える。)
そこで、EPSをSVG形式に変換するのだが、数が多い上に、変更も発生するため
機械的に処理したい。
一つ一つillustratorで開いてSVG形式でエクスポート・・・やっていられないので、Scriptのお世話になる。
flaファイル中のアクションスクリプトを全部検索したい場合→ムービーエクスプローラ(Flash CS3) 2009-04-01
flaのあちこちに埋め込まれているActionScriptを文字列で検索する方法・・・
結論はこちら。
今回、諸事情によりZINCという...いわゆる swf2exe...つまり、 swf等のflashムービーをexeに変換して配布できるようにするツールを使ってFlashデモをexeで配布する 仕事を請け負った。
Flashのデータ作成は、別の方(デザイナーの方)で、わたしは単に exe に変換するだけ・・・の はずだったのですが、(例によって)ふたを開けてみると、 変換した exe で flash vide が再生されない問題が発生して、いろいろと大変なことに。
調べてみると、
FLV's not loading with FLV Player Component
に説明がある通り
"You must specify the URL of the FLV file as an absolute path"
絶対パスで指定しないとだめらしい。
Jythonで特定の拡張子を持つファイルだけをリストアップしたい java.io.FileFilter の利用 2009-03-11
ちょっとした作業で、特定拡張子を持つファイルだけをリストアップしたくなることは多い。 そんなときにいつも使っている jython スクリプト。
JavaからWindowsの作業用ディレクトリを取得する方法 2009-03-10
以前エントリー「 Windowsにおいて、Javaプログラムからユーザのホームディレクトリを取得する方法 」で、 Windowsのホームディレクトリを取得しましたが、今回作業用のディレクトリが必要になりました。
単にテンポラリファイルをつくる場合は、java.io.Fileの createTempFile() メソッドを呼べばよい。 しかし、Java実行時のディレクトリがもし書き込み権限がなかった場合などを考えると、 確実に作業用ファイルを作成できるディレクトリがほしい。
Javaでディレクトリを確実に削除するコード 2009-03-09
Java.io.Fileには、delete() というメソッドがあるので、それを呼び出せば、ファイルやディレクトリは削除できる。
ただし、ディレクトリの場合、その中にファイルやサブディレクトリがあると削除が失敗する。
そこで以下のように再帰的にサブディレクトリにさかのぼって、ファイルを消した上で、ディレクトリを消すという
方法で、削除する。
Javaでzipを展開して、再度zipアーカイブを作成 ... OfficeOpenXMLデータの操作のために 2009-03-09
MSOffice2007 では、docx,xlsx,pptx のように 拡張子に x が追加されているが、 この実体は、zip ファイルで中身はXML等で構成されている。 したがって、 データファイルだけを展開して中身を書きかえて、再度 zip アーカイブに戻してやれば、 MSOffice なしで、内容を操作することができる。
今回はそのためのJavaコード。
このサンプルでは中身の操作は一切しないで、単に既存の sample.pptx ファイルを作業ディレクトリに展開して、
その後、result.pptx ファイルにzipアーカイブとして保存しているだけ。
テキストファイル中の文字列 png を eps に置き換えるコード 2009-03-09
現在、DocBookデータを構造化FrameMakerに流し込む・・・という仕事をしているのだが、 そのとき、DocBookはoxygenで編集しているが、oxygenはepsデータを表示できないため、 いったん png に置き換えてDocBook作成作業をしている。
しかし、FrameMakerに取り込む段階になって、拡張子を eps に戻してやる必要がある。 sedとかawkなんかでごく簡単に処理できるのではないかと思いつつも、とりあえず慣れているJavaで 取り急ぎ変換コードを作成したので、メモしておきます。
ご注意
行単位で処理しているのですが、一行に2回以上置き換えの必要が生じる場合に、最初だけしか置き換えられません。 たぶん簡単に改良できるはずですが、いまのところ、そんな不具合あります。
データの永続化 Python(Jython)でdbmを使う方法 2008-12-31
UNIXでよく使われるシンプルなデータベース dbm をPythonで使う方法。
どのOSでも実行できるように、dbmではなく、anydbmモジュールを使用する。
Linux から Cygwin + Windows XP 環境への移行記録 2008-12-31
ずっとLinuxを使ってきたがCygwin+Windows環境へ移行することにした。 主な理由は、ブラウザ上で仕事をすませる時間がどんどん増えてきて、 もうLinuxとかWindows(またはMacOSX)とか、OSは重要でなくなったから。
OSにこだわりがないと、結局ハードの選択肢が豊富で ソフトや周辺機器の対応がよいWindowsを使うことになります。
自分の日常的なPC利用を振り返ってみると...
- インターネットブラウザ(Firefox)
- bashを使ったCUIベースの作業 , MakeほかUNIX基本ツール
- vim
- Python(Google App Engineの開発等)
- Java(Desktopアプリの開発、過去のツールの利用)
- Jython
これだけでほとんど間に合っている。 あとは、OpenOfficeOrgやAdobe関連のソフトウェアをWindows上で使うくらいか。
ということで、Linuxをやめて WindowsXP + Cygwinで生活できるように移行したので、 今回は、その設定メモ。
ネット上でメモをとるウェブアプリ 'memotoru' を Google Code Project Hosting にて公開(Google App Engine用アプリ)(gae,google,markdown) 2008-12-31
ネット上でメモをとるツール memotoru を公開しました。
※このエントリは書きかけです。
Google App Engine からYahoo!日本語形態素解析Webサービスを利用する方法 2008-12-30
Oreillyの「集合知プログラミング」の付録Cを参考に Google App Engine上から Yahoo!日本語形態素解析Webサービス を利用しようとするとうまくいかない。
調べてみると、quote_plus や urlopen が問題になるようです。
以下のように、 The URL Fetch API に置き換えて形態素解析を呼び出すとうまく作動しました。
アイコン(ホームページ用フリー素材集)(icons) 2008-12-28
このサイト用に作成したアイコンです。
ご自由にお使いください。(LGPL)
Jythonを使いはじめるなら Ubuntu8.10 が楽です 2008-12-26
Pythonのすばらしさを備えた上で、JavaAPIやJavaライブラリが使えるので、 とても重宝します。 その場限りのプログラムで、簡単なシェルスクリプトで間に合わない場合は いつもJythonを使っています。
わたしは、Cygwin,Mac OS X,Linux(Vine3.2,Ubuntu8.10)など 日常的に使用しているすべての環境にインストールして使えるようにしています。
ブログを続ける方法〜ワインバーグ(Gerald M. Weinberg)の自然石構築法を参考にして〜 2008-12-25
わたしは、3年前くらいからブログをはじめたのですが、 はじめの2年間はまったくアクセスがありませんでした。 アクセス統計をとってもあまりのアクセスの少なさに嫌気がさして、 しばらくして、統計を見ないようになってしまいました。
そんな状態だったので、 はじめた当初こそSEO対策をはじめアクセスを得られる方法を考えて記事を書いていましたが、 途中から、自分用のメモとして、ひとつひとつのエントリーの品質をあまり考えないで 気楽に書くようになっていました。
自分用のメモとはいえ、公開してプロフィールも書いていたので、 エントリーを読んで自分以外は意味不明、というのは恥ずかしかったので、 グーグルなどの検索エンジンから飛んできた訪問者が、 最低限、ひとつのエントリーで内容の意味が把握でき、なんらかの解決策を提示するようには、 心がけていました。
変化が起きたのは、2008年のはじめです。 久しぶりにアクセス統計を見てみると、自分が思っていたよりは、アクセスがあったのです。 それからは、ちょくちょくアクセス統計を見るようにして、 些細なエントリーでも書いてページ数が増えると、それなりに右肩上がりに アクセスが伸びてきたので、励みにしてきました。
2008年末現在、まだまだウェブ活用コンサルとしてPRできるような成果にほど遠いものの、 開発系技術情報 × 日本語 × ビックキーワードがないというある意味、 マーケット狭すぎ・アドセンス広告主なさすぎなハンディキャップを背負った 分野のブログとしては、なかなかがんばっているんじゃないかと自分では思えるくらいの アクセス数にはなってきました。
今回は、年末でもありますので、ちょっとそのあたり、 わたしがここまでブログを続けてこれたポイントについて振り返ってみます。
Google Appsがすごすぎる! Google Appsを使って独自ドメインのメールアドレスを持つ方法 2008-12-21
Google Appsがすごい。
Gmailをはじめその他Googleのいろいろなサービス(カレンダーやドキュメントなど)
が無料で利用できるのですが、とりあえず、
独自ドメインを使った【Google Apps + Gmail】
の利用だけでも十分すぎるほど便利です。
現在のところ、わたしはセルフマネージドな 仮想専用サーバー に複数のドメインを割り当てて使用しています。
通常、仮想専用サーバは、レンタルサーバを一台借りるより、安価ですが、 使えるリソース(ディスク容量・CPU・メモリなど)が少ないため、 なるべく不要なサーバサービスを減らして運用したいところです。
しかし、Google Apps を使えば、仮想専用サーバの設定は一切変更しないで、
メール機能だけをGoogle Apps(Gmail)に任せられます。
具体的には、DNSサーバのMXレコードの設定だけ変更すれば、
もう GoogleApps + Gmail で独自ドメインのメールアドレスを持つことができます。
しかも、複数アカウント持つことができ、
1アカウントあたり7Gまでの容量があり、無料・・・です。
FrameMaker9 アプリケーション定義ファイル(Application Definitions)の場所が変わった?! 2009-02-20
FrameMaker7.2 では、 アプリケーション定義ファイルは、$STRUCTDIR/structapps.fm だったはず。
( ちなみに、通常インストールでは、$STRUCTDIR は、 C:/Programe Files/Adobe/FrameMaker7.2/Structure を示します。)
FrameMaker9 では、この場所にも structapps.fm が存在しているので、だまされていましたが、 メニューから 【StructureTools - Edit Application Definitions 】で開くファイルは、以下の場所にあるファイルでした。
C:/Documents and Settings/Administrator/Application Data/Adobe/FrameMaker/9/structapps.fm

※もっとも、Administrator というのは現在使用中のユーザ名によって変化しますが。
Windowsのことはよくわかっていないのですが、Windows Explorer では、" Application Data " フォルダが 隠しフォルダになっているのか、見えないのです(びっくり)。 直接、アドレス欄にこのパスを入れてやると表示される。
Processing + Java で Hello World(ハローワールド)...Javaアプリケーションにプロセッシングのスケッチを埋め込む方法 2008-12-19

Processingは、
通常 PDE と呼ばれる統合開発環境でスケッチしながら使います。
スケッチの成果物は、アプレットとして書き出して単体配布できます。
これは、これで便利な機能ですが、Javaプログラマであれば、
直接JavaにProcessingを埋め込んで使った方が早い場合があります。
Eclipse上で開発すれば、コード補完も効きますからPDEを使わなくても、
スケッチもはかどります。
写真管理サービス Picasa Web Albums と GAE(Google App Engine)のマッシュアップ 2008-12-19
Google App Engine上から、googleが提供している各種サービスにアクセスすることができます。 今回は、GAEから gdata API を使って、Picasa Web Albumsにアクセスして、 画像データを取得するサンプルを作成します。
Markdown記法をJavaで変換する 【showdown.js + Rhino】の利用(showdown,markdown,javascript,rhino,java) 2009-02-18
Markdown記法をJavaで扱いたい では、Java6の JSR233 Scripting for the Java Platform のJavaにJavaScriptを埋め込んで使う方法を使った。
Java5以前の環境で showdown.js をJavaから使いたくなったので、その調査結果のメモ。
丸付きのプラス記号、マイナス記号を入力したい・・・ユニコードで 2009-02-18
丸の中に+(プラス)記号の文字が u+2295 で、-(マイナス)記号の文字は、u+2296 だということは
ネットで調べてわかったのだが、それをウインドウズ上で入力する方法がわからない。
しばらく検索していたが、わからなかったので、Javaで生成することにした。
colinux (+ Ubuntu 7.10 ) の WindowsXP への導入記録(colinux,ubuntu) 2009-02-17
colinuxからPrallels workstationに乗り換えて しばらく経ちますが、いつのまにか、colinuxでubuntu7.10が使えるようになっていた。 わけあって導入することになったので、導入記録メモしておきます。
導入したPCの環境
- WindowsXP Pro
- emobile
Processing+POIをエクセルグラフウィザードの代替として使う 2008-12-16

Processingは、簡易スクリプト的な記述でイラスト画像を(対話的に)作成できるツールです。
他にもいろいろな活用方法があるので詳しくは
http://www.processing.org/や
http://processing.jp/をご覧ください。
Java,Jythonから使用可能なフォントを調べる 2006-10-14
Javaから使えるフォントをリストアップして確かめるコード。
サーブレットで文字化けを防ぐために文字エンコーディングを指定するポイント(java,servlet) 2009-02-14
サーブレットで出力したHTMLが文字化けしてしまう、ということがあります。 そんなときのチェックポイントのまとめ。
lftpのmirror(ミラー)機能を使ってウェブサイトを更新するときにアップロード対象から特定ファイルを除外する方法 2007-05-20
lftp はとても便利。
諸事情により、XonWindowsからCygwinに乗り換えたが、 最新のCygwinにはlftpのバイナリが含まれていてとても助かる。
諸事情
いままで、vimなどで日本語の扱いが楽、などの理由で、 CygwinのかわりにXonWindows3を使ってきたが、Python2.5が使いたかったので、 Cygwinを使うことにした。
Cygwin付属のvimは、そのままでは日本語が扱えないが、 そこはがんばって設定するとかいった努力はやめて、kaoriyaのvimを 素直に使うことにした。
似顔絵を写真から作成...ブログやmixiのプロフィールに利用(GIMP) 2008-12-12
ブログやmixiなどでプロフィール欄に載せるポートレイトをどう作るか... 写真を載せてもいいのでしょうが、なんだかそれはちょっと。 目的は、実世界でお会いしたときにすぐに「あ、大島さんですね」とわかってもらえれば いいので、写真でなくとも似顔絵で十分です。
DocBook + FrameMakerによるドキュメント制作、作業環境の構築 2009-02-07
DocBook,FrameMaker,XMLを使って作業をしていると、
XMLインスタンスからDTDを作成したり、XSLTで変換したり、
XMLを読みやすい形式でインデント付けたり・その逆(不要なスペースの削除)、
といったことを頻繁に行います。
これらをCygwin上で簡単に実行できるようにコマンド化します。
PythonでJSONを使う方法 2008-12-12
JavaScriptなどでデータ交換フォーマットとしてJSON形式がある。 最近ではPython,Javaなど主要な言語にJSONを読み書きできるライブラリが揃ってきていて 取り扱いが非常によいです。
PythonでJSONを扱う方法...
テキストデータをファイルへ書き出す方法(Python/Jython) 2008-12-12
ファイルに書き出すなどというのは基本すぎる(簡単すぎる)のか ネットを検索しても情報がなかったのでメモ。
カレントディレクトリに log というファイルを作成し(存在している場合は上書き) テキストデータを書き込む。
Mac OS X v10.5(Leopard) を普通のUnixとして使えるように設定 2008-12-11
Leopardではそれ以前のバージョンのMac OS Xと違い、
Terminal の日本語対応がされていて、vi,emacsでほとんど設定なしに日本語が通るようです。
しかし、普段Linuxで使っているツールをMac OS Xで動かそうとすると
何かと不都合が生じます。
その解消のための試行錯誤の結果をメモ。
以下の情報は、主に Terminal でツールを使う場合の不都合解消howtoです。
JavaScriptでローカルファイルを読み書きする方法(Rhinoを利用) 2009-02-10
Ajaxがブームになって以来ここ数年、自分内JavaScript使用頻度や期待度がアップしている。 Webページのカスタマイズでも、InDesignでもJavaScriptを使っている、ActionScriptもほとんどJavaScriptだし。 最近では、O'REILLYの "JavaScript: The Good Parts" という本さえ購入している。
ただ、JavaScriptを日常的に発生するいろいろな仕事に使おうと思うと、 ローカルファイルの読み書きが必要になるケースが多い。 JavaScriptにはその機能がないからなぁ〜と思っていたが、とんでもない勘違いだと今日気づいた。(のでメモ)
GAE(google app engine) インデックスのトラブルの顛末 2008-12-09
GoogleAppEngineの開発していたところ、ローカルの開発環境でも問題ないのですが、 GAEにアップロードして作動させるとうまく動かないことがありました。 調べてみると、GQLクエリ部分で問題が発生しているようです。 いろいろ調べたり、グーグルグループで質問したりしてなんとか解消できたので、 解消方法をメモしておきます。
jakarta-POIを使ってエクセルデータを読む(Javaを使ってExcelデータを読み取る方法) 2006-03-24
jakarta POIは、 MS-ExcelのデータをJavaから読みこみできるようにするライブラリです。
Windows上で処理する場合は...
ウインドウズ上で、Excelがインストールされたマシンでエクセルデータをプログラムで読みたい場合は、 Win32 OLEを経由するのが普通らしい。
- http://jp.rubyist.net/magazine/?0009-Win32OLE
- http://www.ibm.com/developerworks/jp/linux/library/l-pexcel/index.html
Ruby,Perl,Pythonなどのサポートがよいようです。
GAE(Google App Engine)を使ってみて気づいたことのメモ(gae,google) 2008-12-09
GAE は、簡単に言えば Googleのインフラで、 ウェブアプリケーションをホスティングしてくれるサービスです。
構造化FrameMakerでインライングラフィックを扱う方法 2009-02-07
XML文書をFrameMakerに取り込んだときにグラフィック要素が、インライン上に配置されるように するにはどうしたらいいかの調査記録です。
'持ち運べるウィキペディア'のためのツール wpdb.jar 2008-12-07
これは、WikipediaのXMLデータをH2 Databaseに独自形式で格納するためのプログラムです。
使い方は '持ち運べるウィキペディア'をつくる のエントリーをご覧ください。
※このエントリーは書きかけです。
倍速実現マップ(コスモマップ)基礎講座を受講しました 2008-12-07
「倍速実現マップ(コスモ・マップ コンダクター 内方恵一郎氏)」 という本を今年の9月に見つけて、 とても気に入ったのでコスモペイントという コスモマップ作成ソフトを開発してみたり自分でマップを描いたりしていたのですが、 今回名古屋で基礎講座が開かれたので、受講してみました。
- なぜその夢をかなえたいのか?5回掘り下げる
- 収穫はシェアすることを入れる
- 夢を達成した自分が現在の自分にアドバイスする
- イメージングシャッターチェンス
- みんながいるところでマップを描く
- 5分という時間制限でマップを直感的に埋めていく
これは、自分の備忘録のエントリーですが、 受講しようかどうか迷っている方の参考になればと思い ブログとして公開します。
'持ち運べるウィキペディア'をつくる(Javaを使用) 2008-12-07
![]()
※このエントリーは書きかけです。
'持ち運べるウィキペディア'のためのツール wpsearch.jar 2008-12-07
Luceneを使ってwikipediaコンテンツの検索インデックスの作成と 検索機能を提供します。
※このエントリーは書きかけです。
'持ち運べるウィキペディア'のためのツール wpui.jar 2008-12-07
これは、 wpdb, wpindex を使って作成したデータベースと検索インデックスを利用して、 Wikipediaコンテンツを閲覧するためのブラウザです。
使い方は '持ち運べるウィキペディア'をつくる のエントリーをご覧ください。
※このエントリーは書きかけです。
'持ち運べるウィキペディア'のためのツール wpindex.jar 2008-12-07
これは、wpdb で作成したデータベースをもとに、検索用インデックスを作成するプログラムです。
使い方は '持ち運べるウィキペディア'をつくる のエントリーをご覧ください。
※このエントリーは書きかけです。
UNIXまたはCygwinで date コマンドの結果を読みやすい日付表記に整形する 2009-02-06
ログファイルなどの先頭にそのログが生成された日付と時間を記録したい場合・・・
dateコマンドに以下のオプションを付ければ、人間フレンドリーな形式で表示できる。
$ date
Fri Feb 6 09:51:28 JST 2009
$ date "+%Y/%m/%d %H:%M"
2009/02/06 09:51
ログファイルの先頭に入れるには...以下のような感じで使う。
$ date "+%Y/%m/%d %H:%M" > log.txt
$ echo "------------------------" >> log.txt
$ command-do-something.sh >> log.txt
Mac OS X(Leopard) + emacs/vim で日本語環境を整える(macosx,emacs) 2008-12-05
いままでずっとTiger(Mac OS X v10.4) を使ってきたのですが、 諸事情によりLeopardへ移行しました。
Leopardでは普通にTerminalではじめからインストールされているemacsが日本語に 対応している、と聞いていたので早速使ってみました。
しかし、何の設定もなしにはうまくいきませんでした。
OSを英語ベースでインストールしていたのが問題なのかもしれません、
主な使用言語を日本語としてインストールすれば、設定なしで使えるのではないかと思います。
書籍等ではそのままで日本語が扱えると記載されています。
テキストファイル中の「ひらがな」「数字」等について、全角から半角に置き換えたい(Java) 2009-02-05
年に一回くらいしか使う必要が生じないのだが、 必要なときに手元になく、いつも過去ソースコードの山をかき分けて探していたので、 ブログにメモしておきます。
パス+ファイル名の文字列からファイル名(ただし拡張子を取り除いた文字列)だけを取り出したい(Bash編) 2009-02-05
images/ というディレクトリ以下に大量の png ファイルがある。 これを画像管理データベースに入れたいのだが、そのときそれぞれの画像に付けるIDを ファイル名から拡張子を取り除いたものを使用したい。
データベース(RDBMS)をもっと簡単に使うためのライブラリ jgadfly(SQLiteJDBC版) 2008-12-03
SQLIteJDB というデータベースを含んだJDBCドライバがあったので、これを機会に、 jgadfly を手直しました。
特徴
- データベース(PureJava版のSQLite)を含んでいるので、jgadfly.jar 単体で、使用できる.
- フラットファイルでデータを管理するにはちょっと手間だが、RDBMSを使うまでもない、というケース(テストやテンポラリのデータ処理など)に便利.
制約
- テーブルのデータタイプは文字列(String)しか扱えません.
- クエリの結果をArrayList
として返すので、大量のデータを返すクエリはOutOfMemoryになります.
※このエントリは書きかけです。
wiki2html ...ウィキペディア(Wikipedia)のデータ(wikitext)をHTMLに変換するツール 2008-12-03
WikipediaのXMLファイル (http://download.wikimedia.org/) から抽出したテキストをHTMLに変換するツール。
※このエントリーは書きかけです。
ウィキペディアコンテンツの活用 XML形式のWikipediaデータからJavaを使って記事だけを取り出す方法 2007-06-15
Wikipediaのコンテンツを活用して自前のアプリケーションを書くために、 今回Javaで処理する方法を調べました。
まず下準備として、 以下のWikimediaのダウンロードページからコンテンツを 入手します。
XML,SQL,StaticHTMLの形式が選択できますが、今回は、XMLデータをダウンロードして それを活用することにします。
StaticHTMLは便利そうですが、データが古いのと、 HTML中にこちらが意図しない情報も含まれていると取り除くのが面倒です。 XMLであれば、直接wiki textで書かれたコンテンツデータを入手できるので、 このwiki textをこちらの都合のよいように変換して使うことができます。
DocBook4.4 のDTDを rng へ変換 2009-01-30
DocBook4.4 で記述されたXML文書を
jing.jar で妥当性検証したかったのだが、
- http://www.oasis-open.org/docbook/xml/ DocBookの各バージョンのスキーマ一覧
上記サイトでは、 DocBook4.4 の rng ファイルは提供されていなかった。
調べてみると、trang.jar を使えば、DTD を rng に変換できることがわかったので、試してみた。 問題なさそう。
Parallels workstation for windows と colinux(parallels) 2008-08-18
Parallels workstation for windows は、VMWareなどと同じいわゆる「仮想マシン環境ソフトウェア」です。
colinuxやandLinuxを使うことで(フリーソフトで)同じことが実現可能ですが、 設定や取り扱いの点でParallels workstationは優れいているので わたしは重宝して使っています。
NASとMacOSX10.4とrsyncとか...バックアップ環境構築試行錯誤(nas) 2008-11-30
いま、災害対策のために、いわゆるコロケーション的な発想で、 社内の重要なデータを遠隔地にミラーするための環境構築をしています。
遠隔地にあるサーバにインターネット経由でコピーする、ということで、 ssh + rsync という組合わせで行こう、というところまではよかったのですが、 社内の実情にあわせて、テストを開始すると問題が多いことがわかってきました。
まず、社内では、NASを使っていて、クライアントはウインドウズの使用が基本。 一部はMacという状況なので、 ウインドウズ中心に組み立てると話が早いです。 しかし、ウインドウズでssh,sshd,rsyncを使うには、Cygwinを使う必要があり、 Cygwinは、NASとのデータやりとりで日本語ファイルで問題があるようです。 (詳しくは調査していないが、以前テストした記憶では、file has vanishedというエラーが出る。)
また、管理上Cygwinなどをわざわざ入れるのが煩わしい,トラブルになったときに対応する人がいない ...という問題もあり、 あらかじめ ssh,sshd,rsyncがインストール済のMacOSXをベースに ミラーバックアップ環境を構築することにしました。
Parallels workstation + Ubuntu 8.10 で解像度を1024x768にする設定方法 2008-11-30
とうとうUbuntuを1024x768の解像度で使える日がきました!
結論はこちら。
普段は開発のメインとして、VineLinux3.2を使っているのだが、
簡単には、Python2.5をインストールできない。
最近は、
GoogleAppEngineの開発をよくしている関係で、Python2.5が必要...
ということで、(Parallels workstationのゲストOS として)
Ubuntu8.04LTを導入して使ってきました。
全体的に非常に気に入っているのですが、
解像度が800x600までしか設定できない。
ネットで調べてみると、
$ sudo displayconfig-gtk
でOK、と書いてあるのですが、Parallels workstation + ubuntu8.04 の 組合わせ環境下では、
FATAL: Error inserting battery...No such device
というエラーが出てしまってうまくいきませんでした。
その他、/etc/X11/xorg.confを直接直して...などいろいろ試したのですが、 やっぱりうまくいきません。
あきらめてそのまま使っていたのですが、 本日 Ubuntu8.10 にアップグレードして、/etc/X11/xorg.conf を 手動修正したところ、あっさり 1024x768 の解像度で使えるようになりました。
NASという製品の調査 2008-11-30
いま、NASの取り扱い説明書の企画を立てている。
SOHOでやっているとNASというのは、IOデータさんやBuffaloさんの製品を真っ先に思い出します。
しかし、調べてみると、NASに特化したOSをWindowsStorageServerとしてマイクロソフトは
リリースしていて、そのOSを採用したNASやファイルサーバをHP(ヒューレットパッカード)やIBMが
販売している。
同じNASなのに何がどう違うんだろう?と調べてみると、 企業におけるNASの利用の仕方が、SOHOやホームユースとは異なることがわかりました。
DocBook V5.0 を書いて妥当性検証する方法 2009-01-30
構造化FrameMaker 相互参照(cross-reference)の作成 2009-01-29
構造化FrameMaker上での相互参照は、かなり簡単に実現できる。
- 参照元となる要素に id 属性を入れておく
- 詳しく調べていないが、おそらく属性名は id とすべきだと思う(どこかで指定できるのかもしれないが)
- 参照先に xref といった要素を置く(おけるようにDTD,EDDを設計)
- xref 要素は、EDD上で CrossReference として定義する必要がある→通常は Container だがそうではなく CrossReference
※注意点
参照先は、すべての要素の id 属性を調べているだけなので、 id の値はドキュメント中でユニークにする必要がある。 chapter, sectionなど異なる要素の id でも重複は許されない。
構造化FrameMaker ... 目次用 XMLのフォーマット 2009-01-29
構造化FrameMaker(Structured)には目次作成機能が付いていますが、それを使わないで、
事前にFrameMakerにXMLインポートするの前段階の処理として目次用のXMLを生成(というか、XSLTを使って変換)
してから、FrameMakerでフォーマットするという方法があります。
その場合、目次項目のパラグラフフォーマットをEDDで指定する方法がわからなかったので調査しました。
構造化FrameMaker グラフィックを取り扱う方法 2009-01-29
構造化FrameMakerでグラフィック(イメージ)を扱う方法。難しくはないがひどく手順が面倒ではある。
構造化FrameMaker の基本的な開発・制作ワークフロー 2009-01-28
ドキュメントを多言語で展開するために、いままでは、 InDesign+XMLを使って対処してきたが、 今度はFrameMaker+XMLの組合せで制作することになった。
FrameMaker(Structured)は、SGML時代から存在しているツールであり、
XMLを使った多言語展開には、InDesignよりずっとうまく対応できる設計になっている。
とはいえ、
ページ数が少なく、レイアウト要求が厳しい場合には、
やはり、InDesign+XMLの方がやりやすいと感じる。
EDDによるスタイルコントロールは、すこし気が重い。
DocbookのXMLから目次情報を抽出する toc.xsl の作成(改良版→番号の追加) 2009-01-28
前回 Docbook で記述されたXML文書から目次情報の抽出をしましたが、 章番号やセクション番号がない状態だったので、今回はそれを追加します。
python/jythonでファイルを一行ずつ読んで処理するには 2008-11-28
python/jython でテキストファイルを読んで処理する場合の記述方法。
Nokia日本での携帯電話端末の販売打ち切り!って(docomo,nokia,nm706i) 2008-11-28
Docomoの請求書に同封されていた案内で あたらしいドコモ携帯では、PROシリーズとしてNokiaE71... などと書いてあったので、 えー NM706i の後継機種はでないんですか! NM705i,NM706iときたんだから、次は、NM707i でしょ... それを期待して、NM706i を買ったのに、 なんてのんきなことを考えていたら、なんと 11月27日付のニュースとして、 「ノキア日本での携帯電話端末販売打ち切り」とのこと。 ちょっとまってよ。
確か、2008年春ごろには、ノキアは日本市場で、シェア10%をとる といったニュースがあったような。 2008年末にはドコモでNM706i以外の新しい種目を出すとか (まあそれがE71だったんだろうが) そんなニュースもあったように記憶している。 いまや、E71さえ発売見通しがたっていないとか。
Docomo Nokia端末に特化したiアプリの開発をしよう!などと考えていただけに ちょっとこれはショックが大きいです。
InDesignで書き出したXML文書の整形 2008-07-17
InDesignで書き出したXMLは改行やスペースが入っていないため、 そのままテキストエディタで編集するには厳しいものがあります。
その場合に便利なJavaのコード。 (jdom.jarを使用します。)
カンマ区切りのテキストを配列にする(Python vs Java)(python,java) 2009-01-26
Pythonでカンマ区切りのテキスト(String)を配列にするには?
DocbookのXMLから目次情報を抽出する toc.xsl の作成 2009-01-26
今回は、Docbookで記述されたXML文書から目次情報だけを抽出してみます。
テストで処理対象としたXML文書は、 こちら(Apache Velocity DocBook Framework ) から入手できる DBFUserGuide.xml を使用します。これは、Docbook4.5を使って記述されています。
Pythonで文字列へのキャスト方法(java,python) 2009-01-25
基本過ぎてわからなかったのでメモ。 数値などを文字列へキャストする方法 (Pythonで)
XMLのマークアップを除去する...XML文書からテキストファイルを作成(XHTMLも可) 2009-01-25
以前、 HTMLのマークアップを除去する...HTML文書からテキストファイルを作成(Javaを使用) というエントリーを書いたのですが、XSLTを使えばもっと簡単に処理できることが判明。
ただし、処理対象になるXML文書は well-formed でないといけない・・・ という意味では、ネット上のHTMLをこれで処理するのは難しい。
Pythonによる日付操作(python,date) 2009-01-23
Pythonによる日付操作のメモ。
Jythonでのファイル読み込みコード 関数版 (Javaスタイル) 2009-01-20
jythonでのファイル読み込みコードの関数版です。
読み込み結果を
そのまま
標準出力しないで、java.util.ArrayListのオブジェクト として返します。
NM706i購入から約2ヶ月経過後の印象→とても気に入りました(nokia,docomo) 2008-11-18
全体的に言って、とても気に入っています。 何がどうという際立った特徴はないのですが、 日本語・英語の入力にしても、操作体系にしても、形状自体にしても、 PCとの接続にしても、なんにしてもとにかく 洗練されていて使いやすいという印象です。
- カメラ・写真の利用がトータルに使いやすい
- 文字入力がとてもグッド!
- キーボードの固さ・大きさが適当
- 液晶が剥き出しで傷が心配だったが大丈夫
- バッテリーの持ちはよいとは言えない
- iモードで使えないページがあった

メモリステックの完全消去方法(WindowsXP+Cygwinを使用) 2009-01-18
オークションでメモリステック(MemoryStick)を処分したのですが、 内容を完全消去する方法がわからなかったので調査しました。
ウェブサイトに残っている不要ページを削除する方法 2009-01-18
大規模なサイトを管理しているとどうしても古いページがサーバに残ってしまうことがあります。
これらの古いページは、
トップページ経由でリンクをたどってアクセスするユーザの目に触れることはありませんが、
Googleなど検索エンジンから直接アクセスするユーザが、
サイト管理者の意図せずして、古いページにアクセスしてしまうことがあります。
今回、これらの古いページをまとめて削除する仕事の依頼を頂いたので、 基本的作業手順をメモしておきます。
作業環境
- WindowXP+cygwinで作業しています。
- LinuxやMacOSXでもほとんど同じ手順で作業できます。
- エクセル(MS-Excel)の代わりにOpenOfficeOrg Calcの使用も可です。
シグノビット(Signo bit)に替芯があることってご存じでしたか? 2008-11-17
ここ半年くらい、筆記具はずっと SignoBit を使っているのですが、 このボールペンに替芯があることを、今日はじめて知りました(びっくり)。 しかもかなりお値段がお得。(芯だけなんだから安いのは当然か)

JavaScriptライブラリ jQuery Corners で角を丸める, IEにも対応(javascript,jquery) 2009-01-08
いままで、 このエントリにあるCSS記述 を使って角を丸めていたのですが、 当然Safari,Firefoxにしか対応していませんでした。
wgetでウェブサイトをまるごとダウンロード 2009-01-08
Webの仕事の打診で、○○のサイトを少しなおしたいんだけど、
サンプル出してください・・・
と言われたときに便利なのが、wget のミラー機能。
Adobe InDesign による多言語マニュアルの制作メモ(Multilingal Publishing) 2008-11-08
ここ1年半くらい断続的に(プログラマの立場で) InDesign + XML + 多言語展開の検討をしてきたのですが、 とうとう研究段階から実際の仕事をすることになりました。
実際にやってみると、経験不足による(混乱・見通しの不透明さ・不安)、 というのはあったものの、InDesing CS2,CS3は、XML経由での多言語展開を するには十分成熟したプラットフォームだと感じました。
Nintendo DSi うごくメモがおもしろすぎる 2009-01-07
Nitendo DSi には無料でダウンロードできる「うごくメモ帳」というソフトがあるのですが、 これがおもしろいです。

せなけいこさんの「ねないこだれだ」風のパラパラアニメ
つくったパラパラアニメを、 はてなの「うごメモシアター」にアップロードできる・コミュニティから星がもらえる、 とかいったソーシャル的なしかけもすばらしいのですが、 うごくメモ帳の制作支援機能自体が良くできています。 オニオンスキン機能やページ差し替え・追加・削除などにより、 パラパラアニメの編集が可能で、かなり本格的な作品が、少ない手間でつくれそう、という印象があります。
作成したアニメを GIFアニメとしてエクスポートできるので、 ブログ用にパラパラアニメイラストで説明する・・・といった用途にちょうどぴったりではないかと思います。
ブログに説明用のイラストを添えるために ワコムのタブレットを使おうとして挫折したことがありますが、 こっちの方がかなり実用的です。
あとは、SDカード経由でしかデータをコピーできないので、それが面倒。 WI-FIがあるので、ネットで飛ばせると楽なんですけど。
Cygwinでnkfを導入、テキストファイルの文字コードをUTF-8に変換するコマンド toutf8 の作成(cygwin,nkf) 2009-01-07
JIS,SJIS,EUC,UTF-8等任意日本語文字コードのテキストファイルをUTF-8に変換するときに 使用するスクリプト。
Mac OS X(Leopard) + Time Capsule + rsyncによる遠隔地ミラーバックアップ(コロケーション)環境の構築 2009-01-07
Time Capsule は、Time Machineのバックアップ用として使われるように デザインされていますが、普通のNAS(Network Attatched Storage)としても 使うことができます。
今回、タイムカプセルとMacMiniを組み合わせて、ファイルサーバを構築した上で、 遠隔地にあるバックアップクライアントから 自動で rsync を使ってミラーバックアップを行う環境を構築しました。 (いわゆるコロケーションです。)
はじめての prototype.js ... 初期化スクリプトをどこに書けばよいのか?(Google AJAX Librariesを使う場合) 2009-01-02
初期化スクリプトをどこに書けばよいのか?
はじめての prototype.js ... 入力内容に応じてHTMLを書き換える 2009-01-02
inputエレメントで入力した内容に応じてHTMLを書き換える
id="target" を埋め込んだ div エレメントの内容を input で入力した内容に 応じてダイナミックに変更します。
はじめての prototype.js ... 要素の絶対位置の計算方法 2009-01-02
要素の絶対位置を計算する。
はじめての prototype.js ... GoogleのAJAX Libraries API 経由で prototype.js を使う(javascript,prototype.js) 2009-01-02
prototype.js の配置の手間を減らす
GoogleのAJAX Libraries API を使えば、prototype.jsをダウンロードして開発中の作業ディレクトリに配置する手間が省けます。
マークダウン(markdown)記法を使ったメモサーバの構築記録 Google App Engine 2008-11-02
過去6年くらいの間にPC,Web上で書いたメモが8000件近くたまっている。
いままでは、自作メモサーバがサーブレット(JavaServlet)だったので、
レンタルサーバを借りて運用してきた。
JavaServletが使えるレンタルサーバは少なく、(ある意味)高い。
ウェブ上でメモを書く・蓄積する・検索する程度の機能なら
PHPでも同じようなことは実現できる。
PHPの使えるレンタルサーバは運用費用が安い。
だから、JavaからPHPに移行したいなぁと思いつつ、 ずるずると時間が経ってしまっていた。
google notebookを使えばいい
ちなみに、メモをネット側で管理したいだけならば、 google notebook というサービスを使えばいいです。
- http://www.google.com/notebook/?hl=ja
へえーボタン...マイトリビア,Open Social なアプリ 2009-01-01
Google-App-Engine-Japan に参加しているのだが・・・
{div:smallnote} このアプリでは、トリビアを投稿したり、他の人が投稿したトリビアに対して へえボタンを押したりする事ができます。また、どんなユーザが自分の投稿し たトリビアに対して「へえ」を何回押したか、グラフで視認する[1]事ができま す。 {div}

...という投稿があった。
おもしろいと思って、 「へーボタン」をGoogleで検索してみたら、 すでにこの手のアプリは結構いろいろあるみたいだ。
HTMLのマークアップを除去する...HTML文書からテキストファイルを作成(Javaを使用) 2007-06-28
HTMLのマークアップをJavaで除去する簡単な方法はないか、と調べてみると、 javax.swing.text.html.HTMLEditorKit.ParserCallback という 標準のJavaのクラスライブラリに含まれているクラスでできることが判明。
関連エントリー
XSLTを使えばもっと簡単に処理できることが判明。ただし、対象となるファイルは well-formed な XML,XHTML。
大規模ウェブサイトで有効期限のあるページを楽に管理する方法...python と BeautifulSoupを利用 2008-10-25
某ホテルのウェブサイトを管理しているウェブマスターから
- キャンペーンページなどで有効期限の過ぎたページを少ない手間で管理するにはどうしたらいいか?
という相談を受けました。
それはまめにエクセル等に記録して管理すればいい話ではないか? とも思いましたが、 管理するページ数が多いと手間暇がかかるので、 スクリプトで一括チェックする方法を提案しました。 今回はそのアイデアとコードの覚え書きです。
Apache経由でSubversionレポジトリにアクセスする設定 2008-04-30
この情報は、 ファーストサーバVPS「プロビジネス20」上での設定記録 です。 他のLinuxサーバでは設定方法が異なる部分があると思います。
(プロビジネス5上でも同様に設定できました。2008-10-23)
余談
さて、先日に引き続き設定をしている。 Subversionを運用しているのだが、突然使えなくなってしまった。 理由はFirewallの設定が有効になったため(のようです)。
Subversionの svnserve が使用するポートに外部のPCからアクセスできないため、 Apache経由でアクセスするように設定しなおすことにしました。
TubroLinuxClient2008 をインストール→Windowsとのマルチブート 2008-10-09
TurbolinuxClient2008をインストールしてみた。
決め手は、オフィシャルにemobileのサポートがあったこと。
その他、「低消費電力技術を強化(サスペンド強化)と説明されている」ことや
後から(TurboLinuxClient2008が気に入った場合に)ATOKや商用フォントを簡単に導入
できることなどから淡い期待をしている。
以前、TurboLinux 10 時代には、サスペンド対応していることを期待して、
購入したが、結局裏切られた苦い思いでがあるため、過剰な期待は禁物だが。
重複行を削除するjythonコード uniq.py 2008-10-06
Linuxには、uniq というコマンドがあり、これは重複した行を削除します。
$ cat sample.txt | sort | uniq
のように使うことで、 テキストファイル中の重複のある行を削除することができます。
しかし、わたしが使っているLinux(Vine)では、どうも uniq がユニコードに 対応していないようで、UTF-8 の文字コードのファイルを uniq を 使って処理しても、うまく重複した行を削除してくれません。
そこで、今回 jython で取り急ぎ uniq コマンドの代わりになる uniq.py というコードを作成しましたので、メモしておきます。 (ただし、これは UTF-8 だけに対応しています。)
該当する文字コードがファイルのどの行に含まれているかを調べるコード(Java) 2008-10-01
XMLを使って、FrameMakerとかInDesignで作業していると、文字コード関係の問題にぶちあたります。 文字コードに問題があって、コード番号がエラーメッセージとして提示されても、 普通にエディタ上で眺めていても問題がどの文字で起きているかわかりません。
たぶん、文字コードが即座に表示できるテキストエディタが世の中にはあると思うのですが、 とりあえず、Javaで指定のコードが出現する行を調べるコードを書きました。
InDesign(CS3) + XMLで多言語展開マニュアルを作成する場合などに便利なツール(XML整形とu2029の変換) 2008-10-01
InDesignには標準でXMLがサポートされていて上手に活用すれば便利なのですが、 いろいろと不便なことも多いです。 今回、InDesign+XMLを使った多言語マニュアルの制作を行うことになったのですが、 その際に、多言語展開を行うベースとなるマニュアルデータを作成する際に使ったツールを 紹介します。
(このエントリーは書きかけです。)
JythonとJava2Dを使って、CD-ROMアイコンを作成 2008-09-29
前回(JythonとJava2Dを使って、すばやくイメージ素材を作成(ただしプログラマ向け)) のコードを利用して、今回CD-ROMアイコンを作成してみました。
完成したCD-ROMアイコン
48x48
32x32
16x16
Windows用アイコンファイル
ミスタードーナツの音楽はオフィシャルサイトで調べられることが判明(iTunesMusicStoreと連動して...) 2008-09-21
聞きたい音楽を見つける方法ってみなさんどうしていますか?
昔は、ラジオで聞いて。それから社会人になってからは、 店頭の視聴コーナーで気に入った曲を見つけていたけど、 最近は、街中や喫茶店で気に入った曲が耳にはいったときに ネットで検索して、iTunesMusicStoreで購入、というパターンです。
わたしは、よくミスタードーナツを利用するのですが(全面禁煙なので)、 気に入った曲を聞き付けると、 いつも必死で歌詞をメモってグーグルで検索して曲を見つけて、 という努力をしていたのですが、 今日調べてみるとなんとミスドのオフィシャルサイトに 何時何分にどの曲がかかっているか、全部掲載されていることを 知りました。
あとその曲からiTuneMusicStore内の該当曲にリンクしておいて いただければもっと助かるのですが...
NM706iを購入しました(docomo,nokia,nm706i) 2008-09-20
10月からはじまるパケホーダイダブルに備えて携帯をもっと活用できるように しようと思い、まずそのためには携帯電話自体を もっと活用したくなる機種に変更しようと夏ごろから検討してきたのですが、 最終的にNM706iの購入に決めました。
コスモマップ(倍速実現マップ 5x5マス)はとても役に立つ...かも知れない 2008-09-14
コスモマップを最近知りました。
Jythonを使ったサイトマップインデックスファイルの作成 2008-09-08
いままではひとつのディレクトリだけを使ってこのサイト(osima.jp)を作成してきたが、 複数のディレクトリを使ったサイトに作り替えたため、sitemap.xml を各ディレクトリに配置し、 それらへのリンクをルートディレクトリにある sitemap.xml でまとめる方法にした。
そのルートに配置するsitemap.xml を生成するjythonコードを書いたので、ここにメモ。
対象とするサブディレクトリの数が少ないので手動で作成してしても手間は知れているのだが、
日付の記述を毎回書き直すのが結構面倒だな、と思いコード化。
Python(またはJython)で引数を取得する方法 2008-09-05
Python,Jythonで引数を取得する方法
Google chrome というブラウザが出た、いよいよマイクロソフトと正面衝突? 2008-09-04
Google ChromeというWebkitベースのブラウザがGoogleから出ました。 実際につかってみて(まだ数時間しか使っていませんが) まず、とにかくPC画面いっぱいにブラウザが使えるのがなによりうれしいです。 それから、作動・表示スピードが速いこと。
Firefoxでも十分速いと感じていたのですが、一度Google Chromeの速さを体験してしまうと もうだめです。Firefoxには戻りたくなくなります。 (もっとも、一般論で言えば、たぶん わたしがつかっているPCの性能が低いゆえに余計にそう感じるのということを 割り引いて考えるべきですが。)
なによりこのブラウザ(Google Chrome)を使っていて感じるのは、 googleの意図です。(のように大島が考えているだけですが。) つまり、インターネット自体がデスクトップになる、という意図が伝わってきます。
マイクロソフトはWindowsVistaに .Net Frameworkを標準搭載して出荷しました。 これこそがWindowsVistaの価値であり、すべての(デスクトップ)ソフトウェアが .NetFrameworkベースになったとき、マイクロソフト帝国が完成します。
しかし、それに対して別の帝国をつくろうとしているのがgoogleであり、 GoogleChrome + GoogleGears(やGoogleAppEngine etc,etc...)なのだと思います。 しかも、Googleにはアンドロイドによるケータイの世界への支配も・・・。 (まあ、MSにもWindowsMobileがあり、それが搭載されたスマートフォンに一日の長があるとは思いますが。)
Jythonでのファイル読み込みコード(Javaスタイル) 2008-09-02
jythonでよく使うコードの覚え書き。
pythonスタイルでファイルを簡単に読む方法もあるのですが、 Javaのやり方の方が慣れているため(私の場合)安心できます。
PDF文書に後からノンブル(ページ番号)を追加する 2008-08-31
手持ちのPDF文書を印刷しようとしたときに、
ページ番号がついてなくて困ったことありませんか?
iText
を使えば、あとから”ペタンペタン”とスタンプを押すように
イメージやテキストを追加することができます。
この機能を利用して、コマンドラインから簡単に
ページ番号をPDF文書に追加する方法を
紹介します。
ここでは、 iTextを簡単に使うために、jythonを使用します。
Winstoneという軽量サーブレットコンテナ...メモリの少ないサーバでも使える(JavaServlet) 2008-08-31
winstoneというサーブレットコンテナがある。 これはすごい。
仮想化技術がでてきたこともあって、レンタルサーバの費用はずいぶん安くなってきたが、 JavaServletを安価に動かせるサーバレンタルというのはあまりない(と思う)。
今年(2008年)はじめに、ファーストサーバさんがプロビジネスシリーズという 仮想サーバをすごい安い値段で(もっともグレードの低いサーバは月額1000円程度)提供開始されたので、 早速契約したのだが、 実施にはサーバリソースの制限が厳しく、とても、tomcatとかjettyが動かせる状態ではない。
...というかそもそもSunのJavaVM自体が起動できるかできないか、という状態。
ただ、このサーバは、gcj系のJavaVMをParallelsのパワーパネル上から 普通にインストールすることができて、これを動かすことはできる。
しかし、winstoneという軽量サーブレットコンテナは動きます。 (といってもデーモンのほとんど停止する必要はありますが) とりあえず、サーブレットをレンタルサーバでできるだけ安く、という場合には ひとつの選択しになります。
商用ソフトPowerX Backup Platinum3.0を使った同期 2008-08-31
以前 unisonという方法でのファイル同期について書きましたが、 商用ソフトを使えば、 もっと簡単に同期することができることがわかりました。
PDF文書を分割する(iText) 2007-04-20
複数のPDFを一つのファイルに結合するとは逆に 複数ページからなるPDF文書を1ページごと別々のファイルに分割保存する方法。
例によって、 iTextのお世話になります。
※ここでは、 iTextを簡単に使うために、jythonを使用します。
※こちらの エントリ(jythonを楽にインストールするにはUbuntu) も参考にしてください。
Java vs Jython iTextを活用してPDFを操作するエントリーの整理をしていて気づいたこと 2008-08-31
前から整理しようと思って手がつけられなかったPDF関係のエントリーの見直しをした。 iTextを使って、PDFを処理するプログラムだが、当初はJavaで書いていたのだが、Jythonで書き直した。
PDFのしおり(ブックマーク)を解析する 2008-08-31
iText にはPDFの"しおり(ブックマーク)"を解析する機能があります。(これは便利)
ここでは、 iTextを簡単に使うために、jythonを使用します。
複数のPDFを一つのファイルに結合する 2006-04-13
単純にPDFファイルを結合したいだけならば、 AcrobatReaderを使うか、pdftkなどのツールを使えばできます。
ここでは、iTextを使ってPDFを結合する方法を紹介します。
また、 iTextを簡単に使うために、jythonを使用します。
MacOSXでは、印刷できるどの書類からもPDF出力できるので便利。 しかし、別々に作成したPDFをひとつのPDFにまとめる処理ができないようなので (できる方法がある?知らないだけかもしれない。) Java(とJython)で 複数のPDFをまとめるコードを書いてみました。
MacOSXにははじめからJavaが用意されていますから...
Firefox,Safariで通用する角を丸めるCSS (IEには非対応) 2008-08-30
以前rico.jsを使ってボックスの角を丸める方法をブログのエントリーに書いたが Firefox,Safari(Webkit)だけの対応でよいのであれば、(最近では) もっと簡単な方法がある。
Python/Jythonコードメモ...コマンドライン引数を得る,OSコマンドの実行,特定の拡張子を持つファイルの列挙など 2006-09-12
jythonでたびたび使用するコードの備忘録。
Makefileの中でワイルドカードを使ってファイルを指定する方法 2008-05-02
カレントディレクトリに複数のXMLファイル(*.xml)があり、 これをHTMLに変換したい。 このときMakeを使って、更新されたファイルだけ変換するようにしたいがどうすればいいか。
前提条件
- 変換コマンドは /bin/toHtml とする( 標準入力からXMLを入れて、標準出力にHTMLが出力される )
- xmlからhtmlに変換するときファイル名は拡張子以外は一致させる foo.xml → foo.html
- XMLファイルはどんどん増えていく
ウインドウズ用アイコンの作成(Windows版のGIMP version2.4を使用) 2007-06-01
ソフトウェアの起動用のアイコンや ウェブサイト用のアイコン(いわゆるfavicon)をつくる場合に ico という拡張子のウインドウズアイコンを作成する必要があります。
いつも使っている画像作成ソフトGIMPで 簡単に作成できることがわかったので、メモしておきます。
JythonとJava2Dを使って、すばやくイメージ素材を作成(ただしプログラマ向け) 2008-08-27
デスクトップ向けのアプリケーションの仕事で最後の仕上げに、 ツールバーのアイコンやプログラムの起動アイコンなどを作成しなければなりません。 アイコンデータをデザイナーさんに頼めると楽なのですが、 そうではない場合、プログラマが作成します。(わたしの場合)
普通はイラストレータなどを使ってつくると思いますが、 マウスでちまちまやるのがわたしは苦手です。 そこで、Java2Dを使って、イメージデータもJavaでつくるという手がありますが、 はっきりいってイメージデータのためだけにJavaでコーディングするのは面倒すぎです。
そこで、Java2Dは使いたい、しかし手間はかけたくない、ということで、jythonとJava2D の 組合わせでイメージデータを生成してみましたので、そのコードをメモしておきます。
いわゆるダブル定額方式の料金体系、「パケホーダイ ダブル」がついに出ました!(ドコモから)(docomo,smartphone) 2008-08-26
ここしばらく、ずっと定額ネット接続できる携帯電話の あれこれを考え続けていたのですが、 パケホーダイダブルが出てしまったので、 ドコモにきまりそうです。
GParted LiveCD を使って parallels workstation のディスクイメージ,パーティションの拡張 2008-01-07
Parallels workstation上のゲストOSのディスク容量が足りなくなったら どうするか?
という2つの方法が考えられる。
参考 diskpart.exe
ウインドウズ標準のツールでもパーティションの拡張は可能。
CD-Rを焼く前にisoイメージファイルを使ってテストする方法 2008-08-08
ローカルのファイルシステム上ではうまく作動するのに、
CD-Rに焼くとうまく作動しない。
そんな場合のひとつの対処方法。
原因がわかればいいのだが、わからない場合、 まずは再現環境をつくらないとトラブルシューティングは難しい。 しかし、トラブルシューティングのたびに、繰り返し CD-Rを焼くのも手間がかかりすぎるので、いい方法はないか?
ext2でフォーマット済の外付USB HDDをWindows/MacOSXで簡単に読み出す方法(は結局ない...orz) 2008-08-18
手元に、ext2でフォーマットした外付USB HDDがあるのだが、 それをLinux環境なしに簡単に読み出す方法はないか? と軽く思い調べたところ、いくつかその用途に使えるツールがあったのだが、 いずれも取り扱いがあまり簡単そうではなかった。
今回の場合継続的にext2をWindows上で扱える必要はなくて、 一時的に、ext2上にあるファイル一式(30G程度)を取り出して使用したかっただけなので、 インストール&設定に時間を使いたくなかった。
結局、Ubuntu8.10のインストールDVDは LiveDVDになっているため、 これを使って起動して、そこから、ext2ファイルをマウントして読み出すのが 一番簡単そうなことが判明。
しかし、作業用ノートPCはUSBポートが2つしかない。 ひとつにコピー元HDD、もうひとつにコピー先のHDDを接続して、コピーをしたいのだが、 ひとつは既に起動用外付DVDドライブに占拠されてしまっている。
(※ちなみに、USBハブがあればそれを使うのが本来一番簡単です。)
NTFSフォーマット済HDDをext3にフォーマットする方法(Linux ubuntu 8.10) 2008-08-18
ubuntuの場合、NTFSフォーマットにも対応しており 接続すると自動的にマウントしてしてしまう。 今回のように、NTFSフォーマット済みディスクをext3フォーマットにしたい場合、 結構やっかいだったので、覚え書きとして記録。
zipで圧縮されたファイルをgzipへ変換する 2008-08-08
客先から支給されるApacheのログファイルがなぜかzipでアーカイブされてくるので、 それを機械的に gzip しなおすスクリプト。 (特殊ケースすぎですみません。)
コード
大量のzip圧縮されたファイルをgzipで圧縮しなおす...というシェルスクリプト。
#!/bin/bash
for zipfile in *.zip
do
echo $zipfile
unzip $zipfile
f=${zipfile%.*}
echo $f
gzip $f
done
※ このスクリプトの処理対象としているzipファイルは、 ひとつのファイルを圧縮しただけのアーカイブであることに注意。 すごく特殊な状況...orz
Trangを使って、DTDを簡単に作成する(FrameMaker,InDesign) 2008-07-17
XMLデータからDTDを作成するには trangを 使用すると簡単に作成できます。 完全に自分が意図したDTDにするには、Trangで得た出力からさらに修正する必要がありますが、 InDesign+XMLで使用するような簡単なXMLを扱う場合は、ほとんどこれで十分です。
※Trang は、構造化FrameMakerのEDD作成のための前処理でDTDを作成するときにとても便利です。
→ 構造化FrameMaker の基本的な開発・制作ワークフロー
JavaとPHPでの時間の取り扱い相互変換方法 2008-07-14
先日Javaで構築したウェブアプリケーションをPHPに移植する仕事がありました。 データはMySQLで管理されていたため、 ロジックとユーザインタフェースだけをつくり直す作業で、問題は少なかった のですが、時間の取り扱いはちょっと悩みました。
しかし、結論としては簡単な方法で相互変換できることがわかったので、 メモしておきます。
最近気に入っている方法→「即決」によるオークション出品 2008-07-14
オークションというのは普通は、出品物の価値を落札者の方々が決めるシステムなので、 「即決」というのが、いまひとつ理解できなくて、即決による出品というのを したことがありませんでした。
落札者都合によるキャンセルに備えたオークション保険があれば... 2008-07-14
先日、ヤフーオークションで、落札者都合によるキャンセルになり 考えたこと。こんなときに対応した保険を用意してくれればなぁ。
InDesign(CS3)でXML書き出ししたときの改行(u2029 = PARAGRAPH SEPARATOR)の取り扱い方法 2008-07-14
InDesignでXML書き出しするときに、改行情報はどうなるのか?の調査。
Plesk使用時のMySQLのadminパスワード(プロビジネス20の場合) 2008-07-13
またまたファーストサーバさんでレンタル中の仮想サーバの話。
MySQLに新規にデータベースを作成しようとしても、
管理者パスワードがわからない。
googleで調べたところ、mysqld_safe --skip-grant-tables を 使うことで、一時的にセキュリティを無効にしておいて 直接パスワードを書き換えてしまう、という方法があることがわかった。
この方法でMySQLにアクセスして調べてみると、 プロビジネス20のMySQLには root というユーザは存在せず そのかわりadminというユーザが設定されていた。 そこで、adminのパスワードを書き換えた。
これで(わたしにとっては)通常通りの方法で、コマンドラインから、 mysqlを扱えるようになったのだが、代わりに、Plesk上で、 ドメイン設定などができなくなってしまった。 おそらく、PleskもMySQLをadminユーザ使用していて、 パスワードを書き換えることで、Pleskが今度はMySQLに アクセスできなくなったらしい。
再びもとのパスワードに戻したいのだが、元のパスワードがもうわからない。 さらにgoogleで検索してみると、
/etc/psa/.psa.shadow
にMySQLのadminパスワードが記述されているとある。 (「plesk mysql パスワード」などでgoogleする。)
このファイルに記載のパスワードに戻して 再度Plesk上のドメイン設定にアクセスしたところ 問題なく使えるようになった。
MySQLの設定はPlesk上で
後からヘルプページを参照していて気づいたのだが、 Pleskでは、MySQLのメンテナンス (ユーザ追加・データベース追加など)は、 Plesk上からGUIにて操作するようになっていた。
コマンドラインから操作することは想定されていないようで、 したがって、adminのパスワードがわからなくてもよい、 ということらしい。 (この辺が、いまひとつPleskが好きになれない。)
レッツノートR6は夏は熱くて使えません(発熱対策が必要) 2008-07-09
外出先でコードを書く機会も多いため、Let's note Rシリーズを愛用している。 最近は、EeePCやHP2133 代表されるいわゆる(低価格)ミニノートが流行っているので Rシリーズ購入検討ユーザの一部は、これらミニノートへ流れるのかな、 危うしRシリーズ?とも思うが、現在のところ低価格みにノートは、 バッテリーの持続時間は切り捨てられているので、自分的にはLet'sNoteRシリーズの 地位は揺るぎない。
しかし最近夏になって困ったことは発熱の問題。 Let's Note R6はファンレスなのでそれが気に入っているが、夏場は熱くなり過ぎて どんどん作動が遅くなり(クロックダウン?) とうとう最後には、自動的にサスペンドしてしまって困っている。
Windows単体での使用ならそんなに発熱しないのかもしれないのだが、 Parallels workstationでゲストOSを起動して、 アクセラレーション=High設定で使っていると、1時間くらいで、 熱々になってしまい、処理速度が異様に遅くなり、最後にサスペンドしてしまう。
R7以降はファンがついているようなので、この機種では、発熱の問題がぎりぎりの 状態に違いない。
後日談
結局「SANWA SUPPLY USBで冷える ノートクーラパッド」を購入しました。
1000円くらいで、買える放熱シートのようなものもあったのですが、 店頭でデモで、ファンつきのアルミ板が冷え冷えになっている (いま考えるとお店はエアコンがガンガンに効いているのだから冷えるのは当然なのだが) のを見て、結局買ってしまいました。
しかし、効果は十分です。 クロックダウンすることなく、長時間使用できるようになりました。
よかった点
- クロックダウンがなく仕事がはかどる
- USBで電源供給なので、取り扱い易い(ノートPCを閉じればファンの回転も止る)
ただし、
- ファンの音が結構うるさい
- 熱が部屋に放出されので部屋が暑くなる(エアコン必須) という副作用もあります。
PHPとJavaServletとの比較(小規模ウェブサイト/ウェブアプリ構築の場合) 2008-07-09
ながらくJavaとServletを使ってウェブアプリケーションを構築してきたのだが、 ついにPHPを使って開発をすることになった。
以前から、PHPは良さそうだと思って、オライリー関係の本を買って眺めたり、 小さなコードをPHPで書いてきたのだが、ある程度まとまったウェブサイトをPHPで 構築するのは今回がはじめて。
実際に構築していると、PHPは驚くほど簡単で痛みが少ないことがわかった。 (オライリ─本のPHP5入門にも pain free と書いてあった...)
- PHPはウェブ構築用に特化しているためJavaのような汎用言語と違って、覚えることが少なく、ウェブ構築時の問題解決が簡単(たいていの問題にストレートな解決策が用意されている)
- PHPは(フレームワークを使わない場合)HTML中に直接PHPコードを入れていくため、ロジックとビューの分離ができない。
以前は、 HTML中にコードを入れるのは保守の点で劣っていると考え、 Javaでウェブサイトを構築する場合でも、 JSPは使用しないで、 Servletでロジックを書いて、テンプレートでHTMLを生成するというやり方が よいと思っていたこともあった。
しかし、最近ではビューをCSSとJavaScriptでコントロールすることが多くなってきているので、 サーバ側で生成するHTMLの役割は、ほとんどビューというより{u:モデルが中心}になり、 ビューを作り出すのは、(クライアントサイドの)JavaScriptで行うようにつくる。 このような作り方であれば、HTML中にPHPコードが混じることに問題を感じない。
むしろ、HTMLの一部をPHPで作り出していくことで非常にはやく開発できる。 小規模なウェブアプリケーションでは、保守すべきコード量も少ないので、 このスピードがはやいというのはかなりのメリットが大きいと思う。 (デザイナーさんとの協調作業や複数人での制作の面ではやはり問題になるとは思いますが)
さらにモデルとかビューとかの話とは関係ないが、 HTML中に埋め込んでいるJavaScriptについては、このJavaScriptコードを PHPを使って、実行時にダイナミックに生成することができる。 これがかなり重宝する。 もしPHPなしでJavaScriptだけで(DOMを駆使して)コーディングしようとすると すごいやっかいなコードをPHPで生成してしまうことで、 シンプルにすることもできる。
もちろん、こういった強力さというのは諸刃の剣で、使いようによっては ひどいことになりますが。
ロジックとビューの分離
ある程度以上の規模のウェブ構築では、 PHPのフレームワークを使うので、たぶん ロジックとビューの分離が問題なくできるのだ思いますが。
mod_ajpによるTomcatとApacheとの連携(ファーストサーバ プロビジネス20の場合) 2008-04-26
ファーストサーバというレンタルサーバ会社から プロビジネスシリーズ という仮想サーバのサービスが出ました。
いままでJavaServlet(Tomcat)などをレンタルサーバで使いたい場合、 最低でも月額1万円くらいは出さないといけない状況でしたが、 このプロシリーズの登場で、サーブレットのアプリケーションも 安価に使うことができるようになりそうです。
プロビジネス20を使って、ApacheとTomcatを連携させたのでその方法をまとめました。
自己責任で
プロビジネスにはPLESKが搭載されていて、PLESK上でTomcatも設定できることを 期待して契約したのですが、実際には使えませんでした。 サポートにも問い合わせたのですが{u:対応していない}との回答。
ただ、PLESKの販売元のページには、アドオンとしてTomcatのモジュールがあるので、 それを個別にインストールできないかと思い問い合わせてみたところ、 これもNGとの回答でした。
PLESKはファースサーバさんにライセンスされているものなので、 ファーストサーバさんがアドオンを購入してセットアップすることは可能だが、 レンタルサーバのユーザがこれを行うことは許可されていない、とのこと。 (やるのであれば、PLESKを自分で購入して、もとからインストールされている PLESKを削除した上で・・・という話でした。)
ということで、プロビジネスでは、 オフィシャルには、 Tomcatはサポートされていないため自己責任で対処してください。
Windowsのための、GCJのクロスコンパイル環境をlinux上に構築する 2008-06-18
GCJでJavaプログラムをコンパイルすることで、 exe単体でJavaのプログラムを配布することができる・・・ ということでクロスコンパイル環境をつくることにしたので、 その環境構築メモです。
GCJ,GCCを使えば、C++からJavaプログラムを使えるので、 過去にJavaで書いた資産をC++で活用することができます。
- http://gcc.gnu.org/onlinedocs/gcc-4.2.2/gcj/Invocation.html#Invocation
データの永続化...画像を含んだデータの保存方法(Java) 2008-06-03
Javaのデスクトッププログラムで、データを保存する場合、 どうしていますか?
StringArrayListクラス...Java5.0 からの Java1.4.2 へのダウングレード 2008-05-28
Java5.0 Tiger 以降では、Generics が導入されて、実際に使ってみるとこれは激しく使いやすい。
そのほか、@Override(アノテーション)やfor文など、
便利な追加機能があり、Java1.4.2から移行したのだが、
最近emobileで常時ネット接続できるようになったので、
ローカルPCでの開発だけでなく、サーバ上で開発する機会が増えてきた。
しかし、使っているサーバ上では、JDK1.4.2を使う必要があり、 Java5.0 での新機能いりのコードがbuildできなくなってしまった...
そこで仕方なく、よく使うコードについては、JDK1.4.2でbuildできるように 書き直しているのだが、 そのとき、次のようなGenericsを使ったコードを書いているときに 使うと(少しは)便利な置き換えクラス(StringArrayList)をここにメモしておきます。
ブラウザの画面サイズの取得(javascript) 2008-05-28
接続してきたブラウザの画面サイズを元にHTMLのレイアウトを調整したい場合に使用するJavaScript。 今回は、textareaを画面サイズに応じて調整したかったので、実装しました。
Java用のちょっとしたMakefile 2008-05-28
普段はAntを使ってjavaをビルドしているが、 ちょっとしたテスト用クラスのコンパイルに役立つMakefile.
Jythonで画像処理 画像のリサイズ(このページは移動しました) 2006-10-14
Javaの持つ画像処理をJythonから利用してみます。 横幅を指定して画像をリサイズできるようにしてみます。
Jythonで画像処理 画像のリサイズへ移動しました。
本に対する付き合い方を考える 2008-05-14
最近、 本田 直之氏の「レバレッジリーディング」や 勝間和代氏の著書「効果が10倍アップする新・知的生産術」 を読んで、自分自身の本に対する付き合い方に思う。
リクエストされたパスの取得方法(Java Servlet) 2008-05-04
markdownのようないわゆるライトウェイトなマークアップ言語を使って ServletにランタイムにテキストからHTMLに変換してやれば、管理が楽になるのではないか... と思い実現方法を調査中...
Java Swingによる簡易ブラウザの作成 2008-03-05
SwingのJEditorPaneを使って簡易ブラウザを 簡単につくることができます。
このブラウザの問題は、HTML3.2レベルしかサポートしておらず 現在のネットに普通に存在しているコンテンツを閲覧するための 十分なツールとはなり得ないことです。
WebkitがAppleからOpenSourceとして提供され、 Adobe AIRやQT4.4で利用できるようになっている のにSwingでは利用できないのは残念。
でも自作のHTMLで書いたヘルプコンテンツの表示とか、 とりあえずテキストだけ表示できればいい! といった場合には重宝します。
ファーストサーバ「プロビジネス」設定記録 2008-04-27
ファーストサーバさんのプロビジネス20というVPS(仮想専用サーバ)をレンタルして設定している。 いままでサーバを一台まるごとレンタルする形からの移行なので 何かと勝手が違う部分があるので忘れないうちに作業内容をメモしておきます。
Jythonをサーバにインストール 2006-02-10
サーバにインストールして使う場合は、--console オプションを使用。
$ java -jar jython_installer-2.2.1.jar --console
出典(インストール)
JavaでPluginを実現する方法(改良版) 2008-04-22
前回 の例では、 プラグインを使う側のクラスに プラグインしたクラス名を知らせる必要がありました。
今回は、その情報をプラグインjar(この例では mycolor.jar)から直接取得できるようにし、 プラグインを使う側は、単にプラグインされたjarファイル名だけを知っていれば プラグインを使えるように変更しました。
JavaでPluginを実現する方法 2008-04-20
プラグイン機構は、 開発時点では、どんな機能が追加されるかわからないとき・・・などに使います。
Javaで実現する方法を整理しました。
サーブレット(java servlet)を使ってPNGイメージを動的に生成する方法 2008-04-16
いま、サーバ上に設置しているドキュメントの一部をリクエストがあった時点で イメージに変換して出力する・・・というプログラムをつくっていのだが、 そのときの基本テクニックのメモ。
細かいことはともかく、 foo.pngという拡張子 png を含むURIがリクエストされたら、 そのファイルを返すのではなく、 ImageRenderer.class のサーブレットが起動して、イメージを生成して 返すというサーブレットプログラムをつくりたい。
口内炎が痛い、痛みを和らげる方法あれこれ...わたしのやり方 2008-04-10
数日前から口内炎になってしまった。
しかも舌の先の部分で、何か食べる・飲むときに必ずあたるため
痛くて何も口にいれる気がしない。
さらに、夜中に激痛のため起きてしまうほど、いままで
口内炎でここまでひどい痛みはなかったのに。
花粉症のため アレジオンという薬を飲み続けているのがいけないのか? と思い調べてみると、副作用として、口内炎が挙っている。 そのせいでなかなか治らないのかもしれない。
あまりに痛くかつ長引くので、いろいろな対策を実験したり 人に聞いたりしてみた。 今回わたしが痛みを和らげる上で効果があったものをメモしてみます。
Bash ... brace expansion ブレース展開 2008-04-02
bashには、複数のファイルを指定する便利な機能がある。
たとえば、
カレントディレクトリに、拡張子(*.jar)ファイルがたくさんある。
このうちのいくつかの jar だけを別のディレクトリにコピーしたい場合。
$ cp {foo,bar}.jar ~/
※foo.jar と bar.jar をホームディレクトリにコピー。
この機能はカレントディレクトリ以外でも使えるので、 とくにMakefile内から使う場合にわたしは重宝しています。
以下のような感じ... copyjars: cp /somewhere/lib/{foo,bar}.jar lib/
Apache Ant を Cygwin(XonWindow3)にインストールした記録 2008-03-31
AntをCygwin(XonWindow3)にインストールした、その記録。
Paralles Workstation を使いはじめて、
Cygwin上(およびWindows上)でJava開発をしないことにしていたので、
新しいPCを購入したとき、意図的にAntをインストールしていなかったのだが、
結局インストールすることにした。
textShape... 指定した矩形範囲に文字列を描画する 自作ライブラリ(Java2D) 2008-03-26
文字を指定した範囲(矩形)に描画するライブラリ。
機能としては、 こちらのエントリーで紹介しているライブラリ painter.jar とかなり近いのですが、 java.awt.Shape のサブクラスにしているため、取り扱いがより簡単になっています。

※このエントリは書きかけです。
矢印を簡単に描画するシェイプの自作(Java2D) 2008-02-15

矢印の描画自体は、矢印を構成する各頂点を 線で結んでいくだけなので、単純です。 (頂点の計算はちょっと面倒かもしれませんが)
とはいえ、何本の矢印を描画する必要がある場合、 都度描画するのは面倒なので、 始点(p0)と終点(p1)だけ指定したら、 矢印を描画するShapeクラスをつくりました。
Javaのデスクトップアプリケーション(Windows向け)で毎回使うコードの整理 2008-03-22
Javaで記述したWindows向けのデスクトップアプリケーションで 毎回コピーして使っているコードを整理しました。
Thunderbirdの迷惑メールフィルタの設定をする 2008-03-22
メールソフトはThunderbirdを使っているのだが、
いままで、迷惑メール判定されたメールを迷惑メールボタンを押すことで、手動削除していた。
(迷惑メールフィルタ設定があるとは知らなかった!)
仕事で使っていて、メールアドレスが変更できないあるメールアドレスでは、
いつも迷惑メールが、大量に届いていて、
その合間に仕事のメールがある、という完全に主客転倒な状態。
はっきりいって、このメールボックスの場合、 処理する時間は、 迷惑メールの除去作業の方の多い。
Java Swingによるドラッグアンドドロップ(drag-and-drop)の実装 2008-03-18
Javaで実装する場合に限らず、一般的にドラッグアンドドロップの処理は、いろいろな要素(処理やメッセージの伝達)が関わってくるのでわかりにくい部分があります。
こちら(Java Swingによるドラッグアンドドロップ(drag-and-drop)の実装) に移動しました。
考え続けるということ 2008-03-14
時間配分記録を付けているのだが...
(時間配分とは、自分が何に時間を使っているか逐一ノートに記録することです...)
しばらく、やってみて、自分は考えている時間が思ってたよりも多い、
ということがわかりました。
つまりPlan-Do-See でいえば、Planの割合が思ったより多いと。
アウトプットを増やしたかったので、
もっと多くの時間を実行(Do)に割けないか、と思い
ノートにアイデアを書く時間を減らすことにしました。
...その結果起こったこと。
Markdown記法をJavaで扱いたい...Scripting for the Java と showdownを組み合わせる 2008-03-12
軽量マークアップ言語のデファクトスタンダードと言えば、どうやら
markdownらしい。
markdownは、さまざまなウェブアプリケーション、ブログライティングツールに
組み込まれているようですが、
Windows上で扱えるツールはあまりないようです。
ちょっとしたメモをmarkdown記法で書きたいときに、
メモ帳(notepad.exe)なみに簡単に扱えて、結果を即座に確認できる
ツールがないかと思いましたが、
ネットで見つけられなかったので、自作しました。(自作中です。)
データベース(RDBMS)をもっと簡単に使うためのライブラリ jgadfly(h2database版) 2007-11-10
Javaの RDBMSを簡単に扱うためのライブラリです。
※このエントリは書きかけです。
はじめての Adobe Flex SDK 3 , 3D風メニューの作成(air,flex) 2008-03-06
今回は、3D風メニューをFlashで実現してほしい、 という依頼があり挑戦しました。
FlexSDKをインストール方法は、 こちら(Flex SDK 3インストール)。
Linux(vine3.2) + JDK1.6 上で日本語表示できるようにする設定(font,java) 2008-03-05
いままで、JDK1.4.2を使ってきたが、とうとう、最新のJDK1.6に移行することにした。 でも、Javaをそのままインストールしただけでは、 vine3.2では日本語フォントが表示できない。
いろいろ調べてやってみたところ、以下の手順でうまく 日本語表示できるようになった。
PCの次にくるもの 2008-03-05
現在取り組んでいるプロジェクトの成果をデモするための 携帯端末をどれにしたらいいのか、検討したので、 その成果のまとめ。
はじめての Adobe AIR and Flex SDK 3 , HTMLLoaderを使って簡易ブラウザをつくる 2008-03-04
わたしが、Flexを使いたい一番の理由は、Webkitが入っているから。
・・・ということで早速ブラウザをどうすれば作れるか試しました。
基本的な部分はとても簡単にできます。
はじめての Adobe AIR and Flex SDK 3 , お約束のHelloWorld 2008-03-04
まずはFlexでの開発の流れをつかむため、お約束の ハローワールドを書いてみます。
FlexSDKをインストール方法は、 こちら(Flex SDK 3インストール)。
はじめての Adobe AIR and Flex SDK 3 , Flex SDK3のインストール(air,flex) 2008-03-04
FlashMXでActionScriptはかなり書いたが、 それ以来ご無沙汰していたFlashで開発をすることに。
HyperEstraier 全文検索の導入ログ 2007-12-07
個人的なメモがたまってきたのと、 ウェブに公開しているブログの検索をローカルで 簡単にできる方法を探していて、 HyperEstraier に行き着く。
標準のパッケージでは、検索インタフェースがCGI(Web用) しかなく、apacheなどを動かさないといけないので、 (私の場合)困った...と思ったのだが、 Javaバインディングが入っていて、 ちょっとコードを書けば済む話だった。すばらしい。
モバイルノートパソコンについての個人的考察...Let's note R6 2008-02-26
Let's note R4 ,Let's note T5, Let's note R6...ということで ここ数年で仕事用のPCはパナソニックのレッツノートが3台続くことに なりました。
はじめてのInDesign CS3 JavaScript,ちょっとしたテクニックあれこれ 2008-02-25
InDesign CS3 でJavaScriptを使って自動組版する場合に 毎回使うちょっとしたテクニックを整理しました。
Flashコンテンツのコピーを防ぐ(コピープロテクト)USBメモリを使った方法 2008-02-24
先日、 {u:Flashで作成した製品PR用のコンテンツ(swf)をUSBメモリを使ってコピープロテクトをしたい} という相談がありました。
普通、FlashコンテンツはCD-Rなどで配ることが多いので、 その手のCD-Rで実現できるコピープロテクトツールを使うことになると 思うのですが、今回の場合、諸事情により UDRW Technology G3という技術を使った USBメモリを使って実現してくれ、 という話でした。
はじめてのInDesign CS3 JavaScript 段落スタイルの作成と設定(テキストフレーム) 2008-02-22
InDesignで組版するなら、当然見た目への配慮が必要でしょう。 今回は段落スタイルのJavaScriptからの設定をやってみます。
六角形データをXML形式に変換する(honeycombDrawing.jar + n2io.jar)(tool) 2008-02-21
N2基本プログラム(商用ソフトウェア) で作成したデータ(拡張子に nn5 がついたデータ) を読み込んでXMLに変換します。
今回は、このデータをInDesign に読み込んで、自動組版により 小冊子をつくる予定なので、XMLデータ内に二層までの六角形の 位置情報を埋め込みます。 (honeycombDrawing.jarこちらを参照を使って計算します。)
注意点
基準となる六角形キャンバス描画サイズは、honeycomb 要素の width,height属性 に書き出します。
※このエントリは書きかけです。
はじめてのInDesign CS3 JavaScript, カラー(スウォッチ)の作成と利用および基本図形の追加 2008-02-21
InDesignでは、単に文字やイラスト・イメージの配置だけでなく、 四角形や多角形・楕円などを直接配置できます。 これをJavaScriptから操作するにはどうすればいいのか? また、それらの図形オブジェクトの色はどうやって指定するのか?
シートコンポーネントの自作(Java Swing)(java,swing) 2008-02-20
タブをクリックすると上部から出現するコンポーネントの自作。
こちらに移動しました。
Subversion vs Time Machine ファイル管理の悩み 2008-02-20
先日、客先で雑談していたところ、
FTPサーバに置いていた大事なファイルを誤って消しちゃって たいへんな目にあった・・・こういうときなんかいい方法ないの? というお話をうかがいました。
ポイントを整理すると、
- 大容量のFTPサーバに大事なファイルを保存して管理している
- 人為的なミスでFTPサーバ上の大事なファイルを削除してしまうことがある ということを防ぎたいとのこと。
FTPサーバ自体の単純なバックアップ(ミラーリング)は行っているのだが、 あくまでミラーしているだけなので、 大事なファイルを消してしまった、ということにだれも気づかないままに、 次のバックアップを行ってしまうと、誤って削除されたデータは永遠に 入手できなくなる...
rsync
良く考えてみると、差分バックアップを頻繁にしておけば いいという話かも...
はじめてのInDesign CS3 JavaScript, テーブルの作成(その3 ヘッダを追加) 2008-02-18
InDesignのテーブルにはheaderRowという概念があるので、 myTableWithHeader.jsx に、それを追加してみました。 おそらくは、テーブルがページをまたいだ場合は、ヘッダが自動的に付加される とか?そういううれしい機能があるのではないかと。
はじめてのInDesign CS3 JavaScript, テーブルの作成2(セルのマージテスト) 2008-02-16
前回は、
単純にページにぴったりサイズのテーブルをつくっただけですが、
今回は、セル結合に挑戦します。テーブルを扱うには避けて通れない課題。
はじめてのInDesign CS3 JavaScript, テーブルの作成(adobe,indesign) 2008-02-16
マニュアル制作にInDesignを使うと必ずテーブルが出てきます。
スクリプトを使ったテーブルの扱いは、一般的にいってかなり面倒ですが、
プログラマでない人たちは、テーブルというとエクセルなどで簡単に作れるから・・・
(Scriptでも大した大変じゃないでしょ)くらいに考えているらしく、
苦労が報われにくいので、避けてきたのだが、いよいよ挑戦。
InDesignのドキュメントでは、HTMLのテーブル記述がそのまま取り込めるとか、 XMLで構築したテーブル記述をconvertElementToTable()メソッドを使って、 テーブル化する例が載っているのだが、 素直に、0からJavaScriptでテーブルを生成する例が見つからなかった。
ネットなどで情報を収集しつつできたコード。
はじめてのInDesign CS3 JavaScript お約束の"HelloWorld" 2008-02-15
InDesign(CS3)は、JavaScriptで、ページを記述していくことができます。
これは、
ちょうどHTMLで DOM プログラミングしているのと似ています。
ただし、DOM(ドキュメントオブジェクトモデル)がInDesign用にデザインされているので、
W3CのDOMとは異なります。
基本的な考え方が似ているので、学習は楽ですが、
InDesign自体が商業印刷用のDTPソフトなのでDOMもその分複雑です。
(という意味では、アウトラインの理解が楽、ということにすぎなくて、
実際には膨大なAPIの把握が必要なので、実際に仕事に使える
スクリプトを書くには、かなりの茨の道が予想されそうです。)
日付表示を英語圏ブログサイト風にしたい...(Java) 2008-02-14
些細なことですが、英語圏の日付表記に直してみました。 その際使用したコードをメモ。
六角形にテキストを描画する( honeycombDrawing.jar + painter.jar ) 2007-12-12
N2という思考法 で使用されている六角形形式を描画するための ライブラリ(honeycombDrawing.jar)の活用例です。
honeycombDrawing.jarでは六角形は描画されますが、テキストは描画されません。
しかし、honeycombDrawing.jarに含まれている
BoxTextLocationCalcUtil クラス
を使えば、テキスト描画位置は計算できるので、
これと、painter.jar を使って、
六角形内にテキストを描画します。
※このエントリは書きかけです。
六角形描画用API( honeycombDrawing.jar ) 2007-12-10
N2という思考法
で使用されている
六角形形式を
自分で描画して使用するためのJavaライブラリです。
一層と二層に対応しています。
※このエントリーは書きかけです。
マウスカーソル位置の単語を自動選択してハイライトするJEditorPane その2(改良版)(swing) 2008-02-05

前回の改良版。
前回は、ハイライトの描画をGlassPaneを使って行っていたが、 それを直接 JEditorPane に描画する方法に改良。
この方法では、 GlassPaneのことを気にしなくていい(GlassPaneはJFrameかJAppletにしかない) のが利点です。
GlassPaneは何か別の目的...たとえば、DragAndDropの描画に使っている場合
など、自由にコントロールできないときがあります。
そんな場合でも、JEditorPane 内でハイライト描画も完結して記述していれば、
問題ありません。
Linuxマシンの時刻を合わせる方法 (Linux+Parallels)(date,linux,parallels) 2008-02-05
Parallels workstation の サスペンド機能は非常に便利なのだが、 ゲストOSの時計が狂ってしまうのが問題。
とりあえず、以下のコマンドで時刻を合わせられる。
マウスカーソル位置の単語を自動選択してハイライトするJEditorPane 2008-02-04
JEditorPaneは、簡易HTMLブラウザとして使うことができます。 JEditorPane上に表示されている文字列をコピーして使いたいのですが、 いちいちマウスで該当する文字列を選択させたくなかったので、 マウスを該当の単語の上に重ねるだけで、単語を選択したように 見せかける機能を GlassPaneの機能を使って実現しました。
解像度の変更 1280x800 (Parallels 2.2 for workstation + Vine3.2/4.1) 2007-11-27
1280x800の解像度のディスプレイのノートパソコンに移行するため、 ゲストOSとして使用しているVineLinux3.2/4.1 のXWindow解像度を設定し直した。
今までは、1024x768という普通サイズのディスプレイだったので、
ParallelsにゲストOSとしてVineLinux インストール時に設定したまま使っていて
解像度について意識したことはなかった。
だから、
設定は面倒かなぁと思って移行を先伸ばしにしていたのだが、
実際にやってみると、
とても簡単だった。
USBメモリの活用、USBメモリをNTFSでフォーマットする方法 2008-01-23
FAT32では、ひとつのファイルでは4Gを越えられない、という制限がある。 普通は問題にならないが、たとえば、 仮想PC(VirtualBox,Parallels,VMWareなど) のイメージをUSBメモリで管理するというような場合は、 4Gを越えてしまう。
そこで、4Gの制限がないNTFSでフォーマットしたいのだが、 USBメモリはデフォルトでFAT32でしかフォーマットできないように 設定されている。
Javaで文字コードを調べる... 全角スペース(ideographics space)を半角スペースに置き換える方法 2008-01-21
テキストデータ中に含まれる全角スペースを半角スペースに置き換えるプログラム(java)を書くことになった。
ちなみに、全角スペースという用語は日本だけしか通用しないらしい。 ユニコード(unicode)的世界では、ideographics space と呼ばれているらしい。
painter... 指定した矩形範囲に文字列を描画する 自作ライブラリ(Java2D) 2007-11-20
文字を指定した範囲(矩形)に描画するライブラリ。
マルチラインラベル(複数行を描画するLabel)としても使える。
指定範囲の中で、 そろえる位置を指定可能です。
- 水平方向では、右(right)・中央(center)・左(left)
- 垂直方向では、上(top)・中央(middle)・下(bottom)

※このエントリは書きかけです。
円グラフを描画するJava2Dライブラリ(java2d) 2007-11-20
普通、円グラフと言えば、複数の項目があり、その割合を表現するグラフですが、
今回は、指定した一つの項目の全体に占める割合だけを表現したい、
というケースで使用した。
既存のライブラリ(JFreeChartなど)や表計算ソフトでは、
このような円グラフの作り方がわからなかったので、
Java2D+jythonで画像を生成するコードを書きました。
subversionのレポジトリを新規に作成する 2007-11-19
Parallelsを導入して、 複数のゲストOSを使うようにしたため、 あちこちでsubversionのレポジトリを 作りなおす必要が...面倒なのでメモしておきます。
Parallels workstation のゲストOS(Linux)にディスクを追加する方法 2007-11-19
Parallels workstation でハードディスクを後から追加する方法。
ホストOSのハードディスク容量に余裕がある場合は、 あらかじめ大きめにゲストOS用HDDイメージを確保しておけますが、 私の場合、あまり余裕がないので、 ゲストOS用HDDイメージのサイズもぎりぎりの大きさにしていました。
それが災いしてあとからHDDを追加しないといけないハメに...
足りない場合の別の対処方法
容量が足りない場合は、HDDイメージを追加する以外にも 既存のHDDイメージを拡張する方法があります。
emobileのダイヤルアップ接続を使ってParallels Workstation for Windows のゲストOS(Linux)からネット接続する方法 2008-01-14
お正月に「ウェブ時代をゆく」という梅田望夫氏の本に触発されて、
今年は、コードやコンテンツを向こう側(ネット側)に移そうと決意。
その第一段としてまずは、
外出先でもネット接続できる環境を、ということでイーモバイル(emobile)に契約。
早速、Parallels 上のゲストOSからネットに接続しようとしたのだが、
これが簡単にできないことが判明!
いろいろ調べて結論としては、 以下のページの記述にある通りにやったところうまくいった。
わたしがうまくいった方法を以下にメモ。
Parallels Desktop for Mac
この記事は、Mac版のパラレルでないので注意。 Windows版のParallelsは日本語版がないからか、 あまりネットでも情報がなくて苦労しました。
やや複雑な文字列の置き換え java.util.regex 2007-11-10
HTMLやXML文書中の特定エレメントだけを対象にして、 文字列置き換え処理をしなければいけない、 という仕事に直面しているのだが、 正規表現を使った置き換えプログラムを何度も書くことになったので、ここに記録。
Parallels workstation for Windows と colinux/andLinux どっちがいいか?(parallels,colinux) 2008-01-09
日常的な仕事はほとんどLinux上で済ませているのだが、 お客さんとのやりとりで、どうしてもWindowsが必要。 (納品するウェブサイトの作動確認にIEでの作動確認が必要、 とか、MS-Excelで編集してくれという条件付きのファイルを 受け取るとか)
そこで、WindowsとLinuxを同時に使う必要があるのだが、 マシンを2台使いたくはないし、そもそもWindows/Linuxの間で 頻繁にファイルのやりとりはあるし、 それから何より外出先でPCを使うことも多いから、 ノートパソコンを使っている。
このような状態で、どうしたらいいのか、ここ数年いろいろな 方法を試してきたが、ついに、 Parallels desktop for windows に落ち着いた。
はじめは、2台のPCを使い分けていて、それから、cygwinで 済ませようとして、さらにcolinuxになり、 最後にParallelsという具合。
Parallelsは、2006年ごろには、製品を出していたと思うのだが、 出てすぐ導入できなかったのが今となっては残念。 ただ、それまでに、まだMSに買収されるまえのVirtualPCを購入して 使っていたけど、納得行かなかったなど、仮想化技術には、 不信感があったので、ここまで導入が遅れてしまった。
ソースネクストのウィルスセキュリティzeroとCygwinやAstecXは同時に使えないようだ 2007-11-01
仕事の関係上、テスト的にソフトウェアをインストールしたり、ファイルを交換する機会が増えてきたので、ウィルスソフトウェアを導入した。
しかし...
Cygwinでtelnetを使ってcolinuxに接続すると、セグメンテーションフォルトになるし、
ASTEC-Xでは、XDMCP画面が出なくなってしまった。
ネットワークを使った操作になるので、こういう事態は想定していたが、
ウィルスセキュリティソフトの方を設定することで、回避可能と考えていたが、
どうもダメっぽい。
別のウィルスソフトウェアを導入するしかないな。
構造エラーはないはずなのにXML書き出しすると構造エラーが出る場合(FrameMaker7.0)...結論はコンディショナルのしわざ 2007-10-30
FrameMakerデータをXML形式で保存すると、構造エラーが出る。 FrameMaker上では、構造図を見てもエラーはない(赤く表示されている部分はない)し、 メニューから 【エレメント-検証】を使用してもエラーは報告されない。 なにが問題なのだろうか?
などのオブジェクトの配列を作る必要がある 2005-03-11
通常jython内では、String[]など使わないで、ArrayListなどで配列の処理は、済ませていくのだが、 JavaのAPIを利用する場合は、String[]配列を使わざる得ないことがある。
そんなときは、jarray を使います。
ASTEC-XやCygwinXで Linux のフォントパスを有効にする方法 2007-10-13
ASTEC-XやCygwinXでは、フォントパスを指定することで、 Linuxのフォントを使うことができる。 (ここでは、colinux+vine3.2という環境で設定しています。)
そのとき必要な設定のメモ。
colinuxとウインドウズのファイル共有 2007-05-09
ウインドウズ側からLinuxのファイルシステムにネットワークドライブを割り当てた状態で、
アクセスしたい場合、sambaを使うのが一番簡単なようだ。
Webdavを使う方法もあるが、両方やってみた結果、sambaの方がずっと簡単に設定できた。
スライドするパネルの自作(swing) 2007-09-26
JSplitPaneに近いのだが、コンポーネントの右側にマウスでドラッグすると スライドしながら出てくるサブコンポーネントを配置できるパネル。
デフォルトの状態(サブコンポーネントは右側に隠れている)

スライドバーを中央までドラッグしたところ

JSplitPaneでは、見た目のカスタマイズや振る舞いのカスタマイズが 難しいので(わたしにとっては)思いきって自作してみました。
現在のところ、サブコンポーネントを配置できるのは右側だけですが、 これを改良して左側にも配置できるようにする予定。
※このエントリは書きかけです。
今月作成されたファイルだけを取り出したい(bash,awk,date) 2007-09-20
apacheやtomcatのログファイルのように(設定にもよると思いますが)ファイル名自体に日付情報を 含めている場合は、特定の期間のログファイルだけを取り出すのは簡単だと思います。
たとえば2007年9月のファイルだけリストアップする場合...
$ ls | grep 2007-09
lftpを起動中にローカルでコマンドを実行したい 2007-09-12
lftp起動中に Ctrl+Z してローカルで作業しようと思ってもできないので、 不便だなぁと思っていたら、! というコマンドを使えばいいことが判明。
! を入力すると、サブシェルが起動してローカルで操作できるようになる。 操作が完了したら、exit と入力してやればサブシェルが終了して、lftpのプロンプトに戻る。
詳しくは、lftp > help ! にて。 (こちらの環境では、あんまり詳しいヘルプは出なかったけど)
subversion最新版のソースからのインストール 2007-09-05
VineLinux(3.2/4.1)では最新のSubversionがAPTで 導入できないので、不便。 そこで自分でソースからインストールすることにした。
普通は apacheと連携使用できるようにインストールすることが多いと思いますが、 今回はsubversion単体で使う形でのインストールなので、かなり簡単です。
FrameMakerにインポートしたXMLデータ文字化け対処方法 2007-08-22
たとえば、ラテン文字のチルダ付aなどを含んだXMLデータ(UTF-8)を FrameMaker7.xにインポートすると文字化けが発生してしまう。
FrameMaker7.xでは、ユニコードを直接扱わないで、 各言語ごとの文字エンコードを使っているため、 たとえば、XMLデータがUTF-8でエンコードされたいた場合、FrameMakerに インポート時に文字の変換が行われ、 この時に文字化けが発生するようです。(あくまで推測ですが)
ちなみに、FrameMaker8では、FrameMaker自体がユニコードを 扱うため、インポート時に文字の変換が行われないため、 この手の文字化けが発生しないようです。
jakarta-POIを使ってエクセルデータを生成したら文字化け(poi,java,unicode) 2007-08-17
2009-08-17 追記
最新のPOI 3.2(poi-bin-3.2-FINAL-20081019) を本日使ったところ、setEncoding() メソッドはなくなっていました。 どうやらsetEncoding()でエンコードを指定しなくても日本語が普通に使えるようです。
POI を使えば(CSVを経由して処理する場合と違って) 文字コードのことを気にしなくて済む、と思い込んでいたのだが、 それは、既存のエクセルデータを読み取る場合の話で、エクセルデータを生成する場合は、 明示的にエンコードを指定してやらないと、 文字化けしてしまうことが判明。
記述自体は簡単。
HSSFCell cell=...
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
のようにセルにエンコードを指定してやればよい。
DreamWeaverでファイルを同期するとタイムスタンプが9時間ずれる 2007-08-04
DreamWeaverMX2004でFTPを使って、ファイルを同期させると、 ファイルのタイムスタンプが9時間前になってしまう、という問題が発覚。
DreamWeaver8 で同じことをした場合、問題がないため、 DreamWeaverMX2004に依存した問題かと思ったが、いろいろ調べてみると、 結局 FTPサーバ側の設定の問題だったようだ。 (でも、DreamWeaver8では問題ないのはなぜ?)
jarにリソースファイルを含める方法、それをプログラムから使う方法(Java,resource,jar) 2006-04-18
一般向けに配布するプログラムを作る場合、 プログラム中で使用する画像やファイルをjarに含めておくと ユーザにとっては取り扱いが非常に楽になります。 (jar一個をコピーするだけで済みます)
開発者の方は、jarにリソースを含めたり、含めたリソースからデータを読み出す コードを書かないといけないので、多少負担が増えます。
Inno Setup のセットアップ設定ファイルにJREのファイルを追加(installer,java) 2007-07-24
InnoSetupを使えば、Javaで記述したJavaVMを必要とする プログラム一式をJavaVM込みで配布することができる。 ファイルサイズさえ気にしなければ、 Javaで記述されたプログラムであることを意識させないで配布することが できます。
InnoSetup
では、foo.iss ファイルの[Files]セクションに
インストールするファイルを指定するのだが、
指定のディレクトリ以下全部を追加、といった記述はできないようです。
(知らないだけ?)
[Files]セクションに単純にインストール対象ファイルを列挙すれば いいので、話は簡単なのだが、JREを丸ごと含めるような 長い記述となると、手作業では無理。
そこで以下のようなJRE以下のファイルを列挙して、 InnoSetupの iss ファイルの[Files]セクション記述形式で、 出力する jython スクリプトを用意して使っています。
玄箱でp7zipを使う 2007-07-20
p7zip は、普通のzipより高圧縮できるzip形式のアーカイバーらしい。
玄箱にはzipコマンドがインストールされていなかったので、 p7zipを使ってみることにした。
まずはソースからインストール。
(玄箱に開発環境をインストールするにはこちら)
入手したアーカイブ p7zip4.49src_all.tar.bz2 を以下のように 展開してインストール。
$ tar jxf p7zip_4.49_src_all.tar.bz2
$ cd p7zip_4.49
$ make
$ cp bin/7za ~/bin
$ chmod 777 ~/bin/7za
$ which 7za
使い方は、たとえば、./foobar 以下全部をzipアーカイブにしたい場合は、
$ 7za a foobar.zip ./foobar
- a ...追加コマンド
玄箱に開発環境をインストールする(kurobox) 2007-07-20
p7zip というツールが使いたくなり、玄箱でソースから buildしようとしたが、そもそもmakeがないと言われる。
調べると開発環境は、 デフォルトでは含まれていない。 付属のCD-ROM内のbinaryフォルダを
/mnt/share/CD-ROM/binary にコピーして、
以下のシェルスクリプトでインストールできるとのこと。
for filename in /mnt/share/CD-ROM/binary/*.tar.gz
do
tar vzxf $filename -C /
done
$ which make
/usr/bin/make
完了。
USBメモリの活用した複数マシンでのデータ一元管理方法 その2 2007-07-19
前回は、U3のメールソフト運用が気に入っている話でしたが、 わたしがUSBメモリを活用しているのは、実は subversion(とunison)がメインです。
U3のUSBメモリを使うようになって、日常的にUSBメモリを使うし、 持ち歩くことになったので、 当然開発中のコードもここに入れてシンクロできないか、という発想になりました。
subversionはバージョン管理ソフトですが、 複数のPCで使用するファイルを同期するのに使えます。 それぞれのPCで適当なタイミングで変更をかけてしまっても、 subversionが上手に同期の面倒を見てくれるので、 (扱うデータが主にテキストファイルの場合)これは重宝します。
subversionというと普通はサーバにインストールして・・・というイメージがありますが、 USBメモリ上にレポジトリをつくり運用する、というのもありです。
USBを抜き刺しするたびに svnserve の起動・停止を行わないといけないのが ちょっと面倒ですが、サーバにsubversionを置いている場合と違い、 USBメモリさえ持ち歩いておけば、すぐに、レポジトリにアクセスして作業を 開始できる小回りの良さがグッドです。
USBメモリの活用した複数マシンでのデータ一元管理方法 その1 2007-07-18
U3というUSBの規格を知って実際に購入したのが2007年2月のこと。
今では、USBメモリなしでは考えられない状況です。
もともとのきっかけは、新しいPCを導入したこと。 仕事柄一年に一回くらいの割合で、環境の移行をすることになるのだが、 とうとうそれが面倒になってきた。 そんな状況で何かいいツールはないかと調べていて見つけたのが、U3という規格。
U3というUSBメモリの規格は、USBメモリ内にデータだけでなくアプリケーションも インストールできるので、USBメモリだけ持ち歩いていれば、 (そこにインストールしているソフトウェアに限っていえば) 自分の普段の環境でどのPCでも作業できることになる。
出張のときにキンコーズで借りたPCで、メール連絡したり、 いつも使っているツールで片付ける、ということも可能だと思う。 (セキュリティ面では不安な気持になりますが)
もともとはそういうU3のコンセプトに感動して導入したのですが、 半年たった今現在、実際にそのコンセプト通りに使っているのは、 メール(thunderbird)だけです。
FirefoxやOffice(OpenOfficeOrg)、それから画像管理ソフト(HP Photosmart Essential U3) などを使おうと思って実際に試したのですが、結局使わなくなってしまいました。
OL要素 1以外から数えたい場合 start属性を使え! 2007-07-15
単に属性 start を指定すればよい。 たとえば、10から数えたい場合...
<ol start="10">
<li> item 10
<li> item 11
<li> item 12
<li> item 13
<li> item 14
<li> item 15
</ol>
検索結果を表示する場合で、 量が多いので、10件ずつ区切って表示する場合 に便利な記述方法。
psやepsからテキスト情報を抜き出す方法(postscript,eps) 2007-07-13
日本語マニュアルを元にして英語マニュアルを作成するために epsデータからテキストを抜き出す方法を調査。
ps(Post Script)やeps(Encapsulated Post Script)は、それ自体はテキストファイルなので、 文字を抜き出すことは可能。 ただこちらの意図したように抜き出すのは、一筋縄ではいかないようです。
namazuは、psファイルもインデックス対象に入れられるので、 psをプレーンテキストに変換するフィルタがあると思って 調べてみると、postscript.pl というフィルタが用意されていました。
しかし、postscript.pl は、内部で、ps2ascii または ps2text を 呼び出しているだけなので、結局ps2ascii か ps2text が ps からテキスト情報を抜き出している核になるプログラムということ。
Unison...subversionとの違い 2007-07-07
今までsubversionを使って異なるPCで同時に更新していくファイル群を 同期させていたのだが、Unisonというツールに切り替えてみた。
テスト段階ではなかなかグッドだと思ったのだが、 コンフリクトの扱いがsubversionとは違った。
subversionでは、ファイルのタイムスタンプが異なっても、 ファイルの内容が同じなら同一ファイルと見なしてくれるのだが、 Unisonでは、ファイルのタイムスタンプが異なれば 異なるファイルとして扱うようなのだ。
競合が起きたときの解決オプションとして、いつも ファイルのタイムスタンプが新しい方を優先( -prefer newer )、 というオプションにしてしまうと問題が起きる。
でも、結局のところ、このことに注意して、同期対象のファイル群を はじめにコピーするときに タイムスタンプを維持するようにしておけば問題ないのかな。
unison...複数のマシンでファイルを同期したい場合(unison,usb) 2007-07-06
複数のマシンで、ファイルを同期するためのひとつの方法としては、 subversionがありますが、 それを使うには、大掛かりすぎる場合
unisonを使うという方法があります。
UNISON以外のもっと簡単な同期方法
Javaでjarに詰め込んでおいたHTMLファイルを表示する(イメージも扱う) 2007-07-04
Javaで書いたプログラムにヘルプをつける場合に、 そのヘルプコンテンツをHTMLで用意することがあります。
そのような場合、ヘルプ用HTMLコンテンツやそこからリンクしているイラストを すべて、jarに詰め込んでおいて プログラムから使いたくなりますが、そのためには、 ちょっとしたコツがいるので、整理しておきます。
Wiki記法で記述されたテキストをプレーンテキストに変換する(PEAR Text_Wiki) 2007-06-28
Wiki記法で書かれたテキストをプレーンテキストに変換する方法。
単に、PEARの Text_Wiki モジュールで、{strong:xhtml} の代りに {strong:plain} を指定すればOK。
別の方法としては、xhtml に変換したあとに、 HTMLタグを除去する方法もある。
PHP5のウインドウズへのインストール 2007-06-26
WindowsへのPHPのインストールは、Linuxのように apt-get ... で簡単に インストールできなさそうだったので、避けてきたのだが、 結局インストールすることにした。
MacOSXにPHP5を導入したい 2007-06-23
MacOSX10.4では現在のところ PHPのバージョンは4。 PEARのText_Wikiモジュールが使えないなど不便があったので、PHP5を導入した。
MediaWiki記法で記述されたテキストをHTMLに変換する(PEAR TextWikiMediawiki) 2007-06-22
前回Wiki記法で書かれたテキストをPEARのTextWikiを使って HTMLに変換することができたが、 Wikipediaは、MediaWikiを使っているため、TextWikiだけでは、不十分。 そこで、TextWikiMediawikiというモジュールを使用することにした。
ディレクトリ内のある拡張子を持つファイルだけをリストアップしたい(PHP) 2007-06-22
指定のディレクトリの.htmlだけをリストアップする必要が生じたのだで、メモ。 たぶん、もっとスマートな方法があるとは思いますが...
<?php
function listFiles($dir,$suffix){
$len_suffix=strlen($suffix);
$path_id=opendir($dir);
while( $file_name = readdir($path_id) ){
$l=strlen($file_name);
if( $l > $len_suffix ){
$mysuffix=substr($file_name,$l-$len_suffix);
if( $mysuffix==$suffix ){
#print $file_name;
$list[] = $file_name;
}
}
}
return $list;
}
$dir="foobar";
$list=listFiles($dir,".txt");
foreach( $list as $file_name ){
print "$file_name\n";
}
?>
ファイル名の拡張子だけを変更したい(PHP) 2007-06-22
テキストファイルの拡張子を持つファイル名をHTMLの拡張子に変更する例。 たぶん、もっとスマートな方法があるとは思いますが...
<?php
function changeSuffix($file_name,$oldsuffix,$newsuffix){
$len=strlen($oldsuffix);
$newfilename=substr($file_name,0,strlen($file_name)-$len).$newsuffix;
return $newfilename;
}
$filename="foo.txt";
$newfilename=changeSuffix($filename,".txt",".html");
print $newfilename;
?>
50音インデックス素材の生成ツール(Jython) 2007-06-20
ウェブサイトで辞書コンテンツをつくる必要があり、50音のインデックス素材を作成した。
何しろ数が多いので、プログラムで生成するようにしました。
senhelper...形態素解析ツールSenを簡単に使うためのAPI 2007-06-19
Senについてはこちらを ご覧いただくことにして、 これを簡単に使うためのラッパーを用意しました。
もともと、Sen自体簡単に使えるようになっているのですが、 もっと簡単に使いたかったので用意しました。
※このエントリは書きかけです。
タイトルを50音順にソートする(Senを使用)(sen) 2005-02-10
ブログのタイトルを 50音順にソートしたい。
話を簡単にするために、タイトルだけを 抜き出して一行一タイトルにしたテキストファイルを用意し、 それを50音順にソートして標準出力するコードを考えてみる。
50音でソートするために、漢字の読みを調べる必要がある。 そのため、Sen を利用します。
Wiki記法で記述されたテキストをHTMLに変換する(PEAR Text_Wiki) 2007-06-17
PEAR Text_Wiki モジュールを使えば変換できることが判明。 日本語が通らないと思っていたが、適切に設定していなかっただけのようだ。
以下のように設定してから変換してやれば日本語が通った。 (テキストエンコーディングはUTF-8)
MediaWikiのインストール(colinuxへの導入) 2007-06-16
昨日に引き続き Wikipediaの辞典データ、本文がwiki記法で書かれているので、 これをHTMLに変換したい...という話。
しかし、PEARモジュールのText_Wikiなど変換ツールを使ってみたものの どうも日本語に対応していないようだし、情報も少ないので、 まずは正攻法として、Wikipediaが使っている MediaWiki自体を インストールして、どうやってWiki記法のHTML変換部分について 直接調査することにした。
まずは、MediaWikiを colinux にインストール...
もっと上手なヒントの表示方法...ヒント情報付きテキストフィールド(Java,Swing) 2007-06-12
入力フォームに何を入力したらいいか例を示したい場合があります。 フォームの横に例を書く、という単純な方法もありますが、 以下のようにテキストフィールド上にヒントを書くという方法もあります。

もちろん、実際に入力するためにテキストフィールドに フォーカスを持って行ったときには、このヒントは消えます。

このようにすれば、ヒントを表示するスペースを節約できるだけでなく、 わかりやすくすることができます。
Windowsにおいて、Javaプログラムからユーザのホームディレクトリを取得する方法 2007-06-08
開発したアプリケーションで扱う設定ファイルやデータは ユーザに依存した情報なので、ユーザのホームディレクトリに保存するのが行儀の良い作法です。
RSS(Really Simple Syndication) 2007-06-08
RSSは、ニュースやブログなど各種のウェブサイトの更新情報を簡単にまとめ、配信するための幾つかの文書フォーマットの総称である。(wikipediaより引用)
RSSを情報を伝達手段と考えた場合、 それは、ホームページとメールマガジンのちょうど中間にあたるようなメディアです。 将来的には、RSSリーダが十分普及した段階では、 RSSがメールマガジンの役割を果たすようになる 、とも言われています。
XonWindows3付属のemacsでUTF-8を扱えるようにする(未解決) 2007-05-27
Mule-UCSというパッケージがあり、これを使えば、emacsでUTF-8を 使えるようになる。
現在文字コードはすべてUTF-8に統一しているので、 XonWindows3のemacsでもUTF-8を扱えるようにしたい。
XonWindows3には、標準でMule-UCS 0.85のバージョンが収録されているのだが、 .emacs.el に以下の行を追加して、UTF-8を使おうとするとemacs起動時にエラーに なって使えない。
(require 'un-define)
(require 'jisx0213)
そこで、ネットで検索して、Mule-UCS 0.84のバージョンのソースを入手して、 インストールしてみたが、読み込みこそうまくいったのだが、 結局保存時に、以下のようなエラーが出てうまくいかなかった。
These default coding systems were tried:
utf-8-unix
However, none of them safely encodes the target text.
Select one of the following safe coding systems:
raw-text emacs-mule no-conversion
JavaからPDFファイルを扱う(PDFファイルのアクロバットリーダでの表示、印刷など) 2007-05-20
Javaで書いたプログラムからPDFを扱う場合に便利なコードが iTextのソースアーカイブに入っていたのでメモ。 すぐ利用できるようにJavadocも用意。
- PDFファイルをアクロバットリーダで表示
- PDFファイルを印刷
Javaで印刷するには、Java2Dを使って描画して印刷、という普通の方法が あります。 しかし、場合によっては、iTextを使って、PDFを生成して、 このクラス(Executable.java)経由で印刷ダイアログを出して、印刷、 という方が便利な場合もあるかと思います。
Linux起動時に起動するデーモン(サービス)を指定する 2007-05-19
Windowsにcolinuxをインストールして、Windowsサービスとして使用している。 そこに先日 samba を導入して、Windows上のcygwin上から y:ドライブとして扱えるようにした。
しかし、Windowsマシン自体を再起動すると、y: ドライブ経由でアクセスできなくなっている。 ログオン時に再接続にチェックしたのに。
調べてみると、colinux上でsmbが起動していなかった。
colinux+vine3.2の場合、起動時のデーモン設定は、以下のコマンドで行う。
$ su
# /usr/sbin/ntsysv
GNOMEなどでは、ウインドウズサービスの設定と同じ操作イメージで 起動時デーモン指定がデスクトップ上のメニューからできるようになっているが、 colinuxをXなしで使う場合には、いまだにこのコマンドのお世話になる。
ContentLinkというキーワード連動型広告 2007-05-15
colinux のサイトを見ていたら、Linuxというキーワードにマウスポインタを重ねたら 次のような広告が出てきたんです。

ContentLinkで調べてみると、 Konteraという会社のサービスのようなのですが、 なかなかすごいなぁ。
要するにGoogleAdsenseやアマゾンアソシエイトのようなものなのですが(たぶん)、 広告用スペースを占拠しないところが良い。
- サイトのレイアウトデザインを広告のために考えなくてよい
- 訪問者にしてみると、マウスポインタさえ注意すれば広告を見ないで済む
どうもアフィリエイトの類いの広告が、ページ上に散りばめられていると、 "あさまし"感が出てしまうと思うのですが、ContentLinkは、そういう印象を 訪問者に与えないのがいいと思いました。
RSSがネットの世界を変えるかも〜Web屋のためのRSSガイド 2007-05-13
この本を読んでびっくりしてしまった。
二年ほど前にRSSに関心を持って、ふと買った「入門RSS(Webにおける効率のよい情報収集/発信)」 で自分のRSSに対する認識が止まっていたのだが、どうやら状況が大きく変わっているようだ。
そのときには、
- RSSというのはブログの更新情報をXMLを使って知らせるツール
- RSSリーダーを使っているユーザにとっては、効率よく更新した情報だけをひろい読みできる
- RSSを収集しているサイトがあり、そのサイトにいけば、自分が探しているテーマについてRSSつきブログを書いているサイトが見つけられる
それだけの認識しか持っていなかった。
しかし、RSSに対応したサイトが増えたことで、 RSSリーダー経由でのアクセスが増え、結果として、サイトへのアクセス がトップページからではなく、直接記事に飛ぶようになっているという。
いままで、ウェブサイトのアクセス経路というのは、 googleまたはyahooで検索して、アクセスするか、 一度訪れたサイトは、ブックマークからアクセスするか、のどちらかだったのが、 それに加えて、RSSリーダから直接アクセスする経路が出てくるということだ。
RSS(リーダー)ってもしかして、インターネットのキラーアプリケーションになるのではないか。 つまり、メール、ブラウザに続く・・・。
LookAndFeelを切替えるコード(Java) 2007-05-11
たびたび使うことになるコードなので記録。
デスクトップ向けのJavaアプリケーションを書く場合、たいていは ウインドウズ上で使われることが想定されるので、 ルックアンドフィールをWindowsにしておくのがよい。
{strong:Windows}にしておくと、ファイル選択ダイアログがネイティブなウインドウズと 同じになるのがうれしいです。 Metalに設定されている(つまりデフォルトのLaF)ファイルチューザーは正直いって、 使いにくいです。
実行時のOSを調べる(Java) 2007-05-11
Javaでは、Write Once, Run anywhere ということになっているので、 書いたコードはWindows,MacOSX,Linuxなどいろんな環境で使われる可能性があります。
本当に Write Once...ならいいのですが、たとえばマウスの右ボタンのように 一般的なマックにはないような処理を含んだソフトウェアを書く場合、 実行中のOSを調べて、OS別の対処コードを書く必要が出てきます。
ランタイム時の画面サイズを取得する(Java Swing) 2007-05-11
たびたび使うことになるコードなので記録。
GUIが複雑なアプリの場合、 実行環境にあわせて画面をいっぱいまで使いたい場合があります。 その場合に使うコード。
今日の日付でアーカイブを作成したい 2007-05-10
頻繁にソフトウェアをリリースしたり、 バックアップデータを毎日作成する場合、 日付文字列をファイル名につけておくと管理が楽です。
しかし、わざわざ日付文字列を手動で入力するのは面倒な上、間違いも 起ります。そこで、dateコマンドを使って、自動的に今日の日付を取得し、 ファイル名に含めるようにします。
TODAY=`date +%Y%m%d`
tar cf ${TODAY}.tar ./foo
Makefile 内でも同じように使えるので、便利です。
awstats を使って特定のページだけのアクセスログ統計レポートを作成する 2007-05-09
awstatsは、メジャーなアクセスログ統計レポート作成ツールです。
一般的な使い方としては、自動的にウェブサーバのログを拾ってきて
日々のレポートを自動生成するのに使うと思いますが、
特定のページだけのレポートを生成するためのツールとしても、
使えます。
基本的にはごく単純な作業なのですが、思わぬ落とし穴があったので、 忘れないようにメモしておきます。
HDDの内容を完全に消去して処分したい 2007-04-26
以前から気になっていた未使用2.5インチHDDの処分をすることにした。 たいして重要な情報は入っていないとは思うが、そのまま捨てるのは やはりはばかられる。
そこでハードディスクの内容の完全消去について調べてみた。 いろいろなツールがあるようだが、 どうやらshredという ツールが定番のようだ。
手元に玄箱があるので、これにUSB経由で2.5インチディスクをつなげて shredで処理することにする。
複数のPDFを一つのファイルに結合する ( pdftk を使う ,Adobe Acrobatは使わない方法) 2007-04-19
複数のPDFを一つのファイルに結合する では、 iTextを使って 結合するコードを書いていたのだが、 実はもっと簡単な方法があることが判明。
pdftk というツールを使えば、簡単に結合できる。 pdftk自体は内部でiTextを使っているようなのだが、 それはともかく、pdftk経由でやった方が取扱いがよい。 (その上、pdftkにはもっといろいろと便利なpdfの操作ができる。)
pdftkを使ってpdfの結合をするので一番難しいのは、 pdftk自体をインストールすることかも。
Cygwin上でのMacOSXと同じようにopenコマンドが使いたい 2007-04-18
MacOSXのターミナルでは、open コマンドを使うことで、ファイルを関連づけされている アプリケーションで開いたり、現在のディレクトリまたは指定したディレクトリを Finderで開くことができる。
Finder代わりに、 ターミナルを使ってファイルの操作をしていると、このopenコマンドが非常に便利なのだが Cygwinでも同じようなことができないのか?
ふたつのファイルの日付を比較して、新しいかどうか調べる Jython編 2007-04-12
はじめに指定したファイルが、あとから指定したファイルより新しいかどうか を調べる。
ふたつのファイルの日付を比較して、新しいかどうか調べる sh編 2007-04-12
はじめに指定したファイルが、あとから指定したファイルより新しいかどうか を調べる。
AntをMacOSXで使うときにJDK1.4でコンパイルしたい 2007-04-12
ソフトウェアをリリースするときに、JDK1.4でコンパイルしてリリースしたい場合が多い。 (現在のところ)
Vine4.1のemacsでUTF-8を使用できるようにする 2007-04-07
.emacs.el を見ていると、UTF-8に標準で対応しているような感じの記述があるのだが、 とりあえず、何も考えずにUTF-8のテキストファイルを開くと文字化けする。
そこで、Mule-UCSをインストールして、UTF-8の設定を .emacs.el に追加して、 UTF-8が使えるようになったので、メモ。
# apt-get install Mule-UCS
~/.emacs.el の最後に追加記述
(require 'un-define) ; Unicode
※ちなみに、コンソール(gnome-terminal)でemacsを使っているので、Xでemcasを使う場合は考えていない。
Vine4.1のレッツノート対応がすごい サスペンドに標準対応他 2007-03-10
LinuxをノートPCにインストールして使おうと思うときに 躊躇してしまうのは、ワイヤレスLANはすぐ設定できるだろうか、 スリープやサスペンドに対応しているだろうか、 輝度調整などマシン固有の機能は大丈夫だろうか、という 心配がある。
よほど普及しているノートパソコン、Linuxディストリビューションならば 既に誰かが試していてブログで公開されているのをgoogleなどから 検索して見つけることができるかもしれないが。
実際にインストールしてみたところ、ワイヤレスLANも簡単に導入でき、 サスペンドも設定なしに使えた。すばらしい。 そして何よりうれしいのは、画面の輝度調整機能も apt-get install するだけで解決できたこと。
Jython / Pythonでプログラム終了させる、処理をスキップする方法 2006-03-01
Jython or PythonでUNIXのコマンド等を使いたい場合の記述方法 2007-02-26
shの代りにjythonやpythonを使う場合、外部コマンドを呼び出すことがよくあります。
os.system("ここにコマンド")
具体例 import os os.system("echo hello")
$ jython test.py
※Jython,Pythonでもできます。
ソースコードの整形 Java 2007-02-18
Javaのソースコード整形に astyle を使ってみた。
$ sudo apt-get install astyle
$ cat Foo.java | astyle --style=java
悪くないです。
Bash 拡張子を置き換えたい 2007-02-16
bashでは、簡単に記述できるのだが、 何度書いても記述法方を記憶できない。
TIFFをPNGに一括で変換するスクリプト 2007-02-16
たくさんの画面コピーを撮ってTIFF形式で保存していたのだが、 PNGに変換したくなったので、 カレントディレクトリにある.tiffファイルを全部同名の.pngファイルに変換する シェルスクリプトを書いたのでメモ。
プログラム終了時に”ある処理”を絶対に実行したい(Java) 2006-12-10
プログラム終了時に確実にある処理を実行したい、ということがあります。 (たとえば、編集中のドキュメントが未保存の場合、自動保存するとか)
GUIアプリケーションの場合は、 JFrameにWindowListenerをセットして、windowClosing()を 実装しておけばよいと思っていたのですが、 それではうまくいきません。以下のような場合...
たとえば、コンソールからCtrl+Cで終了した場合や、 MacOSXではCtrl+Qで終了した場合、 WindowListener#windowClosing()などが呼ばれないまま終了してしまいます。
そういう場合でもきちんと終了をハンドルして終了時の後始末処理を するには、以下のようにします。
Thread hook=new Thread(){
public void run() {
doSomethin();//終了処理
}
};
Runtime.getRuntime().addShutdownHook(hook);
Javaで日付の取り扱いのメモ 2007-01-15
HTMLを出力したり、RSSを出力したり、 という用途にJavaを使っていると、java.util.Calendarを文字列表現に 直す必要が生じることがままある。 そのメモ。
MySQLをインストールしたがJDBCで接続すると日本語が文字化けする(mysql,jdbc,java) 2006-11-06
すべて同じ文字コードを明示的に指定する。 一番無難なUTF-8で統一する。
実行しているOSがMacOSXかどうかを判別する 2006-10-21
MacOSXでは、open コマンドを使うことで、簡単にファイルのタイプに応じた アプリケーションを起動することができます。
$ open foo.pdf
Javaのプログラムからこの機能を使いたいときがあります。 以下のように記述するだけで、openコマンドを使うことができます。
String cmd="open foo.pdf";
Runtime.getRuntime().exec(cmd);
ただ、Javaの場合、MacOSX以外のOSでも使われる可能性があるので、 念のため、実行しているOSがMacOSXかどうか確認してから、 openコマンドを実行した方がスマートです。
boolean isMacOSX(){
String os=System.getProperty("os.name");
if(os.equals("Mac OS X")){
return true;
}
return false;
}
colinux上のemacsをXonWindows3のmltermで使用する場合の起動オプション 2006-10-20
colinux上のemacsをXonWindows3のmltermで使用する場合、 漢字コードをEUC-JPに設定しておく必要がある。
xow-xwinsys.batを以下のように書き換えます。
$ cd /boot
$ cat xow-xwinsys.bat
mlterm --ls --sb -g 110x42 --km EUC-JP
イメージの拡張(for colinux) 2006-10-20
ある雑誌では、mksparse というツールを使ってファイルシステムイメージの拡張を 行うと説明があったが、なぜか mksparse が作動しなかったので、他の方法を探す。
結論としては、fsutil コメンドを使用すればいいことが判明。
10Gの空ファイルを作成する例
$ fsutil file createnew debian10g.img 10737418240
Tomcatが起動できない(MacOSX) 2006-10-15
Tomcatをダウンロードしてきて、 普通にインストールして、
$ cd ${path-to-tomcat}/bin
$ sh startup.sh
で起動しようとすると、JAVA_HOME環境変数が設定してない、といわれて 起動できません。
MacOSXの場合、JAVA_HOMEってどこよ?と思うのですが、結論としては、 以下の記述を ${HOME}/.profile に追加しておけばOK。
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
MacOSXでSWTを使う場合に必要な特別なJavaVMオプション(swt,java) 2006-10-15
$ java -jar foo.jar -XstartOnFirstThread
参考URL
Jython Howto 2006-10-14
MacOSXで大量のファイルを一括処理する場合に、わたしは、jythonを使っています。 Windowsと違って、MacOSXには標準でJavaVMが用意されているので、 その分、jythonを使えるようにするための準備が少ないのもうれしいです。
Jythonは、JavaVM上で動くPythonですが、 Pythonの利点を持ちながら、Javaのライブラリがそのまま使えるので、重宝しています。
破線を描く方法(Java,Java2D) 2006-10-14
Javaで破線を描画したい場合は、java.awt.BasicStrokeクラスを使用します。
static final private BasicStroke STROKE_DOTTED=
new BasicStroke(1,
BasicStroke.CAP_BUTT,
BasicStroke.JOIN_MITER,
10.0f,
new float[]{5f},
0.0f);
public void paintComponent(Graphics g){
Graphics2D g2=(Graphics2D)g;
g2.setStroke(STROKE_DOTTED);
g2.draw(new Line2D.Float(0,0,100,100));
}
Jythonでよく使うテクニック(2) ファイルの拡張子だけ変更したい 2006-10-10
{strong:foo.txt} を処理して、 結果を{strong:foo.html}というファイル名にして保存したい、 ということがあります。
Jythonでよく使うテクニック 2006-10-10
繰り返し使うテクニックを備忘用にメモしています。
Jythonでよく使うテクニック(3) 特殊記号のエスケープ処理 2006-10-10
ウェブページにコードを載せる場合、HTMLで使用できない < > などの特殊記号を エスケープする必要があります。 RSSフィードなどの生成時でもやはりエスケープが必要で、この手のコードは 手元にあると便利です。
Jythonでよく使うテクニック(1) カレントディレクトリにある特定拡張子を持つファイルの列挙 2006-10-10
jythonをbashの代わりに使う場合、よく使います。 以下の例では、.txt を拡張子に持つファイルを列挙する例。
import java.lang as lang
import java.io as io
class TextFileFilter(io.FileFilter):
def accept(self,file):
fname=file.getName()
return lang.String(fname).endsWith(".txt")
list=io.File("./").listFiles(TextFileFilter())
for file in list:
print file.name
Jythonことはじめ(MacOSXでjythonを使う方法) 2006-09-10
MacOSXにはJavaVMがインストールされているので、 すぐにjythonを使える環境は整っているのだが、少し癖があるのでメモ。
jythonで外部ライブラリ(jar)を利用する場合の jython 起動方法 2006-09-10
jythonコードを実行するときに、 追加のjarファイル(つまり外部ライブラリ)が必要な場合は、 単に {strong:jython foo.py} とだけでは、当然外部ライブラリは利用できない。
jythonに外部ライブラリを利用することを伝えなければならないのだが、 そのためには、以下のようにします。
MacOSXでのJavacのエラーメッセージが文字化けする問題の解決方法 2006-08-28
MacOSXでTerminal上でJavaのコンパイルをするとエラーメッセージが文字化けする。 どうやら、メッセージは、SJISで出力されているようなので、Terminal自体をSJIS設定で 使えばいいのだが、そうすると別の問題が生じるのでデフォルトのUTF-8のまま使いたい。
そこで、nkfを使ってメッセージをUTF-8に都度変換することにする。 nkfはfinkを使えば簡単にインストールできる。
$ fink install nkf
コンソールに出力されたJavacのメッセージをUTF-8に変換するには、 次のようにする。
$ javac *.java | nkf -w
普通 ant を使ってビルドするので・・・
$ ant | nkf -w
で文字化けを回避できる。
MacOSX10.4でのemacs導入 2006-08-26
いろいろ試したが(finkのemacsとanthyを組み合わせるとか) 結局素直に、EasyPackage を使って、carbon版のemacs を入れると 楽なことがわかった。
玄箱作業メモ 2006-08-23
ひさしぶりに使ったので初期化からやりなおした。
MacOSXでjythonする場合の文字コードへの配慮 2006-08-20
MacOSX の JavaVM はデフォルトの文字エンコーディングが ShiftJIS になっているようだ。 しかし、Terminal は(デフォルトでは)UTF-8 なので、 もし、 jythonコード中に日本語を含めたり、コンソールに日本語で文字列を出力する場合は、 その辺に注意する必要がある。
- jythonコード中で日本語を直接扱いたい場合は、そのコードを書いたファイルのエンコーディングをSJISにしておく
- コンソールに標準出力する場合は、UTF-8 に変換して出力する(すなわちprintは使えない)
したがって、 str="ほげ" print str
のようなコードは、以下のように書いた上で、ファイル自体はSJISにしておく。
str="ほげ"
pw=io.PrintWriter( io.OutputStreamWriter(lang.System.out,"UTF-8") )
pw.println( str )
pw.close()
面倒ですね。
print処理などで、 jythonが文字エンコーディングをどうやって決めているかわかっていれば、 その設定をしてやればOKだと思う。 すくなくともデフォルトでは、JavaVMのエンコーディングを引き継ぐようなので、 明示的にjythonで扱うエンコーディングをUTF-8 に設定できれば、 こんなややこしいことにはならない。
colinuxをウインドウズサービスとしてインストールする 2006-07-28
vine.xmlという設定ファイルがある場合には以下のようにして、 サービスとしてインストールする。
$./colinux-daemon.exe -c vine.xml --install-service
サービスからアンインストールする方法。
$ ./colinux-daemon.exe --remove-service
Bash 標準エラ出力の取り方 2006-07-09
bash上でプログラムを動かしていると、 エラーログを取得したくなることがあります。
標準出力をログにとるだけなら
$ myprogram > log
でOKなのですが、これでは、標準エラー出力は以前として端末に表示されて ログファイルに保存することができません。
そこで以下のようにします。
$ myprogram > log 2>&1
これで標準出力だけでなく、エラー出力も log に保存できます。
逆に、標準エラー出力を無視したい場合
$ myprograme > /dev/null 2>&1
文字をイメージとして生成したい(phpをコマンドラインで使う) 2006-07-05
テキスト中心のウェブサイトをつくっているが、 やはり見出しの部分は素のテキストではきつい。 せめて画像として美しいフォントで出力したい。
普通ここで、フォトショップとかGIMPを使うのかもしれないが、 タイトル文字列を画像化したいだけなのに、わざわざ画像ソフトを 使いたくはない。 まあ一回だけ使うならなんの問題もないのだが、 後々、都合により見出しテキストを変更したり、前景色または背景色を変えたり、 フォントサイズを変更する、ということは起きる。 そのとき、 タイトル文字列画像を再作成するためだけに、 フォトショップやGIMPを起動して、ちまちま見出しタイトル画像のひとつづつ作成しなおし などやっていられない。そんな無駄なことは絶対に許されない。
ということで、文字列・色・サイズなどはテキストファイルに記述しておいて それからプログラム的にタイトル画像を生成する方法を探ってみた。
SWTでブラウザを使えるようにする(Vine3.2 Linux) 2006-06-30
SWTのブラウザコンポーネントを使用したい。 これを使用するには、mozillaがインストールされている。 (Firefoxだけでも問題ないかもしれない。)
結構設定が面倒なので忘れないうちにメモしておく。
SWTのBrowserのハイパーリンク処理を制御したい 2006-06-30
SwingのJEditorPaneでブラウザを実装する場合は、 addHyperlinkListener()を使うことで、リンクを制御できる。 addHyperlinkListener()メソッドに HyperlinkListenerを追加しておけば ハイパーリンクがクリックされた時点で通知されるので、 通知されたメソッド内で適切に処理してやればよい。
しかし、SWTのorg.eclipse.swt.browser.Browser クラスでは、 このような目的に使えるメソッドは用意されていないようだ。 どうすればいいのか。
CSSを使って、a要素風のスタイルをつくり出したい 2006-06-30
javascriptを使ったプログラムを書いている場合、 以下のようなリンクを処理を
<a href="foo.html">foo</a>
このように書いてページ内で処理することがある。 foo
このような場合に、見た目はブラウザに依存しますが、 たいていは、 デフォルトのレンダリングでは、 a 要素が a 要素っぽくレンダリングされません。
そこで、以下のようなCSSを書いて a 要素風のスタイルを 強制的に作り出します。クリックできることを知らせます。
a {
text-decoration: underline;
color:blue;
cursor:pointer;
cursor:hand;
}
Javaのコードをウインドウズネイティブアプリケーションとしてコンパイルする(MinGW+GCJ) 2006-06-13
MinGWとGCJを使うことで、GUIなしのJavaコードについては、
ウインドウズネイティブアプリケーションとしてコンパイルできる。
GUIの場合でも、GUIがSWTで記述されていれば、
ウインドウズネイティブアプリケーションとしてコンパイルできる。
とはいえ、日本語処理の問題とか、すんなり乗り越えられないことがあるので注意が必要。
cygwin上のemacsでtamago+wnn7を使えるようにする 2006-06-24
「便利なツール Emacs らくらく入門」という本を読んでいたら、 tamago4のソースからのインストール方法が書いてあったので、 Cygwin上のemacsでも使えないかと思い試してみました。
手元にはWnn7 Personalがあり、結構気に入っている。 しかし、現在はLinuxを動かしているパソコンが手元に無いため使っていない。 これを、colinuxにインストールして、Cygwin上のemacs+tamago4から使えないか、という話。
ちなみに wnn7は 商用ソフトウェアです。
定期的に繰り返し実行するタイマーの自作(timertask) 2006-06-21
java.util.Timerとjava.util.TimerTaskを使えば、 定期的に繰り返し使えるタイマーを実現できます。
しかし、これらのクラスを素直に使った場合、
プログラムの終了時点で、Timerクラスの cancel() メソッドを呼び出して
タイマーを明示的に終了させる必要があります。
一見終了時に必ずキャンセルを必ず呼ぶなどというのは、簡単なことのようですが、
以下のケースでは問題が生じます。
- タイマーをコードのあちこちで使用する必要があり、終了時に確実にキャンセルを呼ぶのを忘れそうになるケース
- プログラムが終了してもJavaVMは終了しないケース
ほとんどのケースでは、実際にはキャンセルしわすれても、 プログラムの終了と同時にJavaVMも終了するので問題ない(はず)のですが、 アプレットのように、アプレットは終了してもJavaVMが終了しない ケースでは、キャンセルしわすれたタイマーが残ってしまいます。
したがって、タイマーの繰り返し実行機能は使いたいが、 タイマーのキャンセルを呼びたくない(呼ばなくてもプログラムの終了と同時に タイマーもキャンセルされる)場合に役に立つ MyTimerクラスを書いたのでメモしておきます。
リソースバンドル(java.util.ResourceBundle)を使って表示文字列を管理しているが・・・ 2006-06-19
Javaには予め言語(というか地域というかロケールというか)別に
表示文字列リソースを管理するための仕組みが備わっている。
このリソースバンドルは非常に便利なのだが、もしリソースが存在しなかった場合に、
MissingResourceExceptionというランタイム例外を投げます。
さて、ランタイムにこの例外を決して発生させないようにしたいのですが、 どうすればいいのでしょうか。
リソースの中には、エラーメッセージなどめったに表示されないものも 含まれてますから、力業で人間がテストして、MissingResourceExceptionを 都度拾っていけばいいのさ、という方法はNGです。 (そのうえ、リソースはどんどん増えていく)
いろいろ考えたのですが、やはり、 リソースがもれなく登録されていることをランタイムにチェックする以外の 何か別の方法で管理する必要があるということだと思います。
java.util.Calendarによる月初・月末の計算方法 2006-06-18
Javaで、月初と月末の計算をする。
Bash 今日の日付を適切にフォーマットして、ファイルの末尾に追加したい 2006-06-14
テキストでメモを書いていると日付を書いておきたくなることがあるが 今日の日付を入れるのが面倒なので自動化したい。
dateコマンドを調べてみると、
$ date +%Y-%m-%d
2006-06-14
となるので、 これを利用して以下のように記述すれば、 foo.txtの末尾に日付を挿入できる。
ANT覚え書き 2006-01-29
antを使っていて、たびたび調べ直すことになったテクニックの備忘録を集める。
RICOを使ってボックスの角を丸める 2006-05-16
Firefox,Safariなどでボックスの角を丸める方法はこちら
MovableTypeなどのブログを見ているとよくエントリーを入れているボックスの角がまるい。
角が直角なのと丸いのとでエントリーの内容の価値が(理論的には)変わるわけもないのだが、
なんとなく、角が丸い方が、居心地がいい!気がします。
そこでわたしも角丸に挑戦、と思いgoogleで検索してみたのですが、
CSSを使って角を丸める場合、あまり美しい方法がない。
そこでCSSではなく、JavaScriptを使って丸める方向で再検討したところ、
rico.jsを使って角を丸める方法があることをしったので早速ためしてみました。
基本認証つきのページをwgetでダウンロードする方法 2006-05-09
オプション -http-user,--http-passwd を使うことで、 認証付きのページもwgetを使ってダウンロードできます。
lftpを使って、gzipで圧縮してファイルをダウンロードする 2006-04-24
アクセスログのようなサイズの大きいファイルをダウンロードする場合、 圧縮してから、ダウンロードすれば転送時間を短縮できます。
通常このようなことをしたい場合は、 ssh や telnetでリモートにアクセスして、該当ファイルを 圧縮してから、ftpという手順になりますが、そこまで手間をかけても 圧縮してダウンロードしたいファイルというのはかなりサイズが大きいでしょうね。
lftpでは、以下のようにすれば、lftpだけで簡潔して圧縮+ダウンロードが 出来るので非常に便利です。
$ lftp myserver.org
> cd path/to/logs
> cat access_log | gzip > access_log.gz
- lftp http://lftp.yar.ru/
今日の日付を使ってファイル名を作成する方法 2006-04-23
リリースアーカイブやバックアップアーカイブをつくるときに
ファイル名を自動的に今日の日付からとると楽です。
その方法。
$ date +%Y%m%d%H%M
200604231026 ←2006年4月23日午前10時26分
$ tar cvfz `date +%Y%m%d`.tar.gz ./path/to/backup
PNGをGIFやJPEGに変換したい 2006-04-16
通常の用途では、ウェブでイメージを扱うときは、PNG形式でほとんど間に合うのだが、 時々、GIFに変換する必要が生じることがある。 どうすればいいのか。
Vine3.2にJikes1.22をインストール 2006-04-10
apt-get install jikes としてみたが、jikesは用意されていなかった。 aptで入れられないのは、 適切に /etc/apt/source.list を設定していないだけなのかもしれないが、 jikesの場合、ソースからでもたいした手間はないので、自分でインストールすることにする。
Linuxで、JavaAppletを使えるようにする 2006-04-08
emacsでいつもの設定メモ(バックアップファイルを作成しない,80文字目で勝手に改行しない) 2006-04-08
バックアップファイルを作成しない指定をするには...
$HOME/.emacs.el に以下を追記。
(setq make-backup-files nil)
Vine3.2で日本語表示がうまくいった fontconfig.properties (JDK1.5) 2006-04-08
JDK1.4ではフォント描画関係で問題が出てしまったので、 JDK1.5で試してみたが、 やはりデフォルトでは文字化けが発生してしまう。
googleで調べたところ
に有益な情報があったので、それを利用したのだが、わたしの環境では、ここに書いてある通りでは うまくいかなかったので、メモ。
レイアウトマネージャの自作(VerticalLayout) 2006-04-04
FlowLayoutは横にコンポーネントを配置していきますが、 これとは逆に縦に配置していくレイアウトマネージャを自作してみました。
このエントリーはレイアウトマネージャの自作(VerticalLayout)へ移動しました。
タイムマシンテレビ...こんなHDDレコーダー内蔵テレビがほしい(idea) 2006-04-03
放映時間を自分の都合にあわせられるテレビが、ほしい。
- 12時からはじまる10分間のテレビ番組を見ようと思っていていたが、他ごとに熱中していて、気づいたら既に12時30分だった
- 偶然テレビをつけたら興味深い番組をやっていたけど、すでに番組スタートから30分経過していた
- 21時から始まる映画を楽しみに帰宅したが、ちょっとしたアクシデントで15分遅れてしまった、一番いいところを見逃すことになった。
そういうことってないですか。
そんなときいつも、タイムマシンテレビがほしくなります。
ホームページの引越をする場合のリダイレクト記述方法(servlet) 2006-04-01
ホームページの引越などで、新しいURLへリダイレクトさせたい場合、 いちいち該当ファイルに引越案内を記述するのは大変です。 こんなとき、特定パスにアクセスした場合は、 引越先のURLへリダイレクトを一括で指定できたら便利です。
こんなときは、web.xmlに以下のような記述をした上で、 redirector.jsp を配置しておけばいいことが判明。 (Tomcatハンドブック O'Reillyを参考にしています。)
Applet内でのホスト情報の取得方法 2006-03-31
アプレットはセキュリティ制限があるが、自分のロード元サーバとは自由に通信ができる。 したがって、アプレット上で行った内容の保存は、元サーバへ行うことが多い。
その元サーバ情報をどうやって取得するか。
public class MyApplet extends Applet{
public void init(){
URL url=this.getCodeBase();
String hostname=url.getHost();
int port=url.getPort();
String path=url.getPath();
System.out.println("http://"+hostname+":"+port+path);
}
}
これで、ホスト名・ポート・パスが取得できる。
サーブレットでイメージを生成する必要がある場合のheadless設定 2006-03-30
サーブレットなどを使ってイメージを生成させるような場合、 サーバ上で実行すると失敗することがある。 その場合は、 javaのHeadlessモードの指定をすればOK。
-Djava.awt.headless=true
headlessモードは、JDK1.4以降で使用可能。
Senを使って文章をわかちがきする(Java) 2006-03-28
Java で実装された形態素解析器である
Sen
を使って日本語を単語単位に分割する実験。
java.text.BreakIteratorとの違いも比較してみます。
HTMLに関する備忘録 別ページに自動的に移動するメタタグ(リダイレクト,オートリロード) 2006-03-28
内容が同じページだが別のURLに変更した場合に、便利な記述方法。
HTMLのヘッダエレメント内に記述しておくことで、
ページが読み込まれた途端に( 0 秒で)別ページに移動する。
<meta http-equiv="Refresh" content="0;URL=/foo.html">
※0の代わりに 10 を指定すれば、10秒後に /foo.html に移動する。
java.io.Fileの配列を日付でソートする方法 2006-03-25
LinuxにしてもWindowsにしてもファイルの日付(作成日、更新日)は、OSが管理していて取得できるのだが、 java.io.Fileでは、getCreateCalendar(),getUpdateCalendar()とかいったメソッドは用意されていない。
いままで、java.io.Fileでは日付情報を取得できないと思っていたが、APIを良く見ると lastModified() という メソッドがあることがわかった。
自作のウェブアプリケーションの配布を簡単にするためにjettyを使う 2006-03-25
jettyは組み込んで使用されることが想定された設計になっているので 自作のウェブアプリケーションに組み込むことが簡単にできる。
tomcatで基本認証を設定する(tomcat) 2006-03-24
特定のディレクトリにアクセス制限をかける方法。
※以下、$CATALINA_HOME にtomcatをインストールしているものとして説明します。
Apache またはTomcatでページが存在しない(404エラー)場合に指定のページを表示する方法 2006-03-24
存在していないページのリクエストがあった場合に、 404 page not found ! とかいった味気ないエラーページを表示するのを避けるための方法。
サーブレット(JavaServlet)の設定ファイル web.xml に関するTIPS 2006-03-24
サーブレットでは 各ウェブアプリケーション固有の設定を $CATALINA_HOME/webapps/mywebapp/WEB-INF/web.xml に記述する。
なお、tomcatであれば、 $CATALINA_HOME/conf/web.xml に全ウェブアプリケーション共通の設定を書く。 このファイルにMIMEと拡張子とのマッピング設定が書いているので参考にするとよい。
jakarta-POIを使ってエクセルデータを読む 2006-03-24
※このページは、 こちら に 移動しました。
mod_jk2によるTomcatとApacheとの連携作業記録 2006-03-23
TomcatとApacheの連携メモ。
VirtualHostの導入作業記録 2006-03-23
linux コマンドメモ 2006-03-22
- cp -p オプション
- cp -i オプション
- rm -f オプション
- lsof コマンド
debian sarge に wnn7 をインストールする(wnn7,debian,colinux) 2006-03-21
colinuxのdebianでは、apt get install anthy で即導入できるので、 anthyを日本語入力として使っていたのだが、 やはりしばらく使っていると、変換効率がよい日本語入力システムを使いたくなってきました。
手元にwnn7 Personalがあるので、これを使えないかと。 以前軽く試したところでは、 パッケージの依存関係でインストールがうまくいかないことがわかっていたのですが、 いまのわたしは、コンソールで使っているemacs上でwnn7が使用できさえすればいいので、 それならパッケージの依存の問題は回避できるのではないかと思い再挑戦することにした。
- STEP0 事前調査
- STEP1 wnn7のCD-Rをcolinuxでマウントするには
- STEP2 wnn7-serverパッケージを作り直す
- STEP3 wnn7をインストールする前の準備
- STEP4 wnn7を通常の手順でインストール
- STEP5 wnn7インストール後の処置
非力なサーバへの対策...JSPを事前にコンパイルして設置 2006-03-20
先日のこと。VPSのサーバを利用しているのだが、 そのサーバに割り当てられたメモリが非常に少ないので、 JSPが実行時にコンパイルできないという事態が発生した。 (ちなみに、そのVPSでswap領域を設定しようとしたが許可されていなかった...当たり前か)
コンパイル済みのJSPなら作動させることができたので、 別マシンでコンパイルしておいて、その結果をサーバにコピーする方法をとることにした。
サーブレット(JavaServlet) コード備忘録,サーバ情報の取得/パスの取得 2006-03-20
たびたび使用するコードを記録。
システム日付の設定方法 2006-03-16
$ export LANG=US
$ date
Thu May 6 01:00:56 JST 2004
このdateコマンドで得られた値をそのまま使って...
$ date -s "Thu May 6 01:00:56 JST 2004"
日付を再設定すればよい。
たいていは、時間を少し調整するとか、日付を変更するだけなので、
これで事足りる。
ちなみに曜日に関しては適切に設定してくれるので、なんでもよい。
レイアウトマネージャの自作(Java,TaExtLayout) 2006-03-14
プロフィールの入力フォームとか、ログイン画面の作成などで、
グリッド上にコンポーネントをレイアウトしたい場合が結構あるのだが、
AWTの標準のレイアウトマネージャでは、すぐ対応できない(ことが多い)。
そこで2列 x n行のレイアウトを簡単に作ることができるレイアウトマネージャを自作してみました。
このエントリーは レイアウトマネージャの自作(Java,TaExtLayout)へ移動しました。
拡張子を置き換えたい(javaの場合) 2006-03-08
foo.txt から foo.html という文字列をつくる方法
控えめなマッチ(正規表現)(python,regex) 2006-03-08
正規表現は、デフォルトでいわゆる欲張りなマッチになるため、 それが不都合な場合がある。
たとえば、以下のような文字列があった場合...
{link:title|http://foobar/}
- マクロ名=link
- マクロ引数=title|http://foobar/
の二つの部分に文字列を分解したい。 これを、 正規表現で処理するにはどうしたらいいか。
Bash での処理を代わりにpythonで行うときの記述方法あれこれ 2006-03-05
bashは原始的すぎるので、bashにスクリプトを書きたくなるようなケースで、
代わりにpythonを使うことを決意。
その場合に、いつもbashで記述しているような処理をpythonでどのように書くのか、
の記録。
jython コマンドライン引数を得る方法(jython) 2006-02-26
import sys
print sys.argv[0] #プログラム名
print sys.argv[1] #最初の引数
Subversionをソースからインストールする 2006-02-13
0からSubversion+Apache+BerkeleyDBを入れる。
実際にやってみるとそれほど難しいわけではない。
JythonをLinuxサーバにインストールするときよくあるトラブル 2006-02-10
Jython でインストールしたあとのトラブルメモ。
XonWindowsのコンソールの起動オプションを設定する 2005-12-01
デフォルトの配色が気に入らないで、修正。 ついでに、起動時の画面サイズも指定。
/boot/xow-console.bat
start cko -fg black -bg white -g 120x42 -e /bin/bash --login -i
フォントサイズを指定する場合は -fs オプションで指定。
start cko -fs 16 -g 110x42 -e /bin/bash --login -i
Apacheで基本認証を設定する 2006-01-20
特定のディレクトリだけを特定の人だけにアクセスさせたい場合があります。 その方法についての備忘録。
OpenOfficeOrgでPDFを生成(プログラムから) 2005-07-24
MS-Officeのドキュメントをサーバ側でPDF化したい場合がある。 いい方法はないものかと探していたところ、OpenOfficeOrgを使うことで、 解決できることがわかった。
OpenOfficeOrgはJavaやJythonなどを使って、プログラム的に
ドキュメントを操作することができる。
もともと、OpenOfficeOrgには、PDFでドキュメントを出力する機能が付いているので、
これをプログラムから処理してやればよいことになる。
複数あるMS-ワードのドキュメントを一括処理で、まとめてPDF化したい場合など、 OpenOfficeOrgのAPIを使って、Javaプログラムから操作できるのはグッド。
ただ、処理内容は単純なのだが、記述がややこしいのが難点。
Senのインストール(Cygwin) 2005-05-10
SenというJavaから使える形態素分析ツールがある。
これを使えば、
日本語をカタカナに変換できる。
Windows で tomcat4.1を普通にインストールするとエラーになる 2005-02-23
tomcatを使うことになった。
tomcat4.1をダウンロードしてインストール。
しかし、なぜかうまく起動できない。
apache2のログ、リファラー情報を記録する 2005-02-14
apache2ではデフォルトでリファラー情報のログは出さない。 しかし、httpd.conf をちょっと設定するだけで、リファラー情報はとれることが判明。
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog logs/access_log common
#
# If you would like to have agent and referer logfiles, uncomment the
# following directives.
#
#CustomLog logs/referer_log referer
#CustomLog logs/agent_log agent
iTextを使ってPDFを生成する(jython,pdf) 2005-01-27
仕事で作るドキュメントはPDF化して渡すことが多いです。 MacOSXのように標準で、PDF出力がついてるのはすごく便利なんだけど、 請求データのように、データをデータベースとかXMLで管理しているような場合、 そこから、必要なデータだけをひっぱり出してきてそれを適当に整形して PDF出力できたらなぁと思う。
そんなときに、iText+Jythonの組み合わせで、PDF出力を扱うことができれば、 便利かも!と思って、試してみました。
ActionScriptでXMLを扱う方法(xml,actionscript) 2005-01-20
XMLオブジェクトを使ってXMLドキュメントを作成する...
たとえば、結果として、
jythonでのファイル読み込みコード 2005-01-13
jythonでは、 pythonスタイルでファイルを簡単に読む方法もあるが、 エンコードの指定など慣れているJava方式でファイルを読む例.
import java.io as io
false=0
true=1
enc="UTF-8"
f=io.File("foo.txt")
br=io.BufferedReader( io.InputStreamReader( io.FileInputStream(f),enc ) )
while(true):
line=br.readLine()
print line
if(line==None):
break
br.close()
オブジェクト指向とActionScript 2005-01-12
FlashMX 2004になって、ActionScriptが改良された。
メモの技術に関するリンク集 2005-01-03
メモの技術関連のコラムあり。
- いつでもどこでもメモしたい他
- 横着プログラミング 第1回: Unixのメモ技術 高林哲さんのコラム。
ChangeLog関係