Unlock a World of Free Content: Books, Music, Videos & More Await!

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

Description
Автор @hyzyla

Пишу про різне зі світу веб розробки: власний досвід, Python, React, TypeScript, стартапи і власні думки
We recommend to visit

ніяких правил, просто кайфуєм 💃🏻

власник / реклама: @andreevichx
менеджери: @NikSaQQ @peca1006, @IrynaaUa

на біржі: adsell.me/r/jNQmqI

Last updated 1 month, 1 week ago

Подпишись,что бы узнать все ответы на свои вопросы🙏
Получить карту🎴 дня и еще много интересного 💌

Админ: @Yuong_Blood

Last updated 3 days, 15 hours ago

Канал по просуванню та оптимізації сайтів під Google. Hard SEO.

Зв'язок зі мною: @devaka
(Сергій Кокшаров)

Реклама: @dv_adv
Для донатів: @dv_donate

Навчаю у групах.
https://webpromoexperts.net/courses/seo-pro-online/

Last updated 1 month ago

1 month, 2 weeks ago

Дія відкриває код

Відтепер країни, які цікавляться українським досвідом цифровізації, зможуть зрозуміти логіку Дії, імпортувати код і запустити власні державні сервіси. Сподіваюся, що наш досвід допоможе іншим урядам побудувати свої держави в смартфоні.

Фахівці зможуть створити аналог Дії або інший застосунок, схожий на неї, але для цього, звісно, треба буде приєднатися до публічної ліцензії. Знайти відкритий код та доєднатися до ліцензії можна на окремому сайті.

Першим кроком, окрім загального коду серверної й мобільної частини застосунку, ми додали документ Посвідчення водія та послугу Витяг про несудимість як приклади логіки роботи застосунку з даними. Із часом послуг та документів буде більше.

А ще кожен айті-фахівець зможе проаналізувати код і запропонувати, як покращити Дію.

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

Відкритий код — це одна з топових світових практик. За таким підходом робили європейські ковід-сертифікати та Європейський гаманець цифрової ідентифікації, а також так працюють компанії Linux, Android та MySQL.

Ділимося українським діджитал-досвідом і зміцнюємо міжнародний імідж цифрової країни.

1 month, 3 weeks ago

["JS"].contains?

В JS є метод .includes(…), щоб перевірити чи є елемент у масиві:

```
const arr = ["I", "love", "Python"];

console.log(arr.includes("love"));
// true

console.log(arr.includes("js"));
// false

```

Працює як і очікуєш. Але чому цей метод називається не .contains(…)? Я, для прикладу, по інтуїції не раз починав писати саме contains, замість includes.

Відкопав старі обговорення, де спочатку більшість погодили назву "contains", для методу якийсь буде перевіряти чи є елемент у масиві і написали proposal до нової версії JS, ES7. Далі Firefox реалізував цей метод у себе, випустив нову версію і посипалися звернення від користувачів, що їхні сайти зламалися.

Зʼясувалося, що основною причиною є MooTools, бібліотека по типу jQuery. Ця бібліотека реалізовувала .contains самостійно, задовго до того як зʼявився цей proposal, і розширювала методи Array обʼєкту. Через різницю між реалізаціями, сайти, які використовували MooTools, почали ламатися.

Далі автори ES7 приймають рішення перейменувати .contains в .includes., бо на час MooTools використовували 6.5% сайтів і буде неправильно зламати їх. З часом MooTools перестав активно підтримуватися, але .includes тепер схоже з нами назавжди, а .contains залишився в історії 🫡

2 months, 2 weeks ago

👆 До слова, підписуйтеся на канал @this_is_pythonic Дмитра , автора попереднього допису. Має гарний канал про Python і розробку в цілому

4 months, 3 weeks ago

Вашій увазі коротка стаття (4 хв) з конкретними порадами як покращити славнозвісні soft skills в письмовій комунікації в команді. Ділюся з вами, бо в більшості згоден з усіма порадами в цій статті.

6 tiny wording tweaks to level up your communication as a software engineer

5 months ago

Ринок browser extensions

На днях натрапив на посилання, де автор безкоштовного розширення для браузерів Hover Zoom+ (400 тис. користувачів)
зібрав в одному місці всі листи, які йому приходили з пропозицією монетизувати чи продати розширення. Пропонують від 2k$ на місяць і до 1k$ в день пасивного доходу 💸. Знайшов також статті інших розробників, які діляться схожими історіями [1], [2]

Основні причини для чого купують розширення це:

- 🔍 збирати й перепродавати дані про вас: по яких сайтах ходите, які фотки лайкаєте, які магазини відвідували і т.д. В першу чергу для маркетингових цілей.
- ⚡️ вбудовувати рекламу на випадкових сайтах, навіть на тих на яких її не мало б бути.
- ⚖️ і найчорніше: викрадати акаунти чи робити якісь інші зловмисні дії від вашого імені.

