Как стать автором
Обновить
20
0
Евгений Бурдин @burdin

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

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

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

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

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

Читать далее
Всего голосов 102: ↑114 и ↓-12+126
Комментарии109

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

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

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

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

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

Следуй за белым кроликом
Всего голосов 58: ↑58.5 и ↓-0.5+59
Комментарии16

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

Уровень сложностиСредний
Время на прочтение33 мин
Количество просмотров95K

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

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

Читать далее
Всего голосов 216: ↑214 и ↓2+212
Комментарии77

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

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

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


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


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


Погружаемся!
Всего голосов 42: ↑41 и ↓1+40
Комментарии84

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

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

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

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

Читать далее
Всего голосов 185: ↑184 и ↓1+183
Комментарии13

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

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

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

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

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

SELECT article FROM habr
Всего голосов 38: ↑32 и ↓6+26
Комментарии118

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

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

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

Читать далее
Всего голосов 54: ↑52 и ↓2+50
Комментарии19

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

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

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

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

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

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

Читать далее
Всего голосов 24: ↑22 и ↓2+20
Комментарии9

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

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

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

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

Читать далее
Всего голосов 72: ↑71 и ↓1+70
Комментарии19

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

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров5.5K

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

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

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

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров29K

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

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

Читать далее
Всего голосов 44: ↑41 и ↓3+38
Комментарии16

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

Поехали!
Читать дальше →
Всего голосов 79: ↑77 и ↓2+75
Комментарии59

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

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

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

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

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

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

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

Поговорим о втором этапе
Всего голосов 18: ↑18 и ↓0+18
Комментарии3

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

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

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

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

Читать далее
Всего голосов 72: ↑70 и ↓2+68
Комментарии115

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

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

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

Читать далее
Всего голосов 17: ↑14 и ↓3+11
Комментарии16

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

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

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

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

Docker Compose

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

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

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

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

Читать далее
Всего голосов 17: ↑12 и ↓5+7
Комментарии6
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Самара, Самарская обл., Россия
Дата рождения
Зарегистрирован
Активность