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.

Monday 3 February 2014

"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".

Sunday 12 January 2014

gcc and -ldl

Whenever you want to use POSIX functions like dlopen and dlsyn, should you put -ldl at the very end of the linking command, like:
g++ -rdynamic -Wl,-rpath,. -L. -o Progr ./Progr.o -ldl
but not like:
g++ -rdynamic  -ldl -Wl,-rpath,. -L. -o Progr ./Progr.o
Yet don't know why, accept as a fact.

Saturday 4 January 2014

Make process run with high priority

Dirty but works. For Windows certainly :)
system ("wmic process where name=\"MyExe.exe\" CALL setpriority 128 > dummy.txt");

Thursday 2 January 2014

CPU whine hotfix for Ivy Bridge

Even on the modern Ivy Bridge Intel CPU's we have coal whine frequently.
There were plenty of solutions during the last, hm, 5 years. But here is the simplest workaround:
1) To activate: reg add HKLM\System\CurrentControlSet\Control\Processor /v Capabilities /t REG_DWORD /d 0x0007e066
2) To deactivate: reg delete HKLM\System\CurrentControlSet\Control\Processor /v Capabilities /f
Restart PC.
It really works on my new Lenovo T430s with i5-3230, on all the default power schemes, no fancy tweaking for them. Together with TPFanControl and SSD inside, I have the most silent powerhouse laptop I have ever had. But I didn't test how it drowns the battery. Will surely test it and post results here.

UPD Haven't noticed any significant difference in heat and power consumption by now (Jan 13). Highly recommend to use.

Wednesday 1 January 2014

Highlight current line

Always look for this while tuning new Windows setups. NB.


Here is the preferable color: