Pull to refresh
20
0
Евгений Бурдин @burdin

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

Send message

Экзокосмонавтика и точки Лагранжа или держитесь подальше от суперземель

Reading time9 min
Views16K

Романтическая научная фантастика XX века, а тем более космооперы, по-видимому, почти не учитывали фактор существенного отличия гравитации у разных планет, на которые приходится эпизодически высаживаться или колонизировать их. Как я уже писал в некоторых публикациях, в особенности, «Суперземля как иллюзия» и «Гикеаны, потомки нептунов», мы в настоящее время настолько одержимы идеей, что среди экзопланет найдётся множество жизнепригодных или даже обитаемых, что на месте мининептуна всегда готовы увидеть суперземлю. Впрочем, такое заблуждение характерно не только для нашего времени. Ещё в начале XX века Венера считалась «юной сестрой» Земли (так как предполагалось, что, чем ближе планета к Солнцу, тем позже она сформировалась), что там может царить тропическая эра, подобная мезозою, шуметь экзотические леса, а обширные океаны из-за сильной минерализации могут быть наполнены «зельтерской водой». Климат Венеры и её парниковый эффект – тема для отдельной публикации, и пока ограничусь ссылкой на это исследование 2019 года, в котором выдвигается гипотеза, что бесконтрольный парниковый эффект на Венере существует лишь чуть более 700 миллионов лет, а до этого там могли существовать вполне комфортные для жизни условия. А в этой статье попробуем обсудить феномен гравитационных колодцев и их опасность при сближении с суперземлями. Отдельно поблагодарю уважаемого @ilmarinen за его интереснейшие публикации о гравитационных манёврах в ныне закрытом корпоративном блоге «Маклауд», под впечатлением от которых я взялся писать эту статью.     

Читать далее
Total votes 103: ↑115 and ↓-12+127
Comments111

Лучшие практики для надёжной работы с RabbitMQ

Level of difficultyEasy
Reading time13 min
Views19K

Привет, Хабр! Я Женя, архитектор интеграционной платформы в Точке, отвечаю за асинхронный обмен сообщениями между внутренними сервисами, за ESB и за брокеры сообщений.

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

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

Следуй за белым кроликом
Total votes 58: ↑58.5 and ↓-0.5+59
Comments16

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

Level of difficultyMedium
Reading time33 min
Views96K

Привет, Хабр!

Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность.

Читать далее
Total votes 216: ↑214 and ↓2+212
Comments77

Итак, вы думаете, что знаете Git? Часть вторая: новое в Git

Level of difficultyEasy
Reading time4 min
Views27K

Автор оригинала Скотт Чакон — сооснователь GitHub и основатель нового клиента GitButler. Этот клиент ставит во главу угла рабочий процесс и удобство разработки, в том числе код-ревью, и не является просто очередной обёрткой над CLI git.


Далее в нашей серии постов из трёх частей у нас новые фичи! Здесь я расскажу про пять относительно новых вещей в git, о которых вы могли не слышать, потому что ну почему вы?


Мы взглянем на:


Погружаемся!
Total votes 42: ↑41 and ↓1+40
Comments84

Почему B-деревья быстрые?

Level of difficultyEasy
Reading time7 min
Views46K

B-дерево — это структура, помогающая выполнять поиск в больших объёмах данных. Она была изобретена более сорока лет назад, однако по-прежнему используется в большинстве современных баз данных. Хотя существуют и более новые структуры индексов, например, LSM-деревья, B-дерево пока никто не победил в обработке большинства запросов баз данных.

После прочтения этого поста вы будете знать, как B-дерево упорядочивает данные и выполняет поисковые запросы.

Читать далее
Total votes 185: ↑184 and ↓1+183
Comments13

SQLAlchemy: а ведь раньше я презирал ORM

Reading time10 min
Views34K

Так вышло, что на заре моей карьеры в IT меня покусал Oracle -- тогда я ещё не знал ни одной ORM, но уже шпарил SQL и знал, насколько огромны возможности БД.

Знакомство с DjangoORM ввело меня в глубокую фрустрацию. Вместо возможностей -- хрена с два, а не составной первичный ключ или оконные функции. Специфические фичи БД проще забыть. Добивало то, что по цене нулевой гибкости мне продавали падение же производительности -- сборка ORM-запроса не бесплатная. Ну и вишенка на торте -- в дополнение к синтаксису SQL надо знать ещё и синтаксис ORM, который этот SQL сгенерирует. Недостатки, которые я купил за дополнительную когнитивную нагрузку -- вот уж где достижение индустрии. Поэтому я всерьёз считал, что без ORM проще, гибче и в разы производительнее -- ведь у вас в руках все возможности БД.

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

