tips

一般的なInputStreamからChannelを生成する

FileInputStream には #getChannel() があるけれど、一般的な InputStream を Channel にしたいときはこうする。: Channel ch = java.nio.channels.Channels#newChannle(InputStream);

StringをInputStreamに変換する

InputStream を受け取る API に、文字列から生成した InputStream を渡したいことがある。 このために StringBufferInputStream があったのだけれど deprecated であり、 StringReader を使うよう推奨されていて困る、ことがある。 自前で String から Input…

ラッチオブジェクトによる、一回だけ呼び出し

Heavy_WritableCheck() が重いため update() を呼びだす UI スレッドが固まるという問題が報告された。幸い isWritable() はワーカースレッドから呼ばれるので、そちらに Heavy_WritableCheck() の呼び出しを移そうということになった。なんてことがあったり…

build.xml をもとにビルド結果の apk 名を決めて署名する Makefile

Android アプリケーションのビルドにコマンドラインツールである ant を使っている場合、署名しなければインストールできないし、いちいち署名するコマンドを入力するのも手間。複数のアプリを管理している場合はとくに。ということで build.xml からできあ…

Emacs で編集した subversion コミットメッセージのバックアップをやめる

ワーキングツリーに svn-commit.tmp~ がとっちらかって嫌になっていたので、ようやく重い腰をあげて対処。以下を ~/.emacs に追加。 (setq backup-enable-predicate '(lambda (path) (and (normal-backup-enable-predicate path) (let ((name (file-name-non…

VirtualBox の仮想 HDD イメージ(.VDI)圧縮

以前に書いたけれど Ubuntu では run level 1 の起動方法が違ってハマったためまとめなおし。手順は 1) ゲストで空き領域をゼロで埋め、 2) ホストでイメージを圧縮、となる。以下詳細。 ゲスト Ubuntu での操作 zerofree コマンドで空き領域をゼロで埋める…

#ifdef 分岐を制御するプリプロセッサー定義の探索

由緒正しいソースコードをメンテナンスしていると、大量の #ifdef 分岐に泣かされることが、よくある。よし、ソースコードや Makefile で定義されているプリプロセッサー(つまり #define や -D オプション)をあらかじめ列挙しよう! そうだ、分岐に使われ…

環境変数のチェック

シェルスクリプトで、実行のために必要な環境変数が定義されていることを確認するために、こんなしかけを書いてみた。 for n in VERSION WORKDIR SDKROOT TARGET KEY; do if ! [ $(eval echo "$"$n ]; then echo "ERROR: missing environment '$n' (at ${0})…

sudo mount したときに、ログインユーザーでのパーミッションをつける

Ubuntu でファイル共有などファイルシステムを mount するとき、 sudo を使うのでマウントポイントが root の持ち物になってしまう。 するとせっかくマウントしたのに書き込もうとするたびに sudo しなきゃならなくなり、あまりにも馬鹿ばかしい。 対処法は…

subversion http リポジトリーへのアクセスに http proxy を使う方法

~/.subversion/servers ファイルの global セクションに http-proxy-host と http-proxy-port を追加すればよい。 (Linux の場合)Windows の場合の設定方法や、その他の設定について詳しくは Version Control with Subversion を参照のこと。(http_proxy に…

Windows にインストールされている .NET Framework のバージョンを列挙する

コマンドプロンプトから DIR コマンドを使って確認できます。こんな感じ: > dir /ad /b %SYSTEMROOT%\Microsoft.NET\Framework v1.0.3705 v1.1.4322 v2.0.50727 v4.0.30319 > dir /ad /b %SYSTEMROOT%\Microsoft.NET\Framework64 v2.0.50727 v3.5 v4.0.30319

VirtualBox Linux ゲストファイルシステムの圧縮

VMware の VMDK 形式のまま VirtualBox でつかっている仮想 HDD、 Linux ゲスト内では 11GB 程度の使用量なのにホストファイルシステム上では 47GB も占有している。いかん、これではいかんよ。ということで、 VBoxManage modifyhd で --compact しようとし…

goo.glによる URL 短縮

某所で配布されている Goo.gl URL 短縮用ブックマークレット、 Windows 版 Chrome では aleart ボックスのテキストが選択できないため手で書き写すしかなく苦労していた。ていうか、こういうところに人間が手をかけちゃいけないんだよアニキにアネキ!という…

openssl ライブラリーのデバッグ版 (Windows 用) を自前ビルド

パッケージ内の INSTALL.W32 ファイルにビルド方法 (デバッグ版ライブラリーのビルド方法もあわせて) は書かれているけれどそのままではライブラリーの中にステップインできないので、その改善方法のメモ。パッケージ内の util/pl/VC-32.pl ファイルを Wordp…

opensslによるサーバー証明書失効リスト (CRL) 確認

以前 d:id:i_k_b:20090714:1247565189 で書いた情報に不足があったため補足。openssl s_client サブコマンドは SSL 上で SMTP や POP、 HTTP を通すためのクライアントコマンドで、その際にサーバー証明書の検証が実施される。単純には下記コマンドで server…

Mac OS のターミナルでするファイルのダウンロード

コマンド curl を使うとよい。 使い方は適宜マニュアルを参照してもらうとして、単にダウンロードして保存するだけなら: $ curl -O <resource> O オプションはファイルへの保存を指定している。 また は http やら ftp などで示されるリソースへのパス。あと ftp や We</resource>…

iPod touch で pdf を閲覧する

検索してみるといろいろな人たちが悩んでいる様子。なんで iTunes で転送できるようにしてくれないんだろうねえ、 Apple。 Twitter でゆるく尋ねてみたらヘビーなユーザーの方からいくつか示唆をいただけたのでまとめてご紹介: Air Sharing http://twitter.c…

openssl コマンドで https サーバー証明書検証をする方法

openssl の s_client サブコマンドで https サーバー証明書のチェインおよび失効リスト (CRL) の確認ができる。たとえば twitter.com の証明書を検証するには openssl s_client -connect twitter.com:443 -no_ssl2 -showcerts -crl_check_all とすればよい。…

javascript の日付オブジェクトを YYYY/MM/DD hh:mm:ss 形式文字列に変換する

javascript の Date オブジェクトを文字列化すると ctime 形式の文字列に変換されるけれど YYYY/MM/DD hh:mm:ss 形式にしたいこともある。ということで変換処理を書いてみた。 function myDateToString(d) { var ns = ["getYear","getMonth","getDate", "get…

Twitter ライブ検索を Windows 7 に統合する

以下の XML 断片を twitter.osdx として保存し (ASCII 文字だけで構成しているためファイルエンコードは特段気にしなくてよい)、 Windows エクスプローラーでダブルクリックする。 <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"> <ShortName>twitter</ShortName> </opensearchdescription>

WSH JScript による XMLHTTPRequest で更新日取得

lambda が渡せるので、とても楽しい…! function check(url, out) { var bf2wk = new Date(new Date() - (14 * 24 * 60 * 60 * 1000)); var req = new ActiveXObject("Msxml2.XMLHTTP"); req.onreadystatechange = function() { switch(req.readyState) { ca…

×設定を確認してください ○設定を変えてから元に戻してみてください

「お前のやり方が間違っている」と感じさせずに、「ソフトウェアがちゃんと動くようにするために」と伝える、と。なるほどー。 Instead of telling them to check a setting, tell them to change the setting and then change it back “just to make sure t…

#if 0 hacks

ネタ元: d:id:Seasons:20090504:1241390314 さっそく試してみた。たしかに楽しい。 $ cat << EOF > a.c > #if 0 > src=\$0; dst=\${src%.*}; gcc -o \$dst \$src && ./\$dst; exit > #endif > #include <stdio.h> > int main(void) { return puts("hello, world."), 0</stdio.h>…

プレゼンテーションのデザインパターン

id:shi3z 氏の記事 d:id:shi3z:20090405 を読んで、プレゼンのデザインパターンの部分を抜き書きしてまとめたスライドをつくりました。すばらしい記事を公開してくださりありがとうございます。

言い訳したがりの直し方…ではなかった。残念

ライフハッカーの記事にこんなのがあって… 「言い訳を頻繁にするようになると、相手はそれをあなたの性格、性質として見るようになります」とマクロイ教授は書いています。これを避ける方法としては「他人があなたに言い訳をしていると、あなたがよく言い訳…

ActiveX コントロールの安全性チェックの仕方

(日本語訳も機械翻訳でないものが公開されているけれど、自分でもした。)コントロールのセキュリティはとても主観的な判断になります。以下の質問は、コントロールのセキュリティを考えるときに役立つでしょう。また大規模なセキュリティレビューの一部分と…

The Cult of Done Manifesto

「やり遂げる」人のマニフェストから、原文に飛んで。 The Cult of Done Manifesto There are three states of being. Not knowing, action and completion. Accept that everything is a draft. It helps to get it done. There is no editing stage. Prete…

Internet Explorer をデフォルトブラウザーに戻す方法

[Tools | Internet Options | Programs | Default web brouser] にある [Make default] ボタンを押す。日本語環境なら「ツール | インターネットオプション | プログラム | 既定の Web ブラウザ」にある「既定とする」ボタン。