Получи случайную криптовалюту за регистрацию!

Segment@tion fault

Логотип телеграм канала @psauxww — Segment@tion fault S
Логотип телеграм канала @psauxww — Segment@tion fault
Адрес канала: @psauxww
Категории: Технологии
Язык: Русский
Количество подписчиков: 1.01K
Описание канала:

Тим-менеджмент, Devops, Python, Rust, JS, Linux, IoT, электрика, все над чем работаю, иногда матом

Рейтинги и Отзывы

4.67

3 отзыва

Оценить канал psauxww и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

2

4 звезд

1

3 звезд

0

2 звезд

0

1 звезд

0


Последние сообщения 3

2021-07-01 02:15:16 GitHub Copilot я конечно же уже посмотрел. Очередная попытка подключить AI в помощь, а потом и на замену кодеру (прим: кодер - пишет код, не путать с программистом).

Последствия массового использования какой-либо подобной тулзы, если взлетит, предсказуемы:

- будет меньше кривых copy-paste с SO
- будет больше прямых copy-paste с SO
- люди разучатся пользоваться библиотеками
- будет больше велосипедов, причем автор не будет понимать как они едут

Светлое будущее и креатив - только в голове. А машина пусть дальше считает цифры.
123 views23:15
Открыть/Комментировать
2021-06-28 16:05:06 Из жизни миллениалов, предлагают решение для агрономов:

- А давайте в случае заморозков автоматически покрывать поле пластиковой пленкой и растения будут как бы в домике
- Поздравляю, вы только что изобрели теплицу
166 views13:05
Открыть/Комментировать
2021-06-24 20:43:51 Я люблю Alpine Linux. Понятно - для контейнеров и всякого embed. Он маленький и в нем нет systemd, уже за это его можно любить.

Но его не любят, потому что там musl. А в Питоне, например, под musl совершенно нет wheels. Или даже хуже - редко, но wheel внезапно ставится, но естественно не работает.

Потому что нет такой ОS - Linux. Есть GNU/Linux, но про GNU как-то все подзабыли. И когда появились musl/Linux (а их уже много), стало жить веселее. Пакет собран под linux_x86-64 - и поди угадай под какой. У glibc конечно свои беды с обратной совместимостью, но когда оно ставится на musl или наоборот - начинается полный армагеддон.

Выход, впрочем, есть. Перестаньте мучать бедный PyPi и заведите себе свое зеркало пакетов, где храните wheels для musl и прочего чего угодно. wheel собирается одной командой, а репозиторий пакетов питона поднимет даже ребёнок - это просто папки на веб сервере с простыми индексами.

У вас же в контейнерах версии всех пакетов все равно фиксированы? Нет? Ну тогда армия опенсорцеров, меняющих интерфейсы по фазе Луны вас ещё удивит.
141 views17:43
Открыть/Комментировать
2021-06-17 11:29:47 Урок информатики в школе. Учитель поворачивает рубильник:
— Все, урок закончен!
— Но мы же не сохранились! — в ужасе кричат дети.
— Ладно, сохраняйтесь, — сказал учитель, повернув рубильник обратно.

Энергетика - всегда клиенты, у которых чаще всего пропадает электричество. Хотя казалось бы наоборот - но вот такой сапожник без сапог.

Не важно, электростанция это, трансформаторная или просто щиток у конечного потребителя. У любого электромонтера в прошивке забито - перед началом работ обесточить рубильником. А потом уже разбираться с этими вашими компьютерами, которые надо было зашатдаунить кнопкой, но уже увы.

Поэтому именно в этой области предъявляются повышенные требования к этим самым crash-free базам данных, стойким репликациям и прочей экстремально-выживаемой ерунде.

Желательно конечно компьютеры в щитках просто комплектовать батарейками, но мы живём в реальном мире, а не в мечтах.
169 views08:29
Открыть/Комментировать
2021-06-07 00:13:06 И чит из вышеупомянутого - часто спрашивают на форумах, а как же узнать, что поток завершился, если у него нет метода is_alive() / is_finished()

Да просто всуньте в него флажок из любого объекта и смотрите Arc::strong_count. По завершении потока, счётчик сбросится до единицы.
179 views21:13
Открыть/Комментировать
2021-06-07 00:06:45 Начинающие програмеры в Rust часто сталкиваются с проблемами, из-за того что не могут понять, как работает ownership, например типичное "errorE0382: use of moved value, which does not implement the Copy trait".

На самом деле, система владения объектами - простая, как двери.

- У объекта может быть только один владелец. Передавая объект в функцию, как func(o) или в клозуру (например в другой поток) мы передаем не только указатель на него, но и права на владение, и с ними прощаемся

- У объекта может быть сколько угодно иммутабельных pointers в одно и тоже время, если при этом у него нет mutable

- У объекта может быть только один изменяемый pointer, передали &mut o в функцию - можем использовать его дальше, ведь следующей строкой функция завершится и указатель больше не будет использоваться

- У объекта может быть несколько мутабельных pointers, если завернуть его в reference counter. Но при этом объект при обращениях должен поддерживать интерфейс DerefMut. Самый простой способ - не городить интерфейс руками, а использовать стандартную матрешку Rc (Arc) + Mutex или RwLock.
186 views21:06
Открыть/Комментировать
2021-05-11 15:32:16
162 views12:32
Открыть/Комментировать
2021-05-07 21:13:45 Про современное цифровое аудиофильство.

Я люблю поаудиофилить, у меня даже есть 15-килограммовый грамофон, мраморная плита к нему и ламповый фонокорректор. Но это - аналоговое аудиофильство, я туда не лезу, а просто потребляю прекрасное.

В цифровом же всё куда интереснее, ибо поскольку ухом разницу между PCM 44/16 и 96/24 услышать уже весьма сложно, цифровое аудиофильство превратилось в спорт "загони побольше данных в ЦАП за секунду".

Начнем с форматов. Есть PCM его знают все, в последнее время вытащили из небытия еще DSD - это тот самый, который использовался в SACD с однобитным кодированием, только там был DSD64, а теперь есть DSD аж 512 и теоретически даже 1024 (записей, если честно, я даже в 512 видел только пару, ибо физически считается что DSD256 это уже на уровне мастер-болванок, с которых шампуются винилы, а кроме винилов цифровать DSD не из чего).

DSD перегоняется в ЦАП либо напрямую, либо через DoP - DSD over PCM, что естественно во-первых нагружает процессор, во-вторых требует от ЦАПа уметь принимать огромные частоты дискретизации, вплоть до 768Khz. Впрочем, на радость любителям линукса, mpd и некоторые другие плееры, делают всё на лету и почти незаметно от юзера.

Идем к ЦАПам. Собственно практически все High-End (или как сейчас модно говорить Hi-Res) ЦАПы от всяких маранцев и макинтошей начиняются двумя видами микросхем - либо AsahiKasei AK449x, либо ESS Sabre (ESS кстати олдфаги помнят, они одно время лично делали звуковухи в 90х, еще на ISA). С обоими чипами как правило проблем нет, и они в линухе прекрасно принимают свои 384 или 768 Khz через традиционное USB Audio. Для справки, цена таких чипов - от 10 до 50 долларов.

С DSD сложнее. Как такового общепринятого стандарта USB DSD - нет, и часто производители (например уважаемая мной RME) лепят свои протоколы, которые непонятны никому, кроме пропиетарного драйвера (которого под Linux конечно, как правило, нету). Но аудиофила-любителя линуксов спасает, что большинство производителей - ленивы, не любят городить in-house и ставят типичную готовую развязку, например от широко известной в узких кругах XMOS Ltd., которая в свою очередь линухом поддерживается уже вполне прекрасно и умеет честный, нативный DSD, не нагружая процессор (а если не поддерживается - можно пропатчить ядро с вашим USB ID). Стоимость такой платы с напаянным DAC - уже 100-200$.

Это собственно всё по практике, дальше идут понты в виде ламповых каскадов на выходе, стрелок от осциллографов с подсветкой, печатных плат на сантиметровом МДФ и операционных усилителей, запаянных девственницами в полнолуние. В результате, на выходе получается продукт ценой от 400$ и до полной бесконечности. Впрочем, опять же повторюсь - если внутри типичная развязка, в Linux с ним проблем не случится.

Приятного прослушивания.
222 views18:13
Открыть/Комментировать
2021-04-28 16:53:59 Вчера написал клиенту "I'm very sorry, we broke everything, cuz I had given u the wrong file", идеально используя past perfect simple.

Не зря учу английский, работаю всё лучше и лучше!
353 views13:53
Открыть/Комментировать
2021-04-15 22:15:59 Дотянулись руки до InfluxDB v2, которому имплементировал суппорт в нашем продукте.

Что я могу сказать на всё это

- Flux выглядел страшно, но я надеялся что это будет опцией и они сохранят InfluxQL, который выглядел странно, но был почти SQL. Нет - Flux теперь основное. Ну и строить Flux-запросы програмно - еще то веселье.

- Перемудрили с этими бакетами и retention policies настолько, что без бутылки не разобраться.

- Аггрегация по time frame работает через жопу - если раньше, например, для поминутного дейтафрейма данные получались четко поминутно, теперь же за текущую минуту, если в ней были изменения получаются сразу несколько значений и ебись-аггегируй как хочешь

- Отдельное спасибо за Flux-CSV (который по факту CSV) в результатах запросов. Я конечно тоже не люблю JSON, но звонили из 2021 и передавали, что CSV - это перебор и пиздец. Жду первых тикетов от клиентов "у нас запятые в текстовых данных и всё сломалось".

В общем, краткая история, как сломать то, что охуенно работало. Пожалуй, стоит срочно сделать поддержку TimescaleDB-плагина для PosgreSQL и рекомендовать его клиентам, как основной.
536 views19:15
Открыть/Комментировать