Блог ищущего программиста

Запилил простой Push-сервер на Go

6th Май 2016

Пару месяцев назад устроился на обычную работу. Больше для дисциплины, но и деньги кончились от двухмесячного валяния дурака. Делаем там внутреннюю систему продвижения собственных сайтов. Довольно много процедур длительных и вынесены в фон. Но красиво же, когда состояние задач обновляется автоматически. Погуглил Websocket comet-серверы.... 

Добавление записей ускоряет рост группы

9th Июнь 2014

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

Быстрый memcached для python и django

1st Май 2014

Так получилось, что нагрузка на VDS выросла. Django кушает ресурсов достаточно хорошо. И я переехал на новый. Памяти в нем оказалось 8Гб, что позволило хорошо развернуться. Для разгрузки я раньше использовал memcached и самую распространенную библиотеку для него – pylibmc – типовая связка, которая описывается везде. Но как-то для кэширования... 

Свежие мысли

Запилил простой Push-сервер на Go

comet (push) serverПару месяцев назад устроился на обычную работу. Больше для дисциплины, но и деньги кончились от двухмесячного валяния дурака. Делаем там внутреннюю систему продвижения собственных сайтов. Довольно много процедур длительных и вынесены в фон. Но красиво же, когда состояние задач обновляется автоматически. Погуглил Websocket comet-серверы. Ничего интересного не нашел. Все какое-то навороченное: с базами данных, кучей зависимостей. Решил написать свой простенький. Можно было писать на питоне и asyncio, но мне показалось, что такую задачу лучше решить микросервисом на Go. Получилось вроде неплохо. Нужные задачи выполняет хорошо. Хотя есть куда развивать. Итак, собственно сам Golang Push-server.

А теперь, как им пользоваться: Далее…

Добавление записей ускоряет рост группы

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

Быстрый memcached для python и django

memcachedТак получилось, что нагрузка на VDS выросла. Django кушает ресурсов достаточно хорошо. И я переехал на новый. Памяти в нем оказалось 8Гб, что позволило хорошо развернуться. Для разгрузки я раньше использовал memcached и самую распространенную библиотеку для него – pylibmc – типовая связка, которая описывается везде. Но как-то для кэширования разовых запросов производительность его по сравнению с кэшем mariaDB меня не устраивала. Запрос из кэша БД выполнялся 0.1-0.5мс (десяток записей), а из мемкэша 0.7-1. Это я замерил полноценно, подключив New Relic – замечательное средство мониторинга, но стоит достаточно дорого. Правда есть триальные 2 недели, которыми я и воспользовался. Далее…

Инфобизнес

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

Падение сайта победило penguin 2

Google PenguinОдин из проектов потерял половину трафика гугла с зимним пингвином. Мне тогда не особо до всего этого было – рыбалки, покатушки. И так получилось, что пришло мне письмо с метрики, что сайт не доступен. Как обычно, на 15 минут, подумал я. Но письмо о доступности так и не пришло. И на следующий день я зашел проверить как обстоят дела. Оказалось, WSGI повис (даже есть предположение, что ему помогли). Не особо задумываясь. я перезагрузил сервер и все заработало. После восстановления трафик вернулся на уровень до пингвина. Вот такое возможно совпадение. Трафик с Яндекса остался на прежнем уровне.

Трафик сайта

Трафик сайта

Текучка Web: Новый проект, старые проекты

Knowledge baseРаботаю над своим новым интересным проектом. Почему-то меня всегда привлекали базы знаний, и новый проект внутри как раз таковым и должен быть. Но база знаний не в том виде, в котором ее понимают нынешние пользователи интернета (а многим в голову, наверное, сразу приходит википедия), а некая система, получающая исходные данные и выдающая ответ. Интересна она именно подбором подходящего экспертного ответа. Правда для этой цели есть специальные среды/языки, но я решил, что мне удобнее будет сделать на том, на чем умею. Далее…

Как завоевать пользователей

ПопулярностьСо временем понимаешь, какой бы простой не казалась идея, все равно для ее реализации надо приложить немало усилий. А в нынешнее время это должно отвечать некоторым требованиям: Далее…

Фэйл внедрения Tarantool

Тарантул Делаю сайт по соционике mysocio.ru. Он представляет собой внешнюю справочную часть и внутреннюю социальную. Люди могут типироваться и смотреть друзей, а также следить за изменениями.

Платформа Django. Крутится все в данный момент вокруг ВКонтакте. Также имеется приложение для ВК. Самая нагруженная часть, работа с друзьями. Нужно учитывать, что они периодически добавляются и меняют тип. Это надо хранить и отображать по хронологии. Далее…

Отличия между Percona и MariaDB

percona-xtradbЗадался выбором, на что лучше перейти: Percona или MariaDB. Не сказал бы, что у меня высокая нагрузка, но хочется же сидеть на трендовых инструментах. Тем более что в последнее время часто слышу про Перкону. Обнаружил хороший ролик с объяснением их преимуществ перед стандартным MySql и различий между собой. Очень доходчиво описано. Так как по сути это модификации MySql, то они обещают совместимость на уровне файлов.

Еще попробовал облачный сервер от Селектел. Все круто, но по стоимости у меня выходит раза в 2 меньше, чем нынешний VDS, который еще можно во много раз нагрузить. А платить все-таки лучше абонементом, а не считать потраченные мегабайты RAM (которая обходится по сути дороже всего). Прямо вижу, как копейки капают, и жадность просыпается )

Возвращаюсь к серверам БД. В двух словах разница: Далее…

Быстрая генерация sitemap в django

sitemap.xml в djangoДелал автоматическую генерацию sitemap.xml для сайта на джанге. На PHP без фреймворков все решалось довольно просто: printf или echo, и все попадает прямо в буфер http. Python тоже имеет такую возможность, но часто фреймворки ее исключают. В принципе это правильно.

В django есть стандартный модуль sitemaps, который генерирует карту, но он очень медленный. Для примера, если у меня 15 тысяч элементов, генерация длится почти пол минуты. Естественно такой расклад мне не понравился, так как хотелось бы отдавать карту динамически, и не нагружать при этом все на столь долгий промежуток времени. Далее…

16 - здесь у нас SQL запросов.
0.044961 - время на генерацию страницы.