Как стать автором
Обновить
0
@DFoozread⁠-⁠only

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

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

Размер имеет значение. Как Ozon автоматизировал измерение товаров на складах

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

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

Мы разработали, собрали и интегрировали в операционные процессы складов Ozon устройства для измерения габаритов и веса товаров. Об этом мы писали ранее. Но к идее создания своего решения пришли не сразу.

Читать далее

Как работает оптимизатор PostgreSQL при большом количестве таблиц в запросе

Время на прочтение9 мин
Количество просмотров22K
SQL — это декларативный язык программирования, используемый для создания и манипулирования объектами в реляционных СУБД. Этот язык описывает что должно быть получено, но не описывает как это получить. Программист пишет запрос и (чаще всего) хочет получить результат от СУБД максимально быстро.

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

Поэтому оптимизатор — это ключевая часть СУБД, один из самых сложных элементов всей системы.

Для демонстрации работы оптимизатора практически во всех наших (и чужих) примерах на эту тему используются довольно скромные параметры: две-три таблицы, пара JOIN-ов, миллисекунды на выполнение запросов. А что будет, если загрузить оптимизатор десятками таблиц за раз? Как разные конфигурационные параметры влияют на производительность запросов с сотней JOIN-ов? И переживет ли это среднестатистический рабочий ноутбук? Ответы на эти вопросы — со схемами и графиками — вы найдете под катом!
Читать дальше →

Оптимизация React-приложений: Используем useTransition, useDeferredValue и useOptimistic для плавного UI

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

Сделайте интерфейс React-приложения более отзывчивым и плавным с помощью хуков useTransition, useDeferredValue и useOptimistic. Управляйте приоритетами рендеринга, избегайте подвисаний при работе с большими данными и реализуйте оптимистичные обновления для мгновенной реакции интерфейса. Практические примеры и полезные советы ждут вас! 🚀

Читать далее

Тире минус дефис. Или размер имеет значение

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

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

Читать далее

Как сайты обнаруживают ботов по TLS

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

Порой случается так что несмотря на то что мы в точности повторяем запрос к сайту из своего любимого HTTP клиента в ответ мы получаем ошибку. Но ведь в браузере запрос проходит! В чём же дело? В этой статье мы с этим разберемся!

Читать далее

10 разных махагони: исследуем акустические свойства древесины, часть 1

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

«Дерево не влияет на звук струнного инструмента с электромагнитным датчиком и последующей аналоговой и/или цифровой обработкой сигнала.» Проще говоря, электрогитары. Динамическая головка (громкоговоритель), её акустическое оформление (кабинет), микрофон с его расположением, (или их импульс), усилитель, датчики, — всё это влияет. А материал, из которого изготовлена несущая струны конструкция, будто бы нет. Ведь она немагнитная, а на электромагнитный звукосниматель воздействуют только ферромагнитные струны. И в это многие верят, в том числе музыканты. Истина или заблуждение?

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

React vs Vue vs Angular. Часть 3

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

Управление глобальным состоянием

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

Читать далее

12 лучших инструментов аннотирования изображений на 2023 год

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

С развитием сферы искусственного интеллекта (AI) увеличивается и спрос на высококачественные инструменты аннотирования изображений. Аннотирование изображений — это процесс добавления в изображения метаданных, например, меток или тэгов, чтобы их было проще распознавать и выполнять по ним поиск машинам. Этот процесс критически важен для обучения моделей ИИ, чтобы они могли точно распознавать и классифицировать изображения.

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

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

Реализация консенсусного алгоритма Raft

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

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

Когда речь идет о распределенных системах и сетевых приложениях, консенсусный алгоритм становится must have. Эти алгоритмы играют ключевую роль в обеспечении надежности, согласованности и целостности данных в условиях, когда у нас есть несколько участников (узлов), работающих в сети. Например, множество современных распределенных баз данных, файловых систем и кластеров используют консенсусные алгоритмы для координации операций между разными узлами.

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

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

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

Читать далее

Легендарный Brown Sound на полевых транзисторах

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

Привет, Хабр! Brown Sound — это специфическое звучание электрогитары, ставшее визитной карточкой Эдди Ван Халена. Повторить уникальный звук великого гитариста пытались и пытаются многие. У каждого получается что-то своё.

Сегодня мы соберём и послушаем один из вариантов «дисторшна по ван-халеновски», используя интересную схему на полевых транзисторах с управляющим переходом (JFET).
А также поговорим об истории электрогитары.

WebSocket. Краткий экскурс в пентест ping-pong протокола

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

"Краткость - сестра таланта" - именно так сказал Антон Павлович Чехов, и теперь говорю я. Сегодня, завтра и до конца дней habr-а речь пойдет о WebSocket-ах: "Что это?", "Как работает?" и главное - "Как это взламывать?" (в целях этичного хакинга конечно). Начнем с простого и будем идти к более сложному, пробираясь через тернии к звёздам.

Приятного чтения

Strace

Время на прочтение7 мин
Количество просмотров128K
В течение минуты думал над заголовком, так ничего и не придумал…
Strace. Наверное нет того человека, который бы не слышал про strace. Если кто не слышал, то strace — это утилита, отслеживающая системные вызовы, которые представляют собой механизм трансляции, обеспечивающий интерфейс между процессом и операционной системой (ядром). Эти вызовы могут быть перехвачены и прочитаны. Это позволяет лучше понять, что процесс пытается сделать в заданное время. Перехватывая эти вызовы, мы можем добиться лучшего понимания поведения процессов, особенно если что-то идет не так. Функциональность операционной системы, позволяющая отслеживать системные вызовы, называется ptrace. Strace вызывает ptrace и читает данные о поведении процесса, возвращая отчет. Детали можно прочитать в вики или официальном man. Собственно вот, ну и речь конечно же о Linux. В других ОС свои аналоги.
Так вот, лично для меня strace это как последняя инстанция. Когда уже все логи просмотрены, все debug и verbose ключи включены, а причина проблем так и не обнаружена, я достаю из широких штанин запускаю strace. Есть одно но, strace это такой инструмент который вовсе не является серебряной пулей, которая тут же все покажет и расскажет. Для работы с strace требуется наличие определенных знаний и чем шире и глубже эти знания тем больше вероятность обнаружения проблемы.
В интернетах полно вводных статей, где описываются примеры запуска strace. Я же в этой статье покажу частные проблемы и их решение с помощью strace.
Читать дальше →

Вышла Java 21

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров80K
Вышла общедоступная версия Java 21. В этот релиз попало около 2500 закрытых задач и 15 JEP'ов. Release Notes можно посмотреть здесь. Изменения API – здесь.

Java 21 является LTS-релизом, а значит у него будут выходить обновления как минимум 5 лет с момента выхода.
Читать дальше →

Что нужно знать о применении шрифтов

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

Одна из самых частых проблем при миграции информационных систем на ОС Astra Linux — это искажение документов, ранее созданных на ОС Windows в MS Office и других программных средствах. В лучшем случае «слетает» вёрстка, в худшем — всё превращается в текст из нечитаемых символов, известных в народе как кракозябры.

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

Читать статью

Собственный строковый тип на Rust

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

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

pub enum Expr<'src> {
  Int(u32)
  Ident(&'src str),
  // ...
}

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

Реверс-инжиниринг промптов for fun and (no) profit

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

Этот материал посвящён взлому промптов Notion AI, семи методикам реверс‑инжиниринга промптов и рассказу о том, почему все ошибаются в своих мнениях о промпт‑инъекциях (prompt injection).

Вчера я получил доступ к публичной альфа‑версии Notion AI. У меня ушло 2 часа на то, чтобы, пользуясь промпт‑инъекциями, раздобыть полные тексты внутренних промптов, применяемых для реализации каждой из возможностей Notion AI.

Сегодня я публикую тексты этих промптов, но делаю это не потому, что я — человек безответственный; я отстаиваю точку зрения, в соответствии с которой в этом нет ничего страшного. И я воздаю должное команде Notion, которая так хорошо интегрировала возможности искусственного интеллекта в свой продукт.

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

Читать далее

Что нового в плане мониторинга в PostgreSQL (Алексей Лесовский)

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


Доклад Алексея Лесовского про то, что нового есть в PostgreSQL в плане мониторинга.


Охватывать Алексей будет 13 и 14 версии. Далее от его лица.

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

Геопространственная DuckDB

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

Большую часть прошлого года я работал с Hexvarium. Базирующаяся в Атертоне, штат Калифорния, компания строит и управляет оптоволоконными сетями. В настоящее время у них есть несколько сетей в районе залива, но у них есть планы по расширению в США.

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

Читать далее

Ты не видишь капчу, а она есть: как мы разрабатывали сервис Yandex SmartCaptcha для людей и бизнеса

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

Меня зовут Алексей Тощаков, я руковожу службой антифрода в Яндексе. Моя команда использует алгоритмы и данные для защиты наших сервисов и пользователей от фрода. Один из сервисов, которые мы разрабатываем — SmartCaptcha в Yandex Cloud.

В 2021 году мы уже рассказывали на Хабре про то, как изменялась и совершенствовалась наша внутренняя капча. После публикации статьи к нам стали обращаться владельцы сайтов с вопросами о том, как можно наш инструмент использовать у них. Это стало для нас сигналом, что пора взяться за разработку сервиса Yandex SmartCaptcha для внешних клиентов. Казалось бы, весь код уже написан, так что нужно только оформить лендинг и подключить биллинг. В реальности вышло сложнее — нам пришлось провести рефакторинг кода и многое изменить. Сейчас расскажу подробнее о том, что получилось в итоге.

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

Вопросы на собеседовании для программистов компьютерной графики

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

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

Недавно я видел в твиттере довольно много дискуссий о хороших и плохих вопросах на интервью. Некоторые из этих вопросов выглядят полезными.

В основном, наиболее интересные из них выглядят открытыми. Они могут привести к весьма большим и разветвленным обсуждениям или даже не имеют «‎верного» ответа. В конце концов, вам, скорее, нужно не узнать ответ (он всё равно будет 42), а увидеть процесс решения проблемы и/или оценить общие знания и понять собеседуемого.

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

Читать далее
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность