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

Мої емоджі:
https://t.me/addemoji/AdaptiveDevIcons
https://t.me/addemoji/VehicleBrands
Download Telegram
В одній з контор у Львові був Whitesmiths стиль, памʼятаю. Це клініка, але тільки перший тиждень, ну максимум два — а далі вже підспівуєш разом з рештою )
😁8👍1🔥1
“Our displays redefine the meaning of rapid” 😂
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8🤯21
Про оптимізацію та шнурки (хто ще вам про таке розкаже?)

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

Комусь подобається оце сидіти два тижні, щоб вичавити ще пʼять мілісекунд з алгоритму, тоді як краще фічей зробити чи багів пофіксити. (Хоча я можу тиждень намагатися видрочити pixel-perfect UI або анімацію — чи це краще? 🤓). З іншого боку є ті, хто не париться взагалі. І потім отримуємо вебсайти Адідаса або, господи пробач, Самсунга, на яких навіть якщо ду-у-у-у-уже захотіти, то не завжди вдається щось купити, бо нерви вже не витримують.

Тож я б радше покладався на якісь бізнес-метрики, вирішуючи, чи треба щось оптимізувати. В побуті, щоправда, у мене таких нема. Зате є метрика «Та якого біса!», й коли воно накопичується, я починаю свідомо обмірковувати можливі покращення.

Наприклад, ми років 10 користувалися звичайним таким металевим кругленьким чайником зі свистком, щоб воду гріти, бо він няшний, хоч купляли його ще для газової плити. Відтоді змінили 4 квартири в 3 містах та навіть країну проживання змінили, а чайник — ні. І ось терпець урвався врешті (бо не газ давно), та я купив звичайний електрочайник, оптимізувавши час очікування (та витрати енергії) рази в три.

Але буває так, що подумати над оптимізацією якогось процесу навіть не спадає на думку. Як-от зі шнурками на взутті 😵‍💫 Ми з дружиною плюс-мінус однаково їх завʼязуємо, але у неї вони розвʼязуються самі по собі разів у 5 частіше 🤔 Погодьтеся, це не та проблема, до якої застосовуватимеш 5 whys в звичайній ситуації. Ну, може, я затягую сильніше, або може матеріал різний, хз навіть — подумав і забув, еге ж?

Але виявляється, що у звичайного «класичного» вузла є дві версії: сильна та слаба 🤯 Це справді працює: позбавляє роздратування без реєстрації та смс )) Але якщо вже взялися оптимізувати, то можна піти далі.

В інтернеті є чувак на імʼя Іен (швед, мабуть), який прям спеціалізується на різних видах шнурівок — вже 25 років їх збирає. Ви точно натрапляли на його кольорові діаграми хоч раз, бо їх всі крадуть. Памʼятаю, як ще, може, в 2005-му по них конверси по-позерські шнурував.

Виявляється №2, що не всі шнурівки суто декоративні — деякі дозволяють завʼязувати взуття значно швидше! І вже декілька років перше місце в загальному рейтингу серед всіх різновидів посідає Ukrainian lacing 🤝!

Ні, цей метод не є якоюсь загальновідомою українською спадщиною. Просто його придумав років 8 тому українець Віталій Гнатенко та назвав на честь України.

У мене на сьогодні все )
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51👀1
Натрапив на новий для себе редактор C++-коду — 10x. Платний, тільки під Windows, має вбудований парсер плюсів, інтеграцію з Perforce 😱 (вочевидь писався під геймдев) і виглядає доволі швидким.

Може колись спробую, якщо повернуся на вінду, а поки просто додам у #тулзи.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👨‍💻2🤷‍♂1👀1
Cіпласпластик
Як довго працюєш над чимось, то зазвичай око замилюється, і стає важко раціонально оцінювати результати праці. Це актуально, мабуть, для будь-чого, де критеріїв для оцінювання або немає, або вони дуже складні: мистецтво, програмування тощо. Тож зрештою думка…
В нових Rivian (це такі електричні пікапи) на відміну від Мерседесів та ще багато кого вирішили не робити тач-контроли на кермі, але й суто механічними їх назвати важко. Доволі цікаво.

