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

Мої емоджі:
https://t.me/addemoji/AdaptiveDevIcons
https://t.me/addemoji/VehicleBrands
Download Telegram
А які взагалі юзкейси шел-скриптів? Нащо люди їх пишуть?

Для автоматизації, ага, але автоматизації чого?

Наприклад, у мене завжди виникала проблема початкового налаштування операційної системи після установки. Ну, ви знаєте… Поставити потрібні програми, підкинути пару конфігів, створити якісь змінні оточення, прописати шляхи. І я, коли ще був на вінді, почав з простого BAT-файлу, який згодом перетворився на #PowerShell-скрипт. Потім набридло це підтримувати авжеж, бо я вінду з нуля ставив раз на пʼять років.

Однак зараз у мене є три серваки: один хатній NAS та 2 VPS на погратися — і проблема знов виникла. Найгірше, це коли треба щось змінити в конфігурації, а ти вже не памʼятаєш, як взагалі щось налаштовував (бо знов-таки робиш це раз на декілька років). Отож, щоб з цим розібратися, я нарешті опанував #Ansible на базовому рівні минулого тижня, про існування котрого знаю давно, але все ліньки було зайнятися. І це прям гейм-чейнджер — я тепер навіть локально буду все ним налаштовувати, мабуть.

З адмініструванням розібралися. Білди? Знов-таки, краще використовувати нормальну білд-систему, яке не тільки більш контрольована, ніж шел-скрипт, але й швидше працюватиме вірогідно.

Обробка даних? Не можу уявити випадок, коли шел-скрипт став би правильнішим рішенням за написання простої програми на #Python.

Лишаються тільки ad hoc адміністрування якесь (хоча в залежності від деталей, може навіть тут краще використати Ansible) та, власне, композиція пайпа з декількох тулів в одній команді. І тут якнайкраще показує себе згаданий в попередньому дописі #Nushell.

Які ваші юзкейси?
👍1👀1
Cіпласпластик
Про браузери Не сказати, що Vivaldi (зображення №1) мене чимось не влаштовує, але спробував я врешті Arc (зображення №2). Кардинально нового порівняно з тим, чого я можу досягти з Vivaldi, він не пропонує. В мене завжди мільйон сторінок в браузері, тож з…
Нікому не треба інвайт на бетку #Arc під вінду? Є пʼять штук. Окей, вже немає.
Вони пишуть, що (тільки) сьогодні можна пропушити, щоб не чекати довго. Під мак хз, чи досі потрібен інвайт, чи воно вже загальнодоступне. Але якщо що, то також можу заінвайтити. Тільки мило ваше треба (краще в приват).

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

З технічно цікавого: чув, що його оболонка написана повністю на Swift, тож їм довелося попотіти, щоб примусити це працювати на вінді.
👀1
Ті, з ким ми знайомі, знають, що я полюбляю накупити непотреба на всі гроші: від ножів до електронних гаджетів (ну, принаймні так це виглядає, мабуть, хоча здебільшого це зважені покупки, а не імпульсивні). Втім насправді навіть це в минулому — після 30 доводиться вже якось планувати бюджет.

Інша проблема — стало нудно, ліниво й нецікаво пробувати щось «нове». І нове тут саме в лапках, бо з часом починаєш зауважувати, що більшість «інновацій» ти вже десь бачив. Із софтом ще гірше — навіть оновлюватися нерідко лячно, бо ризик щось поламати давно переважає хвилювання від нової фічі. Тож виходить, що з 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 🤔 А ми з вами знаємо, що зараз всі LLM доволі збиткові, навіть ті, що з передплатою. Бізнес з таким пристроєм не побудуєш короч. А значить, це не є їхній продукт. Я вангую, що Rabbit R1 зробили таким помітно яскравим та взагалі випускають з однією метою: отримати більше користувачів, які навчатимуть їх LAM.

Вони до речі оприлюднили днями інфу про співпрацю з Perplexity. Я про останніх майже нічого не чув. Памʼятаю тільки, в них ніби Безос інвестував (бо Алексу свою проїбав 😂). Але ось як раз десь пару днів користуюся. Непогана штука, коли треба знайти та узагальнити інформацію з якогось питання з декількох джерел. Фактично те, чим мав би стати Bing з їхнім Copilot.

