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

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

Спасибо тебе за драйвер, юзаю.

И тебе спасибо на добром слове!

НЛО прилетело и опубликовало эту надпись здесь

Спасибо на добром слове!

А это что за дистрибутив такой, что sane-airscan надо отдельно ставить? Обычно он ставится автоматически...

НЛО прилетело и опубликовало эту надпись здесь

Не практикуете автотесты с эмуляторами устройств?

Нет, очень трудоёмко

Гугловцы вроде делают что-то подобное (https://chromium.googlesource.com/chromiumos/third_party/virtual-usb-printer/) для ChromeOS-а. Но судя потому, что мне они особо ни на что не жаловались, существенных проблем они таким образом не накопали

Ого! Спасибо за вашу работу! Приятно лично познакомиться с людьми, которые безвозмездно что-то создают и отдают это людям.

спасибо, супер интересно, для всех кому надоело заниматься разной лабудой, эта статья показывает куда плыть, если есть способности и желание

Мне кажется, всякая работа бывает полезной. Не стоит относиться к своей работе, как к лабуде. Это же двухсторонняя вещь, если относиться к своей работе, как к чуши, чушью в основном и придется заниматься...

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

ps

все из личного опыта, типа 50+ лет в программировании

Интересно, а сколько Вам лет, если у Вас 50+ лет опыта?

У меня 35+, и я совсем уже не мальчик (и не девочка)...

70+, из них 30+ работы в us, в том числе digital, ciena и пр.

Есть хоть маленький шанс надеяться на ретроспективу по каким-то важным или значимым событиям в ИТ за такой срок? Ведь наверняка было что-то интересное.

Сергей, событий было достаточно, если есть конкретные вопросы, пожалуйста пишите в личку

Да, свою работу надо уважать. Вы меня вдохновили. Теперь постараюсь на вашем опыте и что-то свое нанести в opensource.

P. S. Сам стиль написания статьи просто супер, читается как захватывающий роман или детектив. Подумайте и над этим. Спасибо. Настроение подняли. И солнце за окном больничной палаты.


Здоровья Вам! Это самый необходимый для работы ресурс.

Спасибо на добром слове. Выздоравливайте!

Прошу прощения за глупый вопрос. Но сам собираюсь в проект Open Source, и мучает неопределенность. Суть вопроса - никто не пытался у Вас украсть исходники и выдать их за свои? Физлица или юрлица. Не слышали ли Вы про такие истории с Open Source?

Я как-то спокойно к этому отношусь. Ну украдут и украдут - им же потом и поддерживать украденное :)

Может быть именно поэтому в релизы просачивается "оно работает но мы не знаем почему"?

От использования чужих исходников?

Я думаю, дело не в этом

Очень трудно сказать менеджеру, что у меня всё работает, тесты проходит, но я не доконца пока понимаю, как мне это удалось. И хотелось бы потратить еще недельку, чтобы разобраться.

И сулит неприятности

Вставлю свои 5 копеек солидарности. Сам код мало что стоит на фоне стоимости его постоянной поддержки, во многом поэтому проекты обычно покупают с людьми, а не в виде кода. Разобраться в чужом коде (не в том что написано, а в том ПОЧЕМУ именно так) зачастую ближе к невозможному, поэтому качество неизменно падает в "украденных" продуктах, иногда драматически.

Все же интересно, можно ли как-то это монетизировать? Были ли предложения от крутых фирм перейти к ним?

Это прокачивает всякие полезные скилзы. Скилзы, разумеется, в конечном итоге можно монетизировать

Ничо не понял, но очень плюс поставил. Не шарю за драйверы на Unix, но опенсорс - уважаю.

Ну, значит буду ходить загадочно оплюсованным :)

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

А у вас есть где-то описание, где вы этому всему научились?

Я как-то даже не знаю, что сказать

По мере появления некоторого опыта, это становится очевидным. Это как когда дом строишь, то сначала делаешь фундамент и канализацию в подвале, потом стены и перекрытия, потом крышу и печную трубу, и только в самом конце флюгер на трубе (хотя показывать козырнее всего смотрится именно флюгер, и у новичков есть соблазн с него и начать).

Александр, а не могли бы вы написать на эту тему статью? Полагаю, она могла бы быть полезна.

Большое спасибо за ваш проект. Удачи вам и терпения

Не думали над системой тестов на пользовательском оборудовании? По типу "вот вам скрипт, он сам скачает последнюю версию и прогонит по тестам, потом вернёт всё как было, а вам глубочайшая благодарность от сообщества"?

Я думаю среди пользователей хабра как раз можно поискать желающих! Я бы взялся

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

Дело такое, достаточно хлопотное.

В общем, я сомневаюсь, что получится распределенная система тестирования, основанная на пользователях

