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

Пользователь

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

Swagger (OpenAPI 3.0)

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

Swagger - это фреймворк для спецификации RESTful API. Его прелесть заключается в том, что он дает возможность не только интерактивно просматривать спецификацию, но и отправлять запросы – так называемый Swagger UI. Также возможно сгенерировать непосредственно клиента или сервер по спецификации API Swagger, для этого понадобиться Swagger Codegen.

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

Git. Скачем между ветками как древесные лягушки

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров26K

Статей на тему много, но, видимо, недостаточно: время от времени слышу от коллег (последние 10 лет, в 4-х разных компаниях):

«Не могу пошарить экран с кодом, у меня другая ветка сейчас».

«Не хочу переключать ветку, придется запускать кодогенерацию, у меня сбросятся build-файлы, потом это опять пересобирать!»

«Стаскивать ветку для просмотра ПР? Это же неудобно, надо "стэшить" изменения, ветку переключать».

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

Фоновые асинхронные задачи в FastAPI и их мониторинг

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

Привет! Меня зовут Иван, я бэкенд-разработчик в KTS.

Сегодня расскажу, как в FastAPI эффективно работать с фоновыми задачами и настроить их мониторинг в Prometheus.

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

В статье опишу 5 вариантов: встроенный в FastAPI Background Tasks и 4 библиотеки — ARQ, SAQ, FastStream, адаптированный к асинхронному коду Celery.

В конце расскажу, как мониторить фоновые задачи.

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

Гарвардский курс CS50 на русском. Все серии

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


Друзья, мы рады сообщить, что перевод всего гарвардского курса CS50 закончен.

Мы писали, что в курсе 24 серии, однако последние две оказались одной и той же лекцией (одна прочитана в Гарварде, а другая в Йеле), поэтому в списке переведённых лекций не 24, а 23.

Список лекций под катом.

Что вы узнаете, прослушав этот курс:
  • Основы компьютерных наук и программирования;
  • Концепции алгоритмов и алгоритмичности мышления. Какие задачи можно решать с помощью программирования и каким образом;
  • Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка;
  • Основы языка программирования C и Scratch;
  • Основы баз данных и SQL;
  • Веб-разработка: основы CSS, HTML, JavaScript и PHP;
  • Основы подготовки презентации проектов по программированию.


Курс переведён и озвучен нашей студией по заказу JavaRush, и мы хотим сказать им огромное спасибо за поддержку!
Всего голосов 40: ↑37 и ↓3+34
Комментарии34

Где найти ментора в IT? Обзор площадок

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

Сейчас менторство считается одним из мощнейших рычагов роста в IT и отличным способом развития soft & hard skills. На рынке уже тысячи менторов по различным тематикам. Но где найти этого эксперта, который подскажет верный путь, поможет решить рабочую задачу, составить план развития или прокачать новый навык?

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

Гайд по деплою web-приложений для новичков. Часть 1. Shared-хостинг

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров15K

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

В этой статье пошагово разберем самый простой вариант - деплой приложения на хостинг.

Читать далее
Всего голосов 27: ↑22 и ↓5+23
Комментарии31

Приложение для заметок Obsidian Note, или как держать всё и сразу, и при этом — ничего не потерять

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров19K

Приложение Obsidian представляет из себя огромную базу ваших заметок. Одним из её плюсов является поддержка Markdown (.md).

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

Читать далее
Всего голосов 10: ↑7 и ↓3+8
Комментарии28

AWS Lambda — теория, знакомство

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

Краткий экскурс в AWS Lambda


Что это?


AWS Lambda: это вычислительный сервис, который позволяет запускать код практически для любого типа приложения или серверной службы — и все это без необходимости администрирования. AWS Lambda выполняет все администрирование за вас, включая обслуживание сервера и операционной системы, выделение ресурсов и автоматическое масштабирование, мониторинг кода и ведение журнала. Все, что вам нужно сделать — это предоставить свой код на одном из языков, которые поддерживает AWS Lambda.

Зачем ее использовать?


  • Деньги. Вы платите только за то время, когда сервис работает.
  • Скорость. Сама по себе лямбда поднимается и работает очень быстро.
  • Удобство. Лямбда имеет много возможностей по интеграции с сервисами AWS.
  • Производительность. Параллельно может выполняться, в зависимости от региона максимально от 1000 до 3000 экземпляров. И при желании, этот лимит можно поднять, написав в поддержку.

У этого подхода есть и свои минусы, вы не можете управлять операционной системой на который выполняется код, не можете контролировать ЦП, память и ресурсы. Всем этим занимается AWS.

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

Что могёт?


Ниже представлен краткий перечень основных функций AWS Lambda. Далее все рассмотрим по порядку.


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

Десять английских идиом, которые поставили меня в тупик

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров56K

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

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

Добро пожаловать под кат
Всего голосов 61: ↑58 и ↓3+73
Комментарии128

Рейтинг Elo в играх для двух игроков

Время на прочтение5 мин
Количество просмотров27K
Раньше наш рабочий процесс прерывался из-за ряда неразрешенных вопросов:

  • А кто из нас лучше всех играет в настольный футбол?
  • С кем бы мне сейчас пойти поиграть?
  • Кого надо уволить, потому что он не работает а только играет?

Наш опыт решения данных вопросов с помощью системы рейтинга Elo будет рассмотрен в статье. А также ссылка на репозиторий и на сайт будут разбросаны по статье.
Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии29

Network Maps. Краткий обзор софта для построения карт сети

Время на прочтение7 мин
Количество просмотров225K
Статья обновляется по мере узнавания автором о новых продуктах и наличия у того же автора свободного времени на добавление информации.

image

0. Вводная..


..или немного оффтопа
Данная статья родилась только потому, что крайне трудно найти сравнительные характеристики подобного программного обеспечения, а то и просто список, в одном месте. Приходится перелопатить кучу материала, чтобы прийти хоть к какому-то выводу.

В связи с этим я решил немного сэкономить время и силы тех, кого интересует данный вопрос, и собрал максимально возможное, читай осиленное мной, количество систем для network mapping'а в одном месте.

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

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

1. Теория


1.1. Зачем?


Чтобы ответить на вопрос «Зачем?» сначала нужно понять, что же такое «Карта сети». Карта сети – (чаще всего) логико-графико-схематическое представление взаимодействия сетевых устройств и их связи, которое описывает их наиболее значимые параметры и свойства. В наше время часто применяется в связке с мониторингом состояния устройств и системой оповещения. Так вот: затем, чтобы иметь представление о расположении узлов сети, их взаимодействии и связях между ними. В связке с мониторингом мы получаем рабочий инструмент для диагностики поведения и прогнозирования поведения сети.

1.2. L1, L2, L3


Они же Layer 1, Layer 2 и Layer 3 в соответствии с моделью OSI. L1 – физический уровень (провода и коммутация), L2 – уровень физической адресации (mac-адреса), L3 – уровень логической адресации (IP-адреса).
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии30

Режим “язвить” в sudo!

Время на прочтение1 мин
Количество просмотров2K
Недавно я обнаружил забавную штуку в программе sudo: программа может язвить и подкалывать, если неправильно вводить пароль. Я расскажу, как активировать эту возможность и дам несколько примеров, что именно sudo может сказать.

Для включения этого режима используйте команду:

sudo visudo

(всегда используйте visudo для редактирования файла sudoers).

Найдите строку, начинающуюся с Default и добавьте insults в конце (все добавления в этой строке через запятую). Получится что-то типа такого:

Defaults !lecture,tty_tickets,!fqdn,insults

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

Заметка: для очистки сессии sudo, чтобы вновь потребовалось введение пароля, используйте:

sudo -K

Несколько примеров:

Maybe if you used more than just two fingers…

I have been called worse.

Listen, burrito brains, I don’t have time to listen to this trash.

Развлекайтесь :)

Перевод сделан для Linux в digg на русском
Всего голосов 58: ↑50 и ↓8+42
Комментарии9

Где новичкам самостоятельно изучать программирование или как обойтись малой кровью

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров44K

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

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

Несколько советов как новичкам не забросить изучение IT

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров22K

Я создаю IT-курсы уже 6 лет, являюсь руководителем направления обучения Бэкенд-разработке в онлайн-школе и даже развиваю свои собственные курсы по программированию на Python. Еще веду корпоративные обучения, работаю в универе и провожу консультации о построении пути в IT.

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

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

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

Читать далее
Всего голосов 24: ↑18 и ↓6+12
Комментарии67

Перегрузка функций в TypeScript

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

Перегрузка функций — это та область TS, которая находится в невидимой зоне для разработчиков, которые изучали JS, а потом на работе «на ходу» начали осваивать TS. Особенно, если изучение JS не было связано с университетом или любым другим фундаментальным образованием. Если вы изучали JS на курсах, то вы никогда не услышите там про перегрузку функций, просто потому что в JS этого функционала нет. А когда вы сами начнете изучать TS, то вы не наткнетесь на перегрузку функций, просто потому что даже не подозреваете о ней. Если, прочитав вступление, вы задались вопросом «Что за перегрузка такая?», то эта статья для вас.

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

NEST.JS. Работа с ошибками. Мысли и рецепты

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

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

Некоторая... академичность. Разобрано множество идей и концепций, но заканчивается всё стандартным: "ваш выбор зависит от вашей ситуации".

Абсолютно отсутствуют упоминания о бюджете. Никто же не будет спорить, что теоретически мерседес лучше, чем восьмёрка по всем показателям... если не считать цены.

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

Кому интересно, прошу под кат.

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

Установка и обновление зависимостей в JavaScript

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

Установка и обновление зависимостей JavaScript


И снова привет! В прошлом посте мы начали рассматривать процесс управления зависимостями в JavaScript, разобрали основы: что такое npm-пакет, как выглядит манифест пакета, в каких полях прописываются зависимости и в принципе что такое дерево зависимостей, а также основы семантического версионирования (semver). Если вы пропустили предыдущий пост, то рекомендую начать с него.


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

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

Освоение AWS CDK: настройка пользовательского домена для вашего HTTP-шлюза

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.5K

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

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

Как сохранять данные в браузере или краткий гайд по LocalStorage

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

Привет! В этой статье я кратко объясню что такое localStorage в JavaScript, его особенности и расскажу как с ним работать.

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

Практическое руководство по разработке бэкенд-сервиса на Python

Время на прочтение57 мин
Количество просмотров179K
Привет, меня зовут Александр Васин, я бэкенд-разработчик в Едадиле. Идея этого материала началась с того, что я хотел разобрать вступительное задание (Я.Диск) в Школу бэкенд-разработки Яндекса. Я начал описывать все тонкости выбора тех или иных технологий, методику тестирования… Получался совсем не разбор, а очень подробный гайд по тому, как писать бэкенды на Python. От первоначальной идеи остались только требования к сервису, на примере которых удобно разбирать инструменты и технологии. В итоге я очнулся на сотне тысяч символов. Ровно столько потребовалось, чтобы рассмотреть всё в мельчайших подробностях. Итак, программа на следующие 100 килобайт: как строить бэкенд сервиса, начиная от выбора инструментов и заканчивая деплоем.



TL;DR: Вот репка на GitHub с приложением, а кто любит (настоящие) лонгриды — прошу под кат.
Читать дальше →
Всего голосов 57: ↑55 и ↓2+66
Комментарии48

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

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

Backend Developer, Web Developer
Intern
Python
English
Linux