Pull to refresh
20
0
Dmitriy Khodyrev @DmitriyH

User

Send message

Статический анализ кода C++

Reading time5 min
Views33K
Для меня красота C++ заключается, в первую очередь, во вседозволенности и ужасающей мощи языка. Мы можем работать с памятью так же плотно, как и в C, и в то же время имеем такие средства абстракции, как шаблоны и STL, где параметризовать можно что угодно и чем угодно.
Плата за это соответствующая — не всегда вразумительные ошибки компилятора (попробуйте забыть поставить точку с запятой после определения класса), очень большой срок подготовки и обучения программистов, но самое главное — некоторые баги становятся заметными только во время исполнения программы.
Мы хотим больше полезных ворнингов до запуска наших программ. Одно из средств получения желаемого — статический анализ кода. Статический — значит, не запуская программу. Интересны не только вероятные ошибки, случаи undefined behaviour, утечки памяти, но и вещи вроде недоступности/неиспользуемости кода, рекомендации по повышению интуитивности стиля программирования.
Читать дальше →
Total votes 40: ↑38 and ↓2+36
Comments43

Неочевидная особенность в синтаксисе определения переменных

Reading time3 min
Views6.4K
Предлагается совершенно невинный на вид кусок кода на C++. Здесь нет ни шаблонов, ни виртуальных функций, ни наследования, но создатели этого чудесного языка спрятали грабли посреди чистa поля.

struct A {
  A (int i) {}
};

struct B {
  B (A a) {}
};

int main () {
  int i = 1;
  B b(A(i)); // (1)
  return 0;
}


* This source code was highlighted with Source Code Highlighter.


Вопрос: какой тип у переменной b? Совсем не тот, который можно было бы предположить на первый взгляд.

Ответ под катом
Total votes 87: ↑75 and ↓12+63
Comments70

Расширение функциональности Visual Studio

Reading time9 min
Views25K
Дисклэймер

Сразу оговорюсь. Всё написанное здесь исключительно моё имхо. Я могу ошибаться и буду рад, если вы меня поправите :)

Буду использовать жаргонизмы и варваризмы, потому что пишу на русском, а русских аналогов нужных терминов нет или они не совсем точно передают смысл.

Ладно, к делу.

Данная статья имеет задачу в первом приближении проинформировать интересующихся о возможностях расширения функционала Visual Studio — «технологии» Visual Studio Extensibility.

Читать дальше →
Total votes 61: ↑43 and ↓18+25
Comments21

Легальный взлом как разминка для ума

Reading time5 min
Views15K
IT-шники часто придумывают себе упражнения для ума, пытливый ум постоянно требует разминки. Хочу рассказать об одном из самых жестких и спорных способах – взлом специально защищенных программ-головоломок (Часто их называют crackme).

Одно из мест, где такие головоломки собраны — crackmes.de.

Здесь находятся много интересных программ, на которых можно испробовать свои силы по взлому. Никакого криминала – программы специально написаны для этой цели (так называемые crackme и reverseme);

Часто любят говорить «Все защиты можно взломать». Поковыряв некоторые из crackme вы возможно измените своё мнение.
Читать дальше →
Total votes 84: ↑79 and ↓5+74
Comments42

Пишем кроссбраузерный UserJS. Пример №1: меняем логотип Яндексу

Reading time2 min
Views5K
Firefox, Opera, Safari и Chrome поддерживают UserJS. Все по разному. Я планирую написать серию статей про то как писать скрипты для этих браузеров. В день по одной.

Сегодня мы поменяем логотип Яндекса на Гугловый. Такой вот бесполезный скрипт.

Yandex with Google logo

yandex-with-google-logo.user.js:

// ==UserScript==
// @name      Google logo on yandex.ru
// @include   http://www.yandex.ru/*
// ==/UserScript==

var logo = document.querySelector("img[src$='logo.png']");
if (logo) {
  logo.src = 'http://www.google.com/intl/en_ALL/images/logo.gif';
  logo.removeAttribute('height');
}


Читать дальше →
Total votes 92: ↑83 and ↓9+74
Comments26

Whoer.net — сервис проверки вашей анонимности

Reading time1 min
Views22K
Представляем вашему вниманию новый сервис проверки передаваемой вашим компьютером информации в сеть Интернет — Whoer.net.

Он идеально подойдет для проверки Proxy и Socks серверов, расскажет о вашем VPN сервере, проверит IP-адрес на нахождение в блэк-листах, укажет, включены ли ActiveX и Java на вашем компьютере, каковы его языковые и системные настройки, какая установлена ОС и браузер, определит DNS и т.д.

Для вашего удобства, мы подготовили легкую и расширенную версию ресурса, в которой отображается большое количество дополнительной информации. Так же присутствует возможность выбрать язык интерфейса и SSL-соединение, по вашему желанию. Легкий дизайн, простой адрес, большой функционал и быстрая скорость работы, вот что такое Whoer.net.

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

P.P.S. Создатели сервиса — мои друзья, и, соответственно, повествование велось от их лица.
Total votes 67: ↑50 and ↓17+33
Comments51

Неисправный пиксель

Reading time1 min
Views4.9K
Бороздя просторы рунета, наткнулся на интересную задачу.
На электронном табло отображается верное математическое равенство. Но один пиксел табло неисправен. Какой?

image

По мотивам braingames.ru

P.S. Решил сам, не лишай удовольствия ближнего своего, не нужно в комментах сразу ответы.

UPD: тут хайвмайнд получился, но я всяко первее.
UDP2: в комментариях две явные подсказки + ссылка на решение, будьте осторожны!
Total votes 182: ↑139.5 and ↓42.5+97
Comments175

Способы сокрытия IP-адреса в сети Internet

Reading time7 min
Views157K
Прежде чем мы подробно рассмотрим известные технологии сокрытия своего настоящего IP-адреса, нам следует узнать свой IP-адрес и выяснить некоторые вещи, обличающие наш компьютер в сети, например адрес DNS-сервера. Для этого достаточно зайти на любой сервис проверки анонимности, например www.whoer.net, главное чтобы он обладал интерактивной проверкой вашего компьютера с помощью Java, ActiveX, Flash и Javascipt. Изменить свой IP-адрес, например с помощью Socks или VPN, недостаточно, т.к. существует множество технологий, позволяющих его выявить, которые нужно либо отключить на своем компьютере, либо обмануть. Также не лишним будет изменить передаваемые НТТР-заголовки, это позволит «сбить» определение установленного ПО и географическое место расположения компьютера. Более детально проверить свой компьютер можно в расширенной версии www.whoer.net/ext.

Читать дальше →
Total votes 108: ↑85 and ↓23+62
Comments135
12 ...
23

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity