2012-05-01から1ヶ月間の記事一覧

例外の基本クラス

c++

しょっちゅう自分で投げるクラスは赤くした。 発生タイミングについては、仕様的な記述を見たことがないので、かなり個人的な解釈が含まれている。std::exception#include<exception>std::bad_alloc#include<new>new演算子によるメモリ確保に失敗したときstd::bad_cast#inclu</new></exception>…

template constructer

c++

class Hoge { // x template <typename T> Hoge (); // x template <int val> Hoge (); // o template <typename T> Hoge (T t); // o template <typename T> void func (); }; Hoge hoge; Hoge() コンストラクタはテンプレート引数を指定する方法がないので この書き方は不可能。 Hoge(T t) コンストラク</typename></typename></int></typename>…

Redis pub/sub

RedisはmemcacheやTokyoCabinetなどと同じ、KVSの一つ。 さらに、Pub/Sub型の通信をサポートしている。事前にSubscriberとして接続していると、Publisherからデータが送られてきたとき、接続していたSubscriberすべてにデータが送信される。Gearmanの場合は…

mysql 権限の設定

設定例 権限を設定 grant ALTER, CREATE, DELETE, DROP, INDEX, Select,Update,Insert,Delete ON <DB>.* to '<user>'@'<host>' IDENTIFIED BY '<password>'; grant ALTER, CREATE, DELETE, DROP, INDEX, Select,Update,Insert,Delete ON <DB>.* TO '<name>'@'localhost'; grant ALTER, CREATE, DE</name></db></password></host></user></db>…

AquesTalk2で文字列を音声にする

cd /usr/local/src wget http://******/aqtk2_lnx32_100125.tgz tar zxvf aqtk2_lnx32_100125.tgz cd aquestalk2 ライブラリ配置 cp libAquesTalk2.so.1.0 /usr/lib ln -sf /usr/lib/libAquesTalk2.so.1.0 /usr/lib/libAquesTalk2.so.1 ln -sf /usr/lib/libA…

nginx + PHPをインストールする

よくあるサンプルでは、epelからインストールしているが、 nginx のサイトに最新のリポジトリがあるのでそこから取得するのが楽で新しい。 # vim /etc/yum.repos.d/nginx.repo http://wiki.nginx.org/Install サイトを参考に以下のように記述 [nginx] name=n…

TwitterAPIで、token からuser_id, screen_name を逆引きする

https://api.twitter.com/1/account/verify_credentials.json https://api.twitter.com/1/account/settings.json 他で紹介されている、タイムラインから取得する方法は、ツイートが1件以上の時しか取得できないので間違い。

bmpフォーマット

横のデータ長を 4 byte 境界にあわせる点が重要です。 全体構造 ファイルヘッダ 情報ヘッダ 新(Windows)、旧(OS/2) の2タイプがある カラーパレット 画像データ ファイルヘッダ 2 byte ファイルタイプ 'BM' 4 byte ファイルサイズ (byte) 2 byte --- 常に0 2…

bonding

ifenslaveパッケージのインストール # aptitude install ifenslave bondingモジュールの設定 vi /etc/modprobe.d/bonding.conf mii監視 alias bond0 bonding options bonding mode=0 miimon=100 arp監視 alias bond0 bonding options bonding mode=1arp_inte…

コンパイル時点でプログラムの問題を見つける

c++ c

#define COMPILE_ASSERT(v) {char compile_assert_tmp[(v)!=0:1:0];(void)compile_assert_tmp[0];} static const size_t ValueMax = 100; static const size_t FirstValue = 1; COMPILE_ASSERT (FirstValue < ValueMax);

bit operatorの意図

c++ c

アンティークなプログラマーは、ビット演算を多用したがる。 現在のコンパイラでは、十分に速いコードを吐くので、 余計なことをせず読みやすいコードを書くべきだが、自分が書かなくても人が書く。 乗算・減算 const int a = 1024; const int b = a << 1; /…

ddclient

固定IPアドレスを取得していないときに、 IPアドレスが変化したのを検出して、DNSの設定を変更する install apt-get install ddclient 設定 # vi /etc/ddclient.conf 起動 # ddclient デーモンとして起動させる # vi /etc/default/ddclient /etc/init.d/ddcl…

caseはswitchブロック内のどこにでも書ける

c++

int main () { int a = 0; bool b = true; switch (a) { case 0: cout << "pass 0" << endl; while (true) { if (b) { case 1: cout << "pass 1" << endl; } break; case 2: cout << "pass 2" << endl; } break; } }

ゲストOSでNATを利用時、ゲートウェイのIPアドレスを変更

ゲストOSで、NATのゲートウェイのIPアドレスを変更したい場合、以下の変更を行う vmnetcfg.exe VMnet8 タイプNAT 外部接続NAT サブネットIPを変更 VMnet8 インターネットプロトコルバージョン 4 変更 vmnetcfg.exe VMware-playerをインストールしただけでは…

PHP メンバアクセス制限

C++では、Piyoインスタンスでfuncを呼び出せば、hello!が出力される。 class Hoge { public: virtual ~Hoge () { // do nothing } void func () { a (); } private: void a () { throw "boo!"; } }; class Piyo : public Hoge { private: void a () { print …

beanstalkd

ジョブキューサーバー。 Gearmand と同じような機能で、設定が簡単な印象。クライアントライブラリは、様々な言語に用意されており、困ることはない。Node.jsにも用意されている。AWS Elastic Beanstalk とは関係ありません!http://kr.github.com/beanstalk…