winsock2の罠

winsock2を使用する場合windows.hをインクルードする前にwinsock2.hをインクルードしましょう。

#include <windows.h>
#include <WinSock2.h>

とすると

1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\ws2def.h(91): warning C4005: 'AF_IPX' : マクロが再定義されました。
1>          c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winsock.h(460) : 'AF_IPX' の前の定義を確認してください
...

と怒られます。
どうもwindows.hはインクルードする前にwinsockがインクルードされていないとwinsock.hをインクルードするのだとか。
ということで対応策はインクルードの順番を変えるか_WINSOCKAPI_をdefineしましょう。 -> ソース

#include <WinSock2.h>
#include <windows.h>

#define _WINSOCKAPI_
#include <windows.h>
#include <WinSock2.h>

ちなみにWIN32_LEAN_AND_MEANを定義しても良いようで。 -> ソース2
まぁLEAN_AND_MEANはwinsock意外にも影響するのでwinsockのみであれば_WINSOCKAPI_で良いでしょう。
ひっかかったのでメモ。

ruby-pgのinstallにハマったのでメモ

ERROR: Error installing pg:
ERROR: Failed to build gem native extension.

とか言って入ってくれません。
そもそもpostgresqlが入ってなくても出てしまうので確認してなければ入れましょう。
そしてバージョンが対応してないと

Your PostgreSQL is too old. Either install an older version of this gem or upgrade your database.

とか言われてしまいます。
基本的には対応するバージョンのpostgresqlを入れなおしましょう。
入れなおせない場合はruby-pgのバージョンをあわせればとりあえず入ります。

gem install pg -v 'X.XX.X'

ひさびさに

すごい久しぶりになってしまった。

いつの間にかダイアリーからのインポート機能が実装されていたので移行してみた。

 

とりあえず6月に転職してセキュリティエンジニア(見習い)になりました。

またぼちぼちと書いてきます。

NSC 2012 Spring

Network Skills Competition 2012 Springに行ってきました。
去年は天災等で行く機会を逃したので初参加。しかも見学ではなく運営協力という形で参加させていただきました。
役柄は参加者に課題を出してその報告を受けるというもの。ペーペーの自分としては人に指示を出す環境というのはなかなか出来ない体験で楽しめました。
運営の方々、参加された方々お疲れ様でした。
下の写真は当日流通しそこねた通貨です。1000たまでCiscoのCatalyst2940が買えるという日本円より貨幣価値の高い通貨だったんですがw
f:id:kouma31:20120305003154j:image

なんとなく進捗

ちまちまと気が向いたときにやってます。
今やってるのはコマンドの登録管理部分の作成。
出力フォーマットとかで悩んでます。XMLとかC++ではあんま使わないのかな。Webの情報が少ない気がする。
これまでで出来るようになったこと。

  • とりあえずPATHの通ったコマンドが起動するようになりました。
  • Fnキー2回押しでランチャウィンドウの出し入れが出来るようになりました。
  • タスクトレイ上のアイコン右クリックから終了できるようになりました。

コマンドを入力して
f:id:kouma31:20120206053829p:image
起動っと
f:id:kouma31:20120206053830p:image