Щойно дізнався від другана, що 1 січня 2024 року помер Ніклаус Вірт — автор мов програмування Pascal, Modula, Oberon, книги «Algorithms + Data Structures = Programs» тощо. Чувак мав величезний вплив на світ компʼютерів — наш з вами світ — за що я його дуже поважаю.
Я памʼятаю, як із задоволенням переходив з Pascal на C, бо «останній більш популярний», «бо ним користуються професіонали», бо «він значно лаконічніший». Мені знадобилося майже 15 років, щоб усвідомити, що як раз-то на паскалі писати було значно приємніше, адже можна було просто дампати думки в код, а потім, що важливо, приблизно так само відновлювати думки з коду.
В той самий час код на C та багатьох його нащадках — це завжди челендж при написанні + челендж при читанні. Не прикольно ж написати щось по-людськи, значно цікавіше, коли
еге ж? Така собі жуйка для мозку. Коли бізнес-задачі нудні, треба знаходити собі джерело дофаміну.
От і виходить, що довгий час індустрія розвивалася коштом позерів(типу мене) , які на рівному місці вигадували собі проблеми, а потім героїчно їх вирішували. Навіть жарт був, памʼятаю: «те, що було насилу написане, і читатися мусить насилу». Згодом, щоправда, виявилося, що це не зовсім і жарт для багатьох.
Отож, пане Вірте, ми все проїбали. Принаймні в боротьбі зі складністю.
До речі, є навіть так званий закон Вірта, згідно з яким
І дивлячись на софтварні «досягнення» останніх десятиліть, звучить вельми переконливо.
Але не переймайтеся, часи порівнянь C та Pascal позаду. Нині складність з мов програмування перейшла на рівень вище — на рівень архітектури, фреймворків, систем, сервісів, кластерів та клаудів. Тепер заживемо☺️
Я памʼятаю, як із задоволенням переходив з Pascal на C, бо «останній більш популярний», «бо ним користуються професіонали», бо «він значно лаконічніший». Мені знадобилося майже 15 років, щоб усвідомити, що як раз-то на паскалі писати було значно приємніше, адже можна було просто дампати думки в код, а потім, що важливо, приблизно так само відновлювати думки з коду.
В той самий час код на C та багатьох його нащадках — це завжди челендж при написанні + челендж при читанні. Не прикольно ж написати щось по-людськи, значно цікавіше, коли
while (*d++ = *s++);
еге ж? Така собі жуйка для мозку. Коли бізнес-задачі нудні, треба знаходити собі джерело дофаміну.
От і виходить, що довгий час індустрія розвивалася коштом позерів
Отож, пане Вірте, ми все проїбали. Принаймні в боротьбі зі складністю.
До речі, є навіть так званий закон Вірта, згідно з яким
Софт стає повільнішим жвавіше, ніж залізо стає швидшим.
І дивлячись на софтварні «досягнення» останніх десятиліть, звучить вельми переконливо.
Але не переймайтеся, часи порівнянь C та Pascal позаду. Нині складність з мов програмування перейшла на рівень вище — на рівень архітектури, фреймворків, систем, сервісів, кластерів та клаудів. Тепер заживемо
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7😢3
Cіпласпластик
Щойно дізнався від другана, що 1 січня 2024 року помер Ніклаус Вірт — автор мов програмування Pascal, Modula, Oberon, книги «Algorithms + Data Structures = Programs» тощо. Чувак мав величезний вплив на світ компʼютерів — наш з вами світ — за що я його дуже…
А знаєте до речі, як так вийшло, що C# як мова значно приємніша за C++? Та бо її автором є Андерс Гейлсберґ, який за сумісництвом також є автором Turbo Pascal (ну й фактично Delphi також згодом). Просто хлопак щось тямить в зручних та приємних мовах програмування.
TypeScript теж його. Так-так, все одна й та сама людина. Чим він наразі займається хз, але до 2020-го активно котрибʼютив саме в TS.
TypeScript теж його. Так-так, все одна й та сама людина. Чим він наразі займається хз, але до 2020-го активно котрибʼютив саме в TS.
👍5❤1
Хедер-онлі ліба для бінарної серіалізації на C++20 https://github.com/farukeryilmaz/bytepack
GitHub
GitHub - farukeryilmaz/bytepack: C++ Binary Serialization Made Easy: Header-only, configurable endianness, cross-platform, no IDL…
C++ Binary Serialization Made Easy: Header-only, configurable endianness, cross-platform, no IDL, no exceptions, and no macros - farukeryilmaz/bytepack
👀1
Cіпласпластик
Я вже якось згадував, що почав користуватись Warp як терміналом на macOS. Вирішив його спробувати, бо сподобалася (читайте — зійшлася з моєю) ідея блоків: фактично він просто групує команду з її аутпутом, що, втім, доволі зручно. Проте я ніяк не міг позбутися…
Хотів, було, розповісти вам, як я успішно перейшов з #zsh остаточно на #fish пару тижнів тому, бо останній значно прикольніший: більш людяний синтаксис, легший для сприйняття, ну й в цілому цікавий чи що. Проте на 😢
Колись давно я дізнався про #PowerShell від Microsoft і був до глибини душі вражений, що вони реалізували передачу структурованих обʼєктів замість тексту через пайп, адже і сам мріяв про таке давно🙂 Але з павершелом врешті не зайшло, хоча я навіть книгу прочитав. Не тому, що він поганий абощо — ні, він навпаки чудовий, а ті, хто стверджує протилежне, просто жодного разу ним не користувалися, мабуть. Мені, наприклад, дуже подобається їх схема імен а ля
Я натрапив на Nushell! Він також передає структуровану інформацію через пайп, але є й інші цікавинки. Наприклад, змінні там по дефолту immutable, що спонукає писати в більш функціональному стилі. Загалом відчувається якась атмосфера Haskell трохи. Синтаксис лямбд при цьому скоріше як в Ruby. Іще цей шел не POSIX-сумісний, що безперечно є додатковою перевагою😉 Окремо варто згадати, що він не інтерпретує вирази, а компілює: з перевіркою типів, нормальними повідомленнями про помилки — з усіма ніштяками отже.
Той факт, що через пайпи передаються структуровані дані, наприклад той же JSON, також означає, що потенційно нарешті не потрібен
Серед читачів безперечно є хтось, хто зараз може вийти зі своїм магічним ванлайнером на баші, седі, перлі та
Спробую пожити з #Nushell як з дефолтним, бо цікава штука.
fish
я надовго не затримався, бо виявилося, що є ще крутіші альтернативи. Навіть трохи шкода Колись давно я дізнався про #PowerShell від Microsoft і був до глибини душі вражений, що вони реалізували передачу структурованих обʼєктів замість тексту через пайп, адже і сам мріяв про таке давно
Verb-Noun
. Не дуже лаконічно, зате зрозуміло. Але в якийсь момент я відчув, що для ефективного використання треба глибше пірнати в .NET, а мені воно було не в тему. Та годі про PowerShell.Я натрапив на Nushell! Він також передає структуровану інформацію через пайп, але є й інші цікавинки. Наприклад, змінні там по дефолту immutable, що спонукає писати в більш функціональному стилі. Загалом відчувається якась атмосфера Haskell трохи. Синтаксис лямбд при цьому скоріше як в Ruby. Іще цей шел не POSIX-сумісний, що безперечно є додатковою перевагою
Той факт, що через пайпи передаються структуровані дані, наприклад той же JSON, також означає, що потенційно нарешті не потрібен
jq
. Я тут щойно погрався і за пару хвилин зміг порахувати кількість рядків коду та ін., що ми написали в останньому тримісячному проєкті:> let excludes = [**/3rdparty/** **/node_modules/**]
> glob **/*.{cpp,hpp,qml,js} --exclude $excludes | each { |f|
open $f | str stats
} | math sum
╭───────────┬────────╮
│ lines │ 22169 │
│ words │ 44291 │
│ bytes │ 516740 │
│ chars │ 516714 │
│ graphemes │ 516714 │
╰───────────┴────────╯
Серед читачів безперечно є хтось, хто зараз може вийти зі своїм магічним ванлайнером на баші, седі, перлі та
wc
, що зробить все швидше та легше, але я в них не тямлю і, головне, не хочу, бо вони навіть між собою не стандартизовані ніфіга. А тут я зміг дещо накалякати без сторонньої допомоги чисто після читання пари сторінок мануала та користування командою help
.Спробую пожити з #Nushell як з дефолтним, бо цікава штука.
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡1👍1👀1
А які взагалі юзкейси шел-скриптів? Нащо люди їх пишуть?
Для автоматизації, ага, але автоматизації чого?
Наприклад, у мене завжди виникала проблема початкового налаштування операційної системи після установки. Ну, ви знаєте… Поставити потрібні програми, підкинути пару конфігів, створити якісь змінні оточення, прописати шляхи. І я, коли ще був на вінді, почав з простого BAT-файлу, який згодом перетворився на #PowerShell-скрипт. Потім набридло це підтримувати авжеж, бо я вінду з нуля ставив раз на пʼять років.
Однак зараз у мене є три серваки: один хатній NAS та 2 VPS на погратися — і проблема знов виникла. Найгірше, це коли треба щось змінити в конфігурації, а ти вже не памʼятаєш, як взагалі щось налаштовував (бо знов-таки робиш це раз на декілька років). Отож, щоб з цим розібратися, я нарешті опанував #Ansible на базовому рівні минулого тижня, про існування котрого знаю давно, але все ліньки було зайнятися. І це прям гейм-чейнджер — я тепер навіть локально буду все ним налаштовувати, мабуть.
З адмініструванням розібралися. Білди? Знов-таки, краще використовувати нормальну білд-систему, яке не тільки більш контрольована, ніж шел-скрипт, але й швидше працюватиме вірогідно.
Обробка даних? Не можу уявити випадок, коли шел-скрипт став би правильнішим рішенням за написання простої програми на #Python.
Лишаються тільки ad hoc адміністрування якесь (хоча в залежності від деталей, може навіть тут краще використати Ansible) та, власне, композиція пайпа з декількох тулів в одній команді. І тут якнайкраще показує себе згаданий в попередньому дописі #Nushell.
Які ваші юзкейси?
Для автоматизації, ага, але автоматизації чого?
Наприклад, у мене завжди виникала проблема початкового налаштування операційної системи після установки. Ну, ви знаєте… Поставити потрібні програми, підкинути пару конфігів, створити якісь змінні оточення, прописати шляхи. І я, коли ще був на вінді, почав з простого BAT-файлу, який згодом перетворився на #PowerShell-скрипт. Потім набридло це підтримувати авжеж, бо я вінду з нуля ставив раз на пʼять років.
Однак зараз у мене є три серваки: один хатній NAS та 2 VPS на погратися — і проблема знов виникла. Найгірше, це коли треба щось змінити в конфігурації, а ти вже не памʼятаєш, як взагалі щось налаштовував (бо знов-таки робиш це раз на декілька років). Отож, щоб з цим розібратися, я нарешті опанував #Ansible на базовому рівні минулого тижня, про існування котрого знаю давно, але все ліньки було зайнятися. І це прям гейм-чейнджер — я тепер навіть локально буду все ним налаштовувати, мабуть.
З адмініструванням розібралися. Білди? Знов-таки, краще використовувати нормальну білд-систему, яке не тільки більш контрольована, ніж шел-скрипт, але й швидше працюватиме вірогідно.
Обробка даних? Не можу уявити випадок, коли шел-скрипт став би правильнішим рішенням за написання простої програми на #Python.
Лишаються тільки ad hoc адміністрування якесь (хоча в залежності від деталей, може навіть тут краще використати Ansible) та, власне, композиція пайпа з декількох тулів в одній команді. І тут якнайкраще показує себе згаданий в попередньому дописі #Nushell.
Які ваші юзкейси?
Udemy
Udemy Course Completion Certificate
My course completion certificate for "Ansible for the Absolute Beginner - Hands-On - DevOps"
👍1👀1
Cіпласпластик
Про браузери Не сказати, що Vivaldi (зображення №1) мене чимось не влаштовує, але спробував я врешті Arc (зображення №2). Кардинально нового порівняно з тим, чого я можу досягти з Vivaldi, він не пропонує. В мене завжди мільйон сторінок в браузері, тож з…
Вони пишуть, що (тільки) сьогодні можна пропушити, щоб не чекати довго. Під мак хз, чи досі потрібен інвайт, чи воно вже загальнодоступне. Але якщо що, то також можу заінвайтити. Тільки мило ваше треба (краще в приват).
Я сам Арком користуюся з травня минулого року, здається, і наразі мені подобається трішечки більше за Vivaldi. Ну а порівняно з хромом він взагалі на голову вищий.
З технічно цікавого: чув, що його оболонка написана повністю на Swift, тож їм довелося попотіти, щоб примусити це працювати на вінді.
👀1
Ті, з ким ми знайомі, знають, що я полюбляю накупити непотреба на всі гроші: від ножів до електронних гаджетів (ну, принаймні так це виглядає, мабуть, хоча здебільшого це зважені покупки, а не імпульсивні). Втім насправді навіть це в минулому — після 30 доводиться вже якось планувати бюджет.
Інша проблема — стало нудно, ліниво й нецікаво пробувати щось «нове». І нове тут саме в лапках, бо з часом починаєш зауважувати, що більшість «інновацій» ти вже десь бачив. Із софтом ще гірше — навіть оновлюватися нерідко лячно, бо ризик щось поламати давно переважає хвилювання від нової фічі. Тож виходить, що з early adopters я перейшов до majority. Відчуваю себе дідом 👨🏻🦳
Проте зрідка ще балую себе. Останніми двома пристроями, що я передзамовив в ту ж мить, коли про них дізнався, були DJI Osmo Pocket та Nintendo Switch. Жодного разу не пожалкував. Цього разу без вагань не обійшлося, але передзамовив собі Rabbit R1.
Про цей пристрій не написав тільки лінивий, але достеменно ніхто не тямить, що воно таке та як працюватиме. Наскільки я розумію ідею: ви створюєте хмарний обліковий запис, підвʼязуєте до нього сервіси, якими користуєтеся, на кшталт Spotify, Uber, YouTube, Airbnb тощо, а потім через пристрій спілкуєтеся з так званою LAM (Large Action Model), яка виконуватиме те, що ви її попросили.
Тут річ у тому, що ця LAM на відміну від LLM навчена (як вони кажуть) не тільки відповідати на запитання, але й якісь дії виконувати, причому робити так, як це робила б людина, а не як робить компʼютер. Іншими словами, вони таким чином намагаються розвʼязати проблему (не)доступності або закритості API, що насправді доволі цікаво ідейно. Якщо опустити авжеж той факт, що десь в клауді буде існувати щось залоговане під вашими обліковими записами. (А ще чекаємо на всратіші капчі на сайтах та щоденні релогіни через код з смс «заради нашої безпеки», ага).
Сам по собі пристрій виглядає одночасно й доволі ніяким — не подобається глянцевий пластик, екран доволі маленький — і крутецьким через свій яскравий колір, нестандартний формфактор та загалом професійний дизайн від Teenage Engineering. Обожнюю якісь нестандартні контроли типу того ж колеса, а за наших часів все, що не тачскрін і не бокові кнопки гучності, вже можна вважати нестандартним.
Тут цікавий момент. Вони пишуть: no subscription required🤔 А ми з вами знаємо, що зараз всі LLM доволі збиткові, навіть ті, що з передплатою. Бізнес з таким пристроєм не побудуєш короч. А значить, це не є їхній продукт. Я вангую, що Rabbit R1 зробили таким помітно яскравим та взагалі випускають з однією метою: отримати більше користувачів, які навчатимуть їх LAM.
Вони до речі оприлюднили днями інфу про співпрацю з Perplexity. Я про останніх майже нічого не чув. Памʼятаю тільки, в них ніби Безос інвестував (бо Алексу свою проїба в 😂 ). Але ось як раз десь пару днів користуюся. Непогана штука, коли треба знайти та узагальнити інформацію з якогось питання з декількох джерел. Фактично те, чим мав би стати Bing з їхнім Copilot.
Цікавий момент №2. Як виявилося, передзамовникам R1 з перших 10 батчів (по 10к одиниць, я так розумію) Rabbit дає ваучер на 200$ для #Perplexity🤑 Тобто фактично річну передплату. Одразу дає — у мене вже є. З розрахунку стандартних 10 місяців + 2 безплатних виходить 20$ на місяць, тобто та ж передплата на ChatGPT Plus. Іншими словами, сам пристрій — «безплатний» 😅
Так, 200 євро (з доставкою) важко назвати безплатним. І скоріш за все колись ця LAM взагалі стане застосунком на вашому телефоні, або буде кудись інтегрована. Та і юзкейсів, на яких вони рекламуються у мене немає: не їжджу я нікуди на убері, не літаю в літаках, не букаю хату чи готель щодня — вдома сиджу. Але щось придумається.
І мене так задовбало для будь-чого анлокати телефон, зачиняти останню відкриту прогу, шукати потрібну, запускати її, шукати та робити щось вже в ній — словами не передати! (Хоча чувак на імʼя Golden Krishna зміг у своїй книзі до речі). Тож вирішив я спробувати мати окремий пристрій для цього. Потім розповім вам, чи це скам.
Інша проблема — стало нудно, ліниво й нецікаво пробувати щось «нове». І нове тут саме в лапках, бо з часом починаєш зауважувати, що більшість «інновацій» ти вже десь бачив. Із софтом ще гірше — навіть оновлюватися нерідко лячно, бо ризик щось поламати давно переважає хвилювання від нової фічі. Тож виходить, що з early adopters я перейшов до majority. Відчуваю себе дідом 👨🏻🦳
Проте зрідка ще балую себе. Останніми двома пристроями, що я передзамовив в ту ж мить, коли про них дізнався, були DJI Osmo Pocket та Nintendo Switch. Жодного разу не пожалкував. Цього разу без вагань не обійшлося, але передзамовив собі Rabbit R1.
Про цей пристрій не написав тільки лінивий, але достеменно ніхто не тямить, що воно таке та як працюватиме. Наскільки я розумію ідею: ви створюєте хмарний обліковий запис, підвʼязуєте до нього сервіси, якими користуєтеся, на кшталт Spotify, Uber, YouTube, Airbnb тощо, а потім через пристрій спілкуєтеся з так званою LAM (Large Action Model), яка виконуватиме те, що ви її попросили.
«Ну й шо?» — скажете ви, — «Нащо мені окремий пристрій для ChatGPT?»
Тут річ у тому, що ця LAM на відміну від LLM навчена (як вони кажуть) не тільки відповідати на запитання, але й якісь дії виконувати, причому робити так, як це робила б людина, а не як робить компʼютер. Іншими словами, вони таким чином намагаються розвʼязати проблему (не)доступності або закритості API, що насправді доволі цікаво ідейно. Якщо опустити авжеж той факт, що десь в клауді буде існувати щось залоговане під вашими обліковими записами. (А ще чекаємо на всратіші капчі на сайтах та щоденні релогіни через код з смс «заради нашої безпеки», ага).
Сам по собі пристрій виглядає одночасно й доволі ніяким — не подобається глянцевий пластик, екран доволі маленький — і крутецьким через свій яскравий колір, нестандартний формфактор та загалом професійний дизайн від Teenage Engineering. Обожнюю якісь нестандартні контроли типу того ж колеса, а за наших часів все, що не тачскрін і не бокові кнопки гучності, вже можна вважати нестандартним.
Тут цікавий момент. Вони пишуть: no subscription required
Вони до речі оприлюднили днями інфу про співпрацю з Perplexity. Я про останніх майже нічого не чув. Памʼятаю тільки, в них ніби Безос інвестував (бо Алексу свою проїб
Цікавий момент №2. Як виявилося, передзамовникам R1 з перших 10 батчів (по 10к одиниць, я так розумію) Rabbit дає ваучер на 200$ для #Perplexity
Так, 200 євро (з доставкою) важко назвати безплатним. І скоріш за все колись ця LAM взагалі стане застосунком на вашому телефоні, або буде кудись інтегрована. Та і юзкейсів, на яких вони рекламуються у мене немає: не їжджу я нікуди на убері, не літаю в літаках, не букаю хату чи готель щодня — вдома сиджу. Але щось придумається.
І мене так задовбало для будь-чого анлокати телефон, зачиняти останню відкриту прогу, шукати потрібну, запускати її, шукати та робити щось вже в ній — словами не передати! (Хоча чувак на імʼя Golden Krishna зміг у своїй книзі до речі). Тож вирішив я спробувати мати окремий пристрій для цього. Потім розповім вам, чи це скам.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔2⚡1👀1
Cіпласпластик
Ті, з ким ми знайомі, знають, що я полюбляю накупити непотреба на всі гроші: від ножів до електронних гаджетів (ну, принаймні так це виглядає, мабуть, хоча здебільшого це зважені покупки, а не імпульсивні). Втім насправді навіть це в минулому — після 30 доводиться…
До речі буквально позавчора #Arc інтегрував #Perplexity до себе в список стандартних пошукових систем. Ті, хто в Perplexity AI домовляються з іншими щодо співпраці, явно не сидять без діла.
👀1
Якщо ви користуєтеся #Spotify, то скоріш за все відчуваєте той самий біль, що і я: щотижня в кляті рекомендації на кшталт Discover Weekly потрапляє росіянське лайно: якесь виття однотипне, надиктовка віршів під музику тощо. Не брехатиму, наче раніше не слухав росіянське, але останні роки аж тіпає від нього. У мене вже настільки чутливість розвинена, що я їх навіть англійською одразу розпізнаю в більшості випадків.
Виявляється, проблема загальна. У когось терпець урвався, і він звернувся до Spotify. Якщо є змога, поставте там хоча б👍 , будь ласка. А то можна і коментар лишити, як натхнення прийде.
Виявляється, проблема загальна. У когось терпець урвався, і він звернувся до Spotify. Якщо є змога, поставте там хоча б
Please open Telegram to view this post
VIEW IN TELEGRAM
Spotify
Request for Sensitivity in Content Recommendations... - T…
Dear Spotify,
I am writing to address a concern that has significant cultural and emotional implications for many of your users, particularly in Ukr…
I am writing to address a concern that has significant cultural and emotional implications for many of your users, particularly in Ukr…
👍11
До речі, якщо вже мова зайшла. На останньому The Game Awards, який відбувся в грудні 2023-го, традиційно анонсували багато нових ігор. Цього разу, до речі, кількість тих, хто дивився церемонію в прямому ефірі, була більша, ніж у всіх Оскарів, Золотих Глобусів та інших кіношних заходів разом узятих. Але мова не про те.
Там японка анонсувала свою гру з отаким бадьорим та динамічним трейлером. Зацініть😉
Хз, що буде за гра, але саундтрек — це ONUKA авжеж. Було дуже приємно почути )) Посилання на повну пісню .
Там японка анонсувала свою гру з отаким бадьорим та динамічним трейлером. Зацініть
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
KEMURI Official Teaser Trailer | The Game Awards 2023
An original IP concepted & created by Ikumi Nakamura, developed by ▧ UNSEEN.
KEMURI summons you into a realm where the unpredictable meets the extraordinary in an urban jungle where mysterious creatures - YOKAI - hide amongst the population. Become a YOKAI…
KEMURI summons you into a realm where the unpredictable meets the extraordinary in an urban jungle where mysterious creatures - YOKAI - hide amongst the population. Become a YOKAI…
👍4
Доки дивився відос про модулі в C++, на які я чекав з часів C++0x (спойлер: все сплюндровано — чи то досі, чи зовсім 🤷🏻♂️ ), згадав про таку білд-систему як xmake, що походить, вірогідно, з Китаю. Вона базується на #Lua, як і Premake, але якось вже розвинутіше виглядає. За ті два роки, котрі я її ігнорував, вони додали підтримку купи мов на кшталт #Zig, #Nim або #Rust і навіть зробили свій пекедж-менеджер. Плюс Lua сама по собі доволі проста та приємна — точно краща за CMake. Може колись нарешті знайду щось, що задовольнить мене хоча б на рівні #Qbs, щоб нарешті від нього відмовитися.
YouTube
So, you want to use C++ Modules ...cross platform - Daniela Engert - Meeting C++ 2023
So, you want to use C++ Modules ...cross platform - Daniela Engert - Meeting C++ 2023
Slides: https://slides.meetingcpp.com
Survey: https://survey.meetingcpp.com
If you are interested in the topic of C++ Modules you are probably aware of the fact that the…
Slides: https://slides.meetingcpp.com
Survey: https://survey.meetingcpp.com
If you are interested in the topic of C++ Modules you are probably aware of the fact that the…
👀1
За якимсь бісом створив перелік майже всіх штучних мов (та форматів — а то зараз казатимете мені, що JSON не мова), якими я хоч раз щось писав свідомо та власними руками (окрім хеллоу ворлдів та прикладів з мануалів авжеж). Користі з цього небагато, але вийшло значно більше, ніж я очікував. Дивовижно.
Про деякі з них досі згадую з теплом у серці ) Не про FoxPro безумовно😅
Про деякі з них досі згадую з теплом у серці ) Не про FoxPro безумовно
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2
YouTube
GitButler Product Demo February 2024
A quick demo of how GitButler can help you manage your Git branches.
https://gitbutler.com
https://gitbutler.com
Натрапив вчора на GitButler. Автори його називають ґіт-клієнтом з можливістю «працювати в декількох гілках одночасно». І якщо позбутися мішури на кшталт фенсі UI та ШІ-шки, що пише за вас коміт-меседжі, то виникає підозріле відчуття дежавю. В Меркуріалі, який на відміну від ґіта мені завжди подобався, вже була схожа штука під назвою mq. Це щось схоже на ґітовий стейджинг, тільки багаторівневий, адже дозволяє робити цілі ланцюжки окремих маленьких патчів.
Інколи замислююся, чому перемогли C, а не Pascal (або LISP😱 ), Git, а не Mercurial, тощо, і яким би був світ, де лідерство здобули зручніші тули, зроблені для людей, а не кулхацкерське лайно для вийобщиків з великим его. А ви як вважаєте?)
Інколи замислююся, чому перемогли C, а не Pascal (або LISP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4💯1👀1
Буває, якийсь сервіс змушує зареєструватися чи просто вказати свій імейл, а свою основну адресу лишати абиде не хочеться. Я раніше користувався https://mailforspam.com для цього — там просто вказуєш будь-яку адресу в домені на кшталт foobar@mailforspam.com — і воно вже здатне приймати пошту. Але деякі сервіси почали блокувати по домену 🤬
Тож я перейшов на https://temp-mail.org: той цілі рандомні адреси генерує разом з доменом, котрих вочевидь обмежена кількість, але підозрюю, що достатньо велика. Я прям через телеграмного бота @TempMail_org_bot користуюся.
Впевнений, ви знаєте якісь ще альтернативи. Може щось зручніше є?
Тож я перейшов на https://temp-mail.org: той цілі рандомні адреси генерує разом з доменом, котрих вочевидь обмежена кількість, але підозрюю, що достатньо велика. Я прям через телеграмного бота @TempMail_org_bot користуюся.
Впевнений, ви знаєте якісь ще альтернативи. Може щось зручніше є?
Please open Telegram to view this post
VIEW IN TELEGRAM
Temp Mail
Temp Mail - Disposable Temporary Email
Keep spam out of your mail and stay safe - just use a disposable temporary email address! Protect your personal email address from spam with Temp-mail
👍6
Я інколи кажу, що C++ — це хороша мова з поганими дефолтами. Маю на увазі, що мова дуже потужна і дозволяє робити купу всього, але програміста при цьому примушує тримати купу деталей в голові, щоб не схибити десь.
Нюанс полягає в тому, що мови з хорошими дефолтами я поки не бачив, хоч деякі з них намагаються виправити бодай якусь маленьку проблему, що вже непогано. Як в тому ж #Rust зробили, щоб всі «змінні» стандартно були константами. Воно ж і логічно, ні? Як часто вам насправді треба мати мутабельні змінні? З поточними практиками — дуже рідко, бо через вплив ФП ви найімовірніше просто позначаєте якесь проміжне immutable значення окремим імʼям. Але в C++ для оголошення константи програмісти мусять окрему роботу виконати — написати
Або додали ось в C++11 атрибути, зокрема🤯 «Навіщо?» — спитаєте ви. Я теж не одразу второпав.
Є у вас, наприклад, так званий mutex guard — така штука, яка локає мьютекс при створенні та автоматом анлокає його при виході зі скоупу (при знищенні). Як
Річ у тім, що можна хибно написати ось такий код, і компілятор вам жодного слова не скаже:
Короч, як ви вже здогадалися, щоб уникнути останньої проблеми, можна позначити конструктор як
Логічно? «Логічно»!😅 Але чому це не стандартна поведінка? Ніхто того не зна. Як часто ви пишете функції, які повертають значення, яке можна ігнорувати? Нащо тоді вони його повертають? А як часто ви пишете класи, екземпляри яких ніяк не використовуються? Чисто заради сайд-ефектів чи що?
У #Nim теж так подумали й зробили всі значення non-discardable, причому компілятор одразу помилку пише, а не попередження:
І щоб виправити це, треба буквально сказати йому, що значення вам не потрібне:
Круто, еге ж?
Вирішив пошукати, в яких ще імперативних мовах таке є, і виявилося, що в жодній! #Zig та #Swift нібито попередження видають, але це не точно. А ще в #Rust є схожий пропоузал. Чому ніхто цього не робить? Є ідеї? )
Нюанс полягає в тому, що мови з хорошими дефолтами я поки не бачив, хоч деякі з них намагаються виправити бодай якусь маленьку проблему, що вже непогано. Як в тому ж #Rust зробили, щоб всі «змінні» стандартно були константами. Воно ж і логічно, ні? Як часто вам насправді треба мати мутабельні змінні? З поточними практиками — дуже рідко, бо через вплив ФП ви найімовірніше просто позначаєте якесь проміжне immutable значення окремим імʼям. Але в C++ для оголошення константи програмісти мусять окрему роботу виконати — написати
const
. Легко забути та скіпнути? Легко.Або додали ось в C++11 атрибути, зокрема
[[nodiscard]]
в C++17. Якщо функцію таким позначити, то компілятор «заохочується» 😆 видати попередження, що треба щось зробити зі значенням, що повертається. І як виявилося, подібним атрибутом можна позначити конструктор Є у вас, наприклад, так званий mutex guard — така штука, яка локає мьютекс при створенні та автоматом анлокає його при виході зі скоупу (при знищенні). Як
std::lock_guard
, ага. Використовується наступним чином:{
const mega_guard lock{mutex};
// ...
}
Річ у тім, що можна хибно написати ось такий код, і компілятор вам жодного слова не скаже:
{
mega_guard{mutex}; // не lvalue, тож одразу знищується, звільняючи мьютекс
// ...
}
Короч, як ви вже здогадалися, щоб уникнути останньої проблеми, можна позначити конструктор як
[[nodiscard]]
:class mega_guard {
public:
[[nodiscard]] explicit mega_guard(mutex &);
// ...
};
Логічно? «Логічно»!
У #Nim теж так подумали й зробили всі значення non-discardable, причому компілятор одразу помилку пише, а не попередження:
proc sum(x, y: int): int =
result = x + y
sum(3, 4) # Error: expression 'sum(3, 4)' is of type 'int' and has to be discarded
І щоб виправити це, треба буквально сказати йому, що значення вам не потрібне:
discard sum(3, 4)
Круто, еге ж?
Вирішив пошукати, в яких ще імперативних мовах таке є, і виявилося, що в жодній! #Zig та #Swift нібито попередження видають, але це не точно. А ще в #Rust є схожий пропоузал. Чому ніхто цього не робить? Є ідеї? )
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2
Cіпласпластик
Якщо ви користуєтеся #Spotify, то скоріш за все відчуваєте той самий біль, що і я: щотижня в кляті рекомендації на кшталт Discover Weekly потрапляє росіянське лайно: якесь виття однотипне, надиктовка віршів під музику тощо. Не брехатиму, наче раніше не слухав…
#Ідея для стартапа:
сервіс, в який ви логінитеся своїм обліковим записом #Spotify, щоб він щотижня пробігався по «Тижневій добірці», перевіряв за допомогою #ШІ-шки кожного виконавця, чи не має той звʼязків з рашкою, та автоматично дизлайкав тих, хто має.
Не знайшов в APIʼшці спотіфая можливості ставити «dislike», бо це якась фішка чисто «Тижневої добірки», але маю сподівання що запит
сервіс, в який ви логінитеся своїм обліковим записом #Spotify, щоб він щотижня пробігався по «Тижневій добірці», перевіряв за допомогою #ШІ-шки кожного виконавця, чи не має той звʼязків з рашкою, та автоматично дизлайкав тих, хто має.
Не знайшов в APIʼшці спотіфая можливості ставити «dislike», бо це якась фішка чисто «Тижневої добірки», але маю сподівання що запит
DELETE /playlists/{playlist_id}/tracks
зробить як раз те, що очікується.🔥5👍2⚡1
Короч, я все-таки успішно перейшов повністю на #Nushell. Користування ним реально прискорює мені деякі речі, але не тому, що він там працює якось швидше або дозволяє зробити те, чого не дозволяє зробити #Bash, а просто тому, що я інтуїтивно значно швидше знаходжу спосіб досягти своєї мети саме в ньому.
Я виріс на #DOS та #Windows, тож мене вся ця ваша #unix-ідеологія завжди трохи піддратовувала: зокрема через лицемірність щодо того, наче краще мати на кожну маленьку дію окрему штуку, яка її виконує і яку можна легко компонувати з іншими такими штуками, але на практиці у нас є десяток команд, зате в кожній по сотні
А ось Nushell залетів аж бігом, бо він дуже схожий на мови програмування, якими я й так користуюся. Врешті, як відомо, інтуїція = знання + досвід. Ну й оперувати структурованими даними завжди приємніше, ніж масивом неструктурованого тексту.
Були авжеж і труднощі. Найголовніше: про Nushell ніхто не знає🙂 Тож якщо вам треба якось інтегрувати собі #pyenv чи може #homebrew, то доводиться робити це вручну (а для цього інколи доводиться читати bash-скрипти 😭 ), але в принципі у мене працює все, що мені було потрібне.
І ВСЕ Ж! Найкорисніше покращення, що я колись впроваджував у термінал, насправді працює в будь-якому шелі:
Не дякуйте )
Я виріс на #DOS та #Windows, тож мене вся ця ваша #unix-ідеологія завжди трохи піддратовувала: зокрема через лицемірність щодо того, наче краще мати на кожну маленьку дію окрему штуку, яка її виконує і яку можна легко компонувати з іншими такими штуками, але на практиці у нас є десяток команд, зате в кожній по сотні
--ключів
. Ну короч, не зміг я себе змусити цим користуватися. А ось Nushell залетів аж бігом, бо він дуже схожий на мови програмування, якими я й так користуюся. Врешті, як відомо, інтуїція = знання + досвід. Ну й оперувати структурованими даними завжди приємніше, ніж масивом неструктурованого тексту.
Були авжеж і труднощі. Найголовніше: про Nushell ніхто не знає
І ВСЕ Ж! Найкорисніше покращення, що я колись впроваджував у термінал, насправді працює в будь-якому шелі:
alias учше=exit
Не дякуйте )
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Cіпласпластик
Хотів, було, розповісти вам, як я успішно перейшов з #zsh остаточно на #fish пару тижнів тому, бо останній значно прикольніший: більш людяний синтаксис, легший для сприйняття, ну й в цілому цікавий чи що. Проте на fish я надовго не затримався, бо виявилося…
😁6❤1👀1
Добре, а чи знає хтось якісь українські канали в телеграмі на теми програмування та будь-які дотичні?
У мене наразі аж пʼять є. (Не реклама, бо… не смішіть, яка тут реклама з моєю кількістю підписників). Персональна рекомендація короч:
- @bitethebyte (коли я був молодим та зарозумілим «23-річним сіньйором», цей тіпок вже парив на конференціях щось розумне; ex-CTO kasta.ua).
- @decomplexifier (це я хз хто, але мабуть теж хтось розумний; наразі неактивний щоправда).
- @re_with_arch (теж хз: різко зʼявився та різко зник в телеграмі — давно нічого не пише).
- @VW_Tooltips (ніби земляк, тобто з Харкова).
- @xanf_dev (тямущий тіпок з мого універа; на українську Ілля на жаль не перейшов, але робить свій внесок інакше).
Ще є отакий про суміжні теми: @business_ua. Я підписаний, хоча не читаю.
Якщо ви знаєте ще якісь, напишіть в коментарях будь ласка. Я б підписався, бо нема чого читати, а discoverability в телеграмі — суцільне лайно. (Ще б десь повідсвічувати своїмїб… каналом також, бо якось… 😞 ).
Якщо англомовні є(але не від росіянців) , то теж давайте.
У мене наразі аж пʼять є. (Не реклама, бо… не смішіть, яка тут реклама з моєю кількістю підписників). Персональна рекомендація короч:
- @bitethebyte (коли я був молодим та зарозумілим «23-річним сіньйором», цей тіпок вже парив на конференціях щось розумне; ex-CTO kasta.ua).
- @decomplexifier (це я хз хто, але мабуть теж хтось розумний; наразі неактивний щоправда).
- @re_with_arch (теж хз: різко зʼявився та різко зник в телеграмі — давно нічого не пише).
- @VW_Tooltips (ніби земляк, тобто з Харкова).
- @xanf_dev (тямущий тіпок з мого універа; на українську Ілля на жаль не перейшов, але робить свій внесок інакше).
Ще є отакий про суміжні теми: @business_ua. Я підписаний, хоча не читаю.
Якщо ви знаєте ще якісь, напишіть в коментарях будь ласка. Я б підписався, бо нема чого читати, а discoverability в телеграмі — суцільне лайно. (Ще б десь повідсвічувати своїм
Якщо англомовні є
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
#Airtable мені не дуже подобається, але я в захваті від #lowcode загалом і нерідко продукти з цієї категорії використовую.
Ось подумав, що кіт якийсь перебірливий став: сьогодні він щось їсть залюбки, а завтра навіть не доторкнеться. А як то кажуть:
Тож треба це затрекати. Можна в екселі авжеж, але не настільки наглядно. Або в MS Access, але не настільки зручно. А тут витратив 30 хвилин — і в результаті отримав мінімальну БД з декількома вьюшками, формами, календарем тощо. А більше нічого і не треба!
Якось напишу ще про інші свої юзкейси low-code, та чому я не напишу натомість прогу чи скрипт. А ви користуєтеся?
Ось подумав, що кіт якийсь перебірливий став: сьогодні він щось їсть залюбки, а завтра навіть не доторкнеться. А як то кажуть:
You can't manage what you can't measure.
Тож треба це затрекати. Можна в екселі авжеж, але не настільки наглядно. Або в MS Access, але не настільки зручно. А тут витратив 30 хвилин — і в результаті отримав мінімальну БД з декількома вьюшками, формами, календарем тощо. А більше нічого і не треба!
Якось напишу ще про інші свої юзкейси low-code, та чому я не напишу натомість прогу чи скрипт. А ви користуєтеся?
🔥4😁1🤯1👀1
Та в принципі чого далеко ходити. Ось буквально щойно доколупав Power Automate. Це теж #lowcode, але від Microsoft.
Я його давно вже потроху почав використовувати для деяких оптимізацій робочих процесів, особливо нудних. А цього разу ще нафігачив UI-ку в MS Power Apps. Там щось схоже на редактор форм у Visual #Basic, тільки гірше, а код треба писати на Power Fx.
Задача наступна. Як виявилося, в GitHub немає можливості реквестити доступ в організацію💩 (ну або я сліпий). А я хочу, щоб будь-хто з компанії міг в неї заджойнитись без зайвих питань. При цьому моя велика компанія є частиною ще більшого ентерпрайзу, решті співробітників якої я так просто доступ не даю.
Отож у Power Apps накидав декілька скрінів (привітальний + скрін з текст-філдом та однією кнопкою + результати). Кнопка запускає флоу в Power Automate, який через Microsoft Entra перевіряє належність людини до компанії й робить запит в апішку ґітгаба, а на додачу ще й в екселечку складає успішні запити з датою та часом. На жаль не збагнув, як по імейлу отримати айдішнік людини в нашому GitHub Enterprise, тож наразі просто питаю у людини її юзернейм (в тому самому текст-філді).
На виході маємо програму, яка відкривається у вебі, на мобілках, інтегрується в MS Teams та в купу інших місць за потреби. Часу на це пішло вже більше, ніж пів години — десь тиждень я в цьому вʼяло порпався вечорами і нарешті зробив.
Процес не надто приємний, бо це Microsoft в найкращих своїх традиціях: GUIDʼи в помилках, коннекшн між апкою та флоу створюється в 20-й підменюшці 10-ї сторінки якоїсь зі 100 корпоративних систем тощо. З іншого боку з недавніх пір є Copilot, в який тупо пишеш: «Хочу отаке й отаке», — а воно генерує тобі UI-ку або ланцюжок з блоків. Не 100% робочі, втім вже дещо.
Подобається мені ця штука тому, що повністю закриває питання копирсання в API-шках та, найголовніше, боротьби з авторизаціями. Не уявляю, скільки б мені довелося їбатися зі всіма тими Kerberos та що там ще, якби не ця штука.
Але для особистих потреб використовую кращі тули🙂
Я його давно вже потроху почав використовувати для деяких оптимізацій робочих процесів, особливо нудних. А цього разу ще нафігачив UI-ку в MS Power Apps. Там щось схоже на редактор форм у Visual #Basic, тільки гірше, а код треба писати на Power Fx.
Задача наступна. Як виявилося, в GitHub немає можливості реквестити доступ в організацію
Отож у Power Apps накидав декілька скрінів (привітальний + скрін з текст-філдом та однією кнопкою + результати). Кнопка запускає флоу в Power Automate, який через Microsoft Entra перевіряє належність людини до компанії й робить запит в апішку ґітгаба, а на додачу ще й в екселечку складає успішні запити з датою та часом. На жаль не збагнув, як по імейлу отримати айдішнік людини в нашому GitHub Enterprise, тож наразі просто питаю у людини її юзернейм (в тому самому текст-філді).
На виході маємо програму, яка відкривається у вебі, на мобілках, інтегрується в MS Teams та в купу інших місць за потреби. Часу на це пішло вже більше, ніж пів години — десь тиждень я в цьому вʼяло порпався вечорами і нарешті зробив.
Процес не надто приємний, бо це Microsoft в найкращих своїх традиціях: GUIDʼи в помилках, коннекшн між апкою та флоу створюється в 20-й підменюшці 10-ї сторінки якоїсь зі 100 корпоративних систем тощо. З іншого боку з недавніх пір є Copilot, в який тупо пишеш: «Хочу отаке й отаке», — а воно генерує тобі UI-ку або ланцюжок з блоків. Не 100% робочі, втім вже дещо.
Подобається мені ця штука тому, що повністю закриває питання копирсання в API-шках та, найголовніше, боротьби з авторизаціями. Не уявляю, скільки б мені довелося їбатися зі всіма тими Kerberos та що там ще, якби не ця штука.
Але для особистих потреб використовую кращі тули
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👀1