メールを受け取らないサーバでのexim4の設定

unixユーザアカウントが1つか2つ、メールを外部に送ることはあっても内部のローカルメールなんか見ないよという場合のexim4の設定。目新しくはないけど、よくやる設定なのでメモしておく。今回の例では myhostname が設定するサーバのホスト名で、 myhostnam…

node でIRCボットを書いてみた

書いてみた。フラッドプロテクションもちゃんと実装した。 http://dl.dropbox.com/u/10049046/node-ircclient.tgznode v0.7.4で動作確認。追加で node-iconv モジュールが必要。チャネル内のユーザがURLを書いたらそこにアクセスしてタイトルを読みに行くサ…

crontabを使えるユーザを制限する

目新しい話でもないけど、忘れがちなのでメモ/etc/cron.allow に許可するユーザ名を列挙するか、もしくは /etc/dron.deny に 禁止したいユーザ名を書いておく。なお、 /etc/cron.allow が存在する場合はたとえその内容が空でも /etc/dron.deny は参照されな…

privoxyとiptablesで透過型HTTPプロクシ

privoxyは正規表現ベースのアクセス制限や強力なフィルタ機能のあるHTTPプロクシだ。iptablesと組み合わせると透過型プロクシとして設定することもできる。今回は透過型プロクシを使って、特定ホストに対してのみHTTPリクエストが可能なように設定してみる。…

AIDEで改竄検知

改竄検知は頻繁に偽陽性(false positive)に煩わされることになるイヤな管理タスクだが、セキュリティ上避けて通れない。ファイルアクセスをフックしてリアルタイム保護してくれるようなサービスがあるともっといいのだが、Linuxではあまり発達していないよ…

Xenを使って Ubuntu 11.10 (oneiric) の上で Debian 6.0 (squeeze) を動かす

(ホスト側) 必要なパッケージ lvm2 2.02.66-4ubuntu3 libc6-xen 2.13-20ubuntu5 libxenstore3.0 4.1.1-2ubuntu4.1 xen-docs-4.1 4.1.1-2ubuntu4.1 xen-hypervisor-4.1-i386 4.1.1-2ubuntu4.1 xen-tools 4.2.1-1 xen-utils-4.1 4.1.1-2ubuntu4.1 xen-utils-co…

Ubuntuの遠隔アップグレード

そのサーバのOSに入れてもらったのは Ubuntu Linux 10.04 で、2年近く古いバージョンだった。でも大丈夫、Debianやその派生のディストリビューションはパッケージシステムがしっかりしているので、遠隔操作でも比較的容易にアップグレードが可能だ… とはいえ…

レンタルサーバのOSを再初期化

rootつきのレンタルサーバを借りてるんだけど、割と情けない理由でOSを再初期化することになった。 2012年2月16日22:24 業者さんのWebサイトに問い合わせを出した 2012年2月17日3:28 業者さんから返事が返ってきた 2012年2月17日6:09 書式をあわせてOS再イン…

Androidアプリから画面サイズを取得する方法

Androidアプリから画面サイズを取得する方法が、2.xと3.x以降で変わっていたのでメモしておきます。 実例 まずはテストアプリのスクリーンショットから。 表記の説明 layout root : View階層のルートのサイズ DisplayMetrics : Context#getResources().getDi…

Windowsから多段SSH

踏み台をいくつか超えてサーバに接続した時のメモ。 クライアント cygwin ck3 http://www.geocities.jp/meir000/ck/index.html ck3の使い方はzipファイル中のドキュメントで。 とりあえず色とフォントだけ変えれば普通にviやtopやlessが使えるみたい。cygwin…

イアホン買った

もう6年以上ER-4Sというイアホンを使ってて、これはこれで遮音性が良くて音が締まってて繊細なところが気に入っていたのだけど、音源によっては中低音が痩せるのが目立ってしまい不満があった。で今回、ortofonのe-Q7というイアホンを買ってみた。 http://ww…

Androidアプリがどうデータベースを取り扱うか

端末にデータを保存するアプリを4日くらい書いてたので、その時に調べたことのメモ。 あ、書いてたアプリはこれです。 https://market.android.com/details?id=jp.juggler.SubwayTweeter 基本的な構造 SQLiteOpenHelper ↓生成 SQLiteDatabase ↓生成 SQLiteCu…

Android 3.0の壁紙について

Android 3.0のHomeは壁紙の扱いがかなり変わった。 手元にある端末だと 画面サイズは1280x768なのに、壁紙マネージャの要望するサイズ1920x1408だ。 でかすぎるだろ… 実際に表示されるのはおおむね中央部分だけで、残りの一部はAppDrawrや追加ボタンを押した…

Androidのテキスト閲覧ソフトの比較

2chのVIP板で連載されてた小説を、Android端末で読みたくなったんですよ。 71667行、1059640文字。UTF-8のテキストで、2.77MBあります。2ch特有の記事ヘッダなどがあるのでサイズは小説一本分よりやや大きめですが、非現実的なサイズではありませんね。DropB…

Android の Application task の、 Activity stack に関する怪現象

開発中に起きた出来事。発生した端末はXperia。 再起動してアプリをインストールし直したら発症しなくなったので、原因は分からず。 アプリの構造 このアプリは起動したら画面Aが表示されて、暫く待つと自動的に画面Bに移る。 ここで Home keyを押すと、A->B…

Android の java.net.HttpURLConnection

Android SDKで使えるHTTPクライアントクラスについて、gitから取ってきたソースを見つつその挙動を調べてみる。賞味期限の短い記事だと思うので、利用には注意してほしい。Android SDKで使えるHTTPクライアントクラスは三つある。 java.net.HttpURLConnectio…

apkファイルに含まれたAndroidManifest.xmlのデコード

androidのアプリケーションパッケージであるapkファイルを適当なアプリでSDカードにバックアップした後、そのzipされてる中にある AndroidManifest.xml を読むことになったのでメモしておきます。xmlなんですがバイナリにエンコードされています。 文字列テ…

Androidアプリの間違った作り方

とある外注さんが書いてきたコードがひどかった。 バックグラウンドでのオーディオ再生を、Activityから作成したワーカースレッドで行う。キャンセル処理は全く考慮していない。 UIスレッド上でばんばんHTTPリクエストを投げる。応答を読み終わるまでループ…

libscl続き、Judy

libsclはイテレータ使用中にコンテナを操作できないという問題があって、私の用途だとこれが致命的だったので使うのをあきらめました…。で、かわりに使ってみたのが Judy http://judy.sourceforge.net/ 。 このライブラリではデータは疎な配列として扱われて…

libscl

libscl http://sourceforge.net/projects/libscl/ はC言語用のコンテナライブラリ。 ユーザガイドはよく書けているし、コードもおおむね読みやすい。Linux amd64 でビルドした時に出たエラーと、sf.net で指摘されているバグを直す。

PostgreSQLのサーバ側ユーザ関数

お客様のサーバに入ってるストアドプロシージャをシステムカタログから読んで、引数や戻り値の部分をごにょごにょと解釈してから改造版をでっち上げてきた。バッドノウハウにも程があるな…しかもPostgreSQLはこのあたりの仕様がまだ安定しておらず、8.0.xと…

携帯の絵文字でgdgd

携帯用のコードを書いてたら、既存の静的コンテンツや設定ファイルに、3キャリア分の絵文字が併記されていた。sjis上では重複しないから1ファイル中に書いても問題はないらしい。実際には、 sjisコード上ではsoftbankの裏マッピングが他の絵文字と衝突するが…

Imagerで画像編集

Strawberry Perlに入ってた Imagerモジュールで画像を少し加工した。ドキュメントが読みにくいけど、Windows環境でもGDIフォントでUnicode文字列を普通に描画できて、いいねコレ。

DBD::SQLiteの謎エラーの続き

DBD::SQLite が not an error を吐く件は DBD::SQLite 1.27 でも出たんだけど、ModPerl::Registryと何か関係があるらしい。コマンドラインから実行すると出ない。

mod_bwの調整

借りてるサーバにmod_bwを入れてるんだけど、BandWidthディレクティブのしきい値がifconfigで取れる転送量とマッチしてない。BandWidthディレクティブを2MB/sくらいに設定しても、ifconfigで400KB/sを超えないあたりで遅くなってる。面倒だけど統計を眺めな…

Strawberry Perl 5.10.1.0 に同梱されているPerlモジュール

Strawberry Perl 5.10.1.0 に同梱されているPerlモジュールの一覧のpodを全部読んでみた。

O/Rマッパー

たとえば画像を扱うのに、ピクセルをクラス化してもあんまり有用じゃない。効率最重視のC++ですらそれは悪い選択だ。オーバーヘッドが大きくなるばかりで、クラス化によって得られる利点は別の方法でも代用できる。たぶん「画像はピクセルの集合である」とい…

PHPの連想配列で、キーの有無を確認する

PHPの連想配列に多めのデータを詰め込んでみたら異常に遅かった。perlだと3秒くらいの処理に17秒かかる。で、色々調べてみたが実用コードとベンチマークで順位が逆転する場合があったりして、どう書くのが最適なのかまだよくわからない。 @$ary[$key] よりは…

MySQLで全文検索

MySQL FULLTEXT + Ngram : LIKE検索より数十倍高速な、お手軽 日本語全文検索 について|blog|たたみラボ に書かれてた、MySQL のFULLTEXT インデクスを使って boolean mode でクエリをかけることで全文検索を実現する方法を試してみたよ。 match(col)again…

PHPでテキスト処理

PHPでテキスト処理を書いた時のメモ UTF-8の文字列を文字の配列に分割する 最初に書いたというか、Webからコピペして整形したコードはコレ。 function mbStringToArray($text,$enc="UTF8"){ $result= array(); $len = mb_strlen($text,$enc); while($len){ $…