LINUX.ORG.RU
ФорумJob

Ищу работу в IT, но не имею опыта в IT. Умею много разного, из редкого: Cython и Nix.

 , , релокация, смена карьеры


2

10

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

Из всего резюме самое IT-солидное - список из пяти преподаваемых мной курсов разномастного программирования. Куда можно податься с таким нерелевантным резюме, да еще и без просадки дохода (60к/месяц)?

Почти устроился в банк в Норвегии, любезно закрывший глаза на мою не-IT биографию, но они решили отказаться от NixOS и я им оказался не нужен. Конторы, юзающие NixOS, пересчитываются по пальцам рук. Если ни в одной на меня больше не западут (а понять их можно), куда выгоднее всего копать дальше? Куда угодно ради любых релевантных строк в резюме?

Может ну его это IT и стать преподом, только там, где за это платят неоскорбительные суммы?

★★★★★

Ответ на: комментарий от t184256

Там же под арм что-то очень ограниченное и вообще не официально, как понимаю.

Вот что в вики пишут про сборку под Jetson TK1 (ARMv7):

The proprietary NVIDIA bootloader can only boot NVIDIA's L4T kernel, so it needs to be replaced by flashing U-Boot on the board's eMMC via the recovery USB port. The easiest way to do that is to use tegra-uboot-flasher-scripts, though unfortunately that's currently not packaged in NixOS. Once U-Boot is flashed, the ARMv7 image will boot out-of-the-box.

Мне нужно пилить под TX2 (aarch64), чтобы тензорфлоу, аппаратное кодирование видео и тому завелось. Контора маленькая, как я уже сказал, рук мало. Вообще не представляю как много граблей можно поймать.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

С одной стороны,

The easiest way to do that is to use tegra-uboot-flasher-scripts, though unfortunately that's currently not packaged in NixOS

вполне может оказаться полнейшей мелочевкой на полчаса.

С другой стороны, совершенно правильно предчувствуешь, граблей с NixOS можно наловить вагон и маленькую тележку. Когда будешь все взвешивать, учти и фактор автобуса, потому что даже в микроскопической конторе нужно как минимум два спеца по NixOS. Если не дай бог что, @domenkozar весь мир не проконсультирует =). В той, куда меня не взяли, на четверых технарей таких было два и все равно было ясно, что этого мало.

t184256 ★★★★★
() автор топика
Ответ на: комментарий от t184256

вполне может оказаться полнейшей мелочевкой на полчаса

Да это-то как раз не проблема вообще, просто показатель, что там ничего не готово.

фактор автобуса

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

WitcherGeralt ★★
()

А ты куда в ойти то хочешь? В смысле кем?

Физиком скучно что-ли?

Дай тут контакт, может к тебе кто и постучится релевантный...

onhydro
()
Ответ на: комментарий от onhydro

А не знаю. Разрабом, админом, девопсом, исследователем, преподом.

В полном идеале девопсом развертывать что-то на NixOS в исследовательско-ориентированной конторе типа tweag.io в англоговорящей стране.

Добавил почту в профиль.

t184256 ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Для этого лучше родиться лордом Кавендишем.

greenman ★★★★★
()

Идея не удачная

Если вы физик, лучшее решение искать себя в физике. В программировании самое простое - это выучить язык (или языки, причем не важно какие). Самое сложное - знать и уметь применять алгоритмы и структуры данных. Конкуренция в программировании бешеная. ВУЗы за последнее время наготовили гигантское количество ИТ-специалистов. Что светит без профильного образования - это устроиться рядовым программистом, потому что там работа медом не намазана и всегда большая текучка, но это вариант крайне унылый, так как придется разгребать кучу черновой работы. И вообще отношение к тем кто мечется как субстанция в проруби у людей соответствующее. Мой совет, либо учить досконально Фортран (хотя, что его учить язык простой) и заниматься расчетами, но именно как физик, не профессиональный программист, либо искать должности по специальности, связанными с физикой, либо идти в бизнес.

alexklonov
()
Ответ на: Идея не удачная от alexklonov

Самое сложное - знать и уметь применять алгоритмы и структуры данных

Есть еще и мир чистого и светлого функционального программирования, интереснейшего администрирования, граничащей с ними исследовательской деятельности...

А это - программирование на уровне ПТУ какое-то. Звучит как «самое сложное в деятельности писателя - выписывать эти чертовы закорючки ровно и не наклонять», серьезно. Если бы программирование было таким плоским, я бы в него и не совался...

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

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

Ты из какой-то грустной альтернативной реальности. Я в твою не хочу.

t184256 ★★★★★
() автор топика
Ответ на: комментарий от greenman

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

Пример: чтобы делать редукцию параллельно в Cython надо аннотировать код и держать в напряжении извилину-другую, а в numba достаточно приписать parallel=True. Правда что именно у тебя там будет скомпилится с этим parallel=True?

t184256 ★★★★★
() автор топика
Ответ на: комментарий от BceM_IIpuBeT

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

t184256 ★★★★★
() автор топика
Ответ на: комментарий от t184256

Предлагаю не тыкать

На брудершафт мы не пили. Вот знать язык программирования (синтаксис) для программиста - это как для писателя знать буквы. Азбука. Это как для физика знать латинский и греческий алфавит. Самое интересное начитается после изучения азбуки. Фортран или Питон использовать разница не большая. Маленьким или большим топором дрова колоть, все равно. Какой по силам такой и надо брать. Вообще если есть очень сильное желание метаться как дерьмо в проруби, то кто-же может в этом интересном деле помешать? Ответ: ни кто.

alexklonov
()
Ответ на: Предлагаю не тыкать от alexklonov

Предлагаю не тыкать

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

(А когда ты пишешь бумажное письмо незнакомому человеку, тоже «вы» со строчной?)

greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 1)
Ответ на: Предлагаю не тыкать от alexklonov

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

t184256 ★★★★★
() автор топика
Ответ на: комментарий от t184256

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

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

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

Было видео на Channel9 где русский физик рассказывал как он ушел в команду SQL Server. Книга Кнута стала для него настольной.

maxlinux
()
Ответ на: комментарий от maxlinux

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

В работе ученого меньше рутины, чем в программировании.

Возьму и соглашусь. Но к тому отмечу, что одну лишь «работу» в отрыве от всего остального я не заменю. А за словом «работа» может скрываться не только непосредственно производимая тобой деятельность, но и культура, коллектив, и прочие вкомплектные элементы образа жизни. Если я буду как проклятый сочинять какие-нибудь бездушные юнит-тесты по 8 часов в день, но при этом жить не ближе одной месячной зарплаты до ближайшей недыры, на выходных ездить на NixConf, по праздникам болтать о жизни с Поттерингом, а по вечерам кататься как белый человек в крытом скейтпарке, то я прям не уверен, что я при этом в минусе. А мой текущий образ жизни в уездном городе Нске мне жмет.

t184256 ★★★★★
() автор топика
Ответ на: комментарий от t184256

а по вечерам кататься как белый человек в крытом скейтпарке

как белый человек

С такими выражениямы вы долго не протяните...

BceM_IIpuBeT ★★☆☆☆
()

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

gpyra
()
Ответ на: комментарий от BceM_IIpuBeT

Да, я в этих материях неотесан =/

t184256 ★★★★★
() автор топика
Ответ на: комментарий от gpyra

Потому что 1) на такой работе буду взаимодействовать с пользователями NixOS, а это неплохой отбор на интересность людей, неокостенелость компании и культуру разработки/деплоя/админства вообще 2) после NixOS крутить более традиционные дистры и системы управления конфигурациями кажется шагом назад в дикую древность 3) а мне нравится его крутить, крутил бы и фуллтайм.

t184256 ★★★★★
() автор топика
Ответ на: комментарий от t184256

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

2) а зачем вообще крутить ? Как будто работать можно только дистростроителем да девопсом

gpyra
()
Ответ на: комментарий от gpyra

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

Охохо, да ладно =) Ты тогда любитель не меньше моего, будь уверен. Ну или тебе реально мало от дистра надо.

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

Нет, конечно, но это мне правда интересно. Ну и этот пункт - плод рефлексии на вакансию RedHat о допиливании dnf.

t184256 ★★★★★
() автор топика
Ответ на: комментарий от greenman

и это не шутка! Это вещь нужная людям, в отличии от всяких ноджээс и хаскеллей.

Bad_ptr ★★★★★
()
Ответ на: комментарий от t184256

Кстати, ТС, попробуй свои силы в CERN. Они постоянно ищут контрактников, именно с физическим бэкграундом, в программисты. У меня знакомый там работал пару лет как руководитель проекта. Классные фоточки коллайдера изнутри потом показывал :)

Deleted
()
Ответ на: комментарий от Deleted

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

t184256 ★★★★★
() автор топика
Ответ на: комментарий от Deleted

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

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

t184256 ★★★★★
() автор топика
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от Deleted

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

t184256 ★★★★★
() автор топика
Ответ на: комментарий от t184256

As an Intergovernmental Organization (IGO), CERN is funded primarily through contributions from its twenty-two Member and Associate States. Accordingly, as is standard practice for IGOs, CERN recruits its Staff Members from nationals of these countries. As indicated on the website and in the FAQ, we are unable to consider applications from non-Member State nationals for staff positions.

Дискриминация подкралась незаметно =(

Пойду просить совета у мудрых и знающих коллег.

t184256 ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Не, чувак просто не осознаёт, насколько ИЯФ прикрывает его от суровой реальности, даёт возможность играть в игрушки типа NixOS, Cyton и иметь какую-то самооценку («да у меня хирш семёрка, да я соавтор в Нейче!» (небось среди 10-20 других, типа результаты какие-то посчитал, лол)).

t184256, вот реально, давай защищайся, а потом уже будешь думать, валить или нет. Про потерю дохода в 60k в Нске вообще смешно.

fluorite ★★★★★
()
Ответ на: комментарий от fluorite

Рад, что тебя повеселил. Что смешного-то, кстати?

Ты, кстати, прав про то, какой я ненастоящий физик и как ИЯФ прикрывает меня от суровых реалий IT. Что плохого в том, что хочу перестать прикрываться и начать заниматься интересным там, где это нужно?

Про самооценку мою ты неправ, самооценка у меня в заднице. «да у меня хирш семёрка, да я соавтор в Нейче!» показывает, что я не совсем дебил и не просто от армии косил, а с ненулевой побочной результативностью.

И зачем защищаться, кстати, расскажешь? Это вообще-то так себе достижение.

t184256 ★★★★★
() автор топика
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от t184256

Долой унылый карьеросрач. Давай лучше про Nix{,OS} пофлеймим?

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

Либо у нас с тобой разный NixOS, либо ты только что дословно пересказал суть NixOS.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)

Всегда пожалуйста, почту за честь с тобой посраться =)

Временно забудем, что версионирование либ в линуксе уже немного адекватно и предположим, что совместимость с shared library почему-то ломается даже в пределах одной мажорной версии. Поехали.

В Nix с деривацией тянутся все ее деривации-зависимости, но это и в других дистрах так, ничего особенного.

В Nix деривация зависит от конкретных версий дериваций-зависимостей, но у этой фразы два смысла. Это не апогей бессмысленного и беспощадного pinning'а как в случае с Cargo.lock! Cмена версии библиотеки вызовет (вместо молитв богам совместимости) радостную, массовую и безотлагательную пересборку/тестирование всех ее зависимостей (cue головняк мэйнтейнеров бинарного кеша и волны пересборки). Деривация может заморочиться и продолжить зависеть и от старой версии. Но абстрактные деривации от каких-то особых версий без уважительной причины не зависят и зоопарка либ в системе без повода не разводится. После прохода garbage collector'а большинство либ в /nix/store остается в единственной версии. Так что и к словосочетанию «это необходимость бандлить» есть претензия - возможность потребовать старую, конкретную или экзотически собранную версию библиотеки в Nix есть, но это - исключение, а не правило, так обычно не делают.

В мире Nix есть возможность зависеть от конкретных версий, в том числе и разных для разных «одновременно установленных» дериваций, но это не приведет к конфликту, а даже наоборот. В этом смысле это полная противоположность DLL Hell, так как выражение «в системе попадется DLL чуть не той версии» теряет смысл вместе со словами «DLL в системе». В профиле должны стоять приложения, а не либы, и разные приложения вольны юзать разные версии либ. Даже больше, в идеальном мире Nix они понятия не имеют о существовании каких-то других версий этих либ. Как в этом можно было вообще увидеть DLL Hell?

Ну и, самое дикое, «необходимость бандлить по копии DLL с каждым приложением», ага. Чего-чего, а «по копии» и «с каждым» - это точно не про Nix. nix-store --optimize не оставит в твоем /store ни единой пары одинаковый файлов. «С каждым» так вообще ни в каком нормальном PM нет, преступления против PM типа flatpak'ов не в счет.

Итого: бандлинга нет, копий нет, «с каждым» - нет, «DLL в системе» - нет, «приложение не взлетит» - нет, а так прям почти DLL Hell.

t184256 ★★★★★
() автор топика
Последнее исправление: t184256 (всего исправлений: 1)

Занимайся физекой лучше. ITшников кругом, как собак нерезаных, а физекофф нормальных мало.

yvv ★★☆
()
Ответ на: комментарий от t184256

In exceptional circumstances where specialised competencies may not be found on the MS market, and with the DG’s authorisation, an NMS candidate may be invited and selected.

Ты в дверку-то постучи, может и откроют

Pyzia ★★★★★
()
Ответ на: комментарий от Pyzia

Это как бы уже цитата из «извините, Вы нам не подходите». Specialized competencies у меня есть в нужной им на AWAKE физике, а на Python-евангелиста они не нужны.

t184256 ★★★★★
() автор топика
Ответ на: комментарий от Pyzia

Тут вроде весь тред о том, как у меня внезапно затарахтел, а потом заглох и не заводится трактор =) Пока не сильно брыкаюсь, подожду, что шапка скажет.

t184256 ★★★★★
() автор топика
Ответ на: комментарий от t184256

Временно забудем, что версионирование либ в линуксе уже немного адекватно

предположим, что совместимость с shared library почему-то ломается даже в пределах одной мажорной версии

Разумеется. Вся эта кавалькада костылей начиная с докера, равно как и любые средства управления окружениями (типа языкоспецифичных pip, cabal, cargo и универсального Nix) и вообще современная Церковь Свидетелей Воспроизводимой Сборки основываются именно на этом предположении, т. к. без оного вообще нахер не нужны. :)

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

Cмена версии библиотеки вызовет (вместо молитв богам совместимости) радостную, массовую и безотлагательную пересборку/тестирование всех ее [обратных? — intelfx] зависимостей

Но что это, если не pinning? Что, если я накладываю патч с исправлением на glibc для экзотической архитектуры? Или, например, собираю бинарный пакет с проприетарщиной под Nix (при этом я грамотный проприетарщик, линкую всё динамически и хочу обеспечить пользователям возможность обновлять зависимости даже после смерти продукта)? Или, например, если я оказался в ситуации, где пропускной способности хватит ровно на то, чтобы выкачать 10 КиБ бинарного патча на конкретную библиотеку?

Динамические библиотеки были придуманы for a reason.

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

Бандлинг входит в само определение Nix. Если я устанавливаю пакет, то я по определению устанавливаю вместе с ним конкретно те зависимости, с которыми он был собран. Это и называется бандлинг.

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

Ты ещё скажи, что DLL hell в Nix невозможен, т. к. в Linux нет DLL. :)

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

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

Вообще, здесь допущена (тобой) терминологическая ошибка. DLL hell — это у тебя второе предложение в составе сложноподчинённого. А «необходимость бандлить» — это костыль против DLL hell. Костыль, который в Nix возвели в ранг основополагающей идеи.

Ну и, самое дикое, «необходимость бандлить по копии DLL с каждым приложением», ага. Чего-чего, а «по копии» и «с каждым» - это точно не про Nix.

То, что Nix дедуплицирует всё что может дедуплицировать — это, скажем так, неасимптотическая оптимизация. Она ничего не меняет по сути. Если я по какой-то причине не могу воспользоваться костылём второго порядка под названием «бинарный кэш», то «по копии» и «с каждым» оказывается у меня на диске, в оперативной памяти(!), в кэше второго уровня(!!) и в TLB(!!!).

преступления против PM типа flatpak'ов не в счет

К слову, flatpak с его OSTree — это, как раз, единственное решение в своём роде, в котором реализована точно такая же дедупликация, что и в Nix. Можно даже сказать, что flatpak — это Nix done right(ish). Такое же говно, на самом деле, но хотя бы «такое же», а не «хуже», как Snap/AppImage (да ещё и с песочницей).

Итого: бандлинга нет

False.

копий нет

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

«с каждым» - нет

The only consolation (is a lie).

«DLL в системе» - нет

Ну, это как я уже сказал. :)

«приложение не взлетит» - нет, а так прям почти DLL Hell.

Да, это всё ради того, чтобы «„приложение не взлетит“ — нет». Починили то, что не сломаноDLL hell ценой здравого смысла.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 4)
Ответ на: комментарий от intelfx

Церковь Свидетелей Воспроизводимой Сборки основываются именно на этом предположении, т. к. без оного вообще нахер не нужны. :)

Я думал, это в первую очередь про безопасность и контроль сообщества над ментейнерами репозитариев.

Если я устанавливаю пакет, то я по определению устанавливаю вместе с ним конкретно те зависимости, с которыми он был собран. Это и называется бандлинг.

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

t184256, задам невежественный вопрос: если в NixOS собранный пакет иммутабелен и зависит от иммутабельных сборок зависимостей по билдхэшам, зависимость libsomething обновляется с версии 3.14 до 3.14.1, которая удовлетворяет все приложения, собранные с 3.14 - как происходит обновление приложений? У ментейнеров все пересобирается, у пользователей обнаруживается изменение в кэше хэшей установленных версий приложений, на которые ссылаются профили, и они перекачиваются вместе с новыми зависимостями?

Если я по какой-то причине не могу воспользоваться костылём второго порядка под названием «бинарный кэш», то «по копии» и «с каждым» оказывается у меня на диске, в оперативной памяти(!), в кэше второго уровня(!!) и в TLB(!!!).

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

Можно даже сказать, что flatpak — это Nix done right(ish).

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

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

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

На самом деле интересно, что мешает пересчитать билдхэш пакета при обновлении зависимости без пересборки пакета. Он зависит от информации, которая доступна только в процессе сборки?

shatsky ★★
()
Ответ на: комментарий от intelfx

[обратных? — intelfx]

обратных, спасибо

Но что это, если не pinning?

Давай сделаем два каких-то разных слова.

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

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

Что, если я накладываю патч с исправлением на glibc для экзотической архитектуры?

И override'ишь при этом pkgs.glibc? С теоретической стороны происходит примерно ничего. Твоя система пересобирается и каждая новая деривация начинает юзать новый glibc. С практической же твое качество жизни сильно проседает, потому что ты, по сути, лишаешься возможности юзать фирменный бинарный кеш и теперь собираешь все своими усилиями.

Или, например, собираю бинарный пакет с проприетарщиной под Nix (при этом я грамотный проприетарщик

Ахаха, вот это фантазия, можно мне в твой мир?

линкую всё динамически и хочу обеспечить пользователям возможность обновлять зависимости даже после смерти продукта)?

Ладно, допустим. Надо просто произвести маленькое вырождение. Просто делаешь деривацию с бинарями, зависящую от glibc, но не использующую ее при сборке и некоторое время твоя деривация действительно работает. Короче результат будет как для убунты, только реализованный для другого ПМ.

Или, например, если я оказался в ситуации, где пропускной способности хватит ровно на то, чтобы выкачать 10 КиБ бинарного патча на конкретную библиотеку?

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

Бандлинг входит в само определение Nix. Если я устанавливаю пакет, то я по определению устанавливаю вместе с ним конкретно те зависимости, с которыми он был собран. Это и называется бандлинг.

Это бандлинг, но у него moving target (см. пиннинг-альфа). «Конкретно те зависимости, с которыми он был собран» в 99% случаев - одна версия, и при появлении в nixpkgs следующей версии все обратные зависимости синхронно и атомарно шагнут на следующую.

Это бандлинг-альфа, он как пиннинг-альфа. Окромя rebuild-happiness в нем никаких минусов, одни плюсы. Если считаешь иначе, перечисли, пожалуйста, невидимые мне минусы.

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

Ты ещё скажи, что DLL hell в Nix невозможен, т. к. в Linux нет DLL. :)

А вот тут ты низко пал, даже обидно.

«DLL в системе нет» означало не «ахаха, DLL нет, значит и DLL Hell тоже». Это был бы детсад.

«DLL в системе нет» означало «самым близким к понятию системы является понятие профиля, а в профиль библиотеки не устанавливаются». В профиль, при идеальном следовании философии Nix, должны ставиться приложения и только они. В профиле нет glibc, а есть, допустим, inkscape и htop. Каждый из них волен тянуть свою glibc и видеть он будет только ее. По факту внутри одного поколения они все равно без дополнительных телодвижений будут видеть одну и ту же glibc, но если очень хочется, юзать разные тоже разрешено, и разрешено довольно элегантно.

Вообще, здесь допущена (тобой) терминологическая ошибка. DLL hell — это у тебя второе предложение в составе сложноподчинённого. А «необходимость бандлить» — это костыль против DLL hell.

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

Костыль, который в Nix возвели в ранг основополагающей идеи.

Ну вот нет. Я не вижу ничего плохого в практике pinning'a одной версии glibc на всю систему. Как не вижу плохого и в pinning'е конкретной версии glibc для отдельной софтины, при условии, что это ей край как надо и без этого она работать не будет. Надо так надо, что поделать. Nix тут хотя бы ограничит масштаб разрушений и подсунет патченный glibc только ей.

То, что Nix дедуплицирует всё что может дедуплицировать — это, скажем так, неасимптотическая оптимизация. Она ничего не меняет по сути.

А отсутствие необходимости ее делать изменило бы? Потому что оно есть. Обнови NixOS, собери мусор - и у тебя будет одна glibc и весь профиль будет зависеть только от нее. Если одной из сотен либ оказалось несколько версий, значит кто-то это явно попросил и на то есть веские причины. Не вижу смысла поносить такую возможность, еще и более гибкую чем «одновременная установка нескольких (мажорных) версий одного пакета».

Если я по какой-то причине не могу воспользоваться костылём второго порядка под названием «бинарный кэш», то «по копии» и «с каждым» оказывается у меня на диске, в оперативной памяти(!), в кэше второго уровня(!!) и в TLB(!!!).

Не понял истерики, пояснишь?

преступления против PM типа flatpak'ов не в счет

Можно даже сказать, что flatpak — это Nix done right(ish).

Сочту за оскорбление всего, во что верю =) Не может быть идеологически правилен PM, в котором проиграли даже в модульность.

Итого: бандлинга нет

False.

Тогда есть, но он хороший =)

копий нет

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

4.2. Если ты переопределишь pkgs.glibc, то есть для всей системы, никаких там копий не будет. Ты будешь отапливать квартиру три дня, но пока весь мир не пересоберется и ты, наконец переключишься на новый профиль, новая glibc не заюзается. Старая тоже останется, но юзаться перестанет.

«с каждым» - нет

The only consolation (is a lie).

См пиннинг-альфа.

«DLL в системе» - нет

Ну, это как я уже сказал. :)

ditto

t184256 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.