Незважаючи на назву каналу, я взагалі-то не розраховував, що найперший же пост буде про C++. Але стан підтримки цієї мови мене знов доїбав.
Вирішили ми, значить, перейти на С++20, в першу чергу заради рейнджів. Оновити Clang на лінуксовому білд-сервері мабуть було найлегше, навіть враховуючи, що раптом виявилось, що ні в кого немає працюючих креденшиалзів, щоб на сервер взагалі зайти 😅 Віндового серверу в нас немає — замість цього я просто використовую якийсь ноутбук. І все в цілому збс окрім факту, що він вимагає пароль після ребуту (бо Bitlocker), а я на ремоуті. І авжеж при оновленні віжуал студії вона посеред інсталяції почала вимагати ребут. Для macOS в мене старий макміні. Оновити компілятор? Легко! Тільки треба оновити Xcode. А щоб оновити Xcode, треба оновити операційну систему також. Навіть є спеціальна тулза (UPD: тепер ще є тег #тулзи), яка показує різні версії Xcode та їх реквайрменти. Ну то добре: трохи зайобно, але можна й пооновлювати. Все це не має відношення до C++, я знаю. Єбля з енвайрментом — звичайні буденні справи айтішників.
Проте останньою краплею був момент, коли «раптово» виявилось, що сучий Apple Clang не підтримує рейнджі навіть в 14-й версії ахах 💩 Я навіть хз, що тут додати. Прогавив, ага. Треба тепер чи то колупатись з ніблеровими рейнджами замість стд-шних, чи то просто легше повернутись на С++17. Кінець 2022 року на дворі, а підтримка фічей минулих стандартів в компіляторах — це тупо лотерея. Легше в реальних кросплатформних проектах не чіпати того всього взагалі. Ніби 15 років розвитку прям, нові «корисні» фічі, а воно досі придатне хіба що похизуватись на конференціях та в статтях, як охуєнно на етапі компіляції можна робити те, що нікому й не спадало на думку, або як легко генерувати рандомні числа за десятьма різними законами розподілу. А шо там зі стандартними механізмами роботи з файловою системою за 40 років існування мови? Шо, вже рік як там? Ого! А календар вже зайшов в стандарт? А, зайшов, але не імплементований, ну ок. А може навіть парсер команд-лайн аргументів вже є? А нє, нє, це досі мрії…
В цілому мені це нагадує, чому я колись відмовився від хаскелю. Ні, там не було таких проблем з оновленням, та й з лібами все значно краще, ставити їх легше і т.д. Але розробка на ньому зрештою все одно — «too much effort». В С++ все навіть гірше, бо проблеми починаються ще на етапі налаштування середовища, а закінчуються на змогах розповсюджувати софт, на ньому написаний. Тож після всіляких Red, де весь тулчейн — це один бінарь, починаєш замислюватись, а чи варто взагалі свій час на то витрачати? Й причин це робити майже не залишилось.
Вирішили ми, значить, перейти на С++20, в першу чергу заради рейнджів. Оновити Clang на лінуксовому білд-сервері мабуть було найлегше, навіть враховуючи, що раптом виявилось, що ні в кого немає працюючих креденшиалзів, щоб на сервер взагалі зайти 😅 Віндового серверу в нас немає — замість цього я просто використовую якийсь ноутбук. І все в цілому збс окрім факту, що він вимагає пароль після ребуту (бо Bitlocker), а я на ремоуті. І авжеж при оновленні віжуал студії вона посеред інсталяції почала вимагати ребут. Для macOS в мене старий макміні. Оновити компілятор? Легко! Тільки треба оновити Xcode. А щоб оновити Xcode, треба оновити операційну систему також. Навіть є спеціальна тулза (UPD: тепер ще є тег #тулзи), яка показує різні версії Xcode та їх реквайрменти. Ну то добре: трохи зайобно, але можна й пооновлювати. Все це не має відношення до C++, я знаю. Єбля з енвайрментом — звичайні буденні справи айтішників.
Проте останньою краплею був момент, коли «раптово» виявилось, що сучий Apple Clang не підтримує рейнджі навіть в 14-й версії ахах 💩 Я навіть хз, що тут додати. Прогавив, ага. Треба тепер чи то колупатись з ніблеровими рейнджами замість стд-шних, чи то просто легше повернутись на С++17. Кінець 2022 року на дворі, а підтримка фічей минулих стандартів в компіляторах — це тупо лотерея. Легше в реальних кросплатформних проектах не чіпати того всього взагалі. Ніби 15 років розвитку прям, нові «корисні» фічі, а воно досі придатне хіба що похизуватись на конференціях та в статтях, як охуєнно на етапі компіляції можна робити те, що нікому й не спадало на думку, або як легко генерувати рандомні числа за десятьма різними законами розподілу. А шо там зі стандартними механізмами роботи з файловою системою за 40 років існування мови? Шо, вже рік як там? Ого! А календар вже зайшов в стандарт? А, зайшов, але не імплементований, ну ок. А може навіть парсер команд-лайн аргументів вже є? А нє, нє, це досі мрії…
В цілому мені це нагадує, чому я колись відмовився від хаскелю. Ні, там не було таких проблем з оновленням, та й з лібами все значно краще, ставити їх легше і т.д. Але розробка на ньому зрештою все одно — «too much effort». В С++ все навіть гірше, бо проблеми починаються ще на етапі налаштування середовища, а закінчуються на змогах розповсюджувати софт, на ньому написаний. Тож після всіляких Red, де весь тулчейн — це один бінарь, починаєш замислюватись, а чи варто взагалі свій час на то витрачати? Й причин це робити майже не залишилось.
GitHub
GitHub - XcodesOrg/XcodesApp: The easiest way to install and switch between multiple versions of Xcode - with a mouse click.
The easiest way to install and switch between multiple versions of Xcode - with a mouse click. - GitHub - XcodesOrg/XcodesApp: The easiest way to install and switch between multiple versions of Xc...
👍4😢1
Купив я значить собі колись NAS (мережеве сховище тобто). В першу чергу для бекапів та щоб можна було кіношку через Plex на проекторі подивитись. Так він в мене й стояв декілька років пасивно використовуваний та мабуть і далі продовжував би, але якось я натрапив на таку штуку як Paperless, про яку колись ще розповім. Треба було десь затестити, а засмічувати локально собі комп не хотілось, тож я раптово усвідомив, що мій NAS — фактично не дуже потужний, але все-таки Linux-сервер (на Celeron'і, ага, ну шо поробиш). Сховище це в мене від Synology, який я дуже раджу, бо він прям для нубасів типу мене. Там через web UI купу речей можна зробити, починаючи від налаштування реверс-проксі і DNS-сервера й закінчуючи докером. Деякі штуки через SSH значно легше робити безперечно, але мати змогу обійтись без нього (не теоретично, а прям реально на практиці) — це за теперішніх часів ачівка майже. Ще б локалізацію українською додали, то взагалі б було чудово.
👍2
Cіпласпластик
Купив я значить собі колись NAS (мережеве сховище тобто). В першу чергу для бекапів та щоб можна було кіношку через Plex на проекторі подивитись. Так він в мене й стояв декілька років пасивно використовуваний та мабуть і далі продовжував би, але якось я натрапив…
А щойно я ось взагалі сидів і читав, як під юнікс драйвер для принтера написати 😂 І це для мене не дуже типове використання часу, маю сказати, тож вирішив згадати, з чого все почалось. Подивимось, куди врешті-решт заведе, але принаймні за цей період дізнався багато нового )
👍1
Здибав вчора застосунок, аби дивитись вміст
UPD: додав в #тулзи
pkg
-файлів на #macOS. Це мабуть трохи олдскул, але мене прям бісить ця хуйня, коли воно щось ставить в систему, а що й куди — невідомо. Отже: Suspicious Package.UPD: додав в #тулзи
Mothersruin
Suspicious Package — An app for inspecting macOS Installer packages
👍1
Cіпласпластик
У джавістів вдома пакет з пакетом з пакетом з пакетами в пакеті, схоже
Тим часом проект на С++ (жодної папки взагалі)
😁5
Cіпласпластик
Тим часом проект на С++ (жодної папки взагалі)
Щонайменше половина читачів, як виявилось, не зрозуміла, що я вважаю плюс-мінус лайном обидва варіанти, а не тільки перший ) Тобто немає нічого прикольного у варіанті без папок взагалі — це ж тупо звалище якесь. Половина читачів… і це враховуючи, що в мене 4 підписники всього зі мною включно ахахаха 😂
😁1
Друзяка скинув вчора отаку штуку https://rclone.org (піде в рубрику #тулзи).
На тому ж сінолоджі є плюс-мінус аналогічний Cloud Sync, але він підтримує втричі меншу кількість сервісів. З Rclone, схоже, технічний бік питання переїзду на інший клауд можна закривати.
На тому ж сінолоджі є плюс-мінус аналогічний Cloud Sync, але він підтримує втричі меншу кількість сервісів. З Rclone, схоже, технічний бік питання переїзду на інший клауд можна закривати.
Rclone
Rclone syncs your files to cloud storage: Google Drive, S3, Swift, Dropbox, Google Cloud Storage, Azure, Box and many more.
👍1🔥1
Я якось перебував під враженням, що Elm — це такий собі Haskell під вебфронтенд, на перший погляд місцями позбавлений упоротої хуйні трішечки спрощений. Аж доки мені не довелося на ньому трохи пописати нещодавно. Ну й (на другий вже погляд) це дві різні мови майже. Спорідненість рівня Commodore BASIC та VB.NET: ніби синтаксис схожий, але в елмі немає й половини можливостей хаскелю. Наприклад, в останньому можна паттерн-матчити прям в параметрах функції, і це реально дуже лаконічно та зручно, а в Elm можна тільки в
Але… Якщо змиритись із незручностями за браком деяких звичних фічей, то писати код раптом стає доволі приємно. Навіть зникає відчуття, що мозок дарма спалює калорії на вирішення безглуздих проблем, котрі тобі підкидає компілятор. Тобто починаєш розʼязувати саме свої задачі, задля яких ти, власне, сів код писати.
case ... of
; паттерн-ґарди? — ні, не чули; кастомні оператори були, але наразі заборонені; інфіксного запису для звичайних функцій також немає; тощо. Тайп-класів теж нема, хоча є аж чотири констрейнти для типів. Документація — це сторінки з двома абзацами тексту на топік. Але… Якщо змиритись із незручностями за браком деяких звичних фічей, то писати код раптом стає доволі приємно. Навіть зникає відчуття, що мозок дарма спалює калорії на вирішення безглуздих проблем, котрі тобі підкидає компілятор. Тобто починаєш розʼязувати саме свої задачі, задля яких ти, власне, сів код писати.
elm-lang.org
Elm - delightful language for reliable web applications
A delightful language with friendly error messages, great performance, small assets, and no runtime exceptions.
👍1
Ох, ну ніхуя, Qt пофіксили баг (QTBUG-77428) про hoisting
let
та const
в #QML, який я зарепортив три роки тому ⌛️👍4