Как стать автором
Обновить
16
0

Пользователь

Отправить сообщение

Аналог scope(exit) на С++

Время на прочтение2 мин
Количество просмотров6.2K
Прочитал, недавно, на хабре, статью про scope(exit) в языке D и проникся красотой идеи.
Ведь так часто бывает, что нужно выполнить какой-либо код по выходу из функции, а создавать каждый раз страж — утомительно, да и не всегда возможно.
Но, использую новый стандарт, в С++ можно сделать не хуже, кому интересно — прошу под кат.
Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии36

Автоматическая генерация операторов сравнения структур в C++

Время на прочтение7 мин
Количество просмотров9.5K
Язык C++ для всех пользовательских классов и структур генерирует по умолчанию копирующий конструктор и копирующий оператор присваивания. Тем самым для важного ряда случаев программист освобождается от написания указанных функций вручную. Например, операторы по умолчанию хорошо работают для структур, которые содержат данные. При этом данные могут храниться как в простых типах, так и в сложных контейнерах, таких как std::vector или std::string.

В свете этого удобно было бы иметь и операторы сравнения структур == и != по умолчанию, однако компилятор C++, в соответствии со стандартом, не генерирует их.
Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии43

Ассемблер: прячем несколько команд в команде

Время на прочтение3 мин
Количество просмотров7.9K
image
Речь пойдёт о том, как можно спрятать «лишние» ассемблерные команды в обычном коде. Данный метод полезен для усложнения дизассемблирования кода, особенно, если генерацию «скрытых» команд автоматизировать.
Инструментарий: отладчик OllyDbg.

Странный странный код


Взглянем на следующий код, в котором скрыто намного больше команд, чем видно на первый згляд:
MOV EAX,1EBC031
MOV EBX,90DB3190
CMP EAX,EBX
JNE SHORT 0000009E
NOP
Читать дальше →
Всего голосов 128: ↑122 и ↓6+116
Комментарии37

Биоинформатика: взгляд изнутри

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

У биоинформатиков нет никаких пробирок, реагентов, бактерий, белых халатов. Главные инструменты у них – ноутбук, ручка с бумагой или белая доска с маркером – в общем, всё как у программистов. Да и сама работа очень сильно похожа на работу в IT компании, а лаборатория – на небольшой отдел разработки. А в чем же тогда отличия? Что ж, попробую ответить.

Читать дальше →
Всего голосов 59: ↑59 и ↓0+59
Комментарии43

Нейросети для чайников. Начало

Время на прочтение5 мин
Количество просмотров799K


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

В данной статье (цикле статей?) я попытаюсь осветить тему нейросетей с точки зрения человека непосвященного, простым языком, на простых примерах, раскладывая все по полочкам, а не «массив нейронов образует перцептрон, работающий по известной, зарекомендовавшей себя схеме».

Заинтересовавшихся прошу под кат.
Читать дальше →
Всего голосов 258: ↑226 и ↓32+194
Комментарии91

Шум Перлина (Perlin Noise)

Время на прочтение10 мин
Количество просмотров71K
Доброго времени суток. Предлагаю Вашему вниманию перевод статьи про шум Перлина (вот этой). Ссылки на эту статью уже мелькали на хабре (тут), но перевод статьи мне не попался. Так что надеюсь кому-либо он может оказаться полезен.

Многим людям приходилось использовать генератор случайных чисел в программах для создания непредсказуемости, чтобы сделать движение и поведение объектов более натуральным или генерировать текстуры. Генераторы случайных чисел, конечно, имеют свои области применения, но иногда их выход может быть слишком «жесткий», чтобы казаться естественным. В этой статье мы представляем функцию, которая имеет очень широкий спектр применения, больше, чем я мог бы думать, но в основном везде, где вам нужно чтобы что-то выглядело естественного происхождения. К тому же вывод может быть легко настроен под ваши нужды.

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

Для создания функции шума Перлина, вам нужны две вещи, функции шума и функция интерполяции.
Читать дальше →
Всего голосов 67: ↑52 и ↓15+37
Комментарии22

Войны в песочнице – Часть 3. ARP-Spoofing, бесполезность фильтрации по MAC-адресу и опасность установки неподписанного ПО

Время на прочтение9 мин
Количество просмотров44K


Прошло чуть более года с момента публикации предыдущих статей (1, 2), и только недавно обстоятельства сложились так, что у меня появился повод для проведения новой атаки.

В этот раз физического доступа к сетевой инфраструктуре нет. Есть лишь ноутбук с доступом в интернет по Wi-Fi. Жертва – сосед по общежитию — подключена к другой точке доступа (DIR-320) по Ethernet, но пароль для подключения к точке известен почти всем, т.к. её хозяин предпочитает использовать в качестве средства разграничения доступа фильтрацию по MAC-адресам, добавляя и удаляя адреса из базы по мере необходимости. Моего MAC-адреса в списке разрешенных нет.

Ок, подключаемся, делаем несколько тестов, и видим, что фильтрация MAC-адресов происходит только на сетевом уровне, то есть точка доступа не отказывается:
  • пересылать мои фреймы в Ethernet сегмент, и доставлять ответы
  • отвечать на ARP-запросы и принимать ARP-ответы


Единственное что точка доступа отказывается делать, так это взаимодействовать с чужаком на сетевом уровне, то есть IP-адрес она мне через DHCP не выдаёт, пропинговать её нельзя и в интернет через неё тоже не выйти.

Читать дальше
Всего голосов 85: ↑85 и ↓0+85
Комментарии61

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

Время на прочтение1 мин
Количество просмотров1.6K
Многие мои публикации на хабре связаны с Data Mining и Data Extracting. Мне приятно, что они пользуются популярностью. В основном, это теоретические статьи с описанием методов, алгоритмов, но есть ряд практических статей.

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

Лично мне интересны не статистические данные — медиана, средняя температура по больнице и т.д., а именно скрытые взаимосвязи. Например, «разработчик на Assembler менее склонен к переезду в другой город» или «Java программисты с 10 годами опыта считают, что 5-летние С++ разработчики получают больше».

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

В общем, если у вас есть несколько минут, потратьте их на заполнение этой анкеты.

Спасибо.
Всего голосов 53: ↑46 и ↓7+39
Комментарии28

Красивый пример фишинга во «В Контакте»

Время на прочтение2 мин
Количество просмотров63K
Не так давно в «Часкоре» была опубликована статья «Воспоминания экс-спамера». В ней один из интернет-предпринимателей, зарабатывавших на спаме во «В Контакте», объявил о том, что у такого бизнеса очень скоро почти не останется воздуха.

В какой-то мере с ним можно согласиться — сейчас спама действительно ощутимо меньше, чем было даже в прошлом году. Но оставшиеся спамеры прибегают ко всё более изощрённым методам. Сейчас я хочу рассказать об одном из таких методов, встретившихся мне сегодня.
Читать дальше →
Всего голосов 299: ↑279 и ↓20+259
Комментарии197

Заметки о синхронизации. Deadlock

Время на прочтение4 мин
Количество просмотров21K

В наше суровое время, когда мощности процессоров перестали расти ввысь( частота ) и начали расти вширь( число потоков ), проблема синхронизации стоит как нельзя остро. Столкнувшись с этой проблемой на практике, я на себе ощутил, что задача эта намного сложнее, чем кажется на первый взгляд, и какое число подводных граблей она скрывает. В процессе работы над этой проблемой, у меня родилось несколько интересных паттернов, с которым я хочу познакомить хабрасообщество.
Читать дальше →
Всего голосов 44: ↑37 и ↓7+30
Комментарии78

Учим систему страничной адресации и обработке прерываний

Время на прочтение5 мин
Количество просмотров7.5K
Приветствую. Сегодня поговорим обо всём понемногу. Введём в нашу наработку paging, разберёмся с прерываниями и их видами. Напишем несколько функций, добавим сие в код из предыдущего поста.
Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии14
2

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность