Как вам может быть известно, я не очень доверяю SaaS-решениям. Причин тому больше одной. SaaS’ы оставляют за собой право менять Terms of Service в любой момент как им вздумается. SaaS’ы сливают персональные данные. SaaS’ы меняют пользовательский интерфейс и функционал на свое усмотрение. Наконец, если вы используете SaaS’ы от какого-нибудь Google, то однажды получив в них бан за любое нарушение ToS (который, напомню, постоянно меняется), назад вы больше никогда не разбанитесь. В прошлой статье мы решали описанные проблемы, поднимая / перенося на VDS свой блог. Сегодня же мы попробуем разобраться, как с нуля поднять собственный почтовый сервер с TLS, спам-фильтром и списками рассылок.
OLED-экранчики на базе SSD1306 / SSD1309 / SH1106 пользуются большой популярностью как в DIY сообществе, так и индустрии, благодаря своей яркости, широкому углу обзора и небольшой цене. Но при этом они способны выводить только бинарное изображение. В качестве альтернативы, лишенной этого досадного недостатка, можно предложить экранчики на базе контроллера SSD1351. По большому счету, они полостью аналогичны экранчикам на базе SSD1306, но выводят изображение в 16-и битном цвете.
В рамках этой заметки мы поговорим про фильтры нижних частот (low-pass filter), фильтры верхних частот (high-pass filter), а также полосно-пропускающие (band-pass filter) и полосно-заграждающие фильтры (band-stop filter / notch filter). Существует множество схем соответствующих фильтров, но на этот раз мы рассмотрим только самые базовые. Еще мы спаяем один из фильтров и сравним его реальное поведение с теоретическим, а также с поведением, предсказанным SPICE-симуляцией в KiCad.
Прошло больше года с тех пор, как я познакомился с микроконтроллерами STM32. За это время были перепробованы разные отладочные платы, из которых наиболее удобными для меня оказались платы серии Nucleo. Но даже они не лишены некоторых неприятных дефектов. Как известно, удобство в мелочах. Поэтому в какой-то момент было решено сделать отладочную плату, которая была бы удобна лично мне.
Когда я начинал вести этот блог в 2009 году, хостить сайты, особенно небольшие, на VDS как-то не было принято. (Не говоря уже о том, что сами идеи «посвящать самому себе сайт» / «вести общедоступный дневник» были еще новыми и казались немного дикими.) Главным образом, все использовали shared hosting, потому что он стоил дешевле VDS и решал свою задачу — сайт работал, странички открывались. Сегодня, конечно же, все сильно изменилось. Не только VDS стали дешевле, но и современные браузеры стали ругаться на сайты, не использующие HTTPS. А за сертификаты хостинг-провайдеры берут деньги. Еще бы, ведь у клиентов нет на сервере рутовых прав, а значит Let’s Encrypt они прикрутить не могут. В любом случае, в современных реалиях держать сайт на шаред хостинге иначе как зашкваром не назовешь. Поэтому я решил рассказать о своем опыте переноса сайта на VDS, на примере этого самого блога.
Как известно, печатать на 3D-принтере с использованием пластика ABS достаточно сложно. Если в случае пластика PLA можно просто нажать кнопку и пойти по своим делаем, то ABS постоянно норовит отклеиться от стола или свернуться. Первую проблему еще достаточно легко решить. Далее будет описано несколько способов. А вот со сворачиванием (warping) дела обстоят куда сложнее. Утверждается, что чтобы решить эту проблему, необходимо построить термокамеру (Heated Build Chamber, HBC). Насколько сложно построить HBC и действительно ли она решает все проблемы? Давайте выясним!
I2S (Inter-IC Sound) — это цифровой протокол передачи звука, который довольно часто используется в современной электронике. I2S не имеет ничего общего с I2C кроме похожего названия, поэтому важно эти протоколы не путать. В рамках поста мы постараемся разобраться, на что вообще похож I2S, и как с ним работать.
Вы могли обратить внимание, что до сих пор при изучении микроконтроллеров STM32 мы как-то обходились исключительно синхронным кодом. Это может неплохо работать для игрушечных примеров, но при попытке написать что-то действительно полезное без прерываний и таймеров далеко не уедешь. Так что, пришла пора научиться с ними работать. Должен предупредить, что статья вышла довольно длинной, поскольку тема непростая.
Я много слышал про библиотеку NumPy, что дескать в ней есть много полезных математических функций, или что-то в этом роде. Однако какой-то практической задачи, где был бы нужен NumPy, мне как-то не подворачивалось, и потому большого интереса изучать данную библиотеку у меня не было. Потом я заинтересовался Software Defined Radio, и, как следствие, цифровой обработкой сигналов. И вот тут иногда возникает желание по-быстрому поиграться в REPL, скажем, с быстрым преобразованием Фурье (Fast Fourier Transform, FFT) или чем-то таким. Оказалось, что это задача как раз для NumPy. Поэтому было решено разобраться в возможностях этой библиотеки как следует, выяснив заодно, что в ней еще есть помимо FFT.
В одном из видео на канале OpenTechLab рассказывалось о плате под названием Alinx AN108. Плата предназначена для использования совместно с FPGA. Она объединяет в себе АЦП на базе чипа AD9280 (8 bit, 32 Msps, даташит [PDF]), а также ЦАП на базе AD9708 (8 bit, 100 Msps, даташит [PDF]). Цена устройства составляет около 20$, на eBay его можно найти по запросу «fpga ad da». Плата показалась мне довольно интересной. Поэтому я решил обзавестись такой же и повторить эксперименты из видео.