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

Мої емоджі:
https://t.me/addemoji/AdaptiveDevIcons
https://t.me/addemoji/VehicleBrands
Download Telegram
Доки всі сьогодні пишуть, що наступні Apple AirPods зможуть міряти температуру, просто нагадаю, що ось ці TWS-навушники, які випустили наприкінці 2015-го, а я отримав в січні 2016-го, вже тоді вміли міряти серцевий ритм, дихання та кроки, були водонепроникними, мали сенсорне керування, режим звукової прозорості (опціонально: з гасінням вітру), 4 ГБ вбудованої памʼяті та додатковий мікрофон на базі кісткової провідності. Майже 8 років назад!

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

Ще можна було в програмі відкалібрувати звук під себе: воно почергово в кожне вухо програвало звуки різної частоти а потім підлаштовувало звук під вас в залежності від того, як добре ви чули ті чи інші частоти, й зберігало це як звуковий профіль на девайс.

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

Дуже вірогідно, що це взагалі перші в світі TWS-навушники. Можливо й саме словосполучення true wireless звʼявилось саме з ними. До речі, компанія Bragi, що їх винайшла, не витримала конкуренції та вмерла (спочатку ніби зовсім, а потім вони швиденько намалювались як сервісна компанія, що робить Bragi OS для подібних пристроїв, але більше не виробляють власних продуктів): з одного боку зʼявилась купа дешевих китайських виробників в той час, як ці затички коштували 350 баксів, здається, а з іншого боку на ринок повиводили своє лайно виробники, що вже мали імʼя, тож маленька німецька нонейм-компанія з датським CEO та дивною назвою мала не дуже багато шансів. Втім маркетингову кампанію вони просрали, я думаю; можна було краще.
Три дні поспіль пишу на Go, який не шарю авжеж. Ну, як пишу… Є тулза, що виконує низку перевірок на CI, тож я її трохи адаптував під поточний стан репозиторію, а далі фіксив свої ж баги. Трохи вражень:

1. Сама мова лайно здається примітивною. Якась нелаконічна місцями. Немає(?) навіть тернарного оператору чи чогось на кшталт, ну йобен-бобен.
2. Але! Вона принаймні на перший погляд дуже просто читається через це, бо у розумників типу мене немає можливості хєранути ванлайнер з композицією каррованих функцій абощо. Точніше, можливість може і є, тільки мова до того не спонукає якось.
3. Можливість зібрати single binary зі всіма залежностями без зайвих танців навколо — це прям офігенно.
4. А якщо додати до цього кроскомпіляцію — то це просто 🤯 Збираю на одній системі одразу під 4 інших. І знову ж таки без зайвих рухів: тупо змінні оточення треба поставити.
5. Вперше за років 10 може скористався зневаджувачем. Якось вже звик тупо по логах розбиратись зазвичай, аж тут сьогодні не просто брякпоїнт поставив, а навіть умову до нього додав! 😂 Прикольна тема насправді, хоча запускається жесть як довго.

Отже, в сухому залишку мова варта уваги, як я і думав останні років пʼять, тільки приводу погратись із нею не було. А коли думаю про пункти 2–4 в контексті C++, то аж зуби болять 😬

Якщо раптом треба «вивчити» Go хвилин за пʼять, то є мануал як раз на такий випадок на офігезному сайті Learn X in Y minutes. Інші мови там також присутні.
Please open Telegram to view this post
VIEW IN TELEGRAM
Раптом хто не знає: в терміналі можна зробити собі файні діфи. Я налаштував собі delta, але існують й інші #тулзи. Колись, памʼятаю, користувався для цього diff-so-fancy, наприклад, але той написаний на якійсь суміші Perl та shell, тоді як delta — на Rust, і є навіть підтримка Emacs 😂

Втім насправді я діфи майже ніколи не дивлюсь в терміналі, бо VSCode завжди відкритий все одно.
Cіпласпластик
Сідайте, зараз буде довжелезна розповідь не про inner-source. (Я б попросив нікому більше не розповідати, але вам ніхто не повірить 🙂). Моя спеціалізація — це #тулзи. Я полюбляю тестити якісь нові, мені подобається писати власні, подобається поєднувати різні…
Важко в це повірити, але щойно відсидів на черговому (пʼятому? шостому?) вебінарі, де знов розповідали, як важливо трекати час, потім повторювали всі ті ж 11 часових констрейнтів, яким мають відповідати дані в системі, далі погрози про скорочення зп, а опісля: «ми це робимо для вас та вашого work-life balance» 😂 Для тих, хто пропустив минулі серії, нагадую: компанія доволі марно намагається з початку року впровадити обовʼязковий тайм-трекінг (який взагалі-то був і до того, але не дуже працював).

Можна шкіритись з цього нескінченно авжеж, бо це реально смішно. Трохи дещо конструктивніших думок з продуктової точки зору:

1. Поганий UX — це коли не компʼютер спрощує життя людині, а коли людина намагається задовольнити забаганки компʼютера. Й тема з часовими обмеженнями як раз про це, бо фактично я маю сидіти та обраховувати в голові, чи працюю я довше ніж 6 годин або чи не коротша моя перерва за 15 хвилин. Що заважає автоматично ці дані обраховувати та хоча б показувати користувачу — не зрозуміло.

2. Система в її поточному стані викидає мене кожні N годин, де N менше, ніж довжина мого робочого дня. Нащо? Кому взагалі спало на думку, що розлоговувати користувача з будь-якої системи — це гарна думка?

3. Компанія: «Ви маєте абсолютно чесно та в ріалтаймі логати час». Також компанія: «Ви не можете робити перерви менш ніж 15 хвилин або працювати після 21:00». Так мені чесно логати, чи знову ж працювати на красиві дані в системі? Я розумію авжеж проблему компанії: вона має, якщо що, довести на аудітах, що її працівники не овертаймлять вночі. Але ж це фактично не збігається з моїм реальним режимом роботи. Хз насправді, як це вирішувати. Тут, схоже, в мене руки звʼязані.

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

5. З боку компанії доволі дивно протягом більше ніж пів року робити одне й те саме, але чогось очікувати на інший результат. Хоча вони щойно додали ще більше обмежень для співробітників, тож може це і є результатом їхнього аналізу патернів користування? Бо фактично система працює на тих, кому потім доповідати на аудитах, а не на тих, хто туди вносить дані 🙂 Трохи нагадує недавню (чи поточну?) ситуацію з редітом, де найбільша цінність продукту в величезному живому датасеті, тож логічно давати доступ до цих даних тільки за копійочку, але в той самий час весь контент user-generated, а обмеження напряму вплинули на користувачів, які цей датасет наповнюють. Уроборос якийсь 😂
Please open Telegram to view this post
VIEW IN TELEGRAM
Cіпласпластик
Раптом хто не знає: в терміналі можна зробити собі файні діфи. Я налаштував собі delta, але існують й інші #тулзи. Колись, памʼятаю, користувався для цього diff-so-fancy, наприклад, але той написаний на якійсь суміші Perl та shell, тоді як delta — на Rust
This media is not supported in your browser
VIEW IN TELEGRAM
До речі сам термінал на скріні — це Warp (наразі є тільки під macOS). Користуюсь ним певний час вже, бо там є цікаві ідеї та фічі, як-от вбудована ШІ-шка. Але й сумнівних моментів в ньому повно.

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

Колись, може, створю свій термінал, ідеї для якого лежать в OneNote вже років десять 😅⌛️ А поки розділ #тулзи залишиться без нього.
Please open Telegram to view this post
VIEW IN TELEGRAM
Я вже неодноразово згадував, що моя найулюбленіша система збирання проєктів — це #Qbs. Базується цей вибір на двох суперобʼєктивних причинах авжеж: 1) на хибному першому враженні, що за мову там використовують #QML (90% збігається, але насправді це не вона, від чого реально палає нерідко), та 2) на тому, що не можу терпіти #CMake 😁

В кьюбсі в найпростішому вигляді достатньо викликати qbs build або навіть qbs run, й він все сам зробить. Втім інколи треба додати пару якихось ключів в команд-лайн, які я безумовно не памʼятаю. Що в таких випадках люди роблять першочергово? Правильно, пишуть qbs build --help. Але це суперечить концепції(!) головного розробника, тому наразі результат отакий:

ERROR: Invalid use of command 'build': Unknown option '--help'.
Type 'qbs help build' to see how to use this command.

Концептуальність — це завжди офігезно авжеж, але не тоді, коли це щодня наламує мені UX. Так, я не можу спеціально для цієї тулзи тримати в памʼяті, що треба писати qbs help build замість qbs build --help, бо в нормальних прогах це тотожні виклики.

Тож я пішов та зробив свій перший внесок в Qbs аж на пʼять рядків коду, який це виправляє 😂 Довелось заради цього навіть gerrit налаштувати собі з його ґітовими гуками.

Сьогодні вмержив 🥳🍾
Please open Telegram to view this post
VIEW IN TELEGRAM
Cіпласпластик
Як зрозуміти, що прога написана на Qt? — Ніхто не вміє працювати з High-DPI екранами 🧐 Навіть дефолтний #QML-проєкт, що генерується в Qt Creator з офіційного шаблону, містить некоректний код для Windows. В даному випадку бачимо завеликі іконки в macOS. Що…
Поточний стан справ з підтримкою High-DPI в офіційному інстоллері #Qt на вінді 🤡

(Тим часом ми пишемо десктопну програму на Qt під три системи, й у нас все ок).
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Ніяк не закінчу свій довгенький звіт про менеджерський експеримент, що я ставив впродовж чотирьох місяців. Stay tuned, має бути цікаво. А доки звіт в процесі, поділюсь іншою «новиною», яка, ймовірно, цікава тільки мені 🙂

Чи багато ви бачили Product Managerʼів в outsource-компаніях? Ось я жодного разу не зустрічав, хоча пошук по корпоративній директорії каже, що нас таких аж девʼятеро.

Так, я тепер Product Manager офіційно, хоча фактично виконую цю роль вже понад два роки. Значний досвід в програмуванні та керуванні людьми + зацікавленість в інтерактивному дизайні + щире бажання допомагати користувачам + пошуки шляхів, як за все це отримувати гроші — це доволі виграшна комбінація, як виявилось 😁

Окремої розповіді вартий процес отримання цього тайтлу в моїй компанії. Я давно шукав собі якусь назву позиції, що відображала б, чим я фактично займаюсь, але все було марно. Тож я пішов до ChatGPT, написав йому, що роблю, та попросив запропонувати мені варіанти. Потім обрав те, що сподобалось та на мою думку відповідало найліпше. Окремий челендж був — переконати в цьому й інших, починаючи з мого безпосереднього менеджера. Тож я знов пішов до ChatGPT й кажу: «мені треба переконати всіх, що це моя роль. Зроби мені чекліст» 😂 Він згенерив, я пройшовся по чеклісту, додавши відповідних конкретних прикладів, почекав декілька місяців на всі апруви — й вуаля!

Бодай там як, я задоволений. От якби ще зп накинули 🤑
Please open Telegram to view this post
VIEW IN TELEGRAM
Отже, історія отримала розвиток. Після чергової відмови від директорки Security & Compliance надати мені APIʼшку я накатав якийсь драматичний текст про те, як на всіх all-hands нарадах компанія парить про інновації та імпрувменти, а щойно справа дійшла до більш-менш активних дій, то всі тільки здатні вигадувати мільйон відмазонів. Це подіяло 😁 Тож вона пішла та створила нараду на купу інших директорів та Heads of Something Important.

Показувати мені було нема чого, тому я вчора витратив години чотири надвечір, аби задизайнити в Figma декілька скрінів для тулзи, що я запропонував створити. Власне, на першому скріншоті наша поточна система (не питайте, що ті всі флексі-хуєксі таке, я не розумію все одно), а на другому те, що мені хотілося б бачити натомість.

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

Гарні новини: я принаймні мав змогу донести свою ідею, і в цілому вона була сприйнята дуже позитивно. Також це мій перший UI-дизайн чого-небудь, створеного власноруч, ever. Виглядає, може, доволі просто, але хто сказав, що воно не мусить?

Втім думаю, якщо подальші події й матимуть місце, то нескоро.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Cіпласпластик
Отже, історія отримала розвиток. Після чергової відмови від директорки Security & Compliance надати мені APIʼшку я накатав якийсь драматичний текст про те, як на всіх all-hands нарадах компанія парить про інновації та імпрувменти, а щойно справа дійшла до…
А ще питають такі:
— А на чому писати збираєшся?
— На C++ та #QML авжеж! (Хоча зараз думаю, що легше на Python+QML)
— У-у-у-у… Наші люди тільки на сішарпі та ангулярі вміють…

І важко їх звинуватити в чомусь. The #Qt Company просрала можливість зайняти нішу на десктопах (та й на решті систем втрачає позиції). Шкода, бо QML сама по собі дуже прикольна 😢 Але недовго їй лишилось, мабуть.
Please open Telegram to view this post
VIEW IN TELEGRAM
Мене сьогодні звинуватили в тому, що я не знав про https://manifest.in.ua/, наче це я винен, що йому бракує розголосу. Я прийняв удар на себе, аби вам не довелося 😄 Тож користуйтеся та шліть знайомим та друзям, аби вони теж не були, як я.

Ще б знайти тепер аналогічний рейтинг українських каналів в телеграмі, бо це досі моє основне джерело інфи…
Please open Telegram to view this post
VIEW IN TELEGRAM
Cіпласпластик
Мене сьогодні звинуватили в тому, що я не знав про https://manifest.in.ua/, наче це я винен, що йому бракує розголосу. Я прийняв удар на себе, аби вам не довелося 😄 Тож користуйтеся та шліть знайомим та друзям, аби вони теж не були, як я. Ще б знайти тепер…
А якщо ви ютуб не дивитесь, то в ігри-то хоча б маєте грати? Тут може стати в пригоді КУЛІ (Каталог української локалізації ігор), щоб грати рідною не тільки в Baldurʼs Gate 3.

Ще є не всім відомий куратор в стімі «Обережно, русняві ігри», що допомагає уникати випадкового спонсорування країни-терориста. Треба підписатись, і тоді на сторінках відповідних ігор буде висіти застереження.
Серед любителів трохи поаналізувати дані нерідко йдуть баталії, а що ж краще: звичні таблички (spreadsheets) або інтерактивні блокноти (а ля Wolfram/Jupyter).

Короч, сьогодні ніби не перше квітня, але Microsoft додала можливість писати код на #Python в #Excel 🤯 Виконується він не локально, а в контейнері Azure. Доволі цікавий крок.
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Вітаю всіх з 0x20-м Днем незалежності України!

За збігом обставин так вийшло, що я буквально вчора зробив свій маленький внесок у розвиток нашої мови, переклавши інтерфейс програми Monica українською. (Трохи дивно, адже я цей інструмент навіть не використовую наразі, але хтозна — може почну. Ще дивніше, що мій переклад скоріш за все не підійде для їх наступної версії, оскільки вони змінили фреймворк. Але най буде).

Я вважаю, що дуже важливо підтримувати українську мову будь-якими засобами, що вам доступні. Якщо можете робити українську локалізацію — робіть.

Якщо не можете, то хоча б користуйтеся нею, бо правило «попит створює пропозицію» досі лишається дійсним. Будьте певні, що кожна більш-менш велика компанія, яка додала українську локалізацію у свій продукт, пильно стежить за статистикою її використання, зважуючи, чи варто воно того. Створіть попит! Перемкніть інтерфейси програм/сайтів/ігор на українську.

Слава Україні!
(А я далі напишу трохи вражень від процесу перекладу)
Cіпласпластик
Вітаю всіх з 0x20-м Днем незалежності України! За збігом обставин так вийшло, що я буквально вчора зробив свій маленький внесок у розвиток нашої мови, переклавши інтерфейс програми Monica українською. (Трохи дивно, адже я цей інструмент навіть не використовую…
Отож, по-перше, хочу передати привіт всім тим, хто нещодавно закидував лайном перекладачів Baldur's Gate 3, бо більшість з цих невігласів навіть близько не уявляє, наскільки це складно. Я витратив чотири повних дні та загалом переклав 8334 слів, тоді як в BG3 понад два мільйони слів 😰 Не кажучи вже про те, що перекладати художні тексти значно важче, аніж інтерфейси програм.

По-друге, сам переклад доступний на Crowdin (до речі ви знали, що це українська платформа?), але для прискорення роботи я купив собі Poedit Pro за 35 євро. А якщо ще порахувати слова за тарифом 0,06 євроцентів/слово (знайшов десь саме такі ціни, хоча українські студії локалізації, мабуть, роблять дешевше), то загальна вартість перекладу вкладається в 550€.

По-третє, там вже було локалізовано близько 10% тексту іншими людьми. І що у випадку з ними, що при використанні машинних перекладачів (Microsoft/Google/DeepL) простежується одна й та сама проблема: дуже багато росіянського впливу. Найбільш розповсюджені випадки: you must, you should, you need часто перекладають як ви повинні, вам потрібно, вам необхідно, тоді як краще буде сказати ви мусите, ви маєте або вам слід (а якщо need в сенсі потреби, то ви потребуєте). Також no need перекладають як не потрібно, хоча це очевидна калька з росіянської. Натомість краще казати — жодної потреби. Є й інші аналогічні приклади (англійська — рос. калька — українська):
- once it's done — після того, як це зроблено — щойно це зроблено
- at any time — в будь-який час — будь-коли
- are you sure you want to… — ви впевнені, що хочете… — чи дійсно ви хочете
- join as co-author — приєднатися в якості співавтора — долучитися як співавтор
- more powerful — більш потужний — потужніший
- more than — більш ніж — понад
- not less than — не менше, ніж — щонайменше
- 1200 pixels wide — 1200 пікселів в ширину — 1200 пікселів завширшки
- is publicly accessible — знаходиться у відкритому доступі — є загальнодоступним
- rather — краще / скоріш — радше
- тощо (можу продовжувати список доволі довго)

Мій переклад вочевидь не ідеальний, адже я не професійний перекладач. Проте я дізнався багато нового під час цього процесу. Раджу кожному 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
Cіпласпластик
Отож, по-перше, хочу передати привіт всім тим, хто нещодавно закидував лайном перекладачів Baldur's Gate 3, бо більшість з цих невігласів навіть близько не уявляє, наскільки це складно. Я витратив чотири повних дні та загалом переклав 8334 слів, тоді як в…
В-четверте, принцип Парето спрацював і тут. Коли здавалося, що я майже скінчив, я натрапив на необхідність перекласти ось це спадне меню з декількома рівнями вкладеності, яке дозволяє вам обрати якусь емоцію або відчуття з переліку.

Просто подивіться на ці слова (це не всі) та уявіть, як би ви їх локалізували так, щоб вони не повторювались 🤓

Adoration, affection, love, fondness, liking, attraction, caring, tenderness, compassion, sentimentality, arousal, desire, lust, passion, infatuation, longing, amusement, bliss, gaiety, glee, jolliness, joviality, joy, delight, enjoyment, gladness, happiness, jubilation, elation, satisfaction, zeal, zest, excitement, thrill, exhilaration, contentment, pleasure, pride, eagerness, hope, optimism, enthrallment, rapture, relief, amazement, surprise, astonishment, aggravation, irritation, agitation, annoyance, grouchiness, grumpiness, exasperation, frustration, anger, rage, outrage, fury, wrath, hostility, ferocity, bitterness, hate, loathing, scorn, spite, vengefulness, dislike, resentment, disgust, revulsion, contempt, envy, jealousy, agony, suffering, hurt, anguish, depression, despair, hopelessness, gloom, glumness, sadness, unhappiness, grief, sorrow, woe, misery, melancholy, dismay, disappointment, displeasure, guilt, shame, regret, remorse, alienation, isolation, neglect, loneliness, rejection.

Думаю, це була найважча частина.

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

Загалом це далеко не перший раз, коли я беру участь в локалізації чогось, і скоріш за все не останній. А у вас був досвід?
Please open Telegram to view this post
VIEW IN TELEGRAM
Cіпласпластик
Вітаю всіх з 0x20-м Днем незалежності України! За збігом обставин так вийшло, що я буквально вчора зробив свій маленький внесок у розвиток нашої мови, переклавши інтерфейс програми Monica українською. (Трохи дивно, адже я цей інструмент навіть не використовую…
До речі, як я щойно дізнався, 1Password також перекладають на Crowdin.

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

Тоді, можливо, з'явиться офіційна локалізація, в створенні якої я обов'язково візьму участь.

Ну й… цей во… час вже починати форвардити мої дописи по друзях 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
Я вже якось згадував, що почав користуватись Warp як терміналом на macOS. Вирішив його спробувати, бо сподобалася (читайте — зійшлася з моєю) ідея блоків: фактично він просто групує команду з її аутпутом, що, втім, доволі зручно.

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

А вчора з друганом обговорювали Warpʼівський відос (ютубівські шорти дуже дратують), де нам говорять: «Дивіться, ми додали command palette в термінал, аби вам було зручніше». І тут я нарешті збагнув! Вони буквально кажуть: «Ми робимо прогу з рядком для вводу команд, в яку ми додали інший рядок для вводу інших команд» 🤨 В чому сенс?

Додатково в контексті розмови виринув (хе-хе) fish, котрий мій друган мені порадив глянути. Я й до того чув хороші відгуки на нього, а вчора реально пішов та глянув. Виявилось, що це майже shell здорової людини (на відміну від bash)! Перейшов на нього.

На скриншотах вище — порівняння автокомпліта однієї й тієї ж команди в так званому покращеному “warpified” шеллі та в стандартному — без жодних фічей з боку термінала. Який вам більше до вподоби? 😆
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM