2010-01-01から1年間の記事一覧

Boostデビュー

してみました。 MinGW環境への導入がよくわかんなかったので、ドキュメントを大して読まずに、 "boost_1_45_0\boost"を、"mingw\lib\gcc\mingw32\4.5.0\include\c++" にboostディレクトリごとに放り込んだら動いてくれました。 コレだけで導入と言えるか怪し…

スマートポインタ

お勉強がてらに参照カウンタを持ったスマートポインタを実装してみました。

暗黙の型変換のトラブル

暗黙の型変換は便利ですが、ちょっと理解が足りないと原因特定がめんどうな困ったチャンです。 #include <iostream> #include <string> void function(const bool arg){ std::cout << "boolean: " << arg << std::endl; } void function(const std::string &arg){ std::cout <<</string></iostream>…

セキュリティ&プログラミングキャンプ2010実施報告会 を見て聞いて

12月18日土曜日にセキュリティ&プログラミングキャンプ2010実施報告会がありまして、 僕は午前が私用で忙しかったので参加できませんでしたが、中継配信は少し眺めてました。 配信が不調だったのもありあまり把握してはいませんが、参加者の呟きや日記から…

QtのQJsonを使えるようにする

QJson http://qjson.sourceforge.net/ JSONパーサのQJsonをWindowsで使うまでの過程をメモ。 1から実装すると大変だからこういうのはあるものを使わないとね!!

JSONパーサ

perlでお試しで再帰使ったら結構簡単に実装できた!と思ったらまだ色々穴がありそう。 数値をキーにできたりしたので、DIGITかSTRINGとかぐらいの区別が出来ないとダメね。 構文解析器は苦手だなぁ。

純粋仮想デストラクタの必要性

C++でなんでそんなもんが必要なのか、と疑問に思ってたけど、解決したのでメモ。 純粋仮想関数って何というところから純粋仮想デストラクタの必要な場面を考えてみた。

userstreamapi おまけ

前の続き。 LWP::UserAgentを眺めていたら http://perldoc.jp/docs/modules/libwww-perl-5.813/LWP/UserAgent.pod#item__ua__gt_get___url__ :content_cb オプションでコールバック関数が指定されると、 レスポンスの内容の塊ををサーバから受信する毎にこの…

userstreamapi

twitterのUser Stream APIをPerlで叩いて見た。 テスト用のアカウントを用意してメインアカウントをフォローさせてメインアカウントの発言を拾う実験。 Perlで実装しようとしたら、SSL通信したほうがいいよみたいなdenpaを受信したので、SSL通信に対応させよ…

TwitterのOAuth認証を通過してTLを取得

OAuth認証を通過してTwitterの自分のアカウントのTLを取得するプログラムをPerlで書いてみた。 色々間違っていそうだけど、とりあえずTLを取得できたので、その流れをメモ。 Net::OAuthとか使うんだろwwwwとか思ってた人、ごめんなさい。 ほぼ標準で入っ…

よくあるDLLを使ったプラグインのような動作をしてみたかった

プラグインは概念はわかってるんだけど、プログラムにするときどうすりゃいいの?って思ったので調べた。 C++の方が継承を使ってそれっぽく出来るので、C++で設計。 クラスの設計むずかしい;w; 作り方がわかればいいので、Windows環境前提でちまちま作った。…

HMAC + 何か

HMAC - Wikipedia http://ja.wikipedia.org/wiki/HMACRFC2104 - HMAC: Keyed-Hashing for Message Authentication http://tools.ietf.org/html/rfc2104 要するに、データをキーでハッシュします。これによりデータを認証できます。 Perlで簡単に実装できるの…

文字列と排他的論理和

Perlで文字列に対して排他的論理和(xor)などのビット演算が使える事を知りました。

Base64エンコード/デコード

http://ja.wikipedia.org/wiki/Base64 Wikipediaを見て理解余裕でした。言われたことを素直にごり押し。 エンコードではループ中の条件分岐判定を減らすために小細工してみた。

