Pull to refresh
2
0
Send message

PostgreSQL: настройка и оптимизация производительности. Часть 1

Level of difficultyMedium
Reading time9 min
Views23K

Данная статья посвящена способам повышения производительности PostgreSQL и EDB Postgres Advanced Server (EPAS) с 10 по 13 версии. Мы начнём с аппаратного обеспечения и будем двигаться вверх по стеку, оставив напоследок SQL-запросы. 

Читать далее

Как правила линтинга влияют на архитектуру приложения

Level of difficultyMedium
Reading time3 min
Views6.5K

В eslint есть одно простое, но мощное правило, которое поможет вам в поддержании архитектуры приложения.

Читать далее

Графический интерфейс для bash, делаем работу в командной строке удобнее

Level of difficultyMedium
Reading time3 min
Views19K

Когда пишешь код в IntelliJ IDEA, привыкаешь что везде есть подсказки, везде где можно работает комплишен, всегда можно одним кликом перейти на декларацию метода или на его юсаджи. После этого интерфейс командной строки выглядит как-то бедно. Конечно, он очень хорошо продуман, сделан настолько удобным, насколько это возможно в текстовом UI, но в графическом UI возможностей намного больше. Представляю вам плагин для JetBrains IDE, позволяющий работать в командной строке cо всеми удобствами IDE.

Читать далее

5 неочевидных возможностей FastAPI: упрощаем работу с бэкендом на Python

Level of difficultyMedium
Reading time11 min
Views28K

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

Пользовательские API-интерфейсы могут быть реализованы на Python с использованием нескольких фреймворков. В этой статье остановимся на особенностях работы с одним из самых популярных вариантов — платформой FastAPI, библиотеки которой активно используют такие технологические гиганты, как Microsoft, Netflix, Uber. Речь пойдет о некоторых расширенных функциях FastAPI, которые могут использовать в своих проектах те разработчики, у кого уже есть базовые знания о фреймворке.

Читать далее

Решаем задачу заливки однородной области

Level of difficultyMedium
Reading time8 min
Views5.7K

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

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

Работает она очень просто: необходимо выбрать желаемый цвет заливки и кликнуть указателем мыши на нужную область изображения. В результате выбранный регион изменит цвет на указанный. Этот механизм реализуется специальным алгоритмом, который носит название «метод „наводнение“», или, по-английски, flood fill. 

В этой статье мы возьмём интересную задачу с собеседования, которую можно решить при помощи алгоритма flood fill, разберём её и познакомимся с несколькими вариантами решения. В этом поможет Евгений Бартенев, техлид и автор курса «Python-разработчик» в Яндекс Практикуме.

Читать далее

Лучшие техники ревью кода

Level of difficultyMedium
Reading time5 min
Views15K

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

Читать далее

7 советов по повышению производительности труда программиста

Level of difficultyEasy
Reading time5 min
Views8.9K

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

Читать далее

Чеки от Google в моем почтовом ящике, или как меня изменил собственный сын

Reading time6 min
Views12K

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

Читать далее

«Разделяй и властвуй» для OpenStreetMap мира в PostgreSQL

Level of difficultyMedium
Reading time28 min
Views8K

Продолжу рассказ "Как поместить весь мир в обычный ноутбук: PostgreSQL и OpenStreetMap" секретами о геоданных OpenStreetMap, на которых множество компаний построили бизнес но не все делятся подробностями... Что ж, сегодня приоткроем завесу!

База данных в PosgreSQL после загрузки из дампа занимает больше 587 GB. Это уже по меркам СУБД большая база и одна огромная таблица на каждый тип объектов не сработает. Для управляемости такие данные надо секционировать, хорошо что PostgreSQL поддерживает декларативное секционирование данных. Осталось лишь придумать как разделить географические данные. После поисков и сравнений мне на помощь пришла иерархическая гексагональная геопространственная система индексирования H Все это было реализовано в моем проекте openstreetmap_h3 для быстрой обработки и загрузки мира в базу.

Читать далее

История одного интервью. Лайфхак

Reading time3 min
Views14K
Сегодня я прошел очередное собеседование, четвертое по счету из серии. Забегая вперед, скажу, что похоже я придумал сегодня лайфхак. Начну по порядку.

Архитектор из Матрицы
Читать дальше →

В человеческом кишечнике происходит массовое вымирание. Ученые пытаются сохранить наши бактерии для будущих поколений

Reading time5 min
Views16K

Неожиданно ценные люди для нашего будущего

Не читать, если кушаете! Я предупредил.


Оказывается, разнообразие бактерий в нашем кишечнике стремительно сокращаются. Люди всё чаще питаются плюс-минус одним и тем же. Многие уникальные биомы мы уже потеряли. Чтобы сохранить разнообразные бактерии человечества, ученые запустили большой проект, в ходе которого они собирают, замораживают и хранят экскременты со всего мира. Создается целый подземный банк таких «богатств», который хотят оставить для будущих поколений. Как хранилище семян в Шпицбергене, только… скажем так, не настолько романтично.

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

Нагреваем ЦОД и экономим. Прием реально работает, но есть нюансы

Reading time4 min
Views3.5K

Недавно один из крупнейших колокейшн-провайдеров Equinix заявил, что будет повышать температуру в машинных залах ЦОД. Это позволит снизить затраты на охлаждение и сэкономить на электричестве.

Оптимизация расходов электроэнергии в дата-центре — тема вполне злободневная, с учетом того, что многие энергоэффективные решения стали недоступны на российском рынке. Мы строим ЦОД уже много лет и по опыту можем сказать, что зачастую компании заранее закладывают в бюджет внедрение энергоэффективных систем. А в этом случае можно ничего дополнительно не устанавливать — просто немного повысить температуру в машинном зале и сразу начать экономить. Рискованная ли это затея — разбираем в этом посте.

Читать далее

ChatGPT показала 5 тысяч самых опасных файлов, с помощью которых можно легко взламывать сайты

Reading time3 min
Views20K

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

Читайте, что из этого получилось.

Подробнее

Удивительные беспроцессорные «текстовые» компьютеры Wang 2200 — мечта писателя конца 70-х

Level of difficultyEasy
Reading time7 min
Views18K


В прошлой статье я рассказал об американском изобретателе китайского происхождения Ван Ане, создателе памяти на магнитных сердечниках, который построил с нуля успешный IT-бизнес в США. Самым интересным проектом основанной им компании Wang Laboratories стал специализированный компьютер для обработки текстов — удивительная и очень самобытная машина, аналогов которой в мире попросту не существовало. Конструкции и истории создания этого компьютера я решил посвятить сегодняшнюю заметку.
Читать дальше →

(Не)безопасная разработка: как выявить вредоносный Python-пакет в открытом ПО

Reading time5 min
Views4.7K

Открытое ПО сегодня привлекает повышенное внимание с разных сторон — разработки, бизнеса, технологий. Естественно, и его безопасность стоит отдельным вопросом, ведь злоумышленники также активно интересуются open source и создают угрозы для безопасной разработки. Доставка вредоносного кода через сторонние зависимости стала одним из опасных способов заражения.

В сложившейся ситуации, ввиду развития тренда, уже недостаточно просто искать вредоносный код: его нужно анализировать и прорабатывать возможные интеграции с другим ВПО, связи между контрольными серверами и т. п. Соответственно, к этому нужно привлекать вирусных аналитиков и специалистов по threat intelligence. Именно поэтому наша команда заинтересовалась поиском угроз в публичных репозиториях и разработкой системы для оперативного выявления вредоносов. В нее мы вложили весь наш опыт исследования ВПО, атрибуции — всего, с чем мы сталкивались в процессе изучения APT-группировок. В итоге мы создали систему PT PyAnalysis, которую можно встроить в процесс безопасной разработки.

Читать

ООП мертв, да здравствует ООП

Level of difficultyMedium
Reading time3 min
Views6.2K

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

Читать далее

19,6 млн рублей за 2022 год. Парсинг сайтов. 25 советов желающим заняться

Level of difficultyMedium
Reading time5 min
Views14K

Меня зовут Максим Кульгин, моя компания xmldatafeed занимается парсингом сайтов в России порядка четырёх лет. По итогам прошедшего 2022 года поделюсь советами для тех, кто думает о подобном бизнесе. Бизнес очень интересный, но наполнен нюансами, которые и расскажу в статье.

Я ранее рассказывал про наш опыт развития бизнеса на парсинге сайтов в двух статьях (часть 1 и часть 2). Теперь хочу подвести итоги 2022 года и дать некоторые советы командам, которые хотят составить нам конкуренцию (не вижу, кстати, в этом ничего страшного, т. к. рынок довольно большой и скорее всего у вас будет свой путь, отличный от нашего). Никого, разумеется, не учу, пишу только наш опыт, с ним можно согласиться или нет — но у нас именно так… Всегда рад комментариям, которые заставляют задуматься и взглянуть на то, что делаем с другого ракурса.

Читать далее

Что такое веб-тестирование? Типы тестирования веб приложений

Level of difficultyMedium
Reading time7 min
Views27K

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

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

Какие существуют типы тестирования веб-приложений?  

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

Читать далее

Зачем нужен контейнер pause в Kubernetes

Reading time4 min
Views10K

Вы когда-нибудь задумывались, почему появляются контейнеры pause? Когда мы создаем поды, мы не помним, что когда-либо создавали эти контейнеры pause, так откуда же они берутся? Вы можете подумать, что, так как мы не создавали эти контейнеры самостоятельно, возможно, кластер K8s автоматически создал их?

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

Читать далее

Information

Rating
6,158-th
Registered
Activity