30 дек. 2010 г.

Файл hosts в Windows x64

Опять наткнулся на "отсутствие" файла hosts в Windows XP x64. Полез искать этот файл через файл-менеджер. А в c:\WINDOWS\system32\Drivers\ даже директории etc нету. Начал паниковать, рыскать по директориям, под столом... Нету! Потом нажал в строке команд Unreal Commander-а
cd etc
находясь в c:\WINDOWS\system32\Drivers\ и попал в нужную директорию.
Кейс связан с 32-битностью файл-мнеджера.

Как вариант, открыть директорию etc можно через Windows Explorer.

29 дек. 2010 г.

Google Bookmarks. Метка Later

Последнее время взял себе за правило интересные веб-статьи/сайты, на прочтение которых в данный момент нет времени, заносить в Google Bookmarks с меткой later. Иногда добаляю дополнительные характерные метки. Тем самым пытаюсь бороться с кучей открытых вкладок в броузере. Да и от компьютера и обозревателя не завишу. По прочтению статьи либо удаляю закладку из Bookmarks, либо убираю метку later.

17 дек. 2010 г.

WikiLeaks

Не могу быть на 100% уверенным, но от истории с WikiLeaks что-то сильно попахивает Кувейтом. Опять создаем себе врага, чтобы объявить военное положение и делать то, что нам нужно.

Капча

На ЖЖ только что капча попросила ввести прикольный текст:
dratinct Ever.

Гугель транслятор перевел как:
С тех dratinct.

Гы. Или как сейчас принято говорить, LOL.

XChat

Хорошая чатилка XChat. Они, в принципе, все хорошие. Но эта тоже хороша. Только работает в Windows не больше 30 дней.
Hint: дату своей установки и прочие настройки она хранит в реестре по адресу HKEY_CURRENT_USER\Software\XChat или в файле C:\Program Files\xchat\inst.conf

13 дек. 2010 г.

Журналисты должны уяснить, что на самом деле означает слово "Хакер"

На сайтике Geek Juice некий Kole опубликовал заметку "Journalists need to learn what a 'hacker' really is" "Журналисты должны уяснить, что на самом деле означает слово "Хакер"". Ниже - вольный перевод этой заметки. Сумлеваюсь, чтобы она возымела какое-то действие в новостной среде, ибо слово Хакер очень уж красочное и удобное для запугивания обывателя. Избавляться от него журналистам будет влом. Сказать, что одмины сайт плохо настроили - скучно. Никому не интересно. А сказать, что малолетний ХАКЕР взломал коррпоративный сайт СПД Пупырышкин, так это сразу страшно и интересно. И пофиг, что совсем непонятно. Однако заметку перевел.


“The Globe and Mail”, одна из самых уважаемых газет в Торонто, опубликовала сегодня (11/12/2010) статью под заголовком «2010 может войти в историю, как Год Хакера». Статья рассказывает о скандале с WikiLeaks, а так же о том, как группа “хакеров” положила Visa.com, Mastercard.com und Paypal.com

Ошибочное утверждение, что эта школота что-то хакнула, должно быть опровергнуто. Журналюги должны сначала мало-мальски изучить ту тему, о которой они собираются рассуждать. Особенно если они делают это на страницах одного из крупнейших изданий страны [Канады].

Сегодня я бросаю им вызов (вах! все кинулись за бронежилетами :) - прим. переводчика). Раз и навсегда я разъясню значение звания Хакер. А заодно помогу понять, как группа сосунков может положить корпоративный вебсайт несмотря на полное отсутствие основ хакинга.

Итак. Начнем с хакинга 101.

Возможно, вы помните киношку 90-х годов “Хакеры”. Это был веселый экшн про жизни разных хакерил, как они отрывались в свои 20 лет. То, что показано в фильме, считается взломом большинством экспертов (не уверен в переводе - прим. переводчика). Для придания привлекательности процессу хаккинга он сдобрен веселой графикой и анимацией. Однако результат этих действий - получение контроля над компьютерами для всяких грязных делишек.

На самом деле взлом (как одна из ипостасей хаккинга) не терпит суеты. Нужно терпеливо искать пути проникновения в систему. Ежели ты сталкиваешься с какой-то защитой, ты программишь некий утиль, чтобы обойти её. По ходу дела ты пишешь свои утилиты, которые позволят тебе остаться незамеченным в системе.

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

Участие в DDOSе не требует ничего из этого.
DOS-атака заключается, грубо говоря, в пинговании сайта клиентским компьютером снова и снова. Большинство современных сайтов легко справляются с этим. Становится гораздо интереснее, когда этим начинают заниматься тысячи клиентских компов. Тогда это называется DDOS (распределенная атака типа Отказ в Обслуживании). Она может быть реализована по разному. Как вариант, хакеры могут использовать тысячи компьютеров, контроль над которыми они получили в ходе заражения оных вирусАми. Однако чаще всего эта атака выполняется тысячами друзей, одновременно выполняющими DOS (одиночное пингование).

И наконец, что же случилось с Visa.com?

Тысячи объединенных нетожителей начали пинговать Visa.com (Mastercard.com, Paypal.com) одновременно. Они координировали свои действия через Twitter или другой протокол социальных сетей. Все, что нужно было сделать, это скачать программулину, которая была доступна через Twitter, и нажать одну-две кнопки. Скачал, поставил, запустил - и ты уже хакер.

Пожалуйста! Ради высокого звания Технического Журналиста не называйте то, что сделала эта школота, “Хаккингом” (“Взломом” - прим. переводчика). Это больше похоже на манифестацию перед штаб-квартирой большой конторы. Только в формате HD. Забаррикадировали входные двери и боле никто не может войти. Даже разносчик пиццы.

Новое слово

Наткнулся на новое слово, которое, несомненно, появилось совсем недавно.
Netizens. Гугл-транслятор переводит его как Интернетяне. Понятно, что составлено слово из двух: (inter)Net + Citizen. Обозначает примерно то же, что и Citizen, токмо в области сетевого сообщества.

9 дек. 2010 г.

Инициализация цикла из середины

Увидел у Маконелла интересную конструкцию. Иногда нужно перед входом в цикл произвести какие-то действия, а потом повторять их в этом цикле, который завершгится при определенном результате выполнения этих действий. Например:
  
fread(hFile, buffer, buffSize, &readedSize);
while ( readedSize > 0 )
{
foo();
fread(hFile, buffer, buffSize, &readedSize);
}


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

Но можно сделать так:
  
goto readBuffLabel;
while ( readedSize > 0 )
{
foo();
readBuffLabel:
fread(hFile, buffer, buffSize, &readedSize);
}


В этом случае мы имеем безусловный переход на строку, которая в единственном экземпляре произведет чтение из файла и в случае 0 размера прочитанных данных цикл завершится без выполнения foo().

Новая специальность в IT-технологиях!

Срочно нужно менять профессию! Это новое перспективное веяние в области IT! Срочно все переквалифицируемся на Ведуерщих инженер-программистов! Посещаем тренинги для Ведуерщих инженер-программистов! Срочно ищем на jooble.com вакансии Ведуерщих инженер-программистов!
Тем более с таким окладом! За 550 долларов в месяц любой Неведуерщий согласится стать Ведуерщим!

8 дек. 2010 г.

Обои на Bing.Com

Какие позитивные птички на обоях bing.com...

Как работают Яндекс.Новости

Сегодня в Гугло-читалке первый раз за несколько месяцев возник пост в rss-канале у Яндекс.Новости. Прицепляю скриншот. Порадовала последняя строка поста. Особенно, учитывая дату, указанную там.

7 дек. 2010 г.

Фраза

Зацепило...
"Мы не можем использовать такое имя переменной. Оно похоже на венгерскую нотацию".
Йопт...

