Nov. 14th, 2009

metaclass: (Default)
чем под линуксом модно слушать музыку?

Поставил audacious, открываю cue-файл - виснет. Как можно было написать плеер так, что он виснет на неизвестных файлах - уму непостижимо(не говоря уже о том, что cue должен быть известным форматом). Как в нем добавить директорию целиком, тоже не совсем понятно.

Rhythmbox не понимает русских тэгов в 1251, и выглядит странно, с его чрезмерным интеллектом в плане сортировки по артистам и альбомам.


В линуксе что-нибудь подобное foobar2000 вообще есть? Чтобы без выпендрежа, но с нормальным набором функций.


PS: Познавательное чтиво про баг с 1251 в Rhythmbox. Вкратце "хуй мы на вас, русских, с вашими кодировками ложили, нам неинтересно. Triaged → Won't Fix". Это какбэ ПОКАЗАТЕЛЬ отношения к пользователю в этом вашем open-source комьюнити.

При этом, смешно, но винамп и foobar2000 под виндой понимают русские тэги. Это при том, что у меня винамп версии 2001 года, фубар 2006.

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

PS2: Вообще, что курят авторы, неясно:


Из ID3v1 1251 кодировка читается. Если сделать export GST_ID3_TAG_ENCODING=cp1251 && rhythmbox.
Из ID3v2 - не читается.
Если есть и то и другое, то сначала читается из ID3v1, а затем заменяется тем, что есть в ID3v2.
metaclass: (Default)
Вообще, говоря, история с аудио-плеерами под линуксом началась с того, что я решил на рабочем компе освободить дырку под очередной USB-HID-микрофон для его отладки с нашим софтом.
И перенес на комп с убунтой USB-коробочку с музыкой, решил проверить как ее поймут плеера на убунте, вспомнил, что поставил audacious и что еще не проверил до конца rhythmbox, начал копаться во всей этой шизе, написал в жж, начал экспериментировать с различными вариантами тэгов в файлах, начался срач, и соотвественно про работу я уже два часа как забыл.

И таки cue-файлы ни один из плееров пока не понял. audacious виснет, amarok их не видит, rhythmbox игнорирует.
metaclass: (Default)
...

>ээээ... а чо, результат программы должен быть вероятностно-правильным?
Конечно. Если программа для 90% целевой аудитории пользователей работает ожидаемо, а от оставшихся 10% требует каких-то дополнительных действий - это лучше, чем от 100% требовать дополнительных действий.


Это к вопросу о стандартах. Конечно, хорошо писать программы для идеального мира, где стандарты соблюдены, кодировки все UTF, пользователи все знают что нужно читать маны и гугл, а компьютеры не глючат и TCP соединения работают корректно.

Но на практике - практически гарантированно, что хоть что-нибудь но будет сделано неправильно, или не будет работать, как нужно. Поэтому софт должен допускать некоторые вариации входных данных, и или обрабатывать их корректно, или как минимум, ругаться понятными словами (а не виснуть, как audacious на cue-файлах).

У меня есть в разном софте, как минимум, два модуля, в которых пришлось сделать натурально подгон под желаемый результат, потому что иначе пользователям пришлось бы сидеть на порядок больше времени, занимаясь исправлениями первичных данных, чем мне понадобилось для встраиваения относительно интеллектуального алгоритма кошеризации результата.
metaclass: (Default)
Вот эти блокнотики напомнили мне об одной вещи.
Когда я вижу, что люди торгуют чем-то объективно ненужным и бесполезным, типа этих блокнотиков, всяких сувенирных фигурок из пластика и глины, какими-то фенечками, плохо нарисованными картинами и ужасными скульптурками(см. любую "художественную галерею" в минске) и прочим таким - меня это вгоняет в ужасное уныние.

Очевидно, что на этом невозможно зарабатывать нормально - могут купить, могут не купить. А с учетом убогости этих произведений искусства - скорее не купят. А народ стоит, чо-то продает, делает вид что занят полезным делом. И ведь кто-то это их дурачное хобби спонсирует. Может даже, эти психи всерьез себя считают творцами.
Хуже этого, только когда к этому приплетают какие-нибудь кошмарные истории типа "вот сестра-инвалид, делает фигурки, купите фигурку", блядь ужоснах.
metaclass: (Default)
Посетила странная мысль - если стек вызовов в программе становится слишком глубоким (не считая рекурсий по данным, видимо), это означает, что уровень абстракции, предоставляемый используемым инструментом разработки, не соответствует решаемой задаче.

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

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 4th, 2025 06:14 pm
Powered by Dreamwidth Studios