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

Мої емоджі:
https://t.me/addemoji/AdaptiveDevIcons
https://t.me/addemoji/VehicleBrands
Download Telegram
Тупня, до речі, що якщо робиш реплай на допис в межах якогось короткого проміжку часу, то Телеграм не додає до нього можливість коментувати. Але й в коменти до попередного воно не потрапляє.

Я б очікував принаймні, що обидва дописи в один ланцюжок потрапляють, як на скріні нижче. А ще краще просто зняти обмеження на довжину повідомлення )
😁31
Дослухав днями книжку «The Culture Map» (слухав англійською в Audible, але у «Нашого Формату» є переклад українською — «Культурна карта»). Раніше вже стикався з темою культурних барʼєрів, що можуть виникати при розширенні бізнесу на інші країни, коли читав книжку «No Rules Rules» про корпоративну культуру Netflix. Воно й не дивно, адже Ерін Меєр була їхньою консультанткою саме з цих питань, а потім власне стала соавторкою книги разом з нетфліксовським CEO.

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

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

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

Очевидно, що культурні особливості зумовлені історично, але цікаво розуміти, як саме. Наприклад, у японців при спілкуванні багато інфи йде між рядків — ну, бо вони на островах більш-менш відокремлено живуть, і навчилися розуміти один одного з півслова. А ті ж американці навпаки мають майже нульовий контекст, бо туди понаїхали аби хто, і в разі непорозуміння могли підстрелити. У них того й гумор такий буквальний, навіть після жарту додають «I'm kidding» 😑, щоб уже сумнівів не лишилося.

Або інший приклад. Ось в Україні, особливо в державних установах, треба писати свої ПІБ — прізвище, імʼя та по-батькові. Нам ще в школі вчителька казала, що це росіянська хуйня, яка для українців не була характерна. Тут прикол у тому, що «прізвище» aka family name — на першому місці. Ну й імʼя батька ще нахуя-то додають. І це прям дуже азійська тема, бо це в них там суспільство вельми ієрархічне, а родина завжди важливіша за особистість. У західній культурі зазвичай навпаки: спочатку імʼя (особистість), а далі прізвище (належність до групи). Отож я щось не пригадую, щоб казали «Хмельницький Богдан Михайлович». Мазепа Іван? Сковорода Григорій? Ну, ви зрозуміли )

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

В книзі повно інших історій, прикладів і порад. Мені сподобалася, тому й вам раджу ✍️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍291🤣1
😁33🔥2
Зараз навчу вас давати конструктивний фідбек і відповідно виявляти людей, які просто марнують ваш час.

Пише мені якийсь чувак у рандомному чаті:
До речі відписався від сіплапластика бо якісь занадто хуйові тейки в стрічці були


Еммм… ну ок… і шо далі? Що мені з цією інформацією робити, і як вона мені допоможе? Очевидно ж, що ніяк, бо не ясно, а які були очікування, а що саме вийшло за їх межі тощо. Якби ж була хоч якась ознака, що далі можна побудувати конструктивний діалог, я б навіть розпитав, а так лишається тільки сказати щось на кшталт: «Ну, досвідос!» 👋

Працює це до речі не тільки з негативними відгуками, а й з позитивними. Якщо після якоїсь презентації мені хтось казатиме: «Дякую, мені так сподобалося! — то я обовʼязково спитаю, — А що саме?» Тоді можна принаймні збагнути, що людям більше заходить. Бо від простих лестощів користі не надто багато, згодні?

Так а як робити, щоб користь була?

По-перше, подумайте, з якою метою ви взагалі хочете поділитися своєю думкою. Чи дійсно ви хочете допомогти людині, з якою спілкуєтеся? Якщо так, то ок. А якщо насправді вас просто зачепило, що людина не збагнула магічним чином ваших потреб і не задовольнила їх, а тепер ви просто хочете їй повідомити про особисту образу й привернути увагу до себе, то краще мовчки пройти повз. Бо я ще не бачив випадків, коли б таке закінчувалося добре 😄

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

По-третє, кажіть про слова/поведінку, але не про особистість. Тобто не «ти — хуй», а «ти отам сказав хуйню». Різниця чимала, повірте. Хоча це ще й від культури залежить, бо українці навіть другу фразу сприйматимуть як атаку на особистість, бо не вміють розділяти ці речі. Загалом незалежно від культури краще уникати тверджень з «ти», замінюючи їх на твердження з «я». Іншими словами замість «краще б ти більше писав про 💻» правильніше буде сказати «я був би радий, якби ти більше писав про C++, тому що…»

По-четверте, підкріплюйте сказане фактами. Це не єдина, але, сподіваюся, очевидна вимога для хоч якоїсь обʼєктивності.

По-пʼяте, фідбек краще давати якомога швидше після відповідної події, доки й ви самі, і людина ще в контексті. Якщо відгук негативний, то головне не робити це під впливом емоцій, але якщо ви вдало пройшли пункт 1, то має бути норм.

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

Якщо дочитали аж сюди, то знайте, що я завжди (чи майже завжди гг) радо приймаю будь-який конструктивний фідбек, бо його дуже бракує.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍189🤣1🤓1
Дискордом 📹 користуєтеся? Я десь з 2016 року в ньому сиджу, нехай і не надто активно. У мене часто виникають якісь дурні й не дуже ідеї для чужих продуктів, тож сьогодні маю «пару» слів.

З війною все якось заглухло, але в ті часи ми з дружиною й друзями доволі регулярно грали в коопні ігри, і треба було спілкуватися. Skype був важкуватий і занадто старий вже, TeamSpeak якось пройшов повз, Mumble хз шо таке взагалі, тому користувалися… нє, не дискордом, а голосовим чатом, вбудованим у Steam 🪙

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

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

В якийсь момент я навіть позбирав друзів на одному сервері для того, щоб обмінюватися ігровими новинами, обговорювати їх, як і самі ігри, тощо, проте, швидко виявилося, що то цікаво тільки мені 😅 (і дружині, але з нею я й так обговорюю).

Варто ще зазначити, що десь у 2007–2015 розробники деяких ігор мали дурну звичку вбудовувати в гру свій власний голосовий чат: зазвичай це було щось жахливої якості, з затримками, а то й взагалі не встановлювало звʼязок. Якщо через сервер якийсь, то може працюватиме, але якщо P2P — без шансів. А от що було круто, так це інтеграція в гру: мало хто цим заморочувався, але деякі робили.

💡 Уявіть, наприклад, що коли ваш друг щось каже в мікрофон, то його персонаж у грі підіймає руку з рацією до рота. Так, це нібито дрібниця, але наскільки додає занурення одразу! Я взагалі полюбляю, коли в грі не тупий HUD зі статами додатковим шаром на екрані, а інтеграція прям в ігрову сцену. Класичні приклади: кількість набоїв на автоматі в Halo (знизу зняток №1), смужка здоровʼя на спині Айзека в Dead Space (зняток №2) тощо.

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

Тож думки були наступні: розробники роблять круті ігри, але при цьому вони ж занадто невдалі (насправді їм просто не дають на це часу), щоб зробити нормальний вбудований голосовий чат, а розробники дискорда мають технологію саме для цього, але (на той момент) не надто велику базу користувачів. А значить, Discord мусить випустити SDK для інтеграції й стати буквально монополістом голосових чатів серед усіх ігор! (Якщо переконають розробників).

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

Чому я зараз про це пишу? Бо буквально того тижня вони окрім нової теми UI в оновленні оголосили, що віднині Discord інтегруватимуть у деякі сумісні ігри (наразі тільки текстовий чат) 🤡 Чи правильно вони роблять, що додають це зараз? Чи краще б було, якби вони це зробили 8 років тому, коли я це вигадав? Ми не дізнаємося вже, але особисто мені він зараз не дуже подобається як продукт.

А вчора була презентація Nintendo Switch 2, в який зокрема додали те, чого так сильно не вистачало в першому: вбудований чат! Причому схоже, що розробники у своїх іграх можуть через SDK отримувати доступ до звукових і навіть відеострімів учасників спілкування.

Одразу видно, хто думає про кращий продукт, а хто про вихід на IPO.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
💯12👍1🤣1🙈1
Скорий поспіх — людям посміх. WTF?
(Мем у когось підрізав).
🤣11😭1
Буквально нещодавно писав, що відвик бачити проблеми з кодуванням у 2k25, аж тут допомога прийшла, звідки не(?) чекали 👍

Взагалі-то отут вже мав бути кінець цього жартівливого допису: я навіть підпис не планував додавати. Однак зараз хтось захоче написати, шо іншого від Microsoft і не очікував. І це наштовхнуло мене на роздуми, а чого у MS така репутація взагалі?