Смерь казака

Смотреть галерею
Жил был казак. Долго он жил. Был он верен, вынослив и неприхотлив. Но в одном бою получил он смертельную рану. И выбросили его в мусор. А что ж с ним еще делать?!

Enough with tweeting...

Прямо таки в точку. Отписался от оповещений от пары френдов на Facebook из-за постов из их твитов. "Киев. Холодает". "Купил чемодан". "Сижу ем". Бееее

6 дек. 2010 г.

Очередной троянец-вымогатель

"Уж сколько раз твердили миру..."

Знакомые поставили некую софтинку, которая обещала отображать кто заходил на их страницу во ВКонтакте. Софтина, естественно, ничего не отобразила. Но при заходе на популярные социалки (ВКонтакте, Мой Мир, Мой круг, etc), на странице логина стало отображаться сообщении о блокировке учетки в связи с рассылкой с нее спама. За активацию учетки спрашивали переслать 20 грн на какой-то WebMoney-кошелек.
Подозрение сразу вызвал счетчик зарегистрированных аккаунтов во ВКонтакте. На этой странице он был около 98 000 000, в то время как он уже где-то недели две перевалил за 100 000 000.

В телефонном режиме проверили с ними nslookup на vkontakte.ru, проверили файл
c:\windows\system32\drivers\etc\hosts
Вроде нормально. Потом выяснили, что рядом с этим hosts-файлом лежал еще один скрытый. Explorer его, естественно, не отображал. В нем-то и был прописан список фишинговых страниц. Как был переименован штатный файл не знаю - по телефону не видно было.

Выводов напрашивается несколько. Основные:

  • Работай с правами пользователя. Никакая хрень не сможет подменить системные файлы. Ну, почти никакая. Я, по крайней мере, таких еще не встречал.

  • Работаешь под админом, пользуй админские примочки. В частности, файловый менеджер, который показывает и скрытые, и системные файлы.

  • Не ставь всякую хрень, которая должна делать то, чего не может быть.

5 дек. 2010 г.

Интересная лужа

Лужа. 03/12/2010
После дождя в одной луже увидел прикольный узор.

Одесса, Привоз, туман

Одесса, Привоз. Туман
В пятницу был возле Привоза. На фоне новых многоэтажек очень гротескно смотрятся старые полуразвалившиеся, но всё еще обитаемые, постройки.

UPD: 2010-12-30 10-37-51.
Вчера был на тыльной стороне этого строения. Ни 21-м, ни 20 веками там и не пахнет. Пахнет много чем, но не этим. Тут же впоминаются картины постапокалиптически-настроенных проризведений. Разруха, бедность, темень... На днях зайду с фотоаппаратом - пощелкаю.

23

На днях в один и тот же день в трамвае и троллейбусе дали два талончика. Примечательны номера этих талончиков.

0+36-6-3-4 = 23
0+5+0+5+6+7 = 23
0+50-5-6-7 = 32 (антипод 23)

2 дек. 2010 г.

Оригинальный тортик

Хех. Прикольный тортик. Для детского Дня Рождения, имхо, очень даже задорная идея.

1 дек. 2010 г.

Рекомендации NASA по написанию безопасных программ.

На сайте NASA разыскался документ "NASA Software Safety Guidebook". Сам документ датирован мартом 2004 года, но, имхо, ценности его это не умаляет. Документ является подборкой ркомендаций по написанию безопасных программ. Такая махина как NASA наверняка имеет мощную теоритическую базу по формированию требований к используемому ими софту. Так что прочтение этого руководства, думаю, будет не бесполезным. Сам я доку еще не прочитал - только нашел. Но вот в блоге у Алексея Пахунова подсмотрел несколько высказываний (мотиваторов к прочтению :) ). Пока их и приведу тут.


Например, идет речь о мультипрограммировании (N-Version Programming). Одна и та же функциональность реализуется разными способами. Если разные версии возвращают одинаковый результат, то всё в порядке. Если результаты не совпадают, то используется голосование, чтобы определить какой результат наиболее достоверный. Для защиты от одного сбоя нужно написать три разных реализации; от двух – пять.


Теперь интересное:


One major problem with N-Version programming is that it increases complexity, which has a direct relationship with the number of errors. In one NASA study of an experimental aircraft, all of the software problems found during testing were the result of the errors in the redundancy management system. The control software operated flawlessly!


Одна из главных проблем мультипрограммирования состоит в повышении сложности, что напрямую влияет на количество ошибок. Одно из исследований экспериментального самолета проведённое NASA показало, что все программные ошибки, найденные во время тестирования, были результатом ошибок в системе резервирования. Управляющее программное обеспечение работало безупречно!



Секция про языки тоже забавна. Сначала речь идет о «безопасном подмножестве» языков. Из него исключаются все мало-мальски неоднозначные, сложные, спорные и просто неудачные языковые конструкции. Далее разбираются разные языки. Про Ada – не интересно. Язык специально создавался для подобных применений. Ассемблер принимается за необходимое зло. Про Си написано уже интереснее:


In many ways, C is a higher level assembly language. This gives it great flexibility, and opens a Pandora’s box of possible errors.


Во многом, Си – это ассемблер высокого уровня. Это даёт значительную гибкость и открывает ящик Пандоры с возможными ошибками.


Ну да. Что есть, то есть.


Restricting the C language to certain constructs would not be feasible because the resulting language would not have the necessary functionality.


Ограничение языка Си до определенного набора разрешенных конструкций не представляется возможным, так как получившийся язык не обладал бы нужной функциональностью.


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


С++:


A standard “safe subset” of C++ does not presently exist.


Стандартное «безопасное подмножество» C++ на данный момент не существует.


… и вряд ли появится.


Don’t use the RTTI (Run-Time Type Information). It was added to support object oriented data bases. If you think it’s necessary in your program, look again at your design.


Не используйте RTTI. Эта функциональность была добавлена для поддержки объектно-ориентированных баз данных. Если вы думаете RTTI необходима вашей программе, пересмотрите свой дизайн.


+1. Но пассаж про ОО базы данных непонятен.


Про C# написали, что это интерпретируемый язык. Про NGEN они не в курсе. С другой стороны, ну зачем им сборщик мусора во встроенной железке?


Forth:


Forth has no “safety” features.


В Форте нет «безопасных» конструкций.


Просто и понятно. Ну и так далее. Там даже Visual Basic есть.


В приложении есть рекомендации для каждого языка. Попадаются волшебные:


Use comments to describe WHAT the procedure or section is meant to do. It is not always clear from the assembly code.


Используйте комментарии для описания того ЧТО процедура или секция должны делать. Это не всегда понятно из ассемблерного кода.



30 нояб. 2010 г.

ВКонтакте - через jabber

Не знаю давно ли, но ВКонтакте стал позволять обмениваться сообщенями с друзьями через Jabber-сервер. Что не может не радовать, ибо для этого можно пользовать любой мессенджер, умеющий работать через протокол Jabber-а.

Та же возможность есть и у Facebook, последователем которого, как ни крути, ВКонтакте остается быть.

Функциональный поясной ремень

Имхо, идея суперская. Погрешность на одежду, конечно имеется, но все равно...

29 нояб. 2010 г.

Unhandled Exception

Реальный пример Unhandled Exception (Необработанное Исключение). Такое бывает, когда не используют try/catch.

27 нояб. 2010 г.

"Метро 2033"

Кстати, о писче духовной. Намедни дочитал творение Дмитрия Глуховского "Метро 2033". Примерный сюжет: люди, вынужденные жить в метро после атомной войны, сталкиваются с давно уже пройденными этапами развития своей цивилизации в миниатюре (не-рыбо-не-мясо, нацисты, капиталисты, социалисты, людоеды). Еще они сталкиваются с новым вариантом жизни на планете, возникшем под действием радиации. Сказать честно, если бы мне за 5 минут дали выжимку из книги и выбор читать или нет, я бы выбрал второе.

Главный вопрос к сюжету, который возник в конце прочтения, - зачем черные полезли в метро?! Им что, сверху было мало места?! Имхо, реальное упущение автора. Сомневаюсь, что я один задался этим вопросом.

Что покоробило в книге, так это поливание грязью "красных активистов". В лице них хается советская власть, которая, в сущности, это метро-то и построила.

А так - книга как книга. Если есть возможность заплатить гривень 40-50, чтобы оплатить труд автора, печатников, водителей, художников и прочих, причастных к проекту, то ради нескольких часов чтения, имхо, можно потратить.

ЗЫЖ Правда, особой объективности я могу и не выказать, имбо перед этой книгой я по очереди прочитал сначала Маяковского "Путешествие в Америку", а затем Булгакова - "Белая Гвардия", "Записки юного врача" и несколько рассказов. Поэтому "Метро 2033" воспринялось как работа отличника-ПТУшника.

26 нояб. 2010 г.

Фильмочки

Только что посмотрели с супругой фильм "Interception" ("Начало"). Фильм впечатлил. Закрученность сюжета и оторванность идеи от реальности очень захватила. Последнее время я для себя определил новый разряд духовной пищи (чтиво, кино) - "Стоит потраченного времени". Так вот, "Начало" подпадает под... категорию "Не жалко потраченного времени". Да. Время, потраченное на просмотр фильма, значительно дороже отдачи от этого фильма. Но в пятницу потратить пару часов на просмотр качественного непредсказуемого сюжета не так жалко, как на просмотр чего-то типа "Хищника".
В общем, если будет пара лишних часов и с поллитра кагора - есть вариант как этот кагор употребить - под фильм "Начало" :).

25 нояб. 2010 г.

Наш двор.

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

На волне последних мэрских выборов добавили еще одни качели. Количество маргинальных посетителей не уменьшили.

Фото-зарисовки

Сфоткал сатаниста от Daewoo.

ЗЫЖ Для тех, кто в танке - аналогия с сатанистами возникла из-за перевернутого значка Daewoo

Смайлик в небе

Субж, собсна... Снято сегодня. В Одессе.

24 нояб. 2010 г.

Экивоки

Взято отсюда:
"Начнём с первого правила архитектора программного обеспечения. Если вы хотите спроектировать framework, то не делайте этого. Второе правило - если вы хотите спроектировать framework, то никогда не делайте этого. Третье правило – если вы всё ещё хотите спроектировать framework, то так вам и надо, отвечать за последствия будете сами :)"

Мышь A4Tech WOP-35

После долгого перерыва в использовании мыши A4Tech WOP-35 снова поставил ее таки себе на работе. Решил написать хвалебную оду заметку сему девайсу.
Решительно не понимаю людей, которые отказываются от подобных гаджетов (в частности - от манипуляторов) с воплями "Зачем мне это?! Оно сложное! Мне нужно простое!" Дык, мак вам в руки - одна кнопка и без скроллера. Да еще и с шариком - самое то!
А я уже лет 8 пользую WOP-35. Основное преимущество этой мыши перед остальными - 4 настраиваемых кнопки + 1 не настраиваемая (левая кнопка).

Настраиваю кнопки я так, как показано на скриншоте окна настроек мыши:

  1. Под указательным пальцем - не настраиваемая левая кнопка мыши

  2. Под средним пальцем - двойной клик левой клавишей

  3. Под дальним колесом - Esc. Она используется не часто, т.к. нужно отрывать указательный или средний пальцы, чтобы нажать ее. Да еще и есть риск прокрутить колесо, что не всегда удобно

  4. Под безымянным пальцем - правая кнопка мыши

  5. Под большим пальцем - Enter. Одна из наиболее часто используемых кнопок на ровне с левой и правой кнопками.



