TGViewer
Роздуми Спрощенця Роздуми Спрощенця @decomplexifier · 230 subscribers
Post #11 479
‍Дуже часто, коли розробляються нові програми, ми спочатку реалізуємо те, що виглядає простіше, аби отримати перші результати швидше. Але потім це часто призводить до того, що складні варіанти тим чи іншим чином просто не вписуються до загальної картинки, і доводиться або переписувати, або якось прикручувати, аби працювало. Або взагалі неможливі!

Я помітив, що останнім часом, в мене з'явилася тенденція спробувати атакувати складну частину або конфігурацію з майже самого початку. Ідея полягає у тому, що якщо це спрацює, то потім все інше буде значно простіше і принаймні, так чином ми подивимося на менш-трівіальні випадки.

Ось приклад з поточного досвіду:

Треба побудувати систему на кшталт nixpkgs (але простіше), де можна було б збирати бінарні білди покроково в ізоляції. Є спокуса почати з простого і зробити все це на базі умовного docker/podman. Це знайомо і буде працювати на лінуксі.

А що з іншими ОС? Ну, коли ми до того дійдем, там будемо розраховувати на якійсь варіант типу Docker Desktop та віртуальною машиною.

Ну добре, а що якщо ми хотіли б мати білди для, наприклад, macOS? Хмм.

Таким чином я дійшов до того, що треба спочатку сфокусуватись на більш складних варіантах. І от тут я кілька тижнів тому трохи почитав та погрався з Virtualization Framework. І що я вам можу сказати: якщо це спрацює, решта проекту буде, напевно, як свято! Бо API та можливості там, здається, розроблено так, щоб максимально уповільнити темпи росту віртуалізаціі на маку.

Почнемо з того, що немає API для отримання IP-адреси віртуальної машини яку ти щойно запустив. Ну гаразд, це можна обійти, подивившись на таблицю раутінгу. Якщо ми встановлюємо macOS, то я не знайшов варіанту, як налаштувати будь який крок у тих величезних ipfw файлах, з яких йде інсталяція. Щоб, наприклад, вказати пароль до адміністративного акаунта. Ну, добре, тут можна створити готові нові дискові образи з готовими інсталяціямі і налаштувати все там за допомогою скрипта. Для кожної версії. Але, годі, Xcode, навіть тільки якщо попросити його встановити тільки command line tools, через ssh без GUI принципово відмовляється встановлюватись!..

Шлях непростий, але вихід (майже) завжди є. Більш того, маючи готові інструменти та досвід для Virtualization Framework, їх можна бути використати для лінуксових білдів на macOS без інсталяції власне докеру чи чогось такого.

Після цього мені й Windows не буде страшний!

А як у вас з цим? “Happy case” спочатку чи ні?
  • 🤔 4
  • 🔥 3
More from @decomplexifier
  1. Aug 2, 2024У мене таке питання: чи є серед вас ті, хто ненавидить відлагодження SQL запитів? А як щод…
  2. Jun 14, 2024‍Тут ось яка ідея виникла: можливо іноді шукати програмістів з прямим релевантним досвідом…
  3. Oct 30, 2023‍Хвилинка самореклами. 🤡 Як ви можете пам’ятати, я Омнігресом займався з минулого року. А…
  4. Aug 26, 2023Коротка новина: нарешті зробив перший реліз досить нішевого інструмента, pg_yregress Якщо…
  5. Jul 30, 2023Я тут написав статтю про архітектуру разом з автором SQLPage і вона зараз на front page Ha…
  6. Jul 21, 2023Мене завжди дратував той факт, що для написання якоїсь бізнес-логіки на чомусь окрім SQL а…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →