Привет, Хабр! В этой статье я расскажу о том, как мы пришли к идее создания собственных инновационных тренажеров, какие технические трудности встретили на пути создания нового уникального тренажерного зала и как их преодолевали.
User
Апскейл, который смог
15 min
69KТермин «апскейл» используется для обозначения процесса увеличения разрешения цифровых изображений с фокусом на создание иллюзии «настоящего» высокого разрешения. Правда, 90% таких продуктов — это барахло, больше намёк на перспективы, чем волшебство. Недавно мои ручки добрались до двух алгоритмов повышения чёткости, которые оказались настолько хороши, что появилась эта статья. Будут субъективные и объективные тесты алгоритма Real-ESRGAN для увеличения разрешения и алгоритма GFPGAN для детализации лиц.
Traffic_Warning: в статье демонстрируется множество примеров.
35 вопросов с собеседования JavaScript-разработчика
8 min
94K
Translation
Это перевод статьи, в которой Abdo Amin приводит 35 вопросов на собеседованиях JavaScript-разработчиков, которые он сам задает. К вопросам прилагаются и ответы.
Тариф «100к+», или как вельми зело огорчить спамера
12 min
64KУже не впервые сталкиваюсь, что читатели Хабра не все поголовно умеют правильно бороться со спамом. И я не про SpamAssasin, «Ктозвонил» и прочие приложения для фильтрации информационного мусора, а про несложную, но весьма доставляющую всем сторонам процесса подачу жалобы в ФАС.
Давайте расскажу, как буквально за 15 минут не отрываясь от любимого компьютера подключить спамеру задораздирающий тариф линейки «Административный»: «Административный 100к», «Административный 150к» и вплоть до «Административный 500к» – как повезет.
Почему некоторые люди ощущают «эмоциональный озноб» от музыки
3 min
116KДревний температурный триггер в человеческом мозге настроился на новые входные данные
Трепет, дрожь, гусиная кожа, мурашки, озноб, кожный оргазм, по-английски frission, cold chill — всё это названия одного и того же явления, для которого в языке нет устоявшегося термина. По-научному, это трансцендентные психофизиологические переживания, а проще говоря — волна удовольствия, которая иногда проходит по коже при прослушивании некоторых музыкальных произведений. В качестве триггера срабатывает не только музыка, но и физический контакт с человеком, эмоциональная сцена в художественном фильме и др. На Reddit даже есть сообщество /r/frission, члены которого делятся друг с другом триггерами «кожного оргазма».
Почему возникает такая психофизиологическая реакция на эмоциональные раздражители? Почему она наблюдается не у всех, а только у некоторых людей? Учёным пока не удалось до конца изучить этот феномен, но полвека исследований позволяют сделать некоторые предположения.
Стандартная библиотека Visual Studio 2015 и телеметрия
7 min
38KПреамбула
Программы на C и C++, как правило, проводят бо́льшую часть своей жизни внутри функции
main()
и функций, прямо или косвенно вызываемых из main()
. Тем не менее, на самом деле выполнение программы начинается вовсе не с main()
, а с некоторого кода из стандартной библиотеки, поставляемой вместе с компилятором. Таковой код, по идее, должен подготавливать окружение для других функций стандартной библиотеки, которые, возможно, позовёт main()
, а также параметры самой main()
(под Windows; Unix-системы имеют тенденцию передавать argc/argv/envp
в подготовленном виде прямо при запуске процесса, но речь не о них). Симметрично, завершающий return
в функции main()
— вовсе не последняя инструкция программы, после него следует ещё немного кода из стандартной библиотеки.В Visual Studio «настоящая» точка входа в программу называется
mainCRTStartup
. В комплекте с VS идут исходники стандартной библиотеки, в VS2015 определение mainCRTStartup
находится в %PROGRAMFILES(X86)%\VC\crt\src\vcruntime\exe_main.cpp
, но, впрочем, всю работу выполняет exe_common.inl
рядом. Давайте туда посмотрим....
// If this module has any thread-local destructors, register the
// callback function with the Unified CRT to run on exit.
_tls_callback_type const * const tls_dtor_callback = __scrt_get_dyn_tls_dtor_callback();
if (*tls_dtor_callback != nullptr && __scrt_is_nonwritable_in_current_image(tls_dtor_callback))
{
_register_thread_local_exe_atexit_callback(*tls_dtor_callback);
}
__telemetry_main_invoke_trigger(nullptr);
//
// Initialization is complete; invoke main...
//
int const main_result = invoke_main();
//
// main has returned; exit somehow...
//
__telemetry_main_return_trigger(nullptr);
if (!__scrt_is_managed_app())
exit(main_result);
if (!has_cctor)
_cexit();
// Finally, we terminate the CRT:
__scrt_uninitialize_crt(true, false);
return main_result;
...
От идеи к разработке: что нужно знать о создании стратегий для торговли на бирже. Часть III
12 min
14KНа Хабре и в аналитическом разделе нашего сайта мы много пишем о тенденциях финансового рынка и продолжаем публикацию серии материалов, посвященных вопросам создания стратегий для торговли на бирже, основанную на статьях автора блога Financial Hacker. В предыдущих материалах, раскрывающих главные тезисы цикла статей автора блога Financial Hacker, мы поговорили об использовании неэффективностей рынка на примере истории с ценовым ограничением для швейцарского франка и рассмотрели важные факторы, которые нужно учитывать при создании стратегий для торговли на бирже.
В этот раз речь пойдет об общих принципах разработки модель-ориентированных трейдинговых систем.
WPS Pixie Dust Attack — Взлом Wi-Fi сети за 5 минут. Описание уязвимости
3 min
131KУязвимость не новая, но ввиду отсутствия материалов в «РУ» сегменте — решил написать данную статью.
Базово о WPS:
WPS — Wi-Fi Protected Setup. Второе название QSS — Quick Security Setup.
Стандарт разработанный для упрощения процесса настройки беспроводной сети.
WPS позволяет подключится двумя различными способами:
— ввод 8-ми значного пин кода (обычно указывается c обратной стороны роутера)
— нажатием специально предназначенной для этого кнопки на роутере
PIN являет собой код из 8 цифр, 8я — чек сумма. Брут такого кода, с учетом защиты от перебора, может занять до нескольких дней.
Стандарт разработанный для упрощения процесса настройки беспроводной сети.
WPS позволяет подключится двумя различными способами:
— ввод 8-ми значного пин кода (обычно указывается c обратной стороны роутера)
— нажатием специально предназначенной для этого кнопки на роутере
PIN являет собой код из 8 цифр, 8я — чек сумма. Брут такого кода, с учетом защиты от перебора, может занять до нескольких дней.
В конце 2014 года специалист по компьютерной безопасности Доминик Бонгард (Dominique Bongard) нашел уязвимость в WPS, которая позволила взломать Wi-Fi роутер за несколько минут.
Проблема была в генерации случайных чисел (E-S1 и E-S2) на многих роутерах. Если мы узнаем эти числа — мы сможем легко узнать WPS pin, так как именно они используются в криптографической функции для защиты от брутфорса по получению WPS pin.
Роутер отдает хэш, сгенерированный с использованием WPS pin и данных (E-S1 и E-S2) чисел, что бы доказать, что он его так же знает (это сделано для защиты от подключения к фейковой точке, которая могла бы просто принять ваш пароль и слушать трафик).
А если найду? Перелет еще дешевле чем вы уже нашли
3 min
122KЕсли вы планируете поездку и уже нашли недорогой перелет, не спешите покупать билеты, потому что сейчас вы найдете билеты еще дешевле. И это не реклама очередного говноагрегатора.
Всем известно, что авиакомпании берут свои цены с потолка. Маркетологи придумывают хитроумные непрозрачные схемы отъёма денег у пассажиров пропорционально финансовым возможностям последних. Так, чтобы богатые платили за билеты побольше, а бедные — сколько смогут.
Всем известно, что авиакомпании берут свои цены с потолка. Маркетологи придумывают хитроумные непрозрачные схемы отъёма денег у пассажиров пропорционально финансовым возможностям последних. Так, чтобы богатые платили за билеты побольше, а бедные — сколько смогут.
CNTK — нейросетевой инструментарий от Microsoft Research
5 min
26K2015 год был очень богат на события, связанные с нейросетевыми технологиями и машинным обучением. Особенно заметный прогресс показали сверточные и рекуррентные сети, подходящие для решения задач в области компьютерного зрения и распознавания речи. Многие крупные компании опубликовали на Github свои разработки, Google выпустил в свет TensorFlow, Baidu — warp-ctc. Группа ученых из Microsoft Research тоже решила присоединиться к этой инициативе, выпустив Computational Network Toolkit, набор инструментов для проектирования и тренировки сетей различного типа, которые можно использовать для распознавания образов, понимания речи, анализа текстов и многого другого. Интригующим при этом является то, что эта сеть победила в конкурсе ImageNet LSVR 2015 и является самой быстрой среди существующих конкурентов.
Microsoft выложила на Github инструментарий CNTK для глубинного обучения
2 min
16KMicrosoft выложила в открытый доступ исходный код инструментов, которые используются в компании для ускорения разработок в области искусственного интеллекта: набор Computational Network Toolkit опубликован на Github.
В ядре Linux обнаружили уязвимость, позволяющую получить права суперпользователя
1 min
61KПрактически все версии ядра Linux, от 3.8 до 4.5 (в git) подвержены достаточно серьезной уязвимости, которая дает возможность локальному юзеру получить права суперпользователя. Оказывается, уязвимость CVE-2016-0728 существует с 2012 года, а наиболее подвержены риску пользователи ОС Android. дело в том, что код приложений и игр, созданных с использованием NDK (Native Development Kit) и выложенных в Google Play, компания Google проверить не может.
Что касается ПК и серверов, то здесь ситуация не такая сложная, в особенности, если в системе всего один пользователь. Кроме того, не является слишком опасной эта уязвимость и тогда, если пользователям запрещено исполнять код, либо же различные экземпляры ОС находятся в среде виртуализации.
Сделай сам: dll hijacking под MS Office для самых маленьких
5 min
30KПрошло уже три дня с тех пор, как исследователь Parvez Anwar опубликовал информацию о множественных dll hijacking уязвимостях в продуктах Microsoft Office, а какой-либо реакции не наблюдается. Ни CVE, ни сообщений на специализированных ресурсах, Windows Update не качает свежих патчей. Что ж, может, так и нужно, может быть, это не уявимость, а особенность продукта?
Между тем, эксплуатация этой особенности проста и доступна даже ребенку. И, раз уж производитель пока эту «фичу» не удалил, почему бы не написать о ней небольшую статью.
Речь пойдет о Windows 7. Работает ли это на других версиях — мне на текущий момент неизвестно, нужно проверять. Принцип действия описываемого явления (как и многих других, впрочем) основан на старой доброй технологии COM/OLE/ActiveX.
Между тем, эксплуатация этой особенности проста и доступна даже ребенку. И, раз уж производитель пока эту «фичу» не удалил, почему бы не написать о ней небольшую статью.
Речь пойдет о Windows 7. Работает ли это на других версиях — мне на текущий момент неизвестно, нужно проверять. Принцип действия описываемого явления (как и многих других, впрочем) основан на старой доброй технологии COM/OLE/ActiveX.
Смерть рака: что мешает в борьбе со страшным недугом
6 min
61KВ 2009 году Винсенту ДеВита, бывшему директору Национального института онкологии США и профессору медицины в Онкологическом центре на факультете медицины Йельского университета, поставили диагноз: рак простаты. Обычно при этом заболевании назначают гормональную терапию, но де-Вита повезло — его коллеги провели ему операцию, которая выходит за рамки стандартного лечения, и это спасло ему жизнь.
Винсент ДеВита уверен, что именно такой порядок лечения должен быть нормой, но бюрократия мешает врачам использовать новые инструменты и препараты, бюрократия мешает внедрять инновации в медицине. Врачи и учёные не говорят открыто об этой проблеме, потому что боятся навредить репутации.
По мнению ДеВита, фраза «Нам не удаётся победить рак» говорит не о том, что человечеству не хватает для этого знаний, а о том, что бюрократия не позволяет им воспользоваться достижениями науки.
Винсент ДеВита уверен, что именно такой порядок лечения должен быть нормой, но бюрократия мешает врачам использовать новые инструменты и препараты, бюрократия мешает внедрять инновации в медицине. Врачи и учёные не говорят открыто об этой проблеме, потому что боятся навредить репутации.
По мнению ДеВита, фраза «Нам не удаётся победить рак» говорит не о том, что человечеству не хватает для этого знаний, а о том, что бюрократия не позволяет им воспользоваться достижениями науки.
Простой способ глушить Wi-Fi
2 min
189KОказывается, заглушить сигнал WiFi, Bluetooth или Zigbee совсем несложно. Для этого достаточно простенького донгла за $15, который можно купить на Amazon. Он подключается к компьютеру или Raspberry Pi. Базовая антенна имеет радиус действия 80 метров. Если добавить усилитель сигнала, то глушилка работает на расстоянии примерно до 120 метров.
С презентацией (pdf) на эту тему выступил специалист по безопасности Мэти Ванхуф (Mathy Vanhoef) на недавней конференции по безопасности BruCON, которая прошла 8-9 октября в Генте (Бельгия).
Автор подчеркнул, что глушилки сигнала уже активно используются злоумышленниками. Например, автоугонщики используют портативные джаммеры, которые предотвращают запирание автомобиля, а также GPS-джаммеры, чтобы блокировать сигнал антиугонной системы (уже после похищения машины). Воры-домушники используют такие джаммеры, чтобы блокировать сервис сотовой связи во время незаконного проникновения в квартиру.
С презентацией (pdf) на эту тему выступил специалист по безопасности Мэти Ванхуф (Mathy Vanhoef) на недавней конференции по безопасности BruCON, которая прошла 8-9 октября в Генте (Бельгия).
Автор подчеркнул, что глушилки сигнала уже активно используются злоумышленниками. Например, автоугонщики используют портативные джаммеры, которые предотвращают запирание автомобиля, а также GPS-джаммеры, чтобы блокировать сигнал антиугонной системы (уже после похищения машины). Воры-домушники используют такие джаммеры, чтобы блокировать сервис сотовой связи во время незаконного проникновения в квартиру.
Модель прогнозирования временных рядов по выборке максимального подобия: пояснение и пример
6 min
27K
Tutorial
Предисловие
Это моя модель. Я ее придумала, программно реализовала, изучила особенности и описала. Полученное описание защитила как диссертацию по теме «Модель прогнозирования временных рядов по выборке максимального подобия». Разработанная модель относится к классу статистических моделей прогнозирования и строит прогноз временного ряда на основании фактических значений того же ряда. Подробнее о классификации я писала ранее. Одна из модификаций модели позволяет учитывать влияние внешних факторов на прогноз.
Файлы с реализованным примером можно скачать в архиве.
UPD 07.03.2019: Доступна обновленная версия примера для MATLAB 2015b с комментариями на английском языке.
Windows 10 по 10. Выпуск #1. Как повысить заметность и частоту установок
10 min
22K
Translation
Приветствуем в первой статье из серии Windows 10 по 10. Мы начнем серию с того, откуда начинается ваше взаимодействие с пользователями — с магазина Windows Store.
Чтобы убедиться, что ваши приложения находятся и запускаются пользователями Windows 10, рекомендуем проделать три упражнения прямо сейчас:
Даже если вы просто потратите один час на этой неделе, вы не только улучшите свое представительство в Windows 10, но и также сможете определить для себя базовые показатели, от которых вы сможете отталкиваться по мере развития и улучшения вашего приложения.
Чтобы убедиться, что ваши приложения находятся и запускаются пользователями Windows 10, рекомендуем проделать три упражнения прямо сейчас:
- Обновить описание в магазине для повышения шансов приложения быть установленным.
- Начать отслеживать использование приложения с помощь Visual Studio Application Insights и новых отчетов об использовании.
- Научиться использовать новые возможности магазина для отслеживания успешности проводимых кампаний.
Даже если вы просто потратите один час на этой неделе, вы не только улучшите свое представительство в Windows 10, но и также сможете определить для себя базовые показатели, от которых вы сможете отталкиваться по мере развития и улучшения вашего приложения.
Deephack: хакатон по глубокому обучению с подкреплением, или как мы улучшали алгоритм Google Deepmind
6 min
13KС 19 по 25 июля проходил хакатон Deephack, где участники улучшали алгоритм обучения с подкреплением на базе Google Deepmind. Цель хакатона — научиться лучше играть в классические игры Atari (Space Invaders, Breakout и др.). Мы хотим рассказать, почему это важно и как это было.
Авторы статьи: Иван Лобов IvanLobov, Константин Киселев mrKonstantin, Георгий Овчинников ovchinnikoff.
Фотографии мероприятия: Мария Молокова, Политехнический музей.
Почему хакатон по обучению с подкреплением это круто:
Авторы статьи: Иван Лобов IvanLobov, Константин Киселев mrKonstantin, Георгий Овчинников ovchinnikoff.
Фотографии мероприятия: Мария Молокова, Политехнический музей.
Почему хакатон по обучению с подкреплением это круто:
- Это первый в России хакатон с использованием глубокого обучения и обучения с подкреплением;
- Алгоритм Google Deepmind — одно из последних достижений в области обучения с подкреплением;
- Если вас интересует искусственный интеллект, то эта тема — очень близка к этому понятию (хотя мы сами и не хотели бы называть это ИИ).
How-to: Создание торговых роботов на TradeScript vol. 2
5 min
16KМы неоднократно рассказывали об алгоритмической торговле на бирже и создании торговых роботов. Упоминали мы и о том, что большая часть участников фондового рынка все равно пользуется торговым терминалом — для совершения операций вручную или контроля действий робота.
Однако даже тем торговцам, которые работают исключительно руками в терминале, иногда хочется автоматизировать некоторые процессы и запрограммировать торговые стратегии. Одним из способов подобной автоматизации является написание торговых роботов на скриптовом языке TradeScript, который встроен в терминал для торговли на бирже SmatX (процесс его создания описан в отдельном топике).
О том, как я написал простое приложение для Android/iOS
6 min
89KХочу сразу отметить, что это не статья от профессионала, скорее взгляд любителя на мобильную разработку, скажем так, «с нуля». Мое основное занятие — это создание сайтов. В данное время я работаю у провайдера интернета и занимаюсь поддержкой внутреннего биллинга/сайта и так далее (PHP и немного Perl), довольно скучное занятие, скажу я вам. В общем, я обычный провинциальный «программист».
В один прекрасный момент у руководства компании возникла идея сделать мобильное приложение для iPhone, которое могло бы показать баланс пользователю, его статус, возможность взять «обещанный платеж», фактически, дублирование личного кабинета, но чтобы приложение. Не зная про мобильную разработку совсем ничего, идею воспринял с большим энтузиазмом, потому что всегда приятно делать/узнавать что-то новое, думаю, это у всех так.
Придя на работу в один из серых скучных дней, я решился и написал в поиске Google «как сделать мобильное приложение». Это было очень наивно. Кажется, я даже попробовал задать вопрос на Toster, «с чего начать разработку под мобильные приложения», тогда я еще не понимал насколько глупым воспринимается этот вопрос профессионалами.
В один прекрасный момент у руководства компании возникла идея сделать мобильное приложение для iPhone, которое могло бы показать баланс пользователю, его статус, возможность взять «обещанный платеж», фактически, дублирование личного кабинета, но чтобы приложение. Не зная про мобильную разработку совсем ничего, идею воспринял с большим энтузиазмом, потому что всегда приятно делать/узнавать что-то новое, думаю, это у всех так.
Придя на работу в один из серых скучных дней, я решился и написал в поиске Google «как сделать мобильное приложение». Это было очень наивно. Кажется, я даже попробовал задать вопрос на Toster, «с чего начать разработку под мобильные приложения», тогда я еще не понимал насколько глупым воспринимается этот вопрос профессионалами.
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity