Жабаскрипт (веде Віктор Турський)
4.57K subscribers
21 photos
2 videos
270 links
Авторський контент для JavaScript розробників, але не завжди про JS:). Пишу про архітектуру, best practices, продуктивність, безпеку, інструментарій.

Viktor Turskyi (@koorchik), Cofounder at Webbylab, SWE at Google

Рекламу не розміщую!
Download Telegram
18 березня (субота) DevOps fwdays’23!
Безкоштовна для всіх, за умови реєстрації.

Конференція від FWDays - завжди їх раджу. Перегляд прямих трансляцій безкоштовно. Щоб мати доступ до записів всіх ефірів та поспілкуватися зі спікерами потрібен платний квиток. Промокод на знижку в 10% - 6399F10B98

Спікери та доповіді:
PJ Hagerty (Spotify) — виступить із доповіддю “Innovation and Iteration - Understanding how we improve”
Geert van der Cruijsen (Xpirit) — презентує доповідь “Building resilient cloud applications with Chaos engineering & Azure Chaos Studio”
Serg Hospodarets (Global Head of Engineering) — розповість про “Platform Engineering in practice — Why and How to start”

Деталі за посиланням 🔗https://bit.ly/3ynN0Lp
👍14
Хешування, шифрування, кодування
Часто бачу плутанину в цих поняттях. Тому вирішив зняти коротке відео про:
Шифрування
Хешування
Кодування
В подальших відео будемо розбирати все в деталях.

По темі відео залишайте коментарі на ютубі під відео
ВІДЕО: https://www.youtube.com/watch?v=GQ0rDbJCKhQ
👍54
JavaScript fwdays’23! - 16 та 20 травня (вівторок та субота)

Є два варіанти участі:
✔️FREE ONLINE
✔️FULL ONLINE (доступ до записів всіх ефірів після івенту, участь у воркшопах)
Промокод F01624DEAF на 10% знижки.

🎙 Доповіді, які я планую подивитися:
Eric Meier - Build better apps using CRDTs. Я багато копався в свій час в різних CRDT
Олексій Левжинський – Grokking System Design interview for Front-end Engineer. Цікаво, як воно проходить в Grammarly
Ілля Климов (поки без теми)
Роман Савіцький (поки без теми)
Arman Murzabulatov - Easy and scalable serverless backend for your next mobile or web app. Цікаво, оскільки сам працюю в GCP Serverless

Але інші доповіді теж варті уваги.
Деталі тут: https://bit.ly/3n5yMfw
🔥23👍32🤔1
Як працюють індекси в базах на прикладі. MySQL vs Postgres. UUID vs Auto Increment.
Нове відео на каналі.

Спробував відповісти на наступні питання:
Як працюють індекси?
Що таке кластерний індекс?
Різниця між MySQL та Postgres при роботі з індексами?
Пару слів про MVCC й Heap Only Tuple
Чому UUID може з'їсти ваші гроші?
Що таке covering index?
Як OFFSET впливає на виборки?
Як індекси впливають на INSERT?

По темі відео залишайте коментарі на ютубі під відео
ВІДЕО: https://youtu.be/Ot7b03Fj_mo
37🔥167👍4
Сергій Бабіч та Дивовижний світ веб-розробки
Радий, що стає більше якісного україномовного контенту на ютубі. 🇺🇦 💪
Й хочу порадити ще один канал - канал Сергія Бабіча про веб-розробку.

У Сергія на каналі є речі, яких у мене на каналі мабуть ніколи не буде(бо я в них не шарю 🙈) - про верстку й CSS. Тому й сам вчуся на його відео :)

З Бабічем ми випили не одне пиво на різних автепаті, а тепер обмінюємся досвідом вже в форматі ютуб відео 😁

Підписуйтесь - https://www.youtube.com/@babichweb 👍
👍459🔥6
Як працює Base64 й навіщо він потрібен?
Нове відео на каналі.

