metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-05-09 09:13 pm

Показательные выступления на льду.

Но надо сказать, что последние пляски с Qt, glibc и дебианами, а так же закономерная реакция линукс-френдленты на описание оного хорошо демонстрируют почему с софтом под линукс все так "хорошо".
Софт для end-юзеров и прочие приземленные вещи далеко не всегда пишут отмороженные гики с десятилетним опытом решения бессмысленных безумных проблем. Достаточно походить по форумам по .NET например - там огромное количество вопросов, показывающих, что в ИТ работает много _начинающих_ людей. И вот оным начинающим развлечения, подобные тому, чем я занимался вчера - совершенно ни к чему. Не должен обобщенный "программист кульных прог для бухгалтерии Вася Пупкин" сразу разбираться в тонкостях библиотек, порядка их поиска, версий компиляторов и прочей хреновине. Это должно идти потом, когда софт уже заработал, был продан и надо его улучшать, выпускать новую версию и есть на этот бабки, полученные от продажи первой версии.

Я так понимаю, не всем очевидна конечная цель работы: "написать софт, внедрить клиентам, получить бабки". И что чем меньше времени уйдет на это - тем больше бабок в единицу времени получится. И что время на "чтение гугла и манов", "пересборку QT", "изучение тонкостей поиска shared objects" - это все кем-то должно оплачиваться. Я не знаю, по моему, видеть во всем в первую очередь бизнес-смысл и енд-юзеров - достаточно полезная вещь, хорошо вправляет мозги и компенсирует техно-гиковские перегибы.

Не говоря уже о факапах вроде "приехали показывать софт тендерной комиссии, а там НИЧЕГО не запустилось, потому что линукс не той системы" - такое вообще недопустимо, между прочим.
abbra: (Default)

[personal profile] abbra 2009-05-10 07:35 am (UTC)(link)
Не спора ради, а только для вашего образования хочу отметить, что когда вы будете такими матерыми "проприетарщиками под linux", как уже имеющиеся Oracle, IBM, Ansys и тому подобные, то вы будете вертеть енд-юзеров как попало, диктуя им среду исполнения. И нет у этих проприетарщиков никаких проблем с линуксом -- они просто ограничивают своих пользователей в том, что те могут использовать как подкладку под их программу. А бедные енд-юзеры, крутятся на месте, пытаясь пристроить дистрибутив, который использует их администратор к поделию проприетарщиков и при этом сохранить право на поддержку. Из таких действий потом растут невнятные howto "как я запустил oracle на freebsd".

В том что касается вашего приложения, то имело бы смысл посмотреть на LSB 3.0. И ограничить себя функциями, которые туда входят. QT там есть, в той мере, в которой он вам нужен, хотя и не самая последняя версия библиотеки. Если вы соберете свое приложение в режиме совместимости с LSB 3.0, то это будет работать на достаточно широком круге дистрибутивов.

А так, наскоком в любой системе можно найти проблемы. У меня вот на пустом месте в Vista перестал у ребенка работать Spore, который до этого проработал там полгода без проблем. "Программа что-то выполнила такое, что она не запускается" -- это Виста сообщает. И все, уплаченные немаленькие деньги за это поделие слились в трубу. Единственная рекомендация от поддержки EA -- "переустановите ОС". Зачем? Все работало и продолжает работать, кроме их поделия, среда не менялась.

[identity profile] kong-en-ge.livejournal.com 2009-05-10 07:54 am (UTC)(link)
При всей богатой наследственности доля присутствия на рынке как бы говорит сама за себя насчет пользовательских предпочтений. По совокупности факторов: борьба с зоопарком, наличие ставящегося с полпинка софта, наличие софта как такового.

[identity profile] theiced.livejournal.com 2009-05-10 08:20 am (UTC)(link)
Ша набегут бебианисты и скажут что надо было сделать только дебку под ленни, а к то не юзает ленни - тот лузер и для него делать ничего не надо - его проблемы.

[identity profile] theiced.livejournal.com 2009-05-10 08:24 am (UTC)(link)
Ребе, тут увы в основе дааавно уже лежит не фан а ЧСВ в большинстве случаев. Хотя если под фаном вы таки понимаете `важен не результат а процесс` то и `фан` такой тоже часто присутствует.

[identity profile] vp.livejournal.com 2009-05-10 08:54 am (UTC)(link)
Изначально, в корне разная постановка задачи. Мы ставим задачу как распространение СОФТА для ЦЕЛЕВЫХ СИСТЕМ. То есть считается, что у клиента уже есть система, и техника есть, и мы не вправе напрягать его покупкой +1 компьютера и тем более, навязывать систему. Потому что если мы станем навязывать, то для простоты и мейнстримовости мы навяжем винду. А тут именно замах на совершенно другой рынок.

[identity profile] vp.livejournal.com 2009-05-10 08:58 am (UTC)(link)
..в ту же папку где и программа. Потому что места поиска и загрузки либ описаны и стандартизованы
abbra: (Default)

[personal profile] abbra 2009-05-10 09:00 am (UTC)(link)
О том и речь -- хотите быть совместимым с как можно большим числом платформ "по-правильному"? Используйте LSB -- последняя редакция 3.1. "Не по-правильному"? Таскайте все необходимое с собой в /opt/, так делают многие проприетарные приложения. "Совсем не по-правильному"? Собирайтесь статически.

[identity profile] zamotivator.livejournal.com 2009-05-10 09:18 am (UTC)(link)
Бля, очень всё было понято через жопу.
Такими вопросами занимается всегда "билд-мастер".
Либо это отдельная должность + профи, либо это тот самый "гик".
Он настраивает билд-систему, окружение, собирает библиотеки - и предоставляет другим простые how-to-шечки или просто готовые сборки.
Точно также, как настраивают eclips для проекта. Или список плагинов и либ для .net.
Ты ни разу не ебался с вопросом "новичку нужно объяснить, откуда и как брать интеропы"?
"Почему COM-объекты не грузятся"?
Не приходилось трахаться с тонкостями студийной сборки?

Если это так - ты либо одиночка (гик), либо лжец.

У нас на текущем проекте возникают проблемы вида "линкер выдает ошибку Unknow PDB error 24", при изменении dependes меняется (неявно) билд-ордер и начинаются вилы с CRT, а любой в солюшине приводит к тому, что полученный солюшин перетасован относительно опорного (сам файл) и замёржить его при апдейте просто невозможно.
И WinSxS понятней чем LD_LIBRARY_PATH? Windows-installer - deb пакета? Это наглая ложь.


Встречался? Сталкивался? Почему нету возмущений? Да блин всё просто - у тебя есть опыт решения этих проблем и наладки процесса для остальных.
С чего ты взял, что этот повод автоматически сконвертируется в windows?.
Правильно сказал [livejournal.com profile] aceler:
Windows - это крайне сложная система. Даже я, обладающий огромным опытом использования и администрирования компьютеров, не смог за несколько дней (!) найти в ней, как подключить дополнительные репозитарии. Чего уж говорить про обычных пользователей.
Намёк ясен?

[identity profile] zamotivator.livejournal.com 2009-05-10 09:23 am (UTC)(link)
С чего ты взял, что этот повод автоматически сконвертируется в windows?.
С чего ты взял, что этот опыт автоматически сконвертируется в linux?

[identity profile] zamotivator.livejournal.com 2009-05-10 09:24 am (UTC)(link)
Как ни странно, в дебиане есть -all сборки - в них тащатся бинари для всех аппаратных платформ

[identity profile] zamotivator.livejournal.com 2009-05-10 09:28 am (UTC)(link)
В линуксе каждая библиотека имеет имя
libName.so.major_number.minor_number.build_number
Установленные программы читают библиотеку определённой версии, и поломать их установкой новой версии невозможно.
Qt имеет ABI совместимость в рамках мажорной версии, потому проблем с нею не возникает.

А "проблемы с пакетами" вызваны попытками натянуть пиджак на осьминога.
В windows хватает проблемс redistributable - и ЭТО решать КУДА СЛОЖНЕЙ чем привыкать к пакетным сборкам.
А консистентность системы тебе гарантируем: если в какой-либо библиотеки будет секьюрити баг - НЕ ТЫ будешь его править, а мейнтейнеры репозитория.

Краткое резюме: ты много теряешь, и много находишь. Чем сетовать на "неработающий опыт" лучше освоить подходы к решению проблем в дистрибьютиве, который ты трогаешь.

[identity profile] alexott.livejournal.com 2009-05-10 09:38 am (UTC)(link)
все ставится в свой каталог, включая нужную версию Qt, потом на этот каталог указывается LD_LIBRARY_PATH, и все.
мы в своей софтине даже libiconv таскаем, поскольку он отличается от платформы к платформе

[identity profile] thesz.livejournal.com 2009-05-10 09:45 am (UTC)(link)
Последнее надо заменить на "отсутствие привычного софта". Типа, "нет Фотошопа".

Поскольку софт, как таковой, на Линуксах присутствует в большом объёме. А уж сразу после установки - так и точно в большем, чем на Windows.

[identity profile] kong-en-ge.livejournal.com 2009-05-10 09:59 am (UTC)(link)
Реальный мир суров и несправедлив: софта сразу после установки больше, а популярность у пользоветелей меньше :)

[identity profile] thesz.livejournal.com 2009-05-10 10:08 am (UTC)(link)
Но растёт, а там, где софта после установки меньше - падает.

Правда, это не относится к MacOSX. Там и софта меньше, и всё равно растёт. Но это уже другая тема, с совсем другими причинами.

[identity profile] kong-en-ge.livejournal.com 2009-05-10 10:21 am (UTC)(link)
> Но растёт, а там, где софта после установки меньше - падает.
Конечно, растет. Раз по удобству работу решили приблизиться к более популярному продукту. Но темпы роста так себе, не просматривается пока перспектива качественного изменения расклада в среднесрочной перспективе. И тем, кто работает за еду, а не за фан, это существенно.

[identity profile] thesz.livejournal.com 2009-05-10 10:29 am (UTC)(link)
Вот с этим я совершенно не согласен.

Работающий за плату должен мочь и уметь выбирать инструмент.

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

EDA-шные тулзы, кстати, тоже поддерживают всего ничего дистрибутивов - RedHat, да и всё.

[identity profile] metaclass.livejournal.com 2009-05-10 11:22 am (UTC)(link)
"Ты ни разу не ебался с вопросом "новичку нужно объяснить, откуда и как брать интеропы"?"
Достать из svn, куда их положил я. И все. И самое интересное, таки интеропы от одной версии библиотек работают у всех клиентов с разными версиями без изменений.

WinSxS и дотнетовский GAC даже чисто теоретически правильней организован, чем хранилище либ в линуксе. Даже то, что после установки либ нужно вызывать ldconfig для обновления кэша - это уже извращение.

[identity profile] metaclass.livejournal.com 2009-05-10 11:25 am (UTC)(link)
Угу, у меня пока так не получилось, падает с сегфолтом.

[identity profile] zamotivator.livejournal.com 2009-05-10 11:35 am (UTC)(link)
Достать из svn, куда их положил я. И все. И самое интересное, таки интеропы от одной версии библиотек работают у всех клиентов с разными версиями без изменений.
Ты это решение откуда взял? Из астрала? =)))

WinSxS и дотнетовский GAC даже чисто теоретически правильней организован, чем хранилище либ в линуксе. Даже то, что после установки либ нужно вызывать ldconfig для обновления кэша - это уже извращение.
Да ладно тебе, "правильней организовано", WinSxS появился для решения проблемы dll-hell'а. И решает он эту задачу хуевато.
В лине dll-hell by-design невозможен.

Сюрприз - ldconfig автоматически завоётся при установке пакета.

Ты же своими манипуляциями с файлом делаешь примерно следующее:
копируешь программу в какую-то папку, езешь руками поправить реест, а dll вываливаешь в system32.

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

Это то, как ты примерно сейчас это всё дело под linux'ом заводил.

Какой путь правильный? Собрать инсталятор! Это deb пакет. В него можно запихать вопросы пользователю типа "в каком режиме работать" и "введите пароль для администратора системы", туда же добавляются все скрипты со всеми присяданиями.

deb пакет делают один раз в течении нескольких дней (инсталлятор сделать - работа-то ненулевая, правда?) и простор используют и не парятся.

На крайняк ты всегда можешь в свой ~/.bashrc прописать свои LD_LIBRARY_PATH и один раз через --prefix собрать версию Qt для своих нужд (разработки).
Новый человек просто чекаутит куда ему интересно, прописывать один раз переменные окружения (как вариант ) PROJECT_LOCATION LIBRARY_LOCATION и всё это подхватывает.

Система сборки - это вообще отдельная песня. В студии она крайне примитивна и иногда это её плюс. Но выше некоторого потолка начинается ад.
У нас уже РУКОВОДСТВО мечтает о cmake.
В общем, берёшь cmake, настраиваешь билдинг-систему (в windows cmake генерирует на сборку студийные проджекты, в лине make-файлы, дружит), а все разработчики просто чекаутят сорцы.

Две переменные окружения, одна команда на сборку - правда неплохо? И всё тоже самое.

[identity profile] alexott.livejournal.com 2009-05-10 11:37 am (UTC)(link)
собирать надо на более старой платформе, а пускать - на новой.
а вообще - стоит закрепить список поддерживаемых платформ, и не пытаться объять необъятное. или собирать все статиком...

[identity profile] alexott.livejournal.com 2009-05-10 11:37 am (UTC)(link)
хотя и при статике, можно огрести странных глюков, из-за мелких различий в glibc и т.д.

(Anonymous) 2009-05-10 03:24 pm (UTC)(link)
Фантастика. Дать автоматизировать бухгалтерию начинающему сиречь, малограмотному, товарищу -- это, знаете ли, системненько, хе-хе.

[identity profile] metaclass.livejournal.com 2009-05-10 04:33 pm (UTC)(link)
Я ж говорю, в идеальном мире у предприятий всегда есть деньги на SAP R/3 и вендоров софта, которые все сделают идеально и сразу заработает.
А на практике, людям как-то надо учится работать, да и софт тот же самый откуда-то браться должен, и не только для крупных предприятий, но и для мелких.

Page 2 of 7