ソフトウェア

BadUSB

なんか流れてきたので。 USBに設計上の致命的な脆弱性が発見され、そのコードが公開される - GIGAZINE 3行で あるデバイスのファームウェア実装が流出して仕込まれている自己書き換えのバックドアが解析された USBプロトコル上の問題ではない デバイスを一度…

NetworkManager も netctl も入れてないけど VMware Player で suspend させたい

https://gist.github.com/kikairoya/2db51f850ede358f44a9 これを /usr/local/bin/netctl として保存。

open-vm-tools を linux-3.10 guest で動かせるようにした

A patch for workaround of open-vm-tools(2013.04.16) for Linux 3.10 kernel. Linux 3.10 renames create_proc_entry, struct super_block::s_frozen and changes type of callback struct dentry_operations::d_revalidate, struct inode_operations::loo…

std::threadをMinGWで使えるようにした

implement condition-variable to gthr-win32 needed for std::thread family. modify from gcc-4.7.0. · GitHub libgcc の GThreads wrapper が pthreads 以外の環境では Condition-Variable に対応していないため std::thread が使えなかったが、必要にな…

'11年代のMPL

この記事はC++11 Advent Calendar 2011の参加記事です。※注: やたらと長いコードが貼ってありますが、実装についての解説は無いので読み飛ばしてください。 Boost.MPL Boost.MPLはBoostを使っている人なら(魔クロ界の住人を除く)ほぼ全員が間接的にお世話に…

boost::lexical_castの涙ぐましい最適化

この記事はBoost Advent Calendar 2011の参加記事です。本稿では、Boostのコンポーネントの一つ、lexical_castの涙ぐましい最適化について解説します。 lexical_castとは この辺見てください。 安直な実装 まずは一番簡単な実装から見ていきましょう。 templ…

Boost.勉強会 #6 札幌 で喋ってきました

移動記録 11/4 700? - 833 新八代行新幹線リレーバス 849 - 940 さくら404 新八代-博多 947 - 952 福岡市営地下鉄空港線 博多-福岡空港 1110 - 1320 ANA289 FUK-CTS 1319 - 1355 快速エアポート133(7分遅れ) 新千歳空港-札幌 11/6 1155 - 1231 快速エアポー…

GCCのバグを直した

GCCで8bit長・16bit長のビットフィールドが正しく扱われない(STRICT_ALGINMENTな環境でもアライン無視する、volatile付けると領域破壊を起こす)問題を修正した。 BTSには投げたけれど、多分無視されるのでここにパッチを置いておく(gcc-4_6-branch/trunkにて…

高専ロボコン関東甲信越地区大会と九州沖縄地区大会を見てきた

今年の関東は山梨県開催だったので堂々と関東「甲」信越大会*1を名乗れますね!!!…というのは置いておいて。非常に腹立たしいというか悲しいというか、そんな気持ちになったのでちょっとぶちまける。 歩行出来ない もう2足歩行連続4年目ですよ。なんで歩けな…

プログラミングの魔導書 真・最遅レビュー

らんはくん(id:ranha)が最遅レビューを名乗っているので対抗して真・最遅レビューでも書こうかと思います。出版の概要・購入方法についてはこの記事を読んでいる人なら当然予約済みであるはずなので省略して、個人的にオススメの記事を紹介します。 風とF#と…

Qt @福岡 第4回勉強会 で喋ってきました

T/O …と言いたいところだけど、いろいろ補足。 各コンテナのパフォーマンス差について 発表中に出したベンチ結果は1千万要素のint(つまり40MB)とかそういうレベルで、ようやく1sec以下の差になろうかという程度です。その程度の差よりは「楽に安全に使う」ほ…

VMware ToolsをLinux 3.0ゲストで使う

[open-vm-tools というので動きました。

Linux2.6.39ゲスト上のVMWare-Tools用パッチ Patch for VMWare-Tools on Linux-2.6.39 Guest

https://sites.google.com/site/kikairoya/file-cabinet/vmtool_linux2_6_39.patch?attredirects=0&d=1コンパイル通るようにしただけ。詳しい人いたらレビュー求む。 I don't know inside Linux, request for comment.使い方: /tmp/vmware-tools-distrib/lib…

コンテナの要素をセパレータで連結して表示したい

にあるアルゴリズムが便利すぎます…3 Jun, 00:05 update/ ファンクタの引数がintになってたのを修正、ostream_iteratorのcharTをostreamのcharTに合わせて指定するようにした (thanks for id:SubaruG) #include <iterator> #include <numeric> #include <iosfwd> template <typename charT, typename Traits, typename Sep, typename Iter> inline std::</typename></iosfwd></numeric></iterator>…

NiosII EDSをUAC環境下で使う

AlteraのソフトコアNiosIIの開発にはEclipseベースのNiosIIが必要ですが、10.1の時点ではUAC環境に対応していません(11.0は未確認)。しかし、Visual StudioのExpress版があれば、UAC環境下でも動作させることができます。 マニフェストの用意 まず、以下の内…

std::arrayの要素数を自動推論する

だいぶ前に作ったやつ。どこに置いたか探し回ってしまったので備忘録用に。 https://gist.github.com/657582 forkを辿っていくとid:SubaruG先生を巻き込んで進化の様子がわかります。std::arrayを使うと、各種メンバ関数の追加だけでなく、ポインタへの暗黙…

そろそろstd::dequeについて語ろうか

STLの一翼を担うdeque(デックと読むらしい)ですが、その性能に比していまいち知名度が低いようです。 そこで、少しdequeについておさらいしましょう。 dequeの構造 まずは、dequeの期待される内部構造から。 といっても、非常に単純で、std::vector *>とほぼ…

プログラミングの魔導書

[Grimoire]「プログラミングの魔導書」予約開始! - Faith and Brave - C++で遊ぼう 買いました。

プログラミングの魔導書〜Programmers' Grimoire〜

http://longgate.co.jp/products.html 買いましょう。

C++WG AdHoc会議に行ってきました

去る2010-05-29(Sat)に、東京は赤坂で行われたC++WG AdHoc会議にオブサーバとして参加してきました。名前だけでは何をするのかよくわからないですが、平たく言うと事前にまとめられていたコメントを、標準化委員会に送るかどうか、送るならどういう表現にす…

GCC 4.5 リリースノート(続き)

Runtime Library (libstdc++) Improved experimental support for the upcoming ISO C++ standard, C++0x, including: Support for <future>, <functional>, and <random>. Existing facilities now exploit explicit operators and the newly implemented core C++0x features. C++0xサ</random></functional></future>…

GCC 4.5 リリース

GCC 4.5 がリリースされました。 リリースノートの日本語訳です。 Caveats注意 GCC now requires the MPC library in order to build. See the prerequisites page for version requirements.GCCのビルドにはMPCが(訳注:従来のGMP,MPFRに加えて)必要です。必…

GCC拡張インラインアセンブラ構文

Twitterでうっかり"GCCインラインアセンブラ拡張構文の解説でもするか"と発言したら、二人くらいに期待ageされたので、とりあえずCPUIDを例にインラインアセンブラの解説をします。 環境はi486(x86,IA-32)上のGCCが動く環境を想定しています。80386はCPUIDが…

ADLは邪悪らしい

TwitterでADLについて語っていたのでそのまとめ。 ADLは基本的に必須の機能。 でもテンプレートと複数の名前空間が絡むと意図しないLookupを起こすことがある。 参考: http://d.hatena.ne.jp/uskz/20060526/p1 意図しないADLを回避するにはネストされた名前…

bindでDeleterを簡略化

昨日のエントリで、boost::bind使えるはずだよ的なことを書いたので、その補足。 #define BOOST_BIND_ENABLE_STDCALL #include <windows.h> #include <boost/shared_ptr.hpp> #include <boost/bind.hpp> template <typename T> struct deref_ptr; template <typename T> struct deref_ptr<T *> { typedef T type; }; using boost::shared_ptr</t></typename></typename></boost/bind.hpp></boost/shared_ptr.hpp></windows.h>…

shared_ptrとHDCとSelectObjectと

「HDCやSelectObjectしたHGDIOBJの寿命管理をするスマートな方法が無いか」という独り言に勝手に答えてみました。 Motivation shared_ptrをマンセーする ctor/dtorのためだけのクラスを作りたくない Approach Win32 HANDLEをboost::shared_ptr (or std::tr1::sha…

gccのデバッグ始めました。

LTOを触りたくてgccのsvn-trunkを引っ張ってきたのですが、まだcloseもされていない段階なので、不安定なコードが大量に混じっているようです。 しかも対象アーキテクチャがマイナー(h8300-elf)なので、普通にコンパイルできるgccを作るために格闘している状…

フレームワークと継承

以前書いた継承について。通常、GUIフレームワークを使う場合は、ATL/WTLなどCRTPを使うものを除き、フレームワーク側のベースクラスをpublic継承して使用します。 これはフレームワーク側にとってインタフェースの継承(とアップキャスト)が重要なためで、通…

BSch3V+Qt

先日から続いていたデスマーチがようやくひと段落したので、かねてより触りたいと思っていたQtで何か作ることにしました。 回路図エディタBSch3VがGPLライセンスでMFC版とQt版があるので、Qt4に移植+フォークさせてみようかと思います。

継承の使い方

先日の多態について少し補足。継承を使うときの考え方として、"実装の継承"と"インタフェースの継承"があります。 前者は再利用するための継承、後者は再利用されるための継承です。 ところが、C++に限らず、一般的な継承の仕組みは、実装とインタフェースの…