Здравствуйте, дорогие друзья. Продолжаю Вас знакомить на Хабре с новостями проекта Haiku.
Все потоки
- Новые
- Лучшие
- Все
- ≥0
- ≥10
- ≥25
- ≥50
- ≥100
Измеряем производительность String.format() в Java
Я раньше считал, что JDK в целом хорошо оптимизирована, и если в JDK есть простой способ решения какой-то задачи, то он вполне подойдет для большинства ситуаций и будет работать хорошо.
Но я обнаружил, что иногда некоторые классы или методы работают на удивление плохо. Знание таких аномалий полезно при работе с требовательным к производительности кодом.
В этом посте рассмотрим один из подобных кейсов: поразительно низкая производительность String.format()
при простой конкатенации строк.
Алгоритмы поиска схожих объектов в рекомендательных системах
«Досмотрю вот это видео на YouTube и пойду спать! Ой, в рекомендациях еще одно интересное. Сон, прости…». «Закажу в IKEA только стулья. Ах, сайт показал мне еще посуду, постельное белье и новую кухню в сборке. Когда там следующая зарплата?». «Бесконечный плейлист любимых музыкальных жанров в СберЗвуке заряжает меня позитивом! Как специалистам удается создавать выборку специально для меня?».
Согласитесь, вы сталкивались с подобными мыслями при использовании интернет сервисов. Магическим образом пользователю предлагают новые и новые объекты: видеоролики, музыку, товары. Никакого волшебства здесь нет — это рутинная работа рекомендательных систем. Алгоритмы поиска похожих объектов в больших массивах данных органично вплелись в нашу жизнь и помогают нам делать почти осознанный выбор в той или иной области повседневных дел.
Модели рекомендаций можно использовать для поиска похожих объектов вне контекста продаж. Например, выявлять однообразные ответы операторов в чатах, распознавать будущих злостных неплательщиков кредитных обязательств по косвенным признакам или находить различные группы сотрудников, которым требуется рекомендовать курсы повышения квалификации, в зависимости от текущих навыков. Не стоит забывать и о сайтах знакомств, где рекомендательные алгоритмы будут подбирать собеседника по указанным критериям.
TL:DR
Статья описывает основные подходы к поиску схожих объектов в наборе данных и содержит вводный курс в мир рекомендательных систем. Представлены варианты подготовки данных. Информация будет полезна аналитикам, которые изучают python, и начинающим data-scientist’ам. Мы не будем останавливаться на подробном описании каждого метода и разбирать отличия контентных и коллаборативных рекомендательных систем. Базовая теоретических часть находится здесь, здесь и здесь. Нас интересует применение алгоритмов матчинга (matching, англ. Поиск схожих объектов) в повседневных задачах. К статье прилагается ноутбук на платформе Kaggle с основным кодом, который рекомендуем запускать одновременно с изучением текста.
Как я преподавал IT-архитектуру в IT-колледже Сириус
Привет, друзья!
В течение двух прошедших недель мне довелось участвовать в особенном событии. Хочу поделиться с вами своими ощущениями, пока они свежи.
История берет свое начало с сообщения от моего руководителя со странным предложением поработать преподавателем в новом и современном IT-колледже, созданном по инициативе президента РФ. Основным направлением деятельности колледжа является подготовка инженеров и экспертов в области IT, способных приступить к работе сразу после окончания учебы. По сути, это возрождение идеи забытых на сегодня профессиональных училищ, широко распространенных в СССР. Именно поэтому колледж привлекает преподавателей, работающих в отрасли, которые смогут поделиться с детьми реальным опытом работы в современном мире, а не читать лекции о том как в прошлом веке работали с вычислительными машинами на перфокартах.
Я работаю IT-архитектором, по работе мне приходится много общаться с людьми, проводить митапы и презентации, поэтому, возможность поделиться знаниями с детьми, была особенно интересна, а также, за несколько лет работы в Ростелекоме было накоплено достаточное количество материалов, которые могли бы быть интересны как темы для лекций и практических занятий. Но я еще не знал, насколько я был не готов к преподаванию детям, впрочем, об этом я поведаю чуть позже.
Бизнес на 3D-печати на примере Центра визуализации, прототипирования, моделирования и 3D-печати
В мире все большую популярность набирает такой формат бизнеса, как 3D-фермы, студии и мастерские по 3D-печати и прототипированию. В России темпы развития данного направления, может быть, не такие быстрые по сравнению с другими странами, но с каждым годом успешных и активно развивающихся центров по печати и 3D-моделированию становится больше по всей России. Одной из таких студий является Центр визуализации, прототипирования, моделирования и 3D-печати, расположенный в городе Курган, который своим примером показывает, что при желании, энтузиазме и грамотном подходе можно создать полезный и успешный проект, вне зависимости от географического расположения и без огромного бюджета. Руководитель Центра Смирнова Оксана рассказала, чем именно занимается студия, как работают с клиентами, в чем видит преимущества и перспективы 3D-печати, а также дала советы начинающим свой путь в данном направлении.
Выполнение запланированных заданий в Spring Boot
Планирование - это процесс выполнения части логики приложения в определенное время в будущем. Запланированные задания - это часть бизнес-логики, которая должна выполняться по таймеру. Spring позволяет нам запускать запланированные задания в контейнере Spring с помощью некоторых простых аннотаций.
В этой статье мы покажем, как настраивать и запускать запланированные задания в приложениях Spring Boot.
Топ-5 когнитивных искажений при планировании в IT
Эта статья подходит для тимлидов и их подопечных, а также для всех, кто оценивает проекты и задачи. Я расскажу, как и почему мы делаем ошибки из-за когнитивных искажений. Попадаем в них мы почти все, просто потому что мы живые люди. И на примере одного дня из жизни тимлида я хочу показать, в какие искажения чаще всего влетают в IT, и — самое полезное — как из них можно выходить.
Замечу, что искать когнитивные искажения стоит, в первую очередь, у себя, а не у коллег. И что рассказывать про искажения намного проще, чем не влетать в их на практике, однако, если этому научиться, то в перспективе это изрядно окупается, потому что экономит и время, и деньги, помогая и нам, и команде.
9 лет в поисках идеального материала: как мы ведём корпоративный блог на Хабре
Это наш 400-й пост на Хабре. По этому праздничному поводу решили запилить ретроспективу: порефлексировать над блогом и подумать, почему за 9 лет мы так и не написали идеальный пост.
В этой статье вспомним популярные и провальные публикации, покажем яркие фидбэки из комментариев и помедитируем над статистикой. Если вы хотите поделиться наблюдениями, что-то посоветовать, похвалить или закидать тапками — ждём вас в комментариях.
Один человек ответил на 85+ тысяч вопросов на Stack Overflow (24,1 ответа в день)
В среднем 24,1 ответа в день (если все 365 дней в году считать рабочими) на протяжении почти 10 лет.
Несколько дней назад на некоторых англоязычных ресурсах началось обсуждение одного очень необычного пользователя Stack Overflow. Его зовут Гордон Линофф (Gordon Linoff), он из Нью-Йорка, и за 9 лет и 8 месяцев своего присутствия на платформе он дал 85,201 ответов на различные вопросы, в основном связанные с SQL и дата-майнингом (цифра актуальна на 27.09.2021).
Что это за маг?
Python GUI. Библиотека KivyMD. Шаблон MVC, parallax эффект и анимация контента слайдов
Приветствую вас, дорогие любители и знатоки Python! Прошло пол года с момента моей последней публикации на Хабре. Был погружен в пучину обстоятельств и сторонние проекты. Начиная с сегодняшней, статьи будут выходить с периодичностью раз в месяц. В этой статье мы рассмотрим как создать и анимировать контент для слайдов а также сделать parallax эффект для фонового изображения с помощью фреймворка Kivy и библиотеки KivyMD.
Безопасность ПЛК: 2) Следите за режимом работы
Держите ПЛК в режиме исполнения. Если ПЛК вышел из режима исполнения, то следует выдать предупреждение оператору.
Разбираем рекомендации по безопасному программироваю ПЛК, формируем список своих рекомендаций. Всех неравнодушных прошу под кат.
Стажировка в ABBYY-2021: гибридный формат, больше машинного обучения и планы на будущее
Мы в ABBYY понимаем, как важно начинать строить карьеру в интересном для себя направлении еще в студенческие годы. Поэтому помогаем талантливым ребятам пробовать свои силы и развиваться уже на третьем курсе университета. Мы проводим летние стажировки, где даем ребятам настоящие «боевые» задачи. По итогам лучшие студенты получают предложения о работе.
Летняя стажировка помогает будущим сотрудникам не только получить опыт и проявить себя, но и изучить внутренние стандарты и процессы разработки компании. Кроме того, это еще и отличная возможность получить предложение о постоянной работе уже на четвертом курсе. Как правило, ABBYY предлагает стажерам частичную занятость для комфортного совмещения с учебой.
Мы уже не раз подводили итоги летних стажировок в ABBYY (тут, тут и тут), но еще никогда не рассказывали о том, как в целом это проходит в нашей компании, какие тестовые задания и задачи выполняли стажеры, и что думают о стажировке менторы. Все подробности – под катом.
Арракис, который мы заслужили
Во вселенной писателя-фантаста Фрэнка Герберта, Дюна, она же Арракис — это пустынная и маловодная планета с двумя лунами. По сюжету, она находится за пределами Солнечной системы, но если мы захотим поискать ближайшую схожую параллель, то больше всего подходит планета Марс. Предлагаю воспользоваться возможностями, которые даёт современная космонавтика, и совершить воображаемую прогулку на нашу Дюну.
Vite.js и Vue.js
Я нашёл только 3 статьи по Vite.js на Хабр, там были некие обзоры функционала и описание фишек данного инструмента.
Хорошо, тогда вопрос, что же это за инструмент такой и в чем преимущества использовать его при разработке? Если мы зайдем на официальный сайт - то здесь выделяется 6 основных фишек:
Создание и проверка подписей образов контейнеров: Интеграция Notary V1 и Connaisseur в Kubernetes
В статье представлен пример использования системы создания и проверки подписей образов Docker Content Trust и интеграции в Kubernetes с использованием сервера Notary и специализированного Admission Controller - Connaisseur.
Представлен теоретический обзор на используемые инструменты и практический пример интеграции с шагами и примерами конфигурации.
Как повысить эффективность сотрудников с помощью ERP-системы (ч. 2): роботизируем бизнес-процессы
В предыдущей статье на простых примерах я показал, как можно привести в порядок некорректные данные в ERP-системе. Когда данные в порядке, можно приступать к роботизации бизнес-процессов.
Как мы с Ext JS 3.4 на Ext JS 7.1 переходили
Привет! Меня зовут Андрей Ивойлов, я ведущий разработчик и тимлид в команде платформы «Своды» «БАРС Груп». Мы разрабатываем платформу для сбора, анализа и консолидации отчетности «Своды». Разработка платформы началась в далеком 2006 году, а самый первый веб-интерфейс для неё был написан в 2009 году.
Но в этой статье хотелось бы подробнее познакомить вас с Ext JS и рассказать, почему мы работаем именно на этом фреймворке. Ext JS - это проприетарный JavaScript-фреймворк для построения SPA-приложений от компании Sencha. В 2011 году Sencha выпустили Ext JS 3.4. После чего «Своды» перешли на эту версию фреймворка и на долгие годы остались с ней.
Digital-мероприятия в Москве c 27 сентября по 3 октября
Подборка мероприятий на неделю
Epic Growth Conference 2021
- 27 сентября (понедельник)
- 2-й Кожуховский пр 29к6
- от 24 990р.
- Epic Growth Conference (EGC) — крупнейшая конференция по продуктовому маркетингу в СНГ. Это событие для тех, кто хочет растить свой продукт и перенимать опыт самых быстрорастущих компаний. В этом году конференция пройдет вместе с Яндекс.
Тест и обзор Kingston FURY Beast DDR4: звериная производительность до 4000 МГц
Делаем IPsec VPN туннель между Cisco FTD и Mikrotik
Эта заметка написана для того, чтобы облегчить путь тем, кто столкнется с проблемой после меня. Задача кажется тривиальной, но как обычно, в процессе вылезли проблемы, которые решать пришлось методом долгого изучения манов и бесконечных перенастроек. В интернете почему то очень мало информации по настройке Cisco Firepower Threat Defense (FTD), а тем более - в связке с Mikrotik.