Побачив в когось з друзів в стімі ось таку прогу: MasterPlan. Ну й безперечно не міг пройти повз, бо дуже полюбляю різні #тулзи. Як раз шукаю дещо типу того для одного зі своїх пет-проектів, але по скрінах та відосах мало шо зрозуміло: чи підійде, чи не підійде — хз.
«Ну ок», — думаю, — «можна купити й спробувати». Пішов спочатку на сайт, щоб впевнитись, що це не росіянське лайно (спойлер:ніби ні ), аж раптом опинилось, що прога взагалі на ґітгабі. Треба збілдити тільки самому, але там Go — має бути нескладно.
Якщо сподобається, обовʼязково куплю. Проте, маю визнати, це було неочікувано.
«Ну ок», — думаю, — «можна купити й спробувати». Пішов спочатку на сайт, щоб впевнитись, що це не росіянське лайно (спойлер:
Якщо сподобається, обовʼязково куплю. Проте, маю визнати, це було неочікувано.
Steampowered
MasterPlan on Steam
Masterplan is a very well-received visual project planning tool made by a single indie dev for indie developers and creatives.
👀1
Cіпласпластик
Побачив в когось з друзів в стімі ось таку прогу: MasterPlan. Ну й безперечно не міг пройти повз, бо дуже полюбляю різні #тулзи. Як раз шукаю дещо типу того для одного зі своїх пет-проектів, але по скрінах та відосах мало шо зрозуміло: чи підійде, чи не підійде…
Це мені нагадало, як я надіслав свою мікролібу в Qt Marketplace, вказавши конкретну ціну, а вони такі: «ну ми побачили, що вона під BSD-ліцухою й доступна на ґітгабі, тому опублікували її безкоштовно» 🤡 Щиро, блять, дякую.
Але кьютовий маркетплейс все одно сплюндровано, тож гріх жалітися мабуть. Це останнє місце, куди я йду шукати ліби під Qt. Про що взагалі мова, якщо моя ліба більше, ніж півроку, висіла там першою в розділі Newest 😂
Але кьютовий маркетплейс все одно сплюндровано, тож гріх жалітися мабуть. Це останнє місце, куди я йду шукати ліби під Qt. Про що взагалі мова, якщо моя ліба більше, ніж півроку, висіла там першою в розділі Newest 😂
Qt Marketplace
QML-colors
Struggling with colors? Now you have an easier way of doing simple color transformations in QML bindings. See the example below: Rectangle { id: r1; color: 'red' } Rectangle { // oh god, I just wanted to add some transparency color: Qt.rgba(r1.color.r, r1.color.g…
😁3
Cіпласпластик
Побачив в когось з друзів в стімі ось таку прогу: MasterPlan. Ну й безперечно не міг пройти повз, бо дуже полюбляю різні #тулзи. Як раз шукаю дещо типу того для одного зі своїх пет-проектів, але по скрінах та відосах мало шо зрозуміло: чи підійде, чи не підійде…
Не без танців навколо, але зібрав. Прикольна штука, тільки ніц не зрозуміло ))
👀1
Всі вже бачили мабуть, але тут чуваки в проекті Valetudo намагаються відвʼязати робопилососи від вендорських серверів, без яких вони наразі не дуже працюють.
Мене останнім часом також дофіга хилить в бік local-first (а краще local-only), тож ініціативу я підтримую обома руками. От тільки мій пилосос наче відсутній в списку підтримуваних, а для отримання рута на найближчому його родичі треба повністю розбирати пристрій )
Коли там вже ЄС (або ще хтось) зобовʼяже надавати локальну апішку, якщо немає технічних перешкод?
Мене останнім часом також дофіга хилить в бік local-first (а краще local-only), тож ініціативу я підтримую обома руками. От тільки мій пилосос наче відсутній в списку підтримуваних, а для отримання рута на найближчому його родичі треба повністю розбирати пристрій )
Коли там вже ЄС (або ще хтось) зобовʼяже надавати локальну апішку, якщо немає технічних перешкод?
👍7
TIL в С++ в якості ідентифікаторів заборонені не тільки кейворди https://devblogs.microsoft.com/oldnewthing/20230109-00/?p=107685
Microsoft News
On leading underscores and names reserved by the C and C++ languages
The rules laid out.
👀1
Ого, оце нормальне доповнення до категорії #тулзи: Ventoy.
Замість того, аби постійно шити на завантажувальну флешку якісь образи, наприклад, для встановлення операційних систем, можна записати туди цей бутлоадер, а потім просто кидати на флешку iso-шки (чи навіть vhd-шки) файлами і бутатись з них.
Думаю, зроблю собі окрему таку на всяк випадок.
Замість того, аби постійно шити на завантажувальну флешку якісь образи, наприклад, для встановлення операційних систем, можна записати туди цей бутлоадер, а потім просто кидати на флешку iso-шки (чи навіть vhd-шки) файлами і бутатись з них.
Думаю, зроблю собі окрему таку на всяк випадок.
👍5
Побачив сьогодні цю хєрню, що на превʼюшці (досі сподіваюсь, що це жарт). Спочатку не зрозумів, як таке взагалі могло б працювати, а потім як зрозумів ахаха! Отже, хто його зна, нащо я це зробив, але мені вдалось примусити його працювати в трохи зміненому вигляді навіть без С++23 (проте з додаванням user-defined literal на жаль):
static_assert(5 +- 1_Δ >= 4);Подивитись можна отут: https://replit.com/@GooRoo/PlusMinus
static_assert(5 +- 1_Δ <= 6);
replit
PlusMinus
An attempt to define an `operator±` in C++.
👍1👀1
Вчора випадково знайшов скрін «гри», котру ми зробили за добу, коли брали участь в DOU Хакатоні в Харкові одинадцять з половиною років тому. Вирішив оновити репозиторій.
Круті часи були.
Круті часи були.
GitHub
GitHub - Heratorz/douhack-2011
Contribute to Heratorz/douhack-2011 development by creating an account on GitHub.
❤1
Там в Епіку, до речі, роздають Epistory (майже тавтологія, так), яку я нещодавно як раз-от пройшов. Це такий типу тайпінг-тренажер під виглядом гри, чи може навпаки… В середньому враження на рівні «not great, not terrible», бо вона непогана, але й прям радити її не можу. (Що цікаво, в Steam вона є під macOS також, а в Epic Games чомусь виключно Windows 🤔).
Але цей допис не стільки про #ігри, скільки про імплементацію локалізації. Української в грі на жаль немає, тож я спочатку обрав мову друкування англійську, а мову користувацького інтерфейсу — російську (чисто звичка, аби саби були, бо переймаюсь, що можу щось англійською не зрозуміти, хоча такої проблеми давно вже не було).
В певний момент в грі зʼявляється можливість «стріляти» різними стихіями, а перемикати стихії авжеж треба, друкуючи відповідний текст з назвою. Так от, нагадую, текст я весь тайпав англійською, а стихії, як виявилось, треба перемикати російcькою, бо їх назви — це ЧАСТИНА ІНТЕРФЕЙСУ 🤡
Це мабуть вже мільйон перший приклад того, що носії англійської (чи хоча б мови, що використовує латинку) тупо не враховують необхідність переключати розкладку, бо не можуть осягнути, як це — жити з декількома.
Якби ж я подібне виключно в іграх зустрічав, то ще норм, але мені якась схожа хєрня трапляється регулярно прям на очі. Заїбало реально. Найбільш шизрофренічний випадок в мене був чи то в Uplay, чи то в Origin колись, коли частина UI в мене була українською (бо в налаштуваннях обрав), частина німецькою (бо в Німеччині знаходився), а частина англійською (бо я навіть хз чому — тупо «так вийшло»). Причому якщо трохи походити по сторінках, то можна було потрапити в те саме місце, але вже з іншим набором мов! 🤯
З росіянською в Epistory був не правий, визнаю. Дограв вже чисто англійською авжеж. Нічого не втратив — навіть навпаки.
Але цей допис не стільки про #ігри, скільки про імплементацію локалізації. Української в грі на жаль немає, тож я спочатку обрав мову друкування англійську, а мову користувацького інтерфейсу — російську (чисто звичка, аби саби були, бо переймаюсь, що можу щось англійською не зрозуміти, хоча такої проблеми давно вже не було).
В певний момент в грі зʼявляється можливість «стріляти» різними стихіями, а перемикати стихії авжеж треба, друкуючи відповідний текст з назвою. Так от, нагадую, текст я весь тайпав англійською, а стихії, як виявилось, треба перемикати російcькою, бо їх назви — це ЧАСТИНА ІНТЕРФЕЙСУ 🤡
Це мабуть вже мільйон перший приклад того, що носії англійської (чи хоча б мови, що використовує латинку) тупо не враховують необхідність переключати розкладку, бо не можуть осягнути, як це — жити з декількома.
Якби ж я подібне виключно в іграх зустрічав, то ще норм, але мені якась схожа хєрня трапляється регулярно прям на очі. Заїбало реально. Найбільш шизрофренічний випадок в мене був чи то в Uplay, чи то в Origin колись, коли частина UI в мене була українською (бо в налаштуваннях обрав), частина німецькою (бо в Німеччині знаходився), а частина англійською (бо я навіть хз чому — тупо «так вийшло»). Причому якщо трохи походити по сторінках, то можна було потрапити в те саме місце, але вже з іншим набором мов! 🤯
Epic Games Store
Epistory - Typing Chronicles | Download and Buy Today - Epic Games Store
Download and play Epistory - Typing Chronicles at the Epic Games Store. Check for platform availability and price!
😁1
Дід Бьярне раптом прокинувся та написав «атвєтку» АНБ, котре чверть року тому назвало С++ недостатньо safe та порадило натомість переходити на всілякі Go і Swift (та інші Rust'и): https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2739r0.pdf
Пише, мовляв, ссану сішечку та божественні плюси постійно поєднують у в'язку C/C++, в той час як останні пройшли довжелезний шлях і стали зовсім іншою мовою за останні 30 років. Тут я цілком погоджуюсь: мене теж дратує шопиздець, коли пишуть C/C++, ніби це одне й те саме (сішка, до речі, також на місці не стояла, але… ну, вона досі сішка).
А далі він починає розказувати, чого ж саме вони досягли: типу пододавали купу всього для тайп-, тред- та ресурс-сейфті в стандартну лібу, наробили мільйон тулів для аналізу тощо. Все це безперечно правда, але ж лукавий Бьярне не каже, що вся ця срань опціональна! В цьому ж найбільша проблема й полягає: якщо можна щось не робити — це не зроблять, якщо можна зробити «неправильно» — зроблять неправильно. (Іронічно, що найкраще це видно як раз по останніх стандартах C++ 🥲).
Я плюси досі люблю, але в цьому питанні вже схиляюсь в бік АНБ.
Пише, мовляв, ссану сішечку та божественні плюси постійно поєднують у в'язку C/C++, в той час як останні пройшли довжелезний шлях і стали зовсім іншою мовою за останні 30 років. Тут я цілком погоджуюсь: мене теж дратує шопиздець, коли пишуть C/C++, ніби це одне й те саме (сішка, до речі, також на місці не стояла, але… ну, вона досі сішка).
А далі він починає розказувати, чого ж саме вони досягли: типу пододавали купу всього для тайп-, тред- та ресурс-сейфті в стандартну лібу, наробили мільйон тулів для аналізу тощо. Все це безперечно правда, але ж лукавий Бьярне не каже, що вся ця срань опціональна! В цьому ж найбільша проблема й полягає: якщо можна щось не робити — це не зроблять, якщо можна зробити «неправильно» — зроблять неправильно. (Іронічно, що найкраще це видно як раз по останніх стандартах C++ 🥲).
Я плюси досі люблю, але в цьому питанні вже схиляюсь в бік АНБ.
👍2👎1😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Зацініть, на яку фічу щойно натрапив в Vivaldi. (Бля, ну не хромом же користуватись, альо. Едж також чимось не зайшов). Активується затисканням ⌘
👍3👀1
Як відомо, завжди є простір для покращень. Сьогоднішня тема — білд-інструкції.
Як часто вам доводиться онбордити когось в проєкт? Ну, навряд чи часто, еге ж? Мені ось ніби теж. Наприклад, поточний проєкт в зоні моєї відповідальності цілковито розробляється командою, склад якої не змінювався вже майже два роки. Які шанси, що не буде нікого, хто б міг пояснити, як його хоча б збілдити? Вельми низькі.
Але інтуїтивно я все ж напружуюсь від усвідомлення, що в нас навіть вимоги до середовища ніде не розписані. (Ось візьмемо опен-сорс. Можна фанатіти від нього, можна навпроти, але важко сперечатись, що опен-сорс подарував нам хоча б правила нормального оформлення рідмі. Фактично, якийсь загальний опис + інструкції по використанню — це необхідна, хоч і не достатня умова популярності вашого відкритого проєкту).
А у нас в рідмі тільки назва!Причини Відмазочки теж є авжеж. По-перше, в якомусь, нехай й трохи розмазаному вигляді вимоги до енвайрменту є прям в білд-скриптах, але це треба шарити, де шукати, або вміти читати повідомлення про помилки в лоґах. По-друге, я все ж витратив чимало енергії, аби у нас все збиралось та запускалось одним команд-лайном. Тобто не все так погано, але ж можна краще.
Як часто вам доводиться онбордити когось в проєкт? Ну, навряд чи часто, еге ж? Мені ось ніби теж. Наприклад, поточний проєкт в зоні моєї відповідальності цілковито розробляється командою, склад якої не змінювався вже майже два роки. Які шанси, що не буде нікого, хто б міг пояснити, як його хоча б збілдити? Вельми низькі.
Але інтуїтивно я все ж напружуюсь від усвідомлення, що в нас навіть вимоги до середовища ніде не розписані. (Ось візьмемо опен-сорс. Можна фанатіти від нього, можна навпроти, але важко сперечатись, що опен-сорс подарував нам хоча б правила нормального оформлення рідмі. Фактично, якийсь загальний опис + інструкції по використанню — це необхідна, хоч і не достатня умова популярності вашого відкритого проєкту).
А у нас в рідмі тільки назва!
👀1
Cіпласпластик
Як відомо, завжди є простір для покращень. Сьогоднішня тема — білд-інструкції. Як часто вам доводиться онбордити когось в проєкт? Ну, навряд чи часто, еге ж? Мені ось ніби теж. Наприклад, поточний проєкт в зоні моєї відповідальності цілковито розробляється…
Треба бути чесним із собою: в середньому мені чхати на чийсь онбордінг. Два людинодні туди, два сюди — на дедлайни не вплине, ніхто не зауважить. А ось на кого мені не пох, так це на себе, особливо в умовах декількох проєктів, чи то робочих, чи власних — не важливо.
Раніше було як: почав пет-проєкт, не доробив, викинув. Згодом стало так: почав пет-проєкт, доробив, більше не чіпаєш. Тепер я вже на тій сходинці, коли навіть пет-проекти інколи є бажання і потреба підтримувати, іншими словами — треба до них повертатись та згадувати, що там і як.
Чого я точно не хочу робити, так це писати якісь інструкції в документацію, яка стане невалідною вже за день. Особливо волаю з намагань підтримувати актуальність білд-інструкцій на якомусь повністю відірваному від коду Confluence, як в одному з наших минулих проєктів на кількасот програмістів (там таких інструкцій було щонайменше чотири різних — одну написав я 😁). Тож загалом шляхи два: або генерувати документацію з коду, або робити код документацією.
Перше я вже пробував, воно працює, можна використовувати. Але ж я сам в доки дивлюсь тільки якщо вже капець.
А для другого я кілька тижнів тому натрапив на нового постійного мешканця моєї рубрики корисні #тулзи: just. Це такий типу
Було:
Покращення!™
Раніше було як: почав пет-проєкт, не доробив, викинув. Згодом стало так: почав пет-проєкт, доробив, більше не чіпаєш. Тепер я вже на тій сходинці, коли навіть пет-проекти інколи є бажання і потреба підтримувати, іншими словами — треба до них повертатись та згадувати, що там і як.
Чого я точно не хочу робити, так це писати якісь інструкції в документацію, яка стане невалідною вже за день. Особливо волаю з намагань підтримувати актуальність білд-інструкцій на якомусь повністю відірваному від коду Confluence, як в одному з наших минулих проєктів на кількасот програмістів (там таких інструкцій було щонайменше чотири різних — одну написав я 😁). Тож загалом шляхи два: або генерувати документацію з коду, або робити код документацією.
Перше я вже пробував, воно працює, можна використовувати. Але ж я сам в доки дивлюсь тільки якщо вже капець.
А для другого я кілька тижнів тому натрапив на нового постійного мешканця моєї рубрики корисні #тулзи: just. Це такий типу
make
, але спрощений. Головне, що це не білд-система, а тупий запускач команд. Я наразі описав там setup-env
, яка ставить потрібне через brew
та фігачить автоматично налаштування, а також базові build
, run
, test
, package
, show-docs
тощо. Було:
qbs build -d build config:debug -p app -- --lastСтало:
just run-lastБуло:
qbs build -d build config:release -p autotest-runnerСтало:
just testПланую тепер в усі свої проєкти класти аналогічний
justfile
, аби можна було дати раду, що взагалі можна з ним робити.Покращення!™
GitHub
GitHub - casey/just: 🤖 Just a command runner
🤖 Just a command runner. Contribute to casey/just development by creating an account on GitHub.
👀1
Cіпласпластик
Треба бути чесним із собою: в середньому мені чхати на чийсь онбордінг. Два людинодні туди, два сюди — на дедлайни не вплине, ніхто не зауважить. А ось на кого мені не пох, так це на себе, особливо в умовах декількох проєктів, чи то робочих, чи власних — не…
Окремої уваги заслуговує назва. Взагалі дуже полюбляю, коли у тулзів дуже влучні й логічні назви. Серед прикладів одразу спадають на думку цей
just
, а також go get
, fuck
(aka thefuck). Ніби ще щось було.👀1
Щоразу, як я думаю: «О, треба швиденько дістати якісь дані з JSON-у, тож юзну jq» — щоразу, блять, це є помилкою. Може хтось цілими днями тільки джсони парсить і їм норм, але в моєму випадку це вже за пʼять хвилин марних намагань згадати синтаксис перетворюється на чергове перечитування мануалу та пошук відповідей на свої запитання в гуглі. І ніби складного нічого немає: тупо пайпи та селектори — але мозок відмовляється це зберігати в памʼяті (на відміну від того ж SQL, до речі — хз, як так).
Ось зараз думаю такий: дай-но гляну, хто більше ставить апрувів на PRʼах в нашому проєкті на ґітгабі. Витратив майже півгодини й отримав якусь таку (врешті працюючу) хуйню:
(Це якщо хтось запустив в себе). Ну бо я так і не зарадив, як інакше це зробити. Думаю, на пітоні я б за 10 хвилин нормально написав, більша частина з яких пішла б на боротьбу з середовищем. Але не челенджево якось 😬
Проте це зайве нагадування, що хороші #тулзи — це ті, котрими вмієш користуватись.
Ось зараз думаю такий: дай-но гляну, хто більше ставить апрувів на PRʼах в нашому проєкті на ґітгабі. Витратив майже півгодини й отримав якусь таку (врешті працюючу) хуйню:
gh pr list --state all --search "closed:>2022-09-01" --json reviews | jq "[ [.[].reviews[]] | group_by(.author.login)[] | {(.[0].author.login): [.[]] | length} ]"Чому формат такий всратий на виході?
Проте це зайве нагадування, що хороші #тулзи — це ті, котрими вмієш користуватись.
👍2😁1
Cіпласпластик
Щоразу, як я думаю: «О, треба швиденько дістати якісь дані з JSON-у, тож юзну jq» — щоразу, блять, це є помилкою. Може хтось цілими днями тільки джсони парсить і їм норм, але в моєму випадку це вже за пʼять хвилин марних намагань згадати синтаксис перетворюється…
Там перед
але то вже деталі.
| group_by(...)
ще треба додати щось типу| map(select(.state == "APPROVED"))
але то вже деталі.
👀1
Cіпласпластик
Щоразу, як я думаю: «О, треба швиденько дістати якісь дані з JSON-у, тож юзну jq» — щоразу, блять, це є помилкою. Може хтось цілими днями тільки джсони парсить і їм норм, але в моєму випадку це вже за пʼять хвилин марних намагань згадати синтаксис перетворюється…
До речі, воно на диво непогано парується з
just
, про який я згадував вчора чи коли. Тепер можна написати просто:just show-approvers-since 2022-09-01Причому це не те шо я тіпа як менеджер збираю всраті KPI на веслярів — все прозоро й доступно будь-кому в команді 😉
👀1
Жарти жартами, але ChatGPT все ж вражає. Знадобилось мені значить на GitHub Enterprise додати купу issues до проєкту (а bulk edit там немає авжеж, це ж ґітгаб, тю 🤡).
Ну і я щось гугланув спочатку, якийсь знайшов скриптєц на Python та GraphQL API. Ніхуя не запрацювало авжеж, бо скрипту вже «аж роки два». Зворотня сумісність? — Ні, не чули. Ну, я спробував його пофіксити швиденько, хоча GraphQL не шарю. Подивився доки з мʼютейшном, котрий треба зробити, аби в проєкт же ж додати. В доках два різних варіанти — жодний не підходить, бо версія сервера не та. Документації на потрібну версію немає авжеж, а ви хулі думали? Ну тож я поліз в Insomnia (це в добірку #тулзи), подивився там схему, підходящого нічого не знайшов… Отже, заїбало добряче так все це.
«Добре», — думаю, — «вже півгодини витратив на хуйню. Ще не у розпачі, але роздратований. Спитаюся краще у славнозвісного AI».(Знаєте до речі, як AIʼшка українською? Ми з друганом придумали вже: #ШІшка ! Користуйтесь 😂). А ChatGPT мені й каже:
— Нах той GraphQL, юзай натомість REST.
— А код на баші мені з
І він показує. А я такий:
— Бля, забув, що в мене проєкт не до репозиторію відноситься, а належить організації. Дай мені оновлену версію скрипта.
— Тримай оновлену, — каже, сумлінно позамінявши API-виклики на потрібні.
І воно працює 🤯 Довелось тільки додати пару командлайн-світчів, аби хост вказати, певні параметри тощо. Це пиздець, панове. Дуже круто!
Ну і я щось гугланув спочатку, якийсь знайшов скриптєц на Python та GraphQL API. Ніхуя не запрацювало авжеж, бо скрипту вже «аж роки два». Зворотня сумісність? — Ні, не чули. Ну, я спробував його пофіксити швиденько, хоча GraphQL не шарю. Подивився доки з мʼютейшном, котрий треба зробити, аби в проєкт же ж додати. В доках два різних варіанти — жодний не підходить, бо версія сервера не та. Документації на потрібну версію немає авжеж, а ви хулі думали? Ну тож я поліз в Insomnia (це в добірку #тулзи), подивився там схему, підходящого нічого не знайшов… Отже, заїбало добряче так все це.
«Добре», — думаю, — «вже півгодини витратив на хуйню. Ще не у розпачі, але роздратований. Спитаюся краще у славнозвісного AI».
— Нах той GraphQL, юзай натомість REST.
— А код на баші мені з
gh
CLI покажи тоді, м? — продовжую я. І він показує. А я такий:
— Бля, забув, що в мене проєкт не до репозиторію відноситься, а належить організації. Дай мені оновлену версію скрипта.
— Тримай оновлену, — каже, сумлінно позамінявши API-виклики на потрібні.
І воно працює 🤯 Довелось тільки додати пару командлайн-світчів, аби хост вказати, певні параметри тощо. Це пиздець, панове. Дуже круто!
insomnia.rest
The Collaborative API Development Platform
Leading Open Source API Development Platform for HTTP, REST, GraphQL, gRPC, SOAP, and WebSockets
🔥1🤡1