Современный ритм жизни оставляет нам все меньше времени на повседневные дела и заботы. И все чаще в связи с этим мы возлагаем домашние дела сторонним организациям.

Декоративные бабочки из фетра
Вот и долгожданная весна наступает, а нам хочется еще больше тепла, еще больше солнца, еще больше цветов, еще больше зелени, птиц и, конечно же, бабочек. Именно с их появлением приходит восторженное ощущение: наконец-то, вот оно, лето! А мы не будем ждать, пока лето постучится и в нашу дверь, а будем создавать летнюю атмосферу у себя дома своими силами. Предлагаем сделать эти превосходные декоративные бабочки из фетра и украсить ними ваш дом.
Документация South — Перевод. Часть 4: Пользовательские поля
Наше поле
from django.db import models
class TagField(models.TextField):
description = "Stores tags in a single database column."
__metaclass__ = models.SubfieldBase
def __init__(self, delimiter="|", *args, **kwargs):
self.delimiter = delimiter
super(TagField, self).__init__(*args, **kwargs)
def to_python(self, value):
# If it's already a list, leave it
if isinstance(value, list):
return value
# Otherwise, split by delimiter
return value.split(self.delimiter)
def get_prep_value(self, value):
return self.delimiter.join(value)
Именованные аргументы
South знает все эти правила для стандартных полей Django, но Вам необходимо объяснить все это касательно своих полей. Хорошая новость состоит в том, что South может отследить цепочку наследования, так что о полях, определённых в родительских классах говорить заново в дочерних классах не надо (или надо сообщить только о тех дополнительных именованных аргументах, которых не было в родительском классе).
В нашем примере мы определяем только один дополнительный именованный аргумент — delimiter. Вот код, который мы добавляем для того, чтобы South мог обработать наше новое поле. Чуть позже мы его объясним:
from south.modelsinspector import add_introspection_rules
add_introspection_rules([
(
[TagField], # Класс(ы) к которым это применимо
[], # позиционные аргументы (не используется)
{ # именованные аргументы
"delimiter": ["delimiter", {"default": "|"}],
},
),
], ["^southtut.fields.TagField"])
Как Вы можете видеть, для того, чтобы рассказать South о вашем новом поле Вам нужно вызвать функцию south.modelsinspector.add_introspection_rules. Вы должны разместить этот код рядом с определением вашего поля. Так как последнее, что Вы хотели бы — это импортировать поле, но чтобы этот код не был выполнен.
add_introspection_rules принимает два аргумента: список правил и список регулярных выражений. Список регулярных выражений используется South для того чтобы понять, можно ли исследовать это поле. Просто иметь правило, которое подходит для поля недостаточно, так как наследование правил подразумевает, что любой пользовательский класс поля будет иметь хотя бы одно правило, под которое он подпадает (
опять — «(as they will inherit from «Field«, if not something more specificlike «CharField«), and some custom fields can get by with only those inherited rules (more on that shortly)«).
Первый аргумент — список правил. Каждое правило — это кортеж (или список) с тремя элементами:
- Список классов к которым применимы эти правила. Практически наверняка у Вас будет тут только одно поле, например, то, про которое мы сейчас говорим.
- Спецификация позиционных аргументов. Практически наверняка будет пустым списком — []
- Спецификация именованных аргументов: это словарь, где ключ — имя аргумента, а значение — список или кортеж (имя_аргумента, опции)
Простые наследования
class UpperCaseField(models.TextField):
"Убеждаемся, что содержимое всегда в верхнем регистре."
def to_python(self, value):
return value.upper()
def get_prep_value(self, value):
return value.upper()
from south.modelsinspector import add_introspection_rules
add_introspection_rules([], ["^southtut.fields.UpperCaseField"])
Больше информации
Автор: Ishayahu Lastov
Как оформить баню
Баня дает человеку возможность сохранить здоровье, а также приобрести красоту и долголетие. Именно поэтому многие стремятся построить баню на своем участке. Однако не многие знают, как правильно оформить баню, начиная стенами и заканчивая косметическими средствами. Для строительства бани лучше использовать только натуральные материалы и влагостойкие светильники. Конечно, не стоит забывать и о звукоизоляции.
Вам понадобится естественные ароматизаторы, двери, влагостойкие светильники, доски и бревна.
Увеличить скорость работы браузера в Ubuntu
В данной инструкции я вам расскажу про замечательный способ увеличения быстродействия браузера (любого) за счёт переноса его профиля в оперативную память. В начале я сам был достаточно скептически был настроен к данному способу, однако после того, как я его попробовал — я сильно удивился. Скорость браузера (я тестировал на Chrome и Firefox) действительно ощутимо выросла. Заранее отмечу, что способ не слишком подходит обладателям малого количества RAM. Да, можно самому выставить все символьные ссылки профилей браузера из домашней папки в tmpfs, однако это будет долго и неинтересно. Тут на помощь приходит утилита Profile Sync Daemon. С её помощью настройка занимает минут пять, не больше. Кстати, если вы беспокоитесь за судьбу своего SSD — данная инструкция вам также будет полезна, ибо не будут тратиться сильно ограниченные ресурсы накопителя. Другие инструкции для лучшей работы SSD: оптимизация работы и статья про TRIM. Список поддерживаемых браузеров впечатляет: Chromium, Google Chrome, Firefox (stable, beta, aurora и firefox-trunk), Conkeror, Midori, Opera (включая Opera Next) и Qupzilla. Многие знают, что при перезагрузке вся информация с оперативной памяти стирается. Вот тут то опять поможет Profile Sync Daemon! Данная утилита автоматически синхронизирует профили с жёстким диском используя символические ссылки и rsync. Но учтите, при внезапной перезагрузке некоторые данные могут быть потеряны. Поэтому используйте утилиту на свой страх и риск! Установка Profile Sync Daemon Для установки утилиты Profile Sync Daemon воспользуйтесь следующими командами (перед установкой сделайте бекапы профилей своих браузеров!):sudo add-apt-repository ppa:graysky/utils sudo apt-get update && sudo apt-get install profile-sync-daemon
Настройка Profile Sync Daemon По умолчанию Profile Sync Daemon активен для всех браузеров, установленных в системе. Многим это покажется удобным, но не всем. У меня у самого установлено несколько браузеров, но пользуюсь я только Chrome и Firefox. Поэтому во время настройки Profile Sync Daemon данный нюанс мы также исправим. Итак, для начала откроем файл /etc/psd.conf:
sudo gedit /etc/psd.conf
После чего найдите следующую строчку: USERS=»» И в кавычках впишите имя своего пользователя. Можно вписать несколько пользователей, главное поставьте между ними пробел. Сохраните файл, но не закрывайте его, если вы хотите сделать так, чтобы Profile Sync Daemon был активен только для нужных вам браузеров. Откройте новое окно в терминале и выполните следующую команду:
profile-sync-daemon parse
У вас в терминале должен отобразится список тех браузеров, которые установлены у вас в системе и с которыми Profile Sync Daemon может работать. Выберите нужные вам, перейдите к редактированию файла /etc/psd.conf и найдите следующую строку: #BROWSERS=»» Уберите решётку в начале строки (#), а между кавычек впишите нужные вам браузеры через пробел. У меня получилось следующее:
BROWSERS=»chrome firefox»
Всё, теперь вам осталось только сохранить файл и закрыть все браузеры. Запустим Profile Sync Daemon: sudo service psd start Вот и всё. Теперь откройте браузер и насладитесь быстрой работой.
Автор: ГАЗЕНВАГЕН™
Выбор дивана для гостиной
Гостиная является наиболее востребованным местом в доме для приема гостей, местом, где собирается вся семья после окончания рабочего дня. Здесь приятно расслабиться после длинного рабочего дня и вместе посмотреть телевизионные передачи. Гостиная является наиболее видимой частью жилого пространства. Обычно она задает общий тон для дизайна интерьера всего жилья. Создав в гостиной теплую уютную атмосферу, вы гарантируете в ней собственный комфорт и комфорт ваших гостей.
Планируя дизайн гостиной, в первую очередь следует определиться с назначением данной комнаты. Необходимо помнить одну важную вещь, проектируя комнату, вы должны ориентироваться на максимальный комфорт и единый стиль в дизайне помещения. Вероятнее всего вы будете проводить в гостиной достаточно много времени, а значит, вам не обойтись без такого элемента мебели, как диван. Наверное, приходилось замечать, что попадая в гостиные, где отсутствует диван, вы испытываете некоторое чувство дискомфорта. Это и понятно. Диван придает законченность дизайна гостиной. Как же сделать правильный выбор дивана для гостиной?
Вот только несколько дизайнерских идей, связанных с выбором дивана для гостиной.



