Pull to refresh

Comments 2491

UFO just landed and posted this here
Что за народ безграмотный…
Это древняя украинская поговорка, на русском звучит «Ласковый телёнок двух мамок сосёт».
(«сосёт» == «кормится» в данном контексте, для особо злостных прогульщиков школы).
Но на украинском звучит ближе к теме (вынужденное переобувание в прыжке).
Поговорку-то вы знаете, а быть ласковым телёнком у вас не получилось, 70 минусов )
ну по крайней мере лично я после прочтения для себя понял одно, чего раньше не допускал. А именно, раньше я думал что linux не пойдет в массы потому как серьезный софт под него не портируют потому как «вышеперечисленные проблемы» и как следствие люди не могут пользоваться этой операционкой, ибо не могут выполнять поставленные перед ними задачи. А после прочтения статьи подумалось, а вдруг наоборот, софт не портируется потому как люди не хотят пользоваться линуксом потому как «вышеперечисленные проблемы».
Да. И производителям софта вот эта разнобойность Линукса доставляет свои проблемы. Это и dependency-hell, и отсутствие стандартной графической библиотеки, и ряд других факторов.
наоброот, я как человек работающий на «производителя» говорю что все портируеться на линукс. потомучто это ядро можно запустить на любом процессоре. но конечно никто не будет портировать мессенджер в ракеты. твое предстовление о линуксе нулевое. Линукс это не операционная система а ядро у которого очень большая экоситема и 1% это настольные компы. и где ты вообще видел стандартную графическую библеотеку? ты че куришь вообще?
речь в статье пойдёт исключительно о настольном применении Линукса

А вы вообще хотя бы первое предложение статьи прочитали, прежде чем оставлять свой «очень умный» комментарий c 20 грамматическими ошибками о том, что у кого-то «нулевое знание» о вашей любимой платформе? Хорошо, что по крайней мере одно слово написано с большой буквы. Ох, подождите…

Знаете про «фатальный недостаток» и микрософт? Заменяем dependency-hell на dll-hell.
Как пользователь ни разу не сталкивался. Как программист — тоже.
Зато в Линуксе да, были грабли в своё время.
Сколько разнообразных версий C++ redistributable у вас стоит? А ведь зачастую их не прикладывают в мелкие дистрибутивы программ. При этом какой-нибудь разумной системы, которая бы доставила их в винде нет. При том, что сама винда знает к какой конкретно библиотеке попытались обратиться и могла бы предложить скачать её.
Сколько разнообразных версий C++ redistributable у вас стоит?

Как пользователю мне абсолютно всё равно сколько их там стоит.
И точно так же все равно, когда нужная не стоит?
Почти никогда не испытывал такой проблемы, потому что любой софт, которому нужна какая-то версия, просто ставит её вместе с собой или проверяет что нужная версия уже установлена.
Может такое и случалось как-то раз или два за последние 15 лет, но это точно не какая-то насущная проблема. И скорее винить тут надо не проклятую винду, а тех кто инсталлер делал, который не проверят или не предлагает поставить нужную версию библиотек, от которой софт, собственно, зависит.
И скорее винить тут надо не проклятую винду, а тех кто инсталлер делал, который не проверят или не предлагает поставить нужную версию библиотек, от которой софт, собственно, зависит.

тут скорее проблема в том, что инсталляторы раздутые — так как им приходится таскать с собой эти раздутые компоненты с собой, а штатного способа установить их в винде через тот же windows update нет — все "прелести" отсутствия пакетного менеджера (chocolatey это все-таки не штатное решение)

На самом деле, далеко не все разработчики читают и следуют рекомендациям MS по написанию софта.
Вспомните ранние поделки Близзард, например. Работало как в 98, так и в Win7 почти без проблем, инсталлятор — минимален.

А сколько есть того, что работало в 98, а в NT даже не запускалось?
А сколько есть того, что работало в 98, а в NT даже не запускалось?

Вы бы еще ДОС-приложения вспомнили. Ну, с 98 vs NT все более-менее понятно — НТ всегда была более защищенной системой и не прощала определенные вольности, к которым привыкли разрабы под w95-98.

Вы бы еще ДОС-приложения вспомнили. Ну, с 98 vs NT все более-менее понятно — НТ всегда была более защищенной системой


Давайте вспомним не такую древность.
Приложения, которые следовали рекомендациям, без проблем завелись на Windows Vista и старше. А остальные ругались и требовали админских привилегий.
тут скорее проблема в том, что инсталляторы раздутые — так как им приходится таскать с собой эти раздутые компоненты с собой, а штатного способа установить их в винде через тот же windows update нет


подзабыли вы уже времена когда линукс шел на нескольких DVD на которых был клон репозитория чтобы «вот в линуксе маленькие программы! 5мб всего! не то что в вашей винде!.. и зависимостей на 350… вставьте диск номер 3»

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

а в линуксе нет проблем с тем что одной программе нужен какойнить zlib версии 10, а другой — верии 5, а третьей версии 8?
я помню однажды упражнялся в suse и мудреным софтом для мониторинга и управления… приходилось из других дистрибов либы выковыривать… самому некоторые собирать вручную из исходников и символьные ссылки подсовывать на правильные либы… и молится что оно заработает

Это же проблема разрабов и мейтенеров, чего это они сразу нормально не опакетили?

Это в первую очередь проблема пользователя, а не разрабов и мейнтейнеров

Знаете как бывает работает поддержка у огромных корпораций? я вот давно, лет 10 назад… общался с Ораклом…
У нас была куплена лицензия самая простая на DB чёто там минимальная комплектация..1 проц всё урезано… и чёто не ставится ну типа уплочено звоним в поддержку…
Рассказываю как что… уточняют какая у меня лицензия… и… и короткие гудки… повторный звонок — «пишите на почту, мы ответим вам в течении 30 дней»…

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

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

Согласен, но совместимость линукса с софтом старых версий на системном уровне сильно хуже, и даже при наличии бОльшего кол-ва инструментов для построения костылей — их нужно строить чаще и сложнее, чем под виндой

Дополню ответ gecube, в винде у вас вообще может оказаться 16-бит приложение и современная 64-хбитная система, или что-то под DOS, перехватывающее прерывания.
И эти проблемы будут нерешаемы в принципе иначе чем как виртуалкой или старым компом со старой ОС.

хах…
так в линуксе вы вообще не сможете запустить софт написанный в 98 году например, в отличии от винды…
тут хотябы 16 битное приложение 93 года с довольно большой долей вероятности запустится в 32битной десятке

в линуксе с поддержкой легаси всё гораздо печальнее
вот кто минусанул — вы не согласны или из вредности?

Именно поэтому для запуска всякого легаси каджит использовал Wine for Windows, да.
Вы слишком много верите рекламе, и слишком мало работаете с софтом.


А у микрософта, тем временем, с совместимостью беда даже с самим собой


в линуксе с поддержкой легаси всё гораздо печальнее

А зачем вам замусоривать хост систему? Есть много других способов поднять легаси не проглатывая ежа.

Вы слишком много верите рекламе, и слишком мало работаете с софтом.

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

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

Тогда вы и сами сможете назвать пяток способов изоляции приложений без порчи хост-системы.


аа, ну всё, значит линуксу она совсем не нужна, так?

С чего вы взяли?

С чего вы взяли?

из стиля ведения дискуссии

1) в линухе фиговая совместимость с легаси, в винде софт работает даже 93 года выпуска
2) --на-те-минус-гад--
3) за что?
4) У винды проблемы с совместимостью даже между со своими продуктами!
5) но линукс то?? там не нужно?
6) а с чего вы взяли что у линукса её нет??

не? какой я должен вывод сделать?

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

да тут вся тема это классический холивар… заигрывай не заигрывай

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

Поэтому очень важно сохранять холодную голову при горячем сердце, как разведчику.

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

Ну, были б еще какие-то реальные случаи.
Например, справочная софтина на Visual FoxPro, работающая только с дремучей версией ODBC и парой не менее дремучих ActiveX, занимающихся кастомизацией оформления.


Но такой пример подойдет только как контрпример =)

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

Линух в большинстве своем бесплатен. Да и за windows платить не сильно принято в СНГ. Ноутбуки, как правило, имеют предустановленную свежую версию.

Я про


Не вижу смысла запускать старые версии программ на современных версиях обеих ОС.

Вот купил я, например, лет 10 назад Офис 2007, работал он все эти годы под XP, например, устраивал и устраивает. А вчера купил новый ноутбук с десяткой.


Есть ли мне смысл платить за Офис 2020 или какая там сейчас версия актуальная? В целом не вижу, если 2007 устанавливается на десятку и работает. А если нет, то есть второй вариант — даунгрейдить ОС, до какого-то предела, пока она ещё ставится на новое железо, и пока офис не установится. Вот когда пересечения не будет, тогда уже думать то ли новый офис купить, то ли отказаться от него вообще.

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

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

Уважаемый VolCh
Вопрос этот лежит в нескольких плоскостях. Дабы не скатиться в философию…
Особого выбора у Вас, как у меня и всех остальных нет. Мы живем в парадигме созданной большими деньгами. Вам предлагают вариант А и вариант Б, а пункта «свой вариант» отсутствует. Вам либо придется все же перейти на более свежий софт либо использовать виртуальную машину. Попробуйте поставить window xp на современный компьютер.

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

Я еще опенсусе седьмой версии помню, на семи СД дисках, кажется ))))

Это была просто SuSE :-)

Была коммерческая, я ее даже когда-то покупал. Это потом она Новелю не продалась, и появилась open.

Да, верное замечание — тогда OpenSUSE не было, была просто S.u.S.E.

Mandrake когда-то покупал на восьми cd кажется

инсталляторы раздутые

Стоимость гигабайта на жёстком диске сопоставима с $0.05. Стоимость пересланного гигибайта по сети — значительно меньше.

Пакетный менеджер — это избыточная сложность для пользователя, которую можно с лёгкостью заменить «магазином», содержащем приложения, упакованные со всеми зависимостями. Дублирование библиотек? Одновременное хранение тысяч разных версий? Последние лет пятнадцать, это не имеет вообще никакого значения: плюхнули либы рядом с исполняемым файлом и вперёд.

Посыл верный, а вывод не очень. Просто если так рассуждать можно договориться до того, что вообще не нужно забивать диск приложениями, а качать их on-demand из сети. Но Вы забываете несколько вещей. Первая, что стоимость суммируется (данные ведь на диске все равно как в кэше придется хранить). Второе — скорость загрузки. И стабильность. Мне, скажем, приложение нужно здесь и сейчас в оффлайне или на нестабильном канале в Интернет и я не готов ждать полчаса, чтобы оно скачалось и запустилось.


Я уж не говорю о том, что сейчас у многих SSD. Причем не самые дешевые. И на них действительно ограниченный размер по цене выше HDD (последнее — дискуссионно).


Пакетный менеджер — это избыточная сложность для пользователя, которую можно с лёгкостью заменить «магазином», содержащем приложения, упакованные со всеми зависимостями.

да, скорее да. Но "магазин" под капотом все равно может быть по сути пакетным менеджером.


Последние лет пятнадцать, это не имеет вообще никакого значения: плюхнули либы рядом с исполняемым файлом и вперёд.

ну, да. Но вот насколько это правильный подход — неясно. У всего есть свои плюсы и минусы. Тем не менее — как минимум для системных компонентов — пакетный менеджер — благо.

Стоимость гигабайта на жёстком диске сопоставима с $0.05.

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

Почти никогда не испытывал такой проблемы

Та не, вы уже привыкли и когда с таким сталкиваетесь — просто молча ставите её. А менее опытные пользователи просто говорят: "дурацкая программа".


В линуксе они, конечно, скажут: "дурацкий линукс".

UFO just landed and posted this here
UFO just landed and posted this here

Ну вот и выходит, что народ пытается обойти стандартные механизмы инсталляции, придумывает велосипеды, а потом жалуется, что у них что-то пошло не так, и винит в этом MS.

UFO just landed and posted this here

Этот "стандартный механизм" хранит кучу давно неиспользуемого мусора, не имеет механизма штатной очистки и время от времени требует для удаления десяток ГБ свободного места, которое он занимает не пойми чем.


Между тем, за 20 лет сменилось несколько мажорных релизов, но вот и ныне там.

Я много лет назад полностью переехал с него на NSIS, а затем и на InnoSetup, о чем ни капельки не жалею. То что раньше занимало кучу времени — теперь решается двумя десятками строк кода на паскале :-)
ваш софт не разворачивают политиками AD?
Оба сборщика умеют quiet mode с комстроки.

Так-то какая разница что в скрипт записывать…

Переехали с чего? InstallShield? Advanced Installer? MSI Factory? WiX/Wix#?

Хех, я так стар, что InstallShield помню, сбежал с него тоже. InstallAnywhere тоже помню, тоже убег в туман :-)

Разные плюгины к вижуалстудиям использовал, в 2003-2005 годах так точно. Были ли среди них поделия Розы Индиго? Не уверен, но возможно.

Видите ли, для задачи «быстренько дропнуть мышкой пару файлов, и заполнить поля в визарде» — они все прекрасны. Даже Apple PackageMaker.

Но когда надо сделать кастомную форму, автодетект компонентов и программ третьих сторон, генерацию конфигов по их результатам (+ выбор пользователя), показав и дав отредактировать в кастомном интерфейсе — вот тут самая мякотка и начинается. :-)

Причем вот реально, «накидать С++ DLL» получалось в итоге значительно предсказуемее и быстрее.

Не, я знаю почему так.

Потому что мне не надо миллион формочек чтобы я «удобно заполнил», визуальных дизайнеров чтобы я «быстренько нарисовал», построителей блок-схем чтобы я «быстренько все это оживил» и прочих попыток мне сделать красиво.

Дайте мануал и окошко где писать код, нафига мне эти ваши формочки со стрелочками :-)

Впрочем я не настаиваю, это ведь вкусовщина…
вот тут самая мякотка и начинается.

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

инсталлер должен быть как можно более тупой

Тупой-то тупой, но как минимум про лицензию он же должен спросить (особенно если требуется какой-нибудь сервер лицензий).

А также показать — с чем он может интегрироваться и чего не хватает.

Еще если там есть веб часть — то настроить виртуалхост на местном IIS надо бы автоматом, а не прилагать инструкцию (как нигерийский вирус список файлов к удалению, хехе).

В итоге — получается вроде и максимально простой, и хотелось бы еще тонну всего (начиная от web install недостающего), а по итогу — очередной ад…

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

Но тогда зачем все эти монстрики, с места на место файлы скопировать?

Файлики и InnoSetup копировать умеет, и ничуть не хуже чем «большие коммерческие братья».

Ну вот как-то так незаметно и…

На самом деле конфигуратор при первом запуске программы, а не при установке — норм тема. Хороший тон. Инсталлятор должен быть максимально тупым — ну, максимум разложить файлики по системе, установить драйвера-системные компоненты и МОЖЕТ БЫТЬ — произвести ассоциацию файлов по расширению. Но от программы зависит


Просто конфигурацию после установки поменять может быть нужно во многих кейсах:


  1. изменение аппаратной конфы (выбор COM, LPT или прочих портов, одной единицы оборудования из нескольких и пр)
  2. игры — смена разрешения, типа движка (directx, opengl), настройка звука и пр
  3. ассоциация файлов (практически любые редакторы)
  4. ввод лицензии (а то! она может протухнуть и нужен способ ее ввести без переустановки)
    и много других
Не-не-не, то что тема — это я и сам активно применяю.

Нюанс в другом — если от инсталлятора нужен сугубо тупой копирователь файлов, то зачем платить больше?

Я ведь когда на NSIS/InnoSetup перешел, вдруг выяснил — что «конфигуратор» очень лихо лепится на встроенных скриптах.

То есть выглядит это так — инсталлятор показывает первых три скрина с «добро пожаловать», «выберите папку» и «согласитесь с лицензией» (сейчас бывает и четвертый, про GDPR), а дальше у него с конфигуратором — код одинаковый.

То есть конфигуратор — это такой инсталлятор без первых четырех шагов :-)

Оно конечно несколько эклетично, но то что я ТАК могу без С++ — это очень хорошо и пару раз меня выручало.

А еще у меня есть встроенный кодогенератор, то есть для тех же копирований по условию — мне не надо все комбинации выписывать (накликивать мышой), определил макрос — он развернул.

Например, это удобно для поддержки 32бит софта — для 32бит копируем файлы туда-то, для windows-on-windows — сюда-то, для 64бит — эвон как. Определил макрос — он размножил, лепота…

Как-то так получается, что опенсорц — проще, удобнее, предоставляет средства быстрого создания форм и логики (и это один язык, а не три построителя), и даже имеет встроенный отладчик (!) своих скриптов.

Вот я на них и перешел…
То есть конфигуратор — это такой инсталлятор без первых четырех шагов :-)

допустимый сценарий )
но чтобы все было по феншую — надо паковать в нативные для конкретной версии операционки пакеты (msi?) и снабжать программу возможностью конфигурацию через GPO (да хоть через ключи реестра или любой понятный механизм)

паковать в нативные

А чем EXE — не нативные? :-)

Микрософт конечно любит msi — но сама его использует далеко не всегда.

конфигурацию через GPO

… а также написанием мешка powershell-скриптов для тех случаев, которые не сводятся к «поменял пару битов в реестре» :-)

Возвращаясь к самому началу — так а где выигрыш от msi? Для меня как для автора нетленки — все снова руками, хех. Ничего не меняется.

Не, если бы я мог скажем

  • более-менее декларативно описывать конфигурирование своего мегасофта в виде наборов опций,
  • а оно мне строило офигенский гуй автоматом (примерно как в ядре линукса есть make [разное]config),
  • автоматом бы предлагало по результатам конфига — автосплиттинг модулей для веб-инсталла,
  • давало бы подключать зависимости от системных компонент в этом же конфигураторе (requires: asp.netcore >= 2.2)

то я бы уже побег в лабаз покупать такую крутотень.

Но пока что по факту — закат солнца вручную, при этом рантайм оных msi-аев чудовищно тормознутый. И это при том что постоянно крутится куча служб «для улучшения», начиная от BITS и заканчивая Windows Update.

Ну и зачем оно мне, как разработчику?

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

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


показать — с чем он может интегрироваться и чего не хватает.

Если зависимость жёсткая, статическая, как с vcredist, то решается мердж-модулями. Если зависимость мягкая (скажем, микросервис, интегрирующийся с другим микросервисом), то там нужно возиться с конфигами, и это задача конфигуратора.


если там есть веб часть — то настроить виртуалхост на местном IIS надо бы автоматом, а не прилагать инструкцию

Вот как раз это у нас было самым больным и хрупким местом, где мы натерпелись. И вынесли это в конфигуратор, который может создать сайт/апп в IIS, настроить ему конфиги, безопасность, коннекты к базе данных или к другим сервисам, прикрутить сертификаты, обновить сертификаты и т.п. Инсталлер максимум проверяет/включает роль "WebServer" и необходимые фичи OS.


Но тогда зачем все эти монстрики, с места на место файлы скопировать?

Конечно, если программа — это просто набор файлов, то инсталлер вырождается в деархиватор, и, возможно, он вообще не нужен, у вас по сути портабельная программа, можно в ZIP положить. Но чаще нужно регистрировать всякие COM/ActiveX компоненты и проч, причём транзакционно, откатывая неудачную инсталляцию и удаляя следы программы из системы. Это то, что инсталлер умеет делать хорошо.

Если лицензии раздаются с сервера, то у вас, кроме акитвации

Там кроме активации еще и проверки разные — а не отправить ли в кассу вместо инсталляции например.

Случаи они разные бывают :-)

Если зависимость жёсткая, статическая, как с vcredist, то решается мердж-модулями

Ну вот реальный пример — у меня в продукте есть модуль интеграции с разными версиями одного издательского пакета. Поддерживаются десяток версий за последние лет семь. Каждый плагин — требует свой отдельный vcredist.

То есть — задача инсталлятора найти все из десяти возможных, показать пользователю, он уберет галочки там где ему не надо, в зависимости от этого выбора — мне надо будет ставить оных редистов от трех до десяти штук (ибо редист под 32бита и редист под 64 это почему-то разное).

Помогает ли мне хоть как-то тот факт, что я напрягся и сделал пакеты-в-пакетах для каждого такого плагина, или я просто впустую время потратил?

Вот именно, тот факт, что оно красиво упаковано в msi, унутре которого неонка" еще два десятка msi, рядом с которыми два раза по пять — редисты, мне не помогает никак.

Ну и зачем мне эти пакеты-в-пакетах :-)

Ну или есть вариант — плюнуть на редисты-как-пакеты, и сложить горкой нужные DLL. Oh wait — но зачем мне тогда msi?

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

К слову, ненавистный Apple PackageMaker (давно уже забытый) — эту задачу умеет куда лучше. Скриптинг на Javascript (!), условия копирования — выбор функции на JS/AppleScript, пре-постпроцессинг на группу файлов при копировании… просто, относительно логично, все группы файлов — в XML, CLI tool для сборки, гуя можно только для отладки запускать. И при старте не тупит.

регистрировать всякие COM/ActiveX компоненты

Самое веселье — это когда в процессе установки надо их дергать, регистрировать — дело нехитрое. Я помню лет 20 назад в инсталшилде плюнул, зарегал на чистой машине все что надо, слил ветки реестра, и в итоге их просто импортировал. Вот тут с транзакциями стало просто отлично все :-)

настроить виртуалхост на местном IIS

… это как раз задача «позвать готовые com».

Но вместо «джун за день накидал пяток кнопок к готовому апи», вам как и мне — пришлось закатывать солнце вручную (я в итоге написал длиннющий скриптище, вы вообще напряглись и написали еще одно гуевое приложение, потратив на это явно не два вечера).

Осталось только понять — а нормального способа, без «полноценно в гамаке на лыжах» — нету разве? Задача-то типовая.
а не отправить ли в кассу вместо инсталляции например.

Не дав попробовать продукт? В кассу можно и после инсталляции отправить :)


задача инсталлятора найти все из десяти возможных

А после инсталляции 3-х из 10, что будет в "Apps and Features"? Три пакета или один? А если позже нужно удалить один из трёх — и все его зависимости, если они не используются любой другой программой (в т.ч. сторонней), — то как вы будете разруливать?


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

Пару форм накидать в любом фреймворке и сгенерить набор конфигурационных скриптов на основе собранных данных — это элементарно. Типовая задача.

В кассу можно и после инсталляции отправить :)

Чего тут пробовать — если это попытка 51й инсталляции для корпоративной лицензии на 50 мест :-)

А после инсталляции 3-х из 10, что будет в «Apps and Features»?

Кстати отдельно бесит эта манера — захламлять список установленных программ. Продукт — одна штука, нафига там занимать двадцать позиций? Вот офис же может нормально указать себя в одном экземпляре :-)

и все его зависимости — как вы будете разруливать?

А вот это то самое, чего хотелось бы увидеть от msi. И нет, вариант «не могу снести потому что оно нннада» — это плохой вариант. А можно сразу весь граф зависимостей увидеть и его удалить?

Пару форм накидать и сгенерить набор конфигурационных скриптов — это типовая задача.

И-мен-но.

Тем смешнее, что специально для этого предназначенный инструмент — так почему-то не умеет, приходится брать в зубы какой-нибудь WPF и колхозить «конфигуратор» :-)

Я вот после надцатой попытки плюнул, и перешел на тот инструмент, где такое не вызывает трудностей. Заодно отказался от msi, в котором только старт занимает больше времени, чем вся установка InnoSetup-ом, хех…

Но опять же, я никоим образом не призываю делать как я. Просто вот такие у меня странные вкусы, и не более того…
А вот это то самое, чего хотелось бы увидеть от msi.

MSI умеет считать ссылки на разделяемые компоненты.


приходится брать в зубы какой-нибудь WPF и колхозить «конфигуратор» :-)

Если нужен продвинутый гуй и продвинутые сценарии, то разумно взять более гибкий иструмент. Но разделение на инсталлер и конфигуратор — это не от бедности инсталлера, а, как я уже сказал, из-за разных жизненных циклов. Конфигуратор можно запускать много раз, сохранять конфигурации в файлах, восстанавливать конфигурации из файлов, размножать и переносить на другие машины и т.п. Инсталлеры максимум файл ответов могут скушать, и создавать его придётся руками.

MSI умеет считать ссылки на разделяемые компоненты.

А контролпанель не умеет их показывать :-) Ни компоненты как компоненты, ни зависимости.

И вот «компоненты» внезапно стали двух разных видов, одни управляются как общие компоненты, а вторые почему-то нет :-)

Это точно достоинство msi, что они не могут поместить «компоненты» на вкладку компонентов? :-)

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

И почему же так не делают офис с вижуалстудией, вот вопрос :-) Хочешь «переконфигурить» — запускаешь инсталлятор, хех.

И да, что такого продвинутого в паре десятков строк скрипта и кастомной формочке, что «взять более гибкий инструмент»? Почему-то у опенсорцных конкурентов с подобными задачами все отлично, регулярно пользуюсь, и WPF не нужен.

И да, «разный жизненный цикл» порадовал. Вот бы Windows до сих пор так, как в 1992 году, кое-как поставилось, показало раритетный 640*480 16 цветов, и конфигуряйте себе… а и правда, вдруг потом какая клавиатура поменяется, или там видеокарту сменят, это же разный жизненный цикл :-)

Может все-таки пулемет на крыше консерватории — не для того чтобы «консервы не сперли»? :-)
Да лааадно?!
Сайтов, предлагающих скачать нужную dll в интернете, думаю, столько же, сколько сайтов, предлагающих скачать драйвера. В этих всяких С++ redistributable и куче версий дотнета ещё худо-бедно можно быстро разобраться, что нужно, а когда вдруг случайно не подходит какая-то левая библиотека, валяющаяся где-то в системном каталоге и не ясно, откуда там появившаяся что делать? Как узнать, что её туда поставило? Когда? Нужна ли эта версия или новая обратно совместима? В линуксе это всё хотя бы можно узнать. Для этого есть инструменты. А в винде приходится просто тыкаться наугад пока случайно не получится.

И после этого "Linux это не система, а ворох разнородных поделок, смотанных изолентой". То ли дело windows — сам разберись, какой dll не хватает, сам скачай её с варезника, сам подкинь. Просто, понятно, логично

Если пользоваться инсталляторами от самих разработчиков ПО, как правило, всё что нужно доустанавливается автоматически. Качать что угодно с варезников — это вообще, как правило, не лучшая идея.

Если вы будете брать случайные (не из репозиториев) исполняемые файлы под Linux, и пытаться их запустить, у вас точно так же скорее всего ничего не получится. Я бы даже сказал, с гораздо большей вероятностью ничего не получится, так как под Windows всё же многие программы зависят только от стандартных системных библиотек, которые очень хорошо совместимы между разными версиями ОС. В Linux же принято собирать программы под конкретные версии ОС, и просто так переносить бинарники между разными версиями Linux — это почти всегда плохая идея.

Как пример. Вот захотелось нам из любви к искусству потестить самую первую версию Firefox из далёкого 2002 года, когда он ещё назывался Phoenix. Сборки под Windows и Linux от Mozilla всё ещё лежат там же где и 18 лет назад. Вот прямо сейчас я потратил 30 секунд на самой распоследней Windows 10 чтобы скачать и запустить этот браузер. Ровно так же оно когда-то работало и на XP (только скачивание и установка, конечно, занимали больше времени). Сколько времени понадобится, чтобы успешно запустить эту же программу на случайно взятом Linux?
как правило, всё что нужно доустанавливается автоматически

к сожалению, не всегда. И не всегда корректно

Отрицать не буду, иногда случается. Мир не идеален. Но я вообще больше предпочитаю использовать портабельный софт, который не требует установки и в зависимостях у которого только стандартные системные библиотеки.
Windows чаще поругается и даст ошибку — которую можно загуглить, а linux чаще молча падает. Вспоминаю совсем недавно был случай, на чистый последний debian установил phpstorm, в котором в упор не работало подключение к гиту, проверили и исправили все что можно было, а оно все равно не работает. Оказалось пакета какого то не хватает(уже не помню какого), который, во время установки еще тысячу зависимостей дотянул.
Э-э-э а логи смотреть мы не умеем?! :-)
Блин вот точно такие же слова я читаю на протяжении 10 лет. :-)
Все умеем, собственно по этому проблему нашли довольно быстро, но хочется верить всегда в лучшее, по этому сперва полезли проверять более очевидные вещи. И ведь таких проблем с софтом было довольно много, в разы больше чем с win. И да, люди из мира айти их решают как правило без проблем, а обычные пользователи сразу начинают плакать…
И вообще, имхо гуи в линуксе это зло, по этому я стараюсь работать из терминала а ради окошек можно использовать и винду.

p.s. И для самых умных, в /var/log и ~/ ничего по этой ошибке почему то небыло.
Юзер? Который полез смотреть логи? Серьезно?
Юзер? Который гугулит коды ошибки синего экрана? Серьёзно?! :-)

Э-э-э как бы пользователь инструментов для разработчиков, не совсем обычный пользователь.
А зачем сейчас гуглить? Там теперь QR код есть.
а linux чаще молча падает

что, прямо в Kernel panic?


phpstorm

А-а. Был как-то звонок у знакомого:
— Приезжай срочно, помоги, у меня крыша упала! вслипывания в трубку
Приехал. Оказалось намок и отвалился кусок штукатурки на потолке, с пол-ладони.

в linux описаны возникшие проблемы от и до, /var/log в помощь. А вот где мне в вин10 искать описание проблеме? В частности, BSOD с указанием проблемы, но без указания ошибки. И в minidump запись нет.
Если продукты от JetBrains, то логи придется искать в папке "~". :-)
Знаете, я как разработчик с 25 летним стажем под Windows, просто не понимаю, в какой момент может понадобиться лезть в логи при обычной работе (не анализа разработки) на десктопе.
Максимум, что делалось — это анализ работы приложения в RegMonEx. Я стопроцентно уверен, что это средство на голову выше по удобству и информативности любого лога в linux.
для точного понимания моей мысли опишу ситуацию, произошедшую со мной в январе этого года. У меня 2 системы на 2 ssd — gentoo и windows 10. Вознамерился я, значит, свою генту переселить на 1ТБ nvme. Как задумал, так и сделал. Так как я еще в игру очень люблю поиграть (division, division 2) загружаюсь в виндовс и вот тебе на — BSOD после получаса игры. И что только я не делал: обновления обновлял, настройки системы на заводские сбрасывал, в инете информацию искал (а логов-то нет, bsod без указания кода ошибки). Пришлось сносить полностью систему, скачивать заново образ и устанавливать. И только после этого смог нормально попользоваться. win10 лицензионная. А вою генту использую с 2009 года. Как поставил знакомый, так и пользуюсь ею до сих пор, 3 поколения железа сменил, а ей хоть бы хны
UFO just landed and posted this here

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

Еще добавьте, что Виндовс 10 — это не монолит. У нее уже было черт-знает сколько версий (смотрите по билдам). И в каждом — свои уникальные баги

В подавляющем большинстве, это никак не влияет на работоспособность.
UFO just landed and posted this here
Division 1 попробуйте под Proton с Mesa ACO. Я ставил под Proton 4.11 с отключенным UPlay Overlay — пашет, вчера как раз бился с боссом-вертолётом :)
Я в D1 играю иногда под proton, вернее играл. Работает сносно, но через полчаса вылетает, даже с выключенным оверлеем. Сейчас пока во второй.
Нет, но приму к сведению. Пока самообразованием занимаюсь, а игры отложил до лучших времен )
А проверку целостности образа Windows через DISM делали?

BSOD без указания кода ошибки — это жесть, пахнет серьёзным повреждением системных файлов — но восстановление через DISM даже в этом случае, возможно, помогло бы обойтись без переустановки.

На сколько помню нет, не делал. Я сначала грешил на оперативную память. После проверки, проверил систему встроенными методами (как написано на ресурсах microsoft). Ну и после этих мытарств снёс систему. Наверное от старости начала глючит. Я ее использовал с первого выпуска (2015). Сначала как insider preview, потом купил лицензию и отказался от тестирования

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

а я как админ знаю когда. Только вот в Windows с логированием полный бардак. Поглядите как-нибудь на досуге в EventViewer, это помимо того, что половина программ не используют его, а серят логи куда попало в файлы

Да запросто. У меня в windows 10 в подключении к удалённому рабочему столу сломалось динамическое изменение разрешения (когда тянешь за край окна mstsc, а оно не масштаб изображения меняет, а виртуальное разрешение). При этом куда искать и что смотреть, чтобы починить — не понятно. Равно как и в каких местах искать настройки кроме одного ключа реестра и одного файла в документах пользователя.
Копайте проблему на удаленной машине. Проблема может быть в драйвере видеоадаптера удаленной машины, который конфликтует со штатным видео драйвером удаленного рабочего стола (на удаленной же машине).
Отбой тревоги. Это у меня в памяти сломалось, какой же из майкрософтовских клиентов это умел, а какой — нет. mstsc как раз не умеет. Нужен клиент из microsoft store.

Винда уже пару лет не может поставить апдейты. Как выяснять, почему, и как это исправить?

7ка? Там есть баг серьезный, что при первоначальной установке — там при обновлении выжирается ВСЯ оперативная память, сколько бы ее не было — хоть 32ГиБ. И система жует апдейты двое суток кряду, вне зависимости от накопителя системного. Как бы точно — это не порядок. А потом прикол — она апдейты насосет, потом ставит. Бежит счетчик. Типа 1...2...10...120 апдейтов из 240. И… Фигак. Ребут. Обновление не может быть установлено. Откат. Потом установка. И так жует долго. Решение? Ставим обновы через simplix update pack — он их устанавливает маленькими пачками по 60-80 обнов за раз и все в порядке. Чертов M$ не мог изначально продумать процедуру. Хотя казалось бы — все по воздуху, все для людей. Ан нет — не работает. С линуксом, кстати, НИКОГДА таких проблем не было

8.1. Чё-то на флеш ругается, я даже загуглил номер ошибки, но ничего адекватного нагуглить не смог.

Решается установкой KB3102810. Хоть и образы у меня все с интегрированными обновлениями, до сих пор храню это обновление на Google Drive
С линуксом, кстати, НИКОГДА таких проблем не было

уж таки никогда, у меня был случай когда посреди обновления сервак ребутнулся и помер на том что некоторые либы обновились, а некоторые нет и из-за несовместимости версий всё встало раком
И еще случай, в процессе апдейта криво конвертнулся конфиг иксов и все запустилось в консоль… в лучших традициях MS только у линукса

также линукса тут все просто:
1) нет массовости и единообразия систем, чтобы «все заметили косяк» и по этойже причине ничего «у всех сразу после выхода апдейта» не падает
2) линукс — им рулят обычно или профессионалы или гики, который «ой, ща пофиксю» и даже не замечают что чтото сломалось

Ну, тут нюансы. Во-первых, не используйте убунту. Про транзакционные обновления в комментах к настоящей статье уже писали. Второе — если ты покупаешь операционную систему. Будь то за 200 бакински или за 1000 — ты ожидаешь, что она будет работать "всегда и везде". Вероятно, это ложное ожидание — такое же, как странно ожидать, например, всепроходимости от жигуленка, но ТЫ ЖЕ ЗАПЛАТИЛ!!!!1111
Третье — линукс никому и ничего не гарантирует — потому что бесплатен. Ты свободен в выборе пользоваться им или нет (это не относится к коммерческим дистрибам — но там ты платишь за саппорт, т.е. за решение своих проблем чужими руками)

Вероятно, это ложное ожидание — такое же, как странно ожидать, например, всепроходимости от жигуленка, но ТЫ ЖЕ ЗАПЛАТИЛ!!!!1111
Третье — линукс никому и ничего не гарантирует


а какже дискуссия что «линукс лучше винды!, поставил бабушке — она не заметила разницы!»?
тут каждый второй коммент в этом ключе
а как проблемы так «ничего не гарантирует» «поменяйте дистриб»

А в винде как будто кто-то что-то гарантирует )
Ну, "у вас установлен софт от третьих лиц" (либо вообще пиратский), "выключить и включить пробовали?", "попробуйте переустановить заново" (это действие, конечно, бабушке доступно изначально и ей хватит опыта его сделать правильно ) Ну, лулзы же сплошные

А в винде как будто кто-то что-то гарантирует )

никто не гарантирует, но объективно виндой, человеку совершенно не разбирающемуся в IT — пользоваться виндой легче. вероятность того что она загрузится в консоль — сильно ниже, она хотябы попытается самовосстановится, потому что рассчитана на то что ей будут пользоваться не профессионалы
но объективно виндой, человеку совершенно не разбирающемуся в IT — пользоваться виндой легче.

Все верно, только ошибка в одном слове. Замените «объективно» на «субъективно». И все станет идеально.
Точно так же, все оценки линукса, они чисто субъективные.
И вишенка: объективных оценок не бывает. Оценивает всегда субъект для иного субъекта или для себя. То, что
в обиходе называется «объективная оценка» — это набор субъективных оценок, сгруппированных по каким-то важным для субъекта параметрам.
вероятность того что она загрузится в консоль

… равна нулю, ибо винда если умирает, то полностью. А система восстановления в винде выглядит, как насмешка над админом
А система восстановления в винде выглядит, как насмешка над админом

Это вы как админ со стажем говорите по своему опыту, или по отзывам знакомых?

Эта система восстановления, отлично откатывает системные драйвера которые в синий экран выпадают
У меня помнится так заапдейтился (запланировано) на одном серваке драйвер контроллера HP SmartArray с выпаданием в синий экран и автовозвратом через две перезагрузки (HP выпустили фикс через два дня)
в случае с линухом пришлось или корячится с восстановлением бекапа или с разбирательсвами «а чо произошлооо?»
в случае с линухом пришлось или корячится с восстановлением бекапа или с разбирательсвами «а чо произошлооо?»

Btrfs или zfs позволяют в случае неудачи откатиться на предыдущий снепшот. Причем, в случае btrfs на OpenSuSe процедура сводится к выбору нужного снепшота через граб.
Винда так сможет, судя по тому, как быстро они запилили загрузку, снепшоты и ACL в ReFS, практически никогда.


Да и полная раскатка тарболла в случае более традиционных ФС займет сопоставимое, если не меньшее, время по сравнению с задумчивостью TrustedInstaler-related things.

админ со стажем

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

Мне казалось, что на Хабре принято либо описывать свой опыт, либо «мне знакомый рассказал, что ...»
Эта система восстановления, отлично откатывает системные драйвера которые в синий экран выпадают

А вот в случае неудачного обновления всё становится намного веселее. Вы когда-нибудь пробовали удалить обновление через среду восстановления? Как ощущения? Учтите, не безопасный режим, а среду восстановления.
не используйте убунту

Ну вот, кстати, это единственная на сегодня система, где без танцев с бубном можно поднять свой root-on-zfs, случись чего.
Arch и деривативы требуют собирать ручками iso и следить за его актуальностью. В большинстве других дистров надо собирать модуль прямо на live системе. После смерти antegros только в ubuntu и manjaro остались прекомпилированные модули, и только в ubuntu можно загрузиться и подмонтировать пул, причем если пул жив, то он гарантированно будет поддерживаемого on-disk формата.

UFO just landed and posted this here
Взять всусофлайн и накатить?

Я даже не знаю, что это такое, а я ведь не домохозяйка.


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

ХЗ, я не дебианщик. Вот если б у вас с гентой проблемы были...

UFO just landed and posted this here
при гуглинге вариантов скачать и установить все обновления скопом в какой-то момент предлагается

Зачем мне вообще это гуглить? У меня просто винда при каждом выключении пытается поставить какие-то обновления, но у неё это не получается.

Типичная проблема линукса, что у тебя всё будет хорошо на другом дистрибутиве. Ну или с ним помогут.

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

UFO just landed and posted this here

Хорошо. Сейчас в ЛС сброшу координаты.

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

так вы бы текст привели

UFO just landed and posted this here

надо больше логов богу логов )
наверняка перед падением apt-get что-то написал.

Обновление пакетов не прерывали?
dpkg --configure -a

пробовали?
Дядюшка Гугл подсказал, что код 100 в apt выкидывается при повреждённом кэше apt
It turns out this means that for some reason the cached software sources lists have been corrupted

Как решение, рекомендуется очистка этих самых файлов
rm -rf /var/lib/apt/lists/*
apt-get update
Категорически не согласен. Если у Windows что-то идёт не так, то у меня есть только номер ошибки и надежда, что эта ошибка знакома гуглу. Когда что-то идёт не так в Линуксе, то у меня куча информации, по которой я могу почти полностью восстановить картину произошедшего, причём даже не всегда нужен поисковик.

Довести Линукс до состояния kernel panic — это ещё надо постараться. Я с таким сталкивался только когда x86 сборку Андроида на ноутбуке запустил и попробовал включать автонастройку яркости экрана. В то время как знакомый жалуется на BSODы в процессе отладки OpenCV
Если у Windows что-то идёт не так, то у меня есть только номер ошибки и надежда, что эта ошибка знакома гуглу.


Если винда лицензионная, то есть также саппорт. И вам не обязательно разбираться в чем-либо, чтобы ставить обновления. А в Линукс, даже с гуглом, проблеме не решается в пару кликов.
Если винда лицензионная, то есть также саппорт.

Если линукс корпоративный, (SLED, RHEL, Oracle, name_them) то у него тоже есть саппорт.


не обязательно разбираться в чем-либо, чтобы ставить обновления

Под линуксом, внезапно, тоже


А в Линукс, даже с гуглом, проблеме не решается в пару кликов

Так до проблем надо еще дожить. И еще надо убедить саппорт, что это реально их проблема. Помните массовый отвал вебкамер, например? Или из недавнего — танцы с бубнами вокруг обоев?


Хотя, надо признать, решение двух проблем они таки смогли автоматизировать нормально: сеть и очередь печати.

Даю на водку:
Коробочная лицензионная семёрка. В один прекрасный день решила обновиться до десятки (почему — тайна, я всегда слал лесом). В процессе обновления что-то пошло не так, откатилась обратно. Теперь система находится в постоянном «перезагрузите для завершения обновления», обновления не ищет, а чтобы поставить их руками — надо выполнить кучу танцев с бубном.
Звоним в саппорт, тратим кучу времени (включая уже всякие удаленные помощники и доступ к системе, чего на базовой техподдержке у мс обычно очень сложно добиться). Спустя кучу времени, уже на н-цатой линии техподдержки получаем решение проблемы: снесите винду, отформатируйте системный диск и поставьте заново.
Спасибо, я понял что лоханулся, когда купил лицензионную коробочную версию, надо было скачать и крякнуть как обычно, идём пробовать первые десять страниц гугла про проблему — ничего не помогает (половина при этом дико напоминает то, что делал саппорт), пара советов вообще сносят список установленных обновлений. Единственный плюс — теперь руками обновления можно поставить без бубна.
И наоборот, RHEL(с лицензией) лет восемь назад, на халтуре какая-то грабля с связкой апач+самба(ад)+лдап+мускль, пинаем техподдержку, два входящих мыла — в первом спросили кучу конфигов, во втором скриптик и бинарь, которые решили проблему.
Спасибо, я понял что лоханулся, когда купил лицензионную коробочную версию

Лицензию покупают не для того, чтобы лучше работало, а чтобы легально работало =)

И наоборот, RHEL(с лицензией) лет восемь назад, на халтуре какая-то грабля с связкой апач+самба(ад)+лдап+мускль, пинаем техподдержку, два входящих мыла — в первом спросили кучу конфигов, во втором скриптик и бинарь, которые решили проблему.

Ну это же юзер-кейс для домашней операционной системы.

Есть домашний коробочный корпоративный линукс, где разбирают пользовательские кейсы? И кто это делает?
Лицензию покупают не для того, чтобы лучше работало, а чтобы легально работало =)

мако… филы смеются в лицо — т.к. им не нужно покупать лучшую в мире (*) операционную систему


(*) по мнению пользователей систем фирмы Apple

ну это лишнее
1) раньше они покупали как миленькие и ещё нахваливали эппл
2) эппл тупо включила ОС в стоимость своей железки

Нет, не лишнее
1) кого это волнует
2) стоимость вендолицензии встроена в стоимость ноутбука или любого брендового компа. Несомненно — часто можно найти модель без винды. Но не всегда

2) ну как встроена, те же модели с Ubuntu, например, могут стоить и дороже чем с Windows Home в рознице.

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

Купив лицензию я расчитывал на более-менее квалифицированную поддержку. На лицензионность в рамках дяди милиционера из управления «К» мне было вообще пофигу.

Red Hat Enterprise Linux for Workstations — думаю тут вам разберут кейсы, возможно надо будет купить какой-нибудь уровень техподдержки, т.к. сейчас не в курсе политики красношляпых.
Думаю, как только Red Hat Enterprise Linux for Workstations купят хотя бы 40% текущих домохозяек-владелиц windows, и количество обращений можно будет хотя бы сравнить, уровень техподдержки RHEL for Workstation сразу скатится туда же, где и МС.
А точнее, гораздо ниже, так как у МС в этом все-таки есть огромный опыт, и множество детских болезней уже пролечено.
Думаю, что RH просто вменяемо расширит штат техподдержки. А у МС да, опыт есть, например сливание техподдержки на всяких Кумар Бумбухпакетситхов, которые по английски говорят с трудом и я не удивлюсь, если эта самая ТП сидит в своём Бангалоре.
Вы зря так про индийцев. Английский язык для них практически родной, все на нём хорошо говорят. Акцент это уже второе дело.

Тут лучше Китайцев в пример приводите… вот общаться с их тех саппортом это ещё то развлечение.
Индия большая, далеко не во всех областях английский практически родной. Точнее таких областей гораздо меньше. И не путайте просветленных индусов-разработчиков и тех, кого в большинстве нанимают в саппорт при расширении штата.
Если нужно много сотрудников, то качество заметно падает вне зависимости от национальности.
Я видел историю большого количества компаний, которые умирали от расширения. Различные амазоны и гуглы это редкие исключения.
Учитывая, что RedHat был продан в IBM, я сомневаюсь в том, насколько «просто вменяемо» они расширят штат поддержки. IBM всегда славился своей громоздкостью и неповоротливостью
> Если винда лицензионная, то есть также саппорт. И вам не обязательно разбираться в чем-либо, чтобы ставить обновления. А в Линукс, даже с гуглом, проблеме не решается в пару кликов.

Получаю BSOD-ы на Lenovo Yoga C630 WOS при попытке декодирования видео браузером через DXVA2 в несколько потоков. Ответ саппорта Lenovo — у вас видеодрайвер установлен с Windows Update, поэтому обращайтесь в Microsoft. Ответ саппорта Microsoft — мы не пишем драйвера, обращайтесь в Lenovo. Нахера нужна такая поддержка?

Давайте, рассказывайте как это решать.
видеодрайвер установлен с Windows Update

Никогда не устанавливаю драйвера с WU. Только с офф. сайта производителя, ибо в WU вечно какие-то огрызки
Хорошо, что вы устанавливаете драйвера с сайтов производителя (неприменимо к моему ноутбуку, если вы не заметили) но к порядку работы служб поддержки это отношения не имеет. Предоставленные ими ответы указывают на то, что Microsoft и вендоры целенаправленно не договариваются о зонах ответственности — цель облегчить жизнь клиенту не поставлена менеджментом этих компаний — поэтому и нет решения. На фоне этой ситуации Linux де-факто находится в более выгодном положении, потому что квалифицированный пользователь имеет возможность напрямую взаимодействовать с инженерами, разрабатывающими драйвер — писать им багрепорты продуктивнее, чем на форумы вендоров, где на проблему обращают внимание только при условии, если в её обсуждении набралось от десятка страниц и больше, да и то далеко не всегда.
неприменимо к моему ноутбуку

К lenovo у меня уже давно особо тёплые чувства из-за их кривых BIOS'ов и невозможности загрузить драйвера с сайта. И да, я уже посмотрел характеристики данного устройства. А кем подписан драйвер, и кто записан в графе «Поставщик драйвера»? Полагаю, этим можно немного надавить на одну из сторон.
Microsoft и вендоры целенаправленно не договариваются о зонах ответственности — цель облегчить жизнь клиенту не поставлена менеджментом этих компаний

Microsoft немного наплевать на домашних пользователей. Что немного радует — к пиратам у них отношение то же.
> К lenovo у меня уже давно особо тёплые чувства из-за их кривых BIOS'ов и невозможности загрузить драйвера с сайта.

Это всё, конечно, прекрасно, но у меня плюс-минус то же самое за годы было с Dell, Acer, HP, ASUS, и другими. С ними со всеми бесполезно разговаривать. Со всеми, включая Microsoft.

История выше — она просто самая свежая, и она показывает, что за годы ничего не так и не изменилось — в Linux имеем прямой доступ к инженеру, при наличии навыков можем сделать bisect или даже поправить сами, а с Windows нельзя даже «багрепорт зарегистрировать». Для меня, как пользователя Linux, такая ситуация в голове не укладывается — как люди могут жрать это говно?

> А кем подписан драйвер, и кто записан в графе «Поставщик драйвера»? Полагаю, этим можно немного надавить на одну из сторон.

Не помню честно говоря, и сейчас я даже не загружаю на этом ноутбуке Windows, так как в Windows Update выложено кривое обновление BIOS, ломающее загрузку с флешек объёмом больше 32ГБ, и я не представляю, что мне делать, чтобы гарантированно запретить его установку, потому что откатиться потом не выйдет.

Если драйвер подписан к примеру Qualcomm Inc., то что дальше?
в Windows Update выложено кривое обновление BIOS, ломающее загрузку с флешек объёмом больше 32ГБ, и я не представляю, что мне делать, чтобы гарантированно запретить его установку

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

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
;Отключить автоустановку драйверов с WU
"ExcludeWUDriversInQualityUpdate"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
;Отключить автоматические обновления
"NoAutoUpdate"=dword:00000001


Qualcomm Inc.

С козырей зашли)

у меня плюс-минус то же самое за годы было с Dell, Acer, HP, ASUS, и другими

Больше всех отличились Lenovo и Acer. У Asus мне не нравится громоздкий UI и невалидные SLIC. С HP и Dell таких проблем и близко пока не имел, разве что «белые списки» оборудования есть, но это проблема многих производителей.
> Не знаю, работает ли это на мобильных версиях

Я вот тоже не уверен, что на ARM-версии сработает, а проверять методом тыка не хочется — попытка-то всего одна.

> С козырей зашли)

Да это не важно. Повторюсь, что суть в том, что пользователи программного продукта намеренно, целенаправленно посланы нахер. Как они после этого ещё могут защищать тех, кто их послал — уму непостижимо.
Но лично я на Вашем месте всё таки запустил бы Windows (если она не удалена), применил вышеуказанный твик, отключил установку драйверов в интерфейсе и полностью отключил WU (со всеми связанными задачами в планировщике). Даже если винду запускать не планируете — в будущем убережет от ошибки.

В этой ситуации Мак находится в выигрышной ситуации… далее по тексту

Извините, я не разбираюсь в премиальном сегменте — там в каких ноутбуках за последние годы клавиатура больше не ломается через полгода, как у Irbis/Prestigio/4Good/Chuwi/Teclast за сотку евро? Про LTE даже не спрашиваю, это видимо слишком премиально.

Это Вы так пытаетесь потроллить насчет клавиатуры-бабочки? И FlexGate? Ну, тут есть два аспекта — проблемы действительно есть, но все не так фатально, как раздувают журналисты. Когда деллы и леново ломаются — нет такого негатива. А между прочим, выходят из строя последние ничуть не меньше — качество упало у всех.


И моя реплика была чисто про софтварную (и драйверную) части.

> И моя реплика была чисто про софтварную (и драйверную) части.

Так а толку-то, если железа нормального с этим софтом нет?

> Когда деллы и леново ломаются — нет такого негатива.

Вот честно — мне наплевать. От того, что о проблемах с клавиатурами Макбуков все слышали, а о проблемах с клавиатурами Dell 7285 слышали полтора человека (в Интернете даже не упоминается, можете не искать) ни та, ни другая проблема лично для меня не перестают быть менее значимыми. И если конкретно в данный момент клавиатуры Apple — говно, то я не вижу причин не докапываться до этого, потому что они реально по надёжности находятся на уровне китайского ширпотреба.

Извините, но Вы типичный маконенавистник-демагог. Для начала преувеличиваете проблемы, не замечая проблемы у других. И бросаясь необоснованными фразами вроде "если железа нормального с этим софтом нет". Критерий нормальности железа у всех свой. Поэтому, к сожалению, нам не о чем спорить.

Я вот когда-то думал о покупкке чего-нибудь из маковской линейки именно из-за качества железа (в том числе по личным впечатлениям, типа корпус нигде не люфтит и т. п.) и отзывам лично знакомых макофилов, предполагая поставить на неё ещё две оси, используя Ubuntu в качестве основной. Но эти же знакомые меня отговорили нескольк лет назад: "Только ради железа уже давно смысла нет, а для убунты его брать — проблем будет больше чем с каким-нибудь ширпотребом. Бери что-нить брендованное с виндой про и ставь туда убунту"

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

Ну вот когда-то, лет 10 назад ещё наверное, мак имело смысл покупать только ради железа, если верить "интернетам" и воспоминаниям: хороший баланс, отличная сборка, лучший экран, хороший дизайн и т. п. Сейчас же, покупать его имеет смысл прежде всего ради МакОси, вроде как.

в первую очередь — да. Но с другой стороны — все мощные современные ноутбуки стоят именно в том же ценовом диапазоне.
Например, ThinkPad X1 Extreme = 250К, DELL G5 5590 = 96K. Можно еще натыкать примеров. И сравнить эксплуатационные и потребильские х-ки.
Средняя цена на мак — ну, где-то в районе 170K. Есть отдельные уникальные экземпляры за полляма, но это точно не для простых смертных ) Т.е. сказать, что сейчас эппл техника сильно переоценена — нельзя. Да, она подороже деллов-леново-хапе, но тут думать надо — что конкретно важнее.


Сейчас же, покупать его имеет смысл прежде всего ради МакОси, вроде как.

и плюшек типа anti theft, который не работает, синхро с айклауд (если нужен), лучшей в мире ОС (с) (*), синхро с ябблофоном (вот это реально сильная сторона, но только если вы не фанат андроида).


(*) это не мое мнение, если что — мне пофиг.

Да уже не сильно переоценена, можно и подороже хорошее железо найти с плюс-минус такими же ТХ. И, возможно, даже более качественное.


Так все эти плюшки — плюшки именно МакОси, а не железа вроде. Поставь какой-нить хакинтош и вроде всё это получишь.

> Критерий нормальности железа у всех свой. Поэтому, к сожалению, нам не о чем спорить.

Производить на протяжении пяти лет ноутбуки, у которых через полгода использования накрывается клавиатура — ненормально вообще с любой точки зрения. Разница только в том, что покупатели дешёвого китайского говна не ищут оправданий производителю, а покупатели дорогого китайского говна пишут «Критерий нормальности железа у всех свой». Если бы у всех производителей ноутбуков, кроме Apple, регулярно и массово ломались клавиатуры — то для поклонников продукции данного бренда это был бы очень серьёзные аргумент в пользу Apple. Но если в премиальном сегменте это именно регулярно и массово происходит только и исключительно с Apple — то на это стыдливо закрывают глаза. А схрена ли на это нужно закрывать глаза? Это косяк, причём крайне серьёзный.
Не знаю, как там с корпоративными версиями Windows, а для домашних пользователей он на крайне низком уровне. В худшем случае может показаться, что ты не то что с индусской техподдержкой, а с ботами общаешься (может, так оно и есть).
Как правило, наоборот. Виндовые ошибки не отличаются информативностью для тех, кто готов разбираться. Какое-нибудь «Не удалось завершить операцию» и всё — понимай, как знаешь и крутись как хочешь. В линуксе же принято более подробно объяснять, в чём дело, и вести логи. Причём обе ОС предоставляют готовую, универсальную и мощную инфраструктуру системного логирования, но в виндах ошибки в неё пишут почему-то только программы от самого майкрософта. Остальные авторы считают пользователей телепатами.
Крайне редко случаятся такая оказия. Как правило, товарищь гугл быстро подсказывает что и где брать.
Пока не столкнулись с SxS и манифестастами — считай, всё хорошо у вас и горя не знали.
Стандартная графическая библиотека есть — называется libX11. В будущем, возможно, перейдём на wayland, но слой совместимости с X11 будет сохраняться, пока есть потребность.

Все тулкиты типа Qt есть и в винде.Мало того, Qt используется и в тех проектах, у которых нет Linux-версии.
Стандартная графическая библиотека есть — называется libX11


О_о

Кстати, иксы — одна из огромных проблем десктопного Линукса. Чем быстрее их закопают — тем будет лучше.

А в чем собственно заключается огромность? Ну и после голословной критики хотелось бы услышать конструктивные вещи.

UFO just landed and posted this here

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

UFO just landed and posted this here
Gnome 3 работает без особых проблем.

Так я ж и написал: «с плазмой». А gnome 3 мне субъективно не нравится.

ммм, ссылки на статьи почти десятилетней давности подъехали

UFO just landed and posted this here
А в чем собственно заключается огромность?

Не буду перепечатывать простыни аргументов, лежащие в сети уже хз сколько лет. Из самого актуального: спросите у разработчиков Firefox, почему они сделали аппаратное декодирование видео для Wayland и не смогли для Xorg за столько лет.
UFO just landed and posted this here
у разработчиков Firefox, почему они сделали аппаратное декодирование видео для Wayland и не смогли

Да, они много чего не смогли. Я помню, как они "не смогли" в ALSA и выпилили её. С аргументом — это физически невозможно. Потом, вроде бы, назад вернули, но с тех пор вот эти их заявления стоит пропускать мимо ушей.

Не выпилили, а отказались поддерживать. Всё это время в Gentoo, например, свежие версии Фокса выходили с поддержкой ALSA.

У меня эта поддержка сводилась к ewarn «у вас флага pulseaudio нет, звук играть не будет».

Странно, у меня работало. Одна какая-то версия звук не воспроизводила, но недолго — сменилась третья цифра и все заработало.
Проблема есть, но она в основном для разработчиков драйверов видеокарт, а также некоторых приложений, требующих хитрую работу с графикой (например, для аппаратного ускорения видео и webgl в браузерах). Если вы пишете что попроще, даже 3D-игры, то серьёзных проблем быть не должно.

Я не против замены X11 на wayland. Но для начала надо решить в нём проблемы. Например, у всех драйверов видеокарт используется один протокол, а у проприетарного драйвера Nvidia — другой. Nvidia — это всё же не «сборище красноглазых задротов», а серьёзная компания. Но именно она устроила такую подлянку.
А её(nvidia) дрова и в классических X11 дают приколы и геморрой вида «да какого чёрта ты опять рухнуло при сборке/старте» в дистрибутивах типа gentoo. Открытую альтернативу просьба не предлагать — 2080.

А чего там падает? У меня — максимум из-за того, что после апгрейда nvidia-drivers я забываю передёрнуть ядрёный модуль.

Под 370 версией дров надо было отправлять в blacklist пару модулей этого драйвера, иначе он вешал систему так, что оставался только «семь бед — один ресет». При жизни с ACCEPT_KEYWORD="~amd64" обновление ядра превращается в игру «а эта тварь под него вообще соберётся?» порой. Недавно (гдето чуть меньше недели) я не смог перейти на 5.6.2 ядро, т.к. под него эта nvidia не собралась. Знакомый словил ошибку на обновлении мира в qtgui(рушится при сборке с руганью на то, что нету у вас никакого *gl в системе) из-за этого драйвера — благо помогла простая пересборка и продолжение обновления.
Всё это лечится руками, но раздражает.

Я, тащем, тоже на ~ живу, но ядро у меня до сих пор… эээ, чо там, 4.12.12, вот. До него 3.8.8 было, обновил, когда сборка то ли глибц, то ли питона ругалась на отсутствие генератора случайных чисел.

Ну а я полностью на свеженьком. Единственное место, где осталось 4.20.х — ноутбук, т.к. fbcondecor себе там красивый сделал лет пять назад, а из 5.х увы этот патч выкинули.

У меня всё остальное тоже на свеженьком, просто для обновления ядра надо перезагружаться по-хорошему, а у меня


% uptime
 18:59:34 up 269 days, 20:33, 28 users,  load average: 1,88, 1,37, 1,09

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

Так можно новое через старое прогрузить. Я правда этим не занимался. Хотя одну машинку надо бы по ядру обновить.
$ uptime
01:11:27 up 745 days, 27 min, 1 user, load average: 0.72, 0.64, 0.20

у меня на генте лет 6-7 такого случалось с nvidia (gtx760, gtx1070). Максимум что происходило — fail compilation. Но это из-за свежего ядра. С патчем ядра все компилится.

Нет стандартной графичесской библиотеки? Если речь про desktop, то есть OpenGL

OpenGL практически мертв или умирает.
UFO just landed and posted this here

В чём выражается dependency-hell для программиста? Его он не волнует, он просто пишет в README, что прога зависит, например, от qt5, мейнтейнер собирает прогу в пакет и добавляет qt5 в зависимости

Вот только


  1. где взять этого самого мейнтейнера для непопулярного продукта?
  2. что делать ментейнеру при конфликте зависимостей?
1. Настроить пайплайн с тестами и автоматической сборкой пакета.
2. Класть свою прогу в /opt вместе с зависимостями.
где взять этого самого мейнтейнера для непопулярного продукта?

Да хоть самому стать. Это не так уж сложно. На том же OBS, насколько я знаю, можно вообще под что угодно из распространённого собирать.


что делать ментейнеру при конфликте зависимостей?

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

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

Безусловно.


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

1) Если продукт коммерческий, то можно и нанять, если нет, то можно на форуме, в irc, просто знакомого попросить, а если и это не удалось то можно вспомнить, что программист не идиот, прекрасно знает от чего зависит его программа и может её собрать
2) Приведите пример. Два пакета обычно конфликтуют, когда они реализуют один и тот-же функционал. Например openssl и libressl реализуют libcrypto и мейнтейнеру достаточно указать, что необходима libcrypto.so или зависимость от виртуального пакета, ну или явно указать что программа требует или openssl, или libressl.
Буду рад, если вы приведёте свой пример

Приведите пример.

Зависимости от разных версий одной и той же библиотеки с разным API.

Подробнее. Да и если в пакетном менеджере нет механизма слотов, то несовместимые версии таких библиотек обычно раскидывают в разные пакеты.

Из близкого мне — любая хаскель-библиотека, несовместимо ломающая API, пусть даже в соответствии с хаскелевской интерпретацией semver (то есть, почти любая). Конкретные имена и ломающие версии я вам сходу не назову, впрочем, но, наверное, это и неважно.


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

отсутствие стандартной графической библиотеки

Ерунда. Стандартная графических библиотек даже две: GTK+ и Qt.

ты же вкурсе что даже стиралка у тебя дома на линуксе работает да? телефон, камеры около дома, ракеты которые в космос летают, марсоходы, автомобили.
Я думаю, моя стиралка работает на FreeRTOS или вообще бесконечном цикле х)
ну раз на раз не приходится, самсунги на линуксе своем крутят.
вот в этом-то и проблема: если стиралка стирает плохо — я не переустанавливаю на ней линукс, не обновляю пакеты. Я ее выкидываю и беру новую, так как для меня смысл стиралки не в том, что там у ей внутре, а в том, чтобы она стирала. А в случае, скажем, сервера-мусорки для пет-проекта и файлопомойки я, наоборот, очень даже хочу знать что там происходит и как. Это принципиально разные юзкейсы.
Я ее выкидываю и беру новую, так как для меня смысл стиралки не в том, что там у ей внутре, а в том, чтобы она стирала.

а меня раздражает, что нельзя поправить прошивку в стиралке, приходится после каждой стирки ставить отдельный цикл полоскания (+3 полоскания умеют далеко не все стиралки).
а ещё в некоторых есть подогрев воды в одном полоскании, по отзывам существенно улучшает выполаскивание. опять же фича чисто софтовая, реализовать можно на любой машинке.


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

ну, значит, таких как ты слишком мало, чтобы выпускать для них специальные стиралки и плиты. Самое смешное, что даже профессиональные плиты и стиралки, которые можно вполне сравнить с серверами (коль уж мы сравниваем бытовые с персональными компьютерами) не предполагают особой перепрошивки. Зато они предполагают более высокий уровень надежности и нагрузки, что вполне сравнимо с линуксом, правда без необходимости повару или прачке быть еще и программистом. И именно поэтому их и покупают.
UFO just landed and posted this here
Можно, вскрой коробку, подключись по UART, я даже не удивлюсь если там консоль или дебаг выход. покапайся и сможешь найти прошивку в нете. скорее всего там арм архитектура крутит все дело, и даже точнее armv7m или помладше. И тут для тебя откроется мир возможностей, например если бутит он с внешки (мало вероятно) то на внешку можно залить свою прошивку стиралки. Если с флэшки то там стоит uboot, на него есть документация, есть дрова где то в памяти. можно слизать прошивку декомпилировать, и написать уже свою. Вообщем если знать че делать то и стиралку прошить можно.

я это знаю, только паять — не моя сильная сторона.


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

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

хм, можно детали?

Обычно там идут комманды, допустим в сервис центре что бы посмотреть в чем проблема можно подключить машинку по шине UART или CAN и диагностировать. Можно также определить что прошивка могла быть повреждена и им нужен способ ее востановить. Тоесть способ считать и прошить всетаки оставляют. Тут есть два варианта, комманды на открытом протоколе или знакомом массам (для удешевления производства) или закрытый протокол. В первом случае можно нагуглить во втором методом тыка изучать структуру протокола.

Рекомендую подключить к логическому анализатору во время тыкания и потом эту информацию реверсить. Я просто переделал ардуину (mega 2560) в простенький анализатор и им орудую в бытовухе.

И тут эскплойтить можно по разному, если знаком чип известен то скорее всего есть заводской uart bootloader, на некоторых есть возможность запустить его с внешки, но там может быть BOOT нога которую прижать к +3 или 5 надо.

Если по UART выходит дебаг консоль то 90% можно и память считать (ну или секторами), если на консоле пароль по 99% он уже есть в интернете.

Ну и вообщем только воображением это дело ограничевается

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

Ты умеешь на ассемблере писать что ли?

разумеется. как и, уверен, большинство обитателей хабра.

К сожалению, это как раз тот навык, который можно успешно забыть. Когда-то умел и для arm бородатых (ну и для x86). Сейчас уже практически ничего не помню. Да и где те телефоны, под которые всё это писалось? :(
Современные телефоны — высокоуровневый медленный код, тонны фреймворков и будильник весом 11МБ. С теми же функциями, что были и в старых телефонах, где всего флеша было в разы меньше.

да ну ладно вам, мы же говорим о простейшем коде.


не писал на ассемблере лет много, пришлось заглянуть в выхлоп gcc -S для x64 и arm — всё понятно (разве что непривычная at&t нотация немного сбивает с толку).
если ассемблер для нового процессора — просто чаще заглядывать в мануал с описанием системы команд.

В коде прошивки без комментариев разберешься?
Нужны не комментарии, а осциллограф, прямые руки и умение копаться в прошивках. На Хабре были статьи на тему реверс-инжиниринга прошивок.
UFO just landed and posted this here
Кстати, стандартные часы com.google.android.deskclock весят «всего» 6 мегабайт. Там почти 3 мегабайта dex кода и 4 мегабайта упакованных ресурсов.
Стандартный будильник от гугла последней версии. Самсунговский примерно столько же весит.
Ага, забыть то можно, но основы то знать надо. а вот те кто не знал становятся React native разработчиками и пишут модули вроде left-pad

А что не так модулем в целом? Надоело из проекта в проект таскать простую, но часто нужную функцию — запилил свой пакет.

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

Вообщем один дурак создал проект kik, но оказалось что есть компания с таким именем и те дураки грозили ему судом. npm отдали название пакета компании, в знак протеста чувак вообще удалил все репозитории с npm, ну ивообщем поехало.

Это больше вопрос к экосистеме в целом, почему удаление пакета обрушает сборку тысячей проектов, а не к тому нужен ли такой пакет или нет.

UFO just landed and posted this here
Потом, правда, окажется что, для сколь-нибудь нормальной разработки на RN требуется знание и понимание работы кучи технологий, знание JS + пары «нативных» языков для соотв. платформ( ObjC / Swift + Java / Kotlin ), т.к нередко требуется либо править платформозависимый код, либо — свои модули писать…
Иначе — код будет представлять из себя помойку( еще и с каким-нибудь тайпскриптом, делающим JS столь же уродливым, как говнокод на С++ ), а итоговое приложение — уродливое, жутко медленное и глючное хз_что.

То ли дело воистину кЭповский АСМ, который содержит пару десятков базовых и реально необходимых команд( сложение-вычитание-умножение-итп, сравнение-условные_переходы, сдвиги, работа со стеком и, мб, подобия ввода-вывода в порты ), которые есть в соотв. доках.
Уууу жЭЭЭсть, ну как же это можно изучить то!!11?? :)
Но нечто, реально сложное и многофункциональное, написать на асме практически невозможно( при удобоваримых затратах ), т.к код будет фактически не_переиспользуемым мусором, крайне сложноподдерживаемым и платформозависимым, если речь не о разработке чего-то крайне эффективного под какой-то конкретный «камень»( и то, компиляторы нынче очень неплохо оптимизируют код ).

Как итог, складывается ощущение, что люди, изображающие АСМ, как нечто очень труднопостижимое, скорее всего, вообще не имели с ним никаких дел и знают о нем только по слухам( как и о RN, кстати:) ).

п.с: говорю как человек, имеющий дело в т.ч с RN, ну а начинавший свою проггерскую жизнь — с асма и написания относительно простеньких программ и игр на asm+winapi и простеньких прошивок на асм для avr-ок( кончилось переходом на Си ).
infocenter.arm.com/help/topic/com.arm.doc.qrc0001m/QRC0001_UAL.pdf ну да 11 инструкций. все ну очень просто )

Но нечто, реально сложное и многофункциональное, написать на асме практически невозможно


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

код будет фактически не_переиспользуемым мусором, крайне сложноподдерживаемым и платформозависимым


Ты точно ничего не употреблял? Платформозависимый? может наоброт это платформа зависит от инструкций а не наоборот?

если речь не о разработке чего-то крайне эффективного под какой-то конкретный «камень»


Ты наркоман. это факт. А теперь факт про конкретный камень, открой исходники линукса, там есть папка с кодом для поддержки разных камней. зачем же это? Объясню, твоя платформа зависит от камня. и эффективность твоей поллезной программы на джавасрипте тоже зависит от того какие инструкции процессор может выполнить а какие нет.

Вот допустим есть процессоры которые не поддерживают набор дополнительных инсрукций SSE4.1. в этом наборе классные инструкции для работы с нецелыми числами которые ты пользуешь в графики например. И вот вместо использования «камня» ты делаешь тоже самое только на уровне ПО, и на тебя все показывают пальцем, ржут.

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

Ну кароче, больше не говори что ассемблер это язык программирования. и что он бесполезен.
Почему 11? Где я вообще говорил, что их именно 11 ?)
Базовых немного и это ни для кого не секрет, кто хотя бы немного с асмом имел дело.
Остальные — в основном связаны с теми или иными оптимизациями и в простых случаях они, скорее всего, даже при всем желании не понадобятся.

А теперь посчитайте число «инструкций» в C++ или Java :)
Ну и число вызываемых методов для получения того или иного функционала.
… всм, ВСЕХ инструкций, элементов синтаксиса итп( ведь для асма вы, по сути, именно это и привели )

И, заодно, приведите справочники/доки по C++ / Java.
Интересно, они будут больше тех 6 страниц документации по асму ?)

АсмОвый код будет намертво «прибит» к конкретной архитектуре( а учитывая, что код без взаимодействия с системой нынче не может практически ничего в плане ввода-вывода итп, если это не какая-нить прошивка на МК без ОС и ее подобия, то, да, можно говорить еще и о привязке к конкретной платформе и к конкретному API, что, по случаю чего, не очень то и легко менять в бесконечных простынях асм-кода ).

«Внезапно» нельзя x86-й асм( 32-битный. Привет, EAX ) просто скомпилить в машинный код x86_64( привет, RAX, у которого EAX — это младшая половина ) или армОвый в машинный x86( «внезапно» разные команды, регистры и проч ) итд итп, т.к речь о программировании, по сути, мнемокодами конкретной архитектуры, потому речь о коде, намертво привязанном к конкретной архитектуре, системе команд и проч.
И, да, поскольку «функционал» отдельной команды крайне мал, исходники даже относительно простого приложения будут очень объемными в плане количества кода и прямое следствие этого — сложноподдерживаемыми в плане даже относительно простых доработок кем-то, кто не_писатель_этого_проекта.

Спасибо кэп, а я и не знал, что эффективность выполнения штуковин вроде JS отчасти зависит от того, какие инструкции может выполнять проц…
Но я так и не понял, к чему дальнейшие кэповские изречения о том, что некоторый неподдерживаемый процом функционал «внезапно» может быть реализован на уровне софта.

Я не говорю, что он бесполезен — я говорю, что если писать на нем что-то хотя бы немного универсальное, что должно по возможности работать на разных архитектурах и ОС, чтоб было более-менее поддерживаемым, а код — переиспользуемым… крч., будет целая огромная куча проблем практически на ровном месте.

Хотя иногда он и бывает удобен — на нем [раньше было] очень удобно на скорую руку набросать какой-нибудь простенький распаковщик/сниматель_защиты с конкретной проги( или игрухи типа Reflexive Arcade ), т.к нет присущего высокоуровневым языкам цирка с типами данных, указателями итд итп, сам исполняемый файл получался весьма компактным. Да и учитывая, что в отладчике обычно видишь именно дизассемблированный код… было весьма удобно.
Но это очень специфическое применение.

п.с: из твоего коммента складывается ощущение, что у тебя проблемы с «веществами», ты это понимаешь, но, боясь в этом признаться( и последующего осуждения от окружающих ), обвиняешь в чем-то подобном всех вокруг… кроме самого себя — человека с платформо/архитектурно-независимым асмом :)

Я прошивки для стиралки писать не писал.
Ну писать на ассемблере это кататся на велосипеде. навых необходимый каждому разработчику. Если разработчик не знает как устроен апарат и что происходит на самом деле то как он может вообще зватся разработчиком?

На каком ассемблере? Я начинал с 6502, 8080 и закончил 80386. я ещё могу зваться разработчиком или уже нет?

На любом. Речь ведь не о том, чтобы ежедневно писать программы на ассемблере от начала и до конца, а о понимании принципов работы. А знать на практике все тонкости современных x64 ассемблеров нужно единицам.
На каком ассемблере? что? наврядли после такого заявления кто то поверит в правдивость вашего заяления об опыте написания чего либо для 8080.
Тоесть КР580ВМ80 в СССР не существовал, Радио-86РК тоже отсутствовал?

И куча его клонов тоже.

Если разработчик не знает как устроен апарат и что происходит на самом деле то как он может вообще зватся разработчиком?

Только ассемблер в современном x86 очень отдалённо связан с тем, что происходит на самом деле.

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

Разработчиков не существует.

А всё просто — работает мегамахровейшая legacy совместимость (правда о 100% совместимости с 8086/80286 наверное уже можно забыть — опкоды кончаются и новые начинают лепить вместо префиксов старых, недопустимых комбинаций и т.д.), раньше был CISC,, потом случился F00F bug — приделали микрокоды для обхода каких-то возможных косяков, ещё в это время слово конвейер стало что-то значить, потом в эпоху Pentium-II до инженеров допёрло, что CISC внутри это полная жо и надо что-то делать, в процессорах тупо появился CISC->RISC транслятор (т.е. процессор снаружи остался CISC, а внутри уже было RISC), благодаря чему с микрокодами стало ещё проще. Время шло красный приделали 64 бита, припёрся Prescott (aka печка №1) со своим гигантским конвейером (31 стадия или что-то около того), который ложился на лопатки сотней инструкций ассемблера, после чего не сливал разве что калькулятору, интел решила эту каку закопать. Примерно в это время процессоры прекратили нормально работать без микрокода. Ну и всё это время развивались алгоритмы предсказания переходов, внедрялась технология спекулятивного выполнения и увеличивался объём кеша. И эти баги будут продолжать лезть — полностью их прибить можно либо отрубив кеширование (привет производительность Pentium 1 у Core i7), либо отрубив спекулятивное выполнение (привет Pentium III производительность у Core i7).
Разработкам прикладного ПО знать ассемблер не обязательно, у них есть абстракция в виде standart library. Им нужно понимать внутреннюю работу этой абстракции. Это разработчикам системного ПО нужно знать ассемблер.
Для программирования на языке Java или других JVM-совместимых языках знание особенностей байт-кода не обязательно. Однако, как следует из публикации в журнале IBM developerWorks, «понимание байт-кода и понимание механизмов его генерации компилятором Java помогает Java-программисту так же, как и знание языка ассемблера помогает программисту, пишущему на Си или C++».[1][2]

Peter Haggar, Understanding bytecode makes you a better programmer // IBM DeveloperWorks, 01 Jul 2001
A Formal Introduction to the Compilation of Java, Stephan Diehl, «Software — Practice and Experience», Vol. 28(3), pages 297-327, March 1998.

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

ну никто не говорит что это легко)
ОТЛИЧНЫЙ пользовательский подход. Просто отличный.
Тут даже можно попробовать сделать опрос, сколько читателей этой статьи регулярно пользуются линукс, а сколько регулярно САМИ (не жена, не мама, не домработница) пользуются стиралкой.
Там и близко нет arm-ов. Во всех, что мне попадались стоят 8-разрядные чипы. В основном Motorola и Renesas, иногда Atmega32. Консоли там нет, UART для прошивки и диагностики спец. софтом.
И да, блок управления, как правило, не имеет гальванической развязки с сетью, так что аккуратнее с экспериментами.
Ну так бери стиралку и прикрути к ней свой процессор. И делай с ней ЧТО ХОЧЕШЬ.

Более того, огромное кол-во консольного ПО и библиотек из мира линукса тихо трудится на винде и никто не замечает.
Да даже попытки мелкософта склепать некую эмуляцию линукса в своей вин10, уже говорит о том, на сколько линукс популярен и как все в нем нуждаются.

попытки мелкософта склепать некую эмуляцию линукса в своей вин10, уже говорит о том, на сколько линукс популярен и как все в нем нуждаются.

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

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

UFO just landed and posted this here
С таким успехом пользователю вообще должно быть побоку какая ос, винда или нет. Ведь он хочет просто пользоваться своей программой, которая как правило будет веб обозреватель и скорее всего хром. И что на лине что на винде она одинаковая.

ОС в таком случае решает насколько удобно ему будет пользоваться Хромом, мешать этому будет ОС или помогать. Например, такие мелочи как необходимость что-то нажать, прежде чем вводить пароль разблокировки/входа. Или (не)поддерживаемость GPU или гибернации.

Ну нет. Пока что пользователи пока ещё юзают всякую мультмимедиа, пишут в ворде и т.д. на десктопных прогах. И вот давайте сравним топовые виндовые аудио-плееры и допустим линуксоидные? Какие из последних недоступны на винде и маке? Пользуются ли они популярностью у людей, которые таки имеют выбор т.е. среди пользователей винды и мака?
Лучше перечислите те линуксовые плееры, которые умеют в кодировку mp3 тегов на кириллице не выдавая при этом кракозябры.
Их есть конечно, но мягко говоря не все.

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


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

ID3v1 с его абсолютно полностью отсутствующей интернационализацией (привет всяким MotЦrhead и прочим умляутам) уже похоронили, да и проблемы он вызывал абсолютно везде — если вы его так любите — сделайте одновременное корректное отображение ID3v1 тегов на русском, японском, немецком и грузинском в любом плеере (под любой ОС). ID3v2 уже вполне себе умел в utf и отображался одинаково.
Ну вот, опять виноват кто-то другой, и разумеется, я опять что-то «должен»… Почему-то в винде и андроиде этой проблемы не возникает (последние годы юзаю AIMP), а как речь заходит про линукс, тут же откуда-то «долги» появляются.
Не многовато на себя берёте? Юзер, если что, вам тоже ничего не должен и если «не работает», или «работает не так», то это проблема разработчика, который не предусмотрел.
Ещё раз — какой плеер может корректно отобразить id3v1 на русском, грузинском и немецком одновременно? Можете конечно поискать такой, но ответ я знаю заранее.

П.С. Во времена засилия этого ужаса (я давно уже на flac и физические носители перешел) я совершенно спокойно ставил LC_ALL=ru_RU.cp1251 и плеер прекрасно мне показывал русский язык. А во времена Alt Linux Junior 1.0 тамошний xmmp ЕМНИП имел настройку «Кодировка id3v1».
Что вы знаете ответ заранее — это замечательно. А мне бы вот интересно было бы узнать, завалят ли плееры adowit (я так понимаю, у него аимп только) задачу, али справятся. Не затруднит выложить такой файл? Я у себя тоже бы посмотрел.
А то из всех моих плееров (на минте) с отображением русских тегов idx3v1 справились только DeaDBeeF, Foobnix. Остальные завалили.
Это надо рыться. Ну и имеется ввиду три файла — один с русским языком, второй с немецким, третий с грузинским. И результат простой — ни один плеер не сможет одновременно правильно отобразить теги, поскольку v1 в себе не содержит информации о кодировке и не умеет в utf.
А почему одновременно английский и русский может? Просто я фиг знает, как это работает и мне бы действительно интересно выяснить эксперементально, как оно работает в винде и в линуксе.
Первые 128(0-127) символов в любой таблице кодировки (разговор сейчас не про UTF) — это ANSI, которая тянет свои корни ещё с 7 битов в байте. Старшие 128 символов (128-255) — в стандарте не описаны и для каждой таблицы кодировок индивидуальные. В итоге имеем то, что в таком режиме английский текст всегда отображается правильно, а вот с национальными алфавитами начинаются приколы. К примеру для русского языка существует куча вариантов: KOI8-R (сделана так, чтобы при обрубании бита превратится в транслит, одна из первых кодировок), CP866 (в этой кодировке жил ms-dos и консоль windows живёт тоже в ней), CP1251 (Windows не консоль), ISOхххх-5 (цифры забыл, да и не видел, чтобы она была популярной), MAC (Ага, на старой яблочной технике была своя кодировка для русского). Вот и получается, что без UTF нормально можно отобразить английский и ещё один язык на выбор, а поскольку для кириллицы была такая куча кодировок, то и становится ясна причина срача про id3v1 теги на русском в винде и линуксе (ещё могут маководы подключится с техникой времён до перехода на интел, благо у них есть своя кодировка).
без UTF нормально можно отобразить английский и ещё один язык на выбор

Не совсем так, скорее "языки на базе чистой латиницы и (на практике) какое-то семейстов очень близких буквенных языков". Вот KOI8-U, ближайшая родственница KOI8-R, позволяет использовать одновременно латиницу, русский и украинский за счёт близости русского и украинского алфавитов.

Еще как пример можно привести западноевропейскую кодовую страницу. 1252, кажется?

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

Скорее это попытка заскочить в уходящий поезд.
Т.к. Windows проиграла облачную гонку, то для того чтобы оставить разработчиков под Windows нужны инструменты, которые бы позволяли бы работать с Linux-окружением.
Например я работаю под Linux, т.к. пишу приложения, которые работают под Linux.
Не смотря на то что это JVM, но тот же docker и kubernetes проще настраивать под Linux, чем под Windows.
Как по мне, они хотят поиграть на психологии и создать ассоциацию у «домохозяек» по типу «Linux — это часть Windows» и «зачем мне ставить Linux, если у меня есть Windows, в котором есть Linux» (т.е. мы уже имеем больше). Даже сечас, если из обычных пользователей кто-то знает о лине, то это всегда «это та система с терминалом», «он хорош для программистов» и «там все только командами делается»
Скорее, хотят застолбить за своей ОС десктопы разработчиков. То есть, «пишите под Линукс, раз вам так уж надо, но мы вам облегчим жизнь, чтобы вы могли делать это на Windows»
MS сделала эмуляцию только для консольного софта, что как бы намекает на серверный сегмент, где с популярностью Linux никто не спорит.
марсоходы на системах реального времени работают, как и автомобили.

Да и в телефонах делая Андроид линукс именно очеловечили, о чём и говорится в статье
Вроде бы в Tesla бортовой компьютер на Ubuntu.
У меня стиралка на древнем спецконтроллере. (и если вы мне начнёте пенять, что я динозавр и отстал от прогресса, то я отвечу, что если раньше телевизор при включении полминуты прогревался, а теперь полминуты загружается, то это не прогресс)
Ракеты падают.
Лада Приора. (и, да, некоторые, знаете ли, получают удовольствие от управления. Процессом ли, автомобилем ли. )
Я часто шучу с друганами «программистами» про шиндаVSпингвин
-«Вот скоро мы все на линукс перейдём, она ваще быстрая и вообще всё супер»
-«Так да, документации единой нет, и лампово всё. Будто ты гений что познал программирование)»
-«Кнш, а эта шинда фиговая, со своими подробными гайдами на оф сайте по которым даже эмуляторы рабочие пишут. Зачем упрощать людям жизнь, я не понимаю?»

ЗЫ Я как чисто «пользователь» линукса, бросил эту затею. Вроде «вау как быстро всё, красивенько и кастомизируется». А потом понял что это тот ещё бутерброд, а твой «говнокод» не будет работать у другого ибо разные версии\другой мендж раб стола и ещё до кучи. (мб уже и не так, это было +5 лет назад назад)

А потом понял что это тот ещё бутерброд, а твой «говнокод» не будет работать у другого ибо разные версии\другой мендж раб стола и ещё до кучи. (мб уже и не так, это было +5 лет назад назад)

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

UFO just landed and posted this here

Надеюсь, это закончится на "Моё разочарование в планете Земля или почему я выбрал Марс".

Буду с интересом ждать «Почему не Марс».
«Потому что иди ты нахер, вот почему.» (с)
Тут я плакал.
UFO just landed and posted this here
Марс уже один выбрал, ждем пока переберется)
автор просто не знает что такое unix, и темболее linux и все что он описал это Mac OSX
UFO just landed and posted this here
Это кстати спорно, в макос UI/UX строится на принципе «вам это не надо, мы знаем как вам удобнее»
Мой любимой пример — попробуйте без гугла добавить принтер по протоколу ipp без всяких bonjour в сети.
настройки — принтеры, нет? Два раза приходилось настраивать принтер на ноутбуках приходящих сотрудников, и вроде с первого раза получалось. Дольше приходилось страдать, что у этих людей раскладка была не US, а не пойми что, и они считали это нормальным, типа, «и них же мак, они не как все».
настройки — принтеры, нет?

и да и нет сразу, там по умолчанию нет кнопки «добавить другой принтер» и её надо магическим образом вытаскивать из глубин UI, и нет совершенно никаких подсказок и предпосылок — как это сделать