Pull to refresh
4
0

C++/Qt, Python/Django

Send message

Как живут фрилансеры: дизайн книжных обложек, собственное производство рюкзаков и работа в путешествиях

Reading time8 min
Views23K
Героиня нового выпуска интервью с Фрилансим — Наташа Байдужа, дизайнер и человек-пароход. За годы фриланса успела пожить в Москве, Одессе, Черногории, придумать свою марку рюкзаков (сшить и продать первую партию), написать детскую книгу, сделать бесчисленное множество иллюстраций и книжных обложек.

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


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

Зоопарк AFL фазеров

Reading time12 min
Views19K
image

На Хабре уже пару раз появлялись статьи, поднимающие тему American Fuzzy Lop (AFL) (1,2). Но в данной статье речь пойдет не о классическом AFL, а о вспомогательных утилитах для него и его модификациях, которые, на наш взгляд, могут значительно улучшить качество фаззинга. Если вам интересно узнать, как можно прокачать AFL и искать быстрее и больше уязвимостей, то добро пожаловать под кат!
Читать дальше →

Настройка IPTV от Ростелеком на роутерах MikroTik

Reading time3 min
Views110K
В свое время когда я купил роутер MikroTik, передо мной кроме базовой настройки инета встала задача обеспечить работу IPTV, до того момента у меня был установленный Ростелекомом D-link. Сама базовая настройка инета на микротике заняла у меня примерно 10 минут, а вот с IPTV пришлось повозиться. Все мануалы прочитанные мной тогда не учитывали многих моментов, до которых я дошел расковыряв настройки многострадального D-link-а и без которых работать в данной схеме ТВ нормально не будет. В этой статье я хочу обозначить полученную мной универсальную инструкцию в данной ситуации.
Читать дальше →

Что происходит, когда вы отправляете SMS

Reading time15 min
Views42K
Это третья статья в цикле full-stack dev о секретной жизни данных. Она посвящена сложному и длинному маршруту SMS: набор, сохранение, отправка, получение и отображение. Добавлю немного истории и контекст, чтобы разбавить перечень протоколов. Хотя текст довольно технический, всё довольно легко понять.

Первые две части цикла:

  • Cetus, о распространении ошибок в предках электронных таблиц XVII века
  • «Вниз по кроличьей норе», о безумно сложном поиске источника одного набора данных

Итак, начнём…
Читать дальше →

Выигрышная стратегия Гомоку – 35 ходов

Reading time11 min
Views40K
При игре по стандартным правилам Гомоку для выигрыша черным требуется не более 35 ходов. В статье Вашему вниманию представлена полная выигрышная стратегия и соответствующий алгоритм игры.

Демонстрация полного решения – здесь – можно поиграть и найти самые длинные варианты. Программа всегда выигрывает и затрачивает на это не более 35 ходов. Исходные тексты приложения, само решение и примеры партий в конце статьи.
Читать дальше →

Guix — самая продвинутая операционная система

Reading time15 min
Views94K
Операционные системы (ОС) — обширная тема. На протяжении десятилетий здесь доминировал один подход: Unix. Действительно, большинство современных систем, включая большинство дистрибутивов GNU/Linux, *BSD и macOS, придерживаются архитектуры Unix. (Windows нет, но там почти ничего интересного по этой теме).

В 2000 году Роб Пайк выступил с докладом о том, почему исследования системного ПО не релеванты. Из-за пессимизма или пренебрежения к сообществу он, кажется, полностью проигнорировал жалобы, собранные многими Unix-пользователями в книге The Unix-Haters Handbook (1994). Книга умышленно саркастична, однако указывает на некоторые критические проблемы систем Unix — и они не решены до сих пор.

В 2006 году Элко Доситра опубликовал диссертацию «Полностью функциональная модель развёртывания программного обеспечения», где описан функциональный менеджер пакетов Nix. В 2008 году автор опубликовал NixOS: полностью функциональный дистрибутив Linux. В то время как NixOS повторно использует много свободного ПО для Unix-систем, она настолько отходит от дизайна и философии Unix, что вряд ли её можно назвать «системой Unix».
Читать дальше →

Чтобы вести разработку быстрее, необходимо замедлиться

Reading time11 min
Views29K


От переводчика:
Начало года — отличное время, чтобы вдумчиво оценить прошедший год. Окинуть широким взглядом происходящее и понять, как сделать 2019 год лучше, спокойнее и продуктивнее. В этом деле нам показалась полезной статья How To Slow Down to Go Faster Than Ever in Software Development, которую написал Lemi Orhan Ergin. А ее перевод мы публикуем ниже.
Читать дальше →

Организация работы программиста-одиночки

Reading time13 min
Views28K
Автор материала, перевод которого мы публикуем сегодня, говорит, что большинство программистов работает в командах. Однако на определённом этапе карьеры разработчику может понадобиться трудиться в одиночку. Основной объём подходов к организации работы над программными продуктами рассчитан именно на применение в командах. Эти подходы выражаются в правилах, принимаемых в организациях. Такие правила упорядочивают работу, помогают программистам качественно и быстро делать своё дело. Нечто подобное было бы весьма полезно и тем программистам, которые работают сами по себе.

image

Как быть тому, кто работает один? На что ориентироваться, стремясь выстроить чёткий и эффективный рабочий процесс? Каким принципам и правилам следовать? Предлагаем вместе поискать ответы на эти вопросы.
Читать дальше →

Генератор подземелий на основе узлов графа

Reading time11 min
Views29K
image

В этом посте я опишу алгоритм процедурной генерации уровней двухмерного подземелья с заранее заданной структурой. В первой части будет представлено общее описание, а во второй — реализация алгоритма.

Введение


Алгоритм был написан как часть работы на получение степени бакалавра и основан на статье Ma et al (2014). Целью работы было ускорение алгоритма и дополнение его новыми функциями. Я вполне доволен результатом, потому что мы сделали алгоритм достаточно быстрым, чтобы использовать его во время выполнения игры. После завершения бакалаврской работы мы решили превратить её в статью и отправить на конференцию Game-ON 2018.

Алгоритм


Для создания уровня игры алгоритм получает в качестве входных данных набор полигональных строительных блоков и граф связности уровня (топологию уровня). Узлы графа обозначают комнаты, а рёбра определяют связи между ними. Цель алгоритма — назначить каждому узлу графа форму и расположение комнаты таким образом, чтобы никакие две формы комнат не пересекались, и каждая пара соседних комнат могла соединяться дверьми.

Всегда ли нужны Docker, микросервисы и реактивное программирование?

Reading time15 min
Views51K


Автор: Денис Цыплаков, Solution Architect, DataArt

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

Если вы не делаете что-то принципиально новое, например, первый в мире интернет-поисковик или искусственный интеллект для управления запуском ядерных ракет, создать дизайн хорошей системы довольно просто. Достаточно учесть все требования, посмотреть на дизайн похожих систем и сделать примерно так же, не совершив при этом грубых ошибок. Звучит как чрезмерное упрощение вопроса, но давайте вспомним, что на дворе 2019 год, и «типовые рецепты» дизайна систем есть практически для всего. Бизнес может подкидывать сложные технические задачи — скажем, обработать миллион разнородных PDF-файлов и вынуть из них таблицы с данными о расходах — но вот архитектура систем редко отличается большой оригинальностью. Главное тут — не ошибиться с определением того, какую именно систему мы строим, и не промахнуться с выбором технологий.

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

Кодекс читателя

Reading time17 min
Views11K
Смешное слово — кодекс. Вам, наверное, смешно не будет, но я попробую объяснить. Однажды я работал в компании, сотрудники которой очень любили что-нибудь эдакое придумать — изменения, правила, нормы и т.д. Естественно, любые новшества фиксировались на бумаге, которой давали громкое, броское, запоминающееся название.

Можно, конечно, назвать бумагу «инструкция», «регламент» или «правила», но это так скучно… И никак не выделишься на фоне остальных. Поэтому слова использовались только красивые и звучные.

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

Но вот беда — подобные слова быстро заканчиваются. Потом останутся только совсем экзотические, вроде «хартии» или «манускрипта». Я предложил ребятам слова резервировать — заранее объявлять, что мы, дескать, начинаем разрабатывать хартию кладовщиков, и отныне это слово никто не имеет права использовать.

Лично мне больше нравились аббревиатуры — их легко придумывать, и вариантов — намного больше. Например, у меня была Статистика Использования Функционала Автоматизации — набор инструментов, собиравший данные об использовании механизмов, созданных программистами. Еще был Журнал Отклонений Процессов Автоматизации, куда заносились косяки пользователей.

Но аббревиатуры всегда надо расшифровывать, иначе непонятно. Потому для статьи я решил выбрать слово «кодекс» — и слово всем понятное, и у самураев тоже кодекс был, и вроде звучит неплохо. Но теперь вы понимаете, что название «кодекс» — скорее, шутливое. А тема — важная. Чтение.
Читать дальше →

Жизнь во Флаконе

Reading time17 min
Views18K
Я работаю в коммерческой организации, но всегда считал, что бизнес должен делать что-то полезное для мира. Конечно, можно сказать, что продукты бизнеса – это и есть польза, но как-то язык не поворачивается.

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

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

Интервью с багхантером Артёмом Московским. Он взломал Steam и получил самую крупную награду в истории Valve

Reading time6 min
Views59K


Артем Московский — багхантер, пентестер и безопасник которому сразу хочется задать стыдный вопрос «сколько ты зарабатываешь?» В прошлом году он получил самое большое вознаграждение в истории Valve — $20 тыс и $25 тысяч за две крупные уязвимости в Steam и еще $10 тыс за баги поменьше.

Мы переписывались несколько дней, и Артем рассказал, как начал заниматься своим делом, какие скиллы для этого нужны, и не тянет ли с таким талантом на темную сторону.
Читать дальше →

Топ-10 фильмов про ИТ

