Search
Write a publication
Pull to refresh
27
0
Send message

Решаем загадку Джиндоша на SQL в пять строчек

Level of difficultyMedium
Reading time4 min
Views8.4K

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

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

Как?!

Диаграммы классов UML из PostgreSQL. Часть первая

Level of difficultyMedium
Reading time38 min
Views4.6K

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

В качестве основного средства документирования выбрана система управления проектами TRAC с подключенным плагином plantuml.

Читать далее

Поддержка CDS в Spring Boot и ожидания от Project Leyden

Level of difficultyMedium
Reading time5 min
Views3.7K

Spring Boot 3.3 раскрывает потенциал CDS (Class Data Sharing) благодаря двум новым функциям: самораспаковывающийся исполняемый JAR и поддержка Buildpacks CDS.

Команда Spring АйО перевела статью, в которой рассмотрены новые функции, нюансы их использования, а также их влияние на время запуска приложения.

Читать далее

Подробно про JWT

Level of difficultyMedium
Reading time6 min
Views49K

О чем эта статья: мы разберемся, что такое JSON Web Token, как он устроен и для чего используется, рассмотрим такие приемы, как «black-list токенов» и «контроль версий» токенов. Для наглядности, в конце будут блок-схемы клиент-серверных запросов с пояснениями.

Для кого эта статья: для тех, кто хочет детально понять что такое JWT, а так же для тех, кто просто ищет схему реализации.

Читать далее

Нейронные оптимизаторы запросов в реляционных БД (Часть 1)

Level of difficultyMedium
Reading time15 min
Views8.5K

В 1970-х годах известный программист Эдгар Кодд разработал математически выверенную теорию организации данных в виде таблиц (реляций). С тех пор утекло немало воды — появилось большое количество различных коммерческих и open-source реляционных систем управления базами данных (РСУБД). Скоро стало понятно, что эффективное получение данных из базы — задача далеко не тривиальная. Если говорить прямо, она нелинейная и в общем случае NP-сложная.

Когда SQL-запрос становится немного сложнее: SELECT * FROM table, у нас появляется огромная вариативность его исполнения внутри системы — и не всегда понятно, какой из возможных вариантов эффективнее как по памяти, так и по скорости. Чтобы сократить огромное количество вариантов до приемлемого, обычно используются так называемые эвристики — эмпирические правила, которые придуманы человеком для сокращения пространства поиска на несколько порядков. Понятное дело, эти правила могут отсечь и сам оптимальный план выполнения запроса, но позволяют получить хоть что-то приемлемое за адекватное время.

В последние годы в связи с активным развитием ML начали развиваться и нейронные оптимизаторы запросов —особенность которых в том, что они самостоятельно, без участия человека, находят необходимые закономерности в выполнении сложных планов исходя из обучения на огромном количестве данных. Тенденция началась приблизительно в 2017 году и продолжается до сих пор. Давайте посмотрим, что уже появилось в этой области в хронологическом порядке и какие перспективы нас ждут.

Читать далее

CORS — это тупо

Reading time7 min
Views25K

Технология CORS и действующее в браузерах правило ограничения домена – те вещи, которые часто понимаются превратно. Ниже я объясню, что они собой представляют, и почему пора перестать волноваться по их поводу.

Замечание: я собираюсь рассказать о CORS и правиле ограничения домена как о единой сущности, поэтому далее часто буду употреблять эти термины как синонимы. Дело в том, что они, по сути – части одной системы, работают в сочетании друг с другом и помогают вам решать, что можно сделать с какими ресурсами смешанного происхождения. В принципе, если ваши запросы поступают из разных источников, то вам придётся иметь дело с правилами, политиками и механизмами CORS.

Прежде всего, отмечу, что CORS — это огромный костыль, помогающий снизить влияние ошибок, передающихся с унаследованным кодом. В этой системе защита предоставляется как по принципу отказа от участия (opt-out) в попытке частично купировать XSRF-атаки против незащищённых или немодифицированных сайтов, так и по принципу активного участия (opt-in), чтобы на сайте включалась активная самозащита. Но ни одной из этих мер не достаточно, чтобы решить целенаправленно созданную проблему. Если на вашем сайте используются куки, то вы обязаны деятельно позаботиться о его безопасности. (Ладно, это касается не любого сайта, но лучше перестрахуйтесь. Выделите время на тщательный аудит вашего сайта или выполните описанные ниже простые шаги. Даже придерживаясь самых разумных паттернов, вы всё равно можете подставиться под XSRF-уязвимости).

Читать далее

DuckDB. Колоночная OLAP СУБД в кармане

Level of difficultyMedium
Reading time5 min
Views5K

Привет, меня зовут Антон, я старший инженер в департаменте аналитических решений ЮMoney. В компании мы используем технологию MSSQL OLAP-кубов SSAS, которая хорошо себя зарекомендовала — она сравнительно легко развёртывается и достаточно производительная. Но есть ряд минусов: Microsoft прекратил развивать её примерно в прошлом десятилетии, технология требует производительных серверов, ну и, конечно, вопрос зависимости от иностранного вендора тоже стоит остро. Поэтому, посматривая по сторонам в поисках альтернативы, я решил попробовать недавно появившуюся технологию DuckDB. Особых надежд не было, но хотелось понять, на каком она уровне по сравнению с привычными для меня инструментами. 

Читать далее

VLESS vs ShadowSocks. Рассказываем про протокол, который придет на смену SS

Level of difficultyEasy
Reading time2 min
Views147K

Если вы когда-нибудь искали бесплатные outline-ключи, то вам будет полезно узнать про VLESS — новый протокол, который постепенно приходит на смену Shadowsocks. Поговорим о том, чем они отличаются и какие у них есть преимущества.

Читать далее

Продолжаем выжимать максимум из PostgreSQL

Reading time10 min
Views16K

В апреле этого года мы, команда производительности из Postgres Professional, совместно с коллегами из Selectel решили протестировать несколько дистрибутивов PostgreSQL и узнать, как они себя поведут на разных архитектурах. С результатами можно ознакомиться в этой статье, но, как сразу было верно отмечено читателями, там был один важный косяк –  мы не сравнили производительность ванильного PostgreSQL с применением всем известных настроек по улучшению производительности и Postgres Pro Enterprise из коробки as is. Терпеть такое не было решительно никакой возможности, поэтому сегодня будет продолжение истории и ответ на важный для многих вопрос: «А есть ли у нашего форка хоть какое-то преимущество перед бесплатной ваниллой?» Или мы просто накатили общеизвестный конфиг и занимаемся импортозаместительным переклеиванием наклеек?

Читать далее

Как Orange Pi вернула мне Ютуб

Reading time5 min
Views64K

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

В связи с последними событиями вокруг видеохостинга YouTube, ситуация вынуждает искать технические решения для восстановления доступа к сервису. В этой статье я хочу поделиться своим техническим опытом по восстановлению доступа к сервису с помощью дешевого одноплатника Orange Pi Zero2 от компании Xunlong Software.

Читать далее

Раскочегариваем YouTube без установки софта на конечные устройства

Level of difficultyMedium
Reading time3 min
Views204K

В последнее время для потребителей контента YouTube настали тяжелые времена. Даже самые мелкие местечковые провайдеры уже внедрили то самое замедление видео. В некоторых случаях (как у меня) - это даже не замедление, а просто ограничение функционала. Видео попросту не грузятся.

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

Для этого есть несколько путей:

Читать далее

Обход замедления для Android TV

Level of difficultyMedium
Reading time5 min
Views189K

Далее расскажу как обойти ограничение скорости Youtube на Android TV. Найти универсальное решение "одной кнопкой" мне не удалось, поэтому пойдем по сложному пути!

Читать далее

Как стать разработчиком ML и нейронок

Level of difficultyEasy
Reading time7 min
Views23K

Всем привет. Сегодняшняя статья будет интересна тем, кто хочет стать ML‑разработчиком. Последние три года я собирал материалы на эту тему (естественно, проверяя все на себе). Это не просто сухая выжимка из книг, курсов и статей, а личный опыт, основанный на задачах, которые я решаю ежедневно.

Меня зовут Агеев Александр, сейчас я ML‑разработчик в команде SOICA. Из других интересных проектов в прошлом — робототехника (детекция и сегментация продуктов питания), исследования мозговой активности ЭЭГ, автоматизации сети хлебозаводов Москвы, разработка алгоритмов в приложении для подсчета ударов мяча и распознавания скелета человека, исследование и применение больших LLM‑моделей, расшифровка аудио и транскрибация текста, а также EyeTracking (подсчет числа открытия и закрытия глаз).

Читать далее

Мастер-аккаунт Zeekr. Как Arduino поможет Вашему китайскому авто?

Level of difficultyMedium
Reading time4 min
Views23K

Что происходит когда у Вас гаджет на колесах с одной стороны, и Вы уже окрыленные тем, что Arduino скетчи Blink и Hello_world у Вас получилось запустить? Правильно, приходит мысль, как это можно соединить.

Читать далее

Сила gRPC в облачных окружениях

Reading time7 min
Views3K
При разработке исходно облачных (cloud-native) приложений требуется наладить гладкую и эффективную коммуникацию между различными компонентами. Для начала давайте рассмотрим весь спектр инструментов от XML до gRPC, которые обеспечивают и улучшают эти критически важные взаимодействия.

XML (часто с применением SOAP):


<order>
    <bookID>12345</bookID>
    <quantity>2</quantity>
    <user>JohnDoe</user>
</order>

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

Самопаркующийся авто за 500 строк кода

Level of difficultyMedium
Reading time21 min
Views20K



TLDR


В этой статье мы научим авто самостоятельно парковаться с помощью генетического алгоритма.


Мы создадим первое поколение авто с произвольными геномами, которое будет вести себя примерно так:





Примерно на сороковом поколении авто начнут понимать, что такое авто-парковка, и начнут приближаться к парковочному месту:




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

Go Tarantool: как построить Key-value-хранилище на сотни тысяч запросов в секунду

Reading time8 min
Views17K

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

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

Разбираемся на примере клиентского кейса, как может выглядеть такая система в части хранения данных, почему для таких задач оптимальна комбинация реляционной БД и Tarantool, а также показываем, какие показатели может обеспечить система с Tarantool.

Читать далее

Всё что нужно знать про DuckDB

Level of difficultyEasy
Reading time11 min
Views19K

В статье рассказано, как вам может помочь утка при работе с данными, с OLAP-нагрузкой и как она может плавать в вашем Data Lake. Вы узнаете всё самое важное про DuckDB и сможете попрактиковаться в работе с DuckDB.

Читать далее

Собираем недорогой 9.7" E-Ink дисплей для отображения чего угодно

Reading time2 min
Views76K
Всем привет. Давно хотел собрать большой E-Ink дисплей, который можно поставить на стол и отображать на нем полезную информацию (погоду, календарь и т.д.) В этой статье расскажу, как можно собрать такое устройство на базе ESP32 и дисплея от Kindle DX значительно дешевле, чем Waveshare.


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

Information

Rating
Does not participate
Works in
Registered
Activity