Français
Ouvrir dans Telegram
ССіпласпластик

Сіпласпластик

@cpplastic · canal · Technologie · dans l'index depuis 2026-05-25
817abonnés
433portée moyenne d'une publication
53%ER — portée rapportée aux abonnés
5publications en 30 jours
С
Сіпласпластик
Photo
cliquez pour afficher
Я обожнюю скінченні автомати. Це штука, яку дуже легко втямити і яка потім вам знадобиться мільйон разів. Їх можна використовувати для опису процесів, автоматизацій на кшталт IoT або CI/CD, діалогів або поведінки НІПів в іграх, парсингу тощо. Завдяки їм зручно контролювати послідовність виконання чого-небудь, робити відновлення до попередніх станів, обробляти помилки. (Памʼятаю, у нас у MBUX був скінченний автомат для підʼєднання телефону до автівки по Bluetooth… на півтори сотні станів 😵‍💫 Гляньте якось BT-спеку заради цікавості). Але найулюбленіший мій спосіб їх використовувати — це звісно UI. Як усім відомо, найбільша проблема UI — це комбінаторний вибух станів. Якщо у вас купа «прапорців», які можуть по-різному впливати на поведінку програми, то інколи навіть утримати це все в голові важко. Але щойно ви робите скінченний автомат, усе стає значно легшим! На прикладі вгорі якраз такий для мого таймера на Pebble. На годиннику всього чотири кнопки, але уявіть собі код обробки натискання BACK без скінченного автомата: це був би довжелезний ланцюг if-else штибу «якщо таймер запущений, але не на павзі», «якщо таймер запущений і на павзі, але програється анімація скидання» і ще десяток таких. Натомість я описав окремі стани програми, і в кожному стані у кожної кнопки лише одна функція. Я писав на 💻, тому обробник натискання кожної кнопки перетворився на простий switch. Але бувають способи й красивіше. Наприклад, QML дозволяє описувати скінченні автомати декларативно. Обожнюю цей підхід. Також існує цілий окремий стандарт для опису скінченних автоматів в 💻 — SCXML; деякі тулзи вміють його читати, навіть той же 💻. Проте той же таймер мій — це дуже проста програма. Що робити, коли в'юшок стає багато? Ну, вочевидь робити більше скінченних автоматів! Доволі зручно робити їх ієрархічними. Уявіть типове IDE, в якому є «звичайний» режим кодінгу і є окремий режим зневадження — це ваш скінченний автомат верхнього рівня з двома станами. У кожного автомата є точка входу, напр
18 · 1.3K ·
С
Сіпласпластик
Дізнався пару днів тому з якоїсь статті, яку вже загубив, про фічу в Git 💻, котрої мені бракувало. Річ у тім, що в моїх робочих копіях git-сховищ часто купа якогось сміття: прототипчики, скрипти, тимчасові файли або ж файли, які не треба комітити — одним словом те, чим користуюся я сам і що варто ігнорувати. Так, існує .gitignore, але засмічувати його своїми масками файлів чи тек не завжди добре: по-перше, часто воно дійсно треба лише мені, по-друге, файл розростатиметься, по-третє, бувають випадки, коли сама наявність певного імені файлу в списку небажана. Виявилося, що .gitignore — не єдине місце, куди можна щось таке вписувати. Є ще .git/info/exclude, який працює так само, але сам він під контролем версій не знаходиться, тож при стягуванні репи іншими членами команди у них цього всього не буде. (Хуки теж десь усередині .git лежать і страждають від цієї ж проблеми, чим мене бісять. Але тут навпаки зручно). Також є глобальний список ігнорування, який лежить в ~/.config/git/ignore. Я на macOS, тож у мене там приблизно таке: .DS_Store **/.claude/settings.local.json Якщо ви на вінді, то впишіть туди thumbs.db 😆 Ну й наостанок можна ще розповісти про команду для перевірки, чи щось ігнорується ґітом: git check-ignore <path> (Хто б сумнівався, що вона існує. У моїй версії git зараз у районі 160 підкоманд 🤯 Unix way, ага). Краще запускайте з --verbose, і воно тоді покаже, звідки саме прийшов ігнор: > git check-ignore .DS_Store --verbose /Users/cpplastic/.config/git/ignore:1:.DS_Store .DS_Store
17 · 1.3K ·
С
Сіпласпластик
Зараз дід Сіпласпластик знову буде нити про системи побудови проєктів на 💻 та суміжні теми. Я вже писав раніше неодноразово про Qbs, Xmake та інші. Також писав, наскільки не люблю CMake 🤮. Моє особисте емпіричне правило таке: якщо виникає потреба в зневаджувачі для ваших скриптів, які перетворюють код на те, що можна запустити, то щось іде геть не так. Microsoft колись додала можливість налагоджувати CMake-скрипти прямо у VS, а зараз оце побачив тулзу, яку хтось собі навайбкодив з ImGui — dcmake називається. І перш ніж вебпрограмісти посміються з бідних нативщиків, я вам «напамʼятаю», що якихось 10–15 років тому можна було деплоїти вебзастосунки перетягуванням файлів з локальної теки на віддалену — іншопланетні технології. А зараз список з тудушками не запустиш без компіляторів, бандлерів, мінімайзерів, тришарового докера й обліковки на Cloudflare 😉 Повернімося до нативних програм. Чого так важко-то? Насправді головна складність навіть не в тому, щоб компілювати й запускати програму (хоча в C++ навіть це випробування, якщо є зовнішні залежності). Локально-то я її запускаю в себе! А от розповсюджувати — це проблема. У ембедерів, до речі, від цього голова так не болить. Маємо три основні настільні системи та пару мобільних. (Раніше ще Symbian, Windows Mobile та Maemo були — шкода що померли). Пишете ви програму на комп з використанням «кросплатформного» фреймворка на кшталт Qt. Очікування: сьогодні написав, а завтра всі користуються. Для програм рівня калькулятора десь так і буде, а для чогось серйознішого — без шансів. У кожної ОС своя атмосфера. На вінді 🪟 бінарь і ліби всі в одній теці лежать, іконки *.ico, треба інсталятор, треба якийсь там vcredist_x64.exe, автозапуск через реєстр тощо. На macOS 🍏 інсталяторів найчастіше нема (але інколи є!), зате є особливий архів з прогою; сама прога показується як файл, але насправді це тека зі своєю особливою структурою, яка чітко описана в специфікації, але яку всі порушують, навіть сама Apple — ліби в одній теці, бі
5 · 1.1K ·
С
Сіпласпластик
Lien
cliquez pour afficher
Хто читає цей канал давно, знає, наскільки я полюбляю 1Password. Завдяки ньому в мене SSH-ключі навіть не лежать на диску, а .env я можу комітити без остраху. Що я не люблю — це коли вони підіймають вартість передплати 😠 Але мало хто знає, що можна отримати безплатно 1Password Teams, який зазвичай коштує 25 баксів на місяць, якщо ви розробляєте щось з відкритим кодом. Люблю, коли компанії не лише користуються надбаннями цивілізації, але й чимось віддячують. (Раніше вже писав, як аналогічним чином отримав ліцуху на Araxis Merge). Для отримання 1Password на дурняк треба мати якийсь плюс-мінус корисний проєкт з відкритими сирцями й подати заявку через GitHub 🐈 або написати їм на пошту. Важливо, щоб цей проєкт не використовувався комерційно (але вести іншу комерційну активність паралельно можна звісно). Переглядають такі запити вони раз на тиждень-два, тому доведеться трохи почекати ймовірно. Тим не менш, це реальна можливість. Ось і я нарешті зможу перенести всі ключі, паролі й токени з особистої обліковки (за яку досі плачу й продовжу) в ту, що повʼязана саме з проєктом. Це також допомагає закрити питання обміну всім важливим, зокрема секретами, між людьми в команді на випадок, якщо перестану бути головним мейнтейнером.
5 · 1.2K ·
С
Сіпласпластик
Lien
cliquez pour afficher
Усі ж подивилися вже доповідь автора SQLite 🪶 і Fossil ☠️? Дуже раджу витратити цю годину, щоб дізнатися, як команда з трьох головних мейнтейнерів підтримує один з найбільш вживаних у сучасності продуктів. Дядько розповідає про те, як у них побудований процес тестування. Дуже цікаво! Я й сам нещодавно перевів деякі свої self-hosted штуки з постгреса на SQLite, зокрема Forgejo та Paperless-ngx. Мотивацією було те, що на моїх обʼємах даних геть нема сенсу тримати окремі контейнери PostgreSQL 🐘 чи навіть один екземпляр з кількома БД, що обслуговував би всі проги як сервіс. Натомість маю просто по невеличкому файлу — легко бекапити. Тим паче туди дуже рідко щось пишеться. Ще днями кумедна історія була з тим, як JFrog аналізувала вразливості, які нещодавно знайшли в SQLite, і виявила, що 54 з 55 — це ШІ-слоп 🤣 «Coding is solved» чи як там?
18 · 1.3K ·
С
Réponse🤣🤣🤣😂
Бляяяя, їх все-таки ламанули 😂 Певно, скористаюся шансом усім нагадати, як важливо підтримувати українські локалізаційні спілки, особливо ті, чиї переклади виходять з іграми офіційно. Варто хоча б Шлякбитраф підтримати через патреон чи монобанк (там, до речі, якийсь розіграш призів нині за донати). Мрію про часи, коли всі нові ігри виходитимуть одразу з українською! 💛
6 · 985 ·
С
Сіпласпластик
Réponsetexte pas encore dans l'index
До речі, лайфхак стосовно семантичних версій. Коли мене змушують використовувати саме цей формат, я нерідко пишу щось на шталт 2026.8.13 — ще семантичніше вже нема куди 😉
2 · 1K ·
С
Photo
cliquez pour afficher
До речі про UX. Знаєте ж оцей ідіотизм з «утримайте ⌘Q», який в певний момент всі почали собі додавати? Телеграм той же, наприклад. Хочу побажати людині, яка це вигадала, побільше незручностей у житті. А вам розповім лайфхак, про який не всі знають: замість затискання клавіші можна просто двічі натиснути 😉
1 · 978 ·
С
Сіпласпластик
Photo
cliquez pour afficher
Там Basecamp навайбкодили CLI та TUI на 🦶 для своєї пошти HEY — нарешті можна не лише через їхню веб-версію заходити: https://github.com/basecamp/hey-cli. Я поки не пожалкував стосовно переходу на HEY — досі найзручніша мені пошта. Але відсутність IMAP чи якоїсь апішки трохи підбішувала. З цікавого: команди по дефолту пишуть JSON, якщо далі в ланцюжку стоїть ще щось:
6 · 730 ·
С
Сіпласпластик
Lien
cliquez pour afficher
Ви ж знаєте, що я полюбляю Tailscale 💠 попри те, що недоліків у них теж вистачає? Але самі, певно, досі не спробували. Ну так ось тепер навіть не обовʼязково реєструватися, бо вони випустили нову утиліту tailcat! Це звісно не повноцінний Tailscale, бо тут в принципі нема обліковки, користувачів, ACL, сервісів тощо — навіть айпішників нема. Зате можна зробити отак: tailcat serve 3000 щоб дати комусь доступ до вашої чергової вайбкодової To Do app. Коли запускаєте команду, воно видає вам ефемерний ключ, з яким на іншому боці так само запускаєте tailcat — і вуаля. Якщо прямого доступу між вузлами нема, воно через їхній DERP порезолвить, створить WireGuard-тунель, і байтики побіжать. Можна так файли перекидати один одному тупо через пайп, можна SSH-доступ організувати, можна дати ШІ-агенту доступ до якогось свого сервака на один раз, можна ще багато чого. NAT чи не NAT — по боку. Порти прокидати на роутері не треба, нічого взагалі більше не треба. Якщо tailcat serve убити, то ключ інвалідується й наступного разу згенерує новий. Хоча є спосіб зробити постійний ключ, для такого я радив би усе ж повноцінний Tailscale, бо там значно більше контролю. Інакше хто завгодно, хто цим ключем заволодіє, зможе отримати доступ до вашого ресурсу. І так, я знаю, що це далеко не перша подібна тулза. Та все ж мені подобається, що ця контора робить корисні й зручні штуки. Згодом, думаю, прийдуть часи, коли я буду всюди писати, яка ж лайняча компанія, та поки що ні 🙂
19 · 772 ·
С
Сіпласпластик
Lien
cliquez pour afficher
«Порекламую» вам український сайт, який мені дуже подобається. Взяв слово в лапки, бо як і все в цьому каналі — це моя особиста рекомендація, про яку мене ніхто не просив. Отже, називається він GRAVK (хз, що воно значить). Якийсь чувак десь рік тому, схоже, втомився від того, що немає зручних сервісів, де можна було б відстежувати ігри, які граєш чи плануєш, тому сів і написав власний. Я ду-у-уже полюбляю ігри, як ви могли зрозуміти, хоч і граю доволі рідко, тому одразу зрадів появі такої штуки. Щоправда, рік почекав, щоб упевнитися, що це не просто пет-проєкт, який зникне за тиждень… Ну, ви знаєте, як воно буває. По-перше, сайт зроблений якісно. Він доволі симпатичний, швидкий, явно зроблений зі смаком. Згадуючи умовну Кінобазу, у мене щелепу зводить від жахливого дизайну, а тут все прям класно. (Шкода, що для фільмів та серіалів ніхто поки не спромігся зробити нічого нормального). По-друге, автор (до речі, ось його профіль) постійно розвиває сайт, додає нові фічі, покращення тощо. Особливо зручно, коли після всяких великих конференцій на кшталт TGA чи Gamescom на ґравку з'являється список з усіма представленими іграми. Та й взагалі як щойно анонсовані, так і дуже старі ігри там майже завжди присутні, а якщо ні, то можна попросити їх додати. До речі, цікаво, як це технічно зроблено. Мабуть, тягне обкладинки й описи з усіляких там SteamGridDB чи я навіть хз. Як би ви це робили? І чому ніхто досі цього не зробив для фільмів? По-третє, і це найголовніше, на сайті не надто багато народу поки — 1873 користувачі на цю мить — але люди дуже активні! Постійно з'являються нові оцінки, довжелезні рецензії, цікаві списки тощо. Мені особисто ще дуже корисно, що сайт показує зріз саме української авдиторії. Жодний розробник на цей сайт не дивиться, а це значить, що рейтингам поки можна вірити — нема сенсу робити накрутку чи навпаки руїнити оцінку. Словом, більше б таких продуктів, особливо українських. Зверніть увагу, що там навіть жодного ШІ-чату нема серед фічей — це вж
12 · 673 ·
С
Сіпласпластик
Lien
cliquez pour afficher
Ух, яку ж класну доповідь подивився: «Scott Jenson: Are we really going to use the same Desktop UX forever?» Чітке попадання в зону моїх найбільших інтересів! Крутецький дядько й чудова подача матеріалу. Як і всі найкращі спеціалісти — має геть кепське відчуття часу 😂, тому ледве вклався в 40 хвилин. Мені дуже відгукується, як у нього підгоряє дупа від терміну UI/UX. У мене теж горить (і ще від C/C++, як ви знаєте), бо UI — це лише крихітна частинка UX. Ось у мене світло в коридорі само вмикається-вимикається, і для мене це майже ідеальний UX, хоча жодного UI там нема — воно просто працює. А взагалі головна тема така: фактично вже дуже довго нема жодного розвитку інтерфейсів для настільних систем, хоча останні нікуди не поділися (і не подінуться), бо Apple та Microsoft перестали ризикувати. Тож він пропонує підняти десктопний лінукс з колін 🙂 Та подивіться самі, короч. У нього там є декілька прототипів цікавих, однак, головна ідея звісно не в них, а в тому, що треба експериментувати 🧪 Отже, справив приємне враження на мене цей чувак. Я б із таким попрацював, бо явно є, чому повчитися. А поки, мабуть, книжку куплю.
12 · 641 ·
С
Сіпласпластик
Vidéo
1.6 Mo · cliquez pour afficher
Щось не злетіло з self-driving cars у автовиробників, еге ж? А стільки галасу було. Ну зате ШІ-шка відоси навчилася генерувати, дуже корисно: нарешті можу дивитися лайнячу рекламу зі штучними людьми 🫠 Ну нічо, помріймо, як могло б бути. Ми-то з вами програмісти, тому нам має бути очевидно, що оці всі лідари або, прости господи, камери 🚗 — це все дурня доти, доки на дорогах купа ідіотів за кермом. Натомість треба переробити все з нуля 🙂 Як у тому радянському анекдоті про сантехніка: «Все прогнило! Всю систему треба міняти». Щоб самокеровані автівки працювали, треба, щоб на дорогах були лише вони. Джедаї, що їздять 200 км/год, та інші любителі врум-врум — вам на ізольований трек. Якщо всі автівки керуються компʼютерами, то нема сенсу вже запарюватися спробами вгадати, що в який бік рухається. Натомість пропоную розробити протокол для прямого спілкування між автівками на середній відстані — скажімо, до 500 м. Нехай всі передають своє положення й вектор руху. Ну й, мабуть, анонсують свій намір: наприклад, змінити смугу. Тоді «сусіди» апрувлять і підлаштовують власний план руху під це. Для автобанів цього вже достатньо (хоча з тваринами питання відкрите). Та й з гіпотетичними перехрестями рішення тривіальне. Але в цілому з містами поскладніше — там тварин багато, зокрема людей. Доведеться канєш якось реагувати на раптові перешкоди, тож лідар все-таки стане в пригоді. З іншого боку, аварій все одно буде менше, бо цілий ланцюжок автівок зможе загальмувати одночасно, раптом шо. Та й зараз всі з телефонами все одно, тому можна прямо в них якісь маячки бахнути. Змінити все за ніч не вийде, звісно, тож все одно буде якийсь перехідний період. Скептикам нагадаю, що всього 130 років тому асфальтових доріг у світі взагалі майже не було, і нічого — набудували. Спершу зробімо окремі дороги, куди можна заїжджати лише на безпілотних автівках. В Європі тій же вже й так купа місць, куди можна вʼїжджати лише на дофіга екологічному транспорті, хоча далеко не всі такий мають, тож с
3 · 332 ·
С
Сіпласпластик
Photo
cliquez pour afficher
Зацініть рівень української служби підтримки. Жодних пояснень, заяв, перепитувань: «Не треба VPS? Ну то й до побачення!» — менше хвилини пройшло 😂
🔥33🤣12👍54
4 · 405 ·
С
Сіпласпластик
Photo
cliquez pour afficher
Якийсь час назад почав використовувати так звані passkeys для певних сервісів. На перший погляд, це безпечніше та зручніше за звичайні паролі, які можна забути, випадково розкрити тощо. А тут у вас є приватний ключ, збережений на пристрої, і публічний десь у тому сервісі, в якому ви хочете автентифікуватися. Важливо, що приватний ключ ніколи не залишає вашого пристрою й не передається по мережі на відміну від тих же паролів. Ну, в принципі шо я вам парю, якщо ви всі давно звикли до зв'язки приватного й публічного ключів в SSH. Причому з тим же 1Password ключ навіть не обов'язково зберігати у файловій системі. Але корпорати нас усіх знову переграли. Дружбан скинув статтю, автор якої налаштований не настільки оптимістично. І якщо чесно, я тепер теж. Розпишу коротко. Прикол у тому, що passkeys — це загальна назва для тупих споживачів типу нас. А стандарт WebAuthn насправді поскладніше, але ж хто ті стандарти читає, еге ж? Зокрема, WebAuthn розрізняє такі характеристики ключів як ті, що можна копіювати, і ті, що не можна; ті, які можна передавати, і ті, що ні; софтварні й хардварні тощо. Та найцікавіше починається на Attested vs Non-attested. У процесі автентифікації сервісу передаються всі характеристики вашого ключа. Фактично вони за бажання вже можуть заборонити вам використовувати ключі, які можна копіювати, наприклад. З іншого боку ви завжди можете написати (кого я обманюю? навайбкодити звісно) власну прогу, що передаватиме туди ті прапорці, які ви захочете. …Можете доти, доки сервіс не вимагає саме засвідчених (attested) ключів. Тоді все — приїхали. Знову буде якийсь реєстр «доброзвичайних» автентифікаторів, які можна використовувати, а решта йде лісом. Ми вже тисячу разів бачили цю схему. З останнього спадає на думку, як супервідкрита система Android, яка завжди дозволяла ставити будь-які програми звідки завгодно, одним рішенням ґуґла перестала такою бути. Віднині, як ви чули, без головного болю можна буде встановити APK лише від перевірених розробників.
👍275🤔1
26 · 832 ·
С
Сіпласпластик
GIF
taking-the-trash-out-courtney-marie-andrews.mp4 · 1.2 Mo · cliquez pour afficher
Різноманітні програми, менеджери пакетів, компілятори, ШІ-агенти — все це засмічує дисковий простір на компі. Під вінду колись існував (досі існує?) CCleaner, під macOS є AppCleaner, PureMac, український CleanMyMac тощо. Під лінукс легше форматнути диск, мабуть, я хз 🤭 На початку року якийсь чувак (насправді автор менеджера пакетів Scoop) анонсував прогу, яка має чистити диск саме від кешів розробницьких інструментів — Reclaimr. У мене ще тоді закралася думка, що він її навайбав за вечір. Так чи інакше, проєкт, видно, не злетів, бо навіть завантажити з сайту бету вже не можна. Тому, сподіваюся, він мені пробачить, що я витягнув з його програми файл з правилами, де й що чистити. Тримайте теж, бо може стане в пригоді. Він далекий від повного, але це щось. Дивно, до речі, що ніхто досі не створив на ґітгабі якийсь відкритий реєстр місць, де накопичується сміття 🤔
👍10
8 · 416 ·

Un fil public ouvert issu de l'index de recherche ChatCrawler — « le Google du Telegram public » ; actualisé à mesure que la communauté est explorée. Les heures sont en UTC.

Contenu public uniquement, API officielle de Telegram. À propos · FAQ · Limites de l'index · Retirer une page · Catalogue · Recherche · Comment nous comptons