Мы добавили реалистичные дороги в навигатор 2ГИС. Теперь дорожное покрытие, разметка, объёмные развязки, съезды, островки безопасности и опоры на многоуровневых дорогах выглядят как в жизни. Под капотом — решение задачи по превращению «плоской» геометрии в объекты с реалистичными шириной и высотой. Чтобы не замедлять обновление дорожной сети, нам требовалась минимальная задержка между изменением дороги и обновлением её «объемного» представления.
Расскажу, как в одном сервисе формируем очереди в RabbitMQ, а в других — читаем и при помощи библиотеки NetTopologySuite превращаем плоские объекты в реалистичные. Выбранный нами подход с потоковой обработкой изменений универсален, поэтому статья может быть интересна всем, кто работает с геометрией и системами реального времени в целом.
Читать далееМы продолжаем цикл статей про «черные кабинеты» – подразделения, где занимались перлюстрацией корреспонденции и взломом шифров. В прошлой публикации кандидат исторических наук и старший научный сотрудник Музея криптографии Анастасия Ашаева рассказала о европейских cabinet noir. В этот раз речь пойдет о подобных структурах, которые образовались в XVIII веке в Российской империи. Спойлер: уже в следующем столетии они окажутся самыми продвинутыми и эффективными во всей Европе.
Но не будем торопить события. Сперва наш эксперт скажет «несколько слов» о развитии шифрования еще со времен Древней Руси, вкладе Петра Великого в отечественную криптографию и учреждении самого первого русского «черного кабинета». Вишенкой же на торте станет история о том, как государевы дешифровщики помогли императрице Елизавете Петровне не проиграть Франции в настоящей «игре престолов».
Читать далееСегодня предлагаю совместить ностальгию и экскурс в историю с компьютерной некромантией. На днях мой коллега Михаил Синельников @m_sinelnikov поделился интересным образцом истории отечественного ИТ — Ricor Compi 100. Явно старый компьютер, больше похожий на игрушечные китайские пластиковые телефоны‑раскладушки, продававшиеся ближе к 2000-годам, или на «чемоданчики» iBook.
Копнув чуть глубже, я узнала, что это учебный ноутбук, выпускавшийся с 1996 года. Но информации в сети о нем мало, и нет как таковых цельных историй и обзоров, кроме одного единственного. Решили с Михаилом объединить усилия и написать расширенный материал‑оду этому забавному образцу российского ИТ.
Читать далееВы, конечно, знаете, что сервер является сердцем любого онлайн-сервиса или офисной сети. Именно серверы обеспечивают работоспособность наших любимых веб-сайтов, приложений, игр и социальных сетей, а нам позволяют открывать их 24 часа в сутки 7 дней в неделю. Эта статья — для новичков, которые не задумывались, чем отличаются серверы друг от друга, какими они бывают, а также коснемся вопроса выбора сервера.
Дисклеймер: это вводный материал в серии, посвященной серверам. Тут мы разберем основные понятия. А для тех, кто с серверами "на ты", совсем скоро выйдут материалы, в которых мы более глубоко разберем различные аспекты, касающиеся серверов, с профессиональной точки зрения.
Читать далее
В этой статье мы рассмотрим, как статический анализатор PVS-Studio воодушевляет заняться рефакторингом кода. Ведь чем короче, проще и понятнее код, тем меньше в нём ошибок.
Airflow в Lamoda Tech играет роль оркестратора процессов обработки данных. Ежедневно с его помощью мы запускаем 1 800+ тасок на проде, примерно половина из которых являются Spark-приложениями.
Все Spark-приложения сабмитятся из Docker-контейнеров. И здесь сталкиваемся с проблемой: в нашем случае не существует готовых решений для запуска Spark-приложений, позволяющих легко править конфигурацию и следить за количеством потребляемых ресурсов.
Меня зовут Андрей Булгаков, я лид команды разработчиков Big Data в Lamoda Tech. Вместе с разработчиком Иваном Васенковым в этой статье мы поделимся историей создания Airflow-оператора для запуска Spark-приложений.
Читать далее
Hello world!
Книга рецептов — это коллекция простых примеров, демонстрирующих хорошие практики решения распространенных задач программирования с помощью крейтов экосистемы Rust.
Читать дальше →Добрый день, уважаемые читатели Хабр. По роду деятельности, я уже некоторое время занимаюсь вопросами NLP, в частности, генеративными большими языковыми моделями и, реализованными, на них чат-ботами. При этом, очень часто в их разработке возникает ряд проблем, с которыми приходится постоянно бороться. Одна из них — «галлюцинирование» моделей, то есть выдача неточной информации на поступающие запросы от пользователя, и, в целом, некорректное поведение модели при длительном ведении диалогов различной степени направленности, специфики, глубины рассуждений, оценки фактов и правдивости выдаваемых ответов.
Исходя из этого, я решил систематизировать все имеющиеся по этой теме сведения. Сразу оговорюсь, статья носит обзорный характер и я ставлю своей целью обобщение фактов, причин и признаков такого поведения. Поиск возможных вариантов, методик и подходов для решения данной проблемы будут рассмотрены в следующей статье. Здесь, не будет кода и строгих выкладок, лишь, наблюдения, аналитика, способы оценки, выявленные закономерности и оценка работы в общем.
В качестве результата исследования, предлагается описание общей ситуации с обнаруженными возможными проявлениями феномена «галлюцинирования». На целостность и завершенность обзора, при описании полученных вариаций и проявлений данного факта, не претендую. Это результаты моего поиска и анализа. Информация собиралась, буквально по крупицам, так как все сведения сильно разрознены, проявления их в «дикой природе» не всегда можно заметить и четко классифицировать, либо они начинают проявляться спустя большое количество тестов, диалогов, рассуждений, запросов, вариантов подачи подсказок и уточнений на поставленные запросы и исходных текстов. Кроме всего прочего, градация распределения этих аномалий по степени отслеживания, так же, сильно разнится. Есть те, которые проявляются весьма быстро, а есть крайне редкие, для которых нужен специфических, очень тонкий подход. Ниже я представлю данный перечень с подробными пояснениями, так что всех прошу под кат.
Читать далееНа днях была опубликована новая версия языка программирования Mojo, теперь это 24.3. Новинка получила несколько важных компонентов, которые требуются для создания приложений на этом языке. Например, компилятор, интерактивная REPL-оболочка для сборки и запуска программ, отладчик, дополнение к редактору кода Visual Studio Code (VS Code) и т. п.
Стоит отметить, что исходники открыты под лицензией Apache 2.0. После того как будет завершено проектирование внутренней архитектуры, разработчики откроют и код компилятора. Ну а подробности изменений и дополнений — под катом.
Читать далееНаверное многие слышали историю, рассказанную М. Задорновым в одном из своих выступлений, про трех поросят выпущенных в американской школе с номерами 1, 2 и 4 с панчлайном о том, как полиция долго искала поросенка номер 3.
Мое знакомство с компьютерами типа IBM PC происходило по похожему сценарию. В юности (начало 90х), в скудной литературе регулярно мелькали процессоры 8086(8088) и 80286, 386, затем 486 и т.д. Однако процессор 80186, который было бы логично ожидать не попадался.
Читать далее«Через пять лет мы увидим решения, которые смогут заменить как минимум 50% программистов уровня junior и middle», ― шокирует один из экспертов недавней дискуссии, прошедшей на Youtube-канале Ai4Dev. Но так ли страшен черт, как его малюют? Более ста тысяч строк кода в секунду, автоматизация рутинных задач, повышение эффективности ― все это уже часть нашей реальности благодаря применению ИИ в разработке. Однако не все согласны с тем, что искусственный интеллект ― это лекарство от всех болезней. «Именно люди двигают компанию. И генеральный директор, и дворник ― каждый вносит свой вклад», ― напоминает другой участник разговора. Так что же нас ждет ― революция или эволюция? Ответы на этот и другие вопросы вас ждут в сегодняшнем новом материале блога ЛАНИТ на Хабре.
Читать далееИнтерес к умным квартирам сегодня огромный, но как быть в поездке? Есть ли умные отели, где будешь чувствовать себя, как дома?
Больше года назад мы побывали в отеле «Вертикаль», где познакомились с функциями автоматизации. Нас они не впечатлили, можно лучше. Настало время посетить другой проект: отель «Южный» в г. Волгограде.
Мы расскажем о том, какие умные функции были добавлены к номерам после реновации отеля. Интересно? Ныряйте под кат.
Читать далееМногие Golang-разработчики пробовали работать с БД в Go, и у каждого — свои боли. В этой статье разберём библиотеку database/sql как безотносительно конкретной СУБД, так и применительно к YDB. Рассмотрим трудности эксплуатации при использовании драйвера database/sql на проде. А также рассмотрим, что мы делали для решения проблем.
Меня зовут Алексей Мясников, я — руководитель Application Team в команде разработки YDB. Я очень люблю git blame за то, что с его помощью можно проследить как развивалась инженерная мысль с течением времени и немножко побыть в шкуре разработчика той или иной классной штуки. В статье я расскажу как реализовать драйвер database/sql для распределённой базы данных, какие проблемы при этом придётся преодолеть и как менялся подход с выходом новых версий Go.
Читать далееПриветствуем!
Так получилось, что нам достались два аттенюатора Agilent 8494H и 8496H. Они долго лежали без дела, поскольку отсутствовал контроллер управления. Конечно, четыре простых переключателя справились бы с этой задачей, но хотелось реализации с дисплеем показывающий текущее значение затухания и программное управление. Проект сделан в EasyEDA и Atmel Studio.
Читать далееВзлом email — прежде всего целевая атака. А еще это старая, дешевая и традиционно популярная услуга в даркнете.
Мы решили выяснить, за какую сумму можно заказать взлом чужого ящика и как злоумышленники обычно достигают цели. Обзор «рынка» услуг, свежие примеры атак на корпоративные email-аккаунты и способы защиты — в этой статье.
Читать далееПривет всем! Меня зовут Юля, я фронтенд-разработчик, наставник на курсах по JS и React и организатор профессионального сообщества Tbilisi JS. В Практикуме я помогаю студентам на курсе «React-разработчик».
За время работы в разных компаниях и над разными проектами я поняла, что Git — это не только (и не столько!) знание самой технологии и конкретных команд, но и определённая культура взаимодействия, практики, подходы, договорённости. Всё это помогает участникам команды лучше понимать друг друга и работать быстрее и чётче.
Поговорим как раз об этом — о том, что формирует культуру работы с Git: начнём с конвенций именования коммитов и закончим практиками работы в пуллреквесте. В конце статьи я поделюсь полезными ссылками на интерактивные обучалки, шпаргалки и гайды.
Читать далее