Search
Write a publication
Pull to refresh
-11
0
Send message

Хайв-майнинг: новейший вариант защиты PoW-блокчейна от «атаки 51%»

Reading time9 min
Views6K
image

Разработчики форка Litecoin Cash представили препринт технического документа 'The Hive: Agent-based Mining in Litecoin Cash', в котором описали свое предложение по защите криптовалютного блокчейна, работающего на базе алгоритма proof-of-work, от «атаки 51%». Их решение сочетает майнинг с использованием устаревающих ASIC-устройств (SHA-256) и демократичный виртуальный майнинг с использованием «рабочих пчел» (HiveMine). В случае грамотной реализации блокчейн LCC решит одну из крупнейших проблем современных блокчейн-проектов (от Bitcoin до Ethereum): угрозу атаки, когда в руках злоумышленника сосредоточено больше половины общей мощности сети.
Читать дальше →

Как мы научились подключать китайские камеры за 1000р к облаку. Без регистраторов и SMS (и сэкономили миллионы долларов)

Reading time7 min
Views280K

Всем привет!


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



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


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


Для этого необходимо, чтобы на камере был установлен модуль ПО работающий с облаком. Однако, если говорить про дешевые камеры, то у них очень ограничены аппаратные ресурсы, которые почти на 100% занимает родная прошивка вендора камеры, а ресурсов необходимых для облачного плагина — нет. Этой проблеме разработчики из ivideon посвятили статью, в которой говорится почему они не могут установить плагин на дешевые камеры. Как итог, минимальная цена камеры — 5000р ($80 долларов) и миллионы потраченных денег на оборудование.


Мы эту проблему успешно решили. Если интересно как — велком под кат

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

Аппаратное кодирование видео потока на камере Logitech C920 и отправка его в ROS по wifi с задержкой менее 0.2 секунды

Reading time3 min
Views8.2K

В этой инструкции мы отправим аппаратно закодированный h264 видео поток камеры Logitech C920 переданный c BeagleBone Blue по wifi сети на ноутбук, а затем примем его в узел ROS gscam и произведем поиск и распознавание изображений карт таро и бутылки кетчупа по пути движения робота EduMIP.

Трансляция h264 видео без перекодирования с камеры Logitech C920

Reading time12 min
Views25K


Задержка составила не более 0.3 секунды, с учетом того что камера подключена к слабому BeagleBone Blue с загрузкой процессора не более 30% и передачей потока видео через wifi роутер на ноутбук.
Читать дальше →

Codec 2 + нейросеть = целый подкаст на одной дискете

Reading time4 min
Views31K
В предыдущей статье мы обсудили кодек Opus, который работает на очень низких битрейтах. Но другой кодек стремится достичь ещё более низких битрейтов — это Codec 2.

Codec 2 предназначен для кодирования только речи. И хотя битрейт впечатляет, звук не такой качественный, как в случае Opus, что можно услышать в аудиопримерах. Тем не менее, в сочетании с нейросетью (WaveNet) кодек демонстрирует впечатляющие результаты.


Слои нейронной сети WaveNet
Читать дальше →

Выборы вообще не работают; во всём нужно винить математику

Reading time6 min
Views22K

Избиратели делают отметки в бюллетенях на избирательном участке, расположенном в колумбарии Сан-Франциско, 5 июня 2018

Мэр Сан-Франциско Эд Ли умер в декабре 2017. Выборы его замены прошли в начале июня. Спустя почти неделю было ещё неизвестно, кто победил [оригинал статьи от 6 июня 2018 / прим. перев.]. Частично из-за того, что голоса всё ещё поступали. Голосование по почте можно просто отправить в день голосования, и спустя шесть дней, городские власти сообщали, что им осталось обработать ещё 87 000 голосов. Но это не единственное препятствие. Другая проблема кроется в математике.

Видите ли, выборы мэра Сан-Франциско – это не просто ещё одна история «побеждает набравший больше всего голосов». Эта гонка – ещё один пример культурной инновации, которую Калифорния иногда неожиданно выпускает на неподготовленную Америку, как это было со смартфонами и модными тостами. Сюрприз! Мы даже голосуем не так, как все.

