Как стать автором
Обновить
26
0

Software Engineer

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

Первые шаги в aiohttp

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

Привет, меня зовут Артём. Я работаю бэкендером в KTS и веду курсы по разработке в KTS Metaclass. Заметил, что труднее всего студентам даются темы по асинхронному программированию.

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

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

Погнали!
Всего голосов 2: ↑2 и ↓0+2
Комментарии6

[Личный опыт] Как я переехал в Австралию всего с двумя годами опыта в разработке

Время на прочтение8 мин
Количество просмотров37K
Продолжаем публикации из рубрики личный опыт. Сегодня iOS-разработчик Игорь Никитин, который два года назад переехал в Сидней, поделится опытом поиска работы, обустройстве на новом месте и впечатлениями от устройства жизни в Австралии. Передаем ему слово!



Всем привет, меня зовут Игорь, и вот уже пару лет я живу в Сиднее и работаю инженером в одной из местных компаний. Сегодня я расскажу о том, как всего за пару лет смог пройти путь от начала карьеры до релокации на другой конец света. Поехали!
Читать дальше →
Всего голосов 35: ↑25 и ↓10+15
Комментарии193

15 базовых советов по Git для эффективной работы каждый день

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

Привет, меня зовут Сергеев Сергей aka gurugray. Сейчас я «Mentor FrontEnd Community» в компании ManyChat. Вы могли видеть мои лекции по релизному циклу и регламенту работ с системами контроля версий в Школе Разработки Интерфейсов Яндекса (ШРИ).


Меня часто спрашивают какие life-hacks или best-practices я использую при работе с Git'ом и репозиториями проекта.


Эта заметка — попытка объяснить те базовые настройки и приёмы, которыми я пользуюсь каждый день. Рецепты не претендуют быть ноу-хау, но могут помочь с освоением ежедневной гигиены работы с репозиторием.


Читать дальше →
Всего голосов 72: ↑68 и ↓4+64
Комментарии63

HackTheBox. Прохождение Oouch. OAuth2, RCE в uWSGI и LPE через DBUS

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

Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox.

В данной статье разберем атаку на OAuth2 аутентификацию, а также зарегистрируем свое приложение для угона куки администратора. В добавок к этому, проэксплуатируем RCE в веб-сервере и сервере веб-приложений uWSGI, а также повысим привилегии через шину сообщений D-Bus.

Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ.

Организационная информация
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Vue.js для начинающих, урок 1: экземпляр Vue

Время на прочтение5 мин
Количество просмотров88K
Сегодня мы предлагаем вашему вниманию перевод первого урока учебного курса по Vue.js для начинающих. Его порекомендовала Наталья Теплухина, Staff Engineer в Gitlab и Core Team Member фреймворка Vue (Q/A сессия с Наташей прошла в нашем инстаграм, а расшифровку можно прочитать здесь)

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


Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии18

Опыт построения умного дома на Raspberry Pi и открытой платформе OpenHAB. Часть 1

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

Два года назад у нас появился загородный дом. Только сейчас, во время пандемии, мы поняли, что это была инвестиция, а не трата бабла повышение уровня жизни. Изначально планировали жить на два дома — квартира в городе и дом за городом. Поэтому появилось желание автоматизировать его по максимуму. Ну, как минимум, чтобы зимой можно было прогреть дом перед приездом.


Эта статья не является полной инструкцией что и как делать, а больше сборником куда копать и что почитать или посмотреть, чтобы сделать самому.


Тем не менее вы найдете для себя много полезной информации и ссылок, а главное при минимальных навыках поиска информации в интернете вы сможете сами найти все необходимые пошаговые инструкции. В наш век DIY (Do It Yourself, самоделки), вы все можете получить в виде 5-20 минутных делай-как-я видео инструкций. Нынче никто уже не пишет по-старинке.

Всего голосов 13: ↑12 и ↓1+11
Комментарии83

Как найти удаленную работу в США и Европе: списки ~1000 компаний, полезные инструменты для поиска + личный опыт инженера

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


Изображение: Unsplash

Вопрос поиска удаленной работы в хороших компаниях из США и Европы актуален всегда – не все хотят переезжать в другую страну, а участвовать в интересных проектах хочется в любое время. В период пандемии, когда перемещение между странами и иммиграция серьезно усложнились, и экономического кризиса, который во многих странах только разгорается, желающих найти удаленку в американской или европейской компании станет еще больше.

Я решил разобраться в том, что для этого нужно сделать инженеру с постсоветского пространства. Для этого я изучил компании, которые предлагают remote-позиции для ИТ-специалистов, нашел несколько полезных сервисов и поговорил с Никитой Львовым, инженером, который как раз недавно нашел такую работу и согласился поделиться опытом. Надеюсь, получилось полезно. Поехали!
Читать дальше →
Всего голосов 57: ↑55 и ↓2+53
Комментарии20

Асинхронный Python-код медленнее обычного кода

Время на прочтение8 мин
Количество просмотров22K
Большинство программистов понимают, что асинхронный Python-код имеет более высокий уровень конкурентности, чем обычный синхронный код. Это даёт некоторые основания полагать, что асинхронный код способен показывать более высокий уровень производительности при решении распространённых задач вроде выдачи динамических веб-страниц или поддержки веб-API.



Но, к сожалению, Python-интерпретатор не выполняет асинхронный код быстрее синхронного.

В реалистичных условиях асинхронные веб-фреймворки показывают немного худшую пропускную способность (выраженную в запросах в секунду), чем обычные, и отличаются гораздо более сильной изменчивостью задержек.
Читать дальше →
Всего голосов 49: ↑35 и ↓14+21
Комментарии51

Todo-лист для командной строки на Deno

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

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


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


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

Monitoring and Logging external services in Kubernetes

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

Greetings to all!

As a matter of fact I haven't found so far any generalized guide on logging and monitoring of metrics from external systems to Kubernetes on the web. Here I want to share with you my own version. First of all it is supposed that you have already got working Prometheus and other services.

As an example I use third-party data for stateful service RDBMS PostgreSQL in a Docker container. In our company we also use the Helm package manager, and you'll find how it works below. You can see same examples in this article below. You can see same examples in this article below. For a complete solution we create a nested chart.
Read more →
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

React-admin и django rest framework

Время на прочтение2 мин
Количество просмотров10K
Наткнувшись недавно на статью о react-admin, я решил попробовать что это за зверь. Было интересно прикрутить это к джанге, благо там есть dataprovider для rest framework.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии3

10 React-компонентов на все случаи жизни

Время на прочтение3 мин
Количество просмотров28K
Я полагаю, что для решения различных задач React-разработки лучше использовать маленькие узкоспециализированные инструменты, а не универсальные решения, предлагаемые библиотеками компонентов. Мне нравится выбирать компоненты самостоятельно, я не люблю читать длинную документацию, и мне хочется избежать бессмысленных обновлений библиотек, после которых в проекте нередко что-то ломается.



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

Материал, перевод которого мы сегодня публикуем, посвящён рассказу о 10 React-компонентах.
Читать дальше →
Всего голосов 46: ↑45 и ↓1+44
Комментарии15

Автодополнение кода и проверка типов для boto3

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

image


Картинка предоcтавлена автором boto3-type-annotations, Allie Fitter


Сейчас мало кто пишет большие проекты на Python без аннотации типов. Это и просто, и позволяет отловить кучу ошибок еще на этапе написания кода, да и работает очень шустро. Но стоит добавить в зависимости boto3, и mypy начинает пестрить сообщениями о том, что аннотаций типов для boto3 не существует в природе.


Не страшно, существует же официальный генератор аннотаций для boto3 botostubs. Только он официально не выпускался, не обновляется и с mypy не работает.


Есть и замечательный boto3-type-annotations, но тоже немного заброшен, и поддержки mypy всё еще нет.


Как же проверять типы для boto3, а бонусом получить автодополнение кода?

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

Нет, динамические системы типов по своей сути не более открыты

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

Священные войны в интернете о системах типов по-прежнему страдают от распространенного мифа о том, что динамические системы типов по своей природе лучше подходят для моделирования предметных областей «открытого мира». Обычно аргумент звучит так: цель статической типизации состоит в том, чтобы как можно более точно зафиксировать все сущности, однако в реальном мире это просто неудобно. Реальные системы должны быть слабо связаны и должны как можно меньше быть завязаны на представление данных, поэтому динамическая типизация приводит к более устойчивой системе в целом.


Читать дальше →
Всего голосов 77: ↑69 и ↓8+61
Комментарии440

Бесплатный VPN сервис Wireguard на AWS

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

Для чего?


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


Статья 19
Каждый человек имеет право на свободу убеждений и на свободное выражение их; это право включает свободу беспрепятственно придерживаться своих убеждений и свободу искать, получать и распространять информацию и идеи любыми средствами и независимо от государственных границ

В данном руководстве мы за 6 этапов развернем свой собственный бесплатный* VPN сервис на базе технологии Wireguard, в облачной инфраструктуре Amazon Web Services (AWS), с помощью бесплатного аккаунта (на 12 месяцев), на инстансе (виртуальной машине) под управлением Ubuntu Server 18.04 LTS.


Я старался сделать это пошаговое руководство как можно более дружественным к людям, далеким от ИТ. Единственное что требуется — это усидчивость в повторении описанных ниже шагов.

Читать дальше →
Всего голосов 59: ↑55 и ↓4+51
Комментарии135

Настраиваем простой VPN с WireGuard и Raspberry Pi в качестве сервера

Время на прочтение4 мин
Количество просмотров50K
Поскольку WireGuard станет частью будущего ядра Linux 5.6, я решил посмотреть, как лучше всего интегрировать этот VPN с моим LTE-маршрутизатором/точкой доступа на Raspberry Pi.

Оборудование


  • Raspberry Pi 3 с модулем LTE и публичным IP-адресом. Здесь будет VPN-сервер (далее в тексте он называется edgewalker)
  • Телефон на Android, который должен использовать VPN для всех коммуникаций
  • Ноутбук Linux, который должен использовать VPN только внутри сети

Каждое устройство, которое подключается к VPN, должно иметь возможность подключаться ко всем другим устройствам. Например, телефон должен иметь возможность подключаться к веб-серверу на ноутбуке, если оба устройства являются частью сети VPN. Если настройка получится достаточно простой, то можно подумать о подключении к VPN и десктопа (по Ethernet).
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии2

Что такое стек MERN, и как с ним работать?

Время на прочтение8 мин
Количество просмотров46K
Привет, Хабр!

Давным-давно мы выпускали пилотный проект о стеке MEAN (Mongo, Express, Angular, Node), который нас в целом не разочаровал, однако, допечаток и обновлений мы в свое время решили не делать — в отличие от издательства Manning, которое эту книгу обновило. Тем не менее, мы продолжаем поиски в данном направлении и сегодня хотели бы поговорить с вами о родственном стеке MERN, где на клиенте располагается не Angular, а React. Слово предоставляется Тиму Смиту.


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

Современный курс по Node.js в 2020

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


Дорогие товарищи инженеры, сообщество Метархия представляет вашему вниманию современный курс по Node.js, который включает глубокий разбор всех возможностей и аспектов платформы. Основной упор делается на то, как создавать надежные высоконагруженные сервера приложений и API без привязки к конкретному фреймворку и даже протоколу, т.е. абстрагировать бизнес-логику в отдельный слой. К лекциям прикреплено множество примеров кода, демонстрирующих гибкую структуру приложений и архитектурные приемы, в том числе работу с СУБД через слой доступа к данным, создание интерактивных приложений на вебсокетах, обеспечение безопасности, Graceful shutdown, межпроцессовое взаимодействие, предотвращение утечек памяти, масштабирование и кластеризацию при помощи процессов и потоков. На текущий момент в курсе 38 лекций (около 35 и ½ часов видео), 37 репозиториев с примерами кода, 4 PDF со слайдами. Перед основной частью курса по Node.js нужно сначала освоить хоть частично курс по асинхронному программированию.

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

Разработка идеального pypi пакета с поддержкой разных версий python

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

Это небольшой мануал/история о том, как создать "идеальный" pypi пакет для python, который каждый желающий сможет установить заветной командой:


pip install my-perfect-package

Ориентирована на новичков, но призываю и профессионалов высказать свое мнение, как можно улучшить "идеальный" пакет. Поэтому прошу под кат.

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

Пример клиент-серверного приложения на Flutter

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


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


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

Информация

В рейтинге
Не участвует
Откуда
Kraków, Malopolskie, Польша
Дата рождения
Зарегистрирован
Активность

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

Backend Developer
Senior
Python
Django
Linux
Docker
Kubernetes