Спробував відповісти на наступні питання:
Навіщо потрібен Base64?
Як працює Base64 й чому об'єм даних зростає?
Чи буває Base32 та Base16 й навіщо він потрібен?
Що всередині JSON Web Token?
Чи передає Basic Auth пароль відкритим текстом?
Як закодувати картинку в Base64?
UUID Hex vs Binary

По темі відео залишайте коментарі на ютубі під відео
ВІДЕО: https://youtu.be/QCL0EOKDqKY
🔥57👍114
Прямий ефір з обговоренням цікавих доповідей з Google IO в четвер 11 травня в 19:00
Наступного тижня пройде Google IO 2023. Це івент для девелоперів, де Google розповідає про різні свої нові технології й фічі. Виникла ідея влаштувати обговорення цікавих штук в форматі стріму разом з GDG Cloud Kyiv.

Анонс стріму - https://xn--r1a.website/GDGCloudKyiv/26 (вже можна реєструватися 😉)
Список доповідей - https://io.google/2023/program/
Посилання на стрім - https://www.youtube.com/watch?v=Zq-Pv4g3JC4

PS:
Якщо цікаво, чому давно не викладав відео на ютуб, то мав встигнути фічу на Google IO. Буде доповідь - https://io.google/2023/program/0c366b38-22a6-419f-bad6-305e4f92bcf8/
👍21🔥3
Жабаскрипт (веде Віктор Турський)
JavaScript fwdays’23! - 16 та 20 травня (вівторок та субота) Є два варіанти участі: ✔️FREE ONLINE ✔️FULL ONLINE (доступ до записів всіх ефірів після івенту, участь у воркшопах) Промокод F01624DEAF на 10% знижки. 🎙 Доповіді, які я планую подивитися: Eric…
Нарешті офлайн зустріч від Fwdays 😎
Вже завтра конфа JavaScript fwdays 23 (деталі в пості https://xn--r1a.website/jabascript/247) й мені тільки що сказали, що Fwdays також підготували місця, де можна зібратися, щоб подивитися конференцію 🍿

Це безкоштовно, але потрібна реєстрація:
📍 Wroclaw, Poland, Proxet office, зареєструватися: https://bit.ly/3njTlp1
📍 Krakow, Poland, Wix Engineering office, зареєструватися: https://bit.ly/3NQtQ9W
📍 Київ, офіс Sigma Software, зареєструватися: https://bit.ly/3AIUgCH
📍 Львів, офіс Avenga, зареєструватися: https://bit.ly/3NvpDs0
📍 Хмельницький, Avenga (iHUB), зареєструватися: https://bit.ly/3NNqTHd
📍 Житомир, офіс Infopulse, зареєструватися: https://bit.ly/42j4s0N

❇️ Й РОЗІГРАШ ПЛАТНОГО КВИТКА: ❇️
Є один платний квиток для підписників, який ми розіграємо. Дає доступ до воркшопів й доступ до записіввсіх ефірів після івенту.
Умови розіграшу: Пишіть в коментарях до цього поста, яка доповідь найбільш цікава й сьогодні після 22:00 розіграємо. По одному повідомленню від користувача

PS: Й ще промокод на знижку в 10% F01624DEAF для всіх підписників
14🔥2👍1🤔1
Як працює повнотекстовий пошук?
Найдовше відео на каналі. Чи не занадто? 🙈

Як й обіцяв, пишемо на JS інвертований індекс 🤓

В відео спробував відповісти на наступні питання:
Навіщо потрібні інвертовані індекси й які їх можливості?
Чому не працюють звичайні індекси для повнотекстового пошуку?
Як влаштовані інвертовані індекси всередені?
Що таке стемінг й лематизація?
Які є механізми компресії інвертованих індексів?
Як працює VByte Encoding?
Як використати Map Reduce для побудови інвертованого індексу, коли індекс не влазить в пам'ять?
Як створити інвертований індекс в MySQL

По темі відео залишайте коментарі на ютубі під відео
ВІДЕО: https://youtu.be/nu5Le4YDhPA
👍5711🔥11
2 роки в Google
Сьогодні 2 роки, як я працюю в команді Google Cloud. Можу сказати, що тільки зараз я починаю по трохи розуміти, як все працює в Гуглі в контексті технологій й в контексті процесів. Не очікував, що це вимагає стільки часу, але інфраструктура Гугла величезна. Також можу сказати, що кількість всього з чим доводиться працювати достатня велика, тому навіть пишучи 2 роки на TypeScript й Angular я все ще не можу назвати себе експертом в цих технологіях (хоча до цього я багато років працював з React й вважаю себе експертом в ньому, з версії 0.4 він у мене був вже продакшені).

Які основні висновки можна зробити:
1. В Гуглі дуже крута команда й рівень всіх Гуглерів дуже високий (інженери, менеджмент, продакти, UX й так далі).
2. Те, що за межами Гугла, ви звикли робити за пару місяців, в Гуглі ви будете робити півроку. Й причина не в бюрократії (її практично немає), а в масштабі - величезна кількість різних підсистем, які треба між собою узгодити. Також інший підхід, бо на базі Google Cloud побудована величезна кількість інших продуктів клієнтів й краще вам не ламати Google Cloud.
3. Повний овнершип за фічу добре працює, але підходить не всім. Я вже 2-3 тижні не заходив на віртуалку, де пишу код, бо весь цей час я пишу й читаю гугл доки. Моя задача (як сеніор інженера) разпланувати роботу до кінця року, оцінити й узгодити її з усіма іншими (менеджерами, продактами, іншими інженерними командами й так далі). Ну, й звісно разом з моєю командю все це релізнути до кінця. Оскільки в Гуглі немає проджект менеджерів (але є engineering managers), то кожен інженер сам відповідає за менеджмент свого міні-проекту (фічі). В результаті в Гуглі інженеру доводиться розвивати скіли вшир (й в контексті технологій теж).
4. Навіть з бюджетами Гугла роботи завжди більше, ніж є людей на неї.
5. Чи ідеальний код в Гуглі? Ні. Технічний борг існує практично в кожному проекті. Але технічний борг не ігнорується й його менеджмент це частина процесу розробки.

Спочатку я звертав увагу на різні аспекти роботи, які відрізняються від того, що я бачив за межами Гугла. Але потім перестаєш помічати й зараз навіть складно це побачити, оскільки вже довгий час знаходишся всередені іншої системи.
👍1519👨‍💻5🔥4🎉4🤔2👎1
LIVR - можливо найшвидший валідатор під JS 🙊
Колись вже писав про LIVR - https://xn--r1a.website/jabascript/218

Але в цей раз вирішив зробити бенчмарк. Ніколі до цього не тестував його перформанс й був вражений, наскільки інші популярні валідатори повільніші. Поки порівняв з Joi й JSON Schema - результати

Напишіть в коментарях під постом, який валідатор користуєте й чому. Хочу розширити бенчмарк.
👍12🔥2
ChatGPT грає в minecraft краще, ніж інші AI
Як це так, що Large Language Model грає в гру? Але виявляється, що це можливо. Й до того обирає кращий шлях розвитку ніж інші моделі. Відкриває нові можливості використання LLM

Відео на 6 хвилин про це - https://youtu.be/VKEA5cJluc0
🤯14👍4
Віктор Турський про програмування
Дякую всім за підтримку Ютуб каналу! Величезна кількість гарних відгуків. За 6 місяців на каналі вийшло 14 відео. Сумарно 30тис переглядів й 2600 підписників!

Останні тижні був перевантажений з плануванням в Гуглі, але зараз вже повертаюся до підготовки нового контенту на каналі.

Плани по наступним відео:
Додатковий формат для патронів - Q&A відео (одне відео майже готово)
Серія відео по проектуванню фронтенду й бекенду
Серія відео по роботі операційної системи
Серія відео по безпеці

Якщо раптом не підписані: https://www.youtube.com/@AboutProgramming 🙂
74👍21🔥12
Forwarded from DOU | Front-end
В грудні минулого року для зимового зарплатного опитування DOU зібрали 1 500 анкет від Front-end розробників, а тоді ще не було нашого каналу! Цікаво, зможемо цьогоріч зібрати 2k? 🤔

Тож, панове, приєднуйтесь до дослідження: https://dou.ua/goto/bnHM

Воно повністю анонімне, а результати опитування перетворяться на круті аналітичні матеріали про ситуацію на ринку 💪
👍15🫡51
Як працює повнотекстовий пошук? Частина 2. Питання та відповіді

Спробував відповісти на наступні питання:
Додаткова оптимізація (позбуваємося base64)
Інші алгоритми компресії
Як шукати всередені слова?
Токенайзери в Elastic Search
Що робити, коли у нас айді документа це UUID?
А якщо UUID це Primary Key в MySQL?

Є ідея робити відео в форматі "питання та відповіді" для патронів, але поки викладаю для всіх 🙂

ВІДЕО: https://youtu.be/LaXU5tlY3ZM
👍37🔥51
LIVR 2.7
У порівнянні з 2.5 став на 25% швидшим.
Коли FastestValidator вирізає зайві поля (режим "$$strict: remove"), що в LIVR завжди включено, то LIVR навіть швидший. Бенчмарк (але після певного рівня перформансу це вже не так важливо)
Автоматично додатково реєструє underscore імена правил в camelCase

Тепер можна писати 😎:
{
name: 'required',
phone: {maxLength: 10},
address: {nestedObject: {
city: 'required',
zip: ['required', 'positiveInteger']
}}
}

через підкреслення правила теж працюють.

Нова версія - https://www.npmjs.com/package/livr/v/2.7.0
👍38🔥82👏1
Життя поза хмарами
Моя доповідь про те, як ми запускали проекти до появи різних клаудів.
Що вимагалося від розробника в 2007, щоб запустити масштабовану й відмовостійку систему

ВІДЕО - https://www.youtube.com/live/2piVIILcsJY?feature=share
👍25🔥41
Жабаскрипт (веде Віктор Турський)
LIVR 2.7 У порівнянні з 2.5 став на 25% швидшим. Коли FastestValidator вирізає зайві поля (режим "$$strict: remove"), що в LIVR завжди включено, то LIVR навіть швидший. Бенчмарк (але після певного рівня перформансу це вже не так важливо) Автоматично додатково…
LIVR 2.7.1 - compile фаза в 100 разів швидша за fastest-validator
LIVR має внутрішню фазу підготовки правил валідації. Схоже на "compile" в fastest-validator. Тобто, якщо ви конструюєте новий інстанс валідатора на кожен запит, то це буде повільніше ніж перевикористовувати існуючий об'єкт. Але часом таке буває потрібно й я сам писав не раз. В LIVR-2.7.1 я прооптимізував цей процес й результати наступні:

Заміряв весь процес (ініціалізація валідатора й відразу валідація даних):
В 100 разів швидше за Fastest Validator (там повільний compile)
В 35 швидше за Joi. Й навіть, якщо Joi перевикористовує інстанс валідатора, а LIVR створює на кожну валідацію все з нуля, то LIVR все ще в 2 рази швидший. Якщо LIVR теж перевикористовує інстанс валідатора, то 8-9 разів швидше

BENCHMARK (результати в кінці файлу): https://gist.github.com/koorchik/24bc956be3ddceed6ec8e2c23f261561
👍41🔥71
Я в threads
https://www.threads.net/@koorchik
Там українською й про все на світі. Але побачимо як піде 😄
🗿23🤡9👍5🔥4😁2🌚1