Search
Write a publication
Pull to refresh
7
0
Garrett @Garrett

User

Send message

Анонимное сканирование портов при помощи hping3

Reading time4 min
Views39K
Для реализации понадобится уверенные знания работы TCP/IP и желание понять. В результате мы получим возможность сканировать удаленную машину на открытые порты от чужого адреса по следующией схеме (картинка из мануала по nmap):

image
Читать дальше →

Лазерное шоу, управляемое через LPT

Reading time3 min
Views44K
image
Я раскажу Вам как можно сделать лазерное шоу управляемое через порт LPT. Используется самая простая схема подключения и самый простой способ управления.
Идеалистическое стремление данного проекта — достижение художественной ценности световых эффектов, возможное лишь при человеческом творчестве. Подразумевается, что игра света может рассматриваться и как самостоятельное произведение.
Читать дальше →

Быстрый поиск совпадений объектов по их контрольным суммам на примере поиска дублирующихся изображений

Reading time4 min
Views4.4K
Исходные данные:
  • набор объектов обладающих аттрибутами
  • возможность приблизительно точно идентифицировать объект сопоставив ему контрольную сумму.


Конечная цель:
  • получить списки объектов по которым легко выявить совпадения.

Идея алгоритма заключается в создании суффиксного дерева каждый узел которого хранит в себе один байт контрольной суммы. При получении контрольной суммы очередного объекта мы начинаем движение с корня дерева вглубь, если мы не находим узел для следующего байта в последовательности, то создаем его. Достигнув окончания контрольной суммы и создав конечный узел запишем в него параметры объекта. В итоге мы получим список конечных узлов, если в конечном узле лежит описание более одного объекта мы предполагаем что эти объекты идентичны.
Читать дальше →

Абузы разные нужны, абузы разные важны…

Reading time2 min
Views4K
Каждый хостер время от времени сталкивается с претензиями.
Но вот сегодня представитель одной очень солидной российской Интернет-организации
(или лицо выдающее себя за оное… ибо в одном письме была в подписи одна компания, в другом письме фигурировало уже две компании) прислал нам славное письмишко…
Читать дальше →

Форматирование в комментариях

Reading time1 min
Views2.2K
Надоело мне писать теги в комментариях руками, и сделал я userscript, который добавляет кнопки форматирования к полю комментария. Непонятно, почему их до сих пор не сделали хабраразработчики. В посте есть — в комментариях нет.
Вот тут сам скрипт — userscripts.org/scripts/show/85482. Работать он будет в Google Chrome, Firefox, Opera и может даже IE8. Инструкции по установке, если не знаете как ставить userscript'ы, можно почитать тут — внизу страницы.

Скрипт работает и в постах и в q&a. Содержит вроде бы всё необходимое и даже irony. Если найдёте какие-нибудь баги — пишите.

Напоследок картинка — как это будет выглядеть:
image

Декодирование JPEG для чайников

Reading time9 min
Views282K

[FF D8]


Вам когда-нибудь хотелось узнать как устроен jpg-файл? Сейчас разберемся! Прогревайте ваш любимый компилятор и hex-редактор, будем декодировать это:


Jpeg file in hex editor


Специально взял рисунок поменьше. Это знакомый, но сильно пережатый favicon Гугла: Google favicon


Последующее описание упрощено, и приведенная информация не полная, но зато потом будет легко понять спецификацию.


Даже не зная, как происходит кодирование, мы уже можем кое-что извлечь из файла.


[FF D8] — маркер начала. Он всегда находится в начале всех jpg-файлов.


Следом идут байты [FF FE]. Это маркер, означающий начало секции с комментарием. Следующие 2 байта [00 04] — длина секции (включая эти 2 байта). Значит в следующих двух [3A 29] — сам комментарий. Это коды символов ":" и ")", т.е. обычного смайлика. Вы можете увидеть его в первой строке правой части hex-редактора.

Читать дальше →

Silverlight + nginx = возобновляемая загрузка файлов в браузере

Reading time7 min
Views16K
В данной статье рассматривается опыт внедрения Silverlight-клиента для организации возобновляемой загрузки файлов на проекте Файлы@Mail.Ru.

Зачем это нужно? Думаю, не нужно рассказывать, что загрузку файлов на сервер и их хранение сейчас предоставляет очень большое количество веб-проектов, от небольших до очень крупных. Причем загрузка обычно реализована в виде обычного <input type=file/>, реже — с помощью Flash, еще реже — иными средствами (загрузку по FTP в данной статье мы не рассматриваем).

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

Что делать?
Читать дальше →

Советы по отладке в Visual Studio 2010

Reading time8 min
Views73K
Это двадцать шестая публикация в серии публикаций о VS 2010 и .NET 4.

Сегодняшняя публикация рассматривает некоторые полезные советы по отладке которые вы можете применять в Visual Studio. Мой друг Скот Кэйт (Scott Cate) (который опубликовал в блоге дюжину великолепных советов и трюков по VS) недавно обратил мое внимание на несколько хороших советов о которых не знает много разработчиков использующих Visual Studio (даже при том, что многие из них работают с ней уже давно с более ранних версий).
Читать дальше →

«Оживление» пользовательского интерфейса

Reading time12 min
Views33K
image

Приложение не отвечает?!


Многие из тех, кто программирует WPF-приложения, наверное тысячи раз писали конструкцию вида:
{Binding Items}

Если получение элементов коллекции Items выполняется в основном потоке приложения и занимает некоторое время — мы получаем «мертвый» пользовательский интерфейс. Приложение некоторое время не будет отрисовывать изменения состояния и реагировать на пользовательский ввод.
Читать дальше →

Неприступный почтовый сервер, или жизнь без спама

Reading time11 min
Views201K
Борьба со спамом — это головная боль всех ответственных администраторов почты. Чего только они не изобретают, чтобы любимым пользователям лучше жилось. Однако, как показала практика общения со многими системными администраторами, почему-то далеко не все представляют как правильно фильтровать спам.

Чаще всего встречается подход «добавим кучу RBL (DNSBL) и будем радоваться жизни». Подход не верный чуть более, чем полностью. Второй по популярности — контент-фильтры, зачастую купленные за бешеные деньги. Такой подход тоже в большинстве случаев совершенно неоправдан.

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

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

Итак, если вы хотите обезопасить своих пользователей от спама или наоборот, хотите чтобы кто-то случайно не обезопасил пользователей от ваших писем — добро пожаловать под кат.

Читать дальше →

Коллекция примеров 64-битных ошибок в реальных программах — часть 1

Reading time16 min
Views5.4K
Эту статью я посвящаю хабрапользователю f0b0s, который постоянно следит за нашей активностью, сопровождая ее тонким юмором, что держит нас в тонусе.

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

Я решил собрать примеры различных типов ошибок, которые мы сами обнаружили в реальных программах, о которых прочитали в интернете или о которых нам сообщили пользователи PVS-Studio. Итак, предлагаю вашему вниманию статью, представляющую собой коллекцию из 30 примеров 64-битных ошибок на языке Си и Си++.

Продолжение статьи >>

Читать дальше →

Красивая СКС (часть1)

Reading time2 min
Views100K
В прошлом топике про СКС меня упрекнули, что нет красивых картинок правильной СКС. Откровенно, мне никогда не удавалось самому сделать красивую серверную, на моей предыдущей работе после меня осталось «гнездо паука» (со стороны СКС, со стороны серверов там более-менее хорошо). С СКС я боролся несколько лет, но так и не одолел. После того, как я перешёл на работу в Селектел и посмотрел на машинный зал, у меня загорелись глаза пофотографировать. Свои ошибки я понял только после того, как посмотрел, как работают монтажники. Всё, стойки, кроме той, что на последней фотографии, оформлял yuhenobi, последнюю Саша Тугов (которого, увы, на хабре нет).

После долгих уговоров начальства, со скрипом, мне таки разрешили пофотографировать.(А, посмотрев на результат, решили перенести в блог компании).

Под катом фотографии из дата-центра Селектела (каждая фотография кликабельна на фулл-сайз) и комментарии.



Обратите внимание: провода перед попаданием в вертикальный толстый пучок, собираются в маленькие жгуты, благодаря этому операция с каждым жгутом может быть выполнена довольно просто: его просто расплести, найти нужный провод, сплести обратно. В данном конкретном случае не планируется провода перекроссировать, так что провода стягиваются очень плотно. Вторая важная вещь, которая достигается за счёт тонких жгутов: до момента, пока жгут не притянут к кабель-органайзеру, он создаёт минимальное сопротивление воздуху (который перегоняется из холодного коридора в горячий вентиляторами стоечных устройств).

Читать дальше →

Visual Studio 2010: 4 полезнейших расширения

Reading time3 min
Views15K
image

Буквально на днях для Visual Studio 2010 выпущено два набора официальных обновлений. Первый – Power Tools – нацелен на добавление множества мелких функциональных вещей увеличивающих продуктивность труда. Второй — Modeling Feature Pack добавляет к архитектурным инструментам Visual Studio массу полезных возможностей.

Кроме этих инструментов, в этой статье я расскажу еще о двух полезнейших расширений Visual Studio. Кстати, число расширений в онлайн-хранилище доступном из Extension Manager постоянно растет и уже приближается к 2000 штук.

Читать дальше →

SIP телефония для дома — реализация, опыт, фишки

Reading time9 min
Views204K
Всем привет.

В комментариях к различным топикам на Хабре нередко видел вопросы класса «А зачем вам нужна SIP-телефония дома» и «Как все это безобразие работает». Некоторые темы на хабре уже раскрывались, но многое осталось в тени. Посему решил описать используемую мной схему SIP-устройств и сервисов, и набросать некоторые планы на будущее.

Просто повторять аксиому, что SIP – это далеко не только дешевые междугородние звонки через sipnet или других операторов я не буду, и постараюсь в данном топике раскрыть все многообразие возможных вариантов применения SIP в быту.
Читать дальше →

Об обходе антивирусов на практике

Reading time5 min
Views15K
На днях в этом блоге была опубликована ссылка на новость об универсальной методике обхода антивирусов. Впрочем, силами цепочки английских и русских журналистов-копипейстеров суть сообщения искажена в столь несовместимую с разумом и реальностью ересь, что мне — специалисту по (анти)вирусным технологиям — пришлось перечитать текст дважды, прежде чем я поняла, о чем примерно идет речь. Поэтому рекомендуется ознакомиться с источником.

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

Антивирусы-лузерыПримеры будут извлечены из нашей любимой зверюшки — бота-руткита TDSS, о котором в последнее время много говорят. Что и не удивительно: это один из наиболее распространенных, технически продвинутых и активно развивающихся ботов.

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

Ping и traceroute со всех континентов одновременно

Reading time2 min
Views3K
Хочу рассказать о сетевых утилитах, которые мы открыли на проекте WIPmania полтора месяца назад. Утилиты включают в себя пинги и трассировки с множества серверов (на сегодня около полусотни) по всему миру:
image
Пинги можно выполнять одновременно со всех серверов.
Читать дальше →

Тренировка памяти

Reading time3 min
Views46K
Вы когда-нибудь задумывались, насколько важна память для человека и конкретно для вас? Что можно достичь, с помощью хорошей памяти? А давайте прикинем прямо сейчас!? Для начала я думаю, стоит вспомнить образование и работу: прочитали книгу за несколько дней и все запомнили, экзамены за вечер на 5, язык программирования за месяц… можно продолжать долго.

Некоторые люди рождаются с феноменальной памятью, а остальные могут память тренировать и достигнуть хоть и не феноменальных результатов, но очень даже приличных, которые позволят достичь очень больших высот, не говоря уже о довольно простых вещах, перечисленных чуть выше… Поэтому моя заметка именно о тренировке памяти обычных людей: сжато и по сути.
Читать дальше →

Альтернативный способ записи IP-адресов

Reading time1 min
Views61K
Наверное, некоторые знают такую штуку, но думаю, далеко не все.

Как мы все знаем, адрес IPv4 представляет собой 32-битное число. Традиционно IP-адрес записывается в виде 4-х октетов, разделенных точкой, в десятичной системе счисления. Например: 77.88.21.8.
Однако существуют и другие, менее распространенные варианты записи.

Во-первых, каждый из 4-х октетов можно записать в восьмеричной или шестнадцатеричной системах счисления:
77.88.21.8 = 0x4d.0x58.0x15.0x8 = 0115.0130.025.010, или даже можно смешивать 77.88.0x15.010.

Во-вторых, адрес можно записывать в виде числа:
77 * 2563 + 88 * 2562 + 21 * 2561 + 8 * 256О = 1297618184.
Аналогично п.1 это число можно записывать в восьмеричной и шестнадцатеричной системах счисления: 1297618184 = 011526012410 = 0x4D581508.

Честно говоря, не нашел RFC, в котором описываются эти форматы, но это работает везде: в браузере, команде ping и т.д. Попробуйте сами.

Фильтрация изображений методом свертки

Reading time6 min
Views87K
Автором данного топика является хабраюзер Popik, который сам не может запостить этот топик в силу астральных причин.

Введение.


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

Что же там дальше?

Information

Rating
Does not participate
Location
München, Bayern, Германия
Date of birth
Registered
Activity