プログラム

自身の標準エラー出力などを捨てる方法

FILE *fp = nullptr; auto backup = _dup(_fileno(stderr)); fopen_s(&fp, "nul", "w"); _dup2(_fileno(fp), _fileno(stderr)); //ここの間、stderrへの出力は無へと消える(ファイル名nulは無への出力) _dup2(backup, _fileno(stderr)); ::fclose(fp);

docomo Developer support

https://dev.smt.docomo.ne.jp/?p=docs.api.index ドコモが提供しているAPI一覧。 音声合成とかが楽しそう。

nothingcosmos wiki

コンパイラとかVMについての情報を集めたwiki 興味深いので今度全部読む。

セキュアプログラミング講座 C/C++編 https://www.ipa.go.jp/security/awareness/vendor/programmingv2/clanguage.html x86/x64 SIMD命令によるAES暗号処理 http://www.officedaytime.com/tips/simdimg/aes.php?f=aesenc clang/gccに組み込まれたAddressSani…

暗号化

Crypto API (Linux) https://en.wikipedia.org/wiki/Crypto_API_(Linux) https://kernel.readthedocs.io/en/sphinx-samples/crypto-API.html

高速化色々

連載1 高速なメモリーコピー http://amalabo.blog35.fc2.com/blog-category-8.html ストリーミング SIMD 拡張命令 2 の整数ストア操作 http://www2.kobe-u.ac.jp/~lerl2/l_cc_p_10.1.008/doc/main_cls/mergedProjects/intref_cls/common/intref_sse2_int_sto…

生SOCKET系色々

recvmmsg使って1024個まとめてパケットを取得してすら、パケット処理系が遅すぎる。 netmapかDPDK使うしかないのか。 Linuxデフォルトに生パケットを扱う方法があるようなので、色々調べてみてる。 Linuxではどうやって生のパケットを扱うんでしょうねって話…

Socket系

すごく細かく説明してくれているサイト https://notes.shichao.io/unp/

Socket系

Programming UNIX Sockets in C - Frequently Asked Questions http://www.kt.rim.or.jp/~ksk/sock-faq/unix-socket-faq-ja.html#toc1 ネットワークプログラムを組むなら、とりあえずこのページは全部読んでおいて当然。 Linux ソケット・プログラミングの 5…

Visual Studio Codeを用いたC++ STLデバッグの方法

http://qiita.com/cypher512/items/396cdabb066bb828a4fa

マルチスレッドとか

C#でマルチスレッドのベストプラクティスって何かある?(What are the best practices with multithreading in C#?) http://qiita.com/yohhoy/items/603f636e39188a9c3439 変更部分が全て排他制御されている場合でもatomicは必要か? https://teratail.com/q…

高速なハッシュテーブルを設計する

http://postd.cc/designing-a-fast-hash-table/ STLのハッシュテーブルは、制限がついているのでちと遅いため、自作しよう。 というお話。

必要そうなサイト色々2

LibTomProject http://www.libtom.net/ 多倍長整数ライブラリや、暗号ライブラリなど。 ライセンスがゆるゆる。 Crypto++も素晴らしいのだが、最適化しても実行ファイルサイズが簡単に1MBくらい増えるのでこちらを調査してみる。Releaseビルドのlibを使った…

必要そうなサイト色々

サーバーマシン1台で同時接続者数1万名を実現するにはどうすればいいのかというノウハウと考え方 http://gigazine.net/news/20120831-10000-jointer-1-server-cedec2012/ 暗号ライブラリ boostライセンス https://www.cryptopp.com/ xorshift plus http://xo…

3フレーム遅延について

https://shikihuiku.wordpress.com/2012/06/12/directx%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E6%8F%8F%E7%94%BB%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%81%AE%E9%81%85%E5%BB%B6%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/ http://www.atmarkit.co.jp/fdotnet…

ダックタイピング

http://ja.wikipedia.org/wiki/%E3%83%80%E3%83%83%E3%82%AF%E3%83%BB%E3%82%BF%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0 昨日初めて知った単語ですね。 なるほど、例えばそれらのインスタンスが必ずsay()というメソッドを持っているのなら、それらは共通のイン…

静的型付け、動的型付け

久々に動的型付け言語でゲームを作る仕事をしています。 クライアント側のプロジェクトが炎上し、そこの火消しですね。 で、そのクライアントが動的型付け言語で作られてるのですが、参加しているプログラマがお粗末なため悲惨なことになっています。 (そも…

間違いだらけの疑似乱数選び

http://www.soi.wide.ad.jp/class/20010000/slides/03/sfc2002.pdf C++0xでも導入が決定されている、MT乱数。 その歴史について。PDF注意。 こんな昔から開発されていたのに、知られていなかったのかMT

プログラミング :: 高速なプログラムを書く為に :: 初めに

http://myoga.web.fc2.com/prog/cpp/opti01.htm 「ガイド付き最適化のプロファイル」とかやったことなかった。 ちょっといま、かなりスピードを重視したWindowsプログラム組んでるからこれは参考になるわ。 いい記事。 追記。 ところでこの記事、さっきGoogl…

VisualStudioのインテリセンスのお話

http://msdn.microsoft.com/ja-jp/library/ms235519%28VS.80%29.aspx 以前も書きなぐったのだけど、改めて。 プリコンパイル済みヘッダで定義されている関数、ネームスペースなどがインテリセンスに認識されない問題について。 stdafx.h がインクルード パス…

Process Monitor

http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx 対象プログラムのレジストリアクセスなどをモニタリングできるツール。 メモメモ。

素数マスターへの道

id:Ozy:20100225 男なら、やっぱり素数は大好きだと思うんですよ。 最近は落ち着くために数えてみるといった使い方が一般的なようですが、SSL暗号の根底をなしていたり、そもそも「誰にも割られない!」という立ち位置が格好良かったり。 しかし、こんな面白…

菅野よう子 SEATBELTS ライブ『超時空七夕ソニック』

「kanokeはライブとか嫌いでしょ?」とかよく言われるのですが、好きですよ。 単にワーとかキャーとか叫びながらノリノリになるような楽しみ方をしないというだけで。 フォグ 会場全体が霧がかっており、遠くほど白っぽく見えました。 霧については古くから…

ロジックにDirect3DXは使うな

ついでに書いておきますか。 http://codezine.jp/article/detail/235?p=4 のコラムとも関連しますし、これこそ私がNyaRuRuさんのページにたどり着いた原因なんですが。 D3DXVec3LengthとかのD3DX関数って、環境によって結果が異なるんですよ。 D3DXはスピー…

ユーザー環境にd3dx9_XX.dllがあるかどうかを調べる

http://codezine.jp/article/detail/235?p=3 DirectXには有名な問題点として、d3d9.libとd3dx9.libを静的リンクしてしまうと、該当するDLLが無かった場合アプリケーション起動時に分かりづらいダイアログが出るとともに起動失敗してしまうという問題がありま…

PIX for Windows

http://www.t-pot.com/program/131_PIX/index.html 何この神ツール。 Direct3Dの負荷測定ツール。何ができるかはリンク先参照。 これで「重い」部分を探ったりとか、表示がうまくいかない時の原因トレースとかできる。すげえ。

ブラウザで X86 のマシン語を動かす! Google 謹製 Native Client をさっそく試してみる

http://d.hatena.ne.jp/amachang/20081209/1228804423 よだれが止まらない楽しい話が。 すごい噛み砕いて言うと「ブラウザ上でFlashと同じようにEXEファイルが動く」というもの。 今までネット上からEXEを…なんていうと、ウイルスなどの危険性があったわけで…

マイクロソフトによる講演「Windows Vista ゲーム開発」、数多くの国内PCゲームが躓いたIME問題は、SDKサンプルのささいなバグだった!?

http://www.watch.impress.co.jp/game/docs/20070927/wv.htm 知らんかった。 Vistaにそのうち関わるかもしれん。メモメモ。

古いD3DXのバグ

Windows2000かつ、VS6.0で開発していてどうにもハマる場所がありました。 D3DXLoadMeshHierarchyFromXInMemoryが、内部で例外出すんですよ…。 ID3DXAllocateHierarchyを継承して定義した仮想関数系が呼ばれる前に。 しかも20回に1回くらいという不定さ。 私…

do{}while(false)を使ったマクロ

#define ASSERT() {*((int*)0xcdcdcdcd)=0;} #define ASSERT() do{*((int*)0xcdcdcdcd)=0;}while(false) 前者より後者の方が良いとのこと。 if (error()) ASSERT(); else printf("OK"); とした時、前者だとコンパイルエラーになる。