サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
www.coltware.com
世の中のIMAPサーバがどのような状況(どんな機能を備えているのか?)なのか.. IMAP対応というのは、ちょっと前まではgmailぐらいしかなかったのですが、 スマートフォン対応ということで、いろいろなところが対応してきました。 しかし、相変わらずサービスのサイトを見ても、 たいていはPOP3の記述はすぐに見つかるのですが、IMAPの設定が見つかりません。 なぜでしょうか?、まだあまりつかってほしくはないのかな・・・・ ということで、実際、かくプロバイダのIMAPではどのくらいまでできるのか、 IMAPのCAPABILITYの結果を調べてみました。 調べた対象は gmail ( imap.gmail.com:993 ) nifty ( imap.nifty.com: 993 ) biglobe (mail.biglobe.ne.jp:993) 新しい環境です。去年の12月くらい
MS-WordとExcelの2007形式のフォーマットでは、内部にサムネイル情報を保存している。 (ただし、保存時に縮小版を保存するにチェックしてればです。) このサムネイルは、Windowsでのエクスプローラでも表示される。 これが、パワポはjpeg形式で作成されるのですが、WordとExcelではwmfというフォーマットで保存されるのです。 このため、ちょっと簡単にはWEB上に表示することが出来ません。 とおもっていたら、こちらに、 Javaでwmfからsvgに変換するライブラリをつくっていた方がいました。 自分的にはJavaではちょっと困るので、wmfファイルの勉強もかねて、これをこの週末にPHPに書き直してみました。 それなりに動きます。 こちらが、オリジナルのでdocxファイルで、 sample2 こちらがSVGになります。 これでWEBでドキュメント管理をする際
シェルを使ってファイルから1行ずつよみこみ、カンマで区切って処理をしたーい。 なんて時に、 while read LINE do // ここでsplitをつかってごにょごにょと・・・・ done < input.txt ってな感じで、1行を切り分けていた。 ここでごにょごにょと書いたのも、いつもこの部分を忘れてしまい、 あー昔書いたやつをさがして・・・ と見つからず、いろいろと探していたら、もっといいやり方を知った。 まあ、たまにブラウズもいいものだと・・・ では、 while IFS=, read f1 f2 f3 do echo "$f1は1つ目のフィールド" echo "$f2は2つ目のフィールド" done < input.txt というように、カンマで分割した形で変数にセットしてくれるので、楽だ・・・・ ちなみに、IFSとはInternal field separator
ちょうど、一年ほど前に、 開発工数と期間(納期)と人数の関係について ということを書いた。 あれから、「COCOMOモデル」という考え方があることは、その後知った。 ただ知っておくことは別に悪い事とは思わない。 自分なりに必要か必要でないかを判断できると思えるくらいの理解はしておいてよいと思う。 で、その結果、 この考え方に私は非常にあきらめと違和感を感じた。 それは、なぜか? 「機能なんて定まっていない」 からだ。 そもそも、なぜ機能が定められないうちから工数を見積もりたいのか? 提供する価値とコストと納期(締め切り)のよいバランスをとりたいからだ。 そのために必要な、作為的変数としての工数なのだ。 すべてが変動だと言うから、「工数」という固定がほしくなる。 数学的にすべてが変動の式に答えはないし、軸がないものでは議論が進まない。 でも、現実はどうだろうか? コストと
Javaでよく使っているし、使えるが、作りはしないもの。 それが、私にとってはアノテーションです。 今まで、それで問題ないのではとおもっていましたが、JavaのRESTful、つまり、JAX-RSをみるにあたり、 改めて、見てみる事にしました。 さて、RESTfulで、Javaのソース内で、 @GET @Path("/foo") public void foo(@PathParam("arg1") String arg1){ } みたいな記述ができるのですが、これらの情報をどうやってとっているのかとか、ある程度まとめました。 まず、アノテーションの作成方法ですが、 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.Ret
私はDocBookの形式でドキュメントを書き始めようと思う前にSmartDocという形式でドキュメントを記述していました。しかしながら、いつの間にかSmartDocが活発でなくなり、そして、EPUBという新しい形式のドキュメントも普及してきました。 そこで、これに変わる新たなファイルフォーマットを探していました。 そして、ドキュメントフォーマットでこだわる点は以下です。 プレーンなテキスト形式であること。( Subversionなどを使ってバージョン管理がしやすい。) 複数のフォーマットに変換できること。( HTML, PDFそして,EPUB ) 専用のエディタ(らしき物)が世の中にあること。 このような点を満たしていれば、MS-Wordの使い方がわからなくて、その方法が採れないとか、SmartDocのようにタグを記述する際にレファレンスをみながら記述するということが少なくなります。 しか
gitでは、リモートリポジトリを複数登録できるのだが、このとき、あるリポジトリのあるコミット分だけ反映させたいという事がしたい時がある。 たとえば、オリジナルから派生して開発をしているが、オリジナルのバグ分だけ反映するといった使い方だ。 ここで、リモートリポジトリの登録から、そのリモートの変更分を取り込むまでの手順を記録しておきます。 もしかしたら、これよりいい方法があるかもしれませし、必要のない手順が含まれているかもしれませんが、 とりあえず、解決できる手順を覚書として記録しておきます。 1) リモートリポジトリを追加する git remote add [name] [uri] のようにします。 たとえば git remote add myremote git://git.sourceforge.jp/xxxxxxx.xxxx.git のようにします。 2) 追加したリモートリポ
JavaのサービスをApache commons daemonを使って起動する。 ようはOSの起動時にJavaのサービスを起動、そしてOSの停止時にJavaのサービスを停止したいということ。 ただし、OSはLinuxです。Windowsに関してはまだ調べていません・・・・ 昔は、sudo で対応していましたが、sudoで起動スクリプトを立ち上げるとsudoがなんかエラーを出力して、 設定を変えればいいらしいが、それも面倒なので何とかアプリの方で吸収できる方法をとるために、 Apache commons daemonにトライした。 (ちなみに、sudo のどんなエラーかは忘れてしまいました・・・) 必要なライブラリ Apache commons daemon download から、Javaのライブラリと Browse native binaries download area
昨晩、ほんの2,3時間を使って、nettyでhttp proxyサーバを作ってみた。 その前日、パケット中継を作ってみた。といっても、ほとんど、nettyのサンプルにあるまま。。。 でも、これがすごーく簡単なので結構可能性を感じた。 パケット中継とは、たとえば127.0.0.1:8080にアクセスすると、強制的にそのパケットを192.168.1.100:80に飛ばすようなもの。 これができると、クライアントでいろいろとネットワークで制限されていても、 迂回していろいろなことができてしまう・・・・というもの。 (もちろん、迂回した先にも仕掛けは必要ですが・・・) unixではstoneなんかがあるが、Windowsではまずそんな用途無いと思っていたが、 IEであるサイトにアクセスしなければいけないが、どうしてもプロキシ設定が変更できず、 でも、ある経路を通ってアクセスしなければ
Javaで定期的な処理を動かしたい(1) Javaで定期的な処理を動かしたい(2) – JMXとcronを使う の最後、以下のリストで言えば(2)の方法です。 (リストの順番と説明の順番がちょっとおかしいのですが・・・) 1)cronでJavaを起動し、このJavaVM上で処理を行う。 2)デーモンプロセス(としてのJavaVM)上でスケジューリングして、そのVM上で処理を行う。 3)cronでJavaを起動し、処理を行っているデーモンプロセス(としてのJavaVM)上で処理を行う。 今回はquartzというオープンソースを使います。 これは、今までの流れでわかるように、 crondの変わりをするようなものですが、それだけでなく、atdのような事もできます。 crondは知っていても、atdをしらない人は私の経験上、結構いるようですが、 ようは、1回しか実行されないスケジ
前回、オライリーの電子書籍アプリを購入してみて、epub形式にexportできるものとできない物がありました。 これをいろいろと調べてみると、アプリのファイルをzipとして解凍して、epubファイルのデータだけを取り出して、再度zipにすればよいとまでわかりました。 http://oreilly.com/ebooks/oreilly_iphone_tips.csp の一番下に書いてあります。 で、そのためにはインストールしたアプリのapkファイルが必要になるので、 それはappMonsterというツールを使いました。 こちらのツールは、検索すればいろいろ出てくるので省略します。 でもって、これを解凍して・・・・ファイルを探して、再度zipして、epubに拡張子をかえてってのが面倒なので、AIRのアプリを作ってみました。 をインストールして、画面にロゴが出ますので、そこにapkファイル
前回、Javaで定期的な処理を動かしたい(1)で、 1)cronでJavaを起動し、このJavaVM上で処理を行う。 2)デーモンプロセス(としてのJavaVM)上でスケジューリングして、そのVM上で処理を行う。 3)cronでJavaを起動し、処理を行っているデーモンプロセス(としてのJavaVM)上で処理を行う。 という3つの方法を示した。 そして、今回は順番がちぐはぐになってしまったが、リストの(3)の処理を考える。 前提条件として、JDK6を使っています。 JMXのサーバ側の処理を作る。 JMXServerSampleMXBean package com.coltware.java.samples.jmx; public interface JMXServerSampleMXBean { public static final String SERVICE_ADDRESS =
さて、gitの使い方を忘れないうちに、gitの使い方をメモっておきます。 git上で作成したブランチもgit-svnを使えばsvn上にブランチを作れると思っていたが、 どうやら、そうではないらしいので、git-svnを使ってsvnのブランチの使い方をメモしておきます。 1)ブランチを認識するようにワークを作成する git svn clone [uri] -T trunk -b branches -t tags 例) git svn clone file:///home/foo/svnroot/foo -t trunk -b branches -t tags 2)ブランチを作成する ※ gitのワーク上で作り方はわかりません。 subversionのワークを使って行ってください。 3)作成したブランチ情報でgitのワークを更新 git svn fetch svn 以下で、作成したブラ
Postfix とdovecotを使ってSMTP AUTHを使えるようにする必要性が出てきた。 というのも、gmailではSMTP AUTHが必須になっているので、このテストのためにもこの設定が必要だ。 このSMTP AUTHの問題さえ解決できれば私が作っているAdobe AIR版SMTPライブラリでメールがGmailを使って送れるようになる。 すでに、POP3版もできているので、これがそろえば送受信が行える。 幸いにも認証方法はLOGIN PLAINになっているので、dovecotで十分だ。 ちなみに、Postfixとdovecotのインストールがされていることが前提なので注意。 さて、PostfixでSMTP AUTHを使えるようにするにはというのをさがしてみるとPostfixの再インストールがされているものばかり。 しかし、最近インストールしたものなので、再インストールは必要
tomcatのスレッドを監視しておかしなスレッドがたまっていないか調べる必要がでてきた。 そこで、muninで監視するスクリプトを見つけたが、ちょっとちがったのと、個別のスレッドの状態までは確認できなかったので、自作しました。 ただ、perlがよくわからんので、そこはまねっこです。 use strict; use Switch '__'; my $ret = undef; if(!eval "require LWP::UserAgent;") { $ret = "LWP::UserAgent not found"; } if(!eval "require XML::LibXML;") { $ret .= "XML::Simple not found"; } my $URL = exists $ENV{'url'} ? $ENV{'url'} : "http://%s:%s\@127.0.
プログラムのIFの文法など、習うより慣れろで全く気にしたことがなかったが、さて、その文法を解釈する側になるとそうもいかない。 それは、以下の本をよんでいて気づかされた。 別に、コンパイラを作りたいわけではないが、コンパイラを知ることでいろいろな事がわかる。 まず、OSの仕組みや、パターンマッチング、メモリ管理などなど・・・ パーサ関連に初めてまじめに考え始めたのが、仕事でHTMLをパースする必要があったためだ。 私が作ったアプリはHTMLのすべてのリンク(外部リソース)を管理し、その関係を管理するツールだった。 まあ、HTMLのパースはC言語なんかと比べることができるほど複雑ではないですが・・・ でも、やっぱり、この辺の知識としてスタックしておくことは、将来悪くない。 それに、C言語を使い始めているが、やはりCを知るためには、文法を勉強していてもらちがあかない。 コンパイラを知れ
Flex Builderとsubversion(subclipse)を一緒に使っていて、コミットするとたまに、 「ワークスペースをビルド中」というメッセージで固まってしまうときがある。 なぜだか原因がわからない。そこで、いろいろ試してみる。 1)強制終了&再起動 2)起動時にキャッシュをクリアするようにする。 ( eclipse.exe -clean ) 3).metadata\.plugins\org.tigris.subversion.subclipse.coreにある .svnProviderState を削除 4)ワークスペースを再作成 意味があるのかないのかよくわからないが経験則で1から3のようなことをしている。 ほかにもがちゃがちゃとやっているので、それらが影響しているかわからないが、これらで解決してきた。 4)をやれば100%解決できるが、これだとコミットしていな
subversionのリポジトリをgitに変換はよくあると思うが、gitのリポジトリをSubversionに変換というのを今回やりたい。 というのも、何度もいっているが、中央には、Subversionで、各ワークをgitで私は使いたいからだ。 (これは、Tracとはviewvcとか、すでに構築してしまった環境を変えるのも面倒というのもある。) しかし、今回はとりあえず、ネットにつながっていない環境で初めてしまったgitのリポジトリをSubversionに変換して、 再度、git-svnで再開したいのだ。 こんな用途を持っている人はあまりいないのか、WEBで方法を探したがすぐには見つからなかったので、 自分なりに、次のような手順でログ情報だけでも取り込むことにした。 Subversionのリポジトリを作成 ここでは、Subversionでのリポジトリを作成する方法は述べない。 で、s
今回は、airxmailライブラリで、gmailを使ってメールを送信する場合の例です。 gmailを使う場合には以下の2つの点に注意する必要があります。 SMTPサーバで認証を使用する (SMTP-AUTH) STAR [...]
プロジェクトの工数算出というものに対して非常に疑問に思うことがある。 工数とは、各機能を算出してそれらを足していき、そこにある程度のスパイス(保険)を足して算出する感じだろう。 ここに、スパイスというよくわからないものがあるが、このスパイスが経験でズバッと3倍とか、1.5倍とか… ここまでいい加減でないにしても、それぞれの機能に複雑度・影響度を加味した係数をかけて、足していき・・・・・ って、これで実際に工数を出してみても、本当にその考え方あってるの?と疑問に思う。 そもそも、 そのプロジェクトはいつまでに完了(納品)しなければいけないのか、とか? 何人投入するのか(できるのか?) が、関係するんじゃないんかなー。 それらは、工数を出してからというかもしれないが。 だったら、導き出せる工数というのは場合の数だけ複数あるのではないだろうか? そんな状況を示すのは、こういう会話では
HTTPのレスポンスをmuninで監視するためにプラグインをperlで作成しました。 監視できるのは、 レスポンスの成功率:レスポンスの本文が指定した文字列が本文にあること 平均レスポンス秒:レスポンスの秒数 指定した秒数以上にレスポンスがかかっている率 のようなものが監視できます。 以下のような環境変数の設定が必ず必要です。 それ以外は、ソースをご参照ください。 URL
以前公開していた、ZIP圧縮・解凍ライブラリですが、airxmailと同様にGoogle Codeに移動して公開することにしました。 こちらです。 これに伴い、ライブラリ名をairxzipに変更し、パッケージ名も変更しました。 まだまだ準備不足ですが・・・・ また、これ以外にパスワード付きZIPファイルにも一部対応しました。 ただし、ZipCrypto(PKWare crypto)形式の暗号化のみです。 こちらで説明されている、VII. Traditional PKWARE Encryptio という形式のみです。 この形式はWindowsXPなどで使われている暗号形式ですので、まあ、ふつうの人が一般的に目にするレベルでは使えるようになったと思います。 パスワード付きZIPファイルの使い方は以下のようになります。 作成(圧縮)方法
gitでは、ちょっとした開発やバグフィックスなどbranchを使用して開発する。 このために、頻繁にマージしたくなる。 ただし、ここであえて「マージ」と記述したのは、”git merge”のことではなく、 変更した内容を反映させたいという意味で「マージ」だ。 そのマージする際の、いろいろな手順にを覚書として記録しておく。 1)ブランチのコミットした内容も含めてマージする git merge [ブランチ名] 2)ブランチの修正した内容すべての変更を取り込む つまり、1)でやったこととほぼ同様だが、コミットはしない。 git merge --squash [ブランチ名] これで、ブランチ上で行ったすべての変更が1つになって取り込まれる。 しかしながら、これでは、せっかく何度もブランチ上で育てたログが無駄になってしまう。 ログとソースをきれいにした状態で再作成したい場合にはこれではこまるの
前回、メールの送受信するAIRのライブラリ公開(airxmail)をお知らせしたが、 今回は、オーソドックスなメールの送信方法を紹介します。 その前に、必要なライブラリをサイトからダウンロードしてください。 ダウンロードタブから、coltware_airxmail_r15.swcをダウンロードしてください。 airxmailのサイト このサンプルで必要なクラス
一見すごく簡単そうなのに、ちょっとはまってしまったので記録。 システムがなんか変な時に、topコマンドをまず見てみる。 でも、遅い時がわかっているが、自分がその時にtopコマンドを実行できないなどという場合には、 topコマンドをバッチモードでしかも、cronで定期的に動かせばいい。 マニュアルを http://www.linux.or.jp/JM/html/procps/man1/top.1.html 見ればわかるが、覚書のために自分が使う手順を載せておく。 top -n 1 -b これで1回限り、TOPコマンドの結果が出力される。 したがって、これをcronで起動させればいいので、 */10 * * * * top -n 3 -b > /tmp/top_`date +%H%M.txt` のようにしておけば、10分毎に3回のTOPコマンドの結果を/tmpの下に保存しておける。
Flexでは、Base64方式にエンコードも、デコードも簡単にすることができます。 とくに、デコードなどはネットから取ってきたBase64形式で取得して、画像として表示(バイナリ形式にもどす)ということもやることでしょう。 では最初は、デコード方式
flexのValidatorを使っているときに、ふと疑問におもったので調べることにした。 というのも、チェックしたい値があるオブジェクトと、エラーを出力したいオブジェクトが異なるときに一体どうすればいいのだ?はたまた、Validatorはもうちょっと使いやすくならないだろうか? と思ったのがきっかけだ。そもそも、Validatorの例などをぶらぶらとみて使っているだけなので、 もっと応用がきくような気がするのだ。 という事で、Validatorを使うときには <mx:Validator id="v1" required="true" source="f1" property="text" /> <mx:TextInput id="f1" /> <mx:Button click="{v1.validate()}" /> なんて感じにつかうようにサンプルが書いてある。 さて、このVal
次のページ
このページを最初にブックマークしてみませんか?
『つれずれなるままの開発日記』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く