Стендап Сьогодні
Що я зробив, що я хочу зробити, і що це все значить.
Повсякденні здобутки в форматі стендапу.
Детальніше в статті
Підписатись на RSS
📢
Канал в Telegram @stendap_sogodni
🦣
@stendap_sogodni@shevtsov.me в Федиверсі
05.09.2022
MonkeySort - цікавий інструмент для сортувавання за вподобаннями
🧹🕸️🐒 Сьогодні раптово згадав та освіжив один зі своїх стародавніх проєктів - MonkeySort. Тобто точніше, згадав один з користувачів (виявляється, такі є!) А проєкт за десять років перестав працювати через більш суворі вимоги браузерів до CDN. Треба було змінити посилання на HTTPS, але замість того я всі залежності додав до самого проєкту. До речі, великий плюс до стабільності Google та Cloudflare CDN, що вони все ще працюють. На таке можна покластися.
Що, власне, за проєкт? Про це є стаття, а якщо у двох реченнях, то це експеримент по сортуванню предметів, у якому порядок визначає людина, що порівнює їх попарно. Наприклад, так можна відсортувати задачі за складністю, або улюблені страви. Головна ідея в тому, що багато речей складно порівняти, а дві речі — легко.
До речі, про сортування — можу поділитись ще одним своїм трюком. Він допомагає звузити кількість речей, якщо їх стало забагато — будь то проєкти, книги, одяг, або інше.
Відразу зрозуміти, що відкинути — дуже складно і боязно. Тому замість того я оцінюю кожну річ за шкалою на п'ять "балів":
- Річ на 1 бал відразу викидається.
- Речі з 2 балами теж викидаються без розбору, але не миттєво, а після закінчення оцінок (так вже легше це прийняти).
- Якщо після цього все ще залишається багато речей, то речі на 3 бали знов сортуються таким же ж чином, але вже проміж собою.
- Речі на 4 бали — це те, що майже напевно хочеться залишити, їх і не чіпаємо.
- І, нарешті, 5 балів — це стовідсотково цінна річ.
Звісно, оцінювати треба швидко, покладаючись на інтуїцію.
04.09.2022
Як я читаю новини за допомогою RSS-фільтрів
🤖🏗️🗞️ Минулої неділі я згадав, що збираю та читаю контент здебільшого через систему RSS. Сьогодні розкажу, що я роблю, коли джерело RSS не підтримує.
Річ у тім, що нічого магічного в RSS немає. Навпаки, це дуже простий формат (тому й не прижився). RSS - це просто файл ("стрічка") з переліком записів, де у кожної є унікальний URL, а також текст, заголовок, та деякі метадані. Все, що роблять програми для читання RSS - це періодично завантажують RSS-стрічки, та зберігають всі наявні записи. Потім, завдяки унікальності, вдається відстежувати статус прочитання кожного запису.
Головна перевага формату RSS, порівняно з HTML-сайтами, до яких всі звикли — це те, що стрічка чітко поділена на унікально визначені записи. Головна вада RSS - він не надає власникам контенту ніяких можливостей аналітики та мінімальні можливості оздоблення. Отже, цілком зрозуміло, що багато сайтів RSS не підтримують (Twitter), або підтримують з мінімальним функціоналом (Reddit.)
Але, якщо ти вмієш програмувати, то збудувати RSS для майже будь-якого сайту зовсім нескладно. Достатньо написати скрипт, що завантажує HTML-джерело, розбирає його та генерує RSS-записи для наявних на першій сторінці статей (І десь його захостити.) З нормальним RSS-читачем цього вже достатньо — він сам буде викликати ваш скрипт та накопичувати статті.
Нерідко навіть програмувати не треба, бо є багато готових рішень — як у хмарі, так і self-hosted. Self-hosted має ту перевагу, що легше обходить блокування (наприклад, з Instagram це критично.) В мене налаштований генератор стрічок RSSHub. Ще є декілька самописних скриптів на Ruby.
03.09.2022
Огляд програм для написання текстів: LanguageTool, Lingvanex
🇺🇦🌐🇺🇸 Сьогодні покращував свої знаряддя для написання текстів
Перше: зручна обиралка емодзі. Шукав рішення, що не буде слухати введення з клавіатури (як це робить добра утиліта Rocket.) Знайшов скрипт alfred-emoji для Альфреда. Так вдалося уникнути додавання ще одної сервісної програми. До речі, на скрипти Альфреда можна призначати гарячі клавіші, що мега зручно. Тепер в мене Hyper+: викликає меню сніпетів, а Hyper+' (сусідня) викликає емодзі.
Друге: добра перевірялка українського правопису. Для англійської мови є Grammarly (яку зробили українці, до речі.) А що для української? Знайшов цікавий проєкт LanguageTool - це практично Grammarly, але з відкритим кодом, і з підтримкою аж 16 мов. LanguageTool можна запускати локально, але в них також є платна хмарна версія що дає більш просунуті стилістичні поради для англійської. Ще саме зараз у них 50% знижка для України.
Третє: перекладач, переважно такий що працює офлайн. Я користуюсь перекладачем, щоб перевірити свої знання або розуміння деяких слів. Набрів на сервіс Lingvanex. Він перекладає більш ніж 100 мов за допомогою машинного навчання. За моїм тестуванням, працює не гірше Google Translate, але платна версія вміє офлайн. Тут поки не знаю — схоже що перекладає він добре, але маркетинг досить брудний. Почекаю наступного великого розпродажу. 🤑
02.09.2022
Роблю термінал VS Code більш зручним
🪓📺🌈 Сьогодні трошки точив сокиру. А саме: вийшла нова версія Visual Studio Code. У ній з’явилася офіційна інтеграція с термінальною оболонкою Fish. (Цією оболонкою я вже багато років користуюсь, а терміналом виключно через VSCode - може з рік.)
Інтеграція, наприклад, відмічає в терміналі початок та результат кожної команди та дозволяє легко скопіювати її вихід. Все б добре, але чомусь вона зламала підказку (prompt) - а саме, після підказки підставляє перенос рядка.
~/w/proj master ❱
echo “пише тут"
Поки розбирався, що з цим робити, та випробував різні популярні підказки, зрозумів щось інше:
Ніякої складної підказки в VSCode не потрібно, бо вся необхідна інформація вже доступна в різних місцях інтерфейсу, починаючи зі статусного рядка. Більш не треба набивати підказку терміналу всілякими кричащими символами.
Але підказка за замовчуванням зовсім довга та незручна:
user@Laptop.local /Users/user/work/proj > echo “пише тут"
Тож задизайнив свою, просту та коротку. Все, що дійсно треба знати в терміналі VSCode - це поточний шлях. Та й його можна спростити, оскільки зазвичай ми знаходимось в корені робочого простору, або в його під-папці. Вийшло так:
🏠 ❯ echo "у корені робочого простору"
🏠 /src ❯ echo "якщо перейти в під-папку"
🌍 ~/Downloads ❯ echo "якщо вийти за межі простору"
Дрібниці, але цю підказку бачиш сто разів на день.
(До речі, проблема з переносом була через наявний, але порожній файл fish_right_prompt.fish. Але моя підказка працює і так.)
01.09.2022
Щоб уникнути зомбування, треба навчитись думати за себе
📺🧙🧠 Сьогодні подивися відео про технології "зомбування" людей, тобто введення в оману. Головна думка: більшість людей схильні до прийняття правильно нав'язаної їм точки зору, аж до відкидання здорового глузду. Про це свідчить відомий і багато повторюваний експеримент Аша. Цим користується пропаганда на телебаченні та інше. На всяку людину можна знайти прийом, але краще всіх супротивляються ті, хто толерантні до своїх або чужих помилок.
На мою думку, зомбування - це небезпечна концепція, бо вона розділяє два стани мислення: або ви поводитесь раціонально, або вас зомбували. Така концепція заспокоює - бо якщо ми знаємо злочинні трюки зомбувальників, то зможемо їх уникнути і залишатись мислячим тверезо.
Все гірше. Ми невпинно вбираємо з оточення думки, погляди, сигнали, і вони несвідомо впливають на наше мислення та систему переконань.
Свідомість - як ліхтарик, а наше мислення - як пляж вночі. Ми ходимо по пляжу з ліхтариком і будуємо замки з піску. Тим часом, океан нашого оточення нескінченно змінює нас, і ми не можемо бачити, де і як саме.
Що робити, якщо ми хочемо уникути злоякісного впливу оточення? Ну по-перше, ми можемо свідомо обирати, з якими людьми спілкуватись, що дивитись, читати та слухати.
Далі, розвивати навичку думати за себе: обмірковувати твердження, думати, звідки вони взялись, чи є в них логіка, що вони кажуть про їхнього промовника. З особливою підозрою треба відноситись до авторитетних джерел - телебачення, заяв офіційних осіб.
І, нарешті - розвивати гнучкість мислення. Тобто, прийняти той факт, що ми постійно помиляємось, і коли бачиш що помиляєшся - краще якнайшвидше відкинути хибну думку, ніж її захищати. Як то кажуть, майте сильні переконання, але тримайте їх слабко.
З мого досвіду, найбільш далеко від здорового глузду відходять саме люди, що хапаються за свої переконання до останнього.
Про розходження точки зору раджу подивитись стрічку "Рашьомон" Акіри Куросави.
31.08.2022
Відлагодження проблем з навантаження за допомогою AWS CloudWatch
📃🔍🐞 Сьогодні довелося шукати причину перенавантаження бази по логах в AWS Cloudwatch (це амазонівський сервіс логування та спостереження).
- З'ясували, що база почала перенавантажуватись раптово, з деякого часу. (Це просто по метриках.)
- Визначаємо - чи це база досягнула технічної межі, або чи маємо аномальне навантаження. Пишемо простий запит в Log Insights, та по гістограмі бачимо, що кількість запитів дійсно зросла стрибком. (Це можна теж подивитись по метриках.)
- Ставимо гіпотезу - додаткові запити походять з конкретного акаунту користувача (це найпростіше пояснення.) Як визначити, з якого?
- В Cloudwatch можна тегувати записи, просто передаючи в тілі записа JSON об'єкт. Але на жаль, ми ще тегували акаунтом. (Тепер будемо)
- Якщо тегів немає, Cloudwatch також вміє парсити записи регулярками, на льоту, командою parse. Це спрацювало.
- Потім за допомогою статистичного запиту stats() та сортування знаходимо акаунт з найбільшою кількістю запитів.
- Акаунт знайшли, далі вже інша історія.
PS
- Треба знати, що в Cloudwatch потік - належить конкретному процесу, а група - збирає потоки однакової форми. Наприклад, по групі на сервіс. Групувати потоки різної форми - це ускладнювати собі життя.
- До речі, навіть API Cloudwatch так побудований, що в потік можна писати тільки знаючи токен з попереднього запису, тобто виключно послідовно.
30.08.2022
AWS Parameter Store - сервіс для зберігання налаштувань і секретів
🛠️📦☁️ Сьогодні повідаю про мало відомий, але дуже корисний сервіс
AWS Parameter Store. Якщо ви мешкаєте у AWS-і, то це найзручніший спосіб зберігати налаштування та секрети до вашого
коду. Ось кілька фактів про нього:
- У технічному сенсі Parameter Store це key-value база даних, у якій дані - це рядки, а ключі
організовані у ієрархію на кшталт файлової системи (або кращий приклад - S3).
- Для рядків до 4 КБ він абсолютно безкоштовний. Рядки від 4 КБ до 8 КБ трошки коштують (у нас з
таких тільки TLS-сертифікати.) 8 КБ - це максімум.
- Керування доступом здійснюється засобами IAM та спирається на ієрархію. Тобто, можна надати доступ
до якогось під-дерева. Саме так ми й робимо - у кожного сервісу свій префікс до свого дерева
конфігурації.
- Окрім обмеження доступу, дані також можна шифрувати ключами KMS, що ми робимо для всіляких
секретів.
- Само собою, параметри можна створювати за допомогою Terraform, як ми й робимо для параметрів, що
походять з інфраструктури та "склеюють" сервіси, наприклад, їхніх адрес.
- Звісно, параметри можна отримати через API, але ще AWS ECS може передавати їх у змінні оточення
(зручно це чи ні - залежить від обставин проєкту.).
- AWS веде облік версій параметрів, з датою та автором зміни. Інколи це дуже корисно.
Ми Parameter Strore широко використовуємо, тому наші
rubygem та
go package
вміють завантажувати параметри у вкладену структуру JSON. Тож і вам раджу.
29.08.2022
Двотижневий демо-мітінг
📽🎑📈 Сьогодні у нас що-двотижневий демо-мітінг. На мою думку, як не найважливіший регулярний мітинг. Ідея дуже проста - кожний член команди по черзі показує що-небудь новеньке. Це може бути і фіча з продакшену, і щось свіже, запущене локально. Не обов'язково це має бути "візуальна" фіча - дехто показує внутрішні частини або просто відрізки коду. Цікаві метрики. Звісно, нові дизайни та дослідження теж потрапляють до демо.
Чому важливо мати такі демо:
- Головне, що демо - це зіткнення з реальністю. Плани планами, а демо примушує підрахувати, що ти дійсно встиг зробити.
- Демо спонукає дивитись на свою роботу як на продукт та думати про те, що вона значить у загальній системі.
- Демо розвиває навички презентації: треба стисло та зрозуміло показати свою роботу людям.
- Демо завжди викликає купу питань від колег, що допомагає побачити недоліки або прояснити розуміння.
- Демо створює маленькі дедлайни навіть при затяжної розробці великого проєкту.
28.08.2022
Як я читаю новини раз на тиждень за допомогою RSS
🗞📥⏰ Сьогодні взагалі вихідний. Що я роблю в вихідні - це читаю новини. Для цього в мене є ціла система, розкажу трохи про неї.
Почати треба з того, навіщо потрібна якась система, якщо весь світ тільки і намагається наповнити нас інформацією з усіх боків. А саме тому і потрібна. Сучасна реальність така, що будь-який контент бореться за вашу увагу. Головний метод - постійне нагадування про себе і формування залежності. При чому якість контенту має вторинне значення. Так роблять не тільки всілякі шахраї, але й будь хто, хто створює контент в інтернеті. До того ж, всі джерела змагаються за нашу увагу, і у цьому конкурентному середовищі методи привертання та утримання уваги стають більш і більш ефективними.
Раджу почитати книжку Hooked від Nir Eyal, щоб зрозуміти базові принципи (та, будемо відвертими, застосувати у своїй роботі.)
Чим це погано? Тим, що, споживаючи контент як цього від нас хочуть автори, ми втрачаємо контроль над фокусом своєї уваги. Навіть якщо вимкнути нагадування, залишається невпинне відчуття, що може хтось виклав щось новеньке.
Зовім не читати новин і не споживати інформацію безглуздо або просто неможливо. Мій компроміс - збирати всі цікаві мені джерела в одну стрічку, та прочитувати цю стрічку по вихідним.
Домомагає мені в цьому RSS, Miniflux та програма Reeder. На сьогодні все.
27.08.2022
WordPress - кращий конструктор сайтів
📰🕸🔨 Сьогодні шукав конструктор сайту для дружини. Вимога проста: щоб вона могла без моєї участі працювати над контентом - а саме, для початку, наповнювати фотогалереї. (В мене є стаття про сходи веб технологій, так от в термінології тієї статті потрібно піднятись на другу сходинку.)
Подивився, що пропонують сучасні конструктори. Для мене є два значущих: це Squarespace та Wix. Але хоч я їх поважаю, але жодним не користувався. Ось і тут, Squarespace не підходить за браком української локализації, а Wix мені якось дуже складний та заплутаний. Отже, шукав альтернативи. Знайшов ще Sitepro, який я помітив у партнерці деяких доменних реєстраторів. Але ж не можу знайти в собі довіри до такої платформи.
Нарешті повернувся до того, що знаю, а саме до керованої інсталяції Wordpress. Чому Wordpress:
- хостингів до нього багато, не подобається один - завжди можна переїхати на інший.
- як наслідок, вистачає дешевих хостингів, та є з чого вибрати навіть в межах України.
- сучасний Wordpress доволі якісно зроблений і має всі уявні можливості, у тому числі й фотогалереї.
- керована (managed) версія значить, що безпекою займається хостер (безпека - це головний ризик з Wordpress, бо це найпопулярніша платформа в інтернеті, а тому найбільш вразлива)
- тем та розширень безліч на всякий смак
Для початкового налаштування Wordpress потрібно, на мою думку, трошки знатись з технологіями, але якщо перетнути цей бар'єр, то це найкраща платформа для інформаційних сайтів.

