Как стать автором
Обновить
5
0
Михаил @int_0x80

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

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

Как работать с async/await в циклах JavaScript

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

Как запустить асинхронные циклы по порядку или параллельно в JavaScript?


Перед тем, как делать асинхронную магию, я хочу напомнить как выглядят классические синхронные циклы.

Читать дальше →
Всего голосов 31: ↑24 и ↓7+17
Комментарии33

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

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


Исследователи из компании China's Netlab 360 заявили про обнаружение тысяч зараженных зловредным ПО роутеров, производителем которых является латвийская компания MikroTik. Уязвимость, которую используют злоумышленники, была обнаружена еще в апреле, причем сама компания уже давно выпустила патч для исправления проблемы.

Но тысячи роутеров остаются уязвимыми и сейчас, поскольку их прошивку никто не обновляет — многие компании и обычные частные пользователи просто не обращают внимание на этот аспект. Что касается общего количества роутеров, то компрометации подверглось около 7,5 тысяч устройств (то, что обнаружили эксперты). Вообще же в сети до сих пор работает около 370 тысяч роутеров, уязвимость в ПО которых еще не исправлена.
Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии11

Git happens! 6 типичных ошибок Git и как их исправить

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


Прим. перев.: На днях в блоге для инженеров любимого нами проекта GitLab появилась небольшая, но весьма полезная заметка с инструкциями, которые помогают сохранить время и нервы в случае различных проблем, случающихся по мере работы с Git. Вряд ли они будут новы для опытных пользователей, но обязательно найдутся и те, кому они пригодятся. А в конец этого материала мы добавили небольшой бонус от себя. Хорошей всем пятницы!

Все мы делаем ошибки, особенно при работе с такими сложными системами, как Git. Но помните: Git happens!
Читать дальше →
Всего голосов 63: ↑62 и ↓1+61
Комментарии62

Обзор актуальных протоколов достижения консенсуса в децентрализованной среде

Время на прочтение19 мин
Количество просмотров14K
Эта статья посвящена поверхностному обзору ключевых подходов к достижению консенсуса в децентрализованной среде. Материал позволит разобраться с задачами, которые решают рассмотренные протоколы, областью их применения, особенностями проектирования и использования, а также позволит оценить перспективы их развития и имплементации в децентрализованных системах учета.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии26

Производительность в iOS или как разгрузить main thread. Часть 1

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



Есть разные приёмы и хитрости, которые помогают оптимизировать работу iOS-приложений, когда одна задача должна выполняться за 16,67 миллисекунд. Рассказываем, как разгрузить main thread и какие инструменты лучше подходят для отслеживания стека вызовов в нём.


«Ребята, давайте представим, что вы сможете сократить время запуска на 10 секунд. Умножив это на 5 миллионов пользователей, ежедневно у нас будет 50 миллионов секунд. За год это составит порядка десяти человеческих жизней. Поэтому, если вы сделаете первичную загрузку на 10 секунд быстрее, вы спасёте несколько десятков жизней. Это действительно стоит того, не правда ли?»

Стив Джобс о производительности (времени запуска компьютера Apple II).


Статья основана на докладе iOS-разрабочика из Fyusion Люка Пархема, с которым он выступил на Международной конференции мобильных разработчиков MBLT DEV в прошлом году.

Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии3

Поиск уязвимостей в смарт-контрактах: обзор конкурса EtherHack на Positive Hack Days 8

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

В этом году на PHDays впервые проходил конкурс под названием EtherHack. Участники искали уязвимости в смарт-контрактах на скорость. В этой статье мы расскажем вам о заданиях конкурса и возможных способах их решения.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии3

Концепция MAST в Биткоине

Время на прочтение6 мин
Количество просмотров4.2K
В рамках данной статьи мы поговорим о концепции MAST и ее применении в протоколе Биткоин. Мы рассмотрим свойства, которых позволяет добиться MAST, а также пользу от его применения. Статья будет интересна читателям, которые увлекаются протоколом Биткоина и другими инновационными платежными системами. Этой теме также посвящена отдельная лекция в рамках онлайн-курса по Blockchain “MAST в Биткоине”.

Концепция MAST подразумевает использование деревьев Меркла и абстрактных синтаксических деревьев, чтобы задавать условия траты монет на выходах транзакций. Рассмотрим по порядку, как это устроено.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии1

ТРИЗ, Haskell и функциональное мышление

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

При слове ТРИЗ, часто вспоминают тезис "идеальная система — та, которой нет (а ее функция при этом выполняется)". Как хороший админ, который не появляется в офисе, а все при этом исправно работает.


Функция и система — критически важные понятия в ТРИЗ, говорят даже о функциональном стиле мышления. Правда при этих словах лично у меня сразу возникает ассоциация с функциональными языками программирования.


Попробуем посмотреть, насколько органично идеи функционального мышления ТРИЗ отображаются на Haskell, одном чистых функциональных языков общего назначения.


Читать дальше →
Всего голосов 24: ↑16 и ↓8+8
Комментарии27

Практический видеокурс Школы информационной безопасности

Время на прочтение3 мин
Количество просмотров33K
Нет смысла лишний раз напоминать, почему при разработке сервисов важно уделять внимание безопасности. Поговорим о том, как строить системы защиты, поддерживать их в актуальном состоянии и развивать с увеличением числа угроз. Довольно много практических знаний по этой теме можно получить из интернета. Теория, в свою очередь, неплохо освещается в нескольких российских вузах. Есть и множество полезной литературы. Но хорошего специалиста по безопасности отличает не просто знание инструментов и теории, а способность применять теорию в реальных ситуациях.

В апреле этого года мы впервые провели бесплатную Школу информационной безопасности. Лекции в школе подготовили и прочитали сотрудники службы ИБ Яндекса — те специалисты, которые непосредственно отвечают за защиту наших продуктов. Мы получили более 700 заявок, 35 человек успешно закончили школу, 9 из них получили офферы в Яндекс (7 — на позицию стажёра, 2 — на штатную позицию).

Сегодня мы публикуем видеокурс со всеми лекциями Школы. Вы можете почерпнуть те же знания, что и студенты — разве что интерактива поменьше и не нужно делать домашнее задание. Для просмотра стоит знать хотя бы один язык программирования (JS, Python, C++, Java), на начальном уровне разбираться в принципах построения и работы веб-приложений, понимать принципы работы операционных систем и сетевой инфраструктуры, а также основные типы атак и виды уязвимостей.


Надеемся, этот курс прокачает вас в роли специалиста по ИБ, а также поможет защитить ваши сервисы от утечек данных и атак злоумышленников.
Всего голосов 23: ↑23 и ↓0+23
Комментарии3

Почему мы не стали делать идеально: как менялась инфраструктура серверов War Robots

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


Первый прототип (например, игры в новой для вас нише) часто делается «на коленке» из палок и самизнаетечего. Причем палки, как правило, тоже из этого самизнаетечего. И на то есть несколько причин.

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

Забегу вперед и расскажу, что сейчас DAU в наших проектах около 1,5 млн. Но так было не всегда.
Читать дальше →
Всего голосов 52: ↑51 и ↓1+50
Комментарии16

Лекция Яндекса: Advanced UI, часть вторая

Время на прочтение26 мин
Количество просмотров11K
Это вторая часть лекции Дмитрия Свирихина — разработчика из команды мобильной Яндекс.Почты.

— Мы с вами продолжаем рассматривать типичные проблемы Android-разработчика и способы их решения. Мы уже рассмотрели, как решить проблему неконсистентности UI у нас в приложении, проблемы, которые могут возникнуть при взаимодействии с клавиатурой, и проблемы потери state, а также узнали, как мы можем эффективно применять кастомные view. Всю вторую часть мы посвятим ещё одной проблеме — она называется «недостаточная интерактивность». Посмотрим, как мы можем сделать наше приложение более интерактивным и понятным для пользователя.


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

Всего голосов 40: ↑37 и ↓3+34
Комментарии3

Найдена уязвимость во всех версиях Windows, которую не закрывает ни один антивирус

Время на прочтение2 мин
Количество просмотров85K
Портал The Hacker News сообщает об обнаружении уязвимости в загрузчике Windows, которая позволяет запускать исполняемый код так, что он не определяется антивирусными программами, при этом эксплоит не оставляет следов в файловой системе.


Читать дальше →
Всего голосов 102: ↑92 и ↓10+82
Комментарии129

Составляем DNS-запрос вручную

Время на прочтение7 мин
Количество просмотров50K
Об авторе. Джеймс Рутли — бэкенд-разработчик в компании Monzo.

В этой статье мы изучим двочиный формат сообщений Domain Name Service (DNS) и напишем вручную одно сообщение. Это больше, чем вам нужно для использования DNS, но я подумал, что для развлечения и в образовательных целях интересно посмотреть, что находится под капотом.

Мы узнаем, как:

  • Написать запросы DNS в двоичном формате
  • Отправить сообщение в теле датаграммы UDP с помощью Python
  • Прочитать ответ от DNS-сервера

Писать в двоичном формате кажется сложным, но в реальности я обнаружил, что это вполне доступно. Документация DNS хорошо написана и понятна, а писать мы будем маленькое сообщение — всего 29 байт.
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии8

Атака на пользователей Linux или как собрать ботнет руками админов