Reading time7 min
Views172K
Привет, Хабр!

Летом в нашем ланитовском блоге мы делали подборку сериалов про ИТ (и хакеров), а теперь в преддверии Нового года пришло время полного метра. Такие «Топ-10 фильмов про ИТ» появляются примерно раз в год, и список там примерно один и тот же: «Хакеры» с Джоли, «Пароль «Рыба-меч» и «Матрица».

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

Так вот, про подборку. Мы решили предложить вам  фильмы посвежее. Под катом нет Джоли и знаменитой сцены из «Пароль „Рыба-меч“», но есть фильмы про ИТ, суперкомпьютеры, и информационную безопасность, большинство из которых выпущены в 2010–2018 годах.

Кадр из фильма «Апгрейд»

Конференция BLACK HAT USA. Как Голливудский хакер использует камеры наблюдения. Часть 1

Reading time10 min
Views6.3K
Я Грэг Хеффнер, и это разговор о том, как голливудский хакер использует камеры наблюдения. Некоторые из вас могут знать или не знать, что когда впервые была опубликована моя работа по этой теме, на интернет-портале Reuters об этом появилась статья.



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

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

Поэтому, чтобы быть предельно ясным, объясню — сегодняшний разговор не о любой работе, которую я когда-либо делал для бывших работодателей, а о том, что я делаю для своего нынешнего работодателя. Я работаю в качестве штатного аналитика уязвимостей компании Tactical Network Solutions, я также преподаю на курсах по эксплуатации встроенных устройств и время от времени балуюсь взломом беспроводных устройств.

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

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

Как написать на ассемблере программу с перекрываемыми инструкциями (ещё одна техника обфускации байт-кода)

Reading time9 min
Views18K

Представляем вашему вниманию технику создания ассемблерных программ с перекрываемыми инструкциями, – для защиты скомпилированного байт-кода от дизассемблирования. Эта техника способна противостоять как статическому, так и динамическому анализу байт-кода. Идея состоит в том, чтобы подобрать такой поток байтов, при дизассимблировании которого начиная с двух разных смещений – получались две разные цепочки инструкций, то есть два разных пути выполнения программы. Мы для этого берём многобайтовые ассемблерные инструкции, и прячем защищаемый код в изменяемых частях байт-кода этих инструкций. С целью обмануть дизассемблер, пустив его по ложному следу (по маскирующей цепочке инструкций), и уберечь от его взора скрытую цепочку инструкций.


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

Как ввести в заблуждение компьютер: коварная наука обмана искусственного интеллекта

Reading time10 min
Views26K


В начале XX века Вильгельм фон Остин, немецкий тренер лошадей и математик, объявил миру, что научил лошадь считать. Годами фон Остин путешествовал по Германии с демонстрацией этого феномена. Он просил свою лошадь по кличке Умный Ганс (породы орловский рысак), подсчитывать результаты простых уравнений. Ганс давал ответ, топая копытом. Два плюс два? Четыре удара.

Но учёные не верили в то, что Ганс был таким умным, как заявлял фон Остин. Психолог Карл Штумпф провёл тщательное расследование, которое окрестили «Гансовским комитетом». Он обнаружил, что Умный Ганс не решает уравнения, а реагирует на визуальные сигналы. Ганс выстукивал копытом, пока не добирался до правильного ответа, после чего его тренер и восторженная толпа разражались криками. А затем он просто останавливался. Когда он не видел этих реакций, он так и продолжал стучать.
Читать дальше →

Моё разочарование в софте

Reading time11 min
Views393K

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


Я занимаюсь программированием уже 15 лет. Но в последнее время при разработке не принято думать об эффективности, простоте и совершенстве: вплоть до того, что мне становится грустно за свою карьеру и за IT-отрасль в целом.

Для примера, современные автомобили работают, скажем, на 98% от того, что физически позволяет нынешняя конструкция двигателя. Современная архитектура использует точно рассчитанное количество материала, чтобы выполнять свою функцию и оставаться в безопасности в данных условиях. Все самолёты сошлись к оптимальному размеру/форме/нагрузке и в основном выглядят одинаково.

Только в программном обеспечении считается нормальным, если программа работает на уровне 1% или даже 0,01% от возможной производительности. Ни у кого вроде нет возражений.

Как я взломал Steam. Дважды

Reading time4 min
Views121K
Привет, Хабр! Сегодня я расcкажу за что же Valve заплатила наибольшие баунти за историю их программы по вознаграждению за уязвимости. Добро пожаловать под кат!


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

Continuous delivery с Travis CI и Ansible

Reading time4 min
Views11K

Настройка непрерывной доставки (Continuous delivery CD) для вашего проекта c github.com

Hеобходимо:

  • Репозиторий на github.com
  • Сервер для Ansible (для примера ip: 1.1.1.1)
  • Сервер для развертывания вашего проекта (для примера ip: 2.2.2.2)
  • Локальная машина с настроенным проектом
  • Базовые знания работы в командной строке, Travis CI и Ansible
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity