Cіпласпластик
470 subscribers
147 photos
32 videos
2 files
242 links
🇺🇦 Про айті та дотичні теми загалом, ну й трохи про C++.

Мої емоджі:
https://t.me/addemoji/AdaptiveDevIcons
https://t.me/addemoji/VehicleBrands
Download Telegram
Ну ок, яка ваша улюблена ОС для робочих задач?
Final Results
38%
Linux
18%
Windows
42%
macOS
1%
Android
0%
iOS/iPadOS
1%
Plan 9
0%
Haiku OS
1%
Інша
А яка улюблена ОС для хобі й відпочинку?
Final Results
32%
Linux
31%
Windows
29%
macOS
2%
Android
4%
iOS/iPadOS
2%
Інша
This media is not supported in your browser
VIEW IN TELEGRAM
Натрапив на плагін для Neovim, який додає (8-бітні) звуки — player-one.nvim. І на диво мені подобається!

Нє, програвати звук на кожну літеру — це повна дурня звісно 🙉
Але загалом ідея мати різні звуки на різні типи дій дуже класна. Я часто сварю 💻 за його режимність, проте, звуки цю проблему трохи нівелюють, бо додають ще один орган чуття. Після цього відео без них якось вже почуваєш себе глухим, заходячи в редактор. Наче в камері сенсорної депривації кодиш.

Це трохи нагадує мені гру на геймпаді в порівнянні з грою на клавіатурі з мишкою. Коли я після 🎮 сідаю за клавомишку ⌨️🖱, то почуваюся дуже спантеличеним — наче кольорів менше стало або звук вимкнули, або щось таке. І тільки потім доходить, що вібри немає. Я майже виключно граю саме геймпадом і вже звик, що фізично відчуваю багато різних дій і станів у грі, завдяки чому краще занурююся у її світ. А з мишкою ти просто тримаєш в руці шматок пластика й дивишся на пласкі картинки на екрані.

Повертаючись до плагіна, хочу ще додати, що самі звуки доволі приємні підібрані. Саунд-дизайн — це взагалі окрема тема розмови. Мало хто вміє робити його класно.

А як на ваш думку: пустощі чи щось у цьому є?
Please open Telegram to view this post
VIEW IN TELEGRAM
Я дуже люблю різноманітні мови програмування — у першу чергу за можливість побачити якісь нові цікаві ідеї й додати їх до свого набору інструментів.

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

І, наприклад, саме завдяки цьому я зміг розв'язувати останній Advent of Code іншою мовою програмування щодня (хто не бачив, почитайте вище грудневі дописи, якщо цікаво). Хоча чимось дійсно новим для мене став тільки Prolog 🦉, від якого я в захваті.

А зараз подивився чудову доповідь про майже відсутню еволюцію в сучасних мовах програмування. Вражає, як купка людей, імена яких ви всі неодноразово чули, заклали фундамент на десятиріччя вперед.
Please open Telegram to view this post
VIEW IN TELEGRAM
Сиджу в тімзі на нараді з якимсь мужиком )
Cіпласпластик
Сиджу в тімзі на нараді з якимсь мужиком )
Короч, головний ауткам:

Бьярне каже, що його нині трохи дратує, наскільки повільно рухається комітет стандартизації 💻. (Останній раз, коли він рахував, там було 527 членів 🤯). І якби він міг повернути минуле, то докладав би значно більше зусиль, щоб уникнути такої моделі управління й натомість розвивати мову групою в 6–7 людей. Водночас вважає, що шанси були примарні.

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

А ще відзначив, що Rust — не та мова, яка покладе край 💻.

(Хотів запитати його, як добре він знає C++ від 1 до 10 і які інші мови йому подобаються — шкода, що не встиг).
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Скільки насправді коштують книжки? А ігри? А інші ваші хобі?
Ви можете або почитати книжку по програмуванню, або піти на прогулянку мацати траву — що вибрати і чому?

Коли ви купуєте книжку за 30 баксів, може здатися, що ви втратили 30 баксів (так і буде, якщо не прочитати). Проте окрім «першого внеску» ви платитимете своїм часом, який далеко не безкоштовний.

Якщо ви маєте регулярний дохід 💰, то ціну часу легко вирахувати. Уявімо, що ваша місячна зарплатня — 5000 доларів. У місяці в середньому 22 робочих дні, в кожному робочому дні 8 годин, тому ваша погодинна ставка — 28,4$/год. Втім рахувати все з нею було б трохи несправедливо, адже навряд чи в позаробочий час ви зможете заробляти ще стільки ж, принаймні достатньо довго. Тому натомість «нормалізуємо» й порахуємо всі години, а не тільки робочі. З 30 днями в середньому і 24 годинами на добу маємо близько 7 доларів на годину.

На читання книжки ви витратили 4 години, тобто ще 28 баксів — майже подвоївши її початкову ціну! 🤯 А тепер ще гляньте на свою статистику в доті, КС й геншині. Скіки там вже? Ще 3000 годин загалом? Це вартість автівки )) Годі витрачати отак свої гроші. Почніть заробляти вже зараз!

Пропоную вашій увазі свій новий суперпродукт, який дозволить вам досягти небаченого рівня персональної продуктивності — Crastinator Pro. Як бачите на відео зверху, цей ультракорисний таймер показує вам вартість того, чим ви зайняті, в реальному часі. Підтримуються різні валюти, рейт можна встановлювати погодинно, по місячній зп або як річний дохід. Наразі це реалізовано як плаґін для Raycast, але в дорожній карті проєкту вже закладено переписування на Rust і додавання AI-фічей.

Враховуючи, що я навайбкодив його за пів години витратив на його розробку значну кількість особистих ресурсів, безплатно я його віддати не можу, зате гарантую коректність розрахунків, адже вже встиг протестувати його проходженням Mass Effect 🎮 (200 годин), Baldur's Gate 3 🎮 (300 годин), низки дрібніших активностей, а також щоденними регресійними й смоук-тестами за переглядом фільмів. Тому пропоную стартову ціну 800 гривень 🤑

На жаль ця ціна покриє тільки мої початкові витрати, тому якщо ви хочете отримувати оновлення й фічі, мені доведеться знову пройти Mass Effect, тож апдейти на рік коштуватимуть ще 250₴, що на мою думку дуже вигідна пропозиція! Не зволікайте!

У мене ж до вас лишилося всього два запитання:
1. Шо думаєте з цього приводу?
2. Чого досі не пограли в Mass Effect?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Пару тижнів тому дослухав «Start small, stay small» — книжку про мікропідприємництво (micropreneurship). І якщо чесно, мені не дуже зайшло попри деякі цікаві думки й низку досі корисних порад.

По-перше, не раджу аудіокнигу. Читає її сам автор, і зазвичай я полюбляю почути оригінал. Але цей настільки манірно це робить, що аж нудить. Таке враження, що тренується перед дзеркалом зніматися у вестернах чи в бондіані. А ще я багато кого слухаю десь на 1,2× швидкості, а цього довелося на 0,9× 😅 Окрім того, автор у своїй книжці лишив багато посилань на різні статті й ресурси. Зазвичай в таких випадках разом з аудіокнижкою просто йде маленька PDF-ка на додачу, але цей чувак буквально зачитує урли!!! (Не кажучи вже про те, що не всі з них досі валідні).

По-друге, Audible мене намахав, вказавши 2018 рік на книжці. Я нічого не підозрював аж до моменту, коли автор почав казати про сторінку в MySpace 🤫 І далі по тексту ще трохи розповідав про власні сумніви щодо того, що реклама в Twitter працюватиме. Виявилося, що книжка 2010 року, а в Audible потрапила у 18-му.

Ну, а по-третє, є в мене дойоби до змісту книжки.

На початку автор каже: «ця книжка не для тих, хто хоче створити новий фейсбук на мільярд користувачів. Вона для тих програмістів, хто хоче писати власний продукт і займатися тим, чим цікаво саме їм, працюючи на себе, а не „на дядю“ (і щоб при цьому на життя вистачало)» — окей, продано! Мене це цікавить!

І далі за текстом поступово зʼявляються такі твердження:
• Скоріш за все ваша ідея продукту — лайно. Натомість знайдіть собі якусь іншу життєздатну за оцими й оцими порадами.
• Програмування — це всього 30% успіху максимум. (З цим згоден). І не обовʼязково робити це самому. А краще взагалі зааутсорсити 😐
• Ну й все в такому дусі.

В мене тут постає питання: якщо врешті ідея не зовсім і моя, та й код пишу теж не я, то який мені як програмісту інтерес-то? Таке шось…

Очікував, що чувак розповість, як робити те, що подобається (програмувати), і отримувати за це гроші. А вийшло, що щоб отримувати гроші, треба, щоб почало подобатись інше 🙂

До речі, нагадує мені мій перехід на роботі з якогось типу техліда на чисто керівну роль. Це не миттєво трапилося звісно, але в якийсь момент довелося сісти й прийняти правду: займатися технічними питаннями без шкоди для інших своїх обовʼязків я більше не можу. І виконувати менеджерські задачі ефективно теж не можу, бо ніколи цьому не вчився. І коли змирився з цим, то далі якось прям краще й легше пішло.
Please open Telegram to view this post
VIEW IN TELEGRAM
Сьогодні короткий дайджест новин щодо мов програмування, які трапилися мені на очі за останній місяць.

У Python 💻 десь в районі версії 3.6 додали так звані f-рядки з інлайн-інтерполяцією:
f"a + b = {a + b}"
# замість
"a + b = {}".format(a + b)

Дуже зручно. Хоча знаходяться унікуми, що використовують їх тупо для усього, зокрема для формування запитів до БД з включенням шматків, що прийшли від користувачів — привіт, SQL-інʼєкції.
Fear no more: до 3.14 вирішили додати t-рядки! Літерали на вигляд такі самі, але насправді це не str, а string.templatelib.Template:
template = t"a + b = {a + b}"
assert isinstance(template, Template)

Нащо це все? Власне, саме для того, щоб не отримувати на вихід готовий рядок. Натомість ви отримуєте купу статичних шматків рядка + низку інтерполяцій і можете з ними щось зробити до формування фінального str (наприклад, екранувати потенційно небезпечне). Фактично, це ті ж шаблонні рядки, які вже є в 💻.

Для останнього, до речі, багацько років (на доволі високому Stage 2) висіла пропозиція від типців з Блумберга додати в мову «глибоко незмінні структури даних» — Record і Tuple. Нагадую, що зараз в 💻 є тільки вельми мінливі Object і Array. Якщо ви мріяли про value types у джаваскрипті, то годі — декілька тижнів тому пропозицію скасували, бо домовитися не змогли, зацікавлених виявилося не так і багато тощо.

У спільноті 💻 тим часом ТРАГЕДІЯ! Компанія AdaCore провела презентацію нових фічей в їхньому компіляторі GNAT Pro, де зокрема розповіла, що додала до мови ООП-класи (а ще підтримку Rust, але то інша історія). Взагалі-то в Ada і до того ООП давно було (з 1995), але реалізувалося через так звані теґовані типи:
package Example is
type Base_Class is tagged null record;

procedure Print (Self : Base_Class);

type Derived_Class is new Base_Class with record
A : Integer; -- додаємо нове поле
end record;

overriding procedure Print (Self : Derived_Class);
end Example;

Тут процедури, що обʼявлені в тому ж скоупі й приймають першим параметром відповідний тип, стають фактично «методами». Однак для тих, хто прийшов з, боже збав, C++ та інших схожих мов, такий підхід був невтямки. Тому віднині можна буде створювати класи отак:
package Example is
type Base_Class is class
procedure Print (Self : Base_Class);
end;
end Example;

Зʼявилося ключове слово class, методи оголошуються прямо всередині відповідного блока, також можна private зробити прям там же. Багатьом це прийшлося не до вподоби, мені включно. Особисто я просто не бачу в цьому сенсу, бо й до того було збс.

Прикол же тут глибше на ділі. Ada — це ISO-стандарт, тож мова нікому не належить. Але єдиний живий компілятор GNAT підтримується компанією AdaCore, тому 99% штук, які зʼявляються там, врешті потрапляють до стандарту. Такі справи.

Ну й трохи про ліспи. Нещодавно я вже розповідав про Janet 👩‍🦰 — мову, дуже схожу на Clojure 💻, яка компілиться в сішку. Взагалі кложа наче друге дихання ліспам відкрила, бо вона проста, елегантна й прикольна. Якби ж ще не JVM поперек горла… Якось так подумали й автори Janet у свій час. А з ними автори ще мінімум штук пʼяти інших варіацій, і це тільки ті, що мені траплялися.

Однією з таких варіацій є Jank, яка вже на C++ базується, а не на сішці. Так-от вони днями анонсували «безшовний інтероп» з плюсами, тобто можливість прямо з джанка створювати й працювати з плюсовими обʼєктами. Скажу чесно, я зацікавився 🤤 Прямий плюсовий інтероп (не через C) — це одна з фічей, яка раніше мене зацікавила у Swift 🕊. Якщо у цього ліспа щось таке вийде, то я навіть готовий почати називати їх не джанк, а дженк.

Може ще щось цікаве було, та зараз вже не згадаю. Тож наразі все.
Please open Telegram to view this post
VIEW IN TELEGRAM
У Microsoft Research часто трапляються цікаві проєкти. Колись навіть мріяв там працювати.

Вчора ось показали Claimify — штуку, яка дістає з текстів конкретні твердження. Шкода, що нема ґітгаб-репи самому цей тул спробувати. Хоча може вони там його запускають на кластері за 100500 мільйонів.
This media is not supported in your browser
VIEW IN TELEGRAM
Пошук у сучасних системах be like… 🤦
Please open Telegram to view this post
VIEW IN TELEGRAM
Дізнався вчора від другана, що JetBrains CLion, їхня IDE для C++, стала безплатною для некомерційного використання.

Я ніколи прихильником їхньої ІДЕЇ та усього, що з неї виросло, не був, але декому дуже заходить. (Єдиний, мабуть, виняток для мене — це MPS 💻, але там скоріш концепція зацікавила, аніж сам редактор).
Please open Telegram to view this post
VIEW IN TELEGRAM
Зацініть, який я знайшов інструмент розбору слів. AI-powered звісно, тому інколи парить маячню замість етимології.
Часто бачу, як на запитання щодо найкращої мови програмування для початківців (повних нулів) починають пропонувати Python 💻, JavaScript 💻, інколи TypeScript 🕸, а особливо хворі люди радять Rust або навіть, хай би йому грець, 💻. І звісно починають розповідати різні байки про зручний тулінг, про те, що одразу можна потім на роботу піти, що з памʼяттю навчишся працювати, що типи дуже допомагають й іншу маячню.

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

Втім найкращі спеціалісти, котрих я знаю (і я сам теж хехе), почали програмувати не через гроші чи престиж, а… ну, бо не могли інакше. Я мав потяг до всього електронного з дитинства: будь-що, де є батарейка й екран, ставало предметом мого інтересу. А коли я побачив уперше ігрову консоль, у мене ледве мозок не вибухнув 🤯🤩 Тоді (років у 4–5) я зрозумів, що моє життя мусить бути повʼязане з цією галуззю.

Не всім щастить аж настільки. Багато хто приходить до програмування радше «випадково». Але цих людей окрім певного природного рівня зацікавленості компʼютерами обʼєднує найважливіше: допитливість стосовно того, а як же це працює (і що ще можна зробити).

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

В практичному сенсі це значить:
- Легко встановити тулчейн, легко запустити, легко використовувати (а якщо ще й легко поділитися з кимось результатами, то взагалі чудово).
- Базові аритметичні операції, трохи тригонометричних і (обовʼязково) операції для маніпуляцій над текстовими рядками.
- З колекцій — масивів достатньо.
- Примітиви для графіки з коробки (кольори, лінії, фігури).
- Якщо також є програвання звуків/музики — ще краще. (Хоча б MIDI якийсь).
- Спрощена робота зі вводом користувача (клавіатура/мишка).
- REPL? Ну, можна.
- Адекватні й зрозуміли повідомлення про помилки.
- Вбудована система довідки про оператори/команди/функції тощо.
- Статична типізація? — Зайва!
- Керування памʼяттю? — You lost me here.
- Зовнішні залежності? — Не треба.
- Модулі? — Одного файлу достатньо.
- Треба білд-систему? — Вже у смітнику.

Я сам починав з мови BASIC. Спробував декілька різних, але QBasic від Microsoft став найулюбленішим. У мене щодо нього досі виключно теплі спогади.

Тож згодом, коли я випадково натрапив на Microsoft Small Basic і спробував його, то почав радити й іншим. На жаль у порівнянні з QBasic вони трохи ускладнили все тим, що додали ООП. Втім це досі доволі приємна мова з непоганою IDE. (Або ось є веб-версія, хоча вона погірше).
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Вчора я написав критерії вибору мови програмування для тих, хто тільки починає свій шлях, і отримав купу корисних і цікавих коментарів. А також зауважив, що раніше радив Small Basic.

Але нещодавно я натрапив на Easylang, і це мій новий фаворит серед мов для початківців! В ньому текстові змінні мають долар в імені (name$) — прямо як у QBasiс, є масиви, суперлегко малювати, координати від 0 до 100 (вісь Y йде вгору), кольори від 000 до 999, легка й зручна обробка клавіатури й мишки, таймер, звуки тощо. IDE у бравзері автоматично форматує код. Інтерпретатор на WASM, тож готова програма — це PWA.

Ну й, власне, я вирішив портувати на Easylang одну з найперших програм, яку ми написали з моїм корешем Коляном у коледжі. Ми намагалися зробити чи то більярд, чи то арканоїд, для чого треба було накодити рух і відбиття кола від стінок.

Вам смішно зараз, але для деяких одногрупників тоді навіть текст в правильній позиції екрана вивести — це вже було досягнення, не те що анімувати щось. Якщо просто чистити весь екран на кожний кадр, то зображення неприємно блимало, тож натомість ми робили це так: малюємо коло, робимо затримку, стираємо коло, оновлюємо координати — і так в циклі. Команда SLEEP у QBasic приймала тільки секунди, що задовго для анімації, тому затримку ми робили порожнім циклом FOR … NEXT від 1 до 100000 (а якщо комп удвічі потужніший, то до 200000 😂).

Постає питання, як стирати намальоване, не зачіпаючи решту. Для цього після малювання робимо зняток ділянки екрана командою GET. А потім накладаємо назад командою PUT у режимі XOR. І короч десь ми щось наплутали порядок абощо, і вийшло так, що воно нічого не стирало, замальовуючи екран колами. В результаті вийшло щось дуже схоже на мережива, які ви могли бачити у себе в хаті або принаймні у ваших бабусь і дідусів. Тож цей витвір мистецтва ми гордо назвали SERVETKA.BAS (якраз 8.3 символів, якщо ви розумієте, про що я)!

На Easylang написати це звісно було значно легше. Та головне, що я намагаюся донести: людина має отримувати задоволення від процесу. Як бачите, у нас тоді навіть «некоректний» результат не пішов у смітник: навпаки роздмухав зацікавленість, а які ж іще візерунки можна отримати. І ми почали створювати складніші багатоколірні речі, музику додавали й оце все. Файно було.

А якщо ви почнете початківцю сушити мізки встановленням ліб, парсингом XMLʼів з інтернетів або боротьбою з тайп-чекером, то є ризик відбити бажання цим займатися назавжди 🤔 З іншого боку я радше візуал і все сприймаю в першу чергу саме візуально, вчуся очима тощо. А комусь, може, оце все й не треба, а треба якраз XML з інтернетів.

Проте Easylang спробуйте.
Please open Telegram to view this post
VIEW IN TELEGRAM
Обожнюю такі способи встановлення )) Що може піти не так? 😂

(Сертифікат вже ніби пофіксили, але пайпити скрипти з інтернетів у sudo — це треба бути дуже хоробрим 🤪).
Please open Telegram to view this post
VIEW IN TELEGRAM
Усі з вас це, певно, вже знають, але там вчора Microsoft відкрила код своєї WSL (Windows Subsystem for Linux), а також пообіцяла найближчим часом відкрити код розширення GitHub Copilot для 💻. Обидві штуки під MIT-ліцензією до речі.

З цього приводу можу лише зазначити, що останні роки на мою думку Microsoft вельми вправно балансує між компанією, якій всі дорікають, і компанією, продукти якої обожнюють.

Цікаво канєш, що нині навіть лінуксоїди користуються принаймні тією ж VS Code (а дехто взагалі пересів на WSL). Нагадаю, що в опитуваннях, які я раніше проводив, вінда 🪟 для робочих задач посіла 3 місце з результатом 18%, а для неробочих — 2 місце з 31% (всього на відсоток менше за 🐧).

А зараз ще й чутки ходять, що Microsoft зайнята інтеграцією Steam у свої іксбокси 🙄
Please open Telegram to view this post
VIEW IN TELEGRAM
Рівно тридцять років тому C++ народився вдруге 🥳 Адже рівно тридцять років тому відбувся один з найперших замахів на вбивство цієї мови — вийшов перший офіційний реліз Java 😆 Відтоді багацько ще таких «асасинів» приходило, та все марно.

С++ — як Україна: з кожним замахом стає лише міцнішим. І звісно були скрутні часи, проте, зараз ця мова знову квітне. І «населення» значно побільшало. Якщо на той же TIOBE подивитися, то у 2022 плюси посунули ваші джави і сішарпи назад, і на сьогодні C++ посідає другу сходинку після Python, випередивши навіть C.

До речі, якщо на TIOBE дивитися чисто списком, то складається хибне враження, ніби деякі мови вже майже наступають на пʼяти тим, хто на одну позицію попереду. Але вочевидь це не завжди так: Python нині зазвичай в районі 23-25%; C++, а за ним і C з Java — десь по 8–10%; C# і JavaScript — 4–4,5%; ну а далі числа просто мізерні. Rust, наприклад, дійсно молодець: він зазвичай тусується вже на 18–19 місці, хоча було навіть таке, що він увірвався в топ-15 зі своїми 1,16% чи скіки (зараз знов менш як 1%). Чисто як референс: Visual Basic, Delphi, Fortran — зазвичай мають ≈2–2,5% 😊

Тож якщо ви міркували, чи варто починати вчити C++ зараз, то я вважаю, що так. Якраз буде час встигнути до 2029 😅😅, коли в стандарт мають увійти нові топові фічі на кшталт Страуструпівських профілей, які «узаконять» різні діалекти (котрі де-факто вже й так існують).
Please open Telegram to view this post
VIEW IN TELEGRAM
В одному з місцевих супермаркетів зʼявилися отакі ручні сканери (за нирку грошей, певно, бо це Zebra!): береш на вході, в процесі все скануєш — і (за задумом) не витрачаєш час на касі.

Ідея звучить настільки чудово, що нам не западло проїхати заради цього десяток зайвих кілометрів саме в цей супермаркет. Я взагалі за змоги мінімізую необхідність контактувати з незнайомими людьми: навіть бензин заливаю на АЗС із самообслуговуванням. А тут раптом у супермаркеті такі технології , що гріх не скористатися.

Досвід користування цією штукою донині:
• За відчуттями це дійсно економить час, бо просканувати в процесі не так вже й важко, зате (за задумом) не треба чекати на касі.
• Першого разу виявилося, що окремих кас для користувачів з цими сканерами нема — треба йти на звичайну з чергою 🤡 Ми натомість пішли на швидкі каси самообслуговування, куди зазвичай люди йдуть з < 10 одиницями товарів.
Очікування: тиснеш на сканері кнопку «сплатити», прикладаєш картку або телефон, щасливий ідеш додому. Або хоча б: тиснеш «сплатити», отримуєш штрих-код, скануєш на касі, платиш там, ідеш додому. Реальність: тиснеш «сплатити», а сканер показує якесь число. Кличеш працівника магазину, вона/він прикладає свою спецову картку до термінала, потрапляє в якесь приховане меню, там проходить через купу екранів з зовсім іншим інтерфейсом, вбиває це число, воно з третьої спроби сінкає список зі сканера, і вуаля — можна платити 🤦
• Іншим разом звичайна каса була вільна, тож пішли з цим сканером туди. Там усе той же прикол з числом і якимись робочими меню. А далі раптова перевірка! Очікування: касир бере декілька рандомних штук з візочка й сканує їх, а система підтверджує, що вони дійсно наявні в списку. Реальність: касир бере декілька рандомних штук, сканує по одному, система показує якийсь внутрішній артикул, а далі касир очима вишукує цей артикул у списку 🤪 На все це йде ще більше часу, ніж пропикати всі наші 100500 товарів зі стрічки, як зазвичай.
• І останній випадок… Очікування (зауважте, як планочка впала вже): просканував усе в процесі, помаявся на касі з цими мутними інтеракціями, сплатив, пішов додому. Реальність: просканував усе в процесі, за пʼять хвилин до виходу прога на сканері крашнулася (там звичайний 💻 до речі), при повторному запуску нічого не відновила — тупо порожній список 🤬😂 Ото в мене дупа згоріла з такого, що аж сюди пишу тепер…

Черговий доказ того, що сучасний софт завжди смокче в порівнянні з хардваром. Сам пристрій дуже класний: якісний, доволі зручний — жодних нарікань. Але софтвар, як завжди, все зіпсував.

Вкотре нагадую, що найстрашніший гріх в UX — це втрата користувацьких даних. І це не про тільки про випадки, коли сервери десь погоріли, а бекапів у хостера не було. Це також про всі ті дрібниці, з яких складається наше щоденне користування програмними продуктами: десь поставили галочку, десь ввели текст, десь попикали сканером — а програма це забула? Ну оце воно і є.
Please open Telegram to view this post
VIEW IN TELEGRAM
Декілька років тому 💻 на своєму World Summitʼі мала доповідь, в якій чувак натякав, що було б цікаво використовувати цю бібліотеку в програмах іншими мовами.

Зараз Qt можна використовувати з C++ (очевидно), плюс є офіційні привʼязки для Python під назвою PySide. Ще промайнули якісь дивні поробки для інтеграції з 💻. На цьому все. Існує безліч неофіційних, та щось довіри до них нема.

Я вже якось згадував, що #QML як мова для використання фреймворка Qt Quick — це одна з останніх вагомих причин, чого я досі користуюся C++. Просто мені подобається робити UI і подобається, коли врешті він працює достатньо швидко й не вимагає 2 ГБ оперативки, як це нерідко буває з туду-програмами на електроні. Втім C++ у своєму поточному стані дійсно далека від приємної мови, хоча я потроху прямує до неї.

Так-от місяць тому пройшов черговий QtWS, де вони нарешті анонсували так звані Qt Bridges. Поки що жодної конкретики, але за їхніми розповідями це якась достатньо високорівнева апішка для інтеграції QML-ного рушія (і, може, не тільки) в програми іншими мовами. Першими їхніми обранцями стали: 💻, Kotlin 💻 і Java 💻, Python 💻, Rust і Swift 🕊. Я особисто найбільше зацікавлений в останньому, бо під час Advent of Code 2024 мені загалом ця мова сподобалася. З іншого боку дуже хотілося б ще мати змогу писати на QML разом з 🦶. Ну й з Janet 👩‍🦰 ще б теж непогано ))

Найбільше в усьому цьому мене зараз хвилює навіть не технічний бік питання, а легальний. Nokia в свій час перевела Qt з GPL на LGPL, що зіграло на руку популяризації бібліотеки. Але зараз ми бачимо, що Qt Group в пошуках додаткових джерел для заробітку робить навпаки: створює нові модулі, інколи попередньо задепрекейтивши «старі» LGPL-ні, і релізить їх тільки під GPL та комерційною ліцензією. Наприклад, Qt Graphs, Qt HTTP Server, Qt Lottie Animation, Qt Quick 3D тощо.

А як хотілося б мати змогу писати UI на QML, а бізнес-логіку на чомусь компільованому, потім збирати це в один невеличкий бінарь — і щоб це все ще й безплатно! 🤑 Хоча, мабуть, легше вже свій рушій для QML написати натомість.
Please open Telegram to view this post
VIEW IN TELEGRAM