Время на прочтение2 мин
Количество просмотров45K
Для чистоты эксперимента предлагаю перейти по ссылке и выполнить по указанной инструкции «установку полезных пакетов». Инструкция для владельцев Ubuntu.

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

Ниже описание того, что случилось, в том случае, если вы не поленились произвести указанные выше действия.
Читать дальше →
Всего голосов 68: ↑56 и ↓12+44
Комментарии111

Простой Blender. Часть 2

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

КДПВ 2.

Продолжение рассказа о том, что Blender — это несложно, написанный непрофессионалом. Вот начало рассказа.
Когда уже танк рисовать будем?
Всего голосов 42: ↑40 и ↓2+38
Комментарии21

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

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


Мы продолжаем публиковать материалы с летней конференции Bitrix Summer Fest. На этот раз хотим поделиться выступлением Александра Сербула, посвящённым текущим трендам в сфере машинного обучения, доступным методикам, а также практическим способам использования математики для увеличения конверсии и удержания клиентов.

Материал ни в коем случае не претендует быть формальным и научно строгим. Воспринимайте его как лёгкое, весёлое, полезное и ознакомительное «чтиво».
Читать дальше →
Всего голосов 33: ↑27 и ↓6+21
Комментарии9

Устройство на базе Ардуино вскрывает навесной замок за несколько секунд

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


Неутомимый хакер Сэми Камкар опубликовал чертежи, схемы и список деталей, необходимых для создания системы автоматического открывания кодового замка Masterlock. Менее чем за $100 можно изготовить устройство, открывающее такой замок за несколько секунд.

Камкар увлекается различными аспектами безопасности. На его счету несколько интересных проектов. Например, наделавший 10 лет назад шуму червь для MySpace, работающий через XSS и AJAX, который позволил автору менее чем за сутки набрать миллион «друзей».

Также у него был интересный проект SkyJack – коптер, использующий Raspberry Pi для взлома и перехвата управления у других, оказавшихся поблизости коптеров. И довольно страшноватое «украшение» USBdriveby – USB-устройство на цепочке, которое после подключения к любому компьютеру превращает его в удалённо подконтрольный, и заметает все следы менее чем за 60 секунд (для этого используются эмуляция мыши, клавиатуры и несколько записанных в памяти программ).

Заинтересовавшись недавно схемой работы распространённого недорогого навесного замка Masterlock, Камкар узнал, что существует методика для уменьшения количества комбинаций, которые надо перебрать, чтобы открыть замок. Вместо теоретического количества в 64000 необходимо перебрать всего 100 штук. Хакер задумал изготовить устройство с мотором и контроллером, которое бы автоматически делало эту работу. Простейший шаговый мотор под управлением Ардуино взламывает такой замок менее чем за 5 минут.
Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Комментарии30

Подбор паролей к WPA/WPA2 с использованием видеокарты

Время на прочтение6 мин
Количество просмотров202K
Привет, Хабр!
Сегодня я расскажу и покажу вам, как можно использовать всю мощность ваших видеокарт для игр перебора паролей к Wi-Fi. Как-то не комильфо в наше время использовать только процессорные мощности под эти задачи (в частности aircrack-ng), когда в 80% компьютеров есть видеокарта. Поэтому разумно использовать всю потенциальную мощность ваших систем. А именно, речь пойдет о замечательной программе pyrit.
Читать дальше →
Всего голосов 166: ↑149 и ↓17+132
Комментарии61

Примеры использования MongoDB в e-commerce (часть 2)

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


[ Первая часть ]

В этом посте будет то, что не поместилось в первую часть. Это некоторые операторы, которые есть в aggregation framework и достаточно вольный перевод трех статей из раздела экоситема на сайте со справкой к MongoDB, описывающих некоторые случаи применения для интернет-коммерции.

Случаи использования разделены там на восемь статей, которые условно можно разделить на три группы. Мне показались самыми интересными для перевода три материала, связанные с e-commerce.

  1. Операторы в aggregation framework
  2. Каталог продуктов
  3. Корзина и управления остатками на складе
  4. Иерархия категорий

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

Использование расширенных возможностей компилятора Intel® C++ для приложений Android

Время на прочтение4 мин
Количество просмотров7.2K
Компилятор Intel C++ предоставляет много возможностей для оптимизации приложений под самые различные задачи, в том числе для мобильных устройств. В этой статье мы затронем два аспекта оптимизации: во-первых, поговорим об использовании выполняемого модуля Intel Cilk Plus в Android для реализации многопоточности приложений, во-вторых, коснемся темы использования Profile-guided Optimization (PGO) для повышения производительности приложений в ОС Android. Ссылки для более глубокого изучения этих тем даны в конце статьи.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии0

Информация

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