Рубрика «2GIS»

Вы просто не умеете редактировать данные - 1

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

Прочитав статью, вы узнаете, как:

  • организовать структуру данных, чтобы их было удобно редактировать
  • обеспечить «динамизм» вашему UI
  • определять, изменилось ли что-то
  • сохранять историю изменений
  • сделать многопользовательский режим за 5 минут

В конце вас ждет готовый прототип с исходным кодом, демонстрирующим описанный подход.

Читать полностью »

Справа налево. Что такое dir=rtl и как приручить арабский язык - 1

Привет. Мы недавно перевели на арабский язык 2ГИС Онлайн, и хотим поделиться своим опытом адаптации интерфейса под RTL (right-to-left). Это будет актуально и для иврита, и для персидского языка.

Я разделю этот опыт на две статьи — теоретическую и практическую. Сегодня — больше про теорию. Я расскажу, зачем нам понадобилось переворачивать весь интерфейс, что для разработчика интерфейсов значит фраза «сделать арабскую версию» и как справиться с арабским языком, смешанным с английским. Особое внимание уделю алгоритму, по которому строится отображение текста смешанной направленности — unicode bidirectional algorithm.

Читать полностью »

Контра, Батлтодс и Мортал Комбат в одной коробке. История о том, как я сделал игровой автомат и поставил его в офисе - 1

Многие дети российских 90-х с теплотой вспоминают часы, проведённые за приставками, — как с друзьями играли в «танчики», Батлтодс, Рокэнролл рэйсинг и кучу других игр. Уверен, что есть среди вас и такие, кто и до сих пор играет и коллекционирует классические приставки и игры для них. Что-то в них есть такое, что связывает с беззаботным детством.

Я и сам этим отчасти болею. Но когда я немного погрузился в мир ретрогейминга, оказалось, что в моем детстве было много такого, что так или иначе обошло меня стороной. Сейчас я говорю об аркадных автоматах — явлении, которое в 80-90-е было фактически двигателем прогресса. Многие знакомые нам игры сначала писались именно под аркадные автоматы, а уже потом портировались на домашние консоли в урезанном виде.

Среди интересующихся ретрогеймингом есть мнение, что играть надо на оригинальном железе, а эмуляция — это не тру. Это означает, что если вы решили вспомнить былые деньки и погонять с друзьями в «Чипа и Дэйла», то будьте добры достать себе приставку (желательно оригинальную NES или Famicom) и пару картриджей к ней. В современном мире это не проблема — можно купить всё это на интернет-аукционах. Вопрос только в том, с какой суммой вы готовы расстаться.

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

Тут мы неизбежно приходим к эмуляции. Но ощущения-то от игры хочется получить особенные, как в аркадном зале.

Выход — собрать аркадный автомат самому
Читать полностью »

Ещё одна система логирования, теперь на ElasticSearch, Logstash, Kibana и Prometheus - 1

Всем разработчикам известна ситуация, когда приложение заглючило и пользователь не может сделать то, что ему нужно. Причины разные: пользователь ввёл неправильные данные, у него медленный интернет и многое другое. Без системы логирования разобрать эти ошибки сложно, а порой невозможно. С другой стороны, система логирования — хороший индикатор проблемных мест в работе системы. Я расскажу, как построить систему логирования в своём проекте (да, ещё раз). В статье расскажу об Elasticsearch + Logstash + Kibana и Prometheus и как их заинтегрировать со своим приложением.

Читать полностью »

Этажи: 3D-навигация на WebGL в 2gis.ru - 1

В 2014 году 2ГИС выпустил Этажи — это фича, позволяющая посмотреть схему этажей здания и найти на ней нужную организацию. Долгое время она существовала только в мобильных приложениях 2ГИС. Теперь эта возможность появилась и в онлайн-версии.

Этажи для веба сделаны на технологии WebGL: они полностью трёхмерные, их можно крутить и приближать. Это первый проект компании, сделанный на этой технологии, и мы хотели бы поделиться опытом реализации.
Читать полностью »

Хотелось бы осветить внутреннюю разработку Ringostat — модуль, созданный программистом компании Владиславом Кудриком для корпоративного исследования. Его цель – определить, какие компании дают контекстную рекламу в том или ином городе.

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

Парсер опирается на базу данных сервиса Prodvigator и функционал поисковых систем Яндекс и Google по геотаркетингу. С помощью модуля мы смогли найти компании, которые крутят контекстную рекламу в определенном городе и стране, отфильтрованные по ключевому запросу, но функционал парсера намного шире. Все найденные данные были уникальными и не повторялись. Его функции будут полезны тем, кто ищет партнеров или клиентов своего рынка в конкретном городе.
Читать полностью »

История одного прогресс-бара - 1

Наверное, любому программисту, который разрабатывает пользовательский интерфейс на C#/XAML, приходилось писать нестандартные элементы управления. В нашей веселой команде 2GIS для Windows Phone мы довольно часто делаем это, и такие задачи стали почти рутиной. Но об одном случае мне хочется рассказать подробнее. Все началось с того, что однажды нам понадобилось написать весьма своеобразный прогресс-бар.

Читать полностью »

WebGL для всех - 1

Идея данной статьи родилась после нескольких мучительных недель изучения WebGL. На личном примере выяснилось, что люди, не сталкивающиеся до этого с 3D-графикой, имеют в основном ошибочные представления о работе данной технологии. К тому же была проблема с поиском информации в интернете.

WebGL, в отличие от Javascript, имеет высокий порог вхождения, его до сих пор мало кто использует, а ещё меньше тех, кто об этом пишет. Большинство руководств или статей перепрыгивают сразу на использование какой-нибудь библиотеки. Но мы-то с вами знаем, что большие универсальные инструменты не всегда пригодны для наших задач или, возможно, делают это на неприемлемом уровне: проигрывают в скорости, поставляются с ненужным багажом и т.д.

Этой статьёй хочется облегчить порог вхождения в чистый WebGL, дать начальное представление и подсказать, куда двигаться дальше.
Читать полностью »

Загружаем «холодную» базу в Мегаплан из 2ГИС - 1

Мы расширяемся, добавляем новые шаблоны файлов выборок из справочника 2ГИС. И на этот раз опишем метод составления, выгрузки и загрузки «холодной» базы потенциальных клиентов в систему автоматизации бизнеса Мегаплан. Кому интересно, милости просим под кат.

Читать полностью »

в 4:20, , рубрики: 2GIS, linux, Ubuntu, облом

Очень много лет пользуюсь 2гисом для ориентации себя в пространстве. Очень радовался когда он появился на мобильниках и ещё больше радовался когда прочитал вот этот пост о бета версии, которая имеет сборку в т.ч. и для Ubuntu. В силу некоторых причин на рабочем ПК использую самую популярную ОС и потому проблем с офлайн 2гисом нет, а на домашнем ПК (с Убунтой 15.04) довольствовался онлайн версией. Пока не понадобилось с ноутбуком ехать в глуш в место с интернетом сомнительного качества. В данной ситуации не возникло сомнений что делать и я перешёл на beta.2gis.ru, сделал всё по инструкции, набрал заветное:

sudo apt-get install 2gis

и споткнулся об сообщение:

The following packages have unmet dependencies:
 2gis : Depends: libc6 (< 2.20) but 2.21-0ubuntu4 is to be installed
E: Unable to correct problems, you have held broken packages.

Конечно можно было вооружиться Гуглом (или Яндексом) и пытаться разрешить эту неловкую ситуацию, но как любитель наикратчайших путей я написал в саппорт и получил в ответ следующее:
Читать полностью »