堕(惰)プログラマ開発記録 このページをアンテナに追加 RSSフィード

2012-09-15 高専から誰か引っ張ってきたい

第2回 闇鍋プログラミング勉強会

今更ですが(日付は偽装しておきましたよ?),前回に続いて「第2回 闇鍋プログラミング勉強会」に参加してきました.

とは言っても,当日に参加を決めましたし,今回は発表してません.あと,懇親会にも参加してません.


怪しい人たちの怪しいTwitterの様子をsters9さんが,まとめて下さったそうです.

第2回 闇鍋プログラミング勉強会 - Togetter


中学生の時,「IIJって遠いなぁ」とか思っていたんですが,今になってみると自宅から学校にいくのと大して変わらない時間で,「色々参加してみるかぁ」って気分になったんですが,自分の技術力が(ry


感想(?)

今回も,てきとーに感想書きますよー.

途中でダレて,メモがめちゃくちゃになったんで,感想じゃなくって,多分簡単な概要になっちゃいそうな気がしますが(汗


PhoneGap で手軽なモバイル開発 @

html+Javascriptで書いて,WebViewを使ってプラットフォーム共通で使えるようにしたものらしい.比較としては,ネイティブに変換するTitanium

プラットフォーム共通で使えるようにしたものは,やっぱりそれぞれのプラットフォームに対してはやっぱり微妙な対応状況になっちゃうのかなぁ(Qtとかも)


ngx_small_lightを使った画像変換 @

URLのパスで画像変換処理.サムネイルとかに!

ImageFilter使うと設定ファイルというよりプログラムっぽくなるらしい.

→「ImageFilterは設定の書き方がいけてない。設定ファイルなのかプログラムなのかわからなくなる。ngx_small_lightのほうがシンプル。 」

Repository: https://github.com/cubicdaiya/ngx_small_light


プレゼンのサンプルコード,なんとなく読めた気になれて「なるほど」ってなれたっ


Intel AVX で SIMD 入門 @
CPU拡張命令セット(?)実行単位(bit)gcc引数
PowerPCAltiVec128bit単位
Intel Sandy前SSSE128bit単位-O3で自動(精度保障なし)
Intel Sandy後AVX128か256bit単位-mavx

SIMD演算器ってのを使って配列演算を一つずつでなく,幾つかセットで適用していく.

「z = a * x + y」なFMA(Fused Multiply Add)命令をワンクロックで適用するのもHaswellから乗るらしい?


使ったことなかったけど,なんか面白そう……

この辺参考になるかも 第2章 SIMDプログラミングの基礎 - PS3 Linux Information Site / Cell/B.E.のパワーを体験しよう


ATLに見る魔術 @

ATL(Active Template Library)とは名前の通り,COM周りのテンプレートライブラリ

DLLEXEのアンロードを参照カウントで管理

プレゼン資料作成(ページ追加?)を発表中やるから,なんか盛り上がってた

COM周り分からなくて(ry ごめんなさい


温故知新・Fortran @

いきなり「博士号取りましたが役に立っていないので、無理な進学はオススメしません。」で噴いたw

Fortran化学技術計算に強くて昔から複素数に対応していると….

Twitterでも呟いたけど,NTT武蔵野研究所の見学でパンチカードを見たー.読めなかったけど….

流石Fortran,Fortran90までdo-whileなかったのか.というか前バージョンがFORTRAN77で期間が長いのか…


最後に「自宅でもFortran焼肉が楽しめますっ!」


Unity×Node×MMD @

ネトゲみたいなの作れるんじゃ…から流石……

Twitter勢が喜ぶネタ盛りだくさん,面白い発表だったです.

デプロイしたの,ここにあるそうです

http://unisock-trashbox.dotcloud.com/


LT
Jenkins の話 @

CI継続的インテグレーション)ツールできれいにすることを習慣にするべき.

Jenkinsビルド・テスト・インスペクションを自動化できる.

簡単に言うと,CIをちゃんとやりましょうねって.


アジャイルを高校生にやらせてみた @

川崎総合科学技術高校という「頭のおかしい」学校のパソコン部でワークショップやったとか.うちじゃやらなそうだなぁと.


プログラマに知ってもらいたいネットワークの話 @

プログラマブルで,インフラエンジニアアプリケーションエンジニアの違いがなくなってきていて,更に進む」とかなんとか.

あと,自宅ラック勉強会の宣伝.名前は聞いたことあったけど何やってるのか知らなかった.

ネットワークの話わからないです><


関数型言語初心者がHaskellに挑戦してみた @

すごいH本読んで,なんかやろう → 「Haskellbrainfuck

買ってないけど,読みたい.でもお金が無い…….


JavaScriptを書きたくない話 @

Javascriptコンパイルされる色々な言語の比較とか.

CoffeeScript使って,型が欲しい時とかにHaXe使うといいとか何とか.


Dartの話を振られそうにになりました,怖いです.

Dart. そんなものもあったね(ニッコリ」


すごいScalaのfor式楽しく学ぼう @

for{}にするとifとかでガードできる.forが独特で,面白い.


クイックソートの話 @

そういえば月初め頃にはてブに有って,関連をちょっと調べたなぁと.

QuickSortに最悪なデータを渡して負荷かけようぜって.

IntroSortとかMergeSortで対策してる言語も多いけど,見対策の言語もまだまだ有ると.


土木屋の数値計算 @

地震シュミレーションとかの計算の話.なんかついていけなかった感.


集合知によって得られる大切なこと@

知識の持ち寄りによって優れた情報へと成長させる.集合知は「群衆の叡智」である.お互いのためになる.

つまり,そういう活動をやろうぜって話.

そういえば,そういうことやってみたいと思ってるけど,あんまり手を出せてない俺がいた.


最後に忘れずに一言.

「あくまで個人の感想であり、内容の正しさを確約するものではありません」

2011-06-17 RawInput、日本語ドキュメント増えろー

RawInputによる入力に使用した装置の判断

キーボード入力を読み取り、入力元のキーボードHIDを取得と動作の分岐をしたかったので

Win32 APIにあるかなー」と探してみたところ、

RawInputというAPIが見つかったので使ってみました。


結構MSDNから引っ張ってきたけど、ウィンドウプロシージャを以下のようにするととれるらしい。


LRESULT CALLBACK WinProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
  switch(Msg)
  {
  case WM_CREATE:
    {
      RAWINPUTDEVICE Rid[1];
      Rid[0].usUsagePage = 0x01; 
      Rid[0].usUsage = 0x06;     //0x02にするとマウス。
      Rid[0].dwFlags = RIDEV_NOLEGACY;
      Rid[0].hwndTarget = hWnd;
      RegisterRawInputDevices(Rid, 1, sizeof(Rid[0]));
      break;
    }
  case WM_INPUT:
    {
      UINT dwSize = 40;
      BYTE lpb[40];
      
      GetRawInputData((HRAWINPUT)lParam, RID_INPUT, lpb, &dwSize, sizeof(RAWINPUTHEADER));
      RAWINPUT* raw = (RAWINPUT*)lpb;

      //ここにHIDをここに収納できる。
      HANDLE Device_HID = raw->header.hDevice;

      break;      
    }

  case WM_DESTROY:
    PostQuitMessage(0);
    break;
  default:
    return DefWindowProc(hWnd, Msg, wParam, lParam);
  }
  return 0L;
}

エラー判定をかませたほうがいいかも。

GetRawInputDataとRegisterRawInputDevicesに付けるのがいいのかな。

あと、dwSizeをGetRawInputDataから貰ったら、それでlpbのサイズを作った方がいいのかな。


まあ、何をやっているのかというと、

WM_CREATEで従来のMsg通知を切って、WM_INPUT(WindowsXP以降)を使用するように指定。

それを処理しているわけ。(多分)


コメントのように"Rid[0].usUsage = 0x02;"にするとマウスでも同じことができるようなので試してみるといいかも。

あとRidは配列だから、数を増やしてやると複数指定ができるのかな?


RAWINPUTDEVICELISTとうまく組み合わせるととても幸せになれるんじゃないかな。

やってみようと思ってるよ。