Pull to refresh
9
0
Send message

Тест производительности: удивительно и просто

Reading time15 min
Views37K
Так сложилось, что последние полгода я активно занимался тестами производительности и мне кажется, что в этой области IT царит абсолютное непонимание происходящего. В наше время, когда рост вычислительных мощностей снизился (vertical scalability), а объем задач растет с прежней скоростью, проблема производительности становится всё острее. Но прежде, чем броситься на борьбу с производительностью, необходимо получить количественную характеристику.

Краткое содержание статьи:

Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments5

Как Яндекс применил компьютерное зрение для повышения качества видеотрансляций. Технология DeepHD

Reading time7 min
Views71K
Когда люди ищут в интернете картинку или видео, они часто прибавляют к запросу фразу «в хорошем качестве». Под качеством обычно имеется в виду разрешение — пользователи хотят, чтобы изображение было большим и при этом хорошо выглядело на экране современного компьютера, смартфона или телевизора. Но что делать, если источника в хорошем качестве просто не существует?

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



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

Total votes 206: ↑204 and ↓2+202
Comments169

Сколько нужно нейронов, чтобы распознать сводку моста?

Reading time4 min
Views39K

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


После второго "опоздания" на мосты, я задумался об источниках информации о досрочной сводке мостов. Одним из пришедших в голову вариантов была информация с публичных веб-камер. Вооружившись этими данными и остаточными знаниями со специализации по ML от МФТИ и Яндекса, я решил попробовать решить задачу "в лоб".


0, Дворцовый
Картинки и кишочки под катом
Total votes 136: ↑133 and ↓3+130
Comments52

Как заставить государство открываться, ч.1: Качаем статистику ДТП своими руками

Reading time8 min
Views37K
Если хорошо поискать, можно обнаружить довольно много полезной, приличного качества, государственной информации. Но к сожалению, это все еще не: ЕГЭ и образование, погода, картография, данные о преступлениях… и ДТП.

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

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


Читать дальше →
Total votes 61: ↑57 and ↓4+53
Comments42

UI-автотесты для Xamarin

Reading time8 min
Views9K
Тестирование является неотъемлемым элементом любой разработки программного обеспечения. На него выделяется достаточно много времени в общем объеме трудозатрат, однако само по себе тестирование вещь монотонная и однообразная, поэтому хорошо поддается автоматизации. В нашей сегодняшней статье мы рассмотрим то, как использовать UI-тесты в ваших проектах на Xamarin, в том числе в больших бизнес-приложениях.

Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments0

FFMPEG. Загружаем часть видео с YouTube

Reading time2 min
Views30K

Иногда мы хотим поделиться с друзьями частью какого то видео на YouTube — время концентрации внимания в современной реальности снижено до предела, и если скидывать ссылку на ролик(даже с таймкодом начала) с комментарием «смотреть с 21:51 по 24:55» — велика вероятность, что видео просмотрено не будет.

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

Как загружать часть видео YouTube при помощи ffmpeg — под катом
Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments20

Cжатие и улучшение рукописных конспектов

Reading time9 min
Views37K
Я написал программу для очистки отсканированных конспектов с одновременным уменьшением размера файла.

Исходное изображение и результат:


Слева: исходный скан на 300 DPI, 7,2 МБ PNG / 790 КБ JPG. Справа: результат с тем же разрешением, 121 КБ PNG [1]

Примечание: описанный здесь процесс более-менее совпадает с работой приложения Office Lens. Есть другие аналогичные программы. Я не утверждаю, что придумал нечто радикальное новое — это просто моя реализация полезного инструмента.

Если торопитесь, просто посмотрите репозиторий GitHub или перейдите в раздел результатов, где можно поиграться с интерактивными 3D-диаграммами цветовых кластеров.
Читать дальше →
Total votes 124: ↑124 and ↓0+124
Comments50

Операционные системы с нуля; Уровень 0

Reading time11 min
Views133K

Добрый день/вечер/ночь/утро! Есть один экспериментальный курс по операционным системам. Есть он в Стэнфордском университете. Но часть материалов доступно всем желающим. Помимо слайдов доступны полные описания практических занятий.


Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура AArch64. ARMv8 Cortex-A53, четыре ядра, 64-бита и вот это всё. В качестве основного языка программирования выбран Rust. Который безопасный, быстрый, без GC и так далее. Его, Rust, предполагается изучать во время курса.


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

Читать дальше →
Total votes 80: ↑78 and ↓2+76
Comments55

Как смартфон может подслушать, подсмотреть и отследить

Reading time7 min
Views77K
Недавно в СМИ разошёлся интересный факт: при общении с репортёром Wired сотрудник Facebook попросил отключить смартфон, чтобы соцсети было сложнее зафиксировать факт их общения. Для этого в Facebook могли бы использовать спутниковую навигацию или микрофон, хотя для предотвращения слежки достаточно было бы их отключить. Вероятно, в телефоне есть что-то ещё, чего стоит бояться. Современный смартфон напичкан сенсорами: 2-3 камеры, датчик освещённости, акселерометр, гироскоп, GPS и ГЛОНАСС, магнитометр и другие. Как исследователи из НАСА, использующие для удалённого ремонта космических аппаратов датчики не по назначению, злоумышленники могут много узнать о владельце смартфона, получив доступ к одному или нескольким сенсорам. Речь идёт не о случаях физического взлома гаджетов с помощью установки чипов или добавления проволоки, а о решении сенсорами таких задач, как слежка за пользователями, прослушка или получение пинкода.

image
Иллюстрация к приложению PlaceRaider, создающему 3D-модель помещения из сделанных без ведома пользователя кадров

Total votes 30: ↑30 and ↓0+30
Comments35

ATtiny85: прототип беспроводного сенсора

Reading time14 min
Views63K

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





Цель — создать сенсор работающий, условно говоря, в коробке с искусственным освещением и передающий температуру и статус освещения с немедленной реакцией на изменение освещения: включилось, отключилось, мигнуло. Сенсор решено было сделать мобильным и питать от элемента CR2032, иначе говоря, при разряде до 2.7V (предел для датчика TMP36), можно рассчитывать на 200mAh.



Микроконтроллер ATtiny85 имеет всего 5 портов ввода/вывода и возможность отключить RESET в пользу дополнительного порта. Данный бюджет был распределён следующим образом:



  • 3 порта — радиомодуль NRF24L01+, спецификация требует пять портов, но в данном случае это не приемлемо и будет использована 3-х пиновая конфигурация;
  • 1 порт — датчик освещения на базе фототранзистора BPW17N;
  • 2 порта — температурный датчик на базе TMP36, второй порт нужен для подачи питания, чтобы иметь возможность отключать датчик при необходимости.


Элементная база определена, можно приступать к проектированию.



Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments22

Зубочистка-детектив раскрывает секрет радиопротокола

Reading time17 min
Views54K
Это небольшая зарисовка к сюжету об "Удобном доме". Просто иллюстрация того, что даже с не слишком большими знаниями и опытом можно кое-чего добиться. Иными словами, достаточно настойчивый дятел задолбит любое дерево.

Началось все с простого желания управлять светом в доме с помощью Arduino. В том числе — выключателями Livolo, купленными еще до этой безумной затеи с домашней автоматикой. Но, в отличие от радиорозеток, «щелкать» ими с помощью моей любимой библиотеки RC-Switch не получилось, а поиск других готовых решений показал их полное отсутствие.

Да и китайцы производители-продавцы на вопрос о протоколе отвечали, что эта штука работает на частоте 433 МГц. Не слишком полезная информация. Впрочем, не буду изображать святую невинность. Я ведь вместе с Arduino купил и пару блоков по четыре реле, чтобы, если что, банально замыкать избранные кнопки пультов. И это, кстати, довольно популярное решение, потому что быстро, относительно дешево и очень сердито.

Но в душе я стремился к прекрасному. Как ни странно, помогла обычная зубочистка, два резистора и один конденсатор.
Читать дальше →
Total votes 52: ↑48 and ↓4+44
Comments29

Дешевая STM32 плата + Arduino IDE UPD 17.08.2017

Reading time7 min
Views374K
image

Хотите прокачать ваши Arduino проекты? Заставить их работать быстрее, измерения и регулировку сделать точнее, ну и добавить баги(с новыми девайсами они неизбежны). Тогда эта статья для Вас.

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

Хорошие люди это понимают, и потихоньку начинают приобщать STM32 к ардуино теме, ибо восьмибитные AVR микроконтроллеры, на которых основано немало ардуино плат, не всегда могут справиться с поставленными задачами.

Краткое изложение данной статьи в видео формате:


Тыц
Total votes 24: ↑22 and ↓2+20
Comments102

ESP8266 с чего начать или первый опыт

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

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

image

Итак, приступим!
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments51

Картонный робот-пылесос на Ардуино

Reading time3 min
Views28K
Следуя инструкции под катом (и имея в наличии все нужные компоненты), за несколько часов можно построить простой картонный робот-пылесос. Конечно, это, скорее, игрушка, но удивительно, сколько пыли она собирает с вроде-бы чистого пола. Также может быть любопытно опробовать на ней алгоритмы управления роботом-пылесосом, дополнить сонаром или другими датчиками препятствий.
(много картинок)
Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments16

Как обычному менеджеру вместе с хардкорным технарем прокачаться до IT-управленца?

Reading time4 min
Views8.8K
Здравствуй, «Мегамозг»!

image

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

Получив степень бакалавра по, ну очень общему, направлению «Менеджмент», я почувствовала, что этого определённо недостаточно. Я понимала необходимость сфокусироваться на одной конкретной области и сузить предмет изучения, а имея большой (и основной) интерес к области информационных технологий и желание работать в данной среде (не технарем), я столкнулась с существенной проблемой — практически все заявленные программы на образовательном рынке, связанные с областью ИТ, нацелены либо на адских технарей, либо на товарищей с опытом работы от 2х-3х лет и имеющих нереальный управленческий опыт (программы MBA).

Однажды я повстречалась с совершенно новой, эксперементальной магистерской программой «Менеджер информационных технологий» факультета Высшая школа бизнеса МГУ и решила рискнуть.
Читать дальше →
Total votes 13: ↑9 and ↓4+5
Comments5

Опубликован код эксплойта для критических Android-уязвимостей Stagefright

Reading time2 min
Views19K
Весной 2015 года исследователи обнаружили ряд критических уязвимостей в компоненте ядра мобильной ОС Android под названием Stagefright (библиотека для работы с файлами мультимедиа, например PDF). Ошибки безопасности позволяли злоумышленникамии удаленно получать доступ к смартфону, например, с помощью отправки зловредного MMS-сообщения — для проведения подобной атаки нужно знать лишь номер телефона жертвы.



На этой неделе был опубликован код эксплойта, использующий ошибки безопасности в компоненте Stagefright. Эти уязвимости были обнаружены исследователями компании Zimperium, которая в своем блоге описала атаку с помощью специально созданного эксплойта.
Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments5

Новый Vogue. Теперь банановый

Reading time3 min
Views97K
Прикручиваем аппаратную консоль к Transcend WiFi SDHC


Прокачаная карточка

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

Читать дальше →
Total votes 179: ↑173 and ↓6+167
Comments120

Хакаем Transcend WiFi SDHC карту памяти

Reading time10 min
Views147K
Перевод немного вольный, но смысл не потерян. Я (переводчик) заинтересовался этой карточкой давно и почти сразу заказал её, сегодня забрал с почты и не могу нарадоваться, но хочется больше, чем дает Transcend, а карточка, между прочим, Linux сервер с WiFi! Очень много буковок.

С недавнего времени я стал счастливым обладателем карты памяти Transcend WiFi SD, которая позволяет мне передавать фотографии с моей «зеркалки» (которая вообще то Sony NEX, зато компактная) на любое устройство с WiFi за несколько секунд. А так как мне нравится делать фотографии и делиться с ними на лету, то SD карточка, умеющая без проводов передавать картинки на мой телефон, кажется прекрасным решением. И это было так! (хотя всё еще так). Мобильное приложение может… не, должно быть получше (зачем скачивать 7МБ картинку для просмотра, чтобы потом ЕЩЕ раз скачать её, нажав на «Скачать»?), но вообще оно делает своё дело!
Читать дальше →
Total votes 167: ↑158 and ↓9+149
Comments238

«Pimp my game», или как «прокачивать» игры без API

Reading time10 min
Views14K
image

Думаю, многие из вас хотя бы раз в своей жизни занимались модификацией любимой компьютерной игры. Это могло быть редактирование ресурсов (например, моделей персонажей и объектов из GTA), написание разнообразных скриптов (к примеру, планировщик задач для Dwarf Fortress, запускаемый при помощи DFHack) или разработка модов для своего сервера Minecraft, которые работали под управлением Minecraft Forge.

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

Сидя однажды вечером за одной из своих любимых игр под названием UnReal World (далее — URW), я в очередной раз столкнулся с невероятно неудобным для меня поведением. Естественное желание практически любого игрока при встрече с более-менее сильным врагом — моментально сохраниться, чтобы не потерять всё, чего он достиг на данный момент (да, некоторые сочтут это «хамством» / «читом» / etc, но о вкусах не спорят). Проблема заключается в том, что сохраниться-загрузиться по-быстрому в URW просто не получится. При сохранении персонажа автоматически выполняется выход в главное меню, а выйти не сохранившись, чтобы вернуться к предыдущей точке сохранения, можно лишь убив процесс игры через taskmgr. В итоге в большинстве случаев сложные бои на поздних этапах игры (когда уже действительно жаль терять всё то, что накопил за долгое время) заканчивались безумными комбинациями и заученными наизусть сочетаниями клавиш.

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

Как протекал процесс, и что из этого вышло, читайте под катом (осторожно, много скриншотов). Перед прочтением данной статьи также настоятельно рекомендую ознакомиться с предыдущими, т.к. в них уже объяснены некоторые из опущенных здесь моментов.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments2

Переводим в код 5 действительно полезных шаблонов адаптивной разметки

Reading time6 min
Views33K
Приветствую всех.

Недавно наш хабраколлега опубликовал интересную статью об адаптивной разметке.
Уже не далеко то время, когда мы будем уделять верстке под все разрешения намного больше внимания, нежели делаем это сейчас. Посему считаю нужным подходить к этому периоду подкованным в данном вопросе, ну или хотя бы иметь четкое представление, что это такое и с чем его едят. Запасаемся смартфонами и таблетками.
Читать дальше →
Total votes 102: ↑100 and ↓2+98
Comments24

Information

Rating
Does not participate
Location
Хабаровский край, Россия
Registered
Activity