Iniciar sesión Registro
Anuncios
Tu espacio publicitario
Reserva este slot exclusivo para el periodo elegido.
Comprar publicidad →
Logotipo de la comunidad de telegram - Євгеній Гизила
Añadido 06 ene. 2025

Євгеній Гизила

@hyzyla_blog
Número de suscriptores: 600
Fotos: 58
Enlaces: 139
Descripción:
Автор @hyzyla Пишу про різне зі світу веб розробки: власний досвід, Python, React, TypeScript, стартапи і власні думки

👥 Número de suscriptores

600
Promedio/Día:: -1
Promedio/Tiempo:: -1
Promedio/Mes:: -6

📊 Mensajes por Día

0.1
Último día: 0
Promedio semanal: 0
Promedio por día: 0.1

Historial de cambios de estado

Oficialmente no confirmado 2025-01-06

Muro

Estadísticas de telegram canal

👁 632 26-05-24 10:19
зараз по світу ходить вірус, що передається через близький контакт з npm пакетами. тому лікарі рекомендують зробити щеплення він випадкових залежностей і подбати про імунітет завчасно. Якщо говорити серйозно, то на днях github підтвердив, що зловмисники отримали доступ до кілька тисяч внутрішніх репо github. Причиною цьому стало VSCode розширення nrwl/nx-console на робочій машині одного зі співробітників. Саме по собі розширення не було створено в зловмисних цілях, як інколи буває і, на мій погляд, виглядає норм. Але, на жаль, автори nx-console самі по собі стали жертвами нещодавної атаки на tanstack і зловмисники змогли опублікувати від їхнього імені шкідливу версію розширення. А далі VSCode автоматично стягнув і запустив оновлену версію розширення, що й стало причиною витоку даних.Після атаки зʼявилося issue в проєкті VSCode з проханням додати налаштування, щоб оновлення до розширення прилітало з затримкою в кілька днів. Поки офіційного рішення від команди VSCode немає, то я собі для профілактики виключив оновлення розширень в налаштуваннях:{ "extensions.autoUpdate": false} Навіть не знаю чому не зробив це раніше, але краще пізно ніж ніколи. І за нагоди зробіть це і ви, якщо користуєтесь VSCode
👁 845 26-03-18 10:20
вау! шось мимо мене пролетіла новина про новий продукт для логів VictoriaLogs від авторів VictoriaMetrics. Обіцяють, що для логів працює краще ніж еластік 💪https://x.com/func25/status/2011420689941885037If your logs need Elasticsearch, you don't need logs, you need better engineering. This is an open-source log database written entirely in Go: https://github.com/VictoriaMetrics/VictoriaLogs, scaling from super small setups to hundreds of CPU coresIt offers:- schemaless, you don't need to pre-define a schema or create tables/index mappings- no setup, tuning, or configuration needed- small binary (v1.43.1): 20.7 MiB. Compare this to others: - Loki (v3.6.3): 123.8 MiB - ClickHouse (25.12.3.21): 727.1 MiB - Elasticsearch (8.17.0 - bundled): 1.3 GiB- every field is searchable- handles terabytes of logs per day without any issues- supports both vertical and horizontal scaling- uses less CPU and memory than most logging systems, reduces your logging cost- faster search and investigation than most logging systems- supports log query, filter, group, math, and analysis- supports live tailing to view logs in real time- works with Grafana dashboards (see the image below), Prometheus-compatible- supports alerts based on your logs, like when log has error/slow/timeout/suspicious activity (to Slack, email, etc)- supports recording rules to write metrics from logs
👁 943 26-02-25 08:05
0.0.0.0Я ніколи особливо не розбирався, яка різниця між IP-адресами 0.0.0.0 і 127.0.0.1. Шо то, шо інше веде на мій сайт, запущений локально, — і на тому йому за це дякую.Але насправді різниця величезна. Бо якщо адреса 127.0.0.1 доступна тільки на моїй машині, то адреса 0.0.0.0, як зʼясував, буде доступна всім, хто сидить у тій же самій локальній мережі що і мій комп.Виходить так: якщо я запускаю python сервер на 0.0.0.0:8000, то ми з усіма моїми китайськими гаджет-шпійонами можемо разом сісти й нарешті придумати як пофіксити цю кляту проблему з CORS на localhost!Жарти жартами, але ось беремо docker compose і пишемо йому, щоб він прокинув порти з докера на локальну машину. А він за замовчуванням ці порти прокине на 0.0.0.0. І тому відповідно всі ці сервіси так само потрапляють у вашу локальну мережу:services: postgres: ports: ["8000:8000"]Ну і щоб досипати солі на рану, то можна задати собі питання — а що таке локальна мережа, коли я у кавʼярні підключаюся до Wi-Fi? Звісно ж це мережа, де будуть усі хіпстерські лептопи. Можливо декілька з них діляться з вами своїми серверами, а ви навіть про це й не здогадуєтесь 😂
👁 1,010 25-08-17 11:06
Not;A=BrandВже деякий час гугл просуває ідею Client Hintsзаголовків на заміну User-Agent. Вони краще структуровані і, за словами гугла, є privacy focused, ніж User-Agent 😁. Ось мої заголовки для прикладу:Sec-Ch-Ua: "Not;A=Brand";v="99", "Google Chrome";v="139", "Chromium";v="139"Sec-Ch-Ua-Mobile: ?0Sec-Ch-Ua-Platform: "macOS"Але що за Not;A=Brand в Sec-Ch-Ua заголовку? Якось він підозріло виглядає і весь день мелькає переді мною в дев консолі. Виявилося, що цей NotABrand браузер спеціально додається хромом в рамках механізму GREASE (Generate Random Extensions And Sustain Extensibility) і має дві важливі місії:🆕 перша з них, щоб вебсайти не камʼяніли (TIL: ossification) і з самого початку вміли працювати з невідомими браузерами. Це значення час від часу хромом міняється при релізі нової версії, тому сьогодні це Not;A=Brand, а завтра буде Not)A=Brand чи щось подібне. 💔 друга мета, щоб веб сайти парсили цей заголовок по стандарту structured headers і не ламалися від якихось кривих символів типу крапки з комою чи дужок. В мене вже були пригоди з цим заголовоком, тому можна почитати тут.Цікаво буде поспотерігати чи спрацює цей NotA=Brand в довгій перспективі, але тим не менш цікаве рішення проблемі закамʼянілості протоколів.
👁 1,040 25-07-20 10:55
docker build cacheНедавно відкрив для себе, що в докері разом з командою RUN можна зробити mount [1] файлів з хоста, які будуть доступні тільки при збірці і не попадуть у фінальний імедж. Дуже зручна штука особливо для різних кеш файлів. Наприклад, раніше після вставновлення apt пакета треба було видаляти проміжні файли, щоб не роздувати розмір імеджа.RUN apt update \ && apt install … \ && rm -rf /var/lib/apt/lists/* Але для мене більшою проблемою було те, що ми втрачаємо ці проміжні файли і якщо додати ще один пакет до apt install, то весь шар в докері відразу ж стає протухшим. Наступний раз коли запускаємо білд, то apt update починає викачувати всі метадані з чистого нуля і це триває, за моїми підрахунками, цілу вічність.Зmount=type=cache можна в імеджі до /var/cache/apt примаунити ефемерний кеш volume, який буде шаритися між build запусками і тому наступний раз apt update відпрацює вже набагато швидше. І як бонус не треба в кінці команди видаляти кеш файли, бо цей cache volume не потрапляє у фінальний імедж.Я взагалі цей параметр побачив вперше в документації до uv [2]:RUN --mount=type=cache,target=/root/.cache/uv \ uv sync тому він добре працює і для збірки пакетів чи вставнлення залежностей1. RUN --mount=type=cache2. Using uv in Docker
👁 913 25-07-11 07:03
distro пакетВчора ввечері прибирався по дому і ходив слухав якесь відео, де автор жаліється, що куди не глянь, хоч на rust, хоч на js, але щоб зробити невеликий веб сервіс треба скачати мільйон залежностей з інтернету. А потім з цими залежностями якось треба жити, їх оновлювати, слідкувати за вразливостями. Або не дай боже залишити проєкт на рік десь в шухлядці, то його після скільки часу вже ніхто не зможе зібрати. Чомусь запамʼятався цей момент. Я задумався, чому немає якихось великих жирних пакетів «все-для-всіх» чи «все-для-вебу», які є просто збіркою з інших завендорених проєктів. Так, щоб покрило основу кількість потреб (наприклад, для вебу), випускалося раз на рік, оновлювалося як один пакет і мало план міграцій між версіями. Фантазую: береться fastapi, sqlalchemy, pytest, десяток інших ліб, далі клонуються всі в один проєкт і публікуються як один пакет, нехай під назвою std_web:from std_web.fastapi import FastAPIfrom std_web.pydantic import BaseModel Такий собі міні-дистрибутив, типу debian, тільки не лінукса, а бібліотек для якось мови і сфери розробки ⌨️
👁 1,040 25-05-25 11:11
schema vs schemeЯ все своє життя вважав, що між словом schema і scheme нема ніякої різниці, і це черговий прикол з American vs. British English. Кодив SweetPad і задумався погуглити, а може все таки є різниця? Бо в Xcode проєктах це слово ну дуууже часто зустрічається. Зі словом schemA наче все просто — це для опису структури або моделі даних. Тому й JSON schema, database schema і GraphQL schema, бо вони всі про те як виглядають дані. Найчастіше зустрічається тільки в ІТ і ще десь у психології (я не перевіряв)Інше ж слово schemE означає або план дій, або набір правил по яких щось працює: auth scheme, file-naming scheme, color scheme, cryptographic scheme, URL scheme. За межами ІТ це слово теж доволі часто використовується: ponzi scheme, pension scheme. Якщо сильно захотіти, то можна навіть умудритися перекласти це слово як “схематоз” 😎Як тоді ж правильно буде у Xcode проєктах? Там якраз схема це про те як проєкт буде збиратися, тому правильно буде scheme і в множині schemes. Хоча, як на мене, світ не розвалиться, якщо цього не знати і використати неправильне слово 🤟
👁 726 25-04-12 15:22
https://t.me/stendap_sogodni/1166Пару тижнів тому мій китайський робот пилосос щось почав сильно тупити. В мене вже раз таке було і мені помагало скинути його до заводських налаштувань. Тому я пішов і зробив ресет і цього разу. Почав з нуля підключати його до вайфаю, а він не хоче і не дуже ясно чому. Покопався трохи по редіту і найшов, що це може бути через частоту вайфая. Пилососу треба, щоб була частота 2.4 Гц, а сучасні вайфаї з заводу зазвичай налаштовані на 5 Гц.Поліз я в налаштування роутера і бачу що стоїть якийсь смарт режим який підтримує і 2.4 Гц, і 5 Гц. Я такий «Ага!» і згадав, що минулий раз спеціально знижував частоту до 2.4 Гц, щоб підключити пилосос до вайфаю, а потім повертав у цей смарт режим назад що інтернет був нормальний. Ну все, залишилося зробити ті самі присідання і буде в мого китайського шпигуна пилососа доступ до інтернету. Але, поки колупався в носі, побачив на цій сторінці нижче якісь налаштування мережі для IoT. Стало цікаво що звір, почав розбиратися і мені прийшло просвітлення, що це те що мені якраз й треба. Це окрема вайфай мережа зі своїм SSID і паролем, підтримує тільки 2.4 Гц і ще якісь там налаштування безпеки. Включив цю мережу, дві хвилини діла і мій робот пилосос вже в інтернеті в своїй окремій мережі. Я не те щоб сильно переймався питаннями безпеки з IoT девайсами в локальній мережі, але подумав що вийшло гарно, що робот тепер в окремій мережі працює і нікому не заважає
👁 825 25-03-26 21:13
Шифрування на кожний день: AEAD#КриптографіяВ криптографії я повний дилетант. Тому, коли постає задача "щось зашифрувати", очі розбігаються від різних алгоритмів, режимів, жаргону і так далі.Тому ділюся головним скороченням, яке треба знати: AEAD. Якщо вам потрібно "щось зашифрувати", то оце воно. AEAD попросту значить, що окрім зашифрованого повідомлення, передається також і його підпис — за яким можна підтвердити, що дані не сфальсифіковані. (Цікавий факт: будь-які двійкові дані можна "розшифрувати" за алгоритмом та отримати якийсь відкритий текст. Так що підпис рятує не тільки від фальсифікації, а й просто втрати інформації.)Але насправді навіть не потрібно знати, що там є підпис, бо його за вас зробить (та перевірить) бібліотека шифрування. (Правило шифрування №1 - не пиши нічого сам!) А от що від нас залежить, так це вибір нонса, який повинен бути унікальним в межах одного ключа. Якщо ви не плануєте одним ключем шифрувати мільярди посилок, то звичайний випадковий нонс влаштує.Щодо конкретних алгоритмів, то є 2. Золота класика: AES256-GCM. Оптимізований на апаратному рівні, використовується у Wi-Fi, TLS, та багато де ще. Та новий модний ChaCha20-Poly1305 - більш безпечний (як каже інтернет), швидший на ARM, теж використовується у TLS, WireGuard тощо. Обидва алгоритми вас влаштують.У JWE - це який JWT, але зашифрований — теж, до речі, AEAD.