Работа с демо, (бес)платными пользователями в SaaS

Мы решили показать, каким образом мы работаем с вновь зарегистрировавшимися пользователями в Nerrvana. Надеемся, что наша диаграмма поможет вам справиться с подобной задачей значительно быстрее для вашего веб-сервиса. В нашей системе новый пользователь получает неограниченный доступ к системе на 30 дней, в течение которого он может удалить свою регистрацию или стать платным пользователем. В том случае, если 30 дней истекло и пользователь так и не принял решение – мы либо удаляем его запись (если после регистрации он не запустил даже демо-тесты), либо переводим запись на бесплатную, но ограниченную в функциональности.

Если вам интересно, как меняется страница Pricing, вы можете зарегистрироваться и посмотреть самостоятельно ;)

(кликните для увеличения картинки)

Работа с демо, (бес)платными пользователями в SaaS

Создаём UserVoice и StackExchange в phpBB

В одном из наших постов серии “Своя веб аналитика для стартапа” мы упоминали о том, что собираемся реализовать функциональность приложений Q/A и Идеи на базе форума phpBB.

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

Начнем по порядку, с Вопросов/Ответов (аналога StackExchange). Реализовать нужную функциональность оказалось довольно просто. Мы взяли за основу мод Topic Solved версии 1.4.4. В поставке мода использовались одинаковые изображения для пометки поста как ответ и всего топика как отвеченный. Читайте продолжение на Хабре.

Read the rest of this entry »

SendGrid нам друг, но истина дороже

In total control

Как уже писал Игорь, не так давно мы начали работать с командой одного популярного freemium сервиса, являющегося системой управления проектами. Сервис генерирует довольно большое количество писем, исчисляемое в тысячах в день, это в основном различные уведомления пользователям о произошедших изменениях и ежедневные напоминания о приближении/истечении срока выполнения каких-либо работ. Пользователи также могут отвечать на пришедшие письма и таким образом обновлять данные. Поскольку количество пользователей увеличивается, мы заметили, что увеличиваются и наши счета SendGrid, которые, будучи freemium сервисом, нам хотелось бы минимизировать. Также нам хотелось понять насколько эффективно мы используем почту и не отправляем ли мы часть почты просто в никуда, платя за доставку SendGrid.

Читайте продолжение в нашей статье на Хабре.

Read the rest of this entry »

Transactional email deadlock

Transactional email deadlock

Сегодня мне бы хотелось рассказать об одной истории, связанной с использованием SendGrid. В процессе расследования причин мне пришлось пообщаться со службой поддержки, и проблема, в общем-то, так и не решилась, но я продолжаю разбираться и надеюсь, что кто-нибудь из читателей сможет помочь ответить на вопрос, который я изложу в конце моего рассказа. Ну а тем, кто только собирается использовать системы, рекламирующие себя как транзакционная доставка почты (transactional email – SendGrid, MailGun, Mandrill), я надеюсь, этот пост поможет понять, какие проблемы они помогают решить, а какие нет, да и даст понимание о целесообразности использования таких систем в принципе.

Читайте продолжение в нашей статье на Хабре.
Read the rest of this entry »

Хитрые сортировки в MySQL

Недавно столкнулся с интересной задачей и хочу поделиться с читателями своим решением на простом примере. Предположим у нас есть список дел, фактически это так называемый список TODO. Каждая запись в этом списке может иметь дату к которой она должна быть выполнена (due_date), приоритет (priority) и дату создания (create_date).

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

SELECT * FROM todo WHERE ... ORDER BY due_date asc, priority desc, create_date asc

Казалось бы вот и все, вопрос закрыт, однако есть загвоздка – первое поле (due_date) не обязательное и вот что мы получаем в результате

Read the rest of this entry »

Растим диск под Fedora на VMWare

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

При установке Fedora я выделил 10GB, но позже мне пришлось работать с достаточно большими базами данных, и место закончилось.

# df -k
Filesystem                    1K-blocks    Used Available Use% Mounted on
devtmpfs                         498132       0    498132   0% /dev
tmpfs                            508060       0    508060   0% /dev/shm
tmpfs                            508060     772    507288   1% /run
/dev/mapper/vg_fedora-lv_root   7641992 6590912    656228  91% /
tmpfs                            508060       0    508060   0% /sys/fs/cgroup
tmpfs                            508060       0    508060   0% /media
/dev/sda1                        487652   84379    377673  19% /boot
# fdisk -l
 
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e3a8c
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    20971519     9972736   8e  Linux LVM
 
 
Disk /dev/mapper/vg_fedora-lv_swap: 2113 MB, 2113929216 bytes
255 heads, 63 sectors/track, 257 cylinders, total 4128768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
 
 
Disk /dev/mapper/vg_fedora-lv_root: 8086 MB, 8086618112 bytes
255 heads, 63 sectors/track, 983 cylinders, total 15794176 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Для увеличения файловой системы необходимо добавить дополнительный диск виртуальной машине нужного размера, как показано ниже.
 
 
Adding a disk to existing VMWare VM
 
 
Теперь мы увидим новый диск в выводе команды “fdisk -l”.

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Нам остаётся создать раздел sdb1, использовав всё свободное место на диске с помощью “fdisk /dev/sdb”.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
Using default value 1
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is set
 
Command (m for help): v
Remaining 2047 unallocated 512-byte sectors
 
Command (m for help): w
The partition table has been altered!

Теперь мы раширяем логический том и файловую систему:

pvcreate /dev/sdb1
vgextend vg_fedora /dev/sdb1
lvextend -l +100%FREE /dev/mapper/vg_fedora-lv_root
resize2fs /dev/mapper/vg_fedora-lv_root

Blogging

Некоторое время назад мы перевели на русский выступление Jason Fried ‘Маркетинг: делись тем, что знаешь и умеешь’ на ChicagoConvergence конференции в 2009 году. Сегодня мы хотели бы поделиться, как это работает для нас. Это статистика по нашим двум блогам – Selenium и Development. Статистика по продуктам Nerrvana и Startyco не включена.
 
 
Marketing by sharing - how it worked for us

’Answers’ – портал вопросов и ответов для вашего сайта

'Answers' - questions & answers portal for your site

Больше всего нам не хотелось бы превратить анонс Answers в рекламный пост, поэтому мы поступим иначе. Вначале пофилософствуем о подписном и покупном программном обеспечении, а конкретно – о веб-приложениях. Как правило, это те, которые нужны не для личного пользования, а для работы в группе коллег (учителя школы), сотрудников (компания), сообщества (клуб парашютистов). Затем мы, собственно, расскажем, как и почему появилась идея создать несколько загружаемых веб-приложений под общим названием Startyco. Ведь вы не думаете, что мы сделали веб-приложение Answers только по той причине, что мы не хотим пользоваться существующими сервисами по подписке? Отлично! Тогда настраивайтесь сначала на философский лад (трубка, кресло-качалка, камин и Шерлок Холмс со скрипкой в соседнем кресле рекомендуются).
Read the rest of this entry »

Не по дороге с облаками

No pasaran!

Сегодня мы предлагаем вашему вниманию перевод статьи Михаила Емельянникова “Не по дороге с облаками”. С нашей точки зрения она ставит правильные вопросы, которые многие забывают себе задать.

“В течение последней недели как-то слишком часто попадаются статьи и заметки про облачные вычисления. Периодические всплески интереса к любой теме – дело обычное. Но, почитав последние материалы, поймал себя на стойком déjà vu. Все это писалось и год, и два назад. Одними и теми же словами, применительно к одним и тем же ситуациям. С одной стороны, продавцы облачных сервисов убеждают нас, что корпоративные заказчики уже просто-таки рвутся в облака, с другой – за все эти годы нет ни одного внятного, обоснованного и убедительного ответа на крайне простые, очевидные вопросы:

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

Полный текст статьи на русском языке можно прочитать в блоге автора по ссылке.
Read the rest of this entry »

Чем Ideas отличаются от Answers

В нашем новом продукте – Ideas – голосование будет только за идею. То, что в Answers было ответом, в Ideas называется комментарий. Пользователи могут комментировать оригинальную идею или использовать иконки like/dislike, чтобы “проголосовать” за понравившийся комментарий.

Startyco Ideas

Если Answers предназначены для того, чтобы пользователи могли задавать вопросы и получать ответы от других пользователей или сотрудников, то Ideas предназначены для определения направления развития вашего продукта. В нём вы сами и ваши пользователи могут предлагать, как сделать ваш сервис или продукт ещё более полезным и удобным.

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

Все новые возможности, такие как WYSYWIG, защита от спама, мобильная версия, виджет, oAuth – будут добавляться нами как в Answers, так и в Ideas.

Заблудились? Зайдите в архив.