Search
Write a publication
Pull to refresh
1
0
Александр @wertex15

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

Send message

Запросы в PostgreSQL: 1. Этапы выполнения

Reading time17 min
Views90K

Привет, Хабр! Начинаю еще один цикл статей об устройстве PostgreSQL, на этот раз о том, как планируются и выполняются запросы.

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

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

Материал перекликается с нашим учебным курсом QPT «Оптимизация запросов», но ограничивается только подробностями внутреннего устройства и не затрагивает оптимизацию как таковую. Кроме того, я ориентируюсь на еще не вышедшую версию PostgreSQL 14. А курс мы тоже скоро обновим (правда, на версию 13; приходится бежать со всех ног, чтобы только оставаться на месте).

Поехали

Онлайн-образование, Python и DevOps набирают обороты

Reading time16 min
Views9.8K

К старту курса о Fullstack-разработке на Python мы подготовили сокращённый перевод опроса StackOverflow среди почти 83 000 людей, без малого 70 % из них — профессиональные разработчики. Опрос проводился с 15 июня по 25 мая, облачные платформы в нём впервые выделены из платформ в целом, также добавлен раздел о том, с какими языками, платформами, фреймворками и т. д. людям хотелось бы работать. Конечно, вы найдёте в опросе информацию о зарплатах и образовании. Подробности, как всегда, под катом.

Читать далее

Асинхронность — в django

Reading time4 min
Views18K

Здравствуйте, дорогие читатели хабра и хаба про django. Да, эта статья о фреймворке для перфекционистов с дедлайнами и о том, как в нём не хватает асинхронности. По духу это больше похоже на Enhancement Proposal (менее формальный, чем он мог быть) или RFC, так что, если Вы любите подобные вещи, то Вам может быть интересно.

Вопросом добавления асинхронности сама Django Foundation тоже интересовалась. Дискуссии вылились в DEP-09, который описывает текущий примерный roadmap. Я даже неожиданно обнаружил, что мой этот пост ему не противоречит. Просто о нативной поддержке асинхронности там не очень много и написано. Это считается там последним этапом, до которого ещё нужно дойти. Напоминает мем про то, как рисовать сову: вначале рисуем два круга, потом дорисовываем остальное.

Но давайте, всё-таки, попробуем сделать django асинхронным. Точнее, django orm. Забыл сказать: я считаю django orm главным препятствием на пути django к асинхроннности. Это, как-никак, наибольшая по объёму часть. Потом, именно orm содержит тот набор допущений и характерных черт, которые делают django узнаваемым, как минимум.

Значит, orm. Драйвера базы данных нужны асинхронные, но такие, конечно, уже есть.

Читать

Введение в SSD. Часть 1. Историческая

Reading time7 min
Views48K


Изучение истории дисков — начало пути к пониманию принципов работы твердотельных накопителей. Первая часть нашего цикла статей «Введение в SSD» проведет экскурс в историю и позволит наглядно понять разницу между SSD и его ближайшим конкурентом — HDD.

Несмотря на обилие различных устройств для хранения информации, популярность HDD и SSD в наше время неоспорима. Разница между этими двумя видами накопителей для обывателя очевидна: SSD дороже и быстрее, а HDD дешевле и вместительнее.

Отдельное внимание следует обратить на единицу измерения вместимости накопителей: исторически сложилось, что десятичные приставки, такие как кило- и мега-, в контексте информационных технологий подразумевают как десятая и двадцатая степень двойки. Для исключения путаницы были введены двоичные приставки киби-, меби- и другие. Разница этих приставок становится заметной с увеличением объема: покупая диск на 240 гигабайт, вы можете сохранить на нём 223.5 гибибайта информации.
Читать дальше →

Бюджетный второй фактор на Телеграм для Windows

Reading time6 min
Views6.7K

Многократно сталкиваясь в своей работе с решениями для второго фактора аутентификации, я все больше убеждаясь в их не оптимальности - либо неудобны как Google authenticator, либо дороги как Microsoft authenticator. Соответственно, появлялось желание сделать свой MFA, бесплатный и с пуш уведомлениями.

Читать далее

Версионирование данных в Инфомодели Авито

Reading time6 min
Views4.9K

Инфомодель — это система управления метаданными в Авито. Она управляет категоризацией объявлений, их таксономией и каталогами. В недавней статье на Медиуме мы рассказали, как с ней работаем: зачем Инфомодель нужна и как она взаимодействует с остальными системами Авито.

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

Читать далее

На php тоже может быть легко и быстро

Reading time5 min
Views11K