Цікавий момент №2. Як виявилося, передзамовникам R1 з перших 10 батчів (по 10к одиниць, я так розумію) Rabbit дає ваучер на 200$ для #Perplexity 🤑 Тобто фактично річну передплату. Одразу дає — у мене вже є. З розрахунку стандартних 10 місяців + 2 безплатних виходить 20$ на місяць, тобто та ж передплата на ChatGPT Plus. Іншими словами, сам пристрій — «безплатний» 😅

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

І мене так задовбало для будь-чого анлокати телефон, зачиняти останню відкриту прогу, шукати потрібну, запускати її, шукати та робити щось вже в ній — словами не передати! (Хоча чувак на імʼя Golden Krishna зміг у своїй книзі до речі). Тож вирішив я спробувати мати окремий пристрій для цього. Потім розповім вам, чи це скам.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔21👀1
#Qt 😢
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7👍2🤯1💯1
Якщо ви користуєтеся #Spotify, то скоріш за все відчуваєте той самий біль, що і я: щотижня в кляті рекомендації на кшталт Discover Weekly потрапляє росіянське лайно: якесь виття однотипне, надиктовка віршів під музику тощо. Не брехатиму, наче раніше не слухав росіянське, але останні роки аж тіпає від нього. У мене вже настільки чутливість розвинена, що я їх навіть англійською одразу розпізнаю в більшості випадків.

Виявляється, проблема загальна. У когось терпець урвався, і він звернувся до Spotify. Якщо є змога, поставте там хоча б 👍, будь ласка. А то можна і коментар лишити, як натхнення прийде.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
До речі, якщо вже мова зайшла. На останньому The Game Awards, який відбувся в грудні 2023-го, традиційно анонсували багато нових ігор. Цього разу, до речі, кількість тих, хто дивився церемонію в прямому ефірі, була більша, ніж у всіх Оскарів, Золотих Глобусів та інших кіношних заходів разом узятих. Але мова не про те.

Там японка анонсувала свою гру з отаким бадьорим та динамічним трейлером. Зацініть 😉

Хз, що буде за гра, але саундтрек — це ONUKA авжеж. Було дуже приємно почути )) Посилання на повну пісню.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Доки дивився відос про модулі в C++, на які я чекав з часів C++0x (спойлер: все сплюндровано — чи то досі, чи зовсім 🤷🏻‍♂️), згадав про таку білд-систему як xmake, що походить, вірогідно, з Китаю. Вона базується на #Lua, як і Premake, але якось вже розвинутіше виглядає. За ті два роки, котрі я її ігнорував, вони додали підтримку купи мов на кшталт #Zig, #Nim або #Rust і навіть зробили свій пекедж-менеджер. Плюс Lua сама по собі доволі проста та приємна — точно краща за CMake. Може колись нарешті знайду щось, що задовольнить мене хоча б на рівні #Qbs, щоб нарешті від нього відмовитися.
👀1
За якимсь бісом створив перелік майже всіх штучних мов (та форматів — а то зараз казатимете мені, що JSON не мова), якими я хоч раз щось писав свідомо та власними руками (окрім хеллоу ворлдів та прикладів з мануалів авжеж). Користі з цього небагато, але вийшло значно більше, ніж я очікував. Дивовижно.

Про деякі з них досі згадую з теплом у серці ) Не про FoxPro безумовно 😅
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
Натрапив вчора на GitButler. Автори його називають ґіт-клієнтом з можливістю «працювати в декількох гілках одночасно». І якщо позбутися мішури на кшталт фенсі UI та ШІ-шки, що пише за вас коміт-меседжі, то виникає підозріле відчуття дежавю. В Меркуріалі, який на відміну від ґіта мені завжди подобався, вже була схожа штука під назвою mq. Це щось схоже на ґітовий стейджинг, тільки багаторівневий, адже дозволяє робити цілі ланцюжки окремих маленьких патчів.

Інколи замислююся, чому перемогли C, а не Pascal (або LISP 😱), Git, а не Mercurial, тощо, і яким би був світ, де лідерство здобули зручніші тули, зроблені для людей, а не кулхацкерське лайно для вийобщиків з великим его. А ви як вважаєте?)
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 користуюся.

Впевнений, ви знаєте якісь ще альтернативи. Може щось зручніше є?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Я інколи кажу, що C++ — це хороша мова з поганими дефолтами. Маю на увазі, що мова дуже потужна і дозволяє робити купу всього, але програміста при цьому примушує тримати купу деталей в голові, щоб не схибити десь.

Нюанс полягає в тому, що мови з хорошими дефолтами я поки не бачив, хоч деякі з них намагаються виправити бодай якусь маленьку проблему, що вже непогано. Як в тому ж #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
👍42
Cіпласпластик
Якщо ви користуєтеся #Spotify, то скоріш за все відчуваєте той самий біль, що і я: щотижня в кляті рекомендації на кшталт Discover Weekly потрапляє росіянське лайно: якесь виття однотипне, надиктовка віршів під музику тощо. Не брехатиму, наче раніше не слухав…
#Ідея для стартапа:
сервіс, в який ви логінитеся своїм обліковим записом #Spotify, щоб він щотижня пробігався по «Тижневій добірці», перевіряв за допомогою #ШІ-шки кожного виконавця, чи не має той звʼязків з рашкою, та автоматично дизлайкав тих, хто має.

Не знайшов в APIʼшці спотіфая можливості ставити «dislike», бо це якась фішка чисто «Тижневої добірки», але маю сподівання що запит DELETE /playlists/{playlist_id}/tracks зробить як раз те, що очікується.
🔥5👍21
Короч, я все-таки успішно перейшов повністю на #Nushell. Користування ним реально прискорює мені деякі речі, але не тому, що він там працює якось швидше або дозволяє зробити те, чого не дозволяє зробити #Bash, а просто тому, що я інтуїтивно значно швидше знаходжу спосіб досягти своєї мети саме в ньому.

Я виріс на #DOS та #Windows, тож мене вся ця ваша #unix-ідеологія завжди трохи піддратовувала: зокрема через лицемірність щодо того, наче краще мати на кожну маленьку дію окрему штуку, яка її виконує і яку можна легко компонувати з іншими такими штуками, але на практиці у нас є десяток команд, зате в кожній по сотні --ключів. Ну короч, не зміг я себе змусити цим користуватися.

А ось Nushell залетів аж бігом, бо він дуже схожий на мови програмування, якими я й так користуюся. Врешті, як відомо, інтуїція = знання + досвід. Ну й оперувати структурованими даними завжди приємніше, ніж масивом неструктурованого тексту.

Були авжеж і труднощі. Найголовніше: про Nushell ніхто не знає 🙂 Тож якщо вам треба якось інтегрувати собі #pyenv чи може #homebrew, то доводиться робити це вручну (а для цього інколи доводиться читати bash-скрипти 😭), але в принципі у мене працює все, що мені було потрібне.

І ВСЕ Ж! Найкорисніше покращення, що я колись впроваджував у термінал, насправді працює в будь-якому шелі:
alias учше=exit

Не дякуйте )
Please open Telegram to view this post
VIEW IN TELEGRAM
😁61👀1
Добре, а чи знає хтось якісь українські канали в телеграмі на теми програмування та будь-які дотичні?

У мене наразі аж пʼять є. (Не реклама, бо… не смішіть, яка тут реклама з моєю кількістю підписників). Персональна рекомендація короч:
- @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 загалом і нерідко продукти з цієї категорії використовую.

Ось подумав, що кіт якийсь перебірливий став: сьогодні він щось їсть залюбки, а завтра навіть не доторкнеться. А як то кажуть:
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 та що там ще, якби не ця штука.

Але для особистих потреб використовую кращі тули 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👀1
Cіпласпластик
Та в принципі чого далеко ходити. Ось буквально щойно доколупав Power Automate. Це теж #lowcode, але від Microsoft. Я його давно вже потроху почав використовувати для деяких оптимізацій робочих процесів, особливо нудних. А цього разу ще нафігачив UI-ку в…
Microsoft не була б Microsoft, якби все було так легко. Як виявилося, прога, що має вирішувати питання надання «безумовного» доступу, сама по собі не є доступною без окремого запиту з боку користувача )) Шукатиму спосіб, як це зашарити на всіх 😩
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4
Зненацька натрапив на переклад книги «Learn You a #Haskell for Great Good!» (також відомої як LYAH) українською 🇺🇦. Я читав її двічі й досі вважаю найкращою книгою з хаскелю для початківців (чого на жаль не можу сказати про аналог для ерлангу). Той, хто знає мене довше, ніж 10 років, гарантовано чув про неї теж, бо я всіх тоді хаскелем запарив ))

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

Офіційний сайт перекладу тут, а оригіналу — тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51👀1