Фактично, це механічні колесики, але напевно там якийсь brushless-мотор в кожному, який контролюється програмно. І це дозволяє йому як вільно обертатися, так і з відчутними кліками, які ще й можна налаштовувати. Скоріш за все, колесо в останніх мишах Logitech MX Master 3S зроблено так само, до речі, але я не розбирав.
🔥1👀1
Люди схильні до ускладнення при розв'язанні більшості задач. От попросіть сучасного UI/UX-дизайнера розробити… ну я хз… HMI для велокомпʼютера! або для музичного синтезатора! — і на виході обовʼязково отримаєте ще й апку на телефон, яка до них підʼєднується. Щоб що? (В той самий час, наприклад, OP-1 від Teenage Engineering має не сенсорний екран 320×160, і цього достатньо — гляньте на ютубі).

Я в принципі дуже негативно ставлюся до комбінації UI/UX, бо якщо добре виконати свою UX-роботу, то не залишиться місця для UI-роботи, а хто ж на це піде? А через те, що в UX здебільшого приходять через UI-дизайн, останній завжди лишається в пріоритеті. (Коли пишуть C/C++ — я теж вкрай негативно сприймаю зі схожих причин).

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

І короч друган скинув мені відос, де в аеропорту хтось оновлює табло авіакомпанії тупо в PowerPoint! Це ж просто геніально, бо, а що ще треба реально‽

Уявляю, чого б ми навигадували, якби до нас ця авіакомпанія прийшла з RFQ для проєкту. Та я б нарахував вже 200 людиноднів, мабуть, зі старту. Треба ж бізнес розвивати.
👍9😁31💯1
А памʼятаєте цю статтю, що я кидав сюди? Вже три тижні пройшло, а я досі не крінжую з того, що там понаписував, а значить, не така вже й погана вона — почитайте.

Ну так от, я мусив на цю тему ще провести 15-хвилинну доповідь у нас в компанії. Але якось нудно про це розповідати, тож натомість я зайшов зі зворотного боку з темою «Want to get better at C++? Learn other languages», бо це буквально мій досвід.

Наприклад, ООП у С++ я зрозумів, тільки коли на #Java почав писати (а пізніше з #Io чи з чимось таким збагнув, що таке ООП насправді 😁). А темплейти та STL зміг ефективно використовувати після того, як на #Haskell покодив певний час. А actor model — завдяки #Erlang вдуплив (для С++ до речі є ось CAF).

І це тільки про С++ зараз мова, а загалом у мене багато про що є певні знання. Якось девелопер в команді питає: «Як ти», — каже, — «так швидко якесь бачення чи рішення в голові будуєш?» Та ось як! Багато чим цікавишся, і врешті воно стає в пригоді. Як у тому жарті, що навіть інтеграли з уроків математики виявилися корисними, коли гачок з дроту треба було зігнути, щоб ключі з унітаза виловити.

Сьогодні мені треба було ту 15-хвилинну доповідь стиснути в іще менший формат — 5 хвилин. Причому цільова авдиторія вже не тільки програмісти, тож я вирішив ще більше тему узагальнити, бо мій підхід до навчання в принципі не надто залежить від теми: 1) бачиш якусь ідею або прикольну штуку в контексті; 2) шукаєш джерело цієї ідеї або, може, місце, де вона відіграє ключову роль; 3) відокремлюєш її від неактуального контексту, щоб не заважав; а коли вже вона потрапила до твого власного скіл-сету як один з інструментів, то 4) можна починати міксувати з іншими ідеями.

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


Так от якщо цей метод пізнання назад на С++ спрямувати, то раптом стає видно, що ця мова дуже хєрова для вивчення якихось концепцій, але вона доволі крута для їхнього застосування на практиці. Реально multi-paradigm language.

Це у нас «фінальне змагання» в конторі було. Я пофейлився авжеж, зате було кумедно. І нарешті можна зайнятися іншими справами, бо часу жерло — жах.
👍31
Не знав про існування таких звітів 👇 Прикольна штука, хоча й не зовсім по моєму профілю.
Please open Telegram to view this post
VIEW IN TELEGRAM
👀1
Forwarded from import __hello__
Вийшов новий Technology Radar. Із цікавого (мені):
- Text to SQL in Trial (новий)
- CloudEvents in Adopt (піднявся із Trial)
- Pulumi in Trial (минулого разу також був у Trial)
- Rancher Desktop (новий, витиснув Colima)
- Kaniko in Adopt (минулий раз згадували у 2022 році)
- Mojo in Assess (новий)

Знов багато AI та не дуже багато чогось кардинально нового. Але може хтось для себе зможе щось цікаве відкрити (мені не вдалось цього разу, хіба що Kaniko)

https://www.thoughtworks.com/radar
👍4👀1
ISO C++ створили щорічне опитування пару днів тому (валідне буде тиждень всього).

Останнім часом на С++ тиск підсилився, бо той же Rust з memory safety підпирає. Доходить до того, що Страуструп вкотре виправдовується, мовляв, «нормальна безпечна мова — то у вас руки зі сраки».

Я в чомусь згоден, у чомусь — ні. Але ви подивіться на запитання. Наприклад, «що вас найбільше дратує в розробці на C++?» І у відповідях зокрема аж три окремі можливості зазначити, що «memory safety для мене не є проблемою» 😂 (А багатьом програмістам і справді пофігу, бо це ж не вони гроші втрачатимуть якщо що).

Або: «чи дозволено вам на роботі користуватися модулями з C++20?» Ну, дозволено-то дозволено, але ж вони не працюють нормально — підтримка компіляторами щось якось частково є, а білд-системи здебільшого не альо тощо.

C++ точно не помре найближчим часом, але хз навіть, які перспективи.

Ну ви-то більшість і не плюсисти мабуть взагалі. А я на C++ досі пишу тільки тому, що мені подобається робити UI на #QML 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Граємо з друганами у #Pathfinder майже щотижня (це такий форк D&D).

Бахнув собі за годинку (з якої хвилин 40 витратив на створення рєпи-темплейта на ґітгабі, бо задовбало щоразу всі свої депенденси сетапити) отаку тупу прогу на #QML, яка показує смугу хп. Тепер накладаю її собі на вебку через OBS, щоб у дискорді всім було видно.

Чисто валідація ідеї. Над дизайном довго не міркував — точно ще буду переробляти (як і портрет персонажа, якого наразі скрафтив отут).
👍72
Обожнюю дивитися відоси від Qt, де вони хизуються своїми дизайнерськими тулами або щось з розумним виглядом парять про UX.

Така увага до деталей! 🧐 Кути скруглені з різним радіусом, блоки один над одним на пару пікселів різні завширшки… До речі, той четвертий кут, який мав бути також заокругленим, має ще менший радіус (там видно, якщо придивитися).

Я розумію, що девелопери цього не бачать. Але бляха, ви ж мабуть ці відоси для дизайнерів робите?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11🤷‍♂1
Є якийсь такий прикол у мене, що я завжди віддаю перевагу водонепроникним виробам та виробам з титану. Ну тобто якщо поряд будуть два пристрої, й один з них буде з титану або водонепроникний, або водонепроникний з титану 🤩, то я оберу його!

Це, мабуть, з тих часів пішло, коли я вирішив готуватися до зомбі-апокаліпсиса років 12 тому 😐 (Мені тоді ще складно було уявити, що zомбі на наші землі реально прийдуть).

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

