読者です 読者をやめる 読者になる 読者になる

Fedora 17 まとめ

Gnome のfallback mode の設定 # gsettings set org.gnome.desktop.session session-name gnome-fallback sshd の有効化、起動、停止、再起動 # systemctl {enable|start|stop|restart} sshd.service 日本語入力環境 Input Method Selecter から、EnglishとJ…

How to disable "Go Back" and "Go Forward" keys next to the cursor keys

Make .xmodmap in your home directory and login again. keycode 166= keycode 167=

How to switch to gnome-fallback mode on Fedora 15

GNOME3 shell is really sucks. We all should use gnome-fallback mode. It's nice. gsettings set org.gnome.desktop.session session-name gnome-fallback

How to capture video from IEEE1394 to Linux

Env: Fedora Core 151) Add RPM Fusion repository $ su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-rele…

Amazonの買い物時に毎回紹介料をもらうGreaseMonkeyを書いた

GreaseMonkeyのお勉強をかねて、奥さんが買い物するときに簡単に僕のアフィリエイトのリンク経由で買い物できるGreaseMonkeyを書いて見た。たったの10行。GreaseMonkeyは思ったより簡単だった。1. Amazonのアフィリエイトのアカウントを作成(無料) Amazon…

dyndns.com 用のシンプルなクライアント

dyndnsを調べてみると、IPアドレスを更新するには、以下のURLにアクセスするだけでよいようだ。 http://members.dyndns.org/nic/update?hostname=ホスト名&myip=IPアドレスただしこのページにはBASIC認証がかかっている。 dyndns用のクライアントを探したけ…

Semisynchronous Replication (半同期レプリケーション?)を試してみた

今までの非同期レプリケーションでは、同期完了前にマスターが死んだ場合に、データのロストが起きるが、MySQL5.5から導入された Semisynchronous Replication(半同期?)を使うと、スレーブ側のバイナリログの更新までが同期で行われるのでデータのロスト…

SMTP Authを使った外部のSMTPサーバーへのリレー方法

自宅サーバーからメールを送信する際に、直接メールを送信するのではなく、ISPが提供しているSMTPサーバーを利用する。 通常は固定グローバルIPでは無いため、SPAM扱いされ易いが、正規のSMTPサーバー経由で送信するので素性の知れたメールになるので少しはS…

外部からファイアウォール内のLinuxにsshでログインする方法

ファイアウォール内にある友人のLinuxをリモートからサポートしてあげる場合には、以下の方法でOK。ファイアウォール内にあるLinux上から以下のコマンドを入力する。 # ssh -N -R 20022:localhost:22 root@自分のサーバーのIPアドレスこれで、自分のサーバー…

How to install CentOS5

友人のためにCentOS5のインストール入門を書いてみる。 インストールメディアを準備 http://www.centos.org/ からisoイメージをダウンロードして焼いておく。 32ビット版と64ビット版があるのでマシンに合わせて選ぶ。 インストール 一番面倒くさいのがパー…

mod_rewrite まとめ

準備 SSLProxyEngine On #httpsのURLに転送ではなくてリバースプロキシーする場合には、Onにしておく RewriteEngine On #必ずOnにしておく RewriteLog "logs/rewrite_log" #デバッグに非常に便利 (/var/log/httpd/rewrite_log) RewriteLogLevel 9 #9が最高。…

Static Route (スタティック ルート) の追加

以下のコマンドでroute を追加する。(-p はパーマネント。リブートしても設定が残る) route add -p ネットワークアドレス mask ネットマスク ルータのIP route add -p ネットワークアドレス mask ネットマスク ルータのIP if インタフェース番号以下のコマン…

カスタマイズ

無駄な装飾をなくしパフォーマンス優先にする Win+r SystemPropertiesAdvanced.exe「Performance」の「Settings...」をクリックする。 「Adjust for best performance」を選択する。

man コマンドなどで日本語の方を見たいとき

rootの言語は英語にしているが、その場だけ日本語にしたい場合は、環境変数「LANG」に「ja_JP.UTF-8」にセットしてから実行すればよい。 # LANG=ja_JP.UTF8 コマンドそのままだとエラーメッセージも英語 # ls -ltr /foo/bar ls: /foo/bar: No such file or d…

MTAをSendmailからPostfixに変更する方法