Схема работы называется рейтинговым голосованием. Избиратели ранжируют три варианта выбора по степени предпочтительности. В процессе подсчёта отбрасывается кандидат, набравший наименьшее количество первых мест, затем голоса, отданные за него, передаются тому, кто стоял на втором месте у избирателей, предпочитавших этого кандидата, и потом процесс повторяется. Звучит безумно? На самом деле это гениально. И безумно.
Читать дальше →

AdBlock для радио

Reading time4 min
Views18K
Автор статьи — польский программист Томек Рекавек, разрабатывает проект Jackrabbit Oak в рамках Apache Software Foundation для Adobe. Статья опубликована в личном блоге автора 24 февраля 2016 года.

Польское «Радио-3» (так называемая «Тройка») знаменито хорошей музыкой и интеллигентными ведущими. С другой стороны, оно страдает наличием громких и раздражающих рекламных блоков в трансляции, где обычно рекламируется какая-нибудь электроника или лекарство. Я слушаю «Тройку» почти постоянно на работе и дома, поэтому задался вопросом: как удалить рекламу? Кажется, мне удалось найти решение.

Цифровая обработка сигналов


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

Знаю, что данная область математики/информатики называется цифровой обработкой сигналов, но мне DSP всегда казалась магией. Что ж, отличная возможность узнать что-то новое. Я провёл день или два, пытаясь выяснить, какой механизм использовать для анализа аудиопотока. И в конце концов нашёл то что надо: это взаимная корреляция или кросс-корреляция (cross-correlation).
Читать дальше →

В арсенал радио-хакера: широкополосная замена RTL-SDR до 6 ГГц

Reading time3 min
Views88K

image


Недавно я прочитал статью, в которой автор пророчит нам веселое, но светлое будущее. Кроме всего прочего, он говорит дословно следующее: «Если мы ничего не можем поделать с тем, что государство следит за нами, мы должны иметь право следить за ним».


Замечательный тезис! Даешь гонку радио-вооружений!

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

История одного SSL рукопожатия

Reading time5 min
Views18K
Привет, Хабр!

Недавно мне пришлось прикручивать SSL с двухсторонней аутентификацией (mutual authentication) к Spring Reactive Webclient. Казалось бы, дело нехитрое, но вылилось оно в блуждание в исходниках JDK с неожиданным финалом. Опыта набралось на целую статью, которая может оказаться полезной инженерам в повседневных задачах или при подготовке к собеседованию.

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

Особенности вызова функций в С++

Reading time33 min
Views63K

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


  • Регистры и их назначение при вызове функций.
  • Передача и возврат простых типов и структур.
  • Как передача по ссылке и по значению влияют на оптимизации тела функции компилятором.
  • Как используется место при многочисленных вызовах функций.
  • Механизм виртуальных вызовов.
  • Оптимизация хвостовых вызовов и рекурсии.
  • Инициализация структур, массивов и векторов.

Осторожно! Статья содержит большое количество кода на C++ и ассемблере (Intel ASM с комментариями), а также множество таблиц с оценками производительности. Всё написанное актуально для x86-64 System V ABI, который используется во всех современных Unix операционных системах, к примеру, в Linux и macOS.

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

NewSQL: SQL никуда не уходит

Reading time26 min
Views42K
Tренду NoSQL уже почти 10 лет, и можно смело делать какие-то выводы и обобщения. Этим и займемся, поговорим про развитие NoSQL.

Вспомним, как родился NoSQL. Посмотрим, что в нем хорошо, а что плохо, и что выдержало испытание временем. Разберем возможности, которые уже есть в SQL, и которые теперь появляются в NoSQL СУБД. Выделим уникальные ценности NoSQL, и заглянем чуть-чуть вперед в то, что на рынке будет завтра.

А поможет нам в этом Константин Осипов (@kostja) — разработчик и архитектор СУБД Tarantool, который в своем докладе на РИТ++ 2017 говорил про тренды NewSQL, ведь архитектору полагается понимать, что происходит в мире баз данных, чтобы, как минимум, не изобретать велосипед.


О спикере: Сейчас Константин Осипов работает над Tarantool, но ранее участвовал в разработке MySQL, и, когда Константин начинал работу над новой базой данных, его очень смущало, зачем это делать вообще, зачем нужна очередная база данных. В частности, отношение к NoSQL было очень скептическим, как к «недоSQL».

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

graphql — оптимизация запросов к базе данных

Reading time6 min
Views10K
При работе с базами данных существует проблема которую принято называть «SELECT N + 1» — это когда приложение вместо одного запроса к базе данных, который выбирает все необходимые данные из нескольких связанных таблиц, коллекций, — делает дополнительный подзапрос для каждой строки результата первого запроса, чтобы получить связанные данные. Например, сначала мы получаем список студентов университета, в котором его специальность обозначена идентификатором, а потом для каждого из студентов делаем дополнительный подзапрос в таблицу или коллекцию специальностей, чтобы по идентификатору специальности получить наименование специальности. Поскольку каждый из подзапросов может потребовать еще один подзапрос, и еще один подзапрос — колчество запросов к базе данных начинает расти в геометрической прогрессии.

При работе с graphql очень просто породить проблему «SELECT N + 1», если в resolver-функции сделать подзапрос к связанной таблице. Первое что приходит в голову — сделать запрос сразу с учетом всех связанных данных, но это, согласитесь, нерационально, если связанные данные не запрашиваются клиентом.

Один из вариантов решения проблемы «SELECT N + 1» для graphql будет рассмотрен в этом сообщении.
Читать дальше →

Сборка Caffe в Google Colaboratory: бесплатная видеокарта в облаке

Reading time7 min
Views24K
Google Colaboratory — это не так давно появившийся облачный сервис, направленный на упрощение исследований в области машинного и глубокого обучения. Используя Colaboratory, можно получить удаленный доступ к машине с подключенной видеокартой, причем совершенно бесплатно, что сильно упрощает жизнь, когда приходится обучать глубокие нейросети. Можно сказать, что она является некоторым аналогом гугл-документов для Jupyter Notebook.

В Colaboratory предустановлены Tensorflow и практически все необходимые для работы Python-библиотеки. Если какой-то пакет отсутствует, он с легкостью устанавливается на ходу через pip или apt-get. Но что если необходимо собрать проект из исходников и подключиться к GPU? Оказывается, это может быть не настолько просто, что я выяснил в ходе сборки SSD-Caffe. В этой публикации я дам краткое описание Colaboratory, опишу встреченные трудности и способы их решения, а также приведу несколько полезных приемов.

Весь код доступен в моем Colaboratory Notebook.

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

CSRF-уязвимости все еще актуальны

Reading time14 min
Views86K
CSRF (Сross Site Request Forgery) в переводе на русский — это подделка межсайтовых запросов. Михаил Егоров (0ang3el) в своем докладе на Highload++ 2017 рассказал о CSRF-уязвимостях, о том, какие обычно используются механизмы защиты, а также как их все равно можно обойти. А в конце вывел ряд советов о том, как правильно защищаться от CSRF-атак. Под катом расшифровка этого выступления.


О спикере: Михаил Егоров работает в компании Ingram Micro Cloud и занимается Application security. В свободное время Михаил занимается поиском уязвимостей и Bug hunting и выступает на security-конференциях

Дисклаймер: приведенная информация является сугубо мнением автора, все совпадения случайны.


В том, что CSRF-атаки работают виноват этот Cookie-монстр. Дело в том, что многие веб-приложения используют куки (здесь и далее считаем уместным называть cookies по-русски) для управления сессией пользователя. Браузер устроен так, что, если у него есть куки пользователя для данного домена и пути, он их автоматически отправляет вместе с HTTP-запросом.

В клиенте Steam устранили опасную уязвимость, которая пряталась там десять лет

Reading time9 min
Views30K
image

Ведущий исследователь Том Корт из компании Context, предоставляющей услуги информационной безопасности, рассказывает о том, как ему удалось обнаружить потенциально опасный баг в коде клиента Steam.

Внимательно следящие за безопасностью PC-игроки заметили, что недавно Valve выпустила новое обновление клиента Steam.

В этом посте я хочу оправдаться за то, что мы играем в игры на работе рассказать историю связанного с этим бага, существовавшего в клиенте Steam не меньше десяти лет, который до июля прошлого года мог приводить к удалённому выполнению кода (remote code execution, RCE) во всех 15 миллионах активных клиентов.

С июля, когда Valve (наконец-то) скомпилировала свой код со включенными современными защитами от эксплойтов, он мог бы приводить всего лишь к отказу клиента, а RCE было возможно только в сочетании с отдельной уязвимостью утечки информации.

Мы заявили Valve об уязвимости 20 февраля 2018 года, и, к чести компании, она устранила её в бета-ветке меньше 12 часов спустя. Исправление было перенесено в стабильную ветку 22 марта 2018 года.

Как собрать досовский COM-файл компилятором GCC

Reading time10 min
Views16K
Статья опубликована 9 декабря 2014 года
Обновление от 2018 года: RenéRebe сделал на базе этой статьи интересное видео (часть 2)

В минувшие выходные я участвовал в Ludum Dare #31. Но даже до объявления тем конференции из-за своего недавнего увлечения я хотел сделать олдскульную игру под DOS. Целевой платформой выбрана DOSBox. Это самый практичный способ запуска DOS-приложений несмотря на то, что все современные процессоры x86 полностью обратно совместимы со старыми, вплоть до 16-битного 8086.

Я успешно создал и показал на конференции игру DOS Defender. Программа работает в реальном режиме 32-битного 80386. Все ресурсы встроены в исполняемый COM-файл, никаких внешних зависимостей, так что игра целиком упакована в бинарник 10 килобайт.


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

Личный опыт: переход с низкоуровневой разработки на C к программированию на Java

Reading time26 min
Views27K


Статья отражает личный опыт автора – заядлого программиста микроконтроллеров, которому после многолетнего опыта микроконтроллерной разработки на языке С (и немного на С++) довелось участвовать в крупном Java-проекте по разработке ПО для ТВ-приставок под управлением Android. В ходе этого проекта удалось собрать заметки об интересных различиях языков Java и C/C++, оценить разные подходы к написанию программ. Статья не претендует на роль справочника, в ней не рассматривается эффективность и производительность Java-программ. Это скорее сборник личных наблюдений. Если не указано иное, то речь идет о версии Java SE 7.
Читать дальше →

Горячие клавиши Android Studio, которые могут увеличить вашу производительность на 100%

Reading time2 min
Views48K
Перевод заметки Шикара Ша с medium.com

Вступительный спойлер
Об авторе оригинала: Шикар Ша, Android-разработчик, сертифицированный Google (Shikhar Shah, Google Certified Android Developer).

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

За помощь в устранении синтаксических и пунктационных ошибок спасибо ЗаЕцу ;)

Перевод


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


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

Новое спортивное ориентирование: как самостоятельно определить свое местоположение

Reading time5 min
Views8.3K
image
Кадр из фильма “Вверх” (2009)

Геоданные нужны огромному числу приложений — от навигаторов до программ, напоминающих о событии рядом с конкретным местом. Поэтому многие компании разрабатывают сервисы, использующие данные о местоположении — Location Based Services (LBS).

Для решения этой задачи возможностей GPS недостаточно: GPS хуже работает в помещениях, и даже на открытой местности поиск спутника иногда занимает продолжительное время. Компании предлагают разные подходы к поиску альтернативы этой технологии. Например, c 2006 года, когда началось партнерство с компанией Cognio, Cisco работает над позиционированием с помощью Wi-Fi.

Другой вариант определения местоположения — использование данных ближайших GSM-вышек. Об этом способе сегодня расскажем подробнее.
Читать дальше →

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

Reading time6 min
Views12K


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

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

Information

Rating
7,465-th
Registered
Activity