При извлечении информации часто возникает задача поиска подобных фрагментов текста. В контексте поиска запрос может быть сгенерирован пользователем (например, текст, который пользователь вводит в поисковом движке) или самой системой. Часто нам нужно сопоставлять входящий запрос с уже проиндексированными запросами. В этой статье мы рассмотрим, как можно построить систему, решающую эту задачу применительно к миллиардам запросов без траты целого состояния на серверную инфраструктуру.
Читать полностью »
Рубрика «Анализ и проектирование систем» - 26
Индексируем миллиарды текстовых векторов
2019-12-11 в 15:14, admin, рубрики: natural language processing, Алгоритмы, Анализ и проектирование систем, Блог компании Mail.Ru Group, графы, никто не читает теги, поисковые системы, поисковые технологииО структуре параллельных вычислений или доводы против оператора «Go»
2019-12-10 в 14:59, admin, рубрики: async, Go, golang, python, Анализ и проектирование систем, асинхронное программирование, дейкстра, конкурентное программирование, параллельное программирование, параллельные вычисления, потоки, смена парадигмы
Каждый язык, поддерживающий параллельные (конкурентные, асинхронные) вычисления, нуждается в способе запуска кода параллельно. Вот примеры из разных API:
go myfunc(); // Golang
pthread_create(&thread_id, NULL, &myfunc); /* C with POSIX threads */
spawn(modulename, myfuncname, []) % Erlang
threading.Thread(target=myfunc).start() # Python with threads
asyncio.create_task(myfunc()) # Python with asyncio
Есть много вариантов нотации и терминологии, но одна семантика — запустить myfunc
параллельно основной программе и продолжить родительский поток выполнения (англ. "Control Flow")
Что такое энтропия в ПО и как ею управлять?
2019-12-10 в 12:35, admin, рубрики: Анализ и проектирование систем, Блог компании Mail.Ru Group, никто не читает теги, Программирование, Проектирование и рефакторинг, разработка, управление разработкой, энтропияСегодня солнечный день. Вы едете по дороге в вашу деревню, в которой живут все ваши друзья, ваша семья и ваша любимая собака. Прекрасный день! Неожиданно вы слышите ужасный, кошмарный вопль, разрывающий окрестности. Огромная отвратительная Гидра приближается к деревне, чтобы её уничтожить! Вы хватаете меч (конечно, у вас есть меч!) и стараетесь защитить всех, кого любите. Но есть небольшая проблема: у чудовища много голов, и когда вы отрубаете одну из них, быстро вырастает новая!
Кажется, что вы не можете победить в этой битве. Возможно, вы сможете играть с Гидрой достаточно долго, так чтобы вся деревня успела улететь от ужасной угрозы? Наконец, вы станете настоящий героем всего мира! Кому этого не хочется?
В роли Гидры выступает энтропия в ПО: это ваш враг, он вас измотает, но вы никогда не сможете полностью от него избавиться. Но с ним всё равно нужно бороться, чтобы ваши приложения (и коллеги) оставались здоровыми и вменяемыми.
Мы узнаем:
- Что такое энтропия в ПО и как заметить её в своём коде.
- Что является её возможными причинами и как сохранить энтропию на низком уровне.
Хватит болтовни, к делу!
Читать полностью »
Как спроектировать систему уведомлений. Пошаговая инструкция с примерами
2019-12-09 в 10:05, admin, рубрики: beginner manual, guide, interfaces, tutorial, UX, ux design, ux для новичков, Анализ и проектирование систем, Блог компании Wrike, веб-дизайн, дизайн, дизайн интерфейсов, интерфейсы, проектирование интерфейсов, советы начинающим, уведомленияСложно представить современный сервис без комплексной системы уведомлений. Нам заботливо сообщают, что кто-то из друзей оценил фотографию, курьер с долгожданной пиццей уже в пути, а такси приехало к дому.
В системах управления работой роль уведомлений становится критически важной, поскольку глубоко встраивается в рабочий процесс команды. Как брошенный из рук в руки мячик, уведомления своевременно сообщают об изменениях в задачах, призывают к выполнению своей части работы и подсказывают важную информацию.
Ниже я поделюсь своим опытом системного подхода к проектированию уведомлений. Как обнаружить и учесть все ситуации, чтобы сделать продукт полезнее для пользователей и сохранить ресурсы вашей команды?
Цифровая трансформация «Леруа Мерлен»: проектирование интерфейса для работы с обращениями покупателей
2019-12-06 в 12:22, admin, рубрики: agima, Leroy Merlin, Анализ и проектирование систем, Блог компании Агентство AGIMA, проектирование интерфейса, прототипы
Говорят, ремонт хуже пожара. К счастью, у нас есть «Леруа Мерлен», поэтому тушить ремонтный пожар гораздо проще. Мы мчимся в ближайший Леруа и хаотично скупаем штукатурку, гипсокартон, арматуру и еще массу очень нужных вещей. Дома выясняется, что смесители не подходят под раковину, а цвет напольной плитки недостаточно голубой. Или ремонт закончился, а нераспечатанные банки с краской заняли весь балкон.
Такие неподходящие, бракованные или лишние товары можно вернуть в «Леруа Мерлен» в течение 100 дней в любом магазине сети. Раньше сотрудник магазина работал с заявками с использованием бумажной книги заявок, а попытка перевести все в диджитал наткнулась на создание сложного, совсем не user friendly интерфейса, на базе Microsoft Dynamics. Но в «Леруа Мерлен» решили попробовать еще раз решить эту проблему и зайти с другой стороны. Рассказываем, как проектировали интерфейс для работы с обращениями покупателей и трансформировали бизнес, внедряя цифровые технологии.
Читать полностью »
«Доктор, уберите это из счёта»: как мы искали неправомерные услуги в ДМС
2019-11-28 в 6:54, admin, рубрики: Анализ и проектирование систем, Блог компании SAS, болезнь, больница, врач, диагностика, здоровье, Здоровье гика, лечение, ошибки, пациент, сервис, страховка, услуга
Во многих больницах, работающих по ДМС и просто оказывающих платные услуги населению напрямую, существует своеобразный «план продаж» на каждого практикующего врача. Выполнение этого плана зачастую достигается недобросовестными путями за счёт застрахованных по ДМС. К примеру:
- Комплексные услуги разбиваются на составляющие врачебные манипуляции так, чтобы чек был больше.
- Назначаются избыточные процедуры и исследования при лечении диагнозов — особенно, если в больнице совсем недавно закупили новое оборудование.
Такие злоупотребления — огромная статья убытков для страховых компаний в секторе добровольного медицинского страхования (ДМС), которые и так находятся в условиях жёсткой конкуренции и вынуждены всё больше расширять программу страхования для привлечения клиентов. Поэтому с их стороны есть врачи-эксперты, занимающиеся регулярной проверкой счетов. А в случае выявления нарушений — проведением так называемой «профилактики» в лечебно-профилактических учреждениях.
Все это — долгая и рутинная работа, требующая от эксперта предельной концентрации. Ведь на правомерность оказания услуги влияет целый ряд факторов, связанных как с историей лечения пациента и его программой страхования, так и с особенностями прайс-листа в больнице. Естественно, везде, где вы видите слово «рутина» можно применить автоматизацию. Что мы и сделали. Не без сложностей. Читать полностью »
Customer Development или как запустить продукт без провала?
2019-11-22 в 16:10, admin, рубрики: customer development, Анализ и проектирование систем, Блог компании Tinkoff, интервью, интервью с клиентами, исследование пользователей, исследование рынка, управление разработкойЕсли вкратце — никак.
Продуктовый мир — мир неопределенности. Мы не знаем, что будет в будущем наверняка. При этом все решения продуктового менеджера стоят компании времени и денег. Чтобы принимать наиболее эффективные решения, необходимо опираться на аналитику, метрики и понимать поведение пользователей.
Для этого продуктовые менеджеры используют методологию проведения глубинного интервью с клиентами, иначе Customer Development, или «кастдев». Вся фишка в том, что мы идем «в поля», щупать рынок, чтобы выявить реальную проблему и потребность пользователя, которые мы хотим решить нашим продуктом, при этом не привязываясь к нему. Представляем, как будто его нет.
Это позволяет формулировать и быстро проверять новые гипотезы, ценность как раз в быстрой проверке. На один кейс у продакта уходит примерно 1,5-2 года жизни, в среднем продакт учится 10 лет. Вот почему их мало, и они ценятся в бизнесе.
Читать полностью »
Что нового в SOLIDWORKS 2020
2019-11-21 в 17:51, admin, рубрики: 3d, 3d проектирование, 3d-моделирование, CAD/CAM, cam, dassault systemes, simulation, solidworks, solidworks 2020, Анализ и проектирование систем, Блог компании DassaultSystèmes, Работа с 3D-графикой
Более чем шести миллионам пользователей по всему миру SOLIDWORKS позволяет ускорить и усовершенствовать процесс разработки изделий – начиная со стадии концептуального дизайна до изготовления конечной продукции – и сгенерировать добавленную стоимость для их бизнеса. Рассмотрим подробнее SOLIDWORKS 2020 — новейшую версию пакета приложений для 3D-дизайна и проектирования, разработанную научно-исследовательским подразделением Dassault Systèmes на основе комментариев и идей об усовершенствовании, собранных у сообщества SOLIDWORKS по всему миру.
Итак, SOLIDWORKS 2020 помогает оптимизировать процесс разработки и производства промышленных изделий на всех стадиях. В новой версии улучшения сосредоточились в основном в трех областях:
Повышение производительности. Усовершенствованные функции редактирования чертежей, работы со сборками, выполнения инженерных расчетов — все они значительно ускоряют проектирование и анализ изделий любой сложности.
Оптимизация процессов. Благодаря расширенным возможностям проектирования, расчетов, управления инженерными данными и подготовки производства сокращается цикл разработки, повышается качество продукции и снижается ее себестоимость.
Согласованная работа в облаке. К SOLIDWORKS 2020 можно без труда подключать приложения, работающие на платформе 3DEXPERIENCE. Это дает возможность контролировать многие аспекты разработки изделий, подготовки производства и поставки продукции, причем в любой момент времени.Читать полностью »
Что не так с валидацией данных и при чем тут принцип подстановки Лисков?
2019-11-17 в 20:43, admin, рубрики: Анализ и проектирование систем, объектно-ориентированный дизайн, ооп, Программирование, Проектирование и рефакторинг, проектирование систем
Если вы иногда задаете себе вопрос: «а всё ли хорошо мне в этот метод приходит?» и выбираете между «а вдруг пронесет» и «лучше на всякий случай проверить», то добро пожаловать под кат… Читать полностью »
Архитектура компьютерных систем 1 часть. Логические вентили
2019-11-16 в 13:41, admin, рубрики: Go, golang, Анализ и проектирование систем, архитектура компьютера, булева логика, Компьютерное железо, логические вентили, ПрограммированиеЛогические элементы
Доброго времени суток, я начинаю серию статей по написанию виртуальной машины на языке Golang. Я выбрал этот язык так как он прост для чтения и имеет в стандартной библиотеке уже необходимые функции, которые пригодятся в дальнейшем.
Эта статья не несёт в себе абсолютно никакой новой информации для тех, кто умеет составлять таблицы истинности для простых логических вентилей. Если вы это умеете, то не тратьте время и переходите ко второй части.
Читать полностью »