Search
Write a publication
Pull to refresh
201
0
Владимир Пузанов @farcaller

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

Send message

Proдвинутый папа — территория для IT пап

Reading time2 min
Views1.2K
Уважаемые Хабра-папы (а так же те, кто собирается стать папой в ближайшее время). Я папа, со стажем 2 года и в данном посте я хочу рассказать Вам о том, как родилась идея портала для пап Proдвинутый папа.



Давайте заглянем внутрь проекта

Простейший способ создать окружение virtualenv

Reading time1 min
Views16K
В этой статье я хочу вам рассказать про это уникальный способ создания изолированных окружений Python для удобной и комфортной разработки даже в самых дремучих условиях.

$ python -murllib http://tiny.cc/ve-setup | python

Так это выглядит, а под катом находится пара рецептов использования.
Читать дальше →

«Тросик» с таймером для цифровых камер Canon

Reading time4 min
Views18K
Не секрет, что при съемке на длинных выдержках фотографа спасают штатив и пульт управления («тросик»). Если штатив можно приобрести практически везде, и встречаются неплохие модели стоимостью даже в 600-700 рублей, то с пультом дела обстоят не так радужно. Ценник на фирменные пульты Canon начинается от $30, а между тем внутри этого пульта содержится всего лишь простейшая схема коммутации. Для съемки time-lapse видео придется приобрести пульт с таймером (фирменный Canon — $210, китайские братья по разуму подешевле). Я же хочу показать, как без применения сложной электроники и контроллеров самостоятельно собрать функциональный «тросик» с таймером, который подойдет к камерам Canon серий EOS-300D/350D/400D/450D и возможно каким-то другим.

Читать дальше →

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

Reading time1 min
Views5.7K
Дизайнерская компания Volkside сделала подарок веб-разработчикам, выпустив бесплатный букмарклет Wirify, с помощью которого можно отобразить каркас (wireframe) любого сайта одним щелчком мыши. Полезная вещь, чтобы быстро оценить некоторые аспекты дизайна сайта: модульную систему вёрстки, визуальную иерархию, свободное пространство, симметрию, золотое сечение, правило третей и т.д.


Читать дальше →

[Перевод] Построение документов Latex с помощью Waf

Reading time5 min
Views2.7K
Это исправленный и дополненный перевод статьи о многофункциональной системе сборки Waf.

С самого начала использования сервиса Dropbox для хранения моих научных исследований и проектов я стал искать решение, которое позволит мне строить документы LaTeX без засорения каталога с документом. В обычных условиях я просто игнорирую такие файлы, но под Dropbox, каждый раз после построения документа файлы начинают синхронизироваться с сервером. Так как в Dropbox нет возможности указать файлы для игнорирования (если кто-то из компании читает это сообщение, пожалуйста, сделайте файл .dropboxignore), то я начал искать другое решение.
Читать дальше →

testcreator — автоматизация тестирования студентов

Reading time2 min
Views2.4K
Вчера я дописал небольшую программу с веб-интерфейсом; она написана на Django (Python), и позволяет несколько автоматизировать процесс тестирования студентов.

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

После того, как тест будет наполнен вопросами, можно экспортировать необходимое количество случайно выбранных вопросов в PDF, причём сразу в двух вариантах — один вариант для студента, для заполнения, а другой для преподавателя — для проверки теста (в варианте для преподавателя указаны правильные ответы).

Таким образом можно, например, сделать тест с двумя сотнями вопросов и выдать каждому студенту совершенно индивидуальный вариант с 20 вопросами.

Скриншоты и установка

Sentry — мониторинг ошибок в Django

Reading time2 min
Views45K
Как Вы мониторите ошибки в своем Django проекте?

В Django есть стандартный механизм мониторинга ошибок, который отсылает уведомление о возникновении ошибки с подробной информацией на указанный email. Вещь, бесспорно, полезная. В письме содержатся все сведения об ошибке: название ошибки, где она произошла, откуда был переход на страницу и т.д. Но в этом есть один большой минус — когда проект крупный и ошибок становится достаточно много, то количество писем с уведомлениями об ошибках становится таким, что большая часть из них просто игнорируется.

Таким же вариантом пользовались и мы, пока не открыли для себя Sentry.
image
Читать дальше →

Знакомимся с OpenGL

Reading time8 min
Views300K

OpenGL


Знакомство с OpenGL нужно начать с того, что OpenGL — это спецификация. Т.е. OpenGL лишь определяет набор обязательных возможностей. Реализация же зависит от конкретной платформы.
OpenGL является кроссплатформенным, независимым от языка программирования API для работы с графикой. OpenGL — низкоуровневый API, поэтому для работы с ним неплохо иметь некоторое представление о графике в целом и знать основы линейной алгебры.
Читать дальше →

Анализ проникновения бота через эксплоит в старых версиях phpmyadmin и рекомендации по настройкам безопасности php-хостинга

Reading time11 min
Views13K
Имею на администрировании несколько серверов, на которых хостятся восновном свои проекты, но кроме них ещё довольно много пришлось разместить левых сайтов — клиентов, знакомых, знакомых знакомых и т.п. За время администрирования встречались разные проблемы, поэтому настроены кое-какие мониторинги (zabbix и самописные скрипты).

И вот вчера на одном из серверов скрипт, проверяющий активные соединения, забил тревогу: постоянно висит исходящее соединение на неизвестный хост на порт 433, уже более 9 часов на момент когда я осилил прочитать почту в понедельник утром ;)

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

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

Make Me Passport — история одной идеи

Reading time4 min
Views4.3K
Я думаю, у каждого хабраюзера в течение недели возникает не одна классная идея. Но, как все мы прекрасно знаем, идея — вещь своеобразная. С одной стороны, это главная концептуальная составляющая любого проекта, с другой — она сама по себе не значит вообще ничего. Самое сложное не придумать идею, а начать ее реализовывать. В этом посте мы расскажем уважаемым читателям об одной идее. Идее из разряда «прикольно, но я не знаю дурака, который бы за это взялся».

Все началось с не предвещавшего беды разговора на тему хронического отсутствия интересных сувениров. Не только в России, сувенирные лавки всего мира забиты, в общем-то, одной и той же однообразной продукцией. Сувенирных лавок очень много, а покупать там нечего. Магазинов из серии «Прикольные подарки» тоже становится все больше, но, выходишь из них, чаще всего, с пустыми руками. В итоге, в один прекрасный день наши чудо-головы посетила идея. Идея показалась нам свежей и по-настоящему интересной. Я бы даже сказал, веселой была эта идея.
Читать дальше →

Конфетки для Валерки

Reading time3 min
Views3.5K
конфеткаВы никогда не сталкивались с проблемой как объяснить человеку, неиспорченному общением с железным другом, азы программирования?

Так уж получилось, что мы, работая в компании ГдеЭтотДом (я и anei), относительно часто ходим обедать в МуМу. Остаток от обеда обычно представляет собой фирменную конфетку. Которую мы не едим — вот такое несоответствие типов.

Но мы нашли выход, скармливая их Валерке.
Я, честно говоря, не знаю, причем тут программирование, Валерка и конфетки, но, в общем, однажды…
Подходит Александреску к Валерке и говорит:
Читать дальше →

Визуализация модели данных

Reading time1 min
Views4K
Для django есть хорошая утилитка, которая анализирует описание модели данных и рисует её графическое представление в dot-формате graphviz.
Сегодня переписал эту утилитку под appengine.

image

Утилита распознаёт Expando (добавляет многоточие в список атрибутов),
наследование от PolyModel (рисует стрелки наследования),
а также ссылочные свойства (в том числе самодельные, типа ManyToManyProperty).

Как пользоваться:
  1. засунуть скрипт в каталог с sdk
  2. запустить её из корневого каталога приложения, указав аргументами список модулей для анализа (в формате имён дя import):
    python path/to/modelviz.py models.foo models.bar > models.dot
  3. сконвертить полученный dot-файл во что-нибудь более удобное, например, в png:
    dot models.dot -Tpng > models.png
  4. наслаждаться неземной красотой

iOS SDK — CoreAnimation, программируем красивые кнопки

Reading time3 min
Views5.2K
Многие наверняка сталкивались с необходимостью быстрого создания контролов в мобильном пользовательском интерфейсе. Рассмотрим стандартные кнопки UIButton. Базовый контрол мало устраивает взыскательного заказчика и зачастую стандартное решение, это натягивание на кнопки битмапов состояния. Растянутая ли это картинка или целиком вырезаная кнопка — решение требует дополнительных временных затрат на дизайн пользовательского интерфейса. Хорошо было бы иметь универсальный контрол, с более широкими визуальными возможностями, чем базовый UIButton.
Читать дальше →

Stackless Python и Concurrence

Reading time8 min
Views15K
Перед тем, как перейти собственно к возможностям Stackless и Concurrence, рассмотрим самый простой способ написать сетевое приложение, обрабатывающее несколько одновременных соединений:

socket()
bind()
listen()
accept()
fork() ->
    read()
    write()
    ...
    close()

Под каждое новое входящее соединение процесс создаёт свою копию через fork(). Это чрезвычайно накладный способ, у которого, к тому же, есть сложности с синхронизацией между процессами. В простом случае они решаются через создание каналов (pipes) между родительским и дочерним процессами и сериализацию данных. В более сложных потребуются примитивы межпроцессной синхронизации. Вспомним ещё про затраты на создание, разрушение и переключение процессов. Это очень ресурсоёмкие операции — как по памяти, так и по вычислительной мощности. Поэтому обработать много одновременных соединений будет весьма сложно.
Читать дальше →

Ethernet-лампа для Continuous Integration и не только

Reading time6 min
Views21K
image Всем хабрапользователям привет! Не так давно был запущен проект Амперка. Интерес был проявлен заметный, поэтому мы продолжаем развиваться. И это наш первый пост в корпоративный блог.

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

Этот гаджет — лампа, которая светится разными цветами в зависимости от сообщений, идущим к ней по локальной сети. Зачем это нужно? Лично мне, как участнику команды из четырёх программистов, эта штуковина нужна для индикации работы Continuous Integration сервера. Сервер, конечно, умеет при провале сборки посылать уведомления на e-mail и в jabber, но это скучно и не удобно: нет способа взглянуть куда-нибудь и мгновенно понять что происходит с проектом: всё в порядке, всё плохо или вот прям сейчас идёт сборка.

Проблема не новая. Я несколько раз читал как народ изголялся, прикручивая к компьютеру светофор, лава-лампы и usb-мигалки. Захотелось сделать что-то простое, что можно принести в офис, воткнуть в хаб и всё! И чтобы оно работало и без бубна. Что ж, попробуем!

Нам понадобится Ардуино, Ethernet Shield для него, бракованый светильник из Леруа-Мерлен, три светодиодные ленты разных цветов, горсть мелочёвки и запас терпения.
Читать дальше →

Решение проблем обработки XSLT на стороне клиента

Reading time3 min
Views7K
Вы уже используете XSLT в качестве шаблонизатора на сервере. Настал черёд перенести xsl-трансформацию на клиента. Можно, например, воспользоваться способом описанным в статье На клиенте! Получить XML! Получить XSL! Сделать XHTML! Марш!. Но это было бы слишком просто, потому что каждый браузер добавляет несколько своих нюансов при работе с XSLT.

Вопросы о способе загрузки xsl- и xml-файлов и их обработки в различных браузерах был рассмотрен в указанной выше статье. Рассмотрим другие вопросы:
1) инклудинг;
2) кеширование;

Все примеры опубликованы на этой странице ra-project.net/xsl_tests и работают в браузерах Opera, Chrome, IE6, Firefox, Safari.
Читать дальше →

Приведение типов

Reading time4 min
Views211K
Будучи на конференции Qt Developer Days 2010 я узнал, что одним из самых популярных вопросов на собеседовании в разные зарубежные компании, работающие с Qt библиотекой, является вопрос о различиях в способах приведения типов в C++. Поэтому здесь я рассмотрю основные различия между static_cast, dynamic_cast, const_cast, reinterpret_cast, C-style cast, qobject_cast и qvariant_cast

Читать дальше →

Шпаргалка: кеширование картинок, CSS и JS в NGINX

Reading time1 min
Views79K
Заметка для тех, кто не специалист в NGINX, а проблему нужно решить быстро.

Допустим, у вас на сервере стоит NGINX и вы хотите, чтобы вся статика кешировалась у клиента. В конфиге хоста NGINX пропишите это:

server {
listen 80;
server_name mysite.com;
...
# Задаем правила обработки статического контента (типов файлов можно поставить и больше)
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
root /path/to/document/root/; # Путь к корню вашего сайта
access_log off; # не пишем логи
expires 3d; # кешируем у клиента на 3 дня
}
}

Проверить можно в FireBug во вкладке NET: обновите страницу 2 раза и посмотрите код ответа. Если 200 ОК, то не работает. Если 304 Not Modified, то работает.

Неплохо ускоряет работу сайта.

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

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

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

Читать дальше →

Ajenti — полгода спустя

Reading time2 min
Views11K
Казалось бы, не так давно я представлял Хабру свой проект.
Откликнулось много людей, некоторые пришли и оставили свой след в исходниках и истории коммитов, некоторые исчезли, кто-то все еще с нами.
Я хочу выразить всем им свою благодарность, потому что без них у меня вряд ли что-нибудь получилось.
А сегодня я наконец выпускаю альфа-версию проекта.

Под катом вас ждет много интересного, а сейчас дохабракатный мотивационный скриншот:

image
Читать дальше →

Information

Rating
Does not participate
Location
Dublin, Ирландия
Registered
Activity