Наличие кнопок для Enter и двойного клика экономит уйму времени на протяжение рабочего дня. Enter нажимается правой рукой (в правой части клавиатуры). Для этого руку нужно сымать с мыши. А тут - все под рукой. Точнее, под пальцем.
Кнопка с двойным кликом экономит ровно половину времени от двойного нажатия на левую кнопку. Какая-то микросекунда, но в сумме за день получается сравнительно немало. А за неделю? А за год? А ежели сэкономленное время потом учтётся на смертном одре? ;)

Эргономика у мыши довольно удобная. Мышь достаточно выпуклая, чтобы на ней точно уместилась ладонь. Остальное меня не очень интересует. Но, имхо, 8 лет использования говорит о том, что меня от это мыши прёт. :)

23 нояб. 2010 г.

Обновление Sysinternals Suite

Обновился набор от Sysinternals Sysinternals Suite. Набор архиполезных администраторских утилит от Марка Руссиновича. Рекламировать его смысла нет.
Одна из главных фич новой версии Process Explorer - индикация сетевой активности процесса.
И, не уверен, что новая фича, но я ее раньше не замечал, - отображение сервиса, исполняемого svchost.exe. При наведении мыши на этот процесс можно посмотреть что именно он выполняет. Имхо - фича полезная, ибо какая-то кака может спрятаться за svchost, а админ ее и не заметит.

Еще одна фича, которую я всегда пользую - проверка подписанности образа процесса (Options/Verify Image Signatures). В отдельном столце отображается результат сверки цифровой подписи образа процесса и записи на сайте производителя. Оч удобно вычислять произведения кустарных мастеров. Тем паче с названиями типа svshost.exe...

22 нояб. 2010 г.

Новый сервис online-платежей

Bigmir.Net запустил новый сервис оплат через интернет - Plategka.Com. По внешнему виду - платежный терминал, только с web-интерфейсом. Платить можно, в том числе, за коммунальные услуги.
Тенденция, имхо, положительная. Тем паче, не СПД какой-то, а более или менее крупная компания с именем. Главный вопрос, конечно, - квитанции. И как всегда, на сайте об этом - ни слова.

ЗЫЖ А включаешь - не работает! (с) Жванецкъй.

20 нояб. 2010 г.

День рождения винды, аднака...

20.11.1985 был выпущен первый релиз Windows. Не то, чтобы стоило напиваться по этому поводу, но стакан томатного соку, имхо, можно поднять за это событие. Думаю, процентов 70 нонешних IT-crowd начали свое знакомство с персоналками именно с этой операционки.

Вот тут лежит .DOC-файл с перечнем ключевых событий в истории Microsoft. Правда, заканчивается список на 2003 году почему-то.

Здесь продублировал файл на случай его кончины в первоисточнике

16 нояб. 2010 г.

Две аксиомы компьютерного программирования

Вольный перевод этой странички.

Две аксиомы компьютерного программирования
Глен Витман скомпилировал у себя на странице подборку Двух Аксиом. Вот краткая история этого дела:

Несколько лет назад я (Чарльз Миллер) трепался с каким-то типом в баре. Когда я ему сказал, что я экономист, он спросил:
— Дык, и какие две аксиомы экономики?
— Чего? - был мой ему ответ.
— Ну... Две аксиомы. Ты не в курсе что ли? У каждой сферы деятельности есть только 2 аксиомы, которые необходимо знать. Всё остальное - либо приложения к этим двум аксиомам, либо ненужный мусор.
— Хмм. Okay. Вот тебе Две Аксиомы экономики. Первая: Вопрос стимулов (так? - прим переводчика). Вторая: Бесплатный сыр - только в мышеловке.
Уж вечер близился, а я всё играл в игру Две Аксиомы.

В этой подборке отмечено, что многие не соглашаются, что можно отделаться всего лишь Двумя Аксиомами. Поэтому я выкручиваюсь. Итак - мои Две по Две Аксиомы:


Компьютерного программирования


  1. Любая проблема может быть разрешена разбиением её на множество более мелких проблем.

  2. Компьютер всегда делает ровно то, что ему сказано сделать. (за исключением перегретого железа и т.п. - прим. переводчика).


Разработки программного обеспечения

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

  2. Сделай это работающим, затем сделай это элегантным, потом сделай это быстрым.

15 нояб. 2010 г.

Игра слов

Gadgets = Гаджеты = Гад же ты!

8 нояб. 2010 г.

Англоязычные заморочки.

"Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo". Корректная английская фраза, состоящая из 8 слов. Переводится примерно так: "Бизоны из Баффало, которых пугают бизоны из Баффало, пугают бизонов из Баффало". Прикол, конечно же, в значении слова (угадайте какого! :)) buffalo: бизон, Баффало (район Нью-Йорка), пугать/настораживать.

25 окт. 2010 г.

Идиома владения в применении к объектам синхронизации

Интересный и оч удобный механизм работы с, в данном случае, критическими секциями. Реализация проста, а избавляет от большого количества головняка...
Идиома владения в применении к объектам синхронизации

22 окт. 2010 г.

http://www.manpower.ru/ua/accenture/index.php

Hi!

=======================
WBR, Rett Pop

C++ Перлы


switch(dwNotifyID)
{
case NOTIFYPARENT_BEGIN_INSTALL_OPERATIONS:
m_cProgressPage.SetPageText(SZ_INSTALL_HEADER_PROGRESS_PAGE_TEXT);
break;
}

return m_rInstall.NotifyParent(dwNotifyID, dwData);

Таблица преобразования CIDR. Маска сети.

Таблица преобразования CIDR. Маска сети.

21 окт. 2010 г.

Character GuideLine в Microsoft Visual Studio

В MS Visual Studio нет возможности в диалоговом режиме изменить положение так называемого Character Guidline - вертикальной полоски в окне редактора, очерчивающую визуальную границу ширины строки. ФЙункционально оно ничего не делает, просто показывает, где находится, например, 80-й символ.
Настройка этого параметра производится через правку системного Реестра. В ветке:
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\<версия MSVS>\Text Editor]

изменяется строковый ключ Guides, который принимает значение:
"RGB(128,0,0) n1,n2,n3..."
, где n1,n2,n3 - расстояния в символах от левого края окна для каждой из линий, соответствующих каждому n (их может быть до 13 штук), "128,0,0" - RGB-цвет линии.

Скрытые возможности С++

Гы. Или как это еще сейчас принято говорить в обществе - LOL. Скрытые возможности С++

О стратегиях выделения динамической памяти

Интересная заметка О стратегиях выделения динамической памяти. Интересен не только конкретный случай, а вообще тенденция.

13 окт. 2010 г.

Стиль кодирования

"Другими словами, чем больше информации о том, что делает код, расположено прямо перед вашими глазами, тем более эффективной будет работа по поиску ошибок." Joel Spolski. Как заставить неправильный код выглядеть неправильно.

7 окт. 2010 г.

Останов консольной программы по окончанию

Понравилось мне использовать

::system("pause");


перед return в консольных программках. Оно выполняет консольную команду pause и, соответственно, ждет нажатия на любую клавишу, после чего программа завершается. Для дебагу очень удобно.

6 окт. 2010 г.

Парочка макросов под Visual Studio 2008

Субж:
1. Выделяет активный документ в окне Solution Explorer:
 
Public Sub LocateFileInSolutionExplorer()
DTE.ExecuteCommand("View.TrackActivityinSolutionExplorer")
DTE.ExecuteCommand("View.TrackActivityinSolutionExplorer")
DTE.ExecuteCommand("View.SolutionExplorer")
End Sub