今までCentOS上で、MTAをSendmailからPostfixに変更する場合は、 # system-switch-mailというRedhat固有のコマンドを使っていたが、デフォルトでは入らないので、 # yum install system-switch-mailしていたが、同僚からalternatives(これもRedhat固有)と…

容疑者Xの献身 東野圭吾

容疑者Xの献身 (文春文庫)作者: 東野圭吾出版社/メーカー: 文藝春秋発売日: 2008/08/05メディア: 文庫購入: 36人 クリック: 219回この商品を含むブログ (678件) を見るこのシリーズはどれも細部まで丁寧によく練られていて面白いのだけど、今回のは特に面白…

時生 東野圭吾

時生 (講談社文庫)作者: 東野圭吾出版社/メーカー: 講談社発売日: 2005/08/12メディア: 文庫購入: 8人 クリック: 84回この商品を含むブログ (223件) を見る東野圭吾にしては細かいところが雑な印象。粗探しするわけじゃないけど、粗が目立ってしまう。東野圭…

I am... Sasha Fierce - BEYONCE

I Am… Sasha Fierceアーティスト: Beyonce出版社/メーカー: Sony発売日: 2008/11/18メディア: CD クリック: 13回この商品を含むブログ (13件) を見る「If I were a Boy」「Halo」「Broken-Hearted Girl」「Ave Maria」が良すぎ。 歌声が力強くて上手で、スロ…

ダイイング・アイ 東野圭吾

ダイイング・アイ作者: 東野圭吾出版社/メーカー: 光文社発売日: 2007/11/20メディア: 単行本 クリック: 27回この商品を含むブログ (135件) を見る冒頭の交通事故のシーンがとても印象深かった。そこは強烈過ぎて2回読んだ。まさしくダイイング・アイという…

svnクライアントのバージョンとワーキングコピーのバージョンを揃える方法

Linux上のワーキングコピーをTortoiseSVN と、コマンドライン版を両方使って作業すると、ワーキングコピーが勝手に新しいバージョンのフォーマットになってしまう。その結果以下のようなメッセージが出てくる。 This client is too old to work with working…

任意のgatewayの追加方法

特定の宛先に対しては特別なルータを経由させたい場合には、ゲートウェイを以下のように追加する。/etc/network/if-up.d/static_routes というファイルを作成し以下のように編集 #!/bin/sh /sbin/route add -net 192.168.250.0 gw 192.168.0.201 netmask 255…

ドル→円のまとめ

海外在住者が日本に旅行に行きます。1万ドル程度の米ドル現金を.. - 人力検索はてな にてドルを円に両替する方法を調査したところ、いろいろと情報が得られた。自分でも追加で調べたところ多くの人に取ってはソニーバンクが最高過ぎるということが分かった。…

Pthread の排他処理のサンプル

自分用。 ソース (pthread_mutex.c) #include <stdio.h> #include <unistd.h> #include <pthread.h> #include <stdlib.h> #define MAX_THREADS 3 void start_threads(void); void thread_main(void *args); void synchronized_printf(const char* s); static pthread_mutex_t mut = PTHREAD_MUTEX_I</stdlib.h></pthread.h></unistd.h></stdio.h>…

C言語で、Gratuitous ARPパケットを送信するサンプル

自分用メモ。 #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <netdb.h> #include <string.h> #include <unistd.h> #include <ctype.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <sys/param.h> #include <sys/sysctl.h> #include <arpa/inet.h> #include </arpa/inet.h></sys/sysctl.h></sys/param.h></sys/ioctl.h></sys/socket.h></sys/types.h></ctype.h></unistd.h></string.h></netdb.h></stdlib.h></stdio.h></errno.h>

C言語でNICの情報を取得するサンプル

eth0 の IPアドレス、MACアドレス、ifIndexを取得するサンプル。自分用メモ。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/ioctl.h> #include <net/if.h> #include <netinet/in.h> #include <arpa/inet.h> void get_ifinfo(char *devname, struct ifreq *ifreq, int flavor) { int iofd; if ((iofd = socket(A</arpa/inet.h></netinet/in.h></net/if.h></sys/ioctl.h></string.h></stdlib.h></stdio.h>…

3つのプログラミング言語での syslog の使い方メモ

C、Perl、Python でのsyslogのサンプル。 C #include <stdlib.h> #include <syslog.h> int main(int argc, char** argv){ openlog(argv[0], LOG_PID|LOG_PERROR, LOG_LOCAL0); syslog(LOG_INFO, "foo: %d", 123); closelog(); exit(EXIT_SUCCESS); } Perl #!/usr/bin/perl use st</syslog.h></stdlib.h>…

3つのプログラミング言語での getopt の使い方メモ

C、Perl、Python でのgetoptのサンプル。 とりあえず、help, version, user, password の4つのオプションを指定できるようにした。 使い方 % my_getopt --help % my_getopt -h % my_getopt --version % my_getopt -v % my_getopt --user=foo --password=abc …

Pythonでprefork型のデーモンを書く

Pythonのお勉強を兼ねて、先日 Cで書いた C言語でprefork型のデーモンを書く(3): デーモン化 - Sleepless geek in Seattle をPythonに移植してみた。 条件分岐、ループ、関数定義、ファイル操作、fork、wait、シグナルハンドラ、連想配列、などなど短いプロ…

C言語でprefork型のデーモンを書く(4): init スクリプト

prefork して、シャットダウン可能なデーモン本体ができたので、次はinit スクリプトを用意する。 適当なサンプルは、/etc/init.d/ 以下にたくさんあるのでそれを参考に書いてみた。 デーモン起動時に /var/run/my_prefork_daemon.pid が自動作成されるのを…

C言語でprefork型のデーモンを書く(3): デーモン化

prefork して、シグナルで綺麗に終了できるようになったので次はデーモン化する。デーモンをkill しやすいように プロセスIDをファイルに書いておくwrite_pid()関数と、デーモン化関数daemonize()を追加している。 my_prefork_daemon.c デーモン化の処理が入…

C言語でprefork型のデーモンを書く(2): 非デーモン prefork シグナルハンドラ付き

1つの親プロセスとたくさんの子プロセスという構成。親プロセスに SIGTERM を送ると、すべての子プロセスをきれいに終了させた後で終了するようにシグナルハンドラを追加したサンプル。 my_prefork_signal.c シグナルハンドラ付きのソース #include <stdio.h> #includ</stdio.h>…

C言語でprefork型のデーモンを書く(1): 非デーモン prefork サンプル

Cで書かれた prefork デーモン(daemon)のちょうど良いサンプルが見つからなかったので自分で書く。 ちょうど良いお手本がないので PerlのソースをCに移植した。 プラットフォームはCentOS5.2。 my_prefork.c ただの prefork のサンプル(デーモン化はしてい…

Cでハッシュテーブルを使うときのメモ

C

Cでハッシュテーブルを使いたくなったので、調べてみたら APR(Apache Portability Runtime) のハッシュテーブルのパフォーマンスが良いらしい。名前的に移植性も良さそうな気がする。 簡単な使い方を兼ねたサンプルをメモがわりに残す。プラットフォームはCe…

Windows Server {2000,2003,2008} でDSRを行う方法

「Keepalived + LVS + CentOS4 でロードバランサー(DSR) - Sleepless geek in Seattle」あたりで、Keepalived を使ったCentOS のロードバランスは簡単にできるようになったが、Windows Server の設定はどうやるんだろうと調べてみたら、こんな素敵なエント…

Postfixのコンテンツフィルターを複数設定する方法

Postfixには、ウィルススキャン や アンチSPAM などをフィルターコンテンツフィルターという方法でプラグインできる。 その際に、amavisd-newや自分で作ったカスタムフィルターなどを組み合わせたいときには、複数のコンテンツフィルターを併せて設定すれば…

メール1通あたりの最大サイズの設定

main.cf の最後に以下の行を追加。単位はバイト message_size_limit = 10240000

Ubuntu 8.04 LTS 日本語環境インストール メモ

しばらくUbuntuを使ってみて、動画も音楽も問題ないことが分かったので、今日うちで長年愛用してきた、Dell Inspiron 5100 のWindowsXPを消してUbuntu8.04LTSをインストールした。本当はUbuntu8.10が最新だけど、マウスやキーボードのAlt+Tabが効かなくなっ…

5分で始める GoogleAppEngine メモ

Google App Engine を Ubuntu8.04 上にセットアップしたときのメモ。本当に5分でできちゃうのですごく拍子抜けだった。(CentOS 5はPythonのバージョンが2.4.3なので、駄目かもしれない。) Download と インストール http://code.google.com/appengine/downlo…

いらないデーモンの一括削除(改)

Perl のワンライナーで、-a オプション(AWK風に使える)を使って以前書いた、「 いらないデーモンの一括削除 - Sleepless geek in Seattle」 を改良した。いらないデーモンを指定して削除するのではなく、必要なデーモンを指定してそれ以外を削除するように…

Web::Scraper を使ってテレビ番組表を毎日メールする

コマネチ大学数学科のような深夜番組を予約録画していると時々時間がずれていて非常に悲しいことになる。 かといって毎日番組表をチェックするのもめんどくさい。 そこで、Web::Scraper のお試しも兼ねて、番組表を見やすく加工して自分宛にメールするように…

CPAN の設定変更方法

CPANの起動 # perl -MCPAN -e shell モジュール ダウンロード用のFTP/HTTP サイトの追加 http://www.cpan.org/SITES.html から調子の良さそうなサイトを選んで、 cpan> o conf urllist push ftp://example.com/pub/CPAN cpan> o conf commitとやります。 モ…

画像を埋め込んだHTMLメールの出し方

MIME::Lite を使えば簡単に画像埋め込みのHTMLメールが出せる。 use strict; use warnings; use MIME::Lite; my $img = "foo.gif"; my $msg = MIME::Lite->new( From =>'yoshifumi1975@example.com', To =>'yoshifumi1975@example.com', Subject =>"HTML mai…

Redhat系とDebian系の Apacheの設定方法のメモ

Ubuntu というかDebian系では、Apacheモジュールの設定方法がRedhat系と若干ことなるのでメモ。 Debian系 /etc/apache2/mods-available 利用可能な(有効になっていない)モジュールの設定ファイルが入っている /etc/apache2/mods-enabled 有効化されたモジ…

Thunderbird でカレンダーが使えない

Ubuntu8.04 LTSにて、Thunderbird を使おうと思ったがカレンダーが使えない。 調べてみると libstdc++5 が必要とのこと。 参照: Lightning not working with Thunderbird in Ubuntu 8.04 • mozillaZine Forumslibstdc++5 のインストール $ sudo apt-get inst…

qpsmtpd のプラグイン connection_shaper を作った

mod_perlのメールサーバー版とも言える qpsmtpd 用のAnti Spamのプラグインを作りました。 SMTP接続の頻度をカウントして、指定した以上の接続を試みる相手はスパマーとみなして一定時間接続を拒否します。メールサーバーを複数台運用している場合でも大丈夫…

memcached のまとめ

memcached のまとめ。バージョン 1.2.4 設定 コマンド <key> <flags> <exptime> <bytes> [noreply]\r\n cas <key> <flags> <exptime> <bytes> <cas unqiue> [noreply]\r\nexptime は秒。0にすると無期限になる。 コマンド 説明 set データを保存 add まだデータが無い場合のみ保存 replace 既にデータがある場合のみ保存 append 既</cas></bytes></exptime></flags></key></bytes></exptime></flags></key>…

php のセッションにmemcached を使う

CentOSの場合 install rpmforgeのレポジトリが入っていない人は以下の手順で追加 # wget http://dag.wieers.com/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm # rpm -Uhv rpmforge-release-0.3.6-1.el5.rf.i386.rpm# yum install li…

PDO で1MB以上のカラムを取得できない場合

PHP

PDOでMySQLのLONGBLOBカラムの値を取得しようとしたら、綺麗に1MBのところで切れる。いろいろ検索すると、http://bugs.php.net/bug.php?id=36345&edit=1 や、http://bugs.php.net/bug.php?id=38015 が見つかった。 PDO::MYSQL_ATTR_MAX_BUFFER_SIZE がデフ…

example.com とか予約済みドメイン

DNS

メーリングリスト等でメールアドレスのサンプルで使うドメインは、 example.com と相場は決まっているけど、 http://www.example.com/ を見ると以下のように書いてある。 You have reached this web page by typing "example.com", "example.net", or "examp…

蒟蒻ゼリー事件で思ったこと

マンナンライフ社は(かわいそうだけど)叩かれてOK。でも製造停止するっていうのは企業が取るべき対応方法として違うんじゃないかと思う。 理想は、 (法律的には過失が無くても)事故が起きた製造元の企業が叩かれる ↓ (企業が保身や社会的な責任も含め)…