Pull to refresh
9
-1
Василий @nvv

User

Send message

Запускаем PostgreSQL в Docker: от простого к сложному

Level of difficultyEasy
Reading time12 min
Views466K

О простых и продвинутых способах запуска PostgreSQL в Docker: добавляем healthcheck, ставим на мониторинг, настраиваем параметры.

Читать далее
Total votes 39: ↑37 and ↓2+35
Comments38

Геоаналитика с помощью Python и открытых данных: пошаговое руководство

Reading time11 min
Views43K

Геоаналитика с помощью Python: GeoPandas, folium, Uber H3, OSM + примеры как можно определять лучшие локации для поиска помещений под открытие кофейни (и не только).

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

Запросы в PostgreSQL: 4. Индексное сканирование

Reading time20 min
Views17K

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

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

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

PM2: подходим к вопросу процесс-менеджмента с умом

Reading time5 min
Views65K
Буквально пару часов назад у меня завязался спор на тему того, что Node.JS слишком медленная для крупных проектов и ей стоит предпочесть Golang, Rust, PHP, etc. Основным аргументом противоположной стороны в этом споре был факт однопоточности JavaScript. Якобы при разработке приложения производительность просто упрётся в эту однопоточность и ничего сделать уже нельзя — только переписать на каком-то другом языке. Однако дела с этим в NodeJS обстоят немного лучше, чем кажется на первый взгляд. Перед тем, как мы углубимся в эту тему хочу заявить, что уважаю право каждого разработчика использовать тот язык программирования, который пришёлся ему по душе и который он считает предпочтительным в той или иной задаче.

Сделав поиск по ключевому слову «PM2» на Хабре я не нашёл ни одной статьи, посвящённой этому process-менеджеру. Лишь одиночные упоминания в статьях других пользователей. Я загорелся (сильно сказано) идеей наверстать упущенное и пролить свет на этот тёмный уголок разработки backend на Node.JS (о котором многие знают, да, я в курсе). Всех заинтересовавшихся прошу под кат.

Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments12

OCP против YAGNI

Reading time9 min
Views8.4K

Эта статья является переводом материала OCP vs YAGNI.

В этом посте хочется осветить тему OCP и YAGNI – противоречия между принципом открытости/закрытости и принципом «вам это не понадобится».

Давайте начнем с того, что вспомним, что такое OCP. Принцип открытости/закрытости гласит, что: Объекты программного обеспечения (классы, модули, функции и т.д.) должны быть открыты для расширения, но закрыты для модификации.

Впервые он был представлен Бертраном Мейером в его канонической книге «Конструирование объектно-ориентированного программного обеспечения». С тех пор его популяризировал Боб Мартин, когда он представил принципы SOLID.

Официальное определение довольно расплывчато и на самом деле не помогает нам понять основной смысл. Итак, давайте углубимся в этот принцип.

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

Книжный рынок мёртв, а я ещё нет

Reading time8 min
Views28K

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

Нет, я серьёзно. Кажется, я прочитал их все. Конечно, не все вообще, а все интересные. Современная книжная пустыня настолько пуста и безвидна, что начинает казаться, будто современные писатели дружно перестали писать.

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

— Но, я-то как раз не бросил! — воскликну я, — я до сих пор могу читать до утра, если найду интересную книжку! Вот, давеча, нашел на АТ «Семь дней до Мегиддо» Сергея Лукьяненко, так лишний круг на МЦК намотал, пока дочитывал. К сожалению, таких историй я встречаю всё меньше и меньше…

— Интересно почему? — спросит мой собеседник, — у тебя есть версия?

— Вот она, — вздохну я, виновато добавив, — только я, это… от Адама начну.

Мне так проще...
Total votes 73: ↑66 and ↓7+59
Comments328

Памятка/шпаргалка по SQL

Reading time29 min
Views886K

Доброго времени суток, друзья!


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

Читать дальше →
Total votes 50: ↑46 and ↓4+42
Comments18

Частично рассекречено методическое пособие АНБ по взлому неизвестных шифров

Reading time7 min
Views23K

Скульптура Kryptos у штаб-квартиры ЦРУ

Агентство национальной безопасности США наконец-то рассекретило третью часть известного учебника «Военная криптоаналитика» (MILCRYP), написанного для обучения специалистов АНБ и военных криптоаналитиков во время Холодной войны. Последняя часть трёхтомника опубликована с некоторыми купюрами, но всё равно представляет огромную ценность, ведь у нас не так много практических пособий по взлому шифров. Речь идёт о неизвестных, сложных кодах, которые составлены по непонятным правилам. Как к ним подступиться? Как найти зацепки? Книга отвечает на эти вопросы.

Возможно, учебник АНБ поможет расшифровать тексты, которые в течение многих десятилетий и столетий не поддаются криптоанализу. И даже тысячелетий, как в случае с критской письменностью из III тысячелетия до нашей эры (минойская цивилизация).
Total votes 49: ↑47 and ↓2+45
Comments7

Принцип подстановки Лисков

Reading time6 min
Views49K

Всем привет, меня зовут Константин. Я занимаюсь разработкой на Java в Tinkoff.ru и люблю SOLID. В этой статье мы сформулируем принцип подстановки Лисков, покажем его связь с принципом Открытости-Закрытости, узнаем, как правильно формировать иерархию наследования и ответим на философский вопрос о том, является ли квадрат прямоугольником.


Читать дальше →
Total votes 50: ↑40 and ↓10+30
Comments74

Безопасность встраиваемых систем Linux

Reading time24 min
Views15K
Embedded Linux security

Весь наш мир построен на противоположностях. Если вы создаете свое устройство и продаете его, то всегда найдется тот, кто захочет его взломать. Цели у злоумышленника буду самыми разными, от попыток сделать клон устройства (привет Китаю) до шантажа конечных потребителей, что весьма ухудшит вашу репутацию с точки зрения изготовления надежных устройств. И чем популярнее система на основе которой построено устройство, тем интереснее она злоумышленнику. В последнее время активно развивается сегмент одноплатных компьютеров, таких как Raspberry Pi, и множества других. Linux системы по распространенности использования во встраиваемых систем, вышли на первые места. Большая функциональность устройств, например наличие разных беспроводных интерфейсов коммуникаций, в совокупности с большими возможностями ОС Linux, привела к серьезной необходимости организации защиты устройства. Некоторые думают, что достаточно отключить учетную запись root и установить надежный пароль, но на самом деле это только малая часть того, что следует сделать. Какие технологии и концепции используются для снижения рисков и реализации более безопасного устройства работающего на Linux узнаете под катом.
Читать дальше →
Total votes 42: ↑41 and ↓1+40
Comments19

Пишем обёртку над SQLAlchemy Сore

Reading time8 min
Views11K

Для асинхронного Python существует мало полноценных ORM, и им далеко до таких монстров-комбайнов, как DjangoOrm и SQLAlchemy.ORM. Бедность ORM-инструментария для асинхронного программирования заставила многих программистов отказаться от зачастую непонятной им работы с ORM и перейти к более прозрачному взаимодействию с БД. Решение в лоб — написание raw SQL, но в этом случае запросы не будут защищены от инъекций, а запросы, составляемые по бизнес логике с опциональными параметрами, превратятся в конкатенацию строк. Важно найти баланс между прозрачностью выполнения кода, скоростью его написания и читаемостью.

Ниже я предлагаю реализацию такого баланса c использованием SQLAlchemy Core.

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

Принцип подстановки Барбары Лисков (предусловия и постусловия)

Reading time4 min
Views19K

​Почему у многих возникают проблемы с этим принципом? Если ли более простое объяснение?

​️В данной статье мы НЕ будем рассматривать общие примеры данного принципа, о которых уже есть много материалов (пример с квадратом и прямоугольником или управления термостатами). Здесь мы немного подробнее остановимся на таких понятиях как «Предусловия», «Постусловия», рассмотрим что такое ковариантность, контравариантность и инвариантность, а также что такое «исторические ограничения» или «правило истории».

Интересно...
Total votes 22: ↑20 and ↓2+18
Comments20

Шпаргалка с командами Docker

Reading time5 min
Views660K
Прим. перев.: Неделю назад Aymen El Amri, руководящий компанией eralabs и создавший обучающий курс «Безболезненный Docker», опубликовал свой Docker Cheat Sheet — шпаргалку по основным командам Docker. Git-репозиторий этого документа на GitHub уже набрал 1000+ stars и несколько сторонних контрибьюторов, что подтвердило его актуальность и пользу.



Представленные здесь команды описаны минимально (с акцентом на читаемость как есть) и включают в себя установку Docker, работу с реестрами и репозиториями, контейнерами, образами, сетью, Docker Swarm. Ниже представлен перевод шпаргалки в её состоянии на 2 сентября с дополнениями из комментариев ниже.
Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments15

Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel

Reading time11 min
Views238K

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

Собираем все данные по портфелю и по всем операциям через Tinkoff API.

Строим огромную Excel таблицу со всеми данными.

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

Пытаемся понять, что нам с этим делать.

Read more
Total votes 158: ↑155 and ↓3+152
Comments112

Чего «энтерпрайзу» в PostgreSQL не хватает

Reading time6 min
Views16K

В конце прошлого года Иван Панченко предложил мне рассказать на внутреннем семинаре Postgres Pro, чего, по нашему опыту использования PostgreSQL в "кровавом энтерпрайзе" "Тензора", не хватает в этой СУБД.

С докладом пока так и не сложилось, зато появилась эта статья, в которой я постарался собрать наиболее показательные вещи, которые вызывают "напряги" при активном использовании PostgreSQL в реальном бизнесе.

Читать далее
Total votes 33: ↑32 and ↓1+31
Comments31

Как защититься от неожиданных счетов за AWS

Reading time5 min
Views27K
Представьте, что у вас в облаке маленький проектик. Уже полгода вы платите за него по 20 центов в месяц. В принципе, ничего особенного. Но однажды утром вдруг приходит крупный счёт на 2700 долларов.


В облаке мы платим за хранение, вычисления и другие услуги по мере их использования. Не нужно поднимать собственный сервер. Однако недостаток в том, что можно случайно потратить больше денег, чем есть в кошельке. Это особенно сложно с бессерверными решениями, которые автоматически масштабируются вместе с поступающим трафиком.
Total votes 35: ↑34 and ↓1+33
Comments63

Теория программирования: пакетные принципы и метрики

Reading time9 min
Views15K


Чтобы применять любые принципы правильно, сначала нужно их понять — то есть осознать, откуда они взялись и для чего нужны. Если применять вслепую всё, что угодно — результат будет хуже, чем если бы мы вообще не использовали эти принципы. Я начну издалека и сначала расскажу про абстракцию.
Читать дальше →
Total votes 44: ↑42 and ↓2+40
Comments12

Перевод OWASP API Security Top 10

Reading time24 min
Views16K

Эта статья - перевод OWASP API Security Top 10, опубликованного в 2019 году. Проект состоит из десяти наиболее актуальных рисков безопасности API. Полная версия документа на русском языке опубликована здесь.

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

ОЗОН: сделаем платное бесплатным

Reading time5 min
Views15K
Многим прочитавшим заголовок, покажется странным сочетание имени крупного сетевого гипермаркета и девиза не уступающего ему в популярности торрент-трекера. Тем не менее, она есть. Интересующихся прошу под кат…

Читать дальше →
Total votes 49: ↑37 and ↓12+25
Comments82

Information

Rating
Does not participate
Location
Россия
Registered
Activity