Рішення чи висновків до цієї проблеми у мене немає. Продати чи монетизувати свою роботу це нормально, якщо вона не порушує ніяких законів. Але й розумію людей, які не хочуть платити за браузерні розширення 🤷

5 months, 3 weeks ago
5 months, 4 weeks ago
6 months ago

JS tagged templates

На днях вийшла нова версія Next.JS, яка наробила багато шуму. Розробники на перезентації показали скріншот з новою можливістю server actions в дії. Хтось в коді на скріншоті побачив повернення php, але також було чутно зауваження, що мовляв в тому коді є SQL ін’єкція і як взагалі таке можна показувати дітям на ніч 😱:

await sqlINSERT INTO Bookmarks (slug) VALUES (${slug});;
Чи server actions це добре чи погано покаже час, але про tagged templates в JS розказати ніколи не пізно, бо за межами JS я не знаю де ще є подібна концепція і про неї багато хто може не знати.

Для початку, в JS рядки-шаблони позначаються в форматі hello, ${name}!, де ${name} буде замінено на значення зі змінної name — все дуже просто і схоже на f-string в Python. Але також в JS є складніші рядки-шаблони, які помічаються тегом перед лапками, для прикладу, myTaghello, ${name}!`. Такі шаблони називаються tagged templates. Тег у цьому випадку має бути функцією, яка на вхід буде отримувати частини рядка["hello, ", "!"]і окремо значення змінноїname`. У відповідь ця функція може повернути будь-що, що їй заманеться: може повернути зовсім інший рядок, може повернути об’єкт або навіть promise.

function myTag(strings, …parameters) { return strings[0] + parameters[0] + strings[1]; }
Якщо повернутися до прикладу на презентації, то перед сирим SQL запитом є тег sql з пакету @vercel/postgres, який і є тією самою тег-функцією, що формує параметризований запит і виконує його. Тому в тому прикладі немає SQL ін’єкції і переконатися в цьому можна, переглянуши код цієї функції на Github

6 months, 1 week ago

Plasmo

Недавно побачив цікавий фреймоворк Plasmo для розробки розширень для браузері. З коробки він підтримує Typescript, React, Hot reloading, env файли, інструменти для публікації розширень і так далі.

Вирішив спробувати Plasmo, перевівши власне мінірозширення Kibana Clicker на цей фреймворк. Дуже сподобалося, що Plasmo не намагається ізолювати від того як працюють браузерні розширення зараз, а натомість додає зручні інструменти для розробки. Для прикладу, фреймворк не робить ніякої магії для того, щоб приховати background і content скрипти, а натомість дає Messaging API, щоб зробити спілкування між ними більш приємним.

Також виявився зручним їхній інструмент BPP для публікації в магазини розширень. Вже є готовий GitHub Action, тобі треба пройтися по туторіалу, щоб отримати ключі, додати їх в секрети GitHub і всім іншим займається Plasmo. Для балансу, туторіали по тому як налаштувати BPP виявилися трохи заплутаними й застарілими.

В цілому досвід позитивний і я радий, що зʼявився такий зручний інструмент, щоб робити розширення для браузерів.

6 months, 1 week ago

ruff formatter

Автор Python лінтера ruff, Charlie Marsh, анонсував, що ruff тепер вміє форматувати код і робить це в 30 раз швидше за black ⚡️

Ruff це досить новий (1 рік) лінтер для Python, написаний на rust і фокусується на швидкості й вбудованих перевірках. Автор дуже швидко робить нові фічі і пів року тому отримав $4m інвестицій на розробку інструментів для Python.

Це дуже добра новина, бо в порівнянні з Typescript (друга моя найулюбленіша мова), інструменти якості коду для Python працюють відносно повільно. Особливо це помітно в режимі "Format/Fix on save" в редакторах коду. Тому я радо вітаю інструменти, такі як ruff formatter, які фокусуються на швидкості і повертають задоволення від написання Python коду 🖥

We recommend to visit

ніяких правил, просто кайфуєм 💃🏻

власник / реклама: @andreevichx
менеджери: @NikSaQQ @peca1006, @IrynaaUa

на біржі: adsell.me/r/jNQmqI

Last updated 1 month, 1 week ago

Подпишись,что бы узнать все ответы на свои вопросы🙏
Получить карту🎴 дня и еще много интересного 💌

Админ: @Yuong_Blood

Last updated 3 days, 15 hours ago

Канал по просуванню та оптимізації сайтів під Google. Hard SEO.

Зв'язок зі мною: @devaka
(Сергій Кокшаров)

Реклама: @dv_adv
Для донатів: @dv_donate

Навчаю у групах.
https://webpromoexperts.net/courses/seo-pro-online/

Last updated 1 month ago