JILS参加してきた

今日はjapan Innovation Leaders Summitに参加してきた。

講師として各企業のトップエンジニアのおはなしが聞けました!
技術的な話というよりは考え方について、色々勉強になりました。

また各企業の技術レベルが知れたのが、今回の大きなプラスでした!

また、ディスカッションでは、今回の参加した目的でもあるGREEの田中社長のお話には、
エンジニアとしてだけではなく、そもそもの考え方に共感しました、今後の動向に注目したいと思います。

ubuntu netbook remix 9を 10にアップグレードしたらソーシャルクライアントアプリがついてきた

ubuntu netbook remix 9を 10にアップグレードしたらソーシャルクライアントアプリがついてきた!

久しぶりにネットブックを開いたら、Linuxディストリビューションアップグレートのアラートがあったので、
アップグレードしてみたら、あたらしいアプリ「Gwibber ソーシャルクライアント」が用意されてました。

最近はやりのソーシャル系のサービス(twitterやfacebookなど)がタイムラインで見れてちょっとうれしくなりました。
↓こんな感じ

Gwibber

C++ ジョイスティックの使用 取得データの判定 メモ

取得したデータの判定

十字キーのデータ

dwXpos ・・・十字キーの左右を表す。

左 ⇒ 10000以下

中央⇒ 30000前後  の数が入る。

右 ⇒ 50000以上

dwYpos ・・・十字キーの上下を表す。

上 ⇒ 10000以下

中央⇒ 30000前後  の数が入る。

下 ⇒ 50000以上

ボタンのデータ

各ビットが、「ボタンが押されているかどうか」を表す。

………0000_0000

・・・・ ・・BA

0ビット目・・・Aが押されていたら1

離されていたら0

1ビット目・・・Bが押されていたら1

離されていたら0

ボタンを調べる時は、ビット操作を使って

調べたいビットのみを調べる。

Aボタン・・・JoyData.dwButtons & 1

0でなければ(押) 0001

Bボタン・・・JoyData.dwButtons & (1<<1)

0でなければ(押) 0010

サンプル

GameMain()の文字表示部分

//十字キー左右

if(JoyData.dwXposos <= 10000)

{

※「X軸 = 左」と表示

}else if(JoyData.dwXpos >= 50000)

{

※「X軸 = 右」と表示

}else

{

※「X軸 = 中央」と表示

}

//十字キー上下

if(JoyData.dwYpos <= 10000)

{

※「Y軸 = 上」と表示

}else if(JoyData.dwYpos >= 50000)

{

※「Y軸 = 下」と表示

}else

{

※「Y軸 = 中央」と表示

}

//Aボタン(ボタン0

if(JoyData.dwButtons & 1)

{

※「A = 押」と表示

}else

{

※「A = 離」と表示

}

//Bボタン(ボタン1

if(JoyData.dwButtons & (1<<1))

{

※「B = 押」と表示

}else

{

※「B = 離」と表示

}

C++ ジョイスティックの使用 メモ

ジョイスティックの使用

※「マイコンピュータ」→「コントロールパネル」→「ゲームコントローラ」で、

「2軸 2ボタンのジョイスティック」があるかどうか確認

無い場合は、追加しておく。

また各自で調整しておくこと。

1、ジョイスティックデータの取得

winmm.libが必要なので、追加していない場合は

#pragma commentなどで追加しておく。

joyGetPosEx関数で、

JOYINFOEX型の構造体の中に、データをうけとる。

JOYINFOEX型構造体

主なメンバ

long dwSize ・・・構造体事態の大きさを代入しておく。

long dwFlags ・・・どんなデータを取得するか。

JOY_RETURNBUTTONS(ボタンのデータ)

JOY_RETURNX(十字キー左右)

JOY_RETURNY(十字キー上下)

の3つを「|(OR)でつなげて指定。

long dwXpos ・・・十字キー左右のデータをうけとる。

long dwYpos ・・・十字キー上下のデータをうけとる。

long dwButtons ・・・ボタンのデータをうけとる。

例、

JOYINFOEX JoyData;

JoyData.dwSizeize = sizeof(JOYINFOEX)

JoyData.dwFlags = JOY_RETURNBUTTONS | JOY_RETURNX | JOY_RETURNY;

joyGetPosEx関数

定義 : MMRESULT joyGetPosEx(ジョイスティックID,JOYINFOEX*);

引数 : ジョイスティックID・・・JOYSTICKID1

JOYSTICKID2 を使う。

今回は、JOYSTICKID1

JOYINFOEX * ・・・・・データをうけとるJOYINFOEX構造体のアドレス

戻値 : MMRESULT ・・・・・・ JOYERR_NOERRORで成功。

例、

MMRESULT ret;

ret = joyGetPosEx(JOYSTICK1,&JoyData);

JoyDataの中にジョイスティックのデータが入る。

ret == JOYERR_NOERRORなら成功

サンプル

winmm.libを追加していない場合、

WinMain()にあるファイルに

#pragma comment(lib,”winmm.lib”)

を追加

JOYINFOEX JoyData; を外部変数で宣言

GameCreate()など、ゲームの準備をする所で

JoyData.dwsize = sizeof(JOYINFOEX);

JoyData.dwFlags = JOY_RETURNBUTTONS | JOY_RETURNX | JOY_RETURNY;

を代入しておく。

GameMain()で、

MMRESULT ret;

ret = joyGetPosEx(JOYSTICKID1,&JoyData);

を実行

JoyData.dwXpos,JoyData.dwYpos,JoyData.dwButtons

の3つを、wsprintf(),TextOut()で表示して確認。

postfix 特定のメールキューを一括削除する メモ

メールキューが大量にたまった際に、特定のアドレスのメールを削除するコマンドを下記にメモします。

まずメールキューの確認

[root@testhost~]# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
41D33101C0DC     305 Thu Dec 23 00:39:22  sousinmoto@example.com
                                         sousinsaki@example.com

A2388101C0DD     305 Thu Dec 23 00:40:37  ssousinmoto@example.com
                                         sousinsaki@example.com

-- 1 Kbytes in 2 Requests.

※41D33101C0DCの部分がキューID

メールキューが多すぎる場合は、mailq > hogehoge.txt などして確認する。

対象のメールキューの削除は、

# postsuper -d キューID

全部のメールキュー削除は、

# postsuper -d ALL

★実際に特定の送信元メールアドレスのキューID削除
※注意!ちゃんと理解して使わないと危険!自己責任で触ってね

mailq | tail -n '+2'  | grep -v '^ *(' | awk 'BEGIN { RS = "" } { if (
$7 == "sousinmoto@example.com" ) print $1 }'| tr -d '*!' | postsuper
-d -

awkコマンドを利用するとすきなように文字列を扱えるので、色々な方法で特定のメールを指定することができます。