распределенная система тестирования, основанная на пользователях

Такая получается автоматически у любого востребованного продукта. Основная проблема только в сборе обратной связи.

Плюсую предыдущее сообщение. У меня МФУ Canon дико глючит под Win 10/11, а с Linux/Mac все вроде бы окей, но это только на первый взгляд. Я бы с удовольствием прогнал тесты какие мог, понажимал кнопки и т.д., все ради науки как говорится. Главное форму обратной связи определить.

Форма обратной связи - это кнопка New Issue на гитхабе.

Я поддерживаю не все Canon, а только те, которые умеют в eSCL или WSD (но многие умеют)

Скажите, а реалистично ли надеяться, что какой-нибудь добрый человек соберёт такой тестовый стенд? Бывали ли прецеденты?

Спасибо за утилиту. Использую её для добавления WiFi в свой USB HP принтер через Raspberry Pi.

На USB-reset, например, разные устройства реагируют по-разному...

Увы у меня печать с CUPS не идёт, скажем, совсем. Возможно вся проблема в этих буферах... Пока приходится кидать нужное для печати на Android телефон, а оттуда уже печать идет без проблем.

А не пробовали в CUPS баги файлить?

Там ребята сидят довольно вменяемые, и обычно на баги реагируют

Вряд ли тут дело в USB-буферах. ipp-usb, все же, с этим делом радикально разобрался. Скорее всего, дело где-то вокруг PPD. Иногда помогает вытащить PPD из проприетарного драйвера и подсунуть его CUPS-у.

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

Скажите, пожалуйста, как выбираются имена для пакетов и утилит? Вот например ваши называются sane-airscan и ipp-usb. Как можно догадаться об их назначении? Читая эти названия ничего не понятно. Но ведь вы же вряд ли называется функцию в своём коде только вам понятными или просто красивыми словами или сочетаниями букв?

Ну в общем, для тех, кто в курсе терминологии в предметной области, эти названия вполне говорящие. Что до "обычного пользователя", я не знаю. Они, на самом деле, все разные, эти обычные пользователи. Многие очень квалифицированны, а многие - не очень

А как могли бы звучать более узнаваемые названия?

printer_usb_driver, scanner_usb_driver. Это же предельно странно, когда чтобы найти нужную утилиту на компе надо гуглить, чтобы узнать, как она может называться.

Да, но...

printer_usb_driver, но ведь (1) ipp-usb работает не только с принтерами, но и со сканерами (2) существуют другие протоколы печать через USB, со своими драйверами

scanner_usb_driver, но sane-airscan, в первую очередь, работает с сетевыми устройствами. А в сочетании с ipp-usb - еще и с USB-ными

Технологии сейчас сложны и разнообразны. Привязываться к "простым" признакам (печать + USB) - не дает однозначности. А привязываться к названиям протоколов - не понятно пользователям, которые не в курсе про протоколы

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

А как вы внутри объекты и функции называете? Вряд ли ведь словами sane, insane и подобными?

Впрочем, это был более общий вопрос, связанный с весьма странными названиями пакетов/утилит.

А как вы внутри объекты и функции называете?

Ну это же open source. Если интересно, можете на исходники сами посмотреть :)

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

Имхо, эту проблему пользователи могут решить на своей стороне сами. Создать ярлыки/алиасы и т.п.

А вот разработчики не могут. Что для вас printer_driver для другого xerox_utils_base.

Что printer_driver, что xerox_utils_base - это более внятно, чем sane-airscan, например, или встречающиеся названия других пакетов.

спасибо за разработку и статью, было очень интересно почитать и наверняка пользовался Вашим продуктом!

спасибо за разработку и статью, было очень интересно почитать и наверняка пользовался Вашим продуктом!

спасибо за разработку и статью, было очень интересно почитать и наверняка пользовался Вашим продуктом!

Я считаю, что ядро linux и ОС на его основе - лучшие, хотя пока не могу на них полностью перейти. Спасибо за вклад, потому что благодаря ему больше людей смогут познать linux без негативного опыта по типу неработающего сканера или непечатающего принтера.

Сейчас пошли довольно забавные времена. Трудно даже сказать, с чем больше шансов нарваться на негативный опыт, с Linux или Windows.

Железо стало очень сложным и разнообразным. У меня в "зоне ответственности" два очень похожих ноута, мой собственный, с линухом, и ноут жены, с вендой

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

Недавно на работе выдали новенький ноут Lenovo, он поработал пару дней, а потом прилетело какое-то обновление драйверов, которые то ли поставились, то ли что-то там глюкануло и начались точно такие проблемы с засыпанием ноута как у вашей жены.

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

Что они там меняли, мне подробно не расказывали, но сказали что поотключали часть lenovo power services и еще каких-то политик.

После этого ноут наконец-то стал нормально уходить в сон.

P.S. Еще с тем ноутом был прикол, что после первого фикса он стал засыпать, но еще через какой-то (рандомный) период уходил в гибернацию. Я нашел настройки гибернации, и выставил период до перехода в гибернацию в Never. Однако уже при следующем включении там стояли рандомные цифры типа 800 минут, которые через час-два работы менялись на другие. Вот как тут не поверить в востание машин :)

 ~  apt list --installed | grep sane
# ...
sane-airscan/jammy,now 0.99.27-1build1 amd64 [installed]
# ...

Вот и я, оказывается, пользуюсь, большое спасибо за работу!

У вас случайно нет инсайдов из индустрии на тему можно ли ждать кооперации производителей принтеров и сканеров и наконец- то придти к какому-то нормальному безглючному стандарту?

Консенсус заключается в следующем:

  • DNS-SD используется, как протокол для автоматического поиска устройств в сети

  • IPP используется, как протокол для печати

  • IPP over USB используется для USB-устройств, превращая их в псевдосетевые

  • eSCL используется, как протокол для сканирования

Первые три пункта называются IPP everywhere: https://www.pwg.org/ipp/everywhere.html
Спецификация eSCL опубликована Mopria alliance: https://mopria.org/mopria-escl-specification
В терминологии Apple все это вместе называется Bonjour Printing

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

Крайне интересно почитать о подобном опыте!

С вашим драйвером наверняка не сталкивался, с печатью и сканерами дел почти не имею, однако если будет нужда - обязательно поставлю!

Труд титанический проделан и страшно представить сколько нервотрепа ушло... Низкий поклон вам.

Помнится, лет ~15 назад поднять печать и сканнер в линухе было довольно неблагодарным занятием. И проблемы с пробуждением устройства из сна, и пустые страницы на выходе, и всякие скрипты от HP для установки дров, требующие root/sudo и их же принтеры, прикидывающиеся сначала под флешку с драйверами (и поэтому не детектируемые их же скриптом, пока из-под винды не отключишь эту их "фичу"), и тд и тп. Сейчас все устройства, с которыми сталкивался, заводятся буквально с пол-пинка, как я понимаю, во многом благодаря Вам. Спасибо за Ваш титанический труд, низкий поклон.

Вы принимаете донаты?

Сейчас консенсус заключается в том, что в большинстве случаев дрова от HP лучше удалить, и пользоваться опенсорсным стеком. По большей части, он лучше работает.

Вы принимаете донаты?

Ну я ничего для этого не делал, но один раз получил аж 300 евро из Финляндии. Деньги сами по себе небольшие, но было очень приятно

Из смешного

Изредка попадаются устройства, которые заявляют поддержку IPP over USB, но фактически она у них не работает. У ipp-usb есть возможность добавлять такие устройства в black list. Иначе ipp-usb и сам не работает, и устройство держит, не позволяя работать legacy драйверам

HP про эту возможность пронюхали, и при установке hplip добавляют вообще все свои устройства туда. Мейнтейнеры основных дистрибутивов заметили такое поведение HP, и при сборке пакета hplip это хулиганство удаляют.

Я об этом вообще случайно узнал :)

https://github.com/OpenPrinting/ipp-usb/issues/70

А где можно посмотреть список поддерживаемых устройств?

У sane-airscan он есть на странице проекта, на гитхабе.

Для ipp-usb такой список не ведется, но если lsusb показывает устройство с class=7, subclass=1, protocol=4, то 99.5%, что устройство поддерживается и работает. И скорее всего, с ним будет работать и sane-airscan

Я ради этого поста зарегался на хабре через впн, что бы сказать: ЭТО ЛУЧШЕЕ ЗА ДОЛГОЕ ВРЕМЯ ЧТО Я ЧИТАЛ сори за капс, но это меньшее что я могу сделать для автора, успехов и развития и помощи желательно финансовой, если бы была возможность то и сам бы кинул в тебя чем нибудь бумажно зеленым и по больше.

А вы не думали делать тестирование на основе собранного дампа обмена между устройством и вашим драйвером от пользователей?
К примеру в дампе:
устройcтво шлет пакет ААА112
Дрйвер в ответ ВВВ3232
....
Драйвер в ответ 23432432

И так проверять, что все пакеты совпадают. 100 процентной гарантии отсуствия регресса не даст, но будет немного больше уверености

Скажите, а может ли сообщество свободного ПО само разработать открытый стандарт бездрайверной печати, да ещё и написать библиотеки для прошивок? Существует ли реальная возможность такого?

Разработать стандарт оно, конечно, может. Но вот «продать» этот стандарт производителям — скорее всего нет.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории