Search
Write a publication
Pull to refresh
1
0

User

Send message

SQLAlchemy с FastAPI для асинхронной работы

Reading time5 min
Views77K

В этой заметке я буду использовать новые асинхронные возможности ORM-слоя вместе с новыми запросами в стиле 2.0. Мы создадим простое FastAPI-приложение с двумя маршрутами. Один — для добавления городов и их жителей, а другой — для вывода списка наиболее населенных объектов.

Читать далее

Django и PWA

Reading time6 min
Views12K

Всем привет! Гуляя по Хабру, мне ни разу не доводилось обнаружить статью на тему Django + PWA. А ведь тема интересная (лично мне пришлось потратить 4 дня на то, чтобы с ней разобраться). И дабы сэкономить ваше время, в данной статье я попытался представить достаточно простой способ для создания прогрессивного веб приложения (PWA) вместе с Django без сторонних библиотек.

Читать далее

Почему изучать программирование так сложно?

Reading time13 min
Views96K

Коля был простым «белым воротничком» в офисе и решил, что хочет научиться программировать, поэтому он поспрашивал вокруг с чего начать. Он начал с изучения Ruby, а затем пробежался по другим языкам, таким как Scala, Clojure и Go. Он изучал Emacs, затем Vim и даже раскладку клавиатуры Дворжака. Он брался за Linux, баловался Lisp и кодировал на Python, живя в командной строке более полугода.

Советы, которые получал Коля, дёргали его сначала в одну сторону, потом в другую, и так далее, как лист в торнадо, пока он, наконец, не прошёл «каждый мыслимый и немыслимый онлайн-курс». В конце концов, несмотря на то, что в итоге он получил работу в разработке, Коля:

Читать далее

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

Reading time8 min
Views71K

У вас возникал синдром «сожалений специалиста по найму»? Это когда вы жалеете о том, что наняли кого-то сразу после того, как он начал работать. Может быть, вам не нравится внешность новичка, а может вы просто желаете погрузить мир в хаос. Или, хуже того, он как-то упомянул, что любит джаз. Какой бы ни была причина, этот пост поможет вам заставить его уволиться самостоятельно, выбрав для него худший первый проект.

Не ждите, пока он обустроится


Ему всё ещё не выдали монитор? Менеджер проекта так и не добрался до него, чтобы познакомить с продуктом, над которым работает команда? Его бейдж не работает и ему приходится просить коллег провести его в туалет? Это самое подходящее время встретиться с ним и объяснить все подробности нового проекта. Есть какой-то компонент, который он пока не освоил? Сэкономьте своё время и пока не объясняйте его — пусть разберётся самостоятельно после завершения проекта.
Читать дальше →

Разбираемся с концепцией аутентификации в HTTP

Reading time20 min
Views47K

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

Хотелось создать статью, которая поэтапно раскроет базовые концепции аутентификации и авторизации на практике, после чего можно применять эти знания, чтобы реализовать свою кастомную аутентификацию и примерно понимать, как она работает в очередном пакете для django-rest-framework, flask или fastapi. А вообще в целом эти концептуальные знания должны пригодиться(надеюсь) и для реализации аутентификации в других экосистемах. В статье есть упрощения, код для учебных целей.

Читать далее

Ищем аномалии: доход, отношения и 10х-программисты

Reading time21 min
Views11K

Вскоре после того как я, в сентябре 2013, начал вести блог (мне, студенту, тогда больше нечем было заняться), я поставил перед собой цель — писать по статье в неделю. В результате — со дня рождения моего блога и до того момента, когда я начал работать в Wave (тогда мне уже было чем заняться, в результате посты я выкладывал гораздо реже), я опубликовал примерно 150 материалов.

Результаты публикации этих 150 статей оказались очень и очень разными:

— Два поста оказались крайне успешными, добрались до главной страницы Hacker News (первый — о том, что произошло со всеми непрограммистами, второй — о читабельности, хакабельности и абстрагировании кода).

Дэн Луу, после того, как увидел второй из вышеупомянутых постов, подписался на мой блог и начал слать на Hacker News многие мои материалы. В результате ещё штук 5 статей стали довольно-таки популярными. Это привело к приходу в мой блог первой волны подписчиков, с которыми я не знаком лично. Плюс — это дало мне серьёзную мотивацию писать дальше. Я и Дэн, в итоге, стали хорошими друзьями.

— Примерно 95% оставшихся постов получились совершенно непримечательными.

