Архив автора: admin

Украшение обуви

Украшение балеток

Столь модные сегодня тканевые балетки открывают столько возможностей для творчества! Креативные натуры не согласны упускать такую возможность и используют разные способы достижения индивидуальности и эксклюзивности во всем. Мы также можем смело назвать себя креативными натурами, а значит сегодня же займемся очередной переделкой. И нашей сегодняшней целью станет украшение текстильных балеток.

Украшение обуви

Украшение обуви

Читать

Почтовый клиент Geary обновлен до версии 3.0

 Организация Yorba Foundation, основной сферой деятельности которой является разработка бесплатных приложений для рабочего стола GNOME, объявила о выпуске третьей версии почтовика Geary.

 Интерфейс Geary 3.0 разработан на базе библиотеки GTK3+. Одними из целей проекта разработчики называют создание многофункционального решения, потребляющего минимум ресурсов, и максимально простого в использовании решения. Почтовик Geary 3.0 может быть использован как для обособленного применения, так и совместим с такими почтовыми сервисами, как Yahoo! Mail и Gmail. Хотя, установка мини атс обеспечит живое общение с пользователями и позволит быстро решить вопросы внутри компании.

 На данный момент доступны готовые инсталляционные пакеты для Fedora Linux и Ubuntu. Пользователи других платформ могут выполнить сборку почтовика из исходных текстов. При написании почтовой программы Geary 3.0 был использован сугубо язык Vala. Решение распространяется по условиям лицензии LGPL. Сообщения сохраняются в DB SQLite, а для поиска сообщений в базе генерируется полноценный текстовый индекс. Для работы с протоколом IMAP была применена новая библиотека на базе GObject, которая функционирует в разновременном режиме, когда загрузка почты не становится причиной блокировки интерфейса.

 В версии почтовой программы Geary 3.0 можно отметить следующие нововведения: — Поддержку одновременного использования нескольких учетных записей;
— Редактор учетных записей;
— Режим полного просмотра цепочек сообщений с отображением собственных ответов;
— Новая упрощенная форма загрузки сообщений, благодаря которой клиент стал намного быстрее;
— Возможность помечать сообщения, как спам;
— Внедрена папка для хранения наиболее важных сообщений
— Возможность сворачивать непрочитанные сообщения непосредственно в просмотровщике переписки;
— Поддержку authentication-less SMTP-сеансов;
— Активация режим проверки WebKit в просмотровщике переписки.

Автор: Сергей Курган

Бабочка из фетра

Декоративные бабочки из фетра

Вот и долгожданная весна наступает, а нам хочется еще больше тепла, еще больше солнца, еще больше цветов, еще больше зелени, птиц и, конечно же, бабочек. Именно с их появлением приходит восторженное ощущение: наконец-то, вот оно, лето! А мы не будем ждать, пока лето постучится и в нашу дверь, а будем создавать летнюю атмосферу  у себя дома своими силами. Предлагаем сделать эти превосходные декоративные бабочки из фетра и украсить ними ваш дом.

Украшение дома бабочками

Украшение дома бабочками

Читать

Документация South — Перевод. Часть 4: Пользовательские поля

В South 0.7 появилось радикальное отличие от предыдущих версий. До сих пор, если у Вас было пользовательское поле, South пытался использовать очень сильное колдунство для того, чтобы определить, как «замораживать» это поле,так что оно могло быть отклонено в миграции (и это было не очень красивое колдунство — комбинация регулярных выражений и модуля parser).
Хотя это, как ни странно, работало хорошо у большинства пользователей, тем не менее в некоторых случаях что-то шло не так, и Вы даже не знали об этом, пока не проходило несколько недель… В целях большей вменяемости и меньшей магии теперь Вы должны указать South как замораживать ваши пользовательские поля.
Не волнуйтесь, это достаточно просто и Вам надо сделать это лишь раз для каждого поля.

Наше поле

В этом примере мы будем использовать пользовательское поле, которое хранит список тегов в БД. Мы будем просто хранить их в TEXT колонке с некоторым разделителем (по умолчанию мы будем использовать |, но можно использовать и любой другой символ — просто передайте его как именованный аргумент).
Вот класс этого поля. Я разместил его в appname/fields.py (более подробно о создании собственных полей смотрите документацию Django):
 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 об этом поле, Вам нужно сообщить две вещи: что этот класс можно использовать и как получить именованный аргумент из экземпляра поля.

Именованные аргументы

South замораживает поля сохраняя их имя класса и модуль (таким образом можно получить сам класс поля) и именованные аргументы, которые Вы используете для конкретного экземпляра класса (например, CharField(max_lengh=50) не то же самое, что CharField(max_lengh=150)).
Так как Python не хранит именованные аргументы, переданные конструктору класса, South должен восстановить их уже из полученного экземпляра класса. Например, мы знаем что значение именованного аргумента max_length класса CharField хранится в атрибуте self.max_lenght, тогда как ForeignKeys хранят свои именованные аргументы to (определяющие модель, на которую они указывают, так же первый позиционный аргумент) как self.rel.to.
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)«).
Первый аргумент — список правил. Каждое правило — это кортеж (или список) с тремя элементами:

  1. Список классов к которым применимы эти правила. Практически наверняка у Вас будет тут только одно поле, например, то, про которое мы сейчас говорим.
  2. Спецификация позиционных аргументов. Практически наверняка будет пустым списком — []
  3. Спецификация именованных аргументов: это словарь, где ключ — имя аргумента, а значение — список или кортеж (имя_аргумента, опции)
Имя аргумента определяет место, где может быть найдено значение именованного аргумента — в нашем случае это delimiter, так как значение именованного аргумента мы храним в self.delimiter. (Если бы это было правило ForeignKey, то тут бы стояло rel.to)
Опции- это словарь. Вы можете безопасно оставить этот аргумент пустым, но можно и использовать его для определения значения по умолчанию и если South обнаружит значение, соответствующее этому, то он не будет указывать это ключевое слово в определении заморозки, что позволит это определение сделать более простым и читаемым.

Простые наследования

Если ваше поле наследуется напрямую из другого поля Django, например, CharField, и не добавляет других именованных аргументов, то Вам не нужно добавлять какие-либо правила в add_introspection_rules. Вы можете просто сказать South, что с этим полем всё в порядке:
 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"])

Больше информации

Более подробную документацию на эту тему можно обнаружить в разделе Extending introspection.

Автор: 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 Вот и всё. Теперь откройте браузер и насладитесь быстрой работой.

Источник

Автор: ГАЗЕНВАГЕН™

Жирорастворимые витамины

Некоторые витамины, такие как А, D, Е и К являются жирорастворимыми витаминами, это означает, что они растворяются в липидах и жирах. Человеческий организм не может самостоятельно их синтезировать и получает их только с пищей после переработки ее в желудочно-кишечном тракте. Эти вещества накапливаются и хранятся в печени и в жировой ткани. Жирорастворимые витамины выполняют различные функции в организме, они полезны для глаз, кожи, волос, костей и крови. Читать