Что должен знать идеальный C++ программист в вакууме

У нас в России зачастую неадекватные требования к программистам. 

Вот как могла бы выглядеть идеальная вакансия С++ программиста:

1. C++, стандарт, Страустрап/D&E/Джосаттис/Вандервуд, Дьюхэрст/Мейерс/Саттер, RAII, правило трех, exception-

safety, Александреску/Абрахамс-Гуртовой, type erasure, CRTP, NVI, SFINAE, Koenig lookup, Duff's device, Boost, Сик-Ламсдейн/Карлссон, TR1, TR on C++ performance, тест Степанова, forwarding problem, SPECS, C++0x

2. Компиляторы, особенности реализации стандарта, ограничения реализации, интринсики, отличия стандартных библиотек (контейнеры, rand), ABI, реализация виртуальных функций, виртуального наследования, исключений, RTTI, switch, указателей на функции и методы; оптимизации, copy elision (RVO, NRVO), sizeof на различных платформах, дефайны компилятора и среды, __declspec, ключи компилятора, empty-base optimization, статическая и динамическая линковка, манглинг, распределенная компиляция, precompiled header, single compilation unit, (strict) aliasing/restrict, inline/_forceinline, volatile

3. Мультитредность, обедающие философы, deadlock/race condition/starvation, атомарность, lock инструкции процессора, CAS или LL/SC, wait/lock/obstruction-free, ABA problem, написание lock-free контейнеров, spin-lock, TLS/per-thread data, OpenMP, MPI, map-reduce, critical section/mutex/semaphore/condition variable, WaitForSingleObject/WaitForMultipleObjects, green thread/coroutine, pthreads

Resharper C++, впечатления

Поставил сие чудо от Jetbrains. Не перестаю восхищаться тем, что создают наши ребята.

Никогда не думал, что разработка на С++ в IDE может быть так же удобна, как, например, разработка на C# или Java.

Статья на хабре: http://habrahabr.ru/company/JetBrains/blog/255151/

Хотя, конечно, мои проекты не содержат какой-то сложной работы с шаблонами или фичами C++11, тем не менее, я очень доволен. По сравнению со стандартным IntelliSense или VisualAssist X, небо и земля. С++ разработчики более не могут считать себя обделенными.

Ссылки на разные open source проекты на C++

Программисту очень полезно интересоваться тем, что делают другие, чтобы расширять свой кругозор.

Решил дать ссылки на разные опен-сурс проекты, которые меня когда-то заинтересовали, откуда я черпал идеи, или даже код.

Распространение Windows приложений в Linux (Wine) при помощи InnoSetup

First, we need to detect Wine in the InnoSetup script.

function LoadLibraryA(lpLibFileName: PAnsiChar): THandle;
external 'LoadLibraryA@kernel32.dll stdcall';
function GetProcAddress(Module: THandle; ProcName: PAnsiChar): Longword;
external 'GetProcAddress@kernel32.dll stdcall';

function IsWine: boolean;
var  LibHandle  : THandle;
begin
  LibHandle := LoadLibraryA('ntdll.dll');
  Result:= GetProcAddress(LibHandle, 'wine_get_version')<> 0;
end;

Создание плагина разрешения ссылок для PhpStorm (IntelliJ IDEA)

Я работаю веб-программистом, пишу на PHP и использую фреймворк Kohana. Для разработки использую потрясающую, на мой взгляд, среду PhpStorm. При работе с большими и не очень проектами меня всегда угнетало, что я много времени трачу на навигацию по проекту, на поиск того или иного файла (контроллера или шаблона) в дереве проекта. Ctrl+Shift+N, к сожалению, удобен далеко не всегда. Для начала мне захотелось сделать так, чтобы можно было переходить из файла контроллера по нажатию Ctrl+B (или Ctrl+Click) над именем шаблона, передаваемого в кохановский View::factory(), непосредственно в файл шаблона:


 
Поэтому я решил написать небольшой плагин для PhpStorm, который облегчил бы мою работу и освободил бы от некоторой части рутины.

Маленький плагин для поддержки Kohana в PHPStorm

Маленький плагин для поддержки пхп фреймворка Kohana 3 в PHPStorm. Плагин предоставляет 2 простые функции:

Переход из файла контроллера по нажатию Ctrl+B (или Ctrl+Click) над именем шаблона, передаваемого в кохановский View::factory(), непосредственно в файл шаблона: