Tuesday, May 28, 2019

Планы развития сайта коттеджного поселка Технополис GS


Немного истории

Коттеджный поселок города будущего появился совсем недавно. Вот фото части поселка как есть (вид сверху):


А 15 декабря 2016 года на свет появился сайт коттеджного поселка gsgusev.ru



Основной идеей сайта было собрать всю полезную информацию в одном месте. Ведь в «город будущего» съехались специалисты со всей страны и сразу же попали в информационную изоляцию, потому что в интернете ее не было.

С информацией все было по-настоящему грустно. Ее не было. Ни на одной из карт Google, Yandex и т.д. , поселок не был обозначен. В рамках разработки сайта долгими летними вечерами я гулял с GPS трекером вокруг каждого домика, и в итоге нарисовал карту на OSM и встроил ее на сайт:



(на картах Google поселка до сих пор нет)


Анализ сайта

Прошло 3 года. За последний год есть статистика посещаемость, которая говорит о том, что сайт не пользуется популярностью. Вот статистика за последний год:



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

Все эти годы сайт служил обучающей площадкой для начинающих программистов, а список людей, которые смотрели в исходники находится на вкладке «О нас»

Управляющей компании поселка сайт был не нужен.

Планы

В субботу, 18 мая, в Калининграде прошел первый Meetup, которые организовали бывшие коллеги (и жители поселка). Я написал письмо организатору события Ольге, целью которого было узнать инициативное звено GSLabs и кто и как мог бы посодействовать развитию сайта.

Ближайшей задачей будет добавить на сайт описание.

Кстати, исходники сайта полностью открыты:

Saturday, May 25, 2019

Первый анализ сайта ТЦ «Две пятерки» и идеи по развитию

В апреле 2019 года активно велась разработка сайта ТЦ «Две пятерки». Соответственно, статистика была искажена посещениями сайта разработчиками. В мае 2019 года работы были прекращены а сайт остался жить сам по себе. Посещаемость сайта весь месяц стабильно сокращается:



Что делать? Анализировать, собирать отзывы и думать о развитии. Так состоялись две важные встречи, о которых будет изложено ниже. Но сначала немного информации о торговом центре.

Структура ТЦ «Две пятерки»

Здание торгового центра напоминает жилой дом. У здания нет единственного владельца, но есть много собственников. Как и в жилом доме обслуживание торгового центра ведет управляющая компания. Каждый владелец распоряжается своим помещением по своему усмотрению. Кто-то сдает помещение в аренду, кто-то открывает магазин, кто-то разделил площадь на несколько частей и пытается продать (или уже продал).

Когда-то была вывешена схема павильонов, но в итоге общения выяснилось, что схема павильонов неактуальна и вообще за нее никто ответственности не несет! Вот эта схема:



Встреча с руководством управляющей компании

Сайт руководству и сотрудникам управляющей компании не понравился. Мы обсудили возможные пути развития сайта, я узнал историю торгового центра и вник в его проблемы. Мне разрешили выложить на сайте информацию об управляющей компании и не препятствовали инициативе и развитию сайта. За это выражаю большую благодарность ТЦ «Две пятерки».

Встреча с собственником помещения

Спустя некоторое время мы встретились с Никитой, собственником одного из помещений и обсудили некоторые моменты из жизни торгового центра. Благодаря Никите появилось понимание того какая полезная информация может быть размещена на сайте. Спасибо большое ему за помощь.

Полезная информация на сайте

Сайт может отображать полезную информацию для таких категорий посетителей:

  • Собственников
  • Арендаторов
  • Посетителей

Для посетителей:

  • Информация о магазинах (это уже реализовано на сайте)
  • Просмотр акций от разных магазинов
  • Как добраться до торгового центра

Для арендаторов:

  • Помещения, доступные для сдачи в аренду
  • Информация об управляющей компании
  • Возможность разместить объявление об акциях и распродажах

Для владельцев:

  • Информация об управляющей компании
  • Возможность разместить объявление о сдаче помещения

Для управляющей компании:

  • Возможность разместить анонсы

Зачем это все?

После внесения изменений на сайт планируется получить увеличение посещений сайта для себя и увеличение пользы от сайта для посетителей. Вопрос монетизации оставим на следующий этап.

Friday, May 24, 2019

Кеширование изображений в react-native