На мой взгляд, язык php всегда был довольно хорошим решением для создания сложного бекэнда веб-приложений, а в девяностые и нулевые приобрел такую огромную популярность (именно огромную, сопоставимую с IE для веб-серфига того времени) в первую очередь благодаря легкости, скорости разработки и поддержки кода. Но те времена прошли. Сегодня считается, что приложения на php стали монструозны, долго и сложно запускаемы, способны работать только с подтягиванием множества зависимостей в директорию /vendor...

Зачастую все именно так, но я хочу попробовать вам показать, что может быть иначе. Попробуем сделать простое API и приложить не больше усилий чем при использовании Node.js или Go.

Под катом мой пример того, как можно быстро и без лишней головной боли сделать API на php.

Читать далее

Как надёжно удалить файлы и зачистить HDD/SSD

Reading time7 min
Views95K


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

Естественно, в квартире находят множество улик, позволяющих квалифицировать гражданина сразу по нескольким статьям.

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

Запихнуть многоквартирный дом в маленький телефон

Reading time10 min
Views10K

Как мы разрабатывали приложение, которое должно заменить галдёж жильцов у подъезда, домовые чаты в вотсапе и звонки в ЖКХ-конторы по всей стране.

Про то, чем занимается РТЛабс знают только сотрудники и пара подрядчиков. Ну, и интересующиеся Госуслугами. Вот уже десяток лет gosuslugi.ru — флагманский проект нашей компании. Но, кроме Госуслуг, у нас в конторе ещё куча проектов. Мобильное приложение с незамысловатым названием «Дом» — одно из них.

Читать далее

Воздушный флот СИБУРа. Как мы создали и используем дрон-сервис

Reading time11 min
Views7.1K
Когда речь заходит о мониторинге происходящего на больших промышленных объектах, часто представляется разветвлённая сеть видеокамер, собранных в единую систему и позволяющая наблюдать за происходящим. Включая самые отдаленные уголки. Камер у нас на самом деле много, но этот пост будет не про них.

Из-за специфики наших объектов наблюдать надо не только за тем, что происходит на земле (с чем могут помочь камеры), но и за различными узлами производства и не только: газопродуктопроводы, водоводы, огромные градирни, дымовые трубы и прочие установки. Здесь камеры уже не так полезны. Во-первых, не каждую камеру получится закрепить на нужную высоту под нужным углом, во-вторых, ряд осмотров нужно проводить в динамике.



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

Впрочем, давайте с самого начала. Меня зовут Таня Мальцева, я аналитик в направлении Индустрия 4.0.

gRPCurl — curl для gRPC-серверов

Reading time4 min
Views36K


gRPC — современный фреймвок для удалённого вызова процедур, разработанный Google в 2015 году. Им начинает пользоваться всё большее количество компаний по всему миру. В России, например, это Яндекс. gRPCurl — инструмент командной строки, написанный на Go. Он разработан компанией FullStory и позволяет взаимодействовать с gRPC серверами. В этой статье будут раскрыты особенности проекта и описаны основные кейсы для его применения.
Читать дальше →

DIY датчик влажности почвы с E-Ink экраном

Reading time4 min
Views13K
Приветствую всех читателей Хабра! Сегодня хочу рассказать вам об одном из своих проектов, это датчиком влажности почвы с небольшим экраном на электронных чернилах, датчик работает от батарейки, умеет отправлять данные по воздуху в какую нибудь из систем Умного Дома. Данный проект это дальнейшее развитие другого моего DIY проекта датчика влажности почвы.
Хронология:



Узнать подробности

«Неуловимый» список установленных обновлений Windows

Reading time13 min
Views61K
Вы когда-нибудь задумывались, с помощью чего формируется список установленных обновлений Windows? А через какое API его достать? Ответы на эти и другие возникающие вопросы я постараюсь дать в своём небольшом исследовании.


Подробности - под катом

Как я умный аквариум делал (backend)

Reading time8 min
Views16K

image


Пролог


Работая программистом в одной из больших и успешных компаний Москвы, я не переставал совершенствовать свои навыки программирования и проходил различные курсы на платформе Udemy.
Конечно просто смотря курс и повторяя все за автором было скучновато, да и были моменты которые я не понимал ввиду своей некомпетентности на тот момент. Нужно делать свои проекты, основываясь на том, что дает автор курса — подумал я, и был конечно же прав. Только настоящие трудности и их разрешение дает вам бесценный опыт, это и есть настоящая обучение.


Обучался я в основном web программированию, поскольку и работал на том же направлении. Охватывал Full-stack разработку, поскольку решил, что нужно разбираться как в серверной части, так и во фронтовой. Учил JavaScript и различные фреймворки для бека это были Express, Appolo GraphQL (поскольку на работе был именно такой стек, да и в целом хотелось попробовать что-то отличное от REST подхода), на фронте это был все тот же Apollo GQL и Vue.

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

Как я умный аквариум делал (frontend)

Reading time6 min
Views8.8K

Пролог



Как я рассказывал тут, я начал постройку умного аквариума на основе платы NodeMCU. На ней я использовал прошивку с micropython, поднял веб сервер и сделал API для манипуляции всеми периферийными устройствами и датчиками. Поскольку мой вариант умного аквариума изначально планировался как автономный, я хотел сделать некий UI для отслеживания всех процессов ну и для ручных корректировок. Каждый раз обращаться по роутам типа: http://192.168.1.70/led_controller?impulse=4000&level=200&ledName=white было очень муторно и неудобно. Особенно когда ты уже лег спать и под рукой только телефон. Да и опять же, хотелось получить levelup в разработке и сделать что-то увлекательное.


За основу UI взял Vue.js. Авторизация как таковая не нужна, т.к. мой "умный друг" был только локально в пределах моего WI-FI окружения. Да и если бы его взломали, ничего страшного не случилось. Другое дело когда я буду делать умный дом, там уже безопасность на первом месте, но сейчас не об этом. Итак, никакой авторизации, только SPA("Одностраничное приложение": "single page application"), никакого роутинга, все показатели и манипуляторы на одной странице. Из того что было сделано на backend — контроль за LED-матрицами и температурный датчик. Создаем новый проект на гите, делаем клон на рабочем месте и запускаем vue-cli:

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

Как улучшить ваш API сервис на node.js. Часть 1

Reading time4 min
Views5K
Сейчас доступно приличное количество материалов по написанию API на node.js. Большинство из них в виде туториалов и демо-примеров в документациях. Этого достаточно, чтобы быстро разобраться и написать что-то свое. Но в них редко найдутся детали, почему это делается именно так. А некоторые моменты и вовсе опускаются для простоты и краткости.

Это статья нацелена, чтобы заполнить некоторые пробелы, которые могли возникнуть, и в конечном счете улучшить вам сервис на node.js.

P.S. Ни в коем случае не считаю себя экспертом: есть куда расти. Но вместе с тем есть чем поделиться.

Файловая структура проекта


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

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

Как сделать поиск пользователей по GitHub, используя Vue

Reading time6 min
Views8K

Думаю, все уже знают о том, как написать поиск по пользователям GitHub на React, Svelte, Angular, или вообще без них. Ну и как же тут обойтись без Vue? Самое время заполнить этот пробел.


image


Итак, сегодня мы создадим то самое приложение с использованием Vue, напишем для него тесты на Cypress и немного затронем Vue CLI 3.


В посте есть гифки

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

Как производитель видеокарты влияет на доходность GPU-майнинга

Reading time4 min
Views22K

С приходом на рынок ASIC-решений для майнинга биткоина многие специалисты утверждали, что добыча криптовалют с помощью видеокарт канет в лету так же, как это случилось и с майнингом на CPU.

Однако рост популярности альткоинов на отличных от SHA256 алгоритмах внес определенные коррективы. Условно, майнинг разделился на ASIC и GPU сегмент. Большинство современных блокчейнов имеют ASIC-стойкие алгоритмы шифрования: это справедливо для Ethereum, Monero и других популярных монет. При этом, подобный подход — сознательная политика разработчиков упомянутых криптовалют. Таким образом они стимулируют «массовость» майнинга и снижают порог вхождения в сферу, вовлекая в процесс добычи по принципу Proof-of-Work все новых и новых участников. Но для майнинга на видеокартах недостаточно купить любую карточку и воткнуть ее в риг: разные альткоины базируются на разных алгоритмах, которые влияют на эффективность добычи в зависимости от архитектуры самой видеокарты.
Читать дальше →

Как «Актив» организовал «электронную переговорку»

Reading time7 min
Views12K

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


Но это только половина проблемы. Как всем известно, ресурсами еще нужно уметь грамотно управлять, чтобы не случалось коллизий. Ситуации, когда во время встречи с партнерами, в переговорную врывается руководитель соседнего подразделения со словами “И эта занята!?”, недопустимы.



Второй момент – когда под рукой нет инструмента (к примеру, Outlook или его web-интерфейса), чтобы забронировать переговорную комнату, но очень нужно «успеть» захватить ценный ресурс. Для осуществления задуманного, необходимо идти на свое рабочее место и с него осуществлять бронирование. Теперь представим, что у вас нет на это времени, выходя из переговорной комнаты с очередной встречи.


Можно конечно придумать еще различные варианты «почему». Для нас уже этих двух моментов было достаточно, чтобы начать исследования в направлении поиска решения проблемы.

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

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Registered
Activity