Category: it

Category was added automatically. Read all entries about "it".

покидая Канаду

взято отсюда: https://lleo.me/dnevnik/2024/02/04

Дорогой товарищ Андрей! В далеком 2010 году ты приютил мои сайты lleo.me и binoniq.net, а также Юрину pripyachka.com на своих серверах в Канаде. И долгие 14 лет у меня был прекрасный, надежный и даже абузоустойчивый хостинг. Спасибо тебе вечное за эту доброту и помощь! К сожалению, всё меняется, закончился проект Андрея, связанный с датацентром, серверная стойка отключается.

Я сперва думал, я не перенести ли вообще свои проекты на Raspberry, что работает у меня на холодильнике. Ну правда же, CloudFlare проксирует, трафик небольшой... Чисто для прикола интересно. Вот разве что MySQL убьет всю память, это правда. Но в итоге нашлось новое место хостинга — начальство компании, где работает друг Юра, разрешило нам разместиться на одном из отладочных серверов компании. Где я теперь — сам пока не понял, то ли Германия, то ли Финляндия, то ли снова Канада, по крайней мере whois IP показывает Канаду. Но по ощущениям стало быстрее, поэтому думаю, что Европа. В принципе я теперь хорошо разобрался с хозяйством, набыдлокодил себе даже каких-то автоматических скриптов для переезда, и теперь, если что, могу переезжать, просто запуская один скрипт. Осталась пока в Канаде только собственно Юрина припячка, её переездом займусь завтра, ибо пароли у Юры.
Collapse )

Программисты и balance.transfer

взято отсюда: https://lleo.me/dnevnik/2024/01/23

Для начинающих и умудренных программистов в сети есть поучительный юмористический текст «Код Нинзя» — сборник «вредных советов» на тему хорошего тона при написании кода. В нем перечислены практически все ученические ошибки. И мне, конечно, и смешно, и горько, что все эти пункты я постоянно наблюдаю за собой.

Однако хороший тон всего лишь тон. Его нарушение лишь немного путает тебя самого и тех, кто будет когда-нибудь читать твой код, если вообще будет. Но есть одна не упомянутая в трактате особенность стиля программирования, которая реально выбешивает и причиняет физические страдания в работе. И я бы добавил ее в самом верху:

Никогда не думай про обратную совместимость

Докажи, что идешь в ногу со временем, постоянно учишься новому и призываешь к этому остальных: не сохраняй сделанного надолго! Позаботься, чтобы в твоей документации ссылки перестали открываться уже через неделю, линки на картинки не работали, а вскоре пусть и сама документация выдает ошибку 404. Твои демо не должны запускаться даже в момент публикации. Твой код должен перестать собираться уже к концу месяца. Но главное: как можно чаще меняй свои форматы, протоколы и интерфейсы! Регулярно переделывай имена параметров, переменных, ключей командной строки, форматы входных и выходных данных! В написанных тобой библиотеках как можно чаще заменяй названия методов и функций на более свежие и понятные! Старайся, чтобы после любого мельчайшего усовершенствования твои программы и API перестали работать со всем, что работало с ними прежде! Весь чужой софт, что люди мира отлаживали ради совместимости с твоим, должен становиться негодным всякий раз, когда ты что-то у себя исправляешь! Этим ты помогаешь людям оставаться в тонусе, профессионально расти и непрерывно учиться новому!
Collapse )

Осторожно, двери закрываются

взято отсюда: https://lleo.me/dnevnik/2024/01/20

Пришел по электронной почте потрясающий образец русофобии:

Я пока не разбирался, речь про lleo.me, binoniq.net или ещё какой-то сайт, к которому привязаны мои контакты, но время у нас до 31 января есть. Видимо, они так с Путиным сражаются, отключают домашние сайтики россиян, если найдут у себя в базе.

В какую страну посоветуете мне, владельцу домена, эмигрировать срочно до 31 января? :)
Collapse )

PHP: ошибка 2038 года

взято отсюда: https://lleo.me/dnevnik/2024/01/17

Предыстория — ваял небольшую софтинку, [ ТЕКСТ ПОД КАТОМ: Доступен только в оригинальной заметке на сайте ] Короче, сделал выбор плюс к текущей дате: час, неделя, месяц, год, ну или 50 лет — это типа вечно. И тут выясняется... С JS все норм. Но PHP, на котором я по-быстрому накидал бэкенд, принялся при подсчете +50 лет выдавать ошибку. Мол, хуле в функцию data() ты передаешь float, когда ожидается int? Штааа?! Какой float в PHP, сроду там типы не различались?! И внезапно выясняется, что в PHP есть некий параметр PHP_INT_MAX, и на моем сервере он int32 и его максимум 2147483647. Что в случае date('Y-m-d--H-i-s',PHP_INT_MAX) соответствует числу секунд UnixTime для даты 2038-01-19 06:14:07...

Не то, чтоб я собирался сильно долго жить и нужна была вечная игла для примуса, как говорил в таких случаях Остап Бендер. Но интересно осознавать, что через 14 лет и 4 дня жители Британии встали рано в 6 часов — у бэкендов нет часов! Ну это у них там в Британии будет 6 утра, у нас в Ингрии уже наверно 9 или 10 часов утра будет. А сколько будет в Москве и будет ли вообще — неизвестно. Как думаете, исправят PHP-шники ошибку функции data() или к тому времени сам PHP уйдет в музей древней хуйни?
Collapse )

Пакетный менеджер Линукс

взято отсюда: https://lleo.me/dnevnik/2023/11/30

Линукс такой разный. Собирал одну софтинку строго по инструкции для пользователей Линукс. После установки кучи загадочных приблуд с именами типа Ninja и LSD2 дошёл до строки, где предлагалось запустить с длинными ключами какой-то пакетный менеджер pacman. Такого в системе тоже не обнаружилось, пришлось установить. Теперь у меня на компьютере есть pacman v1.0. Это вы серьезно сейчас?
Collapse )

identicon

взято отсюда: https://lleo.me/dnevnik/2023/10/05


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


Collapse )

USB-руль Microsoft к ESP-32-s3

взято отсюда: https://lleo.me/dnevnik/2023/10/02

Я всё ещё хочу ездить на шестисотом BMW. И поэтому товарищ Макс как-то принес мне с барахолки USB-руль:

Затем к рулю дошла неспешно заказанная из Китая ESP32s3 (это которая со слотом OTG-USB), а сегодня наконец дошли и руки разобраться со всем этим и заардуинить драйвер. Что удивительно — получилось за вечер, спасибо Чуку за советы по протоколам USB. Демку выложил на Гитхаб, кому интересно:
Collapse )

Простейший Чипльдуктор

взято отсюда: https://lleo.me/dnevnik/2023/09/23

Почти сутки не мог взять себя в руки и приступить к чистке ведер грибов, что принес из леса. А всё потому, что у меня не было спокойного радио. Пришлось сперва его снова настроить. Снова — потому что чипльдуктор у меня был, но убилась флешка. Вы спросите: чего я не делал бэкап? Отвечу: она и убилась, когда я ее вынул и пытался сделать бэкап — не все кардридеры одинаково полезны.

Как сделать простейший Чипльдуктор?

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

1. Дешевый одноплатный чип с Линуксом — Raspberry PI, Orange, Banana или что-то похожее.
2. Звуковая карта USB c кнопками.
3. USB-колонки.


Collapse )

WASM-JS

взято отсюда: https://lleo.me/dnevnik/2023/04/07

Ещё немного про WASM и язык Rust. Современный браузер имеет в целом два языка программирования: классический JavaScript, а также браузерный ассемблер WASM. Который собственно языком программирования не является, а является сущностью, в которую можно скомпилировать код с любого другого языка. Для чего это может пригодиться?

— Если у вас есть библиотеки на других языках — какая-нибудь обработка звука на С или блокчейн-парсеры на Rust
— Если у вас очень дорогие вычисления, и повышение производительности от 30% вам критично.

Чего WASM не даст? Компактного объема не даст — все процедуры компилятор туда потащит с нуля, и код раздуется на сотни кб по сравнению с JS. Бешеной производительности тоже не ждём: от 30% можно повысить производительность, ну и время старта страницы теоретически должно повыситься (хотя на практике ощущения такого нет). Никаких интересных возможностей, которых не было в JS, WASM точно не даст. Он вообще никаких возможностей не даст, более того — по всем вопросам, связанным с браузером, он будет всё равно бегать в JS. И запускать его придется тоже из JS, там специальный костыль script type='module' и еще придется отдельно объявлять все его функции.
Collapse )

Подбор номиналов резисторов

взято отсюда: https://lleo.me/dnevnik/2023/03/10



Во чего вспомнил: как-то товарищ Юра попросил сделать ему софтинку для простой задачки: точного подбора номиналов резисторов при проектировании. Сама формула общеизвестна, а онлайн-сервисов по расчету резисторов тоже выше крыши. Но фишка именно в подборе табличных номиналов. В реальной жизни номиналы резисторов ограничены значениями таблиц E24 или E96, и если калькулятор рекомендует 234 Ома, то промышленность выпускает только 232 или 237. А здесь можно максимально наглядно выбрать пару резисторов из тех, что существуют и даже имеются в ящике стола. А можно подобрать наиболее эффективную пару — вполне вероятно, в ней уже не будет номинала, на который вы опирались, приступая к расчету.

— Находясь в окошке сопротивлений, можно листать номиналы стрелками вверх и вниз.

— Картинки smd-резисторов — тоже поле ввода: набрав там непонятную маркировку резистора, можно увидеть номинал.

Collapse )