Вхід Реєстрація
Реклама
Ваше рекламне місце
Забронюйте цей слот без конкуренції на обраний період.
Купити рекламу →
Логотип телеграм спільноти - Стендап Сьогодні
Додано 06 гру 2025

Стендап Сьогодні

@stendap_sogodni
Кількість підписників: 567
Фото: 181
Відео: 14
Посилання: 1,110
Опис:
👨‍💻 Програмування та більше. Тільки власний контент. Пости щодня. Сторінка автора: https://leonid.shevtsov.me Компанія, де він працює: https://railsware.com

👥 Кількість підписників

567
Середній/День:: +1
Середній/Тиждень:: +3
Середній/Місяць:: +20

👁️ Середній перегляд на повідомлення

473
Середній/День:: 512
Середній/Тиждень:: 464
ERR: 83.42%

📊 Кількість повідомлень на день

0.2
Останній день: 0
Середнє за тиждень: 0.1
Середнє за день: 0.2

Історія зміни статуса

Офіційно не підтверджена 2025-12-06

Стіна

Статистика telegram каналу

👁 639 26-03-03 07:11
Знову з робочим ноутбуком#MacMiniВДорозіЗа два з гаком роки робота за стаціонарним Mac Mini мені добряче набридла. Цього тижня, нарешті, приїхав на заміну новий Macbook Pro (той що 14" на M5, якщо вам таке цікаве.) Здивувався, наскільки я цьому щасливий.Для початку, я знову можу працювати на дивані! Чи на кухні! (Чи в гамаку!) Такі дрібниці, але як воно приємно. Особливо для дзвінків та інших неконцентрованих задач.Нагадаю, що Mac Mini я завів щоб краще розділяти роботу та життя. Не працює. Певно, якби в мене був окремий фізичний офіс, то був би ефект. А поки цей робочий комп стоїть за тим же ж столом, що й "домашній", в тій же ж кімнаті — не відчуваєш різниці. Тільки ускладнення. Хоча, окремий компʼютер для роботи в мене залишається. Розділення контекстів таким чином — і корисно, і безпечно.Також я знову можу принести ноутбук в кафе чи до коворкінгу. Якщо спосіб життя не дозволяє з 9 до 5 сидіти за одним столом — то стаціонарне робоче місце тільки обтяжує. Отже, не з того почав! Хоча й розклад дня в мене у 2023 був більш спокійний.Також, з більш практичних аспектів — в ноутбука є батарея! Більше не потрібний під столом UPS, та я спокійно можу працювати з відключенням хоч цілий день, і це теж мінус величезний стрес.З плюсів Mac Mini - хіба що його компактність. Тут питань нема. (Особливо з новішими моделями! Вони ж як Raspberry Pi!) А якщо хотіли огляду нового макбуку — здивував своєю товщиною, бо я вже звик до Air, а тут такий бутузик. Навіть значно товще за моделі з початку 2010-х. А так ну макбук та й макбук.👑 Patreon ︙ BuyMeACoffee
👁 550 26-02-28 11:34
#ПомічникШІРівно два роки тому (навіть не знаю, як такі збіги відбуваються! магія!) я писав про керування водяним охолодженням — а саме, програму FanControl для Windows.Досі нею користуюся, програма гарна. Я її запускаю як сервіс за допомогою іншої чудової програми - Non-Sucking Service Manager (NSSM). NSSM вміє будь-яку програму зробити системним сервісом — а значить, вона не буде маячити на робочому столі та буде надійно запускатися та перезапускатися.От тільки змінювати конфігурацію такої загорнутої FanControl стало незручно. Треба зупинити сервіс, відкрити у звичайному режимі, відредагувати, закрити, запустити сервіс наново... А ще вона ж не під головним користувачем системи, а під адміністраторським. А Windows не дає одночасно зайти двома користувачами, тож потреба все зупинити перетворює навіть тривіальну зміну в справу хвилин на 20.Звучить як ідеальна задача для агентів! В мене вже налаштований SSH, то й кажу "от комп, на ньому FanControl, збільш стартову швидкість помпи на 3%." Хотів перевірити, чи воно зрозуміє стільки деталей.З SSH проблем ніяких. Чудово, що агент розуміє командний рядок Windows та PowerShell значно краще за мене. (Окрім: SSH не мав authorized_keys. А для того, щоб агент зробив все, потрібний безпарольний доступ. та виправлення цього навіть з агентом зайняло значно більше часу, ніж решта справи. Як завжди. Але принаймні це разове покращення.)Далі, на диво без жодних інструкцій LLM знайшла конфігураційний файл FanControl. Я сам не знав, де він є! Звісно, знайти можливо, та й програма має відкритий код, але ж сам би я витратив на це більше пари хвилин. Тут теж нюанс: виявилося, що в FanControl є чи то два місця з конфігурацією, чи то воно змінилося, а старий файл залишився, але з першої спроби ми відредагували не той файл та зміни не підтягнулися. Коли зрозумів, що помпа працює, як раніше — за допомогою того ж агента знайшов помилку.Місце, яке треба змінити, агент теж знайшов серед багатьох профілів вентиляторів. Конфігурація у JSON, зате потрібний параметр є однією з двох координат ламаної функції на кшталт ["50,35", "70,100"] - що значить, до 50 градусів увімкнути помпу на 35 відсотків, до 70 поступово збільшувати до 100, та там і тримати. От, агент зрозумів, що перше значення потрібно замінити на 50,38. Ну, за тим він почав вигадувати скрипти PowerShell для часткової заміни рядка в файлі, що ніяк не виходило. Аж поки я не сказав "та скопіюй вже файл на нашу машину, виправ та поверни на місце".Ну й з перезапуском сервісу все зовсім просто та прямолінійно.Чи заощадив я тут час? Якщо "чистого часу", то, певно, так. Але також помічаю, що завжди знаходиться, на чому зачепитися. З агентами — зазвичай на дрібних з першого погляду недоліках виконання та особливо автоматизації.👑 Patreon ︙ BuyMeACoffee
👁 484 26-02-22 14:50
Zigbee: дійсно гарно#РозумнийБудинокКоли я майже рік тому писав про Zigbee - то не мав ніякого досвіду. Відтоді в моєму розумному будинку зʼявився й цей протокол, тож ділюся враженнями.По-перше, якщо в тебе вже є HomeAssistant, то підтримка Zigbee додається через USB-адаптер - наприклад, Sonoff ZBDongle-E. А не окремою коробочкою. Це відразу набагато краще коробочки, бо звʼязок HomeAssistant з пристроями Zigbee є безпосереднім та не покладається на Wi-Fi чи навіть Ethernet.(Бо, якщо подумати, як Wi-Fi, так і всі протоколи з коробочкою-шлюзом ходять через роутер. Це і повільніше, і додає точку відмови.)Підключення пристроїв безболісне та нагадує Bluetooth, тільки без кодів підтверджень. Відбувається прямо з HomeAssistant. Далі пристрій стає частиною мережі. "Мережа", до речі, визначається ключами доступу — які дуже важливо зберегти. В мене один з пристроїв під навісною стелею, не хотілося б туди лазити, щоб привʼязувати його наново.Також приємною несподіванкою було те, що мої лампи Philips Hue підтримують Zigbee. (І навіщо я той міст Philips Hue Bridge купував?) От прямо береш їх та спарюєш із HomeAssistant. Так само і пульти до тих ламп. Окрім простоти, воно стало надійніше.Порівняно з Wi-Fi, в цілому мережа надійніша. Зокрема тому, що багато пристроїв є ретрансляторами — наприклад, розетки. А ще вона безпечніша, бо у пристроїв немає прямого доступу як до інтернету, так і з нього. Мені це значно більше подобається, ніж віддавати кожній іграшці ключі від вайфаю.Так що якщо ти вагаєшся, раджу вкластися один раз в цю екосистему — воно того варте.👑 Patreon ︙ BuyMeACoffee
👁 494 26-02-21 15:21
Я повернувсяЗнову всім привіт! Взяв собі відпустку від каналу, щоб зрозуміти, що від нього хочу та куди воно все рухається. Зробив висновок: змушувати себе писати щодня, коли немає про що, або часу в добі ніяк немає — того не варто. Тільки демотивує. Тож марафон у три з половиною роки закінчився. Отже, постів буде може й не так багато, зате всі вони будуть про щось цікаве.Ще треба було переосмислити використання LLM. Ні, не в каналі (сюди мені генерувати тексти просто не цікаво.) Але в роботі я користуюся LLM повсякденно, та довелося самого себе переконати, що це робить з мене кращого інженера, аніж гіршого.Я спостерігаю дві критики LLM. Перша - LLM постійно помиляються. Друга - LLM все роблять самі. На мою думку, це дві сторони одного нерозуміння того, що LLM - це лише інструмент, хоч і дуже потужний. Приділиш йому належну увагу — отримаєш гарний результат.Це як перфоратор. Ти пробував безконтрольно довбати стіну перфоратором? Він такої біди наробить, йойой. Перфоратор треба тримати впевнено. І тоді виявляється, що ти можеш рухатися небаченим темпом, робити складніші задачі. Підвищити свій рівень абстракції. Отак і тут.В мене таких "складніших задач" безліч, як на роботі, так і для себе. От, сьогодні. Давно хотів зібрати відео наших танців з різних груп в телеграмі. Робити це вручну — я не витримаю. Писати для того скрипт вручну — витратити день на спроби, ще й без гарантії результату.А LLM... За 10 хвилин діалогу зробило мені на Go утиліту, яка заходить моїм користувачем та завантажує всі відео з обраної групи. Та ще й з діапазоном дат та красивими іменами файлів. Ось код, я його навіть і не читав ще.І задача розвʼязана. І день вільний. А якщо цілий день витратити, то можна прямо серйозний застосунок запустити — але про це не сьогодні.👑 Patreon ︙ BuyMeACoffee
👁 653 26-01-23 20:40
Як я робив MCP для Jira#ПомічникШІОК, ще більше заглиблююся в переконанні, що власні, доморощені MCP підіймають роботу з агентом до наступного рівня ефективності.Вчора треба було почистити беклог в #Jira. Я вже не раз писав про свої спроби щось там оптимізувати. Найкращим поки підходом був набір збережених запитів JQL - мої відкриті задачі, задачі, що очікують тощо. Мені залишалося пройтися по нім та опрацювати.Але навіть так, робота з Jira залишалася нудним та неприємним обовʼязком. Тому (і це починає бути патерном), відкриваю Cursor і кажу: ось в мене є acli, давай, проаналізуй все що мене стосується.Він поколупав документацію до acli всілякими викликами acli jira --help і так далі. Потім витягнув десь ті ж самі результати, що і я раніше. Але різниця в тому, що LLM на ходу може згрупувати ці результати, оформити, та робити над ними дії. Так, перше, що я зробив — це сказав "переведи все, що в Ready for Release понад місяць, у Closed". (Інфраструктурні задачі самі не закриваються.) І оце вже дійсно потужно!Поробив ще трохи, а потім кажу — ми тут розібралися, як працювати з Jira через acli, збережімо інструкцію в файл. (Це дуже корисний хід, часто так роблю.) А потім думаю... ну якщо вже інструкція є — зроби з неї кілька команд. То й зробив на кшталт /jira-my-tasks і так далі.От сиджу сьогодні з тими командами, але річ у тім, що команди (наскільки я знаю) запускаються явно мною, а не агентом в процесі інших операцій. Тож, нарешті, кажу "а тепер — роби з команд MCP!" Ну то й він зробив малесенький MCP на Python, який вміє робити ті самі виклики acli.І тепер, нарешті, я можу писати складні запити, як-от "створи для цього чату задачу у відповідному епіку". Та агент здатний перелічити епіки, знайти той, що найбільше має сенс, та вкласти в нього задачу. Круть! А якщо мені щось не подобається, я можу швидко внести зміни простим текстом.Ще тут висновок. LLM найкраще розкриваються там, де багато контексту, складна послідовність дій. Поки ти робиш одиничні зміни — може так виглядати, що LLM це зайве ускладнення, та, певно, так воно і є. Тому раджу пробувати задачі вищого порядку — сміливіше!👑 Patreon ︙ BuyMeACoffee
👁 535 26-01-22 16:40
Досвід використання EcoFlow PowerOceanПісля відключень влітку 2024 я вирішив підійти до резерву живлення серйозно та замовити EcoFlow PowerOcean. Це резерв живлення, що стаціонарно підключається до щитка. В мене однофазний, а є ще трифазний.Зовнішньо, дуже приємно зроблено. PowerOcean складається в стопочку з батарей, а згори ставиться інвертор. В мене батарея наразі одна — виходить, 5 кВт-год резерву із 6 кВт потужністю. Все це достатньо компактно. Встановив — фізично — я його сам, без особливих труднощів. Двома болтами кріпиться на стіну, плюс стоїть на підставці. Вписалося в коридорі навіть красиво.До щитка підключав електрик. Хоча схема підключення — нічого складного. Відразу має сенс вивести бойлери поза резервом — бойлер сам собі батарея, а EcoFlow посадить швиденько. Окрема історія — додати лічильник витрат, яких в комплекті з PowerOcean було аж два, на вибір: скрізний та з котушкою.Значно цікавіше ввести його в експлуатацію. Для того в Україні доведеться зареєструватися як компанія-інсталятор через застосунок EcoFlow Pro. На щастя, це процес прямолінійний. Ну, хіба підтвердження на пошту надходить не відразу. В мене було більше проблем через те, що я хотів уникнути "інсталяції": в застосунку EcoFlow прилад вже зʼявився, тільки не вмикав резерв. А от виявилося, що це все ж обовʼязково та відразу після "інсталяції" всі функції увімкнулися.PowerOcean підʼєднується до Ethernet та Wi-Fi, але я б радив залишити модуль Bluetooth також увімкненим, бо він дає доступ до приладу навіть якщо роутер не заживлений. А воно всяко буває. За досвідом.А найбільше в мене було проблем з тим, що зарядка йшла тільки на 600 Вт. Обшукав вже весь застосунок, та ще й схеми підключення передивлявся. Нарешті, знайшов, що для зарядки від мережі потрібно створити "графік зарядки", вказати в ньому час — від 0 до 24 годин та потужність — максимальну. І з таким "графіком", нарешті, прилад розкрився на повну. Абсолютно неочевидно.Далі... З наявною напругою в мережі треба ставити стабілізатор. Стандартно PowerOcean вибиває вже на 201V - але це можна змінити в налаштуваннях мережі. Втім, низька напруга інвертору загрожує. Я спочатку думав — як це так — низька та загрожує? Проте, що менше напруга, то більше струм при тій же ж потужності — а саме струм і спалить зрештою ваш інвертор. Так що закладайте в бюджет відразу. Плюс, стабілізатор треба брати як мінімум у 2 рази потужніше за інвертор, знову-таки через те, що потужність заявляється при ідеальній напрузі.Ось так. Щось, гадаю, в нас такі агрегати рідко купують — але я своїм задоволений. EcoFlow є EcoFlow.👑 Patreon ︙ BuyMeACoffee
👁 444 26-01-21 21:31
OpenSearch - база даних, яка не дуже шанує свої даніОт цікаво ж, що в #OpenSearch/ElasticSearch головним змістом бази є індекси, а не дані.Дані, тобто документи, можна взагалі не зберігати. Є режим, коли документи не зберігаються, а реконструюються з індексів - synthetic _source. Або взагалі ніяк не зберігати — повертати тільки ID. Пішло це, як я розумію, від того, що ElasticSearch починалася як рушій пошуку для іншої бази.Але навіть коли ми зберігаємо документи, вони займають другорядну посаду. Доступ до них повільний. Як тільки ми спираємось на інформацію, недоступну з індексів — наприклад, робимо пошук за скриптом - запит уповільнюється в рази.Також стикнувся з тим, що навіть просто запит, що повертає велику кількість документів — ненормально витратна операція. Тобто якщо хочете забрати з OpenSearch дамп чи щось схоже, краще обрати невеликий розмір сторінки. Так, запитів зробите більше, зате вони економніше використають памʼять та тому загальний час буде менше.Тобто шукати ми можемо багато, а читати — менше. Ще одна цікава відмінність від типової бази даних. Та дивись, для деяких сценаріїв це дуже вигідно — наприклад, якщо документів дуже багато, але цікавлять нас одиниці. Як-от типове зберігання журналу. А для інших сценаріїв — взагалі не підходить.👑 Patreon ︙ BuyMeACoffee
👁 438 26-01-20 15:51
Що там у MCP, взагалі?Спілкувалися про реалізацію мого саморобного MCP, та мені захотілося хоч трохи заглибитися в те, що ж воно в принципі з себе являє.Цікава технологія LLM, взагалі, в неї спільного із традиційними, знайомими програмами, як в хімії неорганічної та органічної. Жере текст, плюється текстом у відповідь. На тому побудовано 100% всіх інструментів, бо нічого іншого просто немає.У агентному режимі, наприклад, моделі навчені плюватися певними командами, коли це доречно. Тільки вони все одно видають виклик команди в тексті. Потім програма-обвʼязка — яка й називається "агент" - парсить вихід, помічає в ньому розмітку команди та виконує її. В цілому, для LLM що згенерувати сонет в стилі Шекспіра, що виконати команду оболонки — задачі однакові.Якщо в моделі є можливість виконати код оболонки, то технічно вона вже здатна робити майже будь-які дії. Довгий час саме так я ними й користувався. Але. В такого способу є стеля. Команди стають надто складними для практичного використання. В них і помилитися легше, і контекст вони забивають дедалі більше.Взагалі, LLM ніколи не варто використовувати для задачі, яку може виконати звичайна програма. Та MCP є звичайною програмою, що абстрагує складніші задачі та робить це з алгоритмічною точністю.Model Context Protocol надає LLM інструменти, де кожна команда виконує більше логіки, має складніший стан тощо. Самі команди тривіальні: довільний JSON на вхід, довільний JSON на вихід. До того MCP містить можливість перелічити наявні команди та інші зручності.Все це звучить трохи зайвим. Ну хіба в нас недостатньо протоколів та схем? Сама специфікація MCP порівнює стандарт із USB-C. Може, не найпозитивніше порівняння. Чи нагадує MCP xkcd 927? Авжеж.Але з усім тим, MCP є технологією теперішнього часу. Такий вже zeitgeist. Згенерувати обгортку для вашого API, випустити у світ, зловити трошки уваги на хвилі ШІ. Навіщо нам суворі специфікації, якщо "текст в текст" достатньо добре працює?👑 Patreon ︙ BuyMeACoffee
👁 391 26-01-19 21:37
Динамічність — абстракція, яка течеХотів прокоментувати пост з Федиверсу. Якщо коротко: чому в #JavaScript звернення pixels[i*2+1] буде швидше за pixels[i].x? Ну тобто, чому масив значень швидше за масив обʼєктів зі значеннями?Якби це був C чи навіть Go, то відповідь зрозуміла. Там масив — це блок даних в памʼяті, а обʼєкти — окремі блоки. Це зрозуміло, наприклад, тому, що для зміни довжини масиву його потрібно виділяти наново. Операції з безперервним блоком памʼяті - швидше. Але ж JavaScript дозволяє нам взагалі додавати елементи в будь-який індекс масиву, не зважаючи на його довжину. Тобто масиви в JavaScript - це очевидно не просто блок памʼяті. Чому ж все одно масив швидше?Про представлення даних в JS я вже писав. Навіть в JS масив буде ну в гіршому випадку набором блоків памʼяті. А ще в тому пості є посилання на розгорнуту відповідь про те, що V8 та інші рушії здатні оптимізувати доступ до масиву десь до рівня мови зі статичною типізацією. А от кожний обʼєкт в JS зберігається в памʼяті окремо. Наскільки я знаю.(Хто працює з C чи Go підтвердить — що там як раз легко зробити масив структур, який буде такий саме швидкий, як "голий" масив. Якщо це були структури, а не вказівники. Де-де, а в C оголошення структур для споживання блоків памʼяті — класична техніка.)В JavaScript можна піти далі та зробити масив типу Float64Array. От він вже точно буде єдиним блоком памʼяті, як в статичній мові — з такими саме обмеженнями. Якби я робив щось з графікою, то, мабуть, його б і використовував... якщо без нього було б повільно, не треба оптимізувати наперед!До чого я це все... Навіть в мові, яка не змушує тебе думати про розмір масиву чи типи даних, все одно різні мовні конструкції будуть швидше чи повільніше — незалежно від алгоритмічної складності.👑 Patreon ︙ BuyMeACoffee
👁 466 26-01-16 22:13
Думати та діятиЗловив себе на тому, що справи зрушуються тоді, коли починаєш діяти.Чи це очевидно? Ну якщо дивитися в ретроспективі, то може й так. Як кажуть англійською, hindsight is 20/20. Можна скільки завгодно думати та планувати — від того у світі нічого не зміниться.Ну, тільки в мене постійно зʼявляється причина не діяти. Давно вже припинив вірити класичному "немає часу". Не тому, що він є — навпаки, часу завжди немає, а все-таки, якісь справи робляться. Час то взагалі ілюзія.Загалом, в мене, діяти заважає те, що справа не продумана. Тобто маємо певну пастку: щоб діяти, треба спочатку подумати. Якщо довго думати, знову нічого не зробиш.Та, наступна знахідка: скільки не продумувати, але контакт зі світом неодмінно змінює розуміння та плани. Хай то буде розробка нового модуля чи планування відпустки — дуже рідко я відразу, в голові знаю всі нюанси.Виходить, варто якнайшвидше перейти від гадок до дій. І це для мене важлива деталь. Якщо я досі сиджу та чекаю ідеального плану, чи ідеального моменту — значить, чекати буду довго. Значить, треба або скасовувати таку задачу, або змінити підхід.Також ділюся способом, який мені дуже допоміг останнім часом: замість пошуку єдиного кращого варіанту, я ставлю собі задачу знайти пʼять варіантів. Пʼять готелів, пʼять продуктів, пʼять альтернатив рішення. Так розслабляється внутрішній критик. Потім чарівним чином зʼявляється той самий правильний вибір — або ж, як писав вище, розуміння того, що навіть питання потрібно переглянути.👑 Patreon ︙ BuyMeACoffee