Посты с тэгом development


[Из песочницы] Django development server и тестирование HTTPS

Здравствуйте уважаемое сообщество,

Выбрав фреймворк Django для разработки корпоративного сайта, я столкнулся с проблемой тестирования его работы по протоколу HTTPS при использовании встроенного веб-сервера. Несмотря на поддержку работы с безопасными соединениями в Django, поставляемый в комплекте веб-сервер не обслуживает запросы по HTTPS.

Первое, что пришло в голову, поднять полноценный веб-сервер (например, Apache) для разработки и тестирования, но что если не хочется отказываться от удобств и простоты использования встроенного веб-сервера Django?

Поиск в Интернете по запросу «django + https» выдал несколько статей датированных 2009 и



Как скрыть wxMediaCtrl

Задача

Вчера постала передо мной интересная задача. Нужно было скрыть wxMediaCtrl, который занимается проигрыванием видео на форме. Вообще, поскольку в wxPython все, что рисуется, является окном (window), посмотрел в методы wxWindow.

В лоб

Ну, логично предположить, что для скрытия понадобится метод Hide(), но тут-то и обнаружились грабли. Hide() действительно прячет контрол, для чего он и предназначен, но, с другой стороны, ламает позиционирование во всех сайзерах, из-за чего у меня все другие контролы поплыли. Конечно, если сайзеры отсутствуют, и все позиционирование делается в абсолютных координатах - никаких проблем, Hide() подойдет, но в моем случае - нет.

Неожиданное решение


Fabric — пара прикладных рецептов

Хабы: Python

Сегодня неожиданно понял, что скрипты — это сила (спустя несколько месяцев использования fabric). На самом деле 30 минут потраченные на написание адекватного сценария избавляют от многих совокупных часов повторения ненужных действий. Для упрощения жизни адептов python'а существует такой прекрасный модуль как fabric. И я хочу поделиться парой кусков своего fab-файла как пример упрощения жизни девелопера.

Это будут функции: «умный» комментатор локальных файлов и git-коммитер.
Читать дальше →



wxPython: Gif-анимация и прозрачность

Кратко об анимации в wxPython

Дяденька делает анимацию на wxPython
В wxPython средства для работы с анимацией имеются в виде пакета wx.animate. Пакет довольно нехитрый - всего парочка классов, из которых чаще всего в работе используются 2:

  1. wx.animate.Animation - инкапсулирует параметры анимации, а также поддерживает загрузку анимации из файла. Поддерживает Gif и Ani форматы анимаций.


Wirbel - кина не будет: электричество кончилось

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

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

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

Стоит отметить, что исходники компилятора, которые, как уже упоминалось, имеют в своей основе C++, читать довольно приятно. Немец пи


Wirbel - компилируемый Python. Немножко о языке и установке.

Немножко о языке
Ну, не совсем Python, точнее совсем не Python, но синтаксически идентичен, за исключением некоторых ограничений, которые накладывает собой компилируемость в бинарник, а также нескольких новых возможностей. Автором языка и компилятора является немецкий разрбаботчик по имени Матиас Кеттнер, что нетрудно догадаться по картинке.  Вот короткий список характеристик, а заодно и отличий от Python 2.х:
  • print - функция. Поэтому print("Hello, world!")
  • Бинарный код, не требующий рантайма и совместимый с C++
  • Списки типизированы, так что [1, 2, 3, "string"] создать не получится
  • Есть сигнатуры функций, а поэтому def x(a), и def x(a, b) - две разные функции
  • Кортежи изменяемы и могут включать разные типы данных, в отличие от списков: (1, true, "Hi")


Как перейти c PHP на Python


Вступление
На форуме python.su, в жизни которого я активно участвую начали появляться темы о том, как перейти с php на python. Естественно, здесь я буду рассматривать только веб-разработку.
В этой статье я бы хотел рязъяснить некоторые моменты, чтобы php разработчикам, которые все-таки решили начинать разрабатывать веб-приложения на python было понятно, что да как.

Как работает php?
Для начала, примем во внимание, что PHP изначально задумывался и разрабатывался исключительно как язык для веб-разработки, и в 99.9% случаев для этого и используется (можно, конечно, писать и GUI-приложения, например, для этого есть GTK-биндинги).

Гово


Встроенный Django сервер тормозит на Windows 7


Столкнулся с такой вот проблемой, что встроенный сервер Django очень долго обрабатывает запросы в операционной системе Windows 7. Ситуация примерно такая. Запускаем сервер:
python ./manage.py runserver 127.0.0.1:3333
Заходим на сайт:
http://localhost:3333/
После этого получаем контент только после долгой задержки, что не очень приятно в процессе активной разработки или тестирования сайта. Оказывается, проблема возникает из-за, кто бы подумал, IPv6, так как понятие localhost в контексте наличия разных протоколов уже не такое однозначное. Поэтому делаем 2 шага:

1. Раскомментируем строчки (у кого они не раско


Статика и девелоперский сервер на большом Django-проекте


Что есть девелоперский сервер?
Хотел бы поделиться одним своим наблюдением насчет работы со статикой сервера django, который из коробки, и, собственно, не рекомендуемый для использования в production-среде. Для простоты использования статических файлов, то бишь всяких там стилей, картинок и клиентских скриптов, разработчики django-фреймворка втулили некое представление:
django.views.static.serve
Наверное большиство django-программистов используют эту вещь в работе, как и девелоперский сервер:
python ./manage.py runserver :
Более того, по статистике djangosites 1.2% пользователей не заморачиваются со всякими там инжиниксами, и апачами, и публ


Проблемы с локализацией кнопок диалогового окна wx.MessageDialog

Э-э-х, где же ты, кросс-платформенность?

Класс wx.MessageDialog имеет разную реализацию на разных операционных системах. Собственно на операционных системах GNU/Linux этой проблемы вовсе нет, так как это диалоговое окно реализовано средствами wxWidgets, и перевод кнопок осуществляется через стандартный механизм интернационализации wxPython. Совсем по другому обстоят дела на ОС семейства Windows.

wx.MessageDialog на ОС Windows

Для ОС Windows данное диалоговое окно реализовано средствами операционной системы (лень, видать было сделать по-другому). Соответственно, имеем вызов функции MessageBox из всеми любимого нами