Как стать автором
Обновить
10
0
bobain @bobain

Пользователь

Отправить сообщение

Тестирование. Начало

Время на прочтение4 мин
Количество просмотров124K

Привет. В этой серии постов я попробую рассказать про тестирование кода на питоне, в частности проектов django. Мы рассмотрим модульное тестирование (юнит-тесты), статический анализ кода и некоторые подводные камни тестирования веб-сайтов.

Вводную часть о пользе тестирования опустим — код, покрытый тестами, становится мягким и шелковистым, про это только ленивый еще не читал / писал.
Читать дальше →
Всего голосов 130: ↑119 и ↓11+108
Комментарии16

Наш опыт работы с Django, или 10 полезных модулей, облегчающих жизнь

Время на прочтение4 мин
Количество просмотров38K
Бесценный опыт работы с Django, или Django для блондинок, брюнеток и всех-всех-всехПоследние 15 недель мы активно работали над проектом «Стиллион», первым нашим мейнстрим-проектом, написанным на Django. Был приобретен интересный опыт, которым мы хотели бы поделиться с сообществом.
Статья, прежде всего, будет интересна новичкам в Django.
За катом список полезных плагинов, которые мы использовали, и ещё немного клёвых фич
Всего голосов 108: ↑100 и ↓8+92
Комментарии59

Массовая почтовая рассылка через Exim или как не попасть в спам

Время на прочтение4 мин
Количество просмотров97K
Жизнь была прекрасна и все было в этом мире хорошо, пока почта с моего сайта не стала активно посылаться в спам практически всеми крупными почтовыми серверами. Особенно усердствовал в этом Gmail. Частенько меня принимали за спамера в Yandex, реже в mail.ru и rambler.
image
Исходя из совокупности представленных факторов стало понятно, что надо что-то делать с настройками своего почтового сервера Exim. Посмотреть, как это было сделано, приглашаю под хабракат.
Читать дальше →
Всего голосов 88: ↑80 и ↓8+72
Комментарии41

Реализация графов и деревьев на Python

Время на прочтение17 мин
Количество просмотров276K
Продолжаем публикацию наиболее интересных глав из книги Magnus Lie Hetland «Python Algorithms». Предыдущая статья расположена по адресу habrahabr.ru/blogs/algorithm/111858. Сегодня же речь пойдет об эффективной работе с графами и деревьями и особенностях их реализации в Python. Базовая терминология теории графов уже обсуждалась (например здесь: habrahabr.ru/blogs/algorithm/65367), так что я не включил часть главы о терминах в эту статью.

Реализация графов и деревьев


Многие задачи, например, задача обхода точек по кратчайшему маршруту, могут быть решены с помощью одного из мощнейших инструментов — с помощью графов. Часто, если вы можете определить, что решаете задачу на графы, вы по-крайней мере на полпути к решению. А если ваши данные можно каким-либо образом представить как деревья, у вас есть все шансы построить действительно эффективное решение.
Читать дальше →
Всего голосов 63: ↑61 и ↓2+59
Комментарии24

Верстка почтовых рассылок

Время на прочтение6 мин
Количество просмотров71K
Привет, Хабр!

В этой статье я бы хотел поделиться своими познаниями в кроссбраузерной и кроссмейлерной верстке почтовых рассылок. Под словом кроссмейлерность подразумевается — корректное отображение верстки во всех почтовых клиентах. Я считаю, что статья вполне актуальна, в виду того, что на хабре эта тема несколько раз освещалась, но некоторые нюансы были неточными, а другие просто устарели. По долгу службы я долгое время занимался версткой html расылок по всему миру, и приведенные ниже правила будут касаться следующих почтовых клиентов и веб-интерфейсов: MS Outlook 2003-2010, mail.ru, rabmler почта, Яндекс почта, Gmail, Yahoo! Mail (Classic), Thunderbird 2.0-3.0, Hotmail, Windows Live Mail, Apple Mail 3-4, AOL Mail, Lotus Notes 8-8.5.
Читать дальше →
Всего голосов 150: ↑146 и ↓4+142
Комментарии81

Медиа-сервер, собираем своими руками из найденного в «закромах родины»

Время на прочтение6 мин
Количество просмотров52K
Кризис! Работы мало, времени много… никто не мешает навести порядок в закромах.

В результате получился полноценный мультимедиа компьютер с огромным экраном, беспроводной клавиатурой, мышкой, WiFi. С торрент качалкой, файло-помойкой, персональный веб-сервер. И все это под управлением страшной операционной системы Linux. Компактный корпус и уровень шума не мешает спать.
image
Читать дальше →
Всего голосов 129: ↑123 и ↓6+117
Комментарии159

Прикручиваем django-registration

Время на прочтение6 мин
Количество просмотров56K
Нужно было прикрутить регистрацию на сайт. Вспомнил про django-registration (классический django reusable app). Первое, что удивило — в исходниках не было шаблонов. Пришлось немного покопаться в интернете, поискать ответы на вопросы и поделиться результатом.
Читать дальше →
Всего голосов 34: ↑30 и ↓4+26
Комментарии53

