This media is not supported in your browser
VIEW IN TELEGRAM
Я обожнюю #QML. Все-таки Nokia сильно випередила час із ним.
Отож пишу на QML багацько. Останні пів року чи рік з ґітгабівським копайлотом. Проте для робочих проєктів для замовника копайлот не можна використовувати, бо досі з легальними питаннями не розібралися.
Вирішив спробувати приготувати QML-ний копайлот самостійно. Рецепт такий:
1. Беремо Ollama.
2. Додаємо FIM-модель (Fill-in-the-Middle) для QML, скажімо параметрів на сім-тринадцять мільярдів до смаку.
3. Ставимо у VS Code розширення, яке спілкуватиметься з моделлю.
4. ???????
5. PROFIT!🥳
Гарні новини: модель існує й навіть офіційна від Qt. Ну, взагалі-то навчити з нуля модель такого розміру — дорого й невигідно, тому насправді це Meta-вська CodeLlama, яку дотренували на якомусь відкритому QML-коді типу офіційних прикладів.
Що взагалі робить будь-яка така модель? Ви закидаєте в неї код (текст), воно його токенізує якось (у кожної моделі власний токенізатор), а потім генерує декілька наступних токенів, які ми перетворюємо назад на текст. Тобто ви пишете
Але код ми не пишемо як повість на друкарській машинці — ми часто повертаємося кудись в середину, щось додаємо, міняємо, видаляємо тощо. Як же бути?
Якщо ми передаватимемо тільки текст до курсора, щоб модель щось додала від себе, то можемо загубити багато важливого контексту після, й доповнення не буде надто корисним.
Щоб розв'язати цю проблему, всі FIM-моделі дозволяють певного роду розмітку (насправді всі інші LLM також). Наприклад, CodeLlama дозволяє передавати їй текст у таких форматах:
Тут токен
Погані новини: для VS Code я знайшов якесь розширення Llama Coder, і воно вже вміє працювати з CodeLlama, а також дозволяє вказувати власну модель. Але виявилося, що промпт воно формує у вигляді
Вони прям вимагають, щоб формат був
Це запрацювало, хоча не сказати, що швидко. Точніше прям неприємно на моєму M1 Max / 64 GB — користуватися неможливо. І це 7 мільярдів параметрів, а не 13! Зате повністю локально, і доповнює вельми адекватно, щоправда форматування пливе.
Дивитимусь далі, що з цим можна ще зробити, щоб було зручно. Ненавиджу довгі мануали — треба, щоб однією кнопкою все встановлювалося ))
Ліричний відступ для тих, хто не в темі: QML — це така мова в💻 . Вона декларативна, тобто ви описуєте, що хочете отримати, а не послідовність кроків для досягнення мети. Всі властивості обʼєктів у ній — реактивні, тобто, якщо ви пишете, що height: width / 2, то значення висоти оновлюватиметься щоразу, як оновилася ширина. Ну й на додачу можна писати локальні обробники сигналів на імперативному💻 , якщо треба. І все це швидко працює й рендериться на GPU. Непогано як для технології 2009 року отже.
Люди, правда, зазвичай ототожнюють QML (мову) і Qt Quick (один з UI-них фреймворків від Qt), але мову можна використовувати не тільки для UI.
Отож пишу на QML багацько. Останні пів року чи рік з ґітгабівським копайлотом. Проте для робочих проєктів для замовника копайлот не можна використовувати, бо досі з легальними питаннями не розібралися.
Вирішив спробувати приготувати QML-ний копайлот самостійно. Рецепт такий:
1. Беремо Ollama.
2. Додаємо FIM-модель (Fill-in-the-Middle) для QML, скажімо параметрів на сім-тринадцять мільярдів до смаку.
3. Ставимо у VS Code розширення, яке спілкуватиметься з моделлю.
4. ???????
5. PROFIT!
Гарні новини: модель існує й навіть офіційна від Qt. Ну, взагалі-то навчити з нуля модель такого розміру — дорого й невигідно, тому насправді це Meta-вська CodeLlama, яку дотренували на якомусь відкритому QML-коді типу офіційних прикладів.
Що взагалі робить будь-яка така модель? Ви закидаєте в неї код (текст), воно його токенізує якось (у кожної моделі власний токенізатор), а потім генерує декілька наступних токенів, які ми перетворюємо назад на текст. Тобто ви пишете
import
, а воно дає наступний токен чи декілька, які з 99% ймовірністю будуть QtQuick\n
. Але код ми не пишемо як повість на друкарській машинці — ми часто повертаємося кудись в середину, щось додаємо, міняємо, видаляємо тощо. Як же бути?
Якщо ми передаватимемо тільки текст до курсора, щоб модель щось додала від себе, то можемо загубити багато важливого контексту після, й доповнення не буде надто корисним.
Щоб розв'язати цю проблему, всі FIM-моделі дозволяють певного роду розмітку (насправді всі інші LLM також). Наприклад, CodeLlama дозволяє передавати їй текст у таких форматах:
<PRE>Текст до курсора<MID>
<PRE>Текст до курсора<SUF>Текст після курсора<MID>
<SUF>Текст після курсора<PRE>Текст до курсора<MID>
Тут токен
<MID>
каже моделі, що ось з цього місця — твій вихід, будь ласкава.Погані новини: для VS Code я знайшов якесь розширення Llama Coder, і воно вже вміє працювати з CodeLlama, а також дозволяє вказувати власну модель. Але виявилося, що промпт воно формує у вигляді
<PRE>…<SUF>…<MID>
, а ці QML-ні моделі якось так дивно перенавчені, що у відповідь на це видають повну маячню.Вони прям вимагають, щоб формат був
<SUF>…<PRE>…<MID>
. Довелося форкати розширення й міняти. По дорозі знайшов і виправив ваду з неправильною вичиткою налаштувань, а також додав кропаль покращень від себе.Це запрацювало, хоча не сказати, що швидко. Точніше прям неприємно на моєму M1 Max / 64 GB — користуватися неможливо. І це 7 мільярдів параметрів, а не 13! Зате повністю локально, і доповнює вельми адекватно, щоправда форматування пливе.
Дивитимусь далі, що з цим можна ще зробити, щоб було зручно. Ненавиджу довгі мануали — треба, щоб однією кнопкою все встановлювалося ))
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16😁3❤1
Пару тижнів тому дослухав «Start small, stay small» — книжку про мікропідприємництво (micropreneurship). І якщо чесно, мені не дуже зайшло попри деякі цікаві думки й низку досі корисних порад.
По-перше, не раджу аудіокнигу. Читає її сам автор, і зазвичай я полюбляю почути оригінал. Але цей настільки манірно це робить, що аж нудить. Таке враження, що тренується перед дзеркалом зніматися у вестернах чи в бондіані. А ще я багато кого слухаю десь на 1,2× швидкості, а цього довелося на 0,9×😅 Окрім того, автор у своїй книжці лишив багато посилань на різні статті й ресурси. Зазвичай в таких випадках разом з аудіокнижкою просто йде маленька PDF-ка на додачу, але цей чувак буквально зачитує урли!!! (Не кажучи вже про те, що не всі з них досі валідні).
По-друге, Audible мене намахав, вказавши 2018 рік на книжці. Я нічого не підозрював аж до моменту, коли автор почав казати про сторінку в MySpace🤫 І далі по тексту ще трохи розповідав про власні сумніви щодо того, що реклама в Twitter працюватиме. Виявилося, що книжка 2010 року, а в Audible потрапила у 18-му.
Ну, а по-третє, є в мене дойоби до змісту книжки.
На початку автор каже: «ця книжка не для тих, хто хоче створити новий фейсбук на мільярд користувачів. Вона для тих програмістів, хто хоче писати власний продукт і займатися тим, чим цікаво саме їм, працюючи на себе, а не „на дядю“ (і щоб при цьому на життя вистачало)» — окей, продано! Мене це цікавить!
І далі за текстом поступово зʼявляються такі твердження:
• Скоріш за все ваша ідея продукту — лайно. Натомість знайдіть собі якусь іншу життєздатну за оцими й оцими порадами.
• Програмування — це всього 30% успіху максимум. (З цим згоден). І не обовʼязково робити це самому. А краще взагалі зааутсорсити😐
• Ну й все в такому дусі.
В мене тут постає питання: якщо врешті ідея не зовсім і моя, та й код пишу теж не я, то який мені як програмісту інтерес-то? Таке шось…
Очікував, що чувак розповість, як робити те, що подобається (програмувати), і отримувати за це гроші. А вийшло, що щоб отримувати гроші, треба, щоб почало подобатись інше🙂
До речі, нагадує мені мій перехід на роботі з якогось типу техліда на чисто керівну роль. Це не миттєво трапилося звісно, але в якийсь момент довелося сісти й прийняти правду: займатися технічними питаннями без шкоди для інших своїх обовʼязків я більше не можу. І виконувати менеджерські задачі ефективно теж не можу, бо ніколи цьому не вчився. І коли змирився з цим, то далі якось прям краще й легше пішло.
По-перше, не раджу аудіокнигу. Читає її сам автор, і зазвичай я полюбляю почути оригінал. Але цей настільки манірно це робить, що аж нудить. Таке враження, що тренується перед дзеркалом зніматися у вестернах чи в бондіані. А ще я багато кого слухаю десь на 1,2× швидкості, а цього довелося на 0,9×
По-друге, Audible мене намахав, вказавши 2018 рік на книжці. Я нічого не підозрював аж до моменту, коли автор почав казати про сторінку в MySpace
Ну, а по-третє, є в мене дойоби до змісту книжки.
На початку автор каже: «ця книжка не для тих, хто хоче створити новий фейсбук на мільярд користувачів. Вона для тих програмістів, хто хоче писати власний продукт і займатися тим, чим цікаво саме їм, працюючи на себе, а не „на дядю“ (і щоб при цьому на життя вистачало)» — окей, продано! Мене це цікавить!
І далі за текстом поступово зʼявляються такі твердження:
• Скоріш за все ваша ідея продукту — лайно. Натомість знайдіть собі якусь іншу життєздатну за оцими й оцими порадами.
• Програмування — це всього 30% успіху максимум. (З цим згоден). І не обовʼязково робити це самому. А краще взагалі зааутсорсити
• Ну й все в такому дусі.
В мене тут постає питання: якщо врешті ідея не зовсім і моя, та й код пишу теж не я, то який мені як програмісту інтерес-то? Таке шось…
Очікував, що чувак розповість, як робити те, що подобається (програмувати), і отримувати за це гроші. А вийшло, що щоб отримувати гроші, треба, щоб почало подобатись інше
До речі, нагадує мені мій перехід на роботі з якогось типу техліда на чисто керівну роль. Це не миттєво трапилося звісно, але в якийсь момент довелося сісти й прийняти правду: займатися технічними питаннями без шкоди для інших своїх обовʼязків я більше не можу. І виконувати менеджерські задачі ефективно теж не можу, бо ніколи цьому не вчився. І коли змирився з цим, то далі якось прям краще й легше пішло.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15😁4👎1🔥1🤣1
Сьогодні короткий дайджест новин щодо мов програмування, які трапилися мені на очі за останній місяць.
У Python💻 десь в районі версії 3.6 додали так звані f-рядки з інлайн-інтерполяцією:
Дуже зручно. Хоча знаходяться унікуми, що використовують їх тупо для усього, зокрема для формування запитів до БД з включенням шматків, що прийшли від користувачів — привіт, SQL-інʼєкції.
Fear no more: до 3.14 вирішили додати t-рядки! Літерали на вигляд такі самі, але насправді це не
Нащо це все? Власне, саме для того, щоб не отримувати на вихід готовий рядок. Натомість ви отримуєте купу статичних шматків рядка + низку інтерполяцій і можете з ними щось зробити до формування фінального💻 .
Для останнього, до речі, багацько років (на доволі високому Stage 2) висіла пропозиція від типців з Блумберга додати в мову «глибоко незмінні структури даних» —💻 є тільки вельми мінливі
У спільноті💻 тим часом ТРАГЕДІЯ! Компанія AdaCore провела презентацію нових фічей в їхньому компіляторі GNAT Pro, де зокрема розповіла, що додала до мови ООП-класи (а ще підтримку Rust, але то інша історія). Взагалі-то в Ada і до того ООП давно було (з 1995), але реалізувалося через так звані теґовані типи:
Тут процедури, що обʼявлені в тому ж скоупі й приймають першим параметром відповідний тип, стають фактично «методами». Однак для тих, хто прийшов з, боже збав, C++ та інших схожих мов, такий підхід був невтямки. Тому віднині можна буде створювати класи отак:
Зʼявилося ключове слово
Прикол же тут глибше на ділі. Ada — це ISO-стандарт, тож мова нікому не належить. Але єдиний живий компілятор GNAT підтримується компанією AdaCore, тому 99% штук, які зʼявляються там, врешті потрапляють до стандарту. Такі справи.
Ну й трохи про ліспи. Нещодавно я вже розповідав про Janet👩🦰 — мову, дуже схожу на Clojure 💻 , яка компілиться в сішку. Взагалі кложа наче друге дихання ліспам відкрила, бо вона проста, елегантна й прикольна. Якби ж ще не JVM поперек горла… Якось так подумали й автори Janet у свій час. А з ними автори ще мінімум штук пʼяти інших варіацій, і це тільки ті, що мені траплялися.
Однією з таких варіацій є Jank, яка вже на C++ базується, а не на сішці. Так-от вони днями анонсували «безшовний інтероп» з плюсами, тобто можливість прямо з джанка створювати й працювати з плюсовими обʼєктами. Скажу чесно, я зацікавився🤤 Прямий плюсовий інтероп (не через C) — це одна з фічей, яка раніше мене зацікавила у Swift 🕊 . Якщо у цього ліспа щось таке вийде, то я навіть готовий почати називати їх не джанк, а дженк.
Може ще щось цікаве було, та зараз вже не згадаю. Тож наразі все.
У Python
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 у джаваскрипті, то годі — декілька тижнів тому пропозицію скасували, бо домовитися не змогли, зацікавлених виявилося не так і багато тощо.У спільноті
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
Однією з таких варіацій є Jank, яка вже на C++ базується, а не на сішці. Так-от вони днями анонсували «безшовний інтероп» з плюсами, тобто можливість прямо з джанка створювати й працювати з плюсовими обʼєктами. Скажу чесно, я зацікавився
Може ще щось цікаве було, та зараз вже не згадаю. Тож наразі все.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥4😍2🤣1
У Microsoft Research часто трапляються цікаві проєкти. Колись навіть мріяв там працювати.
Вчора ось показали Claimify — штуку, яка дістає з текстів конкретні твердження. Шкода, що нема ґітгаб-репи самому цей тул спробувати. Хоча може вони там його запускають на кластері за 100500 мільйонів.
Вчора ось показали Claimify — штуку, яка дістає з текстів конкретні твердження. Шкода, що нема ґітгаб-репи самому цей тул спробувати. Хоча може вони там його запускають на кластері за 100500 мільйонів.
YouTube
Claimify: Extracting high-quality claims from language model outputs
Dasha Metropolitansky, Research Data Scientist, Microsoft Research Special Projects, introduces Claimify, a new method for extracting simple, verifiable claims from LLM outputs. Claim extraction is a key step in fact-checking LLM-generated content. Claimify…
1❤4👍2
Пошук у сучасних системах be like… 🤦
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁27😢1
Дізнався вчора від другана, що JetBrains CLion, їхня IDE для C++, стала безплатною для некомерційного використання.
Я ніколи прихильником їхньої ІДЕЇ та усього, що з неї виросло, не був, але декому дуже заходить. (Єдиний, мабуть, виняток для мене — це MPS💻 , але там скоріш концепція зацікавила, аніж сам редактор).
Я ніколи прихильником їхньої ІДЕЇ та усього, що з неї виросло, не був, але декому дуже заходить. (Єдиний, мабуть, виняток для мене — це MPS
Please open Telegram to view this post
VIEW IN TELEGRAM
The JetBrains Blog
CLion Is Now Free for Non-Commercial Use | The CLion Blog
CLion, a JetBrains IDE, is now free for non-commercial use! Learn more in the blog post.
👍5💯1
Зацініть, який я знайшов інструмент розбору слів. AI-powered звісно, тому інколи парить маячню замість етимології.
😁11🔥6👍5
Часто бачу, як на запитання щодо найкращої мови програмування для початківців (повних нулів) починають пропонувати Python 💻 , JavaScript 💻 , інколи TypeScript 🕸 , а особливо хворі люди радять Rust або навіть, хай би йому грець, 💻 . І звісно починають розповідати різні байки про зручний тулінг, про те, що одразу можна потім на роботу піти, що з памʼяттю навчишся працювати, що типи дуже допомагають й іншу маячню.
Я розумію, що зараз так заведено і що програмувати йдуть, бо гроші: три місяці на курсах — і вже треба джуном десь влаштовуватися, формочки клепати. І в мене навіть претензій нема: попит є, то й пропозиція знайдеться.
Втім найкращі спеціалісти, котрих я знаю (і я сам теж хехе), почали програмувати не через гроші чи престиж, а… ну, бо не могли інакше. Я мав потяг до всього електронного з дитинства: будь-що, де є батарейка й екран, ставало предметом мого інтересу. А коли я побачив уперше ігрову консоль, у мене ледве мозок не вибухнув🤯 🤩 Тоді (років у 4–5) я зрозумів, що моє життя мусить бути повʼязане з цією галуззю.
Не всім щастить аж настільки. Багато хто приходить до програмування радше «випадково». Але цих людей окрім певного природного рівня зацікавленості компʼютерами обʼєднує найважливіше: допитливість стосовно того, а як же це працює (і що ще можна зробити).
Допитливість ця може бути потужним рушієм, але на ранніх стадіях легко ламається об коліно перешкодами, розбиратися з якими вимагає забагато зусиль. А значить мова мусить бути така, яка цю зацікавленість підтримуватиме, а не топитиме.
В практичному сенсі це значить:
- Легко встановити тулчейн, легко запустити, легко використовувати (а якщо ще й легко поділитися з кимось результатами, то взагалі чудово).
- Базові аритметичні операції, трохи тригонометричних і (обовʼязково) операції для маніпуляцій над текстовими рядками.
- З колекцій — масивів достатньо.
- Примітиви для графіки з коробки (кольори, лінії, фігури).
- Якщо також є програвання звуків/музики — ще краще. (Хоча б MIDI якийсь).
- Спрощена робота зі вводом користувача (клавіатура/мишка).
- REPL? Ну, можна.
- Адекватні й зрозуміли повідомлення про помилки.
- Вбудована система довідки про оператори/команди/функції тощо.
- Статична типізація? — Зайва!
- Керування памʼяттю? — You lost me here.
- Зовнішні залежності? — Не треба.
- Модулі? — Одного файлу достатньо.
- Треба білд-систему? — Вже у смітнику.
Я сам починав з мови BASIC. Спробував декілька різних, але QBasic від Microsoft став найулюбленішим. У мене щодо нього досі виключно теплі спогади.
Тож згодом, коли я випадково натрапив на Microsoft Small Basic і спробував його, то почав радити й іншим. На жаль у порівнянні з QBasic вони трохи ускладнили все тим, що додали ООП. Втім це досі доволі приємна мова з непоганою IDE. (Або ось є веб-версія, хоча вона погірше).
Я розумію, що зараз так заведено і що програмувати йдуть, бо гроші: три місяці на курсах — і вже треба джуном десь влаштовуватися, формочки клепати. І в мене навіть претензій нема: попит є, то й пропозиція знайдеться.
Втім найкращі спеціалісти, котрих я знаю (і я сам теж хехе), почали програмувати не через гроші чи престиж, а… ну, бо не могли інакше. Я мав потяг до всього електронного з дитинства: будь-що, де є батарейка й екран, ставало предметом мого інтересу. А коли я побачив уперше ігрову консоль, у мене ледве мозок не вибухнув
Не всім щастить аж настільки. Багато хто приходить до програмування радше «випадково». Але цих людей окрім певного природного рівня зацікавленості компʼютерами обʼєднує найважливіше: допитливість стосовно того, а як же це працює (і що ще можна зробити).
Допитливість ця може бути потужним рушієм, але на ранніх стадіях легко ламається об коліно перешкодами, розбиратися з якими вимагає забагато зусиль. А значить мова мусить бути така, яка цю зацікавленість підтримуватиме, а не топитиме.
В практичному сенсі це значить:
- Легко встановити тулчейн, легко запустити, легко використовувати (а якщо ще й легко поділитися з кимось результатами, то взагалі чудово).
- Базові аритметичні операції, трохи тригонометричних і (обовʼязково) операції для маніпуляцій над текстовими рядками.
- З колекцій — масивів достатньо.
- Примітиви для графіки з коробки (кольори, лінії, фігури).
- Якщо також є програвання звуків/музики — ще краще. (Хоча б MIDI якийсь).
- Спрощена робота зі вводом користувача (клавіатура/мишка).
- REPL? Ну, можна.
- Адекватні й зрозуміли повідомлення про помилки.
- Вбудована система довідки про оператори/команди/функції тощо.
- Статична типізація? — Зайва!
- Керування памʼяттю? — You lost me here.
- Зовнішні залежності? — Не треба.
- Модулі? — Одного файлу достатньо.
- Треба білд-систему? — Вже у смітнику.
Я сам починав з мови BASIC. Спробував декілька різних, але QBasic від Microsoft став найулюбленішим. У мене щодо нього досі виключно теплі спогади.
Тож згодом, коли я випадково натрапив на Microsoft Small Basic і спробував його, то почав радити й іншим. На жаль у порівнянні з QBasic вони трохи ускладнили все тим, що додали ООП. Втім це досі доволі приємна мова з непоганою IDE. (Або ось є веб-версія, хоча вона погірше).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🤣5🤨2🔥1🤓1
Media is too big
VIEW IN TELEGRAM
Вчора я написав критерії вибору мови програмування для тих, хто тільки починає свій шлях, і отримав купу корисних і цікавих коментарів. А також зауважив, що раніше радив Small Basic.
Але нещодавно я натрапив на Easylang, і це мій новий фаворит серед мов для початківців! В ньому текстові змінні мають долар в імені (
Ну й, власне, я вирішив портувати на Easylang одну з найперших програм, яку ми написали з моїм корешем Коляном у коледжі. Ми намагалися зробити чи то більярд, чи то арканоїд, для чого треба було накодити рух і відбиття кола від стінок.
Вам смішно зараз, але для деяких одногрупників тоді навіть текст в правильній позиції екрана вивести — це вже було досягнення, не те що анімувати щось. Якщо просто чистити весь екран на кожний кадр, то зображення неприємно блимало, тож натомість ми робили це так: малюємо коло, робимо затримку, стираємо коло, оновлюємо координати — і так в циклі. Команда😂 ).
Постає питання, як стирати намальоване, не зачіпаючи решту. Для цього після малювання робимо зняток ділянки екрана командою
На Easylang написати це звісно було значно легше. Та головне, що я намагаюся донести: людина має отримувати задоволення від процесу. Як бачите, у нас тоді навіть «некоректний» результат не пішов у смітник: навпаки роздмухав зацікавленість, а які ж іще візерунки можна отримати. І ми почали створювати складніші багатоколірні речі, музику додавали й оце все. Файно було.
А якщо ви почнете початківцю сушити мізки встановленням ліб, парсингом XMLʼів з інтернетів або боротьбою з тайп-чекером, то є ризик відбити бажання цим займатися назавжди🤔 З іншого боку я радше візуал і все сприймаю в першу чергу саме візуально, вчуся очима тощо. А комусь, може, оце все й не треба, а треба якраз XML з інтернетів.
Проте Easylang спробуйте.
Але нещодавно я натрапив на 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ʼів з інтернетів або боротьбою з тайп-чекером, то є ризик відбити бажання цим займатися назавжди
Проте Easylang спробуйте.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13😁3❤2👀2😐1👨💻1
Обожнюю такі способи встановлення )) Що може піти не так? 😂
(Сертифікат вже ніби пофіксили, але пайпити скрипти з інтернетів у🤪 ).
(Сертифікат вже ніби пофіксили, але пайпити скрипти з інтернетів у
sudo
— це треба бути дуже хоробрим Please open Telegram to view this post
VIEW IN TELEGRAM
😁12🔥3🤩1
Усі з вас це, певно, вже знають, але там вчора Microsoft відкрила код своєї WSL (Windows Subsystem for Linux), а також пообіцяла найближчим часом відкрити код розширення GitHub Copilot для 💻 . Обидві штуки під MIT-ліцензією до речі.
З цього приводу можу лише зазначити, що останні роки на мою думку Microsoft вельми вправно балансує між компанією, якій всі дорікають, і компанією, продукти якої обожнюють.
Цікаво канєш, що нині навіть лінуксоїди користуються принаймні тією ж VS Code (а дехто взагалі пересів на WSL). Нагадаю, що в опитуваннях, які я раніше проводив, вінда🪟 для робочих задач посіла 3 місце з результатом 18%, а для неробочих — 2 місце з 31% (всього на відсоток менше за 🐧 ).
А зараз ще й чутки ходять, що Microsoft зайнята інтеграцією Steam у свої іксбокси🙄
З цього приводу можу лише зазначити, що останні роки на мою думку Microsoft вельми вправно балансує між компанією, якій всі дорікають, і компанією, продукти якої обожнюють.
Цікаво канєш, що нині навіть лінуксоїди користуються принаймні тією ж VS Code (а дехто взагалі пересів на WSL). Нагадаю, що в опитуваннях, які я раніше проводив, вінда
А зараз ще й чутки ходять, що Microsoft зайнята інтеграцією Steam у свої іксбокси
Please open Telegram to view this post
VIEW IN TELEGRAM
Windows Developer Blog
The Windows Subsystem for Linux is now open source
Today we’re very excited to announce the open-source release of the Windows Subsystem for Linux. This is the result of a multiyear effort to prepare for this, and a great closure to the first ever issue raised on the Microsoft/WSL repo:
🆒6👍3❤2👎1😁1
Рівно тридцять років тому 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😅 😅 , коли в стандарт мають увійти нові топові фічі на кшталт Страуструпівських профілей, які «узаконять» різні діалекти (котрі де-факто вже й так існують).
С++ — як Україна: з кожним замахом стає лише міцнішим. І звісно були скрутні часи, проте, зараз ця мова знову квітне. І «населення» значно побільшало. Якщо на той же 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
5❤🔥12🤣2👍1
В одному з місцевих супермаркетів зʼявилися отакі ручні сканери (за нирку грошей, певно, бо це Zebra!): береш на вході, в процесі все скануєш — і (за задумом) не витрачаєш час на касі.
Ідея звучить настільки чудово, що нам не западло проїхати заради цього десяток зайвих кілометрів саме в цей супермаркет. Я взагалі за змоги мінімізую необхідність контактувати з незнайомими людьми: навіть бензин заливаю на АЗС із самообслуговуванням. А тут раптом у супермаркеті такі технології⚡ , що гріх не скористатися.
Досвід користування цією штукою донині:
• За відчуттями це дійсно економить час, бо просканувати в процесі не так вже й важко, зате (за задумом) не треба чекати на касі.
• Першого разу виявилося, що окремих кас для користувачів з цими сканерами нема — треба йти на звичайну з чергою🤡 Ми натомість пішли на швидкі каси самообслуговування, куди зазвичай люди йдуть з < 10 одиницями товарів.
• Очікування: тиснеш на сканері кнопку «сплатити», прикладаєш картку або телефон, щасливий ідеш додому. Або хоча б: тиснеш «сплатити», отримуєш штрих-код, скануєш на касі, платиш там, ідеш додому. Реальність: тиснеш «сплатити», а сканер показує якесь число. Кличеш працівника магазину, вона/він прикладає свою спецову картку до термінала, потрапляє в якесь приховане меню, там проходить через купу екранів з зовсім іншим інтерфейсом, вбиває це число, воно з третьої спроби сінкає список зі сканера, і вуаля — можна платити🤦
• Іншим разом звичайна каса була вільна, тож пішли з цим сканером туди. Там усе той же прикол з числом і якимись робочими меню. А далі раптова перевірка! Очікування: касир бере декілька рандомних штук з візочка й сканує їх, а система підтверджує, що вони дійсно наявні в списку. Реальність: касир бере декілька рандомних штук, сканує по одному, система показує якийсь внутрішній артикул, а далі касир очима вишукує цей артикул у списку🤪 На все це йде ще більше часу, ніж пропикати всі наші 100500 товарів зі стрічки, як зазвичай.
• І останній випадок… Очікування (зауважте, як планочка впала вже): просканував усе в процесі, помаявся на касі з цими мутними інтеракціями, сплатив, пішов додому. Реальність: просканував усе в процесі, за пʼять хвилин до виходу прога на сканері крашнулася (там звичайний💻 до речі), при повторному запуску нічого не відновила — тупо порожній список 🤬 😂 Ото в мене дупа згоріла з такого, що аж сюди пишу тепер…
Черговий доказ того, що сучасний софт завжди смокче в порівнянні з хардваром. Сам пристрій дуже класний: якісний, доволі зручний — жодних нарікань. Але софтвар, як завжди, все зіпсував.
Вкотре нагадую, що найстрашніший гріх в UX — це втрата користувацьких даних. І це не про тільки про випадки, коли сервери десь погоріли, а бекапів у хостера не було. Це також про всі ті дрібниці, з яких складається наше щоденне користування програмними продуктами: десь поставили галочку, десь ввели текст, десь попикали сканером — а програма це забула? Ну оце воно і є.
Ідея звучить настільки чудово, що нам не западло проїхати заради цього десяток зайвих кілометрів саме в цей супермаркет. Я взагалі за змоги мінімізую необхідність контактувати з незнайомими людьми: навіть бензин заливаю на АЗС із самообслуговуванням. А тут раптом у супермаркеті такі технології
Досвід користування цією штукою донині:
• За відчуттями це дійсно економить час, бо просканувати в процесі не так вже й важко, зате (за задумом) не треба чекати на касі.
• Першого разу виявилося, що окремих кас для користувачів з цими сканерами нема — треба йти на звичайну з чергою
• Очікування: тиснеш на сканері кнопку «сплатити», прикладаєш картку або телефон, щасливий ідеш додому. Або хоча б: тиснеш «сплатити», отримуєш штрих-код, скануєш на касі, платиш там, ідеш додому. Реальність: тиснеш «сплатити», а сканер показує якесь число. Кличеш працівника магазину, вона/він прикладає свою спецову картку до термінала, потрапляє в якесь приховане меню, там проходить через купу екранів з зовсім іншим інтерфейсом, вбиває це число, воно з третьої спроби сінкає список зі сканера, і вуаля — можна платити
• Іншим разом звичайна каса була вільна, тож пішли з цим сканером туди. Там усе той же прикол з числом і якимись робочими меню. А далі раптова перевірка! Очікування: касир бере декілька рандомних штук з візочка й сканує їх, а система підтверджує, що вони дійсно наявні в списку. Реальність: касир бере декілька рандомних штук, сканує по одному, система показує якийсь внутрішній артикул, а далі касир очима вишукує цей артикул у списку
• І останній випадок… Очікування (зауважте, як планочка впала вже): просканував усе в процесі, помаявся на касі з цими мутними інтеракціями, сплатив, пішов додому. Реальність: просканував усе в процесі, за пʼять хвилин до виходу прога на сканері крашнулася (там звичайний
Черговий доказ того, що сучасний софт завжди смокче в порівнянні з хардваром. Сам пристрій дуже класний: якісний, доволі зручний — жодних нарікань. Але софтвар, як завжди, все зіпсував.
Вкотре нагадую, що найстрашніший гріх в UX — це втрата користувацьких даних. І це не про тільки про випадки, коли сервери десь погоріли, а бекапів у хостера не було. Це також про всі ті дрібниці, з яких складається наше щоденне користування програмними продуктами: десь поставили галочку, десь ввели текст, десь попикали сканером — а програма це забула? Ну оце воно і є.
Please open Telegram to view this post
VIEW IN TELEGRAM
5😁16👍6😢4🔥1
Декілька років тому 💻 на своєму 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 написати натомість.
Зараз Qt можна використовувати з C++ (очевидно), плюс є офіційні привʼязки для Python під назвою PySide. Ще промайнули якісь дивні поробки для інтеграції з
Я вже якось згадував, що #QML як мова для використання фреймворка Qt Quick — це одна з останніх вагомих причин, чого я досі користуюся C++. Просто мені подобається робити UI і подобається, коли врешті він працює достатньо швидко й не вимагає 2 ГБ оперативки, як це нерідко буває з туду-програмами на електроні. Втім C++ у своєму поточному стані дійсно далека від приємної мови, хоча я потроху прямує до неї.
Так-от місяць тому пройшов черговий QtWS, де вони нарешті анонсували так звані Qt Bridges. Поки що жодної конкретики, але за їхніми розповідями це якась достатньо високорівнева апішка для інтеграції QML-ного рушія (і, може, не тільки) в програми іншими мовами. Першими їхніми обранцями стали:
Найбільше в усьому цьому мене зараз хвилює навіть не технічний бік питання, а легальний. Nokia в свій час перевела Qt з GPL на LGPL, що зіграло на руку популяризації бібліотеки. Але зараз ми бачимо, що Qt Group в пошуках додаткових джерел для заробітку робить навпаки: створює нові модулі, інколи попередньо задепрекейтивши «старі» LGPL-ні, і релізить їх тільки під GPL та комерційною ліцензією. Наприклад, Qt Graphs, Qt HTTP Server, Qt Lottie Animation, Qt Quick 3D тощо.
А як хотілося б мати змогу писати UI на QML, а бізнес-логіку на чомусь компільованому, потім збирати це в один невеличкий бінарь — і щоб це все ще й безплатно!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤔1👀1
Спитав у ШІ-шки, як мені витягнути скриптом список усіх моїх ігор зі Стіма, Епіка, ГОГа тощо. ChatGPT поганого не порадить 😅
Please open Telegram to view this post
VIEW IN TELEGRAM
😁17🔥3
Забув закинути в цей канал таку штуку як непевний калькулятор (хоча в коментарях вже десь було). Ідея проста й водночас потужна та вдала: у деяких розрахунках просто не знаєш конкретних значень, тож чого б не дати змогу оперувати приблизними?
Приблизні значення тут задаються діапазонами від/до. Ну, знаєте, як ото в рецептах інколи пишуть, типу, «візьміть 2–3 яблука»? А вам треба вдвічі більшу порцію, наприклад. То пишете просто:
і воно каже вам, що відповідь
Окрім референсної імплементації від автора на Dart💻 люди кинулися переписувати це на своїх улюблених мовах. Мені сподобалася ось ця вельми лаконічна версія на гаскелі 💻 , де чувак просто в монаду все загорнув.
Тепер хотілося б побачити аналогічний синтаксис у всіх програмах-калькуляторах (або навіть у пристроях!).
Приблизні значення тут задаються діапазонами від/до. Ну, знаєте, як ото в рецептах інколи пишуть, типу, «візьміть 2–3 яблука»? А вам треба вдвічі більшу порцію, наприклад. То пишете просто:
2~3 * 2
і воно каже вам, що відповідь
4~6
. Це звісно можна й в голові обрахувати, та коли формула стає складнішою, і непевних параметрів стає більше, то легко заплутатися. До того ж цей калькулятор ще й гістограму з розподілом будує:above | ▒▒▒▒
6.10 | ▒▒▒
5.99 | ▒▒▒▒▒
5.88 | ▒▒▒▒▒▒▒
5.77 | ▒▒▒▒▒▒▒▒▒▒
5.66 | ▒▒▒▒▒▒▒▒▒▒▒▒▒
5.55 | ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
5.44 | ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
5.33 | ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
5.22 | ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
5.11 | ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
5.00 | ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ (5.00)
4.89 | ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
4.78 | ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
4.67 | ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
4.56 | ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
4.45 | ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
4.33 | ▒▒▒▒▒▒▒▒▒▒▒▒▒
4.22 | ▒▒▒▒▒▒▒▒▒▒
4.11 | ▒▒▒▒▒▒▒
4.00 | ▒▒▒▒▒
3.89 | ▒▒▒
below | ▒▒▒▒
Окрім референсної імплементації від автора на Dart
Тепер хотілося б побачити аналогічний синтаксис у всіх програмах-калькуляторах (або навіть у пристроях!).
Please open Telegram to view this post
VIEW IN TELEGRAM
filiph.github.io
Unsure Calculator
The Unsure Calculator is an online tool that lets you calculate with numbers you’re not sure about.
👍19❤1👏1😁1
Чи то я вже дід, чи то дійсно все настільки погано…
Бачили-чули ж, певно, про презентацію Apple нещодавню? Всі очікували якихось інновацій, а натомість отримали жменю старих фічей з самсунгів і візуальний стиль від Microsoft (щоправда, всі порівнюють з Windows Vista, а мені воно більше схоже на свіжіші моушн-дизайнерські відоси про Fluent UI).
Але мова не тільки про Apple. Буквально за декілька днів до того проходив великий фестиваль відеоігор — Summer Game Fest. Презентацію від Epic Games я проґавив. А от далі пішли State of Play (PlayStation), власне Summer Game Fest і купка дрібніших на кшталт Future Games Show, PC Gaming Show тощо. І знаєте, що їх всіх обʼєднує? Показані ігри — переважно лайно! (Не кажучи вже про засилля московії — мінімум 4 великих гри від них💩 ).
Таке враження, що лишилося три жанри: анімешні чік-чік-вжух-слешери, абсолютно однакові соулс-лайк з босами розміром з будинок і всраті мультиплеєрні шутери а ля Овердроч з Fortnite-подібними пластмасовими персонажами. Все МАКСИМАЛЬНО вторинне, ще й просякнуте недоречною сексуалізацією.
У мене тут питання до всіх продюсерів, продакт-менеджерів тощо: про шо ви думаєте взагалі, коли таке розробляєте? Що декілька місяців читаєш, як за три тижні з релізу закрився якийсь черговий нікому не потрібний шутер, а потім на фесті дивишся ще на 5 таких самих, тільки гірше🤡
В історії розробки ПЗ бували, звісно, миті «революційності», принаймні на перший погляд. Але це траплялося суперрідко. Значно ефективнішою стратегією для «інновацій», на мій погляд, є «взяти щось чинне й значно покращити якийсь аспект, не погіршивши решту».
Для цього хоча б інколи варто спілкуватися зі своїми користувачами, щоб зрозуміти, де їм найбільше болить, а що навпаки дуже подобається. І видається, що як Apple, так і купа ігрових студій дедалі менше розуміють, що й для кого вони насправді роблять. Буквально щойно прочитав статтю про розробку останнього Dragon Age: The Veilguard (aka The Failguard), і там треш: то вони мультиплеєр роблять, то не мультиплеєр, то серйозне, то поверхнево-саркастичне — вісім років дрочки туди-сюди.
But fear not! Скоро люди перестануть робити такий вторинний непотріб… адже тепер це робить #ШІ! Весь контент вже 100500 разів перетравлений, поживних речовин в ньому нема. Навіщо писати щось, що ніхто не читатиме, а просто попросить ШІ-шку підбити підсумки одним абзацем?
А знаєте, до речі, у кого була найтоповіша презентація? У Xbox! Мінімум бла-бла-теревень, максимум премʼєр крутих і цікавих ігор. Все-таки Microsoft щось тямить у бізнесі, хто б міг подумати.
Бачили-чули ж, певно, про презентацію Apple нещодавню? Всі очікували якихось інновацій, а натомість отримали жменю старих фічей з самсунгів і візуальний стиль від Microsoft (щоправда, всі порівнюють з Windows Vista, а мені воно більше схоже на свіжіші моушн-дизайнерські відоси про Fluent UI).
Але мова не тільки про Apple. Буквально за декілька днів до того проходив великий фестиваль відеоігор — Summer Game Fest. Презентацію від Epic Games я проґавив. А от далі пішли State of Play (PlayStation), власне Summer Game Fest і купка дрібніших на кшталт Future Games Show, PC Gaming Show тощо. І знаєте, що їх всіх обʼєднує? Показані ігри — переважно лайно! (Не кажучи вже про засилля московії — мінімум 4 великих гри від них
Таке враження, що лишилося три жанри: анімешні чік-чік-вжух-слешери, абсолютно однакові соулс-лайк з босами розміром з будинок і всраті мультиплеєрні шутери а ля Овердроч з Fortnite-подібними пластмасовими персонажами. Все МАКСИМАЛЬНО вторинне, ще й просякнуте недоречною сексуалізацією.
У мене тут питання до всіх продюсерів, продакт-менеджерів тощо: про шо ви думаєте взагалі, коли таке розробляєте? Що декілька місяців читаєш, як за три тижні з релізу закрився якийсь черговий нікому не потрібний шутер, а потім на фесті дивишся ще на 5 таких самих, тільки гірше
В історії розробки ПЗ бували, звісно, миті «революційності», принаймні на перший погляд. Але це траплялося суперрідко. Значно ефективнішою стратегією для «інновацій», на мій погляд, є «взяти щось чинне й значно покращити якийсь аспект, не погіршивши решту».
Для цього хоча б інколи варто спілкуватися зі своїми користувачами, щоб зрозуміти, де їм найбільше болить, а що навпаки дуже подобається. І видається, що як Apple, так і купа ігрових студій дедалі менше розуміють, що й для кого вони насправді роблять. Буквально щойно прочитав статтю про розробку останнього Dragon Age: The Veilguard (aka The Failguard), і там треш: то вони мультиплеєр роблять, то не мультиплеєр, то серйозне, то поверхнево-саркастичне — вісім років дрочки туди-сюди.
But fear not! Скоро люди перестануть робити такий вторинний непотріб… адже тепер це робить #ШІ! Весь контент вже 100500 разів перетравлений, поживних речовин в ньому нема. Навіщо писати щось, що ніхто не читатиме, а просто попросить ШІ-шку підбити підсумки одним абзацем?
А знаєте, до речі, у кого була найтоповіша презентація? У Xbox! Мінімум бла-бла-теревень, максимум премʼєр крутих і цікавих ігор. Все-таки Microsoft щось тямить у бізнесі, хто б міг подумати.
Please open Telegram to view this post
VIEW IN TELEGRAM
Bloomberg.com
Inside the ‘Dragon Age’ Debacle That Gutted EA’s BioWare Studio
The latest game in BioWare’s fantasy role-playing series went through ten years of development turmoil
👍13🤝2
Посидів сьогодні онлайн на Ada Developers Workshop, який є частиною AEiC 2025 — конференції, присвяченої мові 💻 , що проходить зараз у Парижі. Сподобалося, що там не тільки діди, а й молоді доволі багато.
Спочатку послухав про те, як чувак матчить ліцухи за шаблонами у своїй тулі spdx-tool. Можна, наприклад, пробігтися по всіх файлах і позаміняти заголовки з текстом ліцухи на
Потім подивився трохи на новий GUI-фреймворк — LibreFrame від контори, що займається хостингом чи чимось таким. Загалом нічого такого прям вау, але приклади коду сподобалися — дуже лаконічні й прості!
Далі чувак з тесли🚗 розповідав про написання програм на Ada під Zephyr OS ⌛️ — це така крихітна система реального часу, яку зараз часто крутять на всіляких 💻 ESP32. Щось доповідач там крутив разом 💻 , CMake 🤮 і Ada, але я знудився слухати.
Інший чувак розповідав про нову бібліотеку для рядків — UXString. Юнікод — це завжди біль, особливо для таких старих мов. Врешті у чувака вийшло 4 різні реалізації бібліотеки з різними базовими типами всередині😐 Але інтерфейс вийшов доволі зручний (бо надихався 💻 та 💻 ).
В іще одній доповіді мова йшла про bbt — інструмент для black-box-тестування, в якому тести пишуться природною (англійською) мовою. Насправді там Gherkin в Markdown. Якість самої тулзи наразі «інженерного рівня», так би мовити, хоча працювало! Мені сподобалося.
Пару доповідей про property-based testing і про імплементацію BZip2 я слухав у пів вуха — можна вважати, що пропустив.
Ну а наостанок чувак розповідав про створення марсохода на Ada. Раніше в блозі AdaCore вже була стаття на тему, але зараз розповіли трохи більше деталей (працює на🍓 -Pico, контролюється геймпадом від плейстейшна тощо). Робочий прототип можна прямо там на конфі подивитися. Плюс ще тіпок розповів про деякі інші демки й прототипи, які вони програмували на Ada: іграшкова залізна дорога, квадрокоптер Crazyflie, якась штука, яка малює маркером логотипи RISC-V 5️⃣ і AdaCore, а потім їх стирає, може ще щось.
У підсумку можу сказати, що прям вау-ефекту в мене не було від цієї події, але враження лишилися приємні. Звичайна така конфа нормальної спільноти навколо мови програмування. Шкода, що так мало людей про неї знають.
Якби я років 20 тому дізнався, що Ada досі не вмерла, може цей канал би називався Адамантій🦾 , а не Сіпласпластик 😂
Спочатку послухав про те, як чувак матчить ліцухи за шаблонами у своїй тулі spdx-tool. Можна, наприклад, пробігтися по всіх файлах і позаміняти заголовки з текстом ліцухи на
SPDX-License-Identifier: MIT
чи шо там у вас. Ще можна створювати шаблони власних ліцензій. Загалом цікаво доволі. Він токенізує шаблони й використовує TF-IDF для пошуку найбільш схожої ліцухи (схожість видає як число — косинус подібності). Я для схожих потреб зазвичай користувався REUSE-тулою, до якої маю низку нарікань.Потім подивився трохи на новий GUI-фреймворк — LibreFrame від контори, що займається хостингом чи чимось таким. Загалом нічого такого прям вау, але приклади коду сподобалися — дуже лаконічні й прості!
Далі чувак з тесли
Інший чувак розповідав про нову бібліотеку для рядків — UXString. Юнікод — це завжди біль, особливо для таких старих мов. Врешті у чувака вийшло 4 різні реалізації бібліотеки з різними базовими типами всередині
QString
з String
з В іще одній доповіді мова йшла про bbt — інструмент для black-box-тестування, в якому тести пишуться природною (англійською) мовою. Насправді там Gherkin в Markdown. Якість самої тулзи наразі «інженерного рівня», так би мовити, хоча працювало! Мені сподобалося.
Пару доповідей про property-based testing і про імплементацію BZip2 я слухав у пів вуха — можна вважати, що пропустив.
Ну а наостанок чувак розповідав про створення марсохода на Ada. Раніше в блозі AdaCore вже була стаття на тему, але зараз розповіли трохи більше деталей (працює на
У підсумку можу сказати, що прям вау-ефекту в мене не було від цієї події, але враження лишилися приємні. Звичайна така конфа нормальної спільноти навколо мови програмування. Шкода, що так мало людей про неї знають.
Якби я років 20 тому дізнався, що Ada досі не вмерла, може цей канал би називався Адамантій
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
Шось про айтішку
Доречі якщо хтось має, накидайте під цей пост ресурсів для вивчення по отакому опису вакансії: - Впевнене володіння мовами програмування C та C++; - Наявність досвід роботи з мікроконтролерами STM32, ESP32 та їх аналогами; - Знання інтерфейсів UART, SPI,…
Отже, бачимо вакансію в мілтек. Народ питається, як швидко вʼїхати в тему.
Ну, погнали!
Спочатку C💻 і C++ за Y хвилин, потім ще полірнути «💻 за 21 день» — вже навіть більше, ніж треба! (Чому не 💻 ‽)
Такі мікроконтролери коштують копійки. Купуєш собі будь-який, пишеш «блималку» світлодіодом з Arduino💻 (фреймворком) — і достатньо для бази. Далі по ходу розбиратися все одно ще. Хтось ще радить ESP-IDF 💻 , але там пиздець — вже пʼятьма рядками коду не обійдешся. Зате C++23!
Почитати на вікі, що воно таке. Далі ШІ-шка допоможе.
FreeRTOS⌛ , Zephyr OS ⌛️ — зустрічаються найчастіше ніби. І в них майже нічого нема все одно, тут вам не лінукс. Головне, що можна запускати різні джоби на окремих ядрах. Можна глянути на ютубі «типця зі швейцарським акцентом», здається він розповідав.
Тут нічого порадити не можу, бо дупля не ріжу (ну, тільки в теорії щось знаю). Але впевнений, що можна заскочити швидко — була б задача! (У пана Лютікова є приклад навіть, хоча й не надто низькорівневий).
Keil робить μVision — схоже на стару віжуал студію; не думаю, що складно розібратися. STM32CubeIDE — це щось на базі Eclipse💻 . Цим хтось досі користується?
Мій вибір — це VS Code💻 і PlatformIO 👽 , там доволі ізічно все. Глянув перший же відос на ютубі, і норм.
CMake🤮 не треба. Спочатку можна десь темплейт або приклад здибати, далі чисто його редагувати — багато розуму не треба. Користуюся C++ більше 20 років, досі CMake не вивчив. З копайлотом тим паче нах.
Modebus не тямлю.
MQTT зараз в кожному зібраному на колінці «розумному» будинку (окрім мого гг) — почитайте сторінку на вікі, а потім поставте собі Home Assistant погратися «на практиці». Якраз мікроконтролер з пункту вище стане в пригоді.
TCP/IP взагалі база. Ніколи не знаєш, коли це знання знадобиться. Я це все в універі вчив і ще жодного разу не пожалкував. Половину забув уже звісно. Як вчити — хз. Зараз хтось в коментарях може порадить книжки.
BLE, LoRa, Wi-Fi — попросити чатгпт розповісти про переваги й недоліки, а далі по ситуації. (Оновлення: а ще краще для початку почитати пана Шевцова звідси й нижче як загальне ознайомлення).
Нічого з цього не відстрілюю. Але другани розібралися, тож, схоже, там не rocket science.
Ненавиджу Git💻 всім серцем, однак, почав користуватися ним без стресу після того, як прочитав Pro Git. GitHub 🐈 та GitLab 🦊 я хз, що там спецове знати. Хіба що збагнути, як PR/MR працюють.
Пан Лютіков чогось не згадав, що там у вакансії ще вказані QML (достатньо почитати доки💻 і їхні ж приклади), БД (ще один приклад базових знань, які краще мати всім: хоча б про нормальні форми і SQL), Linux 🐧 (на жаль дійсно не завадить. Здавалося б, усі ці embedded-штуки мали б працювати й на macOS, але ні. Підтримка 🪟 нерідко навіть краща за 🍏 ). Ще Bash 💻 згадується, який я особисто не люблю й натомість користуюся Nushell 🆕 , а також Python 💻 (може й MicroPython 🐍 теж?).
Не соромтеся написати мені, де я неправий! (Бо це для загальної користі ж).
P.S. Використав у цьому дописі 20% іконок зі свого пака. Коли ще така нагода випаде?
Ну, погнали!
- Впевнене володіння мовами програмування C та C++;
Спочатку C
- Наявність досвід роботи з мікроконтролерами STM32, ESP32 та їх аналогами;
Такі мікроконтролери коштують копійки. Купуєш собі будь-який, пишеш «блималку» світлодіодом з Arduino
- Знання інтерфейсів UART, SPI, I2C, CAN, USB, PWM, ADC/DAC;
Почитати на вікі, що воно таке. Далі ШІ-шка допоможе.
- Наявність досвіду роботи з RTOS (FreeRTOS або аналоги);
FreeRTOS
- Навички низькорівневого програмування: регістри, переривання, DMA;
Тут нічого порадити не можу, бо дупля не ріжу (ну, тільки в теорії щось знаю). Але впевнений, що можна заскочити швидко — була б задача! (У пана Лютікова є приклад навіть, хоча й не надто низькорівневий).
- Наявність досвід роботи з інструментами Keil, STM32CubeIDE, VS Code + PlatformIO, CMake;
Keil робить μVision — схоже на стару віжуал студію; не думаю, що складно розібратися. STM32CubeIDE — це щось на базі Eclipse
Мій вибір — це VS Code
CMake
- Розуміння принципів роботи з протоколами Modbus, MQTT, TCP/IP, BLE, LoRa, Wi-Fi;
Modebus не тямлю.
MQTT зараз в кожному зібраному на колінці «розумному» будинку (окрім мого гг) — почитайте сторінку на вікі, а потім поставте собі Home Assistant погратися «на практиці». Якраз мікроконтролер з пункту вище стане в пригоді.
TCP/IP взагалі база. Ніколи не знаєш, коли це знання знадобиться. Я це все в універі вчив і ще жодного разу не пожалкував. Половину забув уже звісно. Як вчити — хз. Зараз хтось в коментарях може порадить книжки.
BLE, LoRa, Wi-Fi — попросити чатгпт розповісти про переваги й недоліки, а далі по ситуації. (Оновлення: а ще краще для початку почитати пана Шевцова звідси й нижче як загальне ознайомлення).
- Вміння читати електронні схеми, працювати з осцилографом і логічним аналізатором;
Нічого з цього не відстрілюю. Але другани розібралися, тож, схоже, там не rocket science.
- Впевнене користування Git (GitHub, GitLab);
Ненавиджу Git
Пан Лютіков чогось не згадав, що там у вакансії ще вказані QML (достатньо почитати доки
Не соромтеся написати мені, де я неправий! (Бо це для загальної користі ж).
P.S. Використав у цьому дописі 20% іконок зі свого пака. Коли ще така нагода випаде?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👀8❤1
Cіпласпластик
приклад базових знань, які краще мати всім: хоча б про нормальні форми і SQL
Добре, якщо ви геть початківець, то вчорашній допис вам не сильно допоможе, хоча про «C++ за 21 день» я не жартував — колись була норм книга. І кожна з тем дуже глибока сама по собі, якщо не вміти «вчасно» спинитися (а без досвіду це важко).
Вашою ж метою має бути набрати якийсь кістяк знань, з якими ви зможете нормально просуватися далі й нарощувати їх. І сьогодні я приніс вам найкраще відео про нормалізацію БД, що я бачив (на жаль англійською).
Тільки не забувайте, що теорія важлива, однак, життєво необхідно закріплювати її практикою.
Вашою ж метою має бути набрати якийсь кістяк знань, з якими ви зможете нормально просуватися далі й нарощувати їх. І сьогодні я приніс вам найкраще відео про нормалізацію БД, що я бачив (на жаль англійською).
Тільки не забувайте, що теорія важлива, однак, життєво необхідно закріплювати її практикою.
YouTube
Learn Database Normalization - 1NF, 2NF, 3NF, 4NF, 5NF
An easy-to-follow database normalization tutorial, with lots of examples and a focus on the design process. Explains the "why" and "how" of normalization, and takes you step-by-step through:
- First Normal Form (1NF)
- Second Normal Form (2NF)
- Third Normal…
- First Normal Form (1NF)
- Second Normal Form (2NF)
- Third Normal…
1❤13👍6👀2