Text

Пятница. Полировка BkMe и редактор для писателей

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

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

А чтобы не было скучно, я в этом проекте собираюсь сделать полноценное клиентское приложение на Angular, с использованием по полной программе роутинга и REST-коннекторов к бэкенду. В роли бэкенда будет посоветованный в ЖЖ питонский REST-фреймворк Eve. Хотя тут еще точно не решил, возможно, просто в git положу пачку markdown-файлов + метаданные. Как минимум, получится достаточно надежно и переносимо, без vendor lock.

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

Text

Четверг. Деплой Метеора и виртуальные завещания

Не очень понимаю, как и почему, но в числе прочего Метеор предоставляет для проектов хостинг с автоматическим деплоем по типу Heroku. Простое meteor deploy feedfilter.ilvar.ru собирает проект и выливает его на feedfilter.ilvar.ru, остается только CNAME настроить. Правда, в моем случае этот вариант не очень годится - мне нужны серверные задачи типа сбора фидов, но пока что я их решил, запуская задачи по крону у себя, они подключаются через метеоровский DDP и все делают. Видимо, со временем надо будет переписать сбор обновлений под метеоровские пакеты (нынешнего rssparser под метеор нет).

Также в качестве “проекта дня” сделал UI и клиентское шифрование-расшифровку для рождаемого вместе с Апачем прототипа сервиса виртуальных завещаний. Смысл в том, чтобы раздать сервису указания на случай серьезных неприятностей, а сервис уже будет периодически проверять, все ли в порядке, и если нет - выполнит запланированные задачи. Пока что основной юзкейс - передача паролей и всего такого близкому другу, а для максимальной секурности мы храним только либо данные в AES, либо пароль от этих данных, а вторую “половину” юзер должен передать доверенному лицу сам. Таким образом, мы только обеспечиваем разделение “половин” до часа Х.

Оказалось, что современные браузерные API вполне себе позволяют без участия сервера забрать данные из выбранного файлового инпута, обработать их и, например, дать юзеру “скачать” обратно на диск. Впрочем, после полноценных 3d-движков актуального уровня, работающих на js в браузере, я ничему не удивляюсь.

Завтра займусь прототипированием UI для толстого облачного приложения. И BkMe надо немного дополировать, в начале следующей недели ее презентуем питерским велосипедистам.

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

Text

Среда. Обращение к загашникам и Компьютерщики.ру

Вчера вечером, когда планировал задачи на сегодня, вспомнил, что у меня же есть пачка записок с идеями в Google Keep! Просмотрел, выкинул неактуальные, осталось как раз все интересное.

В результате, сегодня начал с доделок интерфейса bkme, потом приделал лексический анализ к ФидФильтру (осталось его только задеплоить), а на десерт оставил один из “долгождущих” проектов - маленькая игрушка под названием “компьютерщики.ру”.

Суть такова: иногда люди меряются спиписками бывших у них телефонов (сейчас меньше, но лет 5 назад было вполне модно), и я подумал, что было бы интересно померяться использованными технологиями. “Спектрум” много у кого был, а вот Commodore 64 или Atari у нас были редкостью. Идея в том, чтобы не особо ограничивать возможности добавления таких “тэгов” или “бэйджей”, и в то же время сделать саморегулируемую систему, которая не даст СЕО-шникам забить весь профиль ключевыми словами и спамить им направо и налево.

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

А на завтра у меня запланировано небольшое погружение в прикладную криптографию. Будет интересно, я думаю.

Text

Вторник. FeedFilter и ilvar.ru

Сегодня по плану занялся воскрешением FeedFilter на платформе Meteor и запилкой наконец сайтика нашей маленькой, но бодрой компании.

От Метеора по сравнению с Derby ощущения неоднозначные, примерно как от Рельсов после Джанги. У Метеора свой хитрый инсталлер, свой пакетный менеджер (почему-то просто взять один из миллиона пакетов NPM и использовать нельзя), свой Heroku-стайл микро-хостинг для моментального деплоя, и все такое. При этом, несколько странно работающая reactivity, я так и не смог автоматически класть в модель значение инпута в форме, пришлось костыль писать.

Впрочем, за счет этих странностей оно быстро ставится, быстро настраивается и приемлемо работает. Многие вещи типа аутентификации через социальные сети сделаны вообще божественно - ставишь пакет, добавляешь в шаблон один тэг, получаешь в интерфейсе в нужном месте дропдаун с кнопками входа. А что самое вусное - пока oauth не настроен, при клике на кнопку показывается попап, в котором четко расписано, куда идти, что жать, и есть форма для ввода полученных ключей. После настроек python-social-auth как бальзам на душу. Хотя я почти уверен, что у последнего список провайдеров авторизации в пару раз длиннее.

Еще удивило (как и в Derby), что нет дефолтного способа запуска всяких периодических задач на сервере, например, в моем случае это сбор обновлений RSS-потоков. Приходится ставить отдельный пакет для Ноды, который умеет с метеоровским серверным API работать напрямик, но как-то это не шибко прямо получается.

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

Еще сегодня наконец сделал нам приличный ilvar.ru, а то сколько клевых вещей делаем, а все сами без сапог.

Завтра планирую приделать к ФидФильтру, собственно, лексический анализ, написать тесты с Laika и задеплоить результат, а на BkMe добавить переключение городов и киллер-фичу - внесение поправок в маршруты.

Text

Понедельник. Bkme и PhoneGap

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

Сегодня сделал для bkme привязку комментариев к точкам и кускам маршрута (здесь пришлось вспомнить даже школьный матан). Теперь можно при комментировании не описывать словесно “100 метров от перекрестка Пупкина и Мумкина”, а поставить точку и написать, чем эта точка хороша. Или отметить кусок маршрута и написать, что в межсезонье там дорогу размывает к чертям. А с моей стороны можно будет повторно использовать этот код для финальной цели системы комментирования - внесения поправок в чужие маршруты.

Правда, это не все. Разогнавшись, я со всего размаху вляпался в PhoneGap и сделал прототип андроидного клиента для того же bkme. Он пока что умеет только показывать карту с маркерами (как морда сайта) и называется HelloWorld.apk, но собирается, ставится и даже работает. Судя по всему, в будущем можно будет даже оффлайновые карты сделать, проблема там только в объемах — не самые подробные карты Питера (внутри КАД) весят около 100 метров, и зашивать их в apk совсем не комильфо. Надо будет подумать, как бы их так хранить отдельно, а в идеале - давать предзагружать нужный город для использования “на ходу”.

Оный PhoneGap представляет собой отличный пример java-приложения - долго (для двухметрового файла, в котором почти ничего не поменялось) компилит, весит вместе с SDK и эмулятором метров 300, и не имеет практически никаких адекватных средств дебага. Пришлось щедро обмазать код try {} catch(e) { alert(e); }, чтобы докопаться до истины и завести наконец эту карту и маркеры.

Завтра попробую реанимировать свой FeedFilter, только не на Derby, а на Meteor.

Text

FeedFilter - обучаемый RSS reader

Для своего news feed про бессмертие захотелось мне научиться собирать и фильтровать RSS-фиды так, чтобы вообще не видеть гарантированно не подходящие статьи. Тогда можно в такой аггрегатор напихать сотню разных технологических и новостных потоков, и просматривать каждый день не 200 статей, из которых 95% не по теме, а всего 20.

Поискал такой сервис - и фигушки, много где есть социальные всякие фильтры и шаринг, но откуда другие юзеры узнают, что меня интересует именно иммортализм и медицинские технологии? Эх, опять придется все самому делать.

Чтобы было веселее, взял абсолютно незнакомый мне Derby.js, код писал на абсолютно незнакомом CoffeeScript, а база у Дерби - собственный LiveDB, у которой внутри MongoDB (который я использовал в одном маленьком проекте) + Redis для PubSub.

В результате, потратил 12 часов времени, а получил (вместе с фильтрацией) всего 140 строк кода (не считая автоматически сгенерированных Дерби файлов, которые я не трогал) + шаблоны + стили.

Потестирую немного, если будет прельстиво работать - приделаю авторизацию и выложу куда-нибудь.

Tags: js node rss smart
Text

Про биткоин и бабло

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

Во-первых, в 2010 коин был скорее игрушкой для гиков, и вкладывать в него бабло было еще более рискованно, чем в МММ. Там обычная пирамида, а тут какая-то новая система, которая может рухнуть в любой момент. Особенно учитывая, что прочие попытки сделать независимые всемирные интернет-деньги благополучно провалились (см. Liberty Reserve).

Во-вторых, да, можно вкладывать”сколько не жалко” в высокорисковые инструменты, но тогда “вложил 100 баксов” превращается во “сложил 1000 баксов в разные конторы, из них 900 сгорело”, это уже не так весело.

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

