Как стать автором
Обновить
4
0
Nikolay Galko @galkon

TechLead

Отправить сообщение

Многопоточность на Node.js. Event Loop

Время на прочтение8 мин
Количество просмотров70K

Инфа будет полезна JS-разработчикам, которые хотят глубоко понимать суть работы с Node.js и Event Loop. Вы сможете осознанно и более гибко управлять потоком выполнения программы (web-сервера).


Эту статью я составил по материалам своего недавнего доклада для коллег.
В конце статьи есть полезные материалы для самостоятельного изучения.


Как устроена Node.js. Возможности асинхрона


Давайте посмотрим на этот код: он отлично демонстрирует синхронность выполнения кода в Node.js. Делается запрос на GitHub, затем записываем данные в файл и выводим результат в консоли. Что понятно из этого синхронного кода?


image

Читать дальше →
Всего голосов 14: ↑13 и ↓1+15
Комментарии16

PostgreSQL 16: Часть 3 или Коммитфест 2022-11

Время на прочтение10 мин
Количество просмотров5.7K

Продолжаем следить за новинками будущей 16-й версии. В начале декабря завершился третий коммитфест и вот его результаты.


Самое интересное из первых коммитфестов можно прочитать в предыдущих статьях серии: 2022-07, 2022-09.

Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии0

Redux в Angular. Туда и обратно

Время на прочтение29 мин
Количество просмотров7.7K

Пару лет назад из каждого утюга можно было услышать про redux. Сейчас redux является чем-то обыденным в фронтенд разработке. На пороге 2023 года я хочу поделиться своим опытом использования redux в Angular, поговорить о разных реализациях, и рассказать к каким выводам я пришел за это время.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии8

Подключение телеграм бота к гугл таблицам

Время на прочтение4 мин
Количество просмотров85K

Пишем бота в гугл скриптах на JavaScript. Этот пост - проба пера и статья для начинающих свой путь в гугл скриптах или телеграм ботах. Есть много идей для будущих постов и интересных примеров использования инструментов гугла, в том числе реальных кейсов от заказчиков. Цель поста: получить обратную связь для понимания интересно ли читателю погрузиться в тему глубже.

Читать далее
Всего голосов 23: ↑21 и ↓2+25
Комментарии20

iOS интервью в Vivid

Время на прочтение5 мин
Количество просмотров4.7K

Хотим поделиться с сообществом тем, как у нас в Vivid проходят iOS собеседования, на что мы обращаем внимание и как оцениваем кандидатов.

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии7

Делаем OpenVPN клиент для iOS

Время на прочтение5 мин
Количество просмотров12K
Привет всем!
Давайте рассмотрим как создать собственное приложение, поддерживающее OpenVPN-протокол. Для тех, кто об этом слышит впервые ссылки на обзорные материалы, помимо Википедии, приведены ниже.

С чего начать?


Начнем с фреймворка OpenVPNAdapter — написан на Objective-C, ставится с помощью Pods, Carthage, SPM. Минимальная поддерживаемая версия ОС — 9.0.
После установки необходимо будет добавить Network Extensions для таргета основного приложения, в данном случае нам понадобится пока Packet tunnel опция.

image

Network Extension


Затем добавляем новый таргет — Network Extension.
Сгенерированный после этого класс PacketTunnelProvider приведем к следующему виду:
Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии5

Уже не программист, ещё не предприниматель

Время на прочтение22 мин
Количество просмотров5.8K
На прошлой неделе в наших соцсетях выступил Евгений Донцов, основатель стартапа Ватериус.

Евгений окончил факультет ВМК МГУ по специальности математик, системный программист. В студенческие годы верстал факультетскую газету, организовывал студенческие мероприятия, обеспечивал их техническое сопровождение, фотографировал.

После выпуска более 10 лет работал программистом в автоматизации промышленных объектов и городов. Основал стартап Ватериус. Прошёл 2 ступени Школы дизайнеров Бюро Горбунова. Участвовал в преакселераторе Сбербанка SberUP.

Делимся с вами расшифровкой эфира и записью.
Всего голосов 35: ↑32 и ↓3+39
Комментарии14

Продуктивность разработки

Время на прочтение3 мин
Количество просмотров11K

Тот, кто научится правильно измерять продуктивность разработчиков, точно станет миллионером. Особенно на текущем рынке труда, где кандидаты просто называют случайные пятизначные числа желаемой зарплаты. Есть несколько вендорских платных решений, но они не получили распространения. Никто не ставит такую систему по умолчанию, как, например, CI/CD. Давайте посмотрим на возможные подходы к измерению продуктивности и поговорим об этом в комментариях.

Читать далее
Всего голосов 58: ↑33 и ↓25+14
Комментарии68

Памятка и туториал по HTTP-заголовкам, связанным с безопасностью веб-приложений

Время на прочтение27 мин
Количество просмотров33K


Доброго времени суток, друзья!


В этой статье я хочу поделиться с вами результатами небольшого исследования, посвященного HTTP-заголовкам, которые связаны с безопасностью веб-приложений (далее — просто заголовки).


Сначала мы с вами кратко разберем основные виды уязвимостей веб-приложений, а также основные виды атак, основанные на этих уязвимостях. Далее мы рассмотрим все современные заголовки, каждый — по отдельности. Это в теоретической части статьи.


В практической части мы реализуем простое Express-приложение, развернем его на Heroku и оценим безопасность с помощью WebPageTest и Security Headers. Также, учитывая большую популярность сервисов для генерации статических сайтов, мы настроим и развернем приложение с аналогичным функционалом на Netlify.


Исходный код приложений находится здесь.


Демо Heroku-приложения можно посмотреть здесь, а Netlify-приложения — здесь.


Основными источниками истины при подготовке настоящей статьи для меня послужили следующие ресурсы:


Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии1

Vue — рекомендации при работе с формами

Время на прочтение6 мин
Количество просмотров7.9K

Наверно все работали с формами и понимают как это сложно. В свое время я смотрел разные решения и одним из лучших был Vuetify. Сейчас решений стало больше, но все они однотипны (я не буду брать во внимание форм генераторы). В чем то это связано с ограничением самого Vue и его философией. Но для меня все таки странно, что время идет, а прогресса нет. Странно что люди вокруг пытаются меня убедить что это нормально.

Я попытаюсь рассказать о ключевых ошибках при работе с формами и дам рекомендации как их не допустить. Также рассмотрим идеально не идеальный пример работы с формой. А выводы каждый сделает сам.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии16

Первые полгода в роли тимлида: как не сойти с ума, если кажется, что все плохо

Время на прочтение3 мин
Количество просмотров18K


Первый квартал внутренний критик и синдром самозванца были моими двумя лучшими друзьями. Я с ними общалась каждый день. Систематически. И просто не могла расслабиться. Считала, что недостаточно сделала, недостаточно взяла задач, недостаточно хороша и вообще…

Мне казалось, что я должна быть супертимлидом с первого дня

Всего голосов 37: ↑27 и ↓10+17
Комментарии14

Кажется, мы стали забывать основы фронтенда

Время на прочтение5 мин
Количество просмотров45K

Обычно, в подобных статьях я выступаю на позитивной стороне и говорю, что не все так плохо, что умелыми руками можно делать прекрасные вещи. Однако, недавно со мной произошло несколько историй, которые заставили меня пересмотреть некоторые вещи.

В этой статье я перескажу истории с некоторыми техническими деталями и порассуждаю, что делать дальше.

Читать далее
Всего голосов 80: ↑78 и ↓2+96
Комментарии191

Прости, OpenShift, мы недостаточно ценили тебя и принимали как должное

Время на прочтение9 мин
Количество просмотров15K
Этот пост написан поскольку у наших сотрудников было довольно много разговоров с клиентами о разработке приложений на Kubernetes и о специфике такой разработки на OpenShift.



Начинаем мы обычно с тезиса, что Kubernetes – это просто Kubernetes, а OpenShift – это уже Kubernetes-платформа, как Microsoft AKS или Amazon EKS. У каждой из этих платформ есть свои плюсы, ориентированные на ту или иную целевую аудиторию. И после этого разговор уже перетекает в сравнение сильных и слабых сторон конкретных платформ.
Читать дальше: Прости, OpenShift, мы недостаточно ценили тебя и принимали как должное
Всего голосов 12: ↑8 и ↓4+11
Комментарии3

Оценка трудозатрат в разработке ПО для начинающих

Время на прочтение5 мин
Количество просмотров20K

Помню, как меня впервые попросили дать оценку…

Тогда это застало врасплох.

Меня завели в кабинет, где были мой начальник, его босс и кто-то из вышестоящего руководства, и мы сели за круглый стол, уставившись друг на друга.

Аналитики зачитали некоторые требования от клиента. Мы их коротко обсудили.

И тут мой начальник повернулся ко мне и спросил: «Сколько времени это займет?»

Я не знал, что сказать, — меня к этому не готовили. Мне не сказали, что на этой встрече нужно будет давать оценку — я думал, меня позвали поприсутствовать, чтобы я чему-то научился.

И вдруг на меня все смотрят и ждут ответа, а я растерялся и не знаю, что сказать.

Передо мной лежала бумага для заметок. Я взял один листок и начал писать какие-то числа — без понятия, для чего, но точно не для этой оценки.

Где-то через минуту, которая показалась мне часом, я решил просто сказать первое, что пришло в голову: «Не знаю… часов 600?»

Начальник рассмеялся, а затем сказал остальным рассчитывать на примерно 1200 часов.

Не очень люблю вспоминать тот день.

Понятно, что мне еще многое предстояло узнать, но меня мучил один вопрос: как оценивать объем предстоящей работы?

Читать далее
Всего голосов 10: ↑6 и ↓4+7
Комментарии16

OpenShift как корпоративная версия Kubernetes

Время на прочтение12 мин
Количество просмотров109K
«В чем разница между Kubernetes и OpenShift?» – этот вопрос возникает с завидным постоянством. Хотя на самом деле это все равно что спрашивать, чем автомобиль отличается от двигателя. Если продолжить аналогию, то автомобиль – это готовый продукт, им можно пользоваться сразу же, буквально: сел и поехал. С другой стороны, чтобы двигатель вас куда-то повез, его сначала надо дополнить массой других вещей, чтобы в итоге получить все тот же автомобиль.



Поэтому Kubernetes – это такой двигатель, вокруг которого собран автомобиль (платформа) марки OpenShift, который и везет вас к цели.
Читать дальше: OpenShift как корпоративная версия Kubernetes. Часть 1
Всего голосов 8: ↑7 и ↓1+12
Комментарии10

Openshift — красношляпые поделки

Время на прочтение20 мин
Количество просмотров25K

OpenShift


  1. Развертка Openshift.
  2. Конфигурация после установки.
  3. Создание и подключение PV.
  4. Создание и разворачивание проекта Red Hat Decision Manager (enterprise аналог kie-workbench).
  5. Создание и разворачивание проектов AMQ (red hat active mq) и postgressql c использованием персистентных хранилищ.
  6. Создание отдельных проектов для сервисов, шаблонов к ним, pipeline, интеграция с gitlab, gitlab regestry.
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии6

Преобразуем CentOS в RHEL с помощью Convert2RHEL и Red Hat Satellite

Время на прочтение6 мин
Количество просмотров4.3K

Сегодня мы расскажем, как провести миграцию с помощью утилиты Convert2RHEL, с апреля 2021 ставшей официально поддерживаемым компонентом Red Hat Enterprise Linux (RHEL), и средства системного управления Red Hat Satellite, которое входит в add-on к Red Hat Enterprise Linux Red Hat Smart Management.

Читать дальше: Преобразуем CentOS в RHEL..
Рейтинг0
Комментарии6

Мой уход из Яндекса, как не потерять мотивацию за полгода подготовки в FAANG и реджект в Google

Время на прочтение12 мин
Количество просмотров104K

Мой уход из Яндекса, как не потерять мотивацию за полгода подготовки в FAANG и реджект в Google.

Читать далее
Всего голосов 127: ↑117 и ↓10+148
Комментарии297

Установка полноценного кластера Kubernetes на основе k3s

Время на прочтение12 мин
Количество просмотров15K

Большинство читателей уже так или иначе пробовали устанавливать Kubernetes с помощью kubespray или других средств автоматизации, доступных у большинства поставщиков облачных решений. Можно также всё делать с нуля с использованием kubectl, ведь сам процесс в принципе достаточно неплохо обкатан. Но что если нужна тестовая лаборатория, или даже не сильно крупная серверная ферма, построенная на собственных серверах с ограниченными ресурсами, либо просто на устаревшем оборудовании?

Можно воспользоваться k3s, минималистичной сборкой Kubernetes, особенностью которой является возможность работать как на мелких компьютерах типа Raspberry Pi и небольших виртуальных машинах, так и на обычных железных серверах. Данной статьей начинается небольшой цикл статей о построении домашнего или небольшого производственного кластера Kubernetes.

Читать дальше
Всего голосов 14: ↑14 и ↓0+14
Комментарии6

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Fullstack Developer, Chief Technology Officer (CTO)
Lead
Git
Node.js
TypeScript
Web development