Search
Write a publication
Pull to refresh
9
0.2
Send message

Использование произвольных DataFlash 25-й серии вместо дорогих конфигураторов FPGA Altera без дополнительной аппаратуры

Reading time7 min
Views12K
Из любого описания на популярные FPGA известно, что для хранения их конфигураций используются специальные микросхемы – конфигураторы. В комментариях меня поправили, что потихоньку набирают популярность и FPGA, где это не требуется, но пока многие делают разработки именно на классике, где нужен конфигуратор, и с этим надо считаться. Например, для Altera Cyclone используются микросхемы EPCS. Ниже схема от типичной макетной платы с кристаллом семейства Cyclone IV. На ней мы видим конфигуратор EPCS16. Всё бы ничего, но традиционно эти конфигураторы достаточно дороги, поэтому хотелось бы использовать что-нибудь подешевле.

Подробности в длиннющем тексте ниже. Если же очень интересно, но лень читать так много букв, то можно упростить задачу, посмотрев подробное 20-минутное видео.

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

Слухи об отмене теоремы Котельникова сильно преувеличены

Reading time15 min
Views34K

tl;dr:


Учёные из Колумбийского университета во главе с Кеном Шепардом и Рафой Юсте заявили, что обошли столетнюю теорему отсчётов (теорема Найквиста — Шеннона, теорема дискретизации, в русскоязычной литературе — теорема Котельникова): 1, 2. Теперь фильтры защиты от наложения стали необязательными, ведь шум от наложения спектров можно восстановить после дискретизации. Звучит безумно? Да. Я предлагаю $1000 первому, кто докажет, что это не безумие. Чтобы получить награду, обязательно прочтите до конца.

«Фильтруй перед дискретизацией!»


Эта мантра насмерть вбита в головы поколений студентов-инженеров. Здесь под «дискретизацией» подразумевается преобразование непрерывной функции времени в серию дискретных значений. Такой процесс происходит везде, где компьютер оцифровывает сигнал из реального аналогового мира. «Фильтровать» — значит удалять из сигнала высокочастотные составляющие. Поскольку этот процесс происходит в аналоговом мире, то требует реального аналогового оборудования: цепей из резисторов, конденсаторов и усилителей. Создание такой цепи может стать утомительным и трудоёмким процессом, например, если на электронных микросхемах не хватает места. Научная группа Шепарда рассмотрела это ограничение в контексте устройства для записи сигналов от нервных клеток.

Теперь авторы заявляют, что изобрели «парадигму сбора данных, которая не требует фильтров для защиты от наложения для каждого канала, тем самым преодолевая ограничения масштабирования существующих систем». По сути они говорят, что вместо аппаратных цепей можно использовать программное обеспечение, которое работает на цифровой стороне уже после дискретизации. «Ещё одним преимуществом такого подхода к сбору данных является то, что все шаги обработки сигнала (разделение каналов и удаление) реализованы в цифровом виде», сказано в научной работе.
Читать дальше →

Как за пару минут самостоятельно рассчитать цену корпуса устройства

Reading time4 min
Views28K


Приветствую, Хабр! Есть очень много вопросов, на которые нельзя ответить однозначно, но ответ нужен. Мне, например, каждый день задают вопрос, сколько стоит корпус вот для такого вот устройства. При всей очевидности вопроса сходу сказать не получается. Нужно считать.

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

IEEE 1588 Precision Time Protocol (PTP)

Reading time6 min
Views106K
Много статей написано про всем известный Network Time Protocol (NTP), в некоторых из них упоминается про Precision Time Protocol, который якобы позволяет добиться точности синхронизации времени порядка наносекунд (например, тут и тут). Давайте разберемся, что этот протокол собой представляет и как достигается такая точность. А также посмотрим результаты моей работы с данным протоколом.
Подробности

Собственные данные в системном дампе падения Windows

Reading time7 min
Views9.4K

По роду своей деятельности (Windows Kernel) мне регулярно приходится разбирать дампы BSOD'ов. Не единичны случаи, когда у конечного пользователя успешно пишутся только Mini-дампы, в которых сохраняется только значение регистров процессора и стек падения. А другого средства отладки клиентской машины просто нет. Но что делать, если в стеке нет нашего драйвера, а заказчик настаивает, что падения начались после установки продукта и закончились после отключения драйвера этого продукта? В моем случае хорошим решением оказалось ведение небольшого журнала последних событий в циклическом буфере. Осталось только сохранить этот циклический буфер в дампе.


Под катом я расскажу, как из своего драйвера добавить в дамп данные. А затем извлечь их, используя pykd.
pykd

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

Как я взломал паяльник

Reading time17 min
Views100K
Фраза звучит несколько странно? Спасибо техническому прогрессу — не так давно «сфотографировать на телефон» звучало не менее странно.

image

В конце прошлого года я купил паяльную станцию, уже успевшую получить ярлык «народная». Её достоинства: удобные жала-картриджи T12, приличная мощность (до 72W в теории), быстрый нагрев (единицы секунд), невысокая цена. (Подробнее ознакомиться со станцией можно в этом шикарном обзоре)

Купил я самую последнюю версию hardware 2.1s, и немного расстроился, увидев что прошивка старая. Разумеется руки зачесались обновить. Зная что «сердцем» паяльной станции является STM32F103C8 (популярный микропроцессор ARM Cortex-M3 производства STMicroelectronics) — тем интереснее было покопаться, т.к. я когда-то уже моргал светодиодом на STM32F4Discovery.

Тут же были припаяны 4 провода SWD интерфейса, подключен программатор, залита прошивка.
И… Станция потребовала активацию!

Классификация звуков с помощью TensorFlow

Reading time7 min
Views25K


Игорь Пантелеев, Software Developer, DataArt

Для распознавания человеческой речи придумано множество сервисов — достаточно вспомнить Pocketsphinx или Google Speech API. Они способны довольно качественно преобразовать в печатный текст фразы, записанные в виде звукового файла. Но ни одно из этих приложений не может сортировать разные звуки, захваченные микрофоном. Что именно было записано: человеческая речь, крики животных или музыка? Мы столкнулись с необходимостью ответить на этот вопрос. И решили создать пробные проекты для классификации звуков с помощью алгоритмов машинного обучения. В статье описано, какие инструменты мы выбрали, с какими проблемами столкнулись, как обучали модель для TensorFlow, и как запустить наше решение с открытым исходным кодом. Также мы можем загружать результаты распознавания на IoT-платформу DeviceHive, чтобы использовать их в облачных сервисах для сторонних приложений.

Выбор инструментов и модели для классификации


Сначала нам нужно было выбрать ПО для работы с нейронными сетями. Первым решением, которое показалось нам подходящим, была библиотека Python Audio Analysis.

Основная проблема машинного обучения — хороший набор данных. Для распознавания речи и классификации музыки таких наборов очень много. С классификацией случайных звуков дела обстоят не так хорошо, но мы, пусть и не сразу, нашли набор данных с «городскими» звуками.
Читать дальше →

Классификация объектов в режиме реального времени

Reading time5 min
Views42K


Автор: Игорь Пантелеев, Software Developer, DataArt

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

Уязвимости вашего приложения

Reading time20 min
Views27K

Актуальны ли ещё угрозы XSS? Прошло около 20 лет с тех пор, как Cross Site Scripting (XSS) появился как вид атаки. С тех пор мы получили богатый опыт и знания, защита наших сайтов стала намного сложнее, а многочисленные фреймворки были призваны оберегать нас от ошибок. Но последние данные показывают совсем другую картину: в первых кварталах 2017 года количество сообщений об XSS-атаках и количество найденных уязвимостей выросло в несколько раз.


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


Прототипом статьи является доклад на конференции HolyJS 2017 Moscow. Алексей — фронтенд-тимлид/архитектор в компании EPAM Systems и один из лидеров сообщества FrontSpot в Минске. Основные области профессиональных интересов: архитектура и инфраструктура приложений, управление разработкой.


В этом тексте огромное количество картинок со слайдов. Осторожно, трафик!

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

DevOps придумали разработчики, чтобы админы больше работали

Reading time9 min
Views43K

Еще 4 года назад использование контейнеров в production было экзотикой, но сейчас это уже норма как для маленьких компаний, так и для больших корпораций. Давайте попробуем посмотреть на всю эту историю с devops/контейнерами/микросервисами ретроспективно, взглянуть еще раз свежим взглядом на то, какие задачи мы изначально пытались решить, какие решения у нас есть сейчас и чего не хватает для полного счастья?


Я буду в большей степени рассуждать про production окружение, так как основную массу нерешенных проблем я вижу именно там.

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

В МТИ объяснили, как формируются привычки

Reading time3 min
Views12K


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

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

JavaParser. Корёжим код легко и непринуждённо

Reading time5 min
Views17K

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


JavaParser — это набор инструментов для парсинга, анализа, трансформации и генерации Java-кода. Иначе говоря, если нужно взять кусок джавакода и как-то его покорёжить подручными методами и без необходимости в особых знаниях, эта либа — самое то.


Где-то посреди статьи вы ВНЕЗАПНО можете осознать, какой кошмар и ужас можно сотворить этой либой, и никак не дождётесь дочитать текст и полить меня гневными комментариями. Не сдерживайтесь, не стоит — сразу скрольте до самого низу и изливайте душу :)



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

В защиту swap'а [в Linux]: распространенные заблуждения

Reading time14 min
Views166K
Прим. перев.: Эта увлекательная статья, в подробностях раскрывающая предназначение swap в Linux и отвечающая на распространённое заблуждение на этот счёт, написана Chris Down — SRE из Facebook, который, в частности, занимается разработкой новых метрик в ядре, помогающих анализировать нагрузку на оперативную память. И начинает он своё повествование с лаконичного TL;DR…

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

EDC-устройство для сисадмина: Linux в кармане

Reading time15 min
Views27K
У каждого админа, пожалуй, был случай, когда что-то внезапно ломается, а ты где-нибудь в дороге: едешь на машине, садишься на поезд или, банально, сидишь где-то на скамейке в парке и срываться и куда-то нестись желания нет ни малейшего. А чинить надо. Или, как минимум, оценить масштабы пришедшего белого пушного зверька.

Понятно, что можно обойтись смартфоном или планшетом, особенно если нужно только зайти по ssh. Но пользоваться в таких случаях тачскрином, как по мне, — это боль и страдания.



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

Доставка миллиардов сообщений строго один раз

Reading time14 min
Views22K
Единственное требование ко всем системам передачи данных состоит в том, что нельзя потерять данные. Данные обычно могут поступить с опозданием или их можно запросить заново, но их никогда нельзя терять.

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

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

Эволюция системных вызовов архитектуры x86

Reading time13 min
Views46K

Про системные вызовы уже много было сказано, например здесь или здесь. Наверняка вам уже известно, что системный вызов — это способ вызова функции ядра ОС. Мне же захотелось копнуть глубже и узнать, что особенного в этом системном вызове, какие существуют реализации и какова их производительность на примере архитектуры x86-64. Если вам также интересны ответы на данные вопросы, добро пожаловать под кат.

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

Xception: компактная глубокая нейронная сеть

Reading time6 min
Views34K
В последние несколько лет нейронные сети пробрались во все отрасли машинного обучения, но самый большой фурор они бесспорно произвели в области компьютерного зрения. В рамках соревнований ImageNet было представлено множество различных архитектур свёрточных сетей, которые затем разошлись по фреймворкам и библиотекам.

Чтобы улучшить качество распознавания своих сетей, исследователи старались добавлять в сети больше слоёв, однако со временем пришло понимание, что иногда ограничения производительности попросту не позволяют обучать и использовать настолько глубокие сети. Это стало мотивацией для использования depthwise separable convolutions и создания архитектуры Xception.

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

Как стать самостоятельным регистратором .RU/.РФ

Reading time7 min
Views26K
В этой серии статей мы расскажем, как получали аккредитацию, как вы можете получить ее сами и поделимся с вами нашими разработками. Мы в Бегете хотим, чтобы развивались не только мы, но и вся отрасль в целом, так как конкуренция создает хорошие продукты.

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



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

Шпоры по сертификатам X.509

Reading time8 min
Views113K
Чудище обло, озорно, огромно, стозевно и лаяй.

Набор технологий, который мы по привычке именуем сертификатами SSL, представляет из себя здоровенный айсберг, на вершине которого зеленый замочек слева от доменного имени в адресной строке вашего браузера. Правильное название X.509 сертификат, который восходит к X.500 стандарту ITU-T DAP (Directory Access Protocol). DAP не взлетел, в IETF его посчитали неудобным для использования со всеми этими OSI нагромождениями и вместо него придумали LDAP, Lightweight DAP где первая буква обозначает «легковесный». Те, кому пришлось настраивать, или что хуже производить его отладку могут оценить иронию в полной мере. Никогда еще первая буква аббревиатуры так не лгала, не считая SNMP.


Шпоры


Кстати что общего между LDAP, SNMP и X.509 ну кроме того, что им еще не скоро предстоит собрать стадионы фанатов? Их объединяет ASN.1 — мета-язык описания объектов древности. Если бы эти технологии создавали сейчас, в ход бы пошли XML, DTD или какой-нибудь другой ML. Но в то время стандарты создавались титанами, для которых даже SNMP был простым делом.

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

Общение между компьютером и Android-устройством через Processing

Reading time7 min
Views14K
Есть определённая категория людей, которая хотела бы писать программы, но боится серьёзных языков программирования. К ним можно отнести детей, гуманитариев, любителей мастерить, людей старшего поколения и т.д. Кто-то пробует использовать «детские» языки типа Scratch или другие упрощённые конструкторы.

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

Processing — это простенькая среда разработки с языком Java с ограниченным числом классов. Здесь есть переменные, циклы, объекты. В первую очередь Processing расчитан на работу с графикой, анимацией, вычислениями. То, что так нравится детям. Всё наглядно и красиво.
Если у пользователя появится желание перейти на новый уровень и начать использовать полноценный язык Java, то все наработки не пропадут даром. Большая часть кода не потребует переработки и можно свободно копировать больше участки кода.
Читать дальше →

Information

Rating
4,078-th
Registered
Activity