И при таком раскладе оказывается лучше перечислить “сколько не жалко” каким-нибудь чувакам на Кикстартере, собирающим бабло на плазменный ракетный двигатель, или бюджетный электронный протез, или еще какой 3d-принтер. По крайней мере, деньги пойдут на что-то реальное, немного приблизят будущее, в котором хочется жить. И гораздо меньшую часть получат жулики, которые тупо надули пирамиду, нагребли бабла и свалили в Доминикану.

Link

sws-staff:

image

Всем привет!

Мы рады сообщить всему миру, что мы открыли наш проект для бета-тестирования. Кто-то скажет: “Фи, очередной конструктор сайтов..”. А вот и нет!

Text

Размышления о правильном конструкторе сайтов

Периодически мне пишут “знакомые знакомых”, которым нужно сделать сайт для фирмы. Я обычно отказываюсь и стараюсь их передать кому-нибудь, но часто такой клиент плохо представляет, зачем им вообще нужен сайт, и не готов тратить больше 5-10 тысяч рублей. Что можно сделать на эти деньги?

  • Можно найти школьника, который слепит сайт на “жумле” с краденым шаблоном, обычно через год такому сайту просто не продлевают хостинг, либо наоборот - он вечно висит с “новостями” трехлетней давности и фоткой генерального директора на главной.
  • Если нужен магазин - можно воспользоваться специализированным сервисом типа inSales, благо, они дают кучу разных “плюшек” вроде интеграции с Яндекс.Маркетом.
  • Если нужен не магазин, а просто визитка, есть “универсальные” конструкторы, типа того же ucoz. Неплохая штука, но идеальный ее пользователь — фанатик, которому нужно прежде всего самовыражение, и желательно бесплатно, а юзабилити и всякая там конверсия — ругательные слова. Поэтому там полно сайтов игровых “кланов” и прочих клубов по интересам, а серьезных почти нет.

Поэтому я подумал: а что, если конструктор сайтов будет содержать в себе готовые шаблоны для разных видов бизнеса? Их можно сделать сотни, от кафе до оптовой торговли канцтоварами, и забить туда только информационные блоки, убрав возможность “налить воды” и вывесить фотографию генерального. Как в IKEA - вроде собираешь все сам, но все детали точно подогнаны, собирается все легко, быстро, и не позволяет “улутшать” конструкцию.

Дальше, если у нас есть фиксированные места для конкретной информации — можно, во-первых, облегчить чтение машинам с помощью микроформатов, во-вторых, генерировать стили для всего этого добра автоматически. Хм.

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

Создал сайт (выбрал подходящий шаблон, думать не надо), забил туда конкретную информацию (по-военному четко, без литераторства, думать не надо), сгенерировал дизайн (т.е. нажал кнопку “сделать шедевр”, думать не надо), и все.

Минусы: компоновка разных сайтов получится более-менее одинаковая, и мы принципиально отсеиваем графоманов, которые вчера прочли статью про “продающие тексты” (но по-моему, это неплохо само по себе).

Как считаете, взлетит? Посоветовали бы такую штуку знакомым?

Text

Идея

Часто в последнее время натыкаюсь на отсутствие в различных начинаниях идеи, “внутреннего стержня”, если угодно. Проблема эта появилась совсем не в айтишной сфере, да и вообще немолода; я не удивлюсь, если ей тысяч пять лет. Но я здесь хочу немного поговорить об Идее в моей работе.

Project Manager

В любом проекте должен быть один, и только один, руководитель команды. Где-то он называется project manager, где-то product owner, но суть одна - он задает вектор движения команды, он ставит майлстоуны, и он всегда точно знает, как должен выглядеть продукт. Да, есть “команды без менеджеров”, типа github, но в них все равно есть “играющий тренер” - это нормально (даже если эта роль преходящая). Но хуже всего, когда менеджер формально есть, но видения продукта у него нет.

Юзеры

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

Задача

РМ должен максимально ясно и однозначно донести до команды, какую задачу решает продукт. Дальше все просто: если фича не помогает решить задачу - в мусорку такую фичу (даже если она уже реализована). Хороший дизайн - такой, от которого нечего отнять (а вовсе не когда нечего добавить).

Коммуникации

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

Итог

Перечисленные мною пункты - абсолютный must have для правильного понимания идеи всеми членами команды. Без такого понимания проект не взлетит совершенно точно (думаю, у многих найдутся такие примеры). Зато, если все перечисленное есть и работает, можно сделать “конфетку” даже из непритязательного клона западного сервиса.

blog comments powered by Disqus