Friday 7 February 2014

Overlay icons limit

Installed some new stuff like SkyDrive and lost your overlay icons for TortoiseSVN? That's because of the overlay icons limit in Windows 7 — no more than 24. You can fix this only by removing some of the registered overlays from here:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
0Ynd is for Yandex.Disk overlays.

Tuesday 4 February 2014

String as a template parameter in C++03

So you want to instantiate your template with a string literal, but you can do this only by defining it as a constant. This code should work:

#include <iostream>
template <const char* p> Foo () { std::cout << p; }
extern const char s[] = "Hello world!";
void main () { Foo <s> (); }

The tricky part here is extern for s. C++03 requires template arguments to have external linkage. I can't remember any other reasons for using extern const in production code. The reason is that the C++ specs in that point are simply over-restrictive. Fortunately, C++11 doesn't have such a mess.

"Director of technologies propagation"

There is a guy in Yandex who's name is Grigory Bakunov, and he is somewhat legendary person among the Russian developers community, more on him here:
He is a person of broad expertise, so there was a problem with a title of his position after he had turned his career into Yandex. Therefore they have invented the title "Director of technologies propagation". It means that he is responsible for revealing the value of technologies being invented inside Yandex to make them a) usable and available across different teams in Yandex, b) known and popular outside Yandex (through API's, competitions, etc).

What I want to notice here is that such a role is strictly important in science-intense working environments. Each IT-person in the company should be aware of what his/her colleagues are working on, and what technologies does the company already have to be reused. That is an essential part of the overall company's efficiency and the key to elaboration of the company's "school".