Это — очень типичный разброс результатов публикаций, на который могут рассчитывать блогеры: несколько «хитов» и куча «хлама». Через восемь лет я развил достаточно хорошее чутьё на то, какой пост найдёт отклик у читателей. В результате я смог почти полностью уйти от написания совершенного «хлама». Но, даже учитывая это, несколько моих лучших недавних постов (этот и этот) оказались гораздо успешнее других. Речь идёт о том, что многие делились с другими ссылками на них, и о комментариях к ним, вроде «то, что я узнал, сильно на меня повлияло».

Читать далее

Я год шпионил за собой — что из этого вышло. Простой секрет личной эффективности

Reading time5 min
Views124K

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

Читать далее

Книга «Python для сетевых инженеров. Автоматизация сети, программирование и DevOps»

Reading time13 min
Views29K
image Привет, Хаброжители!
Сети образуют основу для развертывания, поддержки и обслуживания приложений. Python — идеальный язык для сетевых инженеров, предлагающий инструменты, которые ранее были доступны только системным инженерам и разработчикам приложений. Прочитав эту книгу, вы из обычного сетевого инженера превратитесь в сетевого разработчика, подготовленного ко встрече с сетями следующего поколения.
Третье издание полностью переработано и обновлено для использования Python 3. Помимо новых глав, посвященных анализу сетевых данных с помощью стека ELK (Elasticsearch, Logstash, Kibana и Beats) и Azure Cloud Networking, в него включены сведения по использованию Ansible и фреймворков pyATS и Nornir. Кроме того, были обновлены примеры для лучшего понимания концепций и обеспечения совместимости.
Читать дальше →

Восстановление (импутация) данных с помощью Python

Reading time8 min
Views17K

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

В науке о данных разведочный анализ данных (exploratory data analysis, EDA) является самым важным этапом в проекте и занимает около 70-80% времени всего проекта. Такой анализ позволяет изучить какие-то свойства данных, найти в них закономерности, аномалии, очистить их, подготовить и построить начальные модели для дальнейшей работы. На этом этапе можно определить вид распределения, оценить основные его параметры, обнаружить выбросы, построить матрицу корреляции признаков и т.д.

Читать далее

Группы асинхронных задач в Python 3.11

Reading time4 min
Views13K

Вчера на официальном сайте был опубликован первый релиз-кандидат Python 3.11, который принесет важные оптимизации и доработки в возможности языка. Релиз планируется в октябре этого года, но уже сейчас можно поэкспериментировать с новыми возможностями и сегодня мы поговорим о группах исключений и асинхронных задач. Первые позволяют одновременно выбрасывать и обрабатывать несколько исключений, в то время как вторые позволяют объединять задачи в общий event loop и координированно управлять группами задач.

Читать далее

Feature Engineering или стероиды для ML моделей

Reading time6 min
Views19K

Привет, чемпион!

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

Рассмотрим несколько кейсов на эту тему более подробно. Данные будут упрощённые, но обещаю, от этого примеры не станут менее интересными ?.
Читать дальше →

Как стажёр оптимизировал запросы и нашел баг в Django

Reading time10 min
Views20K

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

Недавно я нашел баг в Django, создал тикет с исправлением и его приняли.

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

Читать далее

Опыт участия в Kaggle соревновании Ubiquant Market Prediction или как плохая организация может убить любое соревнование

Reading time7 min
Views2.3K

В период с 18 января по 18 июля на сайте Kaggle проходило соревнование Ubiquant Market Prediction от китайской компании Ubiquant Investment. Я поучаствовал в этом соревновании и мой опыт участия оказался скорее негативным, в первую очередь из-за отвратительной организации соревнования, но об этом позже. Для начала давайте расскажу, что это было за соревнование.

Читать далее

Зачем фридайверы закрывают друг другу рот рукой

Reading time8 min
Views44K

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

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

Читать далее

Как организовать код в Python-проекте, чтобы потом не пожалеть

Reading time10 min
Views97K

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

Бенджамин Франклин

Python отличается от таких языков программирования, как C# или Java, заставляющих программиста давать классам имена, соответствующие именам файлов, в которых находится код этих классов.

Python — это самый гибкий язык программирования из тех, с которыми мне приходилось сталкиваться. А когда имеешь дело с чем-то «слишком гибким» — возрастает вероятность принятия неправильных решений.

Читать далее

Почему айтишники не могут пройти собеседование с эйчаром

Reading time7 min
Views85K

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

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

Читать далее

Не трогайте разработчиков. Отстаньте. Просто не беспокойте

Reading time13 min
Views77K


Всем привет! Меня зовут Ян, я руководитель разработки Департамента ИТ инвестиционного бизнеса Газпромбанка. Совершенно неожиданно я занял первое место на конференции Highload++ с докладом про то, как организована работа в наших командах разработки.

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

В результате из простой задачи «не трогайте разработчиков» получилось сделать и очень правильное обучение (если вы дежурите, то у вас нет шансов не разбираться во всех процессах команды), и снижение техдолга (дежурный не берёт таски по фичам на спринты, но может заниматься документацией и всякими вещами в наведении порядка, до чего обычно не доходят руки), и много чего ещё. Сначала казалось, что за это мы платим снижением эффективности команды на 8–10 % (ведь мы выключаем дежурного из разработки), но на деле оказалось, что эффективность даже растёт. Есть ряд вещей, которые очень поменялись и в управлении такими командами в лучшую сторону.

Естественно, такой подход имеет кучу подводных камней и подходит далеко не всем и не каждому типу команд.

Сейчас расскажу про практический опыт.
Читать дальше →

Как завести счета в Казахстане и получить платежные дебетовые карточки менее чем за одну неделю

Reading time4 min
Views41K

Задавайте вопросы под постом, друзья, и я постараюсь ответить на ваши комментарии (по делу).

Предисловие

Мы разберем, как завести счета в Казахстане и сделать рабочие карточки Visa и Mastercard в различных банках. Вы узнаете, зачем я поехал в соседнюю страну, к чему это привело, как по приезде взаимодействовать с финансовой системой наиболее быстро и эффективно, и что для этого требуется.

Также прошу иметь в виду, что я использую понятие «западный банк» в контексте того, что банк НЕ российский.

Зачем?

Итак, давайте разберемся, для чего нужны карты казахстанских банков. Очевидно, что Россия оказалась под жесткими финансовыми санкциями, и сейчас нашими Mastercard и Visa невозможно оплатить никакие услуги западных сервисов

Читать далее

Как это устроено: атомные часы

Reading time22 min
Views76K

Привет Хабр! Сегодня у нас выходит статья в Nature Physics, в которой мы рассказываем про один интересный апгрейд для атомных часов. А нашу предыдущую работу по этой теме — в тот раз в самом Nature — даже упоминали пару раз на Хабре. Но то ли наш пресс-релиз оказался слишком сложным, то ли тема слишком специфичной, короче говоря, я из тех заметок вряд ли бы что-либо понял. Поэтому сегодня попробую простым языком рассказать про то, как устроены атомные часы и что интересного нас ждет в ближайшем будущем.



Оптические атомные часы в университете Токио. Credit: H. Katori

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

А ваша служба является RESTful? Все что необходимо/обязательно знать про веб службы и REST

Reading time18 min
Views158K

Введение


Вот не люблю я изобретать велосипед и статью я бы эту не написал, но пришлось. Про REST сказано уже довольно много. Многие поставщики веб служб готовы клясться, что их службы являются RESTful. Во время собеседования вы точно услышите хотя бы несколько вопросов про REST, независимо от того это собеседования для бэкенд, мобайл или фронтенд разработчика. Я вот помню как-то во время одного собеседования меня задали такой вопрос: «Вот вы написали в своем резюме, что знайте REST․ Ответьте пожалуйста, какой HTTP код вы получите, если при запросе к RESTful сервису ресурс не найден?». Ответ 404 был принят единогласно. Если честно, я так и не понял, как этот вопрос помог понять знаю ли я REST или нет, но одно могу уверенно сказать: REST понимают далеко не все. Вот некоторые вопросы, которые мучали меня долгое время:

  1. Зачем REST стал таким трендовым? Это архитектура была же предложена еще в 2000 году?
  2. Что я получу если моя служба будет RESTful?
  3. Как определить является ли служба RESTful или нет?
  4. Как правильно должны создаваться URL REST служб?
  5. Какие http методы и коды должны быть использованы в RESTful службе?

Если вы не можете дать исчерпывающего ответа хотя бы на один из этих вопросов, то продолжайте чтение. Если вы можете однозначно ответить на все эти вопросы, можете привести формат правильного URL, считайте, что GET, POST, PUT, DELETE обязательно должны соответствовать CRUD операциям с ресурсами, то вам обязательно надо продолжать чтение.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity