Pull to refresh
2
0
Бабочкин Александр @Biggo

User

Send message

Репликация в Postgresql 9.0

Reading time3 min
Views86K
Доброго времени суток. Учитывая, что с момента релиза PostgreSQL 9 прошло уже некоторое количество времени — я решил пощупать одну из его новых функций — нативную репликацию. Как известно, новый механизм основан на пересылке XLOG`a от мастера к слейву. Одним из жирных плюсов можно назвать нормальную обработку ALTER`ов. Иными словами — администратор 9й версии может обойтись без Slony.
Читать дальше →
Total votes 58: ↑51 and ↓7+44
Comments42

Готовим скриншоты для документации в GIMP (часть 1)

Reading time5 min
Views24K
Как известно, неотъемлемой частью профессионального программного продукта является качественная документация. А документация, в свою очередь, немыслима без иллюстраций. В большинстве случаев иллюстрации представляют собой скриншоты, которые должны быть не только красивыми и информативными, но и единообразно оформленными. Последнее важно, если над разными разделами документации работают разные специалисты (технические писатели). В этой статье мы рассмотрим, как редактор растровой графики GIMP и его встроенный язык сценариев Script-Fu могут пригодиться для подготовки иллюстраций. В качестве примеров использованы скриншоты нашего продукта eXpressApp Framework.
Читать дальше →
Total votes 124: ↑119 and ↓5+114
Comments40

Релиз PyCharm 1.0 — новой Python/Django IDE от JetBrains

Reading time1 min
Views4.9K
Сегодня компания JetBrains выпустила релиз PyCharm 1.0 — новой интегрированной среды разработки для Python, Django и Google App Engine.

Про то, чем PyCharm лучше других IDE, можно почитать в сравнительной матрице, а также увидеть в скринкастах. Продукт коммерческий, бесплатно можно пользоваться в течение 30 дней. Также можно получить бесплатную лицензию, если вы работаете над open-source проектом.

Будем рады любому фидбэку.
Total votes 61: ↑58 and ↓3+55
Comments120

Сумбурные заметки про python и django

Reading time5 min
Views47K
Накопилось несколько маленьких заметок/советов про python и django, которые на отдельные топики не тянут, поэтому публикую все сразу.

Под катом:
  • как упростить код вьюх ровно в 2 раза
  • легкий способ рисования графиков
  • почему Ian Bicking воскликнул «Cool!»
  • приложения для ВКонтакте на django за 5 минут
  • хорош ли pymorphy?
  • пара фишек насчет выкладки пакетов на pypi
  • что общего между декораторами и with-контекст-менеджерами
  • принимаем оплату на django-сайтах
  • показываем Яндекс.Карту для заданного адреса

Читать дальше →
Total votes 159: ↑153 and ↓6+147
Comments37

JSNAV

Reading time3 min
Views2.8K

Навигация по странице


Всё чаще и чаще в web появляются сайты, использующие навигацию, написанную на JavaScript. Типичный случай использования javascript для навигации: страница с меню и блоком контента, куда через AJAX подгружается содержимое:



Пользователь кликает по пункту, JavaScript грузит из сети содержимое, вставляет в блок контента, пользователь доволен: страница без перезагрузки показывает требуемое и траффика потребовалось меньше за счёт того, что не потребовалось грузить все эти HEAD, BODY, STYLE и прочие элементы.

Но вот проблема: URL страницы. Если на old scool сайтах на каждый пункт меню показывается новая HTML страница, и у пользователя есть вменяемый URI, который он может скопировать из адресной строки бразуера, послать другу или положить в закладки, то в случае AJAX интерфейсов в URI странице зачастую нет никаких ссылок на текущий контент документа.

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

Не с секрет, что для решения этой проблемы многие программисты кодируют ссылку на текущее просматриваемое содержимое в якорь (anchor) URI документа. К примеру, на сайте jqapi.com (скриншот которого приведён вначале топика) при выборе того или иного пункта меню якорь страницы меняется на #p={contentId}.
Читать дальше →
Total votes 72: ↑63 and ↓9+54
Comments97

Псевдографика в консоли Unix/Linux. Немного больше User Friendly чем вы могли себе позволить

Reading time14 min
Views32K
Привет! Бывает, хочется забыть о «скучной» консоли, разбавить ее хоть капелькой интерактива, особенно если часто приходиться делать одни и теже операции и тем более если вы пишите для облегчения своей участи скрипты. Итак, псевдографика. За мной читатель, я покажу тебе такую консоль!
Читать дальше →
Total votes 196: ↑186 and ↓10+176
Comments32

Бесплатное пользование конструктором для полезных сайтов

Reading time1 min
Views2K
Мы подумали, а почему бы не сделать для полезных обществу некоммерческих сайтов пользование конструктором бесплатно?
И правда, почему бы нет? Отныне если у вас качественный ресурс, неориентированный на заработок денег, вы можете использовать Biggo бесплатно.
Примеры возможных тематик сайтов:
— Бладотворительные фонды
— Приюты
— Сайты о здоровье, спорте
— Анонсы выставок(не всех)
— Сайт какой либо Open Source программы
— Познавательные сайты о науке, культуре, технике и т.п.
— Блоги на интересные темы
— Возможно еще что-то — пишите

Как воспользоваться этим предложением


Достаточно зарегистрироваться у нас и начать создавать сайт, 14 дней бесплатно в любом случае. Если вы не успеете заполнить сайт за это время, то мы дадим больше, просто дайте нам знать о том, какой сайт вы планируете сделать.
Затем будет принято окончательное решение модератора о возможности бесплатного использования.

Ограничения


Не принимаются сайты:
-коммерческой направленности
-не несущие пользы для общества
-с не уникальным контентом или для размещения спам-ссылок

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

Изначально выделяется тариф Визитка, но он может быть изменен на любой другой, если вам будут необходимы большие ресурсы и возможности.
Total votes 26: ↑10 and ↓16-6
Comments11

jQuery плагин визуального стека сообщений

Reading time2 min
Views3.8K
Стояла задача динамического визуального отображения реакции на действия пользователя со стороны системы.
Другими словами: изменилось какое-то состояние объекта — вывести сообщения об удачном завершении сохранения изменения в базе/системе.
Написание плагина не заставило себя ждать...
 
Читать дальше →
Total votes 43: ↑40 and ↓3+37
Comments35

Celery — распределенная очередь заданий

Reading time3 min
Views84K
На этот раз мы решили рассказать о замечательном продукте, который мы используем в нашей работе. Речь пойдет о Celery — «distributed task queue». Это распределенная асинхронная очередь заданий, которая обладает широким функционалом. В нашем конструкторе сайтов нам часто приходиться запускать асинхронные с точки зрения ответа пользователю задачи. На хабре, к сожалению, не много информации по данному продукту, а он заслуживает отдельного упоминания, это мы и хотим исправить.

Итак, что же умеет Celery:

  • Выполнять задания асинхронно или синхронно
  • Выполнять периодические задания(умная замена crond)
  • Выполнять отложенные задания
  • Распределенное выполнение (может быть запущен на N серверах)
  • В пределах одного worker'а возможно конкурентное выполнение нескольких задач(одновременно)
  • Выполнять задание повторно, если вылез exception
  • Ограничивать количество заданий в единицу времени (rate limit, для задания или глобально)
  • Routing заданий (какому worker'у что делать)
  • Несложно мониторить выполнение заданий
  • Выполнять подзадания
  • Присылать отчеты об exception'ах на email
  • Проверять выполнилось ли задание (удобно для построения Ajax приложений, где юзер ждет факта завершения)

Заинтересовало? Просим под кат.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments27

Дедок рекомендует или сравниваем различные способы деплоймента Django-приложений

Reading time3 min
Views9.4K
imageВсе больше наших клиентов используют в своих проектах замечательный web-фреймворк Django и неудивительно. Ведь данный фреймворк позволяет очень быстро создавать динамические сайты и обладает при этом огромной гибкостью. Он имеет в своем арсенале множество готовых решений почти на все случаи жизни, и по-сути, является низкоуровневым конструктором сайтов. А главное его достоинство – это гибкость, благодаря которой, можно в короткие сроки создавать абсолютно любые по сложности веб-приложения.

Данный фреймворк имеет удобный встроенный веб-сервер, на котором можно без проблем отлаживать ваше приложение, но для реального боевого использования он естественно не годится.
Читать дальше →
Total votes 45: ↑32 and ↓13+19
Comments38

Генерация PDF-прайсов и автоматическая привязка изображений

Reading time2 min
Views6K
Недавно в нашем конструкторе была реализована функция автоматического создания прайс листов в формате PDF. Это полезная функция для интернет магазинов, продавцы которых желают выкладывать свежие прайсы для загрузки, а также удобной печати всех товарных предложений(или тех которые подходят под заданные фильтры) и создания бумажных прайсов, которые удобно положить вместе с заказом клиенту.
Читать дальше →
Total votes 7: ↑5 and ↓2+3
Comments11

Настройка и масштабирование PostgreSQL

Reading time1 min
Views4.2K
Написал небольшой мануал по настройке и масштабированию PostgreSQL. Сподвигло меня на это то, что материала по этой теме мало, он устарел или его просто нет.

Скачать можно здесь:
http://github.com/le0pard/postgresql_book/raw/master/postgresql.pdf
Исходники:
http://github.com/le0pard/postgresql_book/

Страница:
http://postgresql.leopard.in.ua/
Total votes 84: ↑83 and ↓1+82
Comments27

Генерирование изображений-заглушек

Reading time3 min
Views56K
Сегодня мне кинули ссылку на прикольный сервис для быстрого генерирования изображений-заглушек. Может пригодиться для html-верстки. На мой взгляд, это удобно тем, кто и так использует заглушки — экономит время при вёрстке, т.к. сами заглушки уже готовы. Можно цвета/размеры подбирать, меняя только числа/буквы в коде, не отвлекаясь на сам файл картинки — и сразу видеть эффект. И сами размеры видеть написанными, если нужно, чтоб к коду не возвращаться для проверки. Или вместо размеров можно текст добавить, чтоб всегда знать, для чего эта заглушка (типа «Бан(н)ер» или там «Лого», или «Фотография»).

На сервисе не нужна регистрация — и вообще на сайт можно не заходить, чтобы его использовать. Пишете сразу у себя в коде, например:
<img src="http://placehold.it/350x50" />
и получаете:


Update. Благодаря усилиям k0rv1n, найден вариант этого сервиса, только лучше :)
Во-первых, там поддерживается кириллица. Во-вторых, там даны ссылки на исходники для разных языков.
Автор dummyimage.com — тот же Russell Heimlich, что и у placehold.it. У placehold.it есть ещё один автор, но будем считать, что он делал дизайн (дизайн там правда круче, но видимо как раз из-за понтового шрифта Unicode и не выходил).

Примеры (см. под хабракатом) я поменял с placehold.it на dummyimage.com, раз уж он функциональнее…
Ещё насколько примеров под катом
Total votes 287: ↑276 and ↓11+265
Comments119

Корпоративный Jabber сервер: догнать и перегнать Google

Reading time7 min
Views33K
Я думаю все знают про Google Apps. Это великолепный сервис для организации почты и коллективной работы в рамках компании. Однако у него есть пара маленьких таких недостатков: он предоставляется as is во-первых, и вся ваша корпоративная документация, почта и переписка при использовании Google Apps будут храниться на серверах Google.

В итоге чаще всего серьёзные фирмы выбирают сложный путь — поддерживать все необходимые сервисы на собственных серверах. Этот путь, конечно, даёт массу преимуществ. Системный администратор компании сможет настроить что угодно и как угодно. Однако есть и один существенный недостаток: если у Google всё уже настроено и связано воедино, то вам придётся настраивать всё вручную. Плюс вы вряд ли сможете обеспечить вашу систему таким же красивым и удобным веб-интерфейсом.

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

Читать дальше →
Total votes 102: ↑89 and ↓13+76
Comments81

Кто индексировал мой сайт?

Reading time2 min
Views5.7K
Создавая сайт на Biggo, есть возможность воспользоваться еще одним преимуществом SaaS — учет индексации сайта поисковыми роботами. Обычные JS-счетчики или счетчики на основе картинки, конечно, не дают такой возможности. В liveinternet есть возможность учитывать запросы поисковых ботов, но она там дается «в догонку», в разделе экспресс-аудит. К тому же, для того, чтобы этот отчет заработал необходимо установить предлагаемый PHP-код.

Наша система независимо собирает данные для создания этого нужного для вебмастеров и оптимизаторов отчета и отображает результаты в виде красивых интерактивных графиков
image
Круговая диаграмма, отражающая доли разных поисковых роботов
Читать дальше →
Total votes 33: ↑19 and ↓14+5
Comments17

Вышла версия 1.0 фреймворка Tornado

Reading time1 min
Views1.6K
image

Популярный проект, по созданию неблокирующего web-сервера и «сопутствующего» фреймворка на языке Python, объявил о релизе версии 1.0.

Скачать новую версию можно тут: github.com/downloads/facebook/tornado/tornado-1.0.tar.gz

По сравнению с последним релизом версии 0.2, было добавлено множество новшеств,

— возможность запуска WSGI-приложений, под управлением сервера Tornado (например приложения Django и CherryPy)
— улучшенная производительность в MacOS X (с использованием kqueue) и экспериментальная поддержка win32
— переписан класс AsyncHTTPClient
— поддержка .mo файлов в модуле локализации
— поддержка пре-форкинга для запуска нескольких процессов Tornado
— поддержка SSL и gzip в HTTP-сервере

И многое другое.
Total votes 40: ↑36 and ↓4+32
Comments10

Обработка Excel файлов с использованием Python

Reading time4 min
Views205K
image
По работе пришлось столкнуться с задачей обработки xls файлов средствами python. Немного по гуглив, я натолкнулся на несколько библиотек, с помощью которых можно работать с файлами excel.
Читать дальше
Total votes 59: ↑52 and ↓7+45
Comments57

Нет нужного модуля? Создай свой!

Reading time3 min
Views2.4K
Существует общая проблема как для SaaS-CMS, так и для некоторых коробочных CMS — невозможность самостоятельно дописать нужный функционал или модуль. В случае с коробочными цмсками иногда такая возможность есть, но она требует программистских навыков. Мы постарались решить эту проблему в нашем конструкторе сайтов, хотя бы на 80%.

Рассмотрим пример. В конструкторе существует определенный набор встроенных модулей: статьи, новости, каталог файлов, галерея и прочие. Но мне непременно нужно создать личный блог, а такого модуля нет. Кроме того я хочу размещать вакансии, и такого модуля тоже не нашел. У меня есть два пути решения этой проблемы. Первый путь — использовать функционал модуля статей для публикаций в блоге. Я просто возьму и буду заполнять предложенные мне поля ориентируясь на свои нужды. Пусть поле источник будет на самом деле тегами, а поле автор в модуле новостей — требуемые навыки для кандидата по данной вакансии. Далее я просто поменяю обозначение в шаблонах(«источник» на «теги», «автор» на «требуемые навыки») и буду использовать эти модули не по их прямому назначению. И буду помнить что статьи — это блог, а новости — это вакансии. Вопрос: как скоро мне надоест держать в голове эти подмены понятий? Очень скоро. Ошибусь пару-тройку раз и плюну.

Но, выход есть!
Читать дальше →
Total votes 15: ↑10 and ↓5+5
Comments10

Организация SSH-доступа по одноразовым паролям

Reading time4 min
Views6.9K
В любой серьезной компании иногда возникает необходимость в том, чтобы сотрудник, уехавший в отпуск, срочно выполнил свои должностные обязанности. Рассмотрим ситуацию, когда компании необходим конкретный сотрудник, например, системный администратор, который в данный момент возлежит на пляже в тысяче километров от душного офиса. Допустим даже, что этот сотрудник согласен выполнить неожиданно свалившуюся ему на голову работу и на курорте есть интернет-кафе. Но вот проблема: кафе располагается в темном переулке, на его компьютерах стоят популярная ОС, трояны, кейлоггеры и прочие хактулзы, так что набирать пароль root'а от главного сервера компании на подобных машинах довольно неразумно.

Существует несколько решений этой задачи. Например, можно использовать одноразовые пароли, а именно систему s/key, использующую для генерации паролей алгоритмы md4 и md5. Об этой системе и будет рассказано далее.
Читать дальше →
Total votes 95: ↑93 and ↓2+91
Comments45

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity