30 дек. 2010 г.
Файл hosts в Windows x64
cd etc
находясь в c:\WINDOWS\system32\Drivers\ и попал в нужную директорию.
Кейс связан с 32-битностью файл-мнеджера.
Как вариант, открыть директорию etc можно через Windows Explorer.
29 дек. 2010 г.
Google Bookmarks. Метка Later
Последнее время взял себе за правило интересные веб-статьи/сайты, на прочтение которых в данный момент нет времени, заносить в Google Bookmarks с меткой later. Иногда добаляю дополнительные характерные метки. Тем самым пытаюсь бороться с кучей открытых вкладок в броузере. Да и от компьютера и обозревателя не завишу. По прочтению статьи либо удаляю закладку из Bookmarks, либо убираю метку later.
17 дек. 2010 г.
Капча
13 дек. 2010 г.
Журналисты должны уяснить, что на самом деле означает слово "Хакер"
“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 г.
Как работают Яндекс.Новости
7 дек. 2010 г.
Фраза
"Мы не можем использовать такое имя переменной. Оно похоже на венгерскую нотацию".
Йопт...
Смерь казака
![]() |
| Смотреть галерею |
Enough with tweeting...
6 дек. 2010 г.
Очередной троянец-вымогатель
"Уж сколько раз твердили миру..."Знакомые поставили некую софтинку, которая обещала отображать кто заходил на их страницу во ВКонтакте. Софтина, естественно, ничего не отобразила. Но при заходе на популярные социалки (ВКонтакте, Мой Мир, Мой круг, etc), на странице логина стало отображаться сообщении о блокировке учетки в связи с рассылкой с нее спама. За активацию учетки спрашивали переслать 20 грн на какой-то WebMoney-кошелек.
Подозрение сразу вызвал счетчик зарегистрированных аккаунтов во ВКонтакте. На этой странице он был около 98 000 000, в то время как он уже где-то недели две перевалил за 100 000 000.
В телефонном режиме проверили с ними nslookup на vkontakte.ru, проверили файл
c:\windows\system32\drivers\etc\hosts
Вроде нормально. Потом выяснили, что рядом с этим hosts-файлом лежал еще один скрытый. Explorer его, естественно, не отображал. В нем-то и был прописан список фишинговых страниц. Как был переименован штатный файл не знаю - по телефону не видно было.
Выводов напрашивается несколько. Основные:
- Работай с правами пользователя. Никакая хрень не сможет подменить системные файлы. Ну, почти никакая. Я, по крайней мере, таких еще не встречал.
- Работаешь под админом, пользуй админские примочки. В частности, файловый менеджер, который показывает и скрытые, и системные файлы.
- Не ставь всякую хрень, которая должна делать то, чего не может быть.
5 дек. 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 по написанию безопасных программ.
Например, идет речь о мультипрограммировании (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
27 нояб. 2010 г.
"Метро 2033"
Главный вопрос к сюжету, который возник в конце прочтения, - зачем черные полезли в метро?! Им что, сверху было мало места?! Имхо, реальное упущение автора. Сомневаюсь, что я один задался этим вопросом.
Что покоробило в книге, так это поливание грязью "красных активистов". В лице них хается советская власть, которая, в сущности, это метро-то и построила.
А так - книга как книга. Если есть возможность заплатить гривень 40-50, чтобы оплатить труд автора, печатников, водителей, художников и прочих, причастных к проекту, то ради нескольких часов чтения, имхо, можно потратить.
ЗЫЖ Правда, особой объективности я могу и не выказать, имбо перед этой книгой я по очереди прочитал сначала Маяковского "Путешествие в Америку", а затем Булгакова - "Белая Гвардия", "Записки юного врача" и несколько рассказов. Поэтому "Метро 2033" воспринялось как работа отличника-ПТУшника.
26 нояб. 2010 г.
Фильмочки
В общем, если будет пара лишних часов и с поллитра кагора - есть вариант как этот кагор употребить - под фильм "Начало" :).
25 нояб. 2010 г.
Наш двор.
![]() |
| Наш двор |
На волне последних мэрских выборов добавили еще одни качели. Количество маргинальных посетителей не уменьшили.
Фото-зарисовки
24 нояб. 2010 г.
Экивоки
"Начнём с первого правила архитектора программного обеспечения. Если вы хотите спроектировать framework, то не делайте этого. Второе правило - если вы хотите спроектировать framework, то никогда не делайте этого. Третье правило – если вы всё ещё хотите спроектировать framework, то так вам и надо, отвечать за последствия будете сами :)"
Мышь A4Tech WOP-35
После долгого перерыва в использовании мыши A4Tech WOP-35 снова поставил ее таки себе на работе. Решил написать хвалебную Решительно не понимаю людей, которые отказываются от подобных гаджетов (в частности - от манипуляторов) с воплями "Зачем мне это?! Оно сложное! Мне нужно простое!" Дык, мак вам в руки - одна кнопка и без скроллера. Да еще и с шариком - самое то!
А я уже лет 8 пользую WOP-35. Основное преимущество этой мыши перед остальными - 4 настраиваемых кнопки + 1 не настраиваемая (левая кнопка).
Настраиваю кнопки я так, как показано на скриншоте окна настроек мыши:- Под указательным пальцем - не настраиваемая левая кнопка мыши
- Под средним пальцем - двойной клик левой клавишей
- Под дальним колесом - Esc. Она используется не часто, т.к. нужно отрывать указательный или средний пальцы, чтобы нажать ее. Да еще и есть риск прокрутить колесо, что не всегда удобно
- Под безымянным пальцем - правая кнопка мыши
- Под большим пальцем - Enter. Одна из наиболее часто используемых кнопок на ровне с левой и правой кнопками.
Наличие кнопок для Enter и двойного клика экономит уйму времени на протяжение рабочего дня. Enter нажимается правой рукой (в правой части клавиатуры). Для этого руку нужно сымать с мыши. А тут - все под рукой. Точнее, под пальцем.
Кнопка с двойным кликом экономит ровно половину времени от двойного нажатия на левую кнопку. Какая-то микросекунда, но в сумме за день получается сравнительно немало. А за неделю? А за год? А ежели сэкономленное время потом учтётся на смертном одре? ;)
Эргономика у мыши довольно удобная. Мышь достаточно выпуклая, чтобы на ней точно уместилась ладонь. Остальное меня не очень интересует. Но, имхо, 8 лет использования говорит о том, что меня от это мыши прёт. :)
23 нояб. 2010 г.
Обновление Sysinternals Suite
Одна из главных фич новой версии Process Explorer - индикация сетевой активности процесса.
И, не уверен, что новая фича, но я ее раньше не замечал, - отображение сервиса, исполняемого svchost.exe. При наведении мыши на этот процесс можно посмотреть что именно он выполняет. Имхо - фича полезная, ибо какая-то кака может спрятаться за svchost, а админ ее и не заметит.
Еще одна фича, которую я всегда пользую - проверка подписанности образа процесса (Options/Verify Image Signatures). В отдельном столце отображается результат сверки цифровой подписи образа процесса и записи на сайте производителя. Оч удобно вычислять произведения кустарных мастеров. Тем паче с названиями типа svshost.exe...
22 нояб. 2010 г.
Новый сервис online-платежей
Bigmir.Net запустил новый сервис оплат через интернет - Plategka.Com. По внешнему виду - платежный терминал, только с web-интерфейсом. Платить можно, в том числе, за коммунальные услуги.Тенденция, имхо, положительная. Тем паче, не СПД какой-то, а более или менее крупная компания с именем. Главный вопрос, конечно, - квитанции. И как всегда, на сайте об этом - ни слова.
ЗЫЖ А включаешь - не работает! (с) Жванецкъй.
20 нояб. 2010 г.
День рождения винды, аднака...
Вот тут лежит .DOC-файл с перечнем ключевых событий в истории Microsoft. Правда, заканчивается список на 2003 году почему-то.
Здесь продублировал файл на случай его кончины в первоисточнике
16 нояб. 2010 г.
Две аксиомы компьютерного программирования
Две аксиомы компьютерного программирования
Глен Витман скомпилировал у себя на странице подборку Двух Аксиом. Вот краткая история этого дела:
Несколько лет назад я (Чарльз Миллер) трепался с каким-то типом в баре. Когда я ему сказал, что я экономист, он спросил:
— Дык, и какие две аксиомы экономики?
— Чего? - был мой ему ответ.
— Ну... Две аксиомы. Ты не в курсе что ли? У каждой сферы деятельности есть только 2 аксиомы, которые необходимо знать. Всё остальное - либо приложения к этим двум аксиомам, либо ненужный мусор.
— Хмм. Okay. Вот тебе Две Аксиомы экономики. Первая: Вопрос стимулов (так? - прим переводчика). Вторая: Бесплатный сыр - только в мышеловке.
Уж вечер близился, а я всё играл в игру Две Аксиомы.
В этой подборке отмечено, что многие не соглашаются, что можно отделаться всего лишь Двумя Аксиомами. Поэтому я выкручиваюсь. Итак - мои Две по Две Аксиомы:
Компьютерного программирования
- Любая проблема может быть разрешена разбиением её на множество более мелких проблем.
- Компьютер всегда делает ровно то, что ему сказано сделать. (за исключением перегретого железа и т.п. - прим. переводчика).
Разработки программного обеспечения
- Написание кода - самая легкая часть. Написание кода так, чтобы он был понятен по прошествии времени - самая важная часть.
- Сделай это работающим, затем сделай это элегантным, потом сделай это быстрым.
15 нояб. 2010 г.
8 нояб. 2010 г.
Англоязычные заморочки.
25 окт. 2010 г.
Идиома владения в применении к объектам синхронизации
Идиома владения в применении к объектам синхронизации
22 окт. 2010 г.
C++ Перлы
switch(dwNotifyID)
{
case NOTIFYPARENT_BEGIN_INSTALL_OPERATIONS:
m_cProgressPage.SetPageText(SZ_INSTALL_HEADER_PROGRESS_PAGE_TEXT);
break;
}
return m_rInstall.NotifyParent(dwNotifyID, dwData);
21 окт. 2010 г.
Character GuideLine в Microsoft Visual Studio
Настройка этого параметра производится через правку системного Реестра. В ветке:
[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-цвет линии.
Скрытые возможности С++
О стратегиях выделения динамической памяти
13 окт. 2010 г.
Стиль кодирования
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, следующий за ошибкой, и есть каузой ея.













