プログラミング

正しく使うことを期待する vs 意識せずとも正しく使えるようにする

仕事でリソースリーク起こしてシステムが止まったという事案を受けていろいろ考えてた。 この問題が起きた時、実装としては「正しく使ってもらうことを期待する」実装になっていた事に気づいたのでこの点で1本書きたくなった。ちなみに、今回問題を起こした…

外部リソースに依存したコードを外部リソースに依存しないようにテストしたいんだけど、どうしたらいいの

こんにちわ。テスト熱中症真っ盛りな自覚はありますが、それほどテストコードは書いてないプログラマーのクズです。今回はタイトルについて、ちょっとうまい方法が思いつかないのと、寝て起きたら忘れてしまうのを防ぐために自分の考えをメモします。(思いつ…

value-domainのDDNS更新を使わずになるべく安全に更新したい

DDNS更新は固定IPを持たない自分としてはとても便利なのだけど、value-domainのDDNS更新はhttp通信のため、DDNS更新用のパスワード情報を傍受される可能性がある。これは非常によろしくないので、セキュアに通信する方法を考える。(結構当たり前のように使わ…

zncでoperatorをJoinしてきた人に無差別で配るモジュールをPerlで書いた

ZNCのモジュールの勉強もかねて。

PHPのldap_bindとActiveDirectory

PHPのldap_bindは全く関係ないんですけど、PHPとADを使ったお仕事で出てきたので、覚書程度に書かせてください。 注意:当方、LDAPの知識もADの知識も全くございません。認識を誤った記述をしている場合があります。 環境 PHP 5.4.11 OpenLDAP 2.4.33(ldapク…

EclipseでAndroidアプリのデバッグをする際、AVDではなく実デバイス上で行うようにする。

IS12SH, ICONIA TAB A700で確認 前提として、Android-sdkと、EclipseプラグインとしてADTが入っていること。

JavaScriptとかjQueryとかよくわからん

jQueryで同名のclass属性を持つ要素に配列のようにアクセスしたかったけど、 なんかよくわからんけども、親要素はjQueryのObject(配列)っぽいのに、 子要素がget(index)とか[0]で取得できるのは、HTMLSelectElementだったり。 え、なにこのゴミ 親要素内に子…

JavaScript 手抜きexpr

ユーザ入力による四則演算をサポートしたい。 でも内部で使ってるsin,cos,tanも使いたい。 変数xを参照できるようにしたい。 でも、変な操作はできるだけ許したくない。 四則演算の実装を自分で書きたくない。 不完全ですが、こちらになります。 (function()…

JavaのClassファイルを読み取りたかった

読み取りはできたけど、途中で飽きた別にこんなことやる必要なかったので、 名前の対応付けとかその辺はやってないです。あと、printデバッグも消してないです。 バイナリ操作をするためにbyte列を扱うためのユーティリティを書いた(これがメインだったりす…

int(bit)→float

誰得。 #include<stdio.h> #include <math.h> float toFloat(int x){ int s = (x >> 31) == 0 ? 1 : -1; int e = (x >> 23) & 0xFF; int m = (e == 0) ? (x & 0x7FFFFF) << 1 : (x & 0x7FFFFF) | 0x800000; return (float) (s * m * pow(2, e - 150)); } int main(){ int x = </math.h></stdio.h>…

塗りつぶしアルゴリズム

再帰でもできるけど、再帰はスタックを使うし・・・ってことで。 最初、キューで実装できるんじゃね?って思ったが、 同じピクセルを参照するせいで無駄なメモリを食べてた。気づけよ。 そこでsetを使ったら無駄なくやってくれた。ループ数も1/20!! 実際に使…

TopCoder SRM503 Div2

久々にEasyが提出できた記念(前回は-50pt) 相変わらず問題の意味がよくわからない。 多分Div2Hardの内容は理解できてたけど、実装力がなくて断念。

ifstreamの挙動が気に入らない

バイナリファイルをifstreamで操作しようとしたら不満が出たので。 readの返り値は自身のオブジェクト(読み込んだbyte数じゃない) ios::binaryの時のoperator >>(...)の挙動がヤダ なので、オレオレBinaryFileReaderを作りました。自己満足です。 ifstream…

TopCoder SRM 496 Div2

時間切れになって500をsubmitできなかったけど、解けるには解けたので。

OpemMPに触れてみた。

OpenMP http://openmp.org 並列処理が簡単に出来るOpemMPを今更試してみた。

タイマーさん

デスクトップとかの整理してたら、2010/06/10ぐらいに書いたプログラムを今更ながら公開。お粗末なソースコード付き タイマーさん http://rying.net/arc/timer.zip

ハッシュ - チェイン法

過去にオープンアドレス法で実装したこともあって、C++でサクっとかけるかな!と思って書いてみたら30分ぐらいで書き終わってドヤ顔しようとしたけど、 値を削除すると、他の値が読み出せなくなる欠点があり、その解決にうまい方法が思いつかなかったので、 …

OAuth認証

以前書いたものが一部間違えていたりと酷かったので、整理して書き直してみました。 それでも汚いし、間違いもありそうだけど。 調べれば図とかで解説してくれているところもあるので、そこを見るのもいいのです。 今回は、OAuth認証を通過するために実装す…

std::vectorは早いと思うの

まずは普通に適当にベンチマークしてみる。 http://codepad.org/K1OkB8h1 Windows+MinGW(gcc4.5.0)の場合で、1000万個(SIZE)のデータに100回(LOOP)づつアクセス。 xorしているのは最適化によって使わない変数への処理を省いてしまうのを防止するため。 最適…

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>…

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

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

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

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

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

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

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

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

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 セキュリティ強化機能…

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

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