У студии есть настройка Tools/Options/Projects and Solutions/Track Active Item In Solution Explorer, которая позволяет автоматически выделяти активный документ в SE. Этот макрос пользует эту фичу - включил/выключил/активировал окно Solution Explorer.

2. Открывает связанный с активным файл. Если открыт C, CPP, CC, то открывается файл с тем же именем но заголовочным расширением H, HPP, HH, and vice verse.

Sub OpenCorrspFile()
Dim sSF, sSP As String
Dim sDF, sDP As String
Dim sSE, sDE As String

sSP = DTE.ActiveDocument.Path
sSF = DTE.ActiveDocument.Name
sSE = LCase(Right(sSF, Len(sSF) - InStrRev(sSF, ".")))
sSF = Left(sSF, InStrRev(sSF, ".") - 1)

If ((sSE = "h") Or (sSE = "hpp")) Then
If ("" <> Dir(sSP + sSF + ".c")) Then
DTE.ItemOperations.OpenFile(sSP + sSF + ".c")
End If

If ("" <> Dir(sSP + sSF + ".cc")) Then
DTE.ItemOperations.OpenFile(sSP + sSF + ".cc")
End If

If ("" <> Dir(sSP + sSF + ".cpp")) Then
DTE.ItemOperations.OpenFile(sSP + sSF + ".cpp")
End If
End If

'======================================================
If ((sSE = "c") Or (sSE = "cpp") Or (sSE = "cc")) Then
If ("" <> Dir(sSP + sSF + ".h")) Then
DTE.ItemOperations.OpenFile(sSP + sSF + ".h")
End If

If ("" <> Dir(sSP + sSF + ".hpp")) Then
DTE.ItemOperations.OpenFile(sSP + sSF + ".hpp")
End If

If ("" <> Dir(sSP + sSF + ".hh")) Then
DTE.ItemOperations.OpenFile(sSP + sSF + ".hh")
End If
End If

End Sub


3. Форматирует в активном файле блоки if( ... ), обрамляя одним пробелом тело условия:

Sub FormatIF()
DTE.Find.FindWhat = "{:b*}if{:b*}:Ps{:b*}{.*}>{:b*}:Pe{:b*}$"
DTE.Find.ReplaceWith = "\1if( \4 )"
DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
DTE.Find.MatchCase = False
DTE.Find.MatchWholeWord = False
DTE.Find.MatchInHiddenText = False
DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr
DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
DTE.Find.Execute()
End Sub

5 окт. 2010 г.

Наладонник Asus MyPal p526. Грязный хак.

Второй год пользую так называемый PC-Phone Asus MyPal p526. В общем и целом - нормально.
Но есть у него фича, которая сильно меня доставала. У него на правой контекстной кнопке по-умолчанию висит вызов Voice Commander. Утилиты, как по мне, совершенно бесполезной. Тем паче, учитывая ее тормознутость.
Должно было пройти 2 года, чтобы я додумался найти в директории Windows устройства ярлык Voice Commander.lnk, удалить его и заместить ярлыком с тем же именем, но на, в моем случае, калькулятор. Хак грязный, но вынужденный. Ибо штатной возможности переназначить эту кнопку я не нашел.

4 окт. 2010 г.

Adobe Open Source

Хмм. Никогда не думал, что Adobe будет двигаться в направлении Open Source. Ан нет. Набрел на ресурс Adobe Open Source. Фотошопом они, конечно, делиться не будут, но и открытие исходников нескольких проектов, имхо, тоже показатель...

29 сент. 2010 г.

C++ error: no "object" file generated

Так, для себя заметка. Ошибка
C++ error: no "object" file generated

возникает, когда установлена опция компилятора
threat warning as error

И, warning, следующий за ошибкой, и есть каузой ея.

27 сент. 2010 г.

Реклама Обамы

Сегдоня на 9gag.com внизу увидел рекламу Обамы :)