winpcapを使ってTCPパケットを送れるか試す。

まだ完全ではないが、進展があったのでメモ。 前記事のことがあったので、早速winpcapを使ってコードを書く。 SYNパケットを送りつける手抜きコード。

Windows XP SP2+raw socketプログラミングの注意

MICR0$OFTさんは「わが社の製品のraw socketを利用してSYN Floodをやろうとしても無駄だよ(キリッ」と言いたいようです。 ユニコードの拡張でウンコの絵文字があったけど、使えたらここで使うべきだろうな。 "Windows XP Service Pack 2 セキュリティ強化機能…

ビットフィールドとメモリの扱い

リトルエンディアンの影響かしらないが、ビットフィールドでもそれっぽい影響を受けるらしい。 そんなの習ってねえよ!しらねえよ! わかりにくい検証とメモ

C++の勉強中

特にオブジェクト指向あたり。動物に当てはめて振る舞いを見てみる。 動物クラスを継承した猫クラス、犬クラス、キリンクラスを作成。 動物は種族がある。 動物は鳴くが、一般的に鳴き声がわからない動物もいる(今回はキリン)。

TopCoder SRM487 div2 250

久々にTopCoderで解答が通ったのでネタもないし、書く。 でもRatingは落ちてとうとう600切った。 周りには800とか1200とかゴロゴロいるというのに・・・

ある文字列の文字を順番通りに含む文字列のマッチ

確かノイズ交じりの文字列から、ある一定の文字列郡を読み取るために作った。 一般用途では間違いなく需要が無い・・・

マジカルインクリメント

マジカルインクリメントとかブルートフォース以外で何に使うんだよ・・・

文字列置換の妄想、

ふと文字列置換の処理は重い処理じゃないかな、と思って、簡単に実装しようとした時に、 同じバッファ上のメモリコピーの面倒さに気づいた。 先人ならコレを解決する関数ぐらい作ってるだろう、と "mem"で始まる関数を辞書で探したら、memmoveが出てきた。 …

カレントディレクトリに対してファイル名にある文字列を含まないファイルを削除

Perlうめえ。は、カレントディレクトリからファイルとディレクトリを全て抽出してくれる。 ワンライナーに便利です。 strを含まないファイル名をunlinkする。 for(){unlink if !/str/} 正規表現だと柔軟でいい。逆にstrを含むなら "!" をはずす。 正規表現を…

東京の方へ行ってきました

ネットの知り合いであるabetの家に遊びに行く事になり、 リアル友達であるarikoneも連れて遊びに行きました。

きゅーりくん向け getch

getchをlinuxでそこはかとなくやりたい向け

ドリア?

腹が減ったのでドリア作ってました。 ご飯にクリームソースかけてチーズかけて焼けばドリアって言ってるけどあってるんかな。

IX2015でNAPTのテーブルを覗きたい

ルータにIX2015を使ってますが、 NAPTが保持している変換テーブルを覗いてみたくなったので、コマンドを調べてました。 show ip napt translation

文字列が関数だ

#include <stdio.h> main(){ int x=100, y=200; char *func="\x55\x89\xE5\x83\xEC\x10\x8B\x45\x08\x8B\x00\x89\x45\xFC\x8B\x45\x0C\x8B\x10\x8B\x45\x08\x89\x10\x8B\x45\x0C\x8B\x55\xFC\x89\x10\xC9\xC3"; printf("x:%d, y:%d\n", x,y); ((void (*)(int*,int*))f</stdio.h>…

文字コードの変換

今まで文字コードを意識しなくても問題なかったんで、Encode.pmってのをあまり使ってなかったんですが、 WEBからコンテンツを拾ってきて、その文字コードを判別して、一意の文字コードに変換しないといけない場面が出てきたので、 Encode.pmとかその辺につい…

each

eachはハッシュリストからキーと値のペアを返す。 "最後まで取り出す"と、内部でもっている読み出し位置を先頭に戻す。 最初に呼び出した時に、読み出し位置がリセットされるという事ではない。