Как стать автором
Обновить

Комментарии 24

Зачем было фиксить баги — надо было продавать это как софт для мазахистов.
Как всё сделать максимально неправильно и получить на выходе полный бред.
Там же распарсить оригинальную структуру заголовка и нормально обработать файл можно десятью строками кода — в любом случае для корректной обработки надо иметь в виду как минимум BitsPerSample и BlockAlign. Да и размер чанка данных после обработки неплохо бы привести к корректному значению.
а еще в стереофайле данные двух каналов перемежаются, и, неудачно отрезав 2 нолика, можно переставить каналы местами.
Случаются разные чудеса. Например, файл, содержимое которого сводит с ума драйвер и о начинает работать в следующих режимах: mute и +666dB. Без полутонов. То есть, системный фейдер на нуле — звука нет. Системный фейдер на минимальном положении — орет на все ватты акустики. Ну или просто 32bit где чередуются значения 0 и 2^38. Поэтому только физическая аналоговая крутилка, а в наушниках лучше просто не работать.
Читайте (и принимайте к сведенью) спецификации
Божечки. pip install soundfile
Страсть велосипедить — это вредная привычка, нужно себя от нее отучать.
А можно просто взять sox, который умеет обрезать тишину не только нулевую, но и по указанному пороговому значению, ну и в пакетном режиме прекрасно работает.

P.S.:
Ну, я решил, что ничего страшного: программу я писал на C, так что за безопасность можно было особенно не переживать.
Стойкое ощущение, что автор над собой иронизирует.
Вспомнил, как я полез править исполняемый код просто в блокноте.
Ну а чо, пару значений поменять. Жаль копий не сделал.
Это была боль.
HIEW наше всё

Чуть ли не 10 лет назад разрабатывал примитивный автопилот для автомобиля. Ну он должен был ездить по определенной площадке с хорошо известными препятствиями. Всё бы ничего, но на самом въезде в площадку был бетонный блок, который системой зрения не распознался… Никто не пострадал, кроме самой платы, которую пришибло отлетевшим аккумулятором (никого не было в машине по понятным причинам, а кнопки аварийной остановки развались при нажатии, это было фиаско).

В свое время писал GUI для работы с лазерной установкой. Пока отлаживали, пару раз были случаи, когда человек лезет смотреть как отработал лазер, открывает крышку, а лазер — не выключен. Усугубляло дело то, что использовали лазер с невидимой глазу длиной волны. Несчастных случаев с глазами, к счастью, избежали. В итоге выяснили, что контроллер лазера почему-то иногда не отрабатывает команду выключения. Стали посылать ее несколько раз, чтоб уж наверняка.

А надо было концевик под крышку
Это — уже не программное решение.
Для такого в команде нужен железячник.
А откуда и зачем железячник в команде программистов?

Железячник у нас был, и концевики мы использовали — для страховки ухода механического привода на упоры, за пределы. Но лазер был отдельным готовым модулем, и у него был свой контроллер, аппаратного доступа к которому у нас не было, только программный.

Питание лазерного модуля тоже готовое, встроенное в него, без доступа извне?
РИТЭГ?

Рубите питание при открывании, это дешевле, чем инвалидность по зрению.

Или я неправ?

Лазер — твердотельный. Питание лазера — да, отдельное — в здоровом таком блоке питания, содержащем также и контроллер. Насколько я помню, там даже не было входов для подключения сигнала аварийного отключения питания, только красная кнопка отключения на самом блоке. Так что подключить свое отключение было проблематично.
Но вы, абсолютно правы, конечно, безопасность и здоровье — главное, о чем надо заботиться. Сейчас сам удивляюсь, насколько по раздолбайски мы делали. Когда потом поставили лазер видимого диапазона, то невооруженным (но уже защищенным) глазом увидели, насколько неистерпимо яркие блики появляются на стенах по всему помещению при включении лазера — а это уже отраженный свет.

Но вы же в защитных очках туда лезли?

Вначале отлаживающий железо очков не одевал, мы не понимали опасность лазера для глаз. Тем более — невидимого. Хотя, когда его включали без крышки, то ощущение песка в глазах появлялось у всех присутствующих в помещении. Но к счастью, опасность, быстро осознали, и стали пользоваться защитой. Но для меня тогда был шок, что такая виртуальная сущность, как программа, может что-то натворить в реальном мире.

А вот у меня случай был — отсоединял клеммы от AT блока питания, не выдернув его из розетки. Не сразу даже понял, что за ощущения такие странные.

А у меня было что мой код на DSP не отключил в нужный момент усилитель мощности, транзисторы отгорели и немного обожгли мне палец. Таки причинил боль своим кодом.

Мастерил фотовспышку с питанием от сети. Контроллер делал на AVR. Где-то накосячил с dead time между выключением зарядного транзистора и импульсом на поджигание лампы, в итоге лампа зажглась с открытым транзистором. Токоограничивающий резистор ватт на 10 испарился и улетел хлопьями в потолок. Физических повреждений я не получил, но моральная травма от собственной криворукости до сих пор побаливает.

Ххы. это вы ещё не делали контроллеров для компрессоров и водонагревателей. когда внезапно для тебя заглящдывающего в смотровое окошко — начинает раскручиваться 11 киловаттный двигатель ремни которого мимо твоего рукава в милиметре пролетают… вот там намотает так намотает. а всего-то забыл дописать обработку микрика кожуха…
Выключатели безопасности нельзя обрабатывать, их надо физически подключать в цепь питания источника опасности.
оно то да но иногда надо залезть когда оно работает и выровнять ремни(они плоские и убегают в стороны если что не соосно

Практическая рекомендация — прочитать и не забывать закон Мерфи

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.