Pull to refresh
3
0
Michael Elin @vanelm

Consulting Network Engineer

Send message

Next.js. Технология современной веб-разработки

Level of difficultyMedium
Reading time16 min
Views67K

Современная веб-разработка требует эффективных инструментов, способных справляться с высокими стандартами производительности и пользовательского опыта. В этой статье мы рассмотрим Next.js, мощный JavaScript-фреймворк и новаторское решение для создания современных веб-приложений на основе React, созданный компанией Vercel. Узнаем, как он помогает разработчикам создавать высокопроизводительные, масштабируемые и SEO-дружественные веб-приложения. Мы также глубоко погрузимся в его функциональность, рассмотрим особенности, такие как серверный рендеринг и генерация статических сайтов, и предоставим примеры использования. Давайте разберем, как Next.js становится ключевым инструментом в современной веб-разработке, обеспечивая идеальный баланс между разнообразием функций и оптимальной производительностью.

Читать далее

Миграция микросервисной архитектуры на API Gateway

Level of difficultyEasy
Reading time10 min
Views22K

Микросервисная архитектура Amediateka была спроектирована более 6 лет назад предыдущей командой разработки. С тех пор добавилось много новых микросервисов, но фундаментальная часть архитектуры осталась прежней. В этом году мы решили внедрить несколько глобальных изменений, одно из которых - API Gateway. Статья расскажет о том, что это такое, какие преимущества дает, как просто и безопасно мигрировать функционирующую систему на API Gateway и сделает обзор готовых решений.

Читать далее

Django, PostgreSQL, Gunicorn/uWSGI, Nginx

Level of difficultyHard
Reading time12 min
Views22K

Подробное описание шагов при деплое web-проекта на Django с PostgreSQL, Nginx, Gunicorn.

Задачи статьи - агрегировать информацию из мануалов по деплою, избавить читателя от повторений ошибок и описать теоретически, для чего делаются те или иные шаги, чтобы избежать бездумного копирования и вопросов "почему у меня не работает".

Читать далее

За пределами номера телефона: Использование TOTP для усиления безопасности

Level of difficultyMedium
Reading time4 min
Views7.3K

Двухфакторная аутентификация, хоть и добавляет шаг в процессе распознавания пользователя со стороны системы или сайта, но все же становится необходимой мерой для безопасной коммуникации. Большинство крупных веб-ресурсов мира сделало этот метод обязательным ввиду расширения списка возможных киберугроз. SMS и Call Password (звонок клиенту) для этой цели — инструменты привычные, но что насчет альтернатив? Иную реализацию «двухфакторки» предлагает TOTP — алгоритм одноразового пароля на основе времени.

Читать далее

Переход с Vue-CLI и Webpack на Vite: ускоряем разработку Vue 3

Level of difficultyEasy
Reading time4 min
Views14K

Одним из новых инструментов в арсенале Vue 3 является Vite - быстрый и легковесный бандлер, который значительно упрощает процесс разработки и ускоряет сборку проекта. В этой статье мы рассмотрим, как перейти от стандартного подхода с использованием Vue-CLI и Webpack к более продвинутому и эффективному методу работы с помощью Vite.

Читать далее

Топ необходимых Linux-команд для разработчика [Шпаргалка]

Level of difficultyEasy
Reading time9 min
Views49K

Использование командной строки является важным компонентом работы в операционной системе Linux. Некоторые задачи невозможно выполнить с помощью графического интерфейса, в то время как работа через командную строку предоставляет полный контроль над системой.

Цель этой статьи - ближе познакомить пользователей с основными командами, которые разработчики используют в повседневной работе.

Читать далее

Excel vs Grafana: Автоматизация дежурств

Level of difficultyEasy
Reading time5 min
Views12K

Привет, Хабр! Меня зовут Ахмед, я Deputy CTO в Сравни. 

Сегодня расскажу вам об опыте управления дежурствами в ИТ-команде.

Представьте: вы нашли баг на проде; хотите рассказать о находке коллегам, которые отвечают за эту функциональность. Идёте в рабочий мессенджер, пишете в канал или групповой чат соответствующей команды.

Читать далее

Как мы решили вопрос с размещением Телеграм-бота

Level of difficultyEasy
Reading time6 min
Views9.9K

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

Для опытных разработчиков, уже имеющих собственные решения и методы работы, материал окажется базовым. Я поделюсь своим опытом организации работы чат-бота @world_for_life_bot, предлагая это как пример базового решения. Моя цель - показать, как можно развернуть бота за 15-30 минут, включая установку всех необходимых зависимостей.

Читать далее

Учимся создавать простых ботов или туториал по библиотеке TeleBot

Level of difficultyEasy
Reading time9 min
Views97K

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

Бегу изучать ботов

У меня зазвонил Репка-фон. Делаем телефон на базе Repka Pi 3 с применением модуля SIM868

Level of difficultyEasy
Reading time15 min
Views9.4K

Делаем программно-управляемый телефон или даже узел связи на базе одноплатного компьютера Repka Pi и модуля платы функционального расширения для GSM связи.

Просто поражают возможности одноплатных компьютеров в формфакторе Raspberry за счёт применения с использованием их 40 pin разъёма, поддерживающего все наиболее популярные промышленные интерфейсы. Становится интересным пробовать решать разные задачи такого типа со ставшими доступными уже год назад Российскими одноплатниками Repka Pi, разработанными на основе китайской элементной базы, но разработанные и производимые уже в России и имеющие хорошую поддержку, что сильно меняет и расширяет возможности применения и получения ответов на возникающие вопросы, так как работы с такими задачами часто сопряжена с возникающими техническими вопросами.

Реализация телефонной связи и радиоуправление - это ооооочень интересные возможности, дающие много простора для решения различных задач по автоматизации процессов в рамках своих проектов, как DIY, так и вполне промышленных задач. Учитывая, что в Репке за последнее время добавлена возможность работать с CAN интерфейсов и I2S, то круг задач и поле для фантазии становятся практически не ограниченными.

Это четвертая статья серии, посвященной модулю GSM/GPRS/GNSS Bluetooth HAT. В этой статье рассмотрим как добавить в ваше IoT-устройство или другое оборудование функции мобильного телефона. Ранее мы рассматривали как принимать и отправлять сообщения и многое другое и вот настало время для реализации функционала полноценной телефонной голосовой связи.

Настало время превратить модуль GSM/GPRS/GNSS Bluetooth HAT, созданный на базе SIM868, в самый настоящий телефон, способный звонить и принимать звонки. Мы расскажем о том, как это можно делать из программы, составленной на языке Python, а также опишем соответствующие AT-команды. Вы проверите их в работе с помощью терминала minicom.

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

Читать далее

STM32. Подготавливаем среду разработки в Linux

Level of difficultyEasy
Reading time21 min
Views43K
В недавнем времени получилось так, что у меня появилась пара интересных проектов, где одна из составных частей — микроконтроллер STM32. И каждый раз при смене ноутбука или ОС на домашнем компе приходится настраивать окружение для разработки как в первый раз. Плюсом, последние проекты, которые я делал для STM32 — выполнял в Windows, в демо-версии Keil uVision. Но поскольку я давно переехал в Linux — возникла необходимость основательно разобраться и изложить процесс настройки окружения для будущих применений.

Всем, кому интересно — добро пожаловать под кат.

Читать дальше →

Статистика на примерах с Python #1

Level of difficultyMedium
Reading time5 min
Views22K
Читать далее

Аутентификация, авторизация пользователей и единый вход (SSO) с использованием Django

Level of difficultyEasy
Reading time24 min
Views27K

В этой статье исследую технологию SSO. Начинаю с разбора концепций аутентификации и авторизации. Рассматриваю как они работаю в контексте Django.

После прохожу путь от описания как работает SSO простыми словами, до разбора протоколов используемых в SSO.

В итоге делаю реализацию SSO с Django, объединять Django и Keycloak.

Читать далее

Делаем PageObject правильно. Удешевляем тестирование и снижаем порог вхождения

Level of difficultyMedium
Reading time16 min
Views18K

Привет, меня зовут Коля, занимаюсь тестированием 7 лет, автоматизацией — 6 лет. Так уж сложилось, что не особо люблю WebUI-тесты, но почему-то именно они у меня получаются лучше всего.

В один день мне позвонил мой друг Рома и сказал: «Коля, помнишь ты у нас автотесты делал с селениумом? Помоги мне сделать так же красиво».

Отправив Роме ссылку на свой гитхаб и устроив пару созвонов с объяснениями, что и как работает, я добился от него заветного «Я понял». 

Спустя два дня Рома позвонил снова: «Коля, я всё понял, а вот ребята в моей команде — нет. Помоги мне объяснить им».

Внутри я расскажу от том, как:

ускорить написание тестов;

снизить затраты на их поддержку;

прокачаться в написании фреймворков;

сэкономить деньги компании;

сохранить нервы сотрудников.

Читать далее

Как я победил хаос умных устройств, или Цифровая трансформация жилого пространства

Level of difficultyEasy
Reading time9 min
Views47K

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

Читать далее

Flask для начинающих — Часть 2 пишем landing page+admin panel с редактированием контента

Level of difficultyEasy
Reading time40 min
Views41K

Здравствуйте! Меня зовут Михаил, и я пишу эту статью специально для начинающих программистов, желающих изучить основы веб-разработки с использованием Flask.
 Я сам активно занимаюсь разработкой проектов на Flask и хочу поделиться своими знаниями и опытом, чтобы помочь вам начать свой путь в мире веб-разработки.

Flask для начинающих - Часть 2 создание Веб проекта.

Мы создадим с вами мини проект - веб сайт с админ панелью и обновлением контента сайта. При помощи Python, HTML, CSS, Bootstrap, Flask, SQLite.

создать сайт на Flask

Строим свой SSO сервер используя Spring Authorization Server

Level of difficultyMedium
Reading time45 min
Views50K

На днях я решил сделать под все свои pet-проекты собственный SSO сервис, дабы не заморачиваться каждый раз с авторизацией и аутентификацией. Возиться с этим особо долго мне не хотелось. Все таки это для pet-проектов. Поэтому выбор пал на Spring Security. Мне давно уже было интересно посмотреть в действии как на Spring Boot 3, так и новый Spring Authorization Server версии 1.x.x. В данной статье речь пойдёт о проблемах и их решениях при построении собственного SSO. А также я поставил себе ряд интересных требований, с которыми я постараюсь справиться и рассказать о своём опыте.

Читать далее

Строим свой SSO. Часть 4: Vue.js, Регистрация, Сброс пароля

Level of difficultyMedium
Reading time44 min
Views13K

Всем привет!
Мы продолжаем строить собственный SSO Server. Сегодня мы детально разберем Vue.js приложение, а также спроектируем и реализуем долгожданные механизмы регистрации и сброса пароля. Как всегда, дополнительно мы разберём ряд интересных общесистемных решений, которые наверняка Вам пригодятся в дальнейшем.

Читать далее

Почему я перестал использовать Vim

Level of difficultyEasy
Reading time5 min
Views35K

Говорят, однажды попробовав Vim, назад уже не вернешься.

Для разработчика Vim может быть опасен. Особенно если коллеги настаивают на его использовании или, как минимум, тонко намекают. Как если бы ты был Нео из «Матрицы», и вдруг в обычный, ничего не предвещающий день…

Опа! Сбой в матрице.

Выбор за тобой. Потом пути назад уже не будет. Примешь синюю таблетку — история закончится, ты проснёшься в своей постели и будешь верить, что GUI — это сила. Примешь красную — и останешься в Стране Чудес, а я покажу тебе, насколько глубока кроличья нора Vim. Помни — я предлагаю только правду, и ничего более.

Читать далее

Реальная скорость Wi-Fi 6 (на предприятиях)

Reading time6 min
Views19K

В 2018 я переводил статью известного в узких кругах инженера Девина Акина (CWNE #1), выводы которой не радовали менеджеров по продажам. Тогда, средняя скорость на корпоративной точке доступа была 75Мбит/c. На дворе 2021й, инженеры активно строят Wi-Fi сети 6го поколения, которые обещали фантастические скорости. Как обстоят дела на самом деле решила выяснить небольшая дружная компания Wi-Fi инженеров. Мифы про гигабитные скорости снова были развеяны. Неужели всё ещё достаточно порта FastEthernet на точку? В реальных условиях чаще да, в идеальных нет, но выше 150Мбит/c (на всех) вы вряд-ли получите. Об этом и порассуждаем дальше, да не в теории а на практике.

Читать далее

Information

Rating
Does not participate
Location
Praha, Hlavni Mesto Praha, Чехия
Registered
Activity