Для отображения фотографий в приложении используется компонент Image. Параметр source может содержать как ссылку на локальный файл, так и URL. В приложении IQITO фотографии хранятся на удаленном сервере и очень часто весят несколько мегабайт. Необходимо реализовать кеширование фото на стороне приложения.

Важно отметить, что в данной задаче фото на сервере не будут меняться и их можно кешировать «навсегда»


Решение «из коробки»


Когда программисты говорят «из коробки» - это означает готовое решение в используемом фреймворке/библиотеке. В react-native готового решения нет 😕. Пока есть только Cache Control (iOS Only) , который не подходит.


Сторонние модули


В интернете я нашел такие модули:
  1. react-native-image-cache-hoc (10+ issues)
  2. react-native-img-cache (25+ issues)
  3. react-native-fast-image (100+ issues)
react-native-image-cache-hoc не работает вообще,
react-native-img-cache не работает с изображениями, которые выбраны с локальной памяти,
react-native-fast-image не работает вообще.


react-native-img-cache


Кроме установки модулей были сделаны такие изменения в коде:


Кроме того, если изображение выбрано с локального устройства, То кешировать не надо.

Friday, May 10, 2019

Работа в git при выполнении задачи

Код, который был написан программистом, обязательно будет проверен другим программистом. А если пройдет много времени, то программист сам будет вникать в свой код с нуля. Потому в этой статье размышления о том, как писать код. Для примера взята задача из проекта с открытым исходным кодом events4friends.

Дерево коммитов выглядит так:


Коммит «Merge branch 'share-event'» включает в себя все изменения, которые были сделаны при выполнении задачи, тогда как остальные коммиты в ветке «share-event» содержат атомарные изменения.

Атомарные изменения

Каждый коммит содержит реализацию одного действия. Например, мы решили поправить стиль кода. Тогда все изменения - это один коммит:


Дальше нам необходимо реализовать формирование даты. Коммит включает такой код:


Плохо! Несколько действий в одном коммите.
Хорошо!
Одно действие - это один коммит.

Если в одном коммите присутствует выравнивание строк и сложная логика, то потом будет очень сложно разобраться что к чему.

Названия коммитов

Название коммита отображает действие и лаконично отвечает на вопрос «что делает этот коммит?». Соответственно, в названии коммита содержится ответ, который начинается с глагола: «исправляет код стиль», «добавляет функцию getSize» и т.д.

Примеры:
Плохо! "some changes", "code changes"
Хорошо!
 "fix code style", "add Person class", "update dependencies"

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

Friday, May 3, 2019

История GDG Цензура Bot в 2018 году

Началось все в феврале. Бот был сделан в рамках хакатона KonigHack 2018. Код бота, который был написан на хакатоне, пылится в архиве на GitHub. В следующую неделю после хакатона код бота был переписан и переехал в закрытый репозиторий.

Далее был написан пост №1, в котором описана идея и самая простая реализация.

Через некоторое время были собраны все возможные варианты обхода бота. Пост №2 содержит исчерпывающую информацию о том, как можно «обойти» бота.

Проведено исследование Томита-парсера и возможности его интеграции с ботом. Об этом можно почитать в посте №3.

Расширение возможностей бота и разработка API. Пост №4 расскажет о том, как бот был встроен на сайт и в мобильное приложение Mafia.

В посте №5 рассказано о реализации антиспама в чатах приложений.

Пост №6 - это рассказ про подготовку к сентябрьскому DevFest.

Пока все


Wednesday, May 1, 2019

Продвижение сайта ТЦ «Две пятерки»

Довольно часто слова «продвижение сайта» воспринимаются негативно. С одной стороны находятся владельцы сайтов, которые хотят немедленный и часто фантастический результат. С другой стороны находятся работники ИТ, которые часто поступают недобросовестно и продуют «воздух в банке» под видом продвижения. Негатив ожидаем.

Что такое продвижение сайта?

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

Как мы продвигали сайт ТЦ «Две пятерки»?

Так как времени и бюджета на продвижение у нас не было, мы сделали самые простые действия. Это важные действия, но почему-то в статье на Википедии о них ни слова. Мы добавили наш сайт на карты Яндекс и Google! Затем сайт автоматически стал появляться в поиске.

Поисковик Google:


Поисковик Яндекс:


Спустя некоторое время появились первые посетители. На сайте размещен информер счетчика Яндекс, поэтому за посещаемостью можно следить прямо на сайте ТЦ «Две пятерки»:



Дальше планируется пошаговое улучшение сайта и сбор статистики.