Интересно, что писатели-фантасты предполагали что роботы заменят людей в рабочих и инженерных специальностях, а человечество, освобождённое от тяжёлого труда, будет заниматься искусством.
На практике - все наоборот. ИИ пока в технике сильно отстаёт, даже простой код часто пишет полное говно. А вот там, где нужна субъективность, а не математическая точность - рвёт гуманитариев на немецкий крест.
Такой кадр, как на слайде, сделать на фото примерно невозможно. Хотя, конечно, можно набросать эскиз, придумать постановку, отснять десяток и посидеть вечер в фотошопе. За пару дней справитесь, но это уже все равно будет продукт компьютера.
ИИ же такое и подобное генерит за пару секунд целый мешок. Идёт очередная революция, но совсем не там, где ожидали. Где ожидали, у нас до сих пор TwinCAT ещё не тянет Визуал Студию 2022, поэтому тянем не старше 2019.
На практике - все наоборот. ИИ пока в технике сильно отстаёт, даже простой код часто пишет полное говно. А вот там, где нужна субъективность, а не математическая точность - рвёт гуманитариев на немецкий крест.
Такой кадр, как на слайде, сделать на фото примерно невозможно. Хотя, конечно, можно набросать эскиз, придумать постановку, отснять десяток и посидеть вечер в фотошопе. За пару дней справитесь, но это уже все равно будет продукт компьютера.
ИИ же такое и подобное генерит за пару секунд целый мешок. Идёт очередная революция, но совсем не там, где ожидали. Где ожидали, у нас до сих пор TwinCAT ещё не тянет Визуал Студию 2022, поэтому тянем не старше 2019.
👍29😁7👎1
В Расте нет ООП с наследованием. Внезапно, есть. Вы можете эмулировать наследование, если используете Deref. Делаете новые методы у чайлда, перекрываете методы парента и все работает.
Но. В Расте это считается жёстким анти-паттерном и в приличных компаниях за такое бьют палкой по рукам. Deref допускается _только_ для смарт-поинтеров и некоторых контейнеров и кавер должен содержать минимум собственных методов, чтобы не путать пользователя.
Но где грань? У, например Rc, собственных методов довольно много. Я объясняю это студентам так:
Паттерн Deref(target=T) для S<T> допускается в случаях, если пользователь _явно_ понимает, что работает с T, а не с S. В обратном варианте - это очень и очень некошерно. Как бы вам это не казалось удобным.
Но. В Расте это считается жёстким анти-паттерном и в приличных компаниях за такое бьют палкой по рукам. Deref допускается _только_ для смарт-поинтеров и некоторых контейнеров и кавер должен содержать минимум собственных методов, чтобы не путать пользователя.
Но где грань? У, например Rc, собственных методов довольно много. Я объясняю это студентам так:
Паттерн Deref(target=T) для S<T> допускается в случаях, если пользователь _явно_ понимает, что работает с T, а не с S. В обратном варианте - это очень и очень некошерно. Как бы вам это не казалось удобным.
👍15🔥3👎1
Напоминаю читателям, кому мало канала - у нас есть чатик. Заходите, не стесняйтесь.
https://www.tg-me.com/echo_ok
https://www.tg-me.com/echo_ok
👍6😁3👎1
Я сегодня: пытаюсь понять почему не работает UART/RS485 на STM32 в Rust.
Google и ChatGPT: упорно советуют мне мои же чертежи 3-летней давности.
Google и ChatGPT: упорно советуют мне мои же чертежи 3-летней давности.
😁41👍1
В качестве апгрейда своих ембед-инструментов решил попробовать Embassy (https://embassy.dev). Собственно Embassy - это не очередная RTOS на Rust (они сами говорят, что они не RTOS), а фреймворк, который содержит HAL и минимальный async executor, работающий примерно везде, начиная от копеечных STM32(C)F0-1. И уже на базе него вы можете создавать свою RTOS, быстро и дешево. Ну или просто дергать HAL, без абстракций - дело ваше.
Embassy еще официально не вышел (на crates.io только резерв имен), но программить уже вполне можно.
Пока нравится.
Embassy еще официально не вышел (на crates.io только резерв имен), но программить уже вполне можно.
Пока нравится.
👍9🔥6😁1
Открыл для себя WAGO TopJob. WAGO всегда делали отличные клеммы, но у TopJob 2002 есть особенность - при заявленной от 0.5 квадрата она отлично держит и более мелкие провода, хоть китайские патчкорды от ардуино-сделай-сам.
Отличное модульное решение для шин и слаботочки. Больше никаких бекгофов за сотни денег. Кроме того, под TopJob есть серия джамперов на любой размер и можно быстро переключать клеммы между собой, хоть в щитке, хоть на стенде.
Рекомендую.
Отличное модульное решение для шин и слаботочки. Больше никаких бекгофов за сотни денег. Кроме того, под TopJob есть серия джамперов на любой размер и можно быстро переключать клеммы между собой, хоть в щитке, хоть на стенде.
Рекомендую.
👍17😁2
Вчерашний пост внезапно породил бурную дискуссию о терминах в чатике. Подытожу, чтоб не путались.
К сожалению в русском (и украинском) одного термина не хватает, а один - свой, поэтому путаница случается. Буду приводить английские (и чешские) аналоги.
Итак, кабель. Кабель (cable, kabel) - это всегда что-то в обмотке и внутри много жил. Обычно с изоляцией.
Провод - внезапно, это тоже кабель. Отличие провода от кабеля - у провода проще изоляция и он для наружного применения (не для воды, земли и тд, хотя может жить в гофре). Этот термин - рождён ГОСТом, в других языках как правило аналога нет (говорят тоже кабель).
Жила (wire, vodič) - металлическая проволока с изоляцией.
Опять жила (core, žila) - отдельный волосок металла в многожильной (multi-core wire) "жиле" или вся жила в одножильной "жиле" (single-core wire).
Вот с жилой беда. Но в проде все равно матом.
К сожалению в русском (и украинском) одного термина не хватает, а один - свой, поэтому путаница случается. Буду приводить английские (и чешские) аналоги.
Итак, кабель. Кабель (cable, kabel) - это всегда что-то в обмотке и внутри много жил. Обычно с изоляцией.
Провод - внезапно, это тоже кабель. Отличие провода от кабеля - у провода проще изоляция и он для наружного применения (не для воды, земли и тд, хотя может жить в гофре). Этот термин - рождён ГОСТом, в других языках как правило аналога нет (говорят тоже кабель).
Жила (wire, vodič) - металлическая проволока с изоляцией.
Опять жила (core, žila) - отдельный волосок металла в многожильной (multi-core wire) "жиле" или вся жила в одножильной "жиле" (single-core wire).
Вот с жилой беда. Но в проде все равно матом.
👍20😁3👎2
sqlx/rust похоже пришёл к своему закономерному финалу. так все разъебали в 0.7, что по ходу пора тикать.
а жаль, хороший db-agnostic можно было строить
а жаль, хороший db-agnostic можно было строить
😁5👍2
This media is not supported in your browser
VIEW IN TELEGRAM
У популярных сервисов какое-то летнее обострение
- используйте 2FA!
- так я использую
- не выключайте!!!
- используйте 2FA!
- так я использую
- не выключайте!!!
😁16👍1
Про личный automotive.
Ковид, технологии и политики похоже автомобили добивают окончательно, по крайней мере у меня. На своей текущей я за 5 лет умудрился накатать аж 16 тыс, причем за последний год вообще 80(!). Тоесть тренд явно нисходящий. На природу я не езжу - мне до природы 3 минуты пешком. А в центр города цена убера туда-обратно уже сравнялась с ценой за 3 часа парковки. Да и что там делать, в этом центре, если 99% митингов теперь онлайн. А в соседние города я ездил на поезде еще до ковида. Сегодня твердо решил поехать за KFC, потом посмотрел что доставка 1 евро и заплакал.
В связи с чем, ищется недорогое в обслуживании транспортное средство, способное, если понадобится, километров 10 везти коробку килограмм 20, можно без пассажиров, но при этом чтобы выглядело прилично. Мотоциклы-мопеды не предлагать - для страны, где пол года идет дождь или снег - это не вариант. Пока смотрю на малолитражки Тойоты, но даже это будет из пушки по воробьям.
Есть варианты? Или как всегда, самому собирать?
Ковид, технологии и политики похоже автомобили добивают окончательно, по крайней мере у меня. На своей текущей я за 5 лет умудрился накатать аж 16 тыс, причем за последний год вообще 80(!). Тоесть тренд явно нисходящий. На природу я не езжу - мне до природы 3 минуты пешком. А в центр города цена убера туда-обратно уже сравнялась с ценой за 3 часа парковки. Да и что там делать, в этом центре, если 99% митингов теперь онлайн. А в соседние города я ездил на поезде еще до ковида. Сегодня твердо решил поехать за KFC, потом посмотрел что доставка 1 евро и заплакал.
В связи с чем, ищется недорогое в обслуживании транспортное средство, способное, если понадобится, километров 10 везти коробку килограмм 20, можно без пассажиров, но при этом чтобы выглядело прилично. Мотоциклы-мопеды не предлагать - для страны, где пол года идет дождь или снег - это не вариант. Пока смотрю на малолитражки Тойоты, но даже это будет из пушки по воробьям.
Есть варианты? Или как всегда, самому собирать?
👍9😁8
spawn задач в Rust - такой же антипаттерн, как channel::unbounded.
Тем не менее, вся инфраструктура по-умолчанию подбивает спавнить задачи. В коробке нет many-to-many каналов, пулы реализуются сторонними крейтами. Spawn - дешёвый, особенно асинхронный, это вам не питон. И пулы вроде и не нужны.
"Я только отспавню задачу, чтобы записать в коннекшн, она быстро пройдет, что там может случиться? Тем более, там свои таймауты".
Обязательно случится:
- данные могут поступать быстрее, чем отрабатывать таймауты
- коннекшн взят из рукожопского крейта, где таймаут отрабатывает хреново
- да даже диск может легко отвалиться. но с диском проще - там обычно нужна очерёдность записей, скорее всего архитектурно не влетите
В результате - ловим на проде out of memory. И хорошо, если у вас микросервисы и сразу видно, какой раздулся. А если монолит - велком проебаться пару ночей с профайлерами.
А как нужно? Ну очевидно, что два варианта
- пул воркеров с каналом, который отдает задачу первому свободному. или
- spawn, но в пуле, который чётко лимитирует количество задач и, желательно, следит за таймаутами сам
Тем не менее, вся инфраструктура по-умолчанию подбивает спавнить задачи. В коробке нет many-to-many каналов, пулы реализуются сторонними крейтами. Spawn - дешёвый, особенно асинхронный, это вам не питон. И пулы вроде и не нужны.
"Я только отспавню задачу, чтобы записать в коннекшн, она быстро пройдет, что там может случиться? Тем более, там свои таймауты".
Обязательно случится:
- данные могут поступать быстрее, чем отрабатывать таймауты
- коннекшн взят из рукожопского крейта, где таймаут отрабатывает хреново
- да даже диск может легко отвалиться. но с диском проще - там обычно нужна очерёдность записей, скорее всего архитектурно не влетите
В результате - ловим на проде out of memory. И хорошо, если у вас микросервисы и сразу видно, какой раздулся. А если монолит - велком проебаться пару ночей с профайлерами.
А как нужно? Ну очевидно, что два варианта
- пул воркеров с каналом, который отдает задачу первому свободному. или
- spawn, но в пуле, который чётко лимитирует количество задач и, желательно, следит за таймаутами сам
👍22🔥2😁2💩1
Делали новый клауд для ембед-железок, которые продаем. С vpn, ssh и хитрыми API с TLS. Решили сделать по-богатому - на эллиптических кривых.
Опытным путем установлено, что в 2023 году проблем +/- нет только с тремя кривыми: secp224r1, secp384r1 и secp521r1, соответственно (все три рекомендуемые NIST).
Всё остальное - гроб, пиздец, кладбище и бесконечные срачи на форумах "opensource вам ничего не обязан".
Опытным путем установлено, что в 2023 году проблем +/- нет только с тремя кривыми: secp224r1, secp384r1 и secp521r1, соответственно (все три рекомендуемые NIST).
Всё остальное - гроб, пиздец, кладбище и бесконечные срачи на форумах "opensource вам ничего не обязан".
😁19👍9
https://ibraheem.ca/posts/too-many-web-servers/
лучшая статья по Rust за последнее время. можно сказать, маленькая книга
лучшая статья по Rust за последнее время. можно сказать, маленькая книга
Ibraheem Ahmed
Learning Async Rust With Entirely Too Many Web Servers
Async Rust is a whole new world of programming. Let's try to understand it by working our way through a series of web servers, learning the details of concurrency and I/O along the way.
👍16🔥5
- ваш емейл не может закачиваться на пробел
- не может, но я ввожу его с мобилы, это автокомплит. тримните его
- повторяем, ваш емейл не может заканчиваться на пробел
шёл 2023й год. формы до сих пор играли в бюрократию 90х. не делайте так, юзеры будут вас хейтить. не у всех же master of cs, чтобы догадаться, что вы хотите.
- не может, но я ввожу его с мобилы, это автокомплит. тримните его
- повторяем, ваш емейл не может заканчиваться на пробел
шёл 2023й год. формы до сих пор играли в бюрократию 90х. не делайте так, юзеры будут вас хейтить. не у всех же master of cs, чтобы догадаться, что вы хотите.
🔥28👍9
Чтобы избавиться от выгорания, возьмите себе падавана
падаван: мне надо доступ в postgres
я: забирай,
я: почему не работает?
падаван: смотри сам:
падаван: мне надо доступ в postgres
я: забирай,
192.168.5.6:5432падаван: не работает
я: почему не работает?
падаван: смотри сам:
httр://192.168.5.6:5432выгорание: ну-ну
😁48🔥7👍1
Зрада отменяется. serde убрали precompiled binaries в 1.0.184
Но обещали вернуть, когда-нибудь потом.
Но обещали вернуть, когда-нибудь потом.
👍13😁2
Вопрос разбирали, почему OpenLDAP до сих пор не победил Active Directory.
Оба набора программ имеют схожий функционал и позволяют играть в IAM. Но есть большая разница.
- Active Directory - это продукт, OpenLDAP - это набор "сделай сам"
- Для начала работы с AD нужно купить шиндовс-сервер и установить контроллер домена. Для начала работы с OpenLDAP нужно знать, что вообще такое LDAP
- Для OpenLDAP есть десяток гуёв, которые позволяют с ним работать мышкой. Для AD есть один гуй, который делает всё и админу не нужно выбирать между 10
- При всей моей нелюбви к PowerShell, администрирование AD из консоли - в целом логичный и простой процесс. Администрирование из консоли OpenLDAP - квест, даже для админов, которые десятками лет сидят в линуксе.
- OpenLDAP позволяет гибко вести базу идентичностей. У AD база в целом дубовая, но это опять же отлично - дядя подумал за тебя. Админ, который выучил AD в одной организации, без проблем админит его в другой. А не читает тонну внутренней документации (если она вообще есть).
Конкурентом AD был не OpenLDAP, а NDS. Что касается Novell - это хрестоматийная история, как купить за 200 миллионов готовый и довольно популярный дистрибутив, а затем угробить и себя, и его. В open source нельзя работать, просто поглощая друг друга за деньги. Если откопаете Sun - тоже подтвердит.
Оба набора программ имеют схожий функционал и позволяют играть в IAM. Но есть большая разница.
- Active Directory - это продукт, OpenLDAP - это набор "сделай сам"
- Для начала работы с AD нужно купить шиндовс-сервер и установить контроллер домена. Для начала работы с OpenLDAP нужно знать, что вообще такое LDAP
- Для OpenLDAP есть десяток гуёв, которые позволяют с ним работать мышкой. Для AD есть один гуй, который делает всё и админу не нужно выбирать между 10
- При всей моей нелюбви к PowerShell, администрирование AD из консоли - в целом логичный и простой процесс. Администрирование из консоли OpenLDAP - квест, даже для админов, которые десятками лет сидят в линуксе.
- OpenLDAP позволяет гибко вести базу идентичностей. У AD база в целом дубовая, но это опять же отлично - дядя подумал за тебя. Админ, который выучил AD в одной организации, без проблем админит его в другой. А не читает тонну внутренней документации (если она вообще есть).
Конкурентом AD был не OpenLDAP, а NDS. Что касается Novell - это хрестоматийная история, как купить за 200 миллионов готовый и довольно популярный дистрибутив, а затем угробить и себя, и его. В open source нельзя работать, просто поглощая друг друга за деньги. Если откопаете Sun - тоже подтвердит.
👍23😁1