Стендап Сьогодні
Що я зробив, що я хочу зробити, і що це все значить.
Повсякденні здобутки в форматі стендапу.
Детальніше в статті
Підписатись на RSS
📢
Канал в Telegram @stendap_sogodni
🦣
@stendap_sogodni@shevtsov.me в Федиверсі
05.03.2025
Столи для роботи стоячи
🦩 Хто що знає про столи, доступні в Україні? Бо що я головне зрозумів про ті столи, так це те, що треба бути впевненому в механізмі, а це можна або після випробування власноруч, або з надійної рекомендації. Поки з того, що я IKEA IDÅSEN - не ідеальний вибір, але такий, що рекомендують. Та відносно доступний.
Також те, що деякі зі столів хитаються, інші — повільно підіймаються, треті — не мають зупинки в разі перешкоди. Ну й також те, що більшість моделей, про які говорять, продають в США, а про європейські мало що бачу. (Радий буду, якщо ви мене виправите.)
Як я розумію, потрібний тільки механізм — стільницю можна замовити десь поблизу, це нескладно та буде якісніше. Хоча деякі просунуті столи містять ще й шухлядку або розетку, це все продається окремо та незалежно від моделі стола. Шухлядка, до речі, дуже зручна річ, бо туди можна прибрати всі дрібниці та вони залишаються під рукою.
Окремий момент — організація кабелів. Бо коли стільниця рухається, то висячі кабелі це ще й ризиковано. В мене під (звичайним) столом ось такий кошик, його не можу рекомендувати: хоч кабелі в порядку, але стирчать з нього у всі боки, неохайно. Я б дивився краще в бік боксів з цільними стінками, щоб ті кабелі не бачити.
До речі, в мене під столом висить ще й док-станція, і подовжувач на багато розеток, й декілька блоків живлення. На все це хазяйство треба багато місця, зате не на столі. А ще гачки для навушників та для рюкзака. А ще хотілося б й ноутбук вішати, бо я працюю з монітором. Ото якщо замовляти стільницю, можна було б зробити отвір саме під розмір ноутбука, буде красиво.
04.03.2025
GTD як засіб від тривоги
Сьогодні шукав відповіді на те, коли ж все ж таки робити ті наступні дії, які назбиралися по GTD. Бо якщо не придивлятися, весь день без того чимсь зайнятий. Знайшов на реддіті відповідь, яка змусила замислитись.
Метою GTD є розум, спокійний, як вода: такий, що робить саме те, що потрібно, та не марнує зусилля на аби що. (Якщо замислитись, це дуже буддистська філософія.) Так от ця відповідь давала пораду від зворотного: там, де розум тривожний, і потрібно прикладати GTD.
Мені подобається, що такий підхід водночас і визначає межі системи продуктивності (бо записувати потрібно тільки те, що не виходить само), й створює тригер для уваги (відчуваєш тривогу — перевір списки.)
От в мене є таке, що коли раптово та терміново просять щось зробити, то стає тривожно… не від того, що я вже зайнятий, а від того, що я не знаю, чи буду зайнятий. Оце для мене саме та тривога, з якою можна боротися за допомогою GTD.
03.03.2025
Звідки беруться кореневі сертифікати TLS?
🔐 Я в цьому каналі багато писав про безпеку, та конкретно в цьому пості — про ланцюг довіри. Але за що той ланцюг закріплений? Це фундаментальне питання безпеки. Якорем ланцюга є корінь авторитету — набір сертифікатів, якому ми довіряємо як аксіомі.
З одного боку, вкрай необхідно, щоб в наш корінь авторитету не потрапили зловмисні сертифікати. Причому на них не буде написано, що вони зловмисницькі! За означенням в нас немає можливості перевірити, чи є кореневий сертифікат “чесним” - тому вони повинні братися з надійного джерела.
З іншого, у світі кілька десятків агенцій, яким довірено видавати сертифікати, а також їхні кореневі сертифікати час від часу оновлюються. Отже, важливо, щоб корінь авторитету був повним та свіжим, інакше ми не будемо довіряти новим сертифікатам — це дуже реальна проблема старих систем.
Але не таких вже й старих! От я дізнався, що в стабільному Debian Bookworm корінь, який міститься в пакеті ca-certificates
, від березня 2023!
В мене відразу зʼявилося питання — як же ж з ним люди в інтернет ходять? Виявилося, що як Chrome, так і Firefox використовують власні корені авторитету, а не системні. Тому проблеми через системні сертифікати відразу меншають — а для простих користувачів, певно, взагалі зникають.
Якщо копнути далі, то існує проєкт CCADB, в якому головні інтернет-оператори тримають каталог кореневих сертифікатів відповідно до суворих (та головне, задокументованих) вимог. Сертифікати цього проєкту можна завантажити та використати замість застарілих. Звісно, стає питання довіри, але якщо ще копнути, то той же ж пакет ca-certificates бере дані саме з бази Mozilla, так що на чомусь ця глобальна порука повинна замикатися.
02.03.2025
Затримка оновлення в OpenSearch
В OpenSearch/ElasticSearch є така цікава особливість, що між внесенням змін та їхнім ефектом минає кілька секунд. Тобто буквально доведеться почекати, щоб побачити, що щось змінилось.
Причиною є те, що OpenSearch видає результати тільки через словники (“індекси” мовою інших баз), а оновлення словника відбувається періодично — як мінімум, щосекундно. Бо оновлення є дорогою операцією та краще, коли воно працює з цілою пачкою змін.
Зауважу, що затримка ніяк не є наслідком того, що OpenSearch є розподіленою базою. Навіть один індекс на одній машині буде оновлюватися так саме повільно. Взагалі OpenSearch оптимізований для великого масштабу, а на малому працює не набагато швидше. Також затримка не впливає на надійність — зміни нікуди не дінуться.
З досвідом традиційних СУБД це є повною нісенітницею. Проте типові використання OpenSearch - наприклад, аналіз журналів — не потребують моментального застосування змін. Будь-яка архітектура з OpenSearch всередині повинна розділяти запис та читання та передбачати ці затримки. Тому на роль головної бази - OLTP - вона фізично не підходить.
01.03.2025
Зволожувачі
Щоб закінчити вчорашню тему, дозвольте звільнити голову від знань про зволожувачі. На жаль, ідеального зволожувача немає, одні компроміси.
🔉 Ультразвукові зволожувачі розпилюють воду вібраціями. Перевагою тут є велика різноманітність форм. Недоліком цього методу є те, що вібрації розпилюють не тільки воду, а й все, що в ній знаходиться. А у воді, якщо вона не дистильована, містяться розчинені солі — тобто фактично пил. Тому ультразвуковий зволожувач підвищує PM2.5, як я сам бачив, та може навіть залишати наліт на меблях. Теоретично можна заправляти його тільки дистильованою водою, але це суттєво ускладнює використання (та тому я навіть не перевіряв такого варіанту.) До речі, ультразвуковий зволожувач взагалі не зволожує повітря, а створює водяні краплі, які швидко випаровуються. Частина цих крапель може осідати поруч — особливо, коли вологість вже висока.
🫖 Зволожувач гарячою парою це, буквально, кипʼятильник у зручному корпусі. Єдина форма зволожувача, яка не потребує змінних елементів — тільки очищення від накипу. (Накип — це ті самі солі.) Але є пара суттєвих недоліків. По-перше, він споживатиме багато енергії: 200-300 Вт. І це пристрій, увімкнений постійно. По-друге, кипʼятильник буде випаровувати навіть при підвищеній вологості, що ризиковано — надмірна вологість ще гірша для оселі, ніж сухість.
💨 Зволожувач холодною парою складається з вентилятора та величезного паперового фільтра, а точніша — гніта. Гніт одним боком стоїть в посудині з водою та капілярним ефектом тягне її вгору. Вентилятор сприяє випаровуванню, тобто “сушить” гніт та зволожує повітря. Тут і енергії витрачається менше (10 Вт), і випаровування фізично уповільнюється, коли повітря вже вологе. Солі залишаються на папері. Недолік — мокрий папір згодом плодить бактерії та грибки, тож фільтр доведеться міняти. Ба більше, такий зволожувач не можна залишати мокрим та вмикати час від часу — стояча вода зацвіте ще швидше.
🪢 Кліматичні станції це така нова модна категорія, де зволожувач холодною парою поєднаний з очищувачем (тобто фільтром повітря) - логічно, оскільки обидва прилади є накрученими вентиляторами. Мені тільки не зрозуміло, що робити з такою станцією, коли зволоження не потрібне.
🚿 Зволоження по-простому: каструля з окропом, мокрий рушник на батареї, душ тощо теж підвісять вологу. Але я гадаю, що все це не той масштаб, щоб проблему зимової сухості можна було так виправити. В мене зволожувач випаровує 4 літри на добу — скільки ж це рушників?
Мій вибір — зволожувачі холодною парою. З ними єдина турбота — не забувати про заміну фільтрів та не залишати його вимкненим з водою. Також мені цей тип видається найбільш природним: бо вони тільки пришвидшують випаровування води. Наразі у Philips хороші моделі, наприклад ось
28.02.2025
Кліматична гра
Зима пропонує нам цікаве випробування: підтримувати високу якість повітря вдома. Влітку це виходить майже без зусиль, якщо є можливість провітрювати. Але взимку… Задача виростає до рівня економічних стратегій, ну принаймні Ozymandias.
Доведеться збалансувати температуру, вологість, рівень пилу PM2.5, та рівень вуглекислого газу CO2. Для початку, треба надбати пристрій, який все це може поміряти. А краще — по одному на кімнату. В мене вже роки 4 стоять Awair Element, але варіантів багато. Непогана відкрита система AirGradient.
Та далі починається… Для CO2 є єдине рішення — провітрювати. Також CO2 накопичується з часом; якщо сидіти в закритій кімнаті, то дуже суттєво! Підвищений рівень CO2 погіршує розумові здібності, до речі.
Решта показників більше під нашим контролем. Що гарно, бо всі вони погіршуються під час провітрювання. Температура всім зрозуміла, та що з нею робити — теж.
Пил можна прибрати очищувачем повітря. Їх багато різних, та всі потребують змінних фільтрів. Раджу брати такий, до якого фільтри будуть доступними, тобто відомий бренд. Чи потрібний очищувач — залежить від ваших обставин; в місті взимку стабільно багато PM2.5 через опалювальний сезон.
Вологість — тихий злодій зимового сезону. Зовнішнє повітря дуже сухе взимку: чим холодніше, тим менше пари може утримати повітря. Сухість впливає на шкіру, дихання, електростатику, деревʼяні меблі та підлогу… одним словом, на все. Та взимку вологості немає звідки взятися природно — покращити обставини можна тільки зволожувачем. (Ну, або кипʼятити багато води, приймати багато душів, сушити багато білизни…) Про зволожувачі можу ще багато написати, бо це виходить головний кліматичний пристрій взимку після опалення.
Якщо у вас якесь автоматичне рішення для всього цього, буду радий почути.
27.02.2025
Три приклади використання манкіпатчингу в Ruby
В Ruby можна на ходу замінити будь-який метод та отримати доступ до майже кожного атрибута. Причому зробити це хоч на рівні класу, хоч для конкретного обʼєкта з instance_eval. Звучить як щось дике, але насправді це гарний інструмент, яким ми цим користуємося постійно. Ось кілька прикладів:
-
Для ізоляції тестового екземпляра. Бібліотека rspec-mocks та інші побудовані на тому, що в Ruby без всякого Dependency Injection можна замінити окремі властивості або поведінку обʼєктів. Інколи це прямо уможливлює написання тестів там, де в іншій мові їх було б надто дорого писати.
-
Для виправлення помилок в бібліотеках. От знайшли ви, що чужий код працює неправильно (або з небажаними ефектами.) В Ruby можна відкрити чужий клас та замінити в ньому потрібний метод — прямо з власного коду. Так можна почати працювати з виправленим кодом вже сьогодні, а не чекати, поки виправлення приймуть автори. Також для того не потрібно ані форкати, ані вендорити цю бібліотеку.
-
Для перевірки коду в продакшні. Коли потрібно щось швиденько перевірити, то зовсім не потрібно розгортувати цілу нову версію застосунку — достатньо одного скрипту, в якому можна відкрити будь-які класи та впровадити зміни. Це дуже зручно для профілювання, або швидкого пошуку помилок.
26.02.2025
Як залізти назад в човен?
🏄♂️ В колах самоменеджерів ходить така фраза, як “впасти з воза” (fall off the wagon): це коли ти припиняєш підтримувати систему. Далі на цей віз треба залізти та їхати далі. Проте мені більше подобається не віз, а човен чи навіть дошка для серфінгу: бо коли “впадаєш з човна”, вода — задачі — нікуди не зникає, а навпаки, тепер доведеться вигрібати поточні справи вручну, поки не залізеш назад.
Для мене головною проблемою із відновленням системи є — що робити з попереднім списком задач? Продовжувати як є — морально дуже важко. Викинути — ризиковано, бо завжди там сидітиме пара задач “з другого квадранту”, які потрібно зробити обовʼязково, навіть якщо час минув. Насправді навіть щось з нього викинути теж важко. Окрім утоплених витрат, взагалі важко (мені?) відмовлятися від задуманого.
Тут важливо згадати, що причиною падіння з човна саме й був поточний список задач. Ну тобто так, можна звинуватити обставини, але якби список був чітко з важливих речей, то не було б проблеми до нього повернутися. Але ні, список заріс бурʼяном. Тепер він відштовхує, та ми обираємо вигрібати вручну. Можна сказати, що повернутися в човен ще складніше, ніж почати.
Допоможе прорідити список система “мабуть/колись”. До “мабуть/колись” менше вимог, тому від неї значно менше стресу. Все зі старого списку, що не потребує невідкладного виконання, може йти в “мабуть/колись” та сидіти там… а хоч довічно. Головне, що ми й не забудемо нічого, і зобовʼязань не беремо зайвих. (А ще краще переносити задачі в “мабуть/колись” раніше, ще на тижневому огляді, як тільки ясно, що поки на них немає часу.)
25.02.2025
Express.js
Один з моїх улюблених засобів для створення простого вебсервера - Express. Для рубістів - Express дуже схожий за настроєм з Sinatra.
const app = express();
app.get("/", function (req, res) {
res.send(`Hello, ${req.query.name}!`);
});
-
JavaScript гарна мова з бібліотеками на всі випадки життя. TypeScript та Prettier роблять розробку зручною без обтяжування. Порівняно з тією ж Сінатрою, я можу впевнено досягати результатів. А порівняно з Go швидко. Для прототипів це золота середина.
-
Синтаксис та семантика Express прості та зрозумілі. Оголошувати маршрути, читати запити та генерувати відповіді можна з мінімумом рухів. Абстракція над HTTP прозора, завжди видно, що куди йде. Чомусь робота з тілом запита POST винесена в окремий пакет body-parser, але то дрібниці.
-
Nodemon та ts-node роблять локальний запуск та перезапуск простим та зрозумілим. Запускаєш
yarn run nodemon entry.ts
та все, можна працювати. -
Express легко (відносно…) розгорнути — або навіть перетворити застосунок на serverless. Відносно, бо не люблю технології, які залежать від вихідного коду бібліотек в продакшні — хай то node_modules, геми Ruby тощо. Втім, принаймні всі залежності для Node.js розташовуються в одній директорії з проєктом.
Раджу мати Express на озброєнні для маленьких вебсервісів — прототипів, однозадачних серверів, обгорток всіляких.
24.02.2025
Мікроменеджмент
Критика мікроменеджменту (тобто стилю менеджменту з надмірною увагою до деталей, а також до контролю підлеглих) серед айтівців це як товкти воду в ступі: консенсус такий, що мікроменеджмент — погано та непрофесійно.
Мені щастить працювати в оточенні, де контролю навпаки, мінімум. Це значить, що виконання роботи згідно з домовленостями та в термін — особиста відповідальність кожного. Магії немає. Але в цьому оточенні звикаєш до того, що люди не потребують менеджменту, що зазвичай домовлене буде зроблено.
Та, нещодавній досвід ремонту змусив мене усвідомити, що так буває зовсім не завжди. Серед працівників ремонту “сказано-зроблено” є не нормою, а виключенням. Причому про якість роботи це нічого не каже: людина може давати бездоганні результати… якщо їй вчасно про це нагадати та проконтролювати ті самі деталі.
Деякий час мене бісило це нескінченне нагадування — поки не зрозумів, що інколи мікроменеджмент необхідний. Чи можна те ж саме сказати про айтівців? Про деяких айтівців? Чи працював би я краще з вправним мікроменеджером? Навряд чи дізнаюсь.
Відсутність мікроменеджменту можлива тільки в умовах високої індивідуальної відповідальності. Та обʼєктивно легше знайти одного мікроменеджера, ніж вимагати її від кожного працівника. Проблема (вічна) полягає в тому, щоб ще й зберегти всім нерви.