Pull to refresh
11
0
Expasys @mwsoft

Разработка программного обеспечения

Send message

Делаем быстрый поиск по турам на основе ClickHouse

Reading time12 min
Views22K
В этой статье мы рассмотрим способы создания поиска по базе туров (тур из себя представляет набор из отеля и перелета) и рассмотрим две опции — ClickHouse и MySQL (два движка — InnoDB и MyISAM).

В чем сложность поиска по турам


Туроператоры (TezTour, TUI, Natalie Tours, etc) продают свои путевки неочевидным, на первый взгляд, способом:

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

После этого по таким комбинациям (количество которых может исчисляться сотнями миллионов и даже миллиардами) осуществляется поиск. Пример формы поиска можно увидеть у TezTour — пользователь может выбрать только один город вылета, тип размещения и страну, а остальные параметры пользователь может выбирать произвольные.

Несмотря на то, что общее количество туров (комбинаций) исчисляется сотнями миллионов, на каждый фиксированный набор параметров (город вылета, тип размещения, страна) приходятся, в худшем случае, десятки миллионов вариантов. Но даже по такому количеству туров не так просто осуществлять поиск, потому что нужно найти записи, которые удовлетворяют свободным критериям, которые задают пользователи, и сортировка может быть более-менее произвольной (как правило, сортировка делается по цене, но это не единственный возможный критерий). В этой статье мы рассмотрим упрощенную архитектуру реалтайм-поиска по турам на основе MySQL и ClickHouse, без учета стопов (сленговый термин, который означает, что по каким-то вариантам закончились номера или места в самолете, и такие туры нужно исключить из выдачи). Мы научимся делать поиск быстрым и уметь показывать результаты с сортировкой по любым полям.
Читать дальше →
Total votes 43: ↑37 and ↓6+31
Comments19

Дополненную реальность начали массово применять в американской промышленности

Reading time2 min
Views17K
Дополненная реальность (augmented reality, AR) — одна из «J» (см. примечание) промышленных технологий с ускоренной диффузией.
image
В 2015 мы, создавая высокотехнологичное машиностроительное предприятие, переняли опыт наших зарубежных коллег-машиностроителей автоматизации сборочных мест рабочими станциями, большими дисплеями и трехмерными моделями производимого оборудования из PDM систем (см.фото ниже) для оптимизации сборочных операций в цеху.
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments15

3 лучших сервиса для проведения опроса NPS (индекс потребительской лояльности)

Reading time3 min
Views29K
Такое многогранное понятие как "лояльность клиентов" не просто описать, но совсем не сложно измерить. На помощь приходит индекс NPS. Простота опроса для клиентов + понятная методика расчета + возможность мониторинга сделали NPS популярным методом определения лояльности клиентов как среди небольших фирм, так и среди компаний с мировым именем. Сегодня большинство опросов клиентов проводят онлайн, опрос NPS не является исключением. Предлагаю рассмотреть онлайн сервисы для проведения опроса NPS по следующим критериям:

— стоимость проведения опроса
— возможности настройки дизайна
— распространение опроса
— обработка результатов
— оповещения о полученных ответах
— шаблон опроса
— нахождение сервера компании
Читать дальше →
Total votes 18: ↑14 and ↓4+10
Comments7

Серия видеоуроков по Git для новичков

Reading time1 min
Views114K
Скорее всего, если вас привлекло название статьи, то вы начинаете свой путь знакомства с системой контроля версий Git. В данной статье я приведу 10+ видео о пошаговом вхождении в контроль версии используя Git. Данного курса будет вполне чем достаточно для работы с такими популярными сервисами как GitHub и Bitbucket.

Однажды мой знакомый, который только начинал свой путь в ИТ кинул мне данный мемчик что слева, с вопросом "А чем плохо то?", поэтому чтобы понимать данную шутку и уметь работать с самым популярным на сегодня VCS (Version Control System) рекомендую к ознакомлению серии видеоуроков, которую я привел ниже.
Читать дальше →
Total votes 58: ↑49 and ↓9+40
Comments43

Подходы к дизайну в виртуальной реальности

Reading time5 min
Views11K


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

Исторически сложилось так, что цифровые интерфейсы создаются из расчёта соответствия характеристикам двумерных дисплеев. Дизайнерам приходится вписывать содержимое и навигацию в рамки экранов, преобразуя опыт взаимодействия с реальным миром в иконки и прочие элементы интерфейса. Но набивание виртуальной среды двумерными элементами разрушает эффект погружения, необходимый для VR. Поэтому дизайн в VR подразумевает не перенос привычных двумерных методик в трёхмерное окружение, а поиск новой парадигмы.
Total votes 34: ↑32 and ↓2+30
Comments2

ASP.NET Core, Angular 2, SignalR для чайников

Reading time8 min
Views49K
Всем привет! Хочу поделиться своим опытом использования ASP.Net Core и Angular 2 с использованием SignalR.

Будучи программистом 1С, часто приходится решать задачи, которые на 1С решить сложно или невозможно. Очень помогает знание .Net. Но вот, что касается клиентской части сайтов, то здесь много тонкостей (JavaScript, CSS, JQuery итд), которые быстро забываются, если ими не пользоваться.

Angular 2 позволяет значительно упростить создание клиентской части. Так TypeScript значительно ближе к C# (и главное позволяет использовать Руслиш), а с шаблонами несложно разобраться зная Razor и Xaml.

Главное, что вы работаете с данными, по аналогии с WPF. При этом есть куча контролов.

Хочу поделиться с такими же бедолагами как я, или кто только начинает изучение Angular 2, ASP.Net Core, так как потратил значительное время, на поиски материалов для изучения.

Для тренировки на кошках был выбран мой проект 1C Messenger для отправки сообщений, файлов и обмена данными между пользователями 1С, вэб страницы, мобильными приложениями а ля Skype, WhatsApp. Исходники Здесь

Пока не вышел. Net Core 1.2 и NetStandard 2, сейчас нет поддержки клиента для SignalR под .Net Core

Итак, начнем. Для работы нам потребуется:

1. ASP.NET Core + Angular 2 шаблон для Visual Studio
2. Руководство по ASP.NET Core
3. Руководство по Angular 2
4. Руководство по TypeScript
5. Компоненты от PrimeNG
6. Компоненты Bootstrap
Читать дальше →
Total votes 16: ↑11 and ↓5+6
Comments34

Практическое руководство по VR-дизайну

Reading time15 min
Views27K


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

Содержание


  1. Памятка для начинающих
  2. Основные принципы
  3. Процесс
  4. Инструменты
  5. Словарь
  6. Платформы
  7. Другие ресурсы
Total votes 51: ↑47 and ↓4+43
Comments2

Нужно ли участвовать в конференциях?

Reading time6 min
Views12K
Нужны ли вашему бизнесу выставки? Зачем тратить время и деньги на участие в конференциях? Где поставить стенд и кого взять с собой? Пить или не пить на afterparty? А главное, как конвертировать все эти затраты времени и денег в продажи и прибыль для компании?



Мы в Alconost уже нашли свои ответы на эти вопросы и ездим на конференции регулярно. Одна из таких конференций — ISDEF — постоянно приносит нам не только знакомства и клиентов (на ISDEF очень высокая концентрация владельцев продуктовых IT-бизнесов), но и вдохновение, новые знания и идеи. Так, на одном из ISDEF мы присутствовали на докладе Олега Федорова (CEO Oxygen Software), который делился опытом поездок по отечественным и зарубежным мероприятиям. Опыт очень ценный, учитывая, что не последнюю роль в успехе ребят из Oxygen на зарубежных рынках сыграли конференции.

Мы сделали статью-конспект выступления Олега. Статья будет полезна как новичкам, так и опытным посетителям профильных ивентов. Лайфхаки и план действий — сразу под катом!
Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments4

Dadata.ru проверяет документы и знает все банки

Reading time1 min
Views15K
DaData.ru — сервис автоматической проверки и исправления контактных данных (ФИО, адресов, телефонов, email, паспортов). Плюс javascript-виджет и API подсказок при вводе адреса, ФИО, организации и банковских реквизитов.

С предыдущего релиза мы стали еще круче работать с данными:
  • подсказываем банковские реквизиты,
  • возвращаем геокоординаты в подсказках по адресам,
  • проверяем действительность паспорта,
  • определяем стоимость квартиры.

Свежие подробности
Total votes 30: ↑26 and ↓4+22
Comments52

Ещё раз о шифровании ГОСТ 28147-89

Reading time3 min
Views101K
О реализации этого алгоритма шифрования уже рассказывал FTM: как в общем и целом, так и про режим простой замены. После изучения существующих библиотек и отдельных реализаций этого ГОСТа на C# я решил написать свой велосипед, в первую очередь, ради интереса и опыта. Результатами этой работы мне и хотелось бы поделиться с уважаемым сообществом.
Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments12

Я тебя по сетям вычислю: используем API крупнейших соцсетей в своих корыстных целях

Reading time11 min
Views175K


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

Есть в американской разведке такая дисциплина, как OSINT (Open source intelligence), которая отвечает за поиск, сбор и выбор информации из общедоступных источников. К одному из крупнейших поставщиков общедоступной информации можно отнести социальные сети. Ведь практически у каждого из нас есть учетка (а у кого-то и не одна) в одной или нескольких соцсетях. Тут мы делимся своими новостями, личными фотографиями, вкусами (например, лайкая что-то или вступая в какую-либо группу), кругом своих знакомств. Причем делаем это по своей доброй воле и практически совершенно не задумываемся о возможных последствиях. На страницах журнала уже не раз рассматривали, как можно с помощью различных уловок вытаскивать из соцсетей интересные данные. Обычно для этого нужно было вручную совершить какие-то манипуляции. Но для успешной разведки логичнее воспользоваться специальными утилитами. Существует несколько open source утилит, позволяющих вытаскивать информацию о пользователях из соцсетей.
Читать дальше →
Total votes 89: ↑83 and ↓6+77
Comments22

Алгоритм обращения программы к API VKontakte

Reading time3 min
Views95K
Часто бывает мы хотим автоматизировать то или иное действие. Порой спешка или просто лень не дает нам возможности ознакомиться со всей документацией(по API VK).
Разработать программу для работы с API ВКонтакте проще чем кажется. Подойдет любой язык, умеющий отправлять http get запросы (соответственно получать ответ). Например: Delphi, shell, C, Perl, PHP, Python и т. п.
image
Читать дальше →
Total votes 69: ↑39 and ↓30+9
Comments18

Делаем backup Google или паранойя по поводу санкций. Owncloud и другие открытые решения

Reading time4 min
Views109K


В свете последних топиков, в том числе «Autodesk не будет продавать ПО попавшим под санкции компаниям», появляется ощущение, что маховик абсурда все сильнее раскручивается. Мы не будем осуждать в этом топике политические причины всего этого безобразия, а подумаем немного о том, что произойдет, если внезапно «выключат Google», причем неважно с какой стороны. Также предлагаю рассмотреть один из вариантов забрать себе накопленный контент, используя открытое ПО.

Для начала давайте подумаем, что является наиболее ценным для большинства пользователей сервисов Google? В первую очередь, это личный контент, который хранится в облаке, почта и другие материалы. Во вторую очередь, это сервисы, которым нужно найти замену в кратчайшие сроки. Мы не будем рассматривать нужды профессиональных разработчиков под Android и корпоративные нужды.
Создаем резервную копию
Total votes 126: ↑111 and ↓15+96
Comments165

Проблемы обработки исключений в WCF под Mono

Reading time13 min
Views3.6K
По служебной необходимости мне пришлось столкнуться с задачей создания клиента WCF-службы под Mono 2.6.7.
Всё вроде бы шло хорошо – клиент работал как под .NET, так и под Mono – до тех пор, пока я не занялся обработкой исключений, которые могут возникнуть в методах WCF-службы.
Проблемы начались тогда, когда мне понадобилось обработать моё собственное исключение, содержащее не только сообщение исключения, но и некоторую дополнительную информацию.
Я решил, что организую обработку исключительных ситуаций так, как это описано в статье «Exceptions through WCF» (http://habrahabr.ru/blogs/net/41638/) уважаемого Романа RomanNikitin.
В .NET клиент работал так, как надо, а вот при запуске под Mono возникла следующая ошибка:
image
Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments9

Онлайн курсы, взгляд преподавателя + зов разработчикам

Reading time6 min
Views70K
imageВ данной статье я изложу свой взгляд на проведение онлайн курсов: какие есть игроки в Интернете, и чего, на мой взгляд, категорически не хватает в Рунете (Ау-у, разработчики!). В конце опрос.

Речь пойдёт об Learning Management Systems (LMS) для частных лиц. Модельные ситуации такие:
  • Преподаватель кружка для школьников средних классов по математике во Дворце Пионеров имеет несколько групп. Хочет организовать свой материал и как-то мотивировать детей что-то делать дома за компьютером.
  • Преподаватель ВУЗа вместе со своими студентами хочет сделать человеческий электронный конспект своих лекций. С нумерацией рисунков, оглавлением, формулами и подобными LaTex'овскими прибаутками.

Читать дальше →
Total votes 47: ↑44 and ↓3+41
Comments46

Разработка встраиваемого JavaScript приложения

Reading time4 min
Views13K

Вместо вступления


Я хочу рассказать вам о некоторых трудностях, с которыми мы столкнулись при разработке встраиваемого JavaScript приложения, виджета комментариев "Комментатр".
В этой статье я опишу некоторые проблемы и тонкости разработки подобных приложений, а также предложу варианты их решения.
В качестве backend–решения мы используем приложение на Ruby on Rails, поэтому некоторые фрагменты этой статьи будут специфичны для Rails–окружения.

Комментатр состоит из двух проектов: API и виджета, который устанавливается на сайт клиента. Речь пойдет об их взаимодействии между собой и виджета с сайтом клиента. В основном общение виджета и API происходит посредством JSONP, который, как известно, поддерживает только GET–запросы. В связи с этим возникает первая сложность.

Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments24

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

Reading time5 min
Views4.5K
Близится время проведения Единого государственного экзамена (ЕГЭ) – 2013. Можно по-разному относится к ЕГЭ, но то, что его существование – это объективная реальность, отрицать нельзя. Сотни тысяч выпускников школ и их родители с волнением ожидают этих дней. А затем с замиранием сердца ожидают результатов экзамена.
Существует государственная услуга по предоставлению результатов экзамена, которая полностью называется «Предоставление информации о порядке проведения государственной (итоговой) аттестации обучающихся, освоивших образовательные программы основного общего и среднего (полного) общего образования, в том числе в форме единого государственного экзамена, а также информации из баз данных субъектов российской федерации об участниках единого государственного экзамена и о результатах единого государственного экзамена», в электронном виде.
О разработке в 2011 году портала для предоставления данной услуги в Республике Северная Осетия-Алания и пойдет речь.
Читать дальше →
Total votes 4: ↑3 and ↓1+2
Comments1

Во Владикавказе на зданиях в историческом центре города повесили QR-коды

Reading time2 min
Views11K
О городе

Владикавказ – столица Республики Северная Осетия-Алания, южный форпост Российской Федерации. Город с официальным населением чуть больше 300 тысяч человек был заложен как крепость 6 мая 1784 года. Центральная часть города: проспект Мира (бывший Александровский), улица Ленина (бывшая Дворянская), улица Миллера, улица Баллаева застроены зданиями конца 19 – начала 20 века.


Крепость Владикавказ. Фотография с картины художника А. Дьяконова.
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments48

Простая интеграция сайта и 1С

Reading time6 min
Views142K
image
Последнее время натыкался на несколько различных статей об интеграции сайта и 1С. В комментариях часто начинались споры о различных подходах, и я решил поделится способом который однажды довелось реализовать мне. Разумеется, описанный ниже способ не претендует на универсальность и единственность, но, думаю, будет полезен тем, кто только собирается писать свой вариант.
Читать дальше →
Total votes 65: ↑56 and ↓9+47
Comments41
1

Information

Rating
Does not participate
Location
Владикавказ, Северная Осетия, Россия
Registered
Activity