Наприклад, на той же (десктопний) лінукс без сліз взагалі не подивишся. Половина статей на сайтах про те, чому Linux не гірше, ніж macOS/Windows, а інша половина про те, як зробити буцімто навіть краще! От тільки це прям вимагає зусиль, і врешті виходить у найкращому випадку щось вторинне. Але ні, це Майкрософт робить завжди погано, не забувайте.

На (десктопному) лінуксі є три типи серйозних програмних продуктів:
1) «лайно, але чого ви очікували від опенсорс»;
2) «а мені це й не треба»;
3) ті, що не існують.

І навіть попри наявність таких софтварних жахів, як OpenOffice чи GIMP, саме Microsoft постійно звинувачують у тому, що вони роблять лайно. Чому?

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

Річ у тім, що людям треба ж когось звинуватити, і краще мати для цього один суб'єкт. З лінуксом такий номер не прокотить, бо кожний дистрибутив — як не вінегрет, то торт «Бідний студент» з усього, що було в холодильнику. Тисячі контриб'юторів, сотні компаній. Кого винуватити зазвичай не ясно. Вельми незручно отже.

Чи заслуговує Microsoft на таке ставлення? Та певно що так, бо ідеальними їхні програми не назвеш. Чи роблять вони гірше за інших? Вочевидь ні. Просто писати складні й хороші програми… складно.

У (десктопного) лінукса ж децентралізація є як слабкою його стороною, так і сильною. Ще б перестали вони намагатися копіювати вінду з маком, а нарешті спробували запровадити власні інновації — взагалі б чудово було.

P.S. Я всюди додаю, що мова саме про десктопний лінукс, бо зазвичай коли показуєш людям, як після оновлення графічний сервер не піднявся або як звук відпав, або як kernel panic трапляється, коли HDMI-кабель під'єднуєш, то вони обов'язково мені повторюють мантру: «лінукс — це ядро». Буквально демонстрація моєї тези, що навіть звинуватити нема кого, бо винуватий завжди хтось інший: розробник софта, драйвера, мейнтейнер дистрибутива тощо. Але НЕ лінукс, бо це всього лише ядро! 🤣

P.P.S. Певно, комусь захочеться зачепитися, що я ніби лінукс-хейтер, але я не кочу бочку на лінукс. У мене компи на всіх трьох основних системах, подекуди з аптаймом більшим, ніж у ваших холодильників, і вони всі в чомусь норм, а в чомусь лайно. Нема ідеалу. Таке життя)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥6🤝2💊2👏1🤡1🤣1
Ну ок, яка ваша улюблена ОС для робочих задач?
Final Results
38%
Linux
18%
Windows
42%
macOS
1%
Android
0%
iOS/iPadOS
1%
Plan 9
0%
Haiku OS
1%
Інша
А яка улюблена ОС для хобі й відпочинку?
Final Results
32%
Linux
31%
Windows
29%
macOS
2%
Android
4%
iOS/iPadOS
2%
Інша
This media is not supported in your browser
VIEW IN TELEGRAM
Натрапив на плагін для Neovim, який додає (8-бітні) звуки — player-one.nvim. І на диво мені подобається!

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

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

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

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

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

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

А зараз подивився чудову доповідь про майже відсутню еволюцію в сучасних мовах програмування. Вражає, як купка людей, імена яких ви всі неодноразово чули, заклали фундамент на десятиріччя вперед.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11💯1🤣1🤨1
Сиджу в тімзі на нараді з якимсь мужиком )
🤯27😁9👏6💊2
Cіпласпластик
Сиджу в тімзі на нараді з якимсь мужиком )
Короч, головний ауткам:

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

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

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

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

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

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

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

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

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

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

У мене ж до вас лишилося всього два запитання:
1. Шо думаєте з цього приводу?
2. Чого досі не пограли в Mass Effect?
Please open Telegram to view this post
VIEW IN TELEGRAM
😁17🤣5👍32
This media is not supported in your browser
VIEW IN TELEGRAM
Я обожнюю #QML. Все-таки Nokia сильно випередила час із ним.

Ліричний відступ для тих, хто не в темі: 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😁31
Пару тижнів тому дослухав «Start small, stay small» — книжку про мікропідприємництво (micropreneurship). І якщо чесно, мені не дуже зайшло попри деякі цікаві думки й низку досі корисних порад.

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

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

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

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

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

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

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

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

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

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

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

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

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

procedure Print (Self : Base_Class);

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

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

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

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

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

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

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

Може ще щось цікаве було, та зараз вже не згадаю. Тож наразі все.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥4😍2🤣1