amosk: (body art)
Небольшой такой FAQ по  C++:
http://www.parashift.com/c%2B%2B-faq-lite/index.html
amosk: (Default)
http://www.ibm.com/developerworks/opensource/library/os-ecllink/
Описаны разлиные способы организации взаимодействия между View в платформе Eclipse.

MiGLayout

Mar. 29th, 2009 01:38 pm
amosk: (body art)
Java Layout Manager for Swing & SWT
http://www.miglayout.com/
amosk: (Pheebs shocked)
До оптимизации:
do {                          
    *to = *from++;            
} while (--count > 0);
После оптимизации:
 int n = (count + 7) / 8;
switch (count % 8) {
case 0: do { *to = *from++;
case 7:      *to = *from++;
case 6:      *to = *from++;
case 5:      *to = *from++;
case 4:      *to = *from++;
case 3:      *to = *from++;
case 2:      *to = *from++;
case 1:      *to = *from++;
             } while (--n > 0);
}
Смысл оптимизации здесь - уменьшить кол-во итераций цикла, тем самым уменьшив число сравнений (прием называется Размотка цикла).

Но для меня интересно здесь другое, а именно переплетение switch {} и do {}. Я и не догадывался, что стандарт C позволяет внутри switch писать структуры с вложенностью и помещать метки case  перед любыми их операторами на любом уровне вложенности, а не только непосредственно под switch.

Правда сам я написал бы подобный код только за очень большие деньги. Такие, чтобы я мог до конца жизни больше не писать программы :).

Ыкс: http://en.wikipedia.org/wiki/Duffs_device
amosk: (body art)
Прочел про отличный метод отладки программ:

Мы назвали его методом Резинового Утенка.
1) Достаньте (одолжите, украдите, купите, сделайте сами ...) резинового утенка.
2) Усадите его перед собой на стол и скажите ему, что сейчас вы вместе с ним пройдетесь по коду программы на предмет все ли в нем правильно.
3) Объясните утенку, что должен делать рассматриваемый участок кода, а затем детально, строка за строкой, объясните ему, что этот код делает.
4) В какой-то момент, рассказав утенку  про то, что должна сделать очередная строка кода, вы осознаете, что на самом деле она делает другое. А утенок будет безмятежно сидеть, счастливый от осознания того, что помог вам в вашем деле.

Срабатывает каждый раз. А если у вас нет утенка, то вы можете его заменить своим коллегой.


http://lists.ethernal.org/oldarchives/cantlug-0211/msg00174.html

От себя добавлю, что несколько раз успешно применял этот метод в тупиковых ситуациях. Правда у меня достаточно развитая фантазия, чтобы обходиться без физического воплощения слушателя :)
amosk: (body art)
http://sitracker.org/wiki/Main_Page

Support Incident Tracker (or SiT!) is a Free Software/Open Source (GPL) web based application which uses PHP and MySQL for tracking technical support calls/emails. Manage contacts, sites, technical support contracts and support incidents in one place. Send emails directly from SiT!, attach files and record every communication in the incident log. SiT is aware of Service Level Agreements and incidents are flagged if they stray outside of them.
amosk: (Default)
Сейчас обдумываю, как же ограничить демо-версию продаваемой программы по сравнению с купленной версией так, чтобы у пользователя постоянно возникала мысль "а не купить ли программу?" и одновременно не возникала мысль "а не пошел бы ты со своей программой" :)

У кого есть какие-то идеи, кидайте сюда комментами.
Принимаются самые идиотские и нереализуемые идеи. Смешные тоже - если не будет пользы, то хоть поржу.

Например, из идиотского:
- демо работает  только по четным дням
- демо работает только первые M минут после загрузки компа (хотя M мало, пусть будет  N)

Из нереализуемого:
- демо работает только если пользователь приложит к экрану компа расписку в том, что он обещает заплатить за программу.
amosk: (body art)
Кое что возможно устарело, но в целом актуально.
http://www.citforum.ru/internet/javascript/java_rbint.shtml

Profile

amosk: (Default)
amosk

December 2016

S M T W T F S
    123
45678910
11121314151617
18192021222324
252627 28293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 18th, 2025 01:10 pm
Powered by Dreamwidth Studios