Сижу тут, пишу себе прошивку для микроконтроллера esp8266 на C и ловлю себя на мысли: до чего же иногда уже раздражает писать примитивную низкоуровневую логику. Принять по MQTT char *topic, пройтись в цикле по каждому char, сделать tolower(), потому что там нет strcmpi(), потом делать strcmp()…
Как же к хорошему (к Python) привыкаешь. :) На нем программирование превращается в процесс творения. А на Си это какой-то бег по кругу с препятствиями.
Пока я еще помню, надо для истории записать про лампу, которую мне захотелось собрать сразу, как я начал играться с 3D-печатью.
Вот такой интересный проект мне попался на Thingiverse
В круглой версии у автора лампа выглядит так:
Но я печатал уже “искривленный” вариант:
Так вот, меня тогда попросили посчитать себестоимость такой лампы по материалам. Расчет вышел таким (итог в $ внизу):
Twisted WiFi Controlled Desk Lamp
Планшет для меня - один из самых активно используемых девайсов за последние годы. Но в какой-то момент я начал замечать, что некоторые сайты на нем начинают открываться только после длительной задержки.
В общем, не буду писать неинтересные подробности (про то почему я не сразу начал с этим разбираться, про клаудфлэровские DNS-ы на роутере и т.п.), напишу лишь суть.
Причина долгих фризов некоторых сайтов (не зависимо от браузера) - невозможность загрузить контент с российских заблокированных ресурсов вроде метрик/счетчиков и т.
Попалась статейка на Habr.com о том, как разработчик боролся с ошибочной блокировкой приложения в Google Play Store:
В этот раз ответ пришлось ждать 48 часов, но ответ меня снова порадовал, т.к. это была точная копия предыдущего ответа, даже от того же самого парня по имени Edward. Мол, все OK-ей, публикуйся.
Мне вот интересно. Неужели он ни разу не заподозрил, что все эти манипуляции разбанили/забанили ПОЛНОСТЬЮ АВТОМАТИЧЕСКИЕ? :) И что этот Эдвард - тоже бот.
Заказал на AliExpress адресную светодиодную ленту WS2812B (3 метра). Это такая лента, в которой управлять можно отдельно свечением каждого диода. И делается все это по специальному цифровому протоколу при помощи контроллера (например, Arduino).
Это позволяет реализовать какие угодно эффекты и анимации. Можно сделать Ambilight, как на телевизорах Philips, можно отображать статус какого-то процесса (путем включения нужного цвета), а можно вообще светомузыку сделать.
Я пока тестирую как будет выглядеть эта светодиодная лента на шкафу.
На Хабре последнее время народ активно дискутировал на тему на является ли низкоуровневым язык Си. Сначала появилась статья “С — не низкоуровневый язык”. Затем в противовес ей появилась другая - И всё же C — низкоуровневый язык.
И многие как роботы повторяют одно и то же, мол, Си - язык высокого уровня. А, например, ассемблер - язык низкого уровня. И вот тут автор второй статьи порадовал - хоть он попытался обратить внимание людей на нелогичность использования таких формулировок.
Ну вот почему грабли - это такое частое явление? Вот нельзя просто взять и что-то упростить. Обязательно что-то пойдет не так, и придется потратить кучу времени на неведомую фигню.
Ну ведь простейшее требуется! Для автоматической публикации сайта на удаленный сервер (git push автоматически сразу после git commit ) одной командой, а не двумя, нужно добавить команду push в git-хуки. Ок, создаю .git/hooks/post-commit (на Windows) что-то вроде такого:
#!/bin/sh exec git push exit 0 Но чего бы я туда ни записал, во время коммита я всегда получаю одну и ту же ошибку:
Надумал я тут порядок с VPS-ками навести. Вместо трех (2xLeaseWeb + 1xDigitalOcean) теперь сделал один (на Hetzner).
Триггером стало мое офигевание от политики Лизвеб. (Если за два месяца до окончания трехмесячного контракта не успел подать заявку на отмену продолжения, то, получается, обязан почти 5 месяцев следующих обязательно пользоваться…. Но это отдельная история.)
А так же отличная находка - VPS-ка на Hetzner на 4 гига оперативки всего за 5 евро! (Наконец, мои NLP-шные модули смогут легче дышать).
Приобщаюсь к миру Arduino. :) Сегодня пришла посылка с AliExpress с набором стартер RFID комплект для Arduino UNO R3
Поставил Arduino IDE, потом плагины для VSCODE… Первый тест прошивки — “поморгал светодиодом”, как полагается. :) Потом протестировал датчик температуры и влажности — неплохо, неплохо. Подключил индикатор - еще лучше.
Теперь можно переходить к конкретным полезным применениям. Осталось определиться с дозаказыванием всего нужного (как минимум, побольше реле для управления питанием, да и ардуинок надо взять в Nano-формате парочку).
Не думал, что придется когда-нибудь с JavaScript ковыряться. Но захотелось прикрутить кнопку голосового чтения текста статьи через HTML5 Speech Synthesis API.
Вместо голосовых движков от Microsoft внутри OS Windows 10 лучше использовать движок от Chrome. Качество заметно лучше как для русского, так и для английского языков.
Но при использовании гугловского движка возникают две проблемы, с которыми уже столкнулись многие. Во-первых, иногда при попытке прочитать большой текст можно услышать лишь вечную тишину.