Видео с пользовательской конференции по Sphinx (~8часов)

Время на прочтение1 мин
Количество просмотров1K
Поскольку новость не пробежала на Хабре, но однозначно (с) будет интересна многим:

«Видео с пользовательской конференции по Sphinx (~8часов)
http://devconf.tv/user/sphinx».
Всего голосов 26: ↑23 и ↓3+20
Комментарии9

Кто платит за «плюшки»?

Время на прочтение2 мин
Количество просмотров9.4K
Социальный портрет платящего пользователя в приложениях Моего Мира


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

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

Читать дальше →
Всего голосов 44: ↑29 и ↓15+14
Комментарии19

0W-httpd — простой быстрый фронтэнд

Время на прочтение2 мин
Количество просмотров1.6K
Предлагаю решение, как быстро и просто поставить на сервере легкий фронтэнд для отдачи картинок, css-файлов и прочей статики. С лета 2002 года я для данных целей использую 0W-httpd или ZeroWait httpd, как его часто называют в разных источниках (искать что-то о нем, помимо дистрибутива, лучше по второму названию).
Установить и настроить его достаточно просто (даже слишком просто):
Читать дальше →
Всего голосов 60: ↑54 и ↓6+48
Комментарии50

Грабли при верстке HTML писем

Время на прочтение3 мин
Количество просмотров103K
Довольно часто наши клиенты устраивают регулярные рассылки с новостями. Почти всегда их не устраивают текстовые рассылки или простое оформление HTML рассылок. Наши дизайнеры вовсю креативят, а мы потом набиваем шишки при верстке их макетов с корректным отображением во множестве почтовых клиентов.

Ниже список встретившихся нам особенностей и способы их разрешения (как то упорядочить их мне не удалось, поэтому всё идет единым списком)
Читать дальше →
Всего голосов 282: ↑273 и ↓9+264
Комментарии77

Кто стоит за соединениями?

Время на прочтение2 мин
Количество просмотров5.6K
Периодически возникают ситуации, когда хочется понять, какой же процесс на сервере повинен за конкретное соединение с СУБД. К примеру, очень много соединений к базе и хочется узнать, откуда они идут. Либо, есть какие-то «тяжёлые» соединения (по которым какие тяжёлые запросы идут, которые тормозят всё).

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

Нет ничего проще!
Читать дальше →
Всего голосов 35: ↑19 и ↓16+3
Комментарии17

mysql-proxy тестирование под мелкоскопом

Время на прочтение2 мин
Количество просмотров8.8K
mysql-proxy — практически идеальное решение для тех, кому нужен дешевый шардинг без переписывания приложений, а также хостинг провайдерам, которым сложно контролировать криворуких клиентов :) но хотелось бы вынести mysql или снизить нагрузку на СУБД без лишних контактов с клиентами.

Итак, есть задача, облегчить жизнь mysql серверу. Доступное решение — master-slave репликация. Всё замечательно, когда у нас есть программисты, которые могут переписать приложение на использование нескольких серверов СУБД, но как быть, если таковых нет? Тут на помощь нам приходит mysql-proxy. Работая прозрачно для клиента, mysql-proxy умеет проксировать запросы нескольких slave & master серверов.

далее будет описание тестов
Читать дальше →
Всего голосов 7: ↑5 и ↓2+3
Комментарии9

MySQL в tmpfs

Время на прочтение5 мин
Количество просмотров14K
Хотелось бы поделиться опытом по использованию MySQL с хранением данных в памяти, а не на диске. Это позволило нам сократить load average сервера, который из-за операций с диском стал сильно расти.



Читать дальше →
Всего голосов 70: ↑66 и ↓4+62
Комментарии80

How To настроки репликации в MySQL с использованием шифрования SSL на Debian Lenny

Время на прочтение7 мин
Количество просмотров13K
Это руководство описывает, как настроить репликацию базы данных в MySQL с использованием SSL соединение для шифрования.
MySQL репликация синхронизирует базу данных, что позволяет иметь точную копию БД на другом сервере. Все обновления БД на главном сервере автоматически реплицируются на другой сервер, что позволяет защитить базу от аппаратных сбоев. В этой статье будет показано, как реализовать репликации БД exampledb с сервера server1.example.com(ip адресом 192.168.0.100) на сервер server2.example.com(ip адресом 192.168.0.101) с использованием SSL соединения
Читать дальше →
Всего голосов 42: ↑37 и ↓5+32
Комментарии24

Новая версия ExtJS 3.3

Время на прочтение1 мин
Количество просмотров1.7K
Это наиболее полное обновление за последнее время. Большинство изменений коснулись повышению стабильности и скорости работы. Были добавлены три новых компонента и произведено более 200 мелких исправлений. Разработчики уверяют, что полностью сохранилась обратная совместимость с предыдущими версиями и большинство уже написанных Вами приложений не требуют изменений.
Читать дальше →
Всего голосов 29: ↑24 и ↓5+19
Комментарии55

Метод одного дня

Время на прочтение4 мин
Количество просмотров8K
Понедельник начинается в субботу.
А. Стругацкий, Б. Стругацкий.

Прошедшее забыто, грядущее сокрыто, настоящее даровано. Поэтому его и зовут настоящим!
Мудрая Черепаха из «Кунг-фу Панда»

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

Метод заключается в том, что основан на одной мысли: есть всего один день, сегодняшний, в котором и нужно делать все по максимуму для результата.

Под катом простая схема, как этого достичь.
Читать дальше →
Всего голосов 164: ↑142 и ↓22+120
Комментарии99

Подводные камни при использовании кэширования в nginx

Время на прочтение10 мин
Количество просмотров57K
В web-сервер и reverse-proxy nginx встроены очень мощные возможности по кэшированию HTTP-ответов. Однако в ряде случаев документации и примеров не хватает, в результате не все получается так легко и просто, как хотелось бы. Например, мои конфиги nginx-а местами написаны кровью. Этой статьей я попробую немного улучшить ситуацию.

В этой статье: а) подводные камни при полностраничном кэшировании; б) кэширование с ротацией; в) создание динамического «окна» в закэшированной странице.

Я буду предполагать, что вы используете связку nginx+fastcgi_php. Если вы применяете nginx+apache+mod_php, просто замените имена директив с fastcgi_cache* на proxy_cache*

Если выбирать, кэшировать ли страницу на стороне PHP или на стороне nginx, я выбираю nginx. Во-первых, это позволяет отдавать 5-10 тыс. запросов в секунду без каких-либо сложностей и без умных разговоров о «высокой нагрузке». Во-вторых, nginx самостоятельно следит за размером кэша и чистит его как при устаревании, так и при вытеснении нечасто используемых данных.

Кэширование всей страницы целиком


Если на вашем сайте главная страница хоть и генерируется динамически, но меняется достаточно редко, можно сильно снизить нагрузку на сервер, закэшировав ее в nginx. При высокой посещаемости даже кэширование на короткий срок (5 минут и меньше) уже дает огромный прирост в производительности, ведь кэш работает очень быстро. Даже закэшировав страницу всего на 30 секунд, вы все равно добьетесь значительной разгрузки сервера, сохранив при этом динамичность обновления данных (во многих случаях обновления раз в 30 секунд вполне достаточно).
Читать дальше →
Всего голосов 91: ↑87 и ↓4+83
Комментарии83

Конференция пользователей Sphinx: Москва, 24 октября

Время на прочтение1 мин
Количество просмотров492
Мы устраиваем первую конференцию пользователей Sphinx. Бесплатную, опен-сорсную, все эти дела. Пройдет 24 октября (воскресенье), в Москве.

Доклады в основном технические: про ловкое использование связки Sphinx/MySQL, про поисковой кластер на несколько TB, про тонкости поиска работы, про тонкости товарного поиска. Что особенно приятно, все это будут рассказывать как раз пользователи. Понятно, кое-что расскажем и мы сами. Но ваш боевой опыт интереснее, потому приглашаем еще докладчиков!

Чуть больше подробностей, регистрация, и вообще вся актуальная информация — по адресу sphinxsearch.com/conf2010ru.html

Пишите письма, заходите в гости, будем рады видеть!

UPD: еще обновления будут класть в vkontakte.ru/club20032698 — вконтактом не пользуюсь, но говорят, многим удобно.
Всего голосов 47: ↑44 и ↓3+41
Комментарии18

Новый Яндекс.Сервер — поранжируем?

Время на прочтение1 мин
Количество просмотров11K
Сегодня вышел новый Яндекс.Сервер — продукт для организации поиска по сайту или в корпоративной сети, использующий технологии большого поиска Яндекса.
В новой версии особое внимание мы уделили качеству поиска, добавив новые возможности по управлению ранжированием.

Теперь можно перемещать найденные документы на первую или последнюю позицию выдачи, указав запросы и ссылку на документ, который необходимо сделать первым или последним. Зачем это нужно? Корпоративные сайты, к примеру, могут по запросу имени сотрудника поставить на первое место страницу с его биографией. А интернет-магазины могут по запросу с упоминанием товара в качестве первой страницы указать карточку этого товара.

В новой версии Яндекс.Сервера реализовано ссылочное ранжирование, которое учитывает ссылки на документ при расчете его релевантности. Кроме того, расширился список поддерживаемых документов: MS Office 2007, Open Office и PDF-файлы версии 1.7.

Скачайте Яндекс.Сервер, находите больше и точнее.

Мария Липатова и команда Яндекс.Сервера
Всего голосов 65: ↑55 и ↓10+45
Комментарии44
1

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность