Архивы: Ноябрь 2010

Alexander Kropotov on Twitter

http://twitter.com/akropotov

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

Обновление Komodo 6.0.2

Вот только вчера матерился по этой теме и вот они меня услышали=)
Список давально таки не маленький, так что читаем на офф сайте тут

Komodo 6 version error :(

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

Error list (small)

Process:         komodo-bin [1501]
Path:            /Applications/Komodo Edit.app/Contents/MacOS/komodo-bin
Identifier:      com.activestate.Komodo
Version:         6.0 (6.0)
Code Type:       X86 (Native)
Parent Process:  launchd [208]
cut
8   org.activestate.ActivePython26	0x1290519f PyEval_CallObjectWithKeywords + 72 (ceval.c:3619)
9   org.activestate.ActivePython26	0x128750c7 instance_getattr + 449 (classobject.c:763)
10  org.activestate.ActivePython26	0x12900bf4 builtin_getattr + 115 (bltinmodule.c:828)
cut
0x13508000 - 0x1350bffb +_struct.so ??? (???) /Applications/Komodo Edit.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload/_struct.so
0x1351c000 - 0x1352107f +binascii.so ??? (???) /Applications/Komodo Edit.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload/binascii.so
0x1352b000 - 0x1352bffc +_scproxy.so ??? (???) /Applications/Komodo Edit.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload/_scproxy.so
0x13572000 - 0x13573fff +_hashlib.so ??? (???) /Applications/Komodo Edit.app/Contents/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload/_hashlib.so
cut

Питоновский интерпритатор в то время говорит

----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 56000)
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 284, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 310, in process_request
    self.finish_request(request, client_address)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 323, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 562, in __init__
    BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 641, in __init__
    self.finish()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 694, in finish
    self.wfile.flush()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 301, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------

Вот я и подумал может комодо не тот питоновский интерпритатор юзает. Он указывал на /usr/bin/python, вот тут то и косяк=), здесь у меня 2.6.1 а тут /usr/local/bin/python 2.6.4 =) весело. Насильно его навел на мне нужный /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7. Очень надеюсь, что на этом шалости закончатся.

django-mptt вывод дочерних элементов одного родителя

Возникал такой вот вопрос у меня на одном из ресурсов:

models.py
class Category(models.Model):
    title = models.CharField(max_length=150, unique=True')
    parent = models.ForeignKey('self', null=True, blank=True, related_name='children')
mptt.register(Category, order_insertion_by=['title'])

Достаем все дерево

views.py
nodes = Category.tree.all()

category.html
{% for concept,structure in nodes|tree_info %}
    {% if structure.new_level %}<ul><li>{% else %}</li><li>{% endif %}
    {{ concept.title }}
    {% for level in structure.closed_levels %}</li></ul>{% endfor %}
{% endfor %}

Теперь у меня такая задача: выстроить дерево начиная от родительского элемента. Допустим я получил id=4 мне необходимо выявить родительский элемент (root_nodes) и выстроить все дерево (вывести все дочерние элементы этого родителя).

Сам же и ответил=)

Возможно кому и понадобиться, но я на 100% уверен, что то как я сделал не хорошо и есть более красивая реализация

# Запрашиваемый элемент
category = Category.objects.get(language=langUnit, id=id)
# Родитель запрошенного элемента
categoryParent = Category.objects.get(language=langUnit, title=Category.get_root(category))
# Выводит все дочерние родителя при cat = родитель
nodes = Category.tree.add_related_count(categoryParent.get_descendants(include_self=False), Category, 'parent', 'question_counts')

Google фоновое изображение

Я сегодня обнаружил, что для главной google можно ставить фоновое изображение. Дак вот=) я и поиздевался в любимом стиле.

Обновление Safari 5.0.3

Размер 39.2 мегабайта

Данное обновление содержит ряд усовершенствований, направленных на повышение удобства работы, совместимости, стабильности и безопасности, а также на улучшение функций универсального доступа, включая следующие:

  • Более точные результаты в разделе «Наилучшее совпадение» в адресной строке.
  • Более точные результаты в разделе Top Sites.
  • Исправление ошибки, которая могла приводить к наложению содержимого, отображаемого с помощью плагина Flash 10.1, на содержимое веб-страницы.
  • Более надежное блокирование всплывающих окон.
  • Повышение стабильности при вводе текста в поле поиска и текстовые поля ввода на веб-сайтах www.netflix.com и www.facebook.com.
  • Повышение стабильности при использовании VoiceOver с Safari.

Информацию об обновлениях системы безопасности, входящих в данное обновление, см. на веб-сайте: http://support.apple.com/kb/HT1222?viewlocale=ru_RU.

Evernote

Если честно то раз так 5-7 проходил мимо данного сервиса. И сегодня свершилось) я стал пользователем данного сервиса. Если честно то первые впечатления на высоте. Можно делать все возможные манипуляции с данными. Посмотрим, станет ли данный сервис отличным моим помощником и возьмет ли часть информации с моей переполненной головы=))

Remember Everything | Evernote Corporation

Установка Django на VDS хостинг

Если честно как то не хорошо получается. Я уже несколько лет работаю с VDS и непосредственно на хостинг компании ispserver.com и firstvds.ru, думаю ни кому не секрет, что это одна и та же компания, дак вот и не написал не разу о том как я разворачиваю свои приложения. Вот на это нотке и стартую описание действий по боевому разворачиванию django приложения.

1. Для начала нам понадобиться Subversion для установки django.

cd /usr/ports/devel/subversion
make install clean

2. Теперь тащим и ставим django

cd /usr/local/lib/python2.6/site-packages
svn co http://code.djangoproject.com/svn/django/trunk/ django

и ставим симлинк на django-admin.py туда где система сможет найти его

cd /usr/local/bin
ln -s /usr/local/lib/python2.5/site-packages/django/django/bin/django-admin.py django-admin.py

3. Устанавливаем mysql-python драйвер для работы с базой данный MySQL

cd /usr/ports/databases/py-MySQLdb<
make install clean

отмечаем оцию

[X] MYSQLCLIENT_R Use libmysqlclient_r (thread safe)

4. Ставим mod_python (на данный момент не рекомендуется разворачивать приложение на данной связке, так как оно не поддерживается и не ведется на настоящее время)

cd /usr/ports/www/mod_python3
make install

5. Теперь нам необходим каталог где мы будет разворачивать свои приложения

cd /home/darkfraud/data/
mkdir django-apps
cd django-apps

и тут делаем симлинк на Джангу

ln -s /usr/local/lib/python2.6/site-packages/django/django django

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

python
>>> import django

6. Теперь нам нужно настроить конфиг апача httpd.conf

у меня он лежит тут /usr/local/etc/apache22/httpd.conf

Открываем его на редактирование и ищем в нем бокс своего проекта

<VirtualHost darkfraud.com:80>

в него нам нужно вписать такое

<Location "/">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE darkfraud.settings
    PythonOption django.root /darkfraud
    PythonAutoReload On
    PythonDebug On
    PythonPath "['/home/darkfraud/data/django-apps', '/usr/local/lib/python2.6/site-packages/django'] + sys.path"
</Location>

и еще чтоб не напрягать джангу статикой

<Location "/static">
    SetHandler None
</Location>
<Location "/media">>
    SetHandler None
</Location>
Главное не забудьте сделать симлинки в веб доступной директории симлинки на static - статика сайта и media - статика админки.

Вот и все, теперь заливаем свое приложение и пере загружаемся. Сервер с приложением работает=)

Django 1.3 alpha 1

Несколько дней назад наконец вышла первая альфа новой ветки Django 1.3. Релиз, разумеется, предназначен не для развёртывания на боевых серверах, а для тестирования нового функционала, выявления всевозможных багов «и всего такого».

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

Новое

  • Основанные на классах представления.
    Теперь представления можно использовать как классы с соответствующими методами. Наследование добавляет очень много вкусных возможностей. Старые версии представлений будут рассматриваться как производные от основного базового класса представлений, а значит также могут легко расширяться.
  • Логирование.
    Добавлена батарейка с поддержкой стандартного Python-модуля логирования, что делает логирование удобней. Логирование.
  • Улучшенная обработка статики.
    Вместе с Django 1.3 идёт новое приложение ‘django.contrib.staticfiles’.
  • Поддержка unittest2.
    Нововведения в модуле unittest2 так понравились разработчикам Django, что они решили включить копию модуля в релиз.
  • Контекстные менеджеры транзакций.
    Да.
  • Ещё несколько относительно заметных изменений и множество не менее относительно незаметных.

О несовместимых с Django 1.2 решениях вы можете прочитать здесь.

Есть также несколько вещей, которым Django сказал(а): «Нет». Разработчики выступили против:

  • mod_python.
    Ввиду того, что разработка сервера прекратилась уже очень давно, Django настоятельно рекомендует переходить с него на mod_wsgi.
  • Основанные на функциях обобщённые представления.
    Из-за введения нового вида представлений будут удалены следующие модули:
    — django.views.generic.create_update
    — django.views.generic.date_based
    — django.views.generic.list_detail
    — django.views.generic.simple
  • И ещё чего-то.

Расписание выхода релизов

  • Неделя от 29 ноября 2010: Первая beta.
  • Неделя от 10 января 2011: Django 1.3 RC 1
  • Неделя от 17 января 2011: Final Release

(с)

Skype Beta Mac OS то чем я не доволен

В целом от данной версии скайпа я просто в восторге, но есть одно но.

Всплывающие окна не закрываются принудительно так как то делается в других месенжерах.