І ось сьогодні — вже навіть не памʼятаю як — я дізнався про такий формат як ZIM, який призначений для збереження вебсайтів-баз знань на кшталт Вікіпедії чи Stack Overflow для офлайн-перегляду. А з моїм прагненням колись повністю перейти на local-first та self-hosted штуки, виглядає доволі цікаво. Є ось опенсорс-прога для завантаження та перегляду zim-файлів: Kiwix.

#TIL
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Я усвідомлюю, що мені просто впадлу вчити #Rust, тож я й не вчу, але все одно лишалося це відчуття, що може весь хайп не з порожнього місця і що може варто було б звернути увагу.

Друган в коментарях до іншого допису вже наводив приклади, і ось зараз рєпа cve-rs нарешті закрила для мене це питання остаточно. Memory safety — це брехня, розходимося 😂
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6😱3👍1🤡1
В плюсах доволі нерідко перевантажують метод залежно від того, чи сталим є сам обʼєкт, чи ні. Ну, наприклад, контейнер може оголошувати метод, що повертає ітератор на початок якось так (спрощено):
T* MyContainer::begin();
const T* MyContainer::begin() const;

тобто якщо обʼєкт сталий, то і вказівник повертає такий, через який не можна поміняти те, на що він вказує, а якщо обʼєкт мутабельний, то і вказівник теж.
(Якщо ви не в темі, то отой const, що після дужок, фактично відноситься до неявного this, який потрапляє в метод).

Але в QHash (хеш-мапа в #Qt) оператор для доступу до елемента по ключу, як ми сьогодні з друганами виявили в ході обговорення, якогось хєра оголошений отак:
T& operator[](const Key& key);
const T operator[](const Key& key) const;


На перший погляд, все ок 🙂 Окрім того незначного факту, що константний оператор якогось хєра повертає не const T& (тобто не референс), а const T 🤯 Іншими словами, воно щоразу те значення, яке ви дістаєте з хеш-мапи по ключу для читання, зайвий раз копіює.

Фішка в тому, що ніхто в C++ ніколи не повертає const T, бо це безглуздо. Повертають або просто T, або const T&. Тож я вангую, що це баг, про який компілятор вам ніколи нічого не скаже, бо з його погляду все в порядку.

Зайве нагадування про те, що всі ці бібліотеки, котрими тисячі або навіть мільйони людей користуються, пишуть не якісь суперпрограмісти, а такі ж посередні, як ми всі з вами 😎😂
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6
Дуже подобається мені, коли домовляєшся, наприклад, про співбесіду, а тобі одразу кидають запрошення в календар, де і час заповнений, і адреса або посилання на онлайн-нараду.

Або домовляєшся відвідати лікаря чи там в банк зайти по кредит, а тобі гоп — інвайт на пошту.

Або бачиш новину про прийдешню конференцію, де написано: «Ось тоді-то й тоді-то відбудеться — save the date!». І хоп, кнопку тиснеш, завантажуєш ics-файл, щоб в календар собі швидко додати з усіма деталями.

І знаєте, хто так робить? Ніхто, блядь. Ну може 1 з 10 випадків буває, що хтось аж настільки «досвідчений». У решті ж — бери та створюй сам.

Причому ж у багатьох випадках людина «на тому боці» собі все одно цю подію в календар додає. Чого не заінвайтити просто? Не розумію прикола, короч 🙂 (Ну ок, може бути випадок, коли «внутрішній» івент містить у собі більше інфи, яку не хочеться шарити назовні, але все ж).

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

Але буває, що комусь щось треба від тебе, а не навпаки. Проте вона чи він тобі одразу фігак посилання, мовляв, «обери час, коли ти мені зможеш допомогти». В принципі нічого не маю проти, але тут варто усвідомлювати, що це один з психологічних гачків: ти власноруч заходиш на сторінку, щоб обрати таймслот для бесіди — інвестуєш свої зусилля фактично. А люди дуже неохоче втрачають інвестиції 🤑 Тож коли ти так робиш, то шанси, що ти погодишся допомогти, зростають (бо вже вклався часом). Звучить як дрібниця, але це реально працює 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔3