Свободный взгляд на информацию: Архитектура

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Предыдущий топик: Начало

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

Начну по порядку. Наверное самое важное для построения масштабируемой системы — это сервера, back-end. На данном этапе разработки приложение состоит из ряда серверов:

api.freelook.info — данный сервер приложения предоставляет централизованный доступ к провайдерам информации, является по сути набором веб методов для фильтрации контента по ресурсам. Программный код написан на node js. За основу взят модуль express, и вспомогательные модули на java и python. Расположен на сервисе heroku в США, Эшбурн.

prerender.freelook.info — данный сервер приложения собирает контент с динамических ресурсов, преобразуя его в статический html. Построен так же на node js. В основу положен модуль phantomjs, который эмулирует браузер в консоли. Расположен на сервисе heroku в Ирландии, Дублин.

parse.freelook.info — данный сервер приложения собирает и хранит данные системы. Опять же все на node js в связке с mongodb по капотом. Сейчас расположен на сервисе parse в США, Эшбурн.

about.freelook.info — по сути является визиткой и гидом по приложению. Построен полностью на php. В основе лежит WordPress. Расположен на сервисе ukraine в США, Пасадена.

freelook.info — сердце системы, которое находится в Украине, Киев. Отвечает практически за всю маршрутизацию приложения и отдачу статики. В основу, после большого числа экспериментов, был взят nginx. Работает это все под управлением Ubuntu server 14.04. Так же настроены вспомогательные cron процессы, которые дирижируют системой по расписанию. Дирижерской палочкой же является модуль для node js под названием pm2. Он позволяет следить за всей системой, перегружать сервера и уведомлять о проблемах в реальном времени. Выглядит это примерно так:

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

Для continuous integration был взят Travis CI, который с помощью gulp тасок собирает и проверяет приложение. Для проверки используется unit тестирование — karma + jasmine, e2e тестирование — protractor, а так же репортеры jshint, Plato, Istanbul.
Это то, что вкратце касается сборки и хранения системы.

На десерт, хотелось бы рассказать о front-end. Сама клиентская часть приложения по сути является гибридной. Это значит, что один и тот же исходный код умеет работать на разных платформах. Сейчас таковыми являются браузер, chrome приложение, android приложение. За основу взяты angular + material, которые активно развиваются и тем самым помогают приложению стать лучше. Верстка не самая сильная моя сторона, поэтому материал дизайн стал просто волшебной палочкой. Так же на клиенте используются ряд вспомогательных библиотек, таких как socket.io — поддержка сокет соединения с сервером, font awesome — красивые значки, Google analytics и тд. Управляет всем этим делом npm и bower. Что касается мобильного приложения, то эта задача лежит полностью на cordova и phonegap build.

На закуску немного статистики и аналитики, которая накопилась за последнее время:

Надеюсь данный стек технологий и инструментов может быть полезен кому-то при создании своей системы. Не стесняйтесь, оставляйте свои отзывы, идеи и инструменты разработки. Будем на связи.

Следующий топик: Мастерская javascript full stack

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Подскажите, пожалуйста, что бы Вы изменили или добавили, чтобы сервис стал более интересным именно для Вас?

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

Столько всего крутого вместе... и ради чего? Если бы я хотел почитать политиков о политике, достаточно просто отключить AdBlock и банеры мне сами навалят.

В действительности самая ценная инфа — это та, о которой мало кто говорит вслух. Часто потому, что боятся показаться дураками. А дуракам она неинтересна, потому не в тренде.

Оптимальная для восприятия пропорция — это 90% знакомой инфы, 10% незнакомой. Так нужно для быстрого ассоциативного связывания. Из-за данного парадокса роботы дают перекос и принимают эти 90% за целевую группу, тогда как целью является слабая доля.

И не только роботы этим грешат, люди не лучше. 100% уже виденной или шаблонной инфы наверняка получает активную поддержку, а 90/10 — поддержки часто не имеют, но это пик интереса. Почему так: если человек пошёл за интересом, он не вернётся чтобы поддержать. А значит информация не получит тренд-маркеров.

Ну и последний гвоздь: информация активно продвигается ботами. И по сути твой робот — всего лишь монитор ботов, а не людей. Он фильтрует то, что любят боты.

Да, действительно сейчас все идет к «Internet of Things». Те обмена информацией ботов с ботами. Возможно это первые шаги к искусственному интеллекту. А сейчас строится фундамент для дальнейших фичей: создание сложных, более персонализированных фильтров; возможность сохранения, подписки и мониторинга фильтров.

Фейспалм. Ладно, скажу грубо: Ребята, вы уже промахнулись по маркетинговой нише. Всё что вы пытаетесь сделать с точки зрения рынка — написать на заборе слово из 3 букв разными шрифтами.

Если эта хрень будет работать только для ботов — на кой хрен тогда дизайнерские прибамбасы, поднимай взаимодействие с sape.ru и аналогами, и мастурбируй ботам их счётчики.

Если же эта хрень будет работать для людей — нужно иметь экспертизу именно в человеческих предпочтениях. А не пытаться впихнуть людям примитивную машинную статистику, утверждая что это то что они хотели. Нет, не то. Они это хавать не будут.

Порой бывает поразительно на сколько перспектива зависит от того, под каким углом смотришь на вещи.

Просто, чтобы увидеть, как эта хрень может быть полезна людям, достаточно представить несколько реальных жизненных ситуаций:

— HR или рекрутер ищет разработчиков, чтобы закрыть вакансии. Для этого достаточно всего лишь настроить фильтр по людям, указать параметры и получить список кандидатов как на ладони со всеми данными.

— PR менеджер, который следит и заботится о своем бренде. Создает фильтр и подписывается на обновления по упоминаю его ключевых слов с соц. сетях, чтобы вовремя отвечать и поддерживать репутацию

— Разработчик, который интересуется технологиями, фреймворками. Просто создает фильтр по интересующим ресурсам. Подписывается на обновления по фильтру и с заданной частотой получает дайджест материалов.

Мероприятия, места, отзывы, музыка, фильмы и тд. на сколько хватит фантазии. Сейчас приложение имеет версию 0.13.3 и ему еще нужно подрасти, чтобы такое уметь. Чтобы летать, сначала нужно научиться ползать.

Вот и сделай ТРИ РАЗНЫХ сервиса под каждую задачу, и никому не говори что за ними стоит универсальный поисковик. Люди — они не хотят быть как все. Они хотят быть особенными. А ты им бездушную железяку пихаешь.

Сделай вот что: самостоятельно напиши фильтр, который будет искать то что многим понравится. Ну, чтобы попробовали. Например, фильтр политических анекдотов — могёшь? Вот чтобы нажал одну кнопочку или выбрал в облаке тегов — и вот он, крассавец интеренет на одной страничке.

Сделай вот что: самостоятельно напиши фильтр, который будет искать то что многим понравится. Ну, чтобы попробовали. Например, фильтр политических анекдотов — могёшь? Вот чтобы нажал одну кнопочку или выбрал в облаке тегов — и вот он, крассавец интеренет на одной страничке.

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

До речі, Internet of things — вузька ніша. На неї можуть розраховувати лише віруючі в чиєсь глобальне бачення. Насправді ж тренд незмінний вже років 30, хоча він і повільний. Internet of Services — це глобальна течія. Яка ще не набрала і половини свого обсягу.

Наступний тренд, якшо цікавить дійсно прорив — Internet of labor. Але тут має пройти серйозна еволюція, що змінюватиме цілі держави, в тому числі скорочення їхньої кількості.

Підписатись на коментарі