SELECT article FROM habr
Total votes 38: ↑32 and ↓6+26
Comments118

Анализ 10 000 вопросов с технических интервью: частотность и вероятность встречи

Level of difficultyEasy
Reading time3 min
Views34K

Привет, Хабр! Я проанализировал 600 публичных мок-интервью с YouTube и собрал из них 10 000 уникальных вопросов. Затем посчитал, как часто они встречаются, и определил вероятность появления каждого вопроса. У меня есть данные по 20 профессиям, включая frontend, python, java-разработчика, специалиста по тестированию и многих других.

Читать далее
Total votes 54: ↑52 and ↓2+50
Comments19

Логирование в Python: руководство разработчика

Reading time13 min
Views155K

Сталкивались ли вы с трудностями при отладке Python-кода? Если это так — то изучение того, как наладить логирование (журналирование, logging) в Python, способно помочь вам упростить задачи, решаемые при отладке.

Если вы — новичок, то вы, наверняка, привыкли пользоваться командой print(), выводя с её помощью определённые значения в ходе работы программы, проверяя, работает ли код так, как от него ожидается. Использование print() вполне может оправдать себя при отладке маленьких Python-программ. Но, когда вы перейдёте к более крупным и сложным проектам, вам понадобится постоянный журнал, содержащий больше информации о поведении вашего кода, помогающий вам планомерно отлаживать и отслеживать ошибки.

Из этого учебного руководства вы узнаете о том, как настроить логирование в Python, используя встроенный модуль logging. Вы изучите основы логирования, особенности вывода в журналы значений переменных и исключений, разберётесь с настройкой собственных логгеров, с форматировщиками вывода и со многим другим.

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

Читать далее
Total votes 24: ↑22 and ↓2+20
Comments9

10 лучших практик логирования в Python

Level of difficultyEasy
Reading time19 min
Views29K

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

В этой статье мы рассмотрим лучшие практики логирования в Python. Следуя им, вы сможете обеспечить информативность, практичность и масштабируемость генерируемых логов. Давайте начнём!

Читать далее
Total votes 72: ↑71 and ↓1+70
Comments19

Решение любопытной цепочки задач c leetcode или сеанс древней алгоритмической магии с последующим разоблачением

Level of difficultyMedium
Reading time4 min
Views5.5K

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

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments41

Многопоточность в Python: очевидное и невероятное

Level of difficultyMedium
Reading time4 min
Views29K

В данной статье я покажу на практическом примере как устроена многопоточность в Python, расскажу про потоки, примитивы синхронизации и о том зачем они нужны.

Изначально я планировал что это будет простая и короткая заметка, но пока готовил и тестировал код нашел интересный неочевидный момент связанных с внутренностями CPython, так что не спешите закрывать вкладку, даже если вы уверены что вы знаете о потоках в Python всё :)

Читать далее
Total votes 44: ↑41 and ↓3+38
Comments16

Больше книг о СУБД — для тех, кто хочет погрузиться в работу с PostgreSQL

Level of difficultyEasy
Reading time4 min
Views6.2K
image

Недавно мы подготовили подборку литературы для тех специалистов, кто хочет поближе познакомиться с Redis. Сегодня мы продолжаем тему и говорим о настоящей легенде. Шутка ли — PostgreSQL развивают с 1996 года. За это время СУБД успела «обрасти» крупным сообществом и не потеряла актуальности. На рынок до сих пор выходят посвящённые ей книги. Мы собрали наиболее свежие издания — им не более двух лет. Все материалы в подборке получили высокие оценки и рекомендации от резидентов Hacker News и Reddit.

Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments3

Шпаргалка по SQL (postgres), которая выручает меня на собесах

Level of difficultyEasy
Reading time8 min
Views182K

Привет, Хабр!

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

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

Читать далее
Total votes 191: ↑184 and ↓7+177
Comments177

Курс молодого бойца PostgreSQL

Reading time13 min
Views525K


Хочу поделиться полезными приемами работы с PostgreSQL (другие СУБД имеют схожий функционал, но могут иметь иной синтаксис).

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

Данный материал будет полезен тем, кто полностью освоил базовые навыки SQL и желает учиться дальше. Советую выполнять и экспериментировать с примерами в pgAdmin'e, я сделал все SQL-запросы выполнимыми без разворачивания каких-либо дампов.

Поехали!
Читать дальше →
Total votes 79: ↑77 and ↓2+75
Comments59

Задачи второго этапа олимпиады «IT-Планеты» по PostgreSQL

Reading time16 min
Views7.2K

В этом году наша компания впервые провела конкурс по базам данных в рамках международной олимпиады IT-Планета по информационным технологиям. Раньше на олимпиаде использовалась СУБД Oracle; наш коллега Евгений Бредня в свое время делился таким опытом.

Олимпиада проходила в три этапа. Первым шел заочный теоретический тест, который преодолели примерно двести человек из двух тысяч зарегистрировавшихся.

На втором этапе участникам было предложено подумать над пятью задачами, каждую из которых следовало решить одним SQL-запросом. Этот этап также проводился заочно: на раздумья было дано примерно три недели. Условия всех задач были опубликованы одновременно, но у каждой был свой крайний срок; поэтому первыми шли задачи полегче, чтобы на более сложные осталось больше времени. Задачи проверялись на корректность (автоматическими тестами) и на качество кода (вручную). По результатам мы отобрали двадцать человек для последнего, очного этапа.

Третий этап состоялся 27 мая в Сочи. К сожалению, из двадцати приглашенных приехать смогли только четырнадцать; между ними и состоялось соревнование. Задачи этого этапа также предполагали решение одним запросом, но сами задания были объединены общей темой, навеянной игрой Го, и строились так, что решение одной задачи помогало подступиться к следующей.

Я занимался придумыванием задач для второго и третьего этапов. Хочу поблагодарить участников олимпиады, которым пришлось их решать, организаторов, собравших нас вместе, и своих коллег: Дарью Рисухину, взвалившую на себя все оргвопросы, Евгения Моргунова, предоставившего задания для первого этапа, а также всех помогавших мне с задачами.

Поговорим о втором этапе
Total votes 18: ↑18 and ↓0+18
Comments3

Механические клавиатуры 2023

Level of difficultyEasy
Reading time28 min
Views46K

Эта статья возникла как результат моих попыток разобраться в рынке механических клавиатур в 2023 году. На Хабре уже был неплохой материал по этой теме, опубликованный в 2012 году - https://habr.com/ru/post/140454/. Поэтому самые полезные блоки оттуда я честно скопипастил (благо лицензия статьи позволяет), но изменилось на самом деле гораздо больше, чем я ожидал. Для всех интересующихся, я также порекомендую https://wiki.geekboards.ru/, где вы можете найти еще больше технических деталей и несколько исторических экскурсов про устройство клавиатур.

Осторожно, дальше будет много букв и картинок (под спойлерами)

Читать далее
Total votes 72: ↑70 and ↓2+68
Comments115

Пишем простой docker-compose.yml для контейнеризации приложения (React, Spring Boot, PostgreSQL, pgAdmin)

Level of difficultyEasy
Reading time21 min
Views33K

В данной статье описан простой пример написания docker-compose.yml файла на примере контейнеризации приложения с использованием Spring Boot на бэкенде, React на фронте, PostgreSQL в качестве базы данных и pgAdmin - для просмотра данных в базе.

Читать далее
Total votes 17: ↑14 and ↓3+11
Comments16

Шпаргалка: fixture в pytest

Level of difficultyMedium
Reading time15 min
Views17K

В данной статье представлены примеры использования фикстур (fixture) для фреймворка автоматического тестирования pytest. Фикстуры представляют собой функции, которые можно использовать для решения различных задач при проведении автоматизированного тестирования.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments2

Docker Compose

Level of difficultyEasy
Reading time6 min
Views25K

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

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

По сути, Docker Compose это тот же Docker, но позволяющий автоматизировать работу с более сложными приложениями. Кроме того, для сценариев с одним контейнером использование Docker Compose обеспечивает независимую от инструмента конфигурацию таким образом, чего не делает отдельный файл Dockerfile. Параметры конфигурации, такие как подключение тома для контейнера, сопоставления портов и переменные среды, могут быть объявлены в файлах docker-compose YML.

Читать далее
Total votes 17: ↑12 and ↓5+7
Comments6
1
23 ...

Information

Rating
Does not participate
Location
Самара, Самарская обл., Россия
Date of birth
Registered
Activity