Вкусный смузи из ягод и тофу

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

При этом ягодный напиток будет вкусным и обогащенным питательными веществами. Приготовить такой напиток просто. Необходимо взять один стакан замороженной черники, либо любых других ягод, половинку банана, примерно 100 грамм яблочного сока и 50 грамм сыра тофу. Кстати, тофу нравится не всем, его можно заменить низкокалорийным йогуртом. Положить все эти ингредиенты в мерный стакан и взбить блендером до однородной массы. Можно украсить веточкой свежей мяты.
Такой вкусный коктейль обогащен витамином «С», антиоксидантами, белком, клетчаткой, кальцием и калием. При этом одна порция вкусного коктейля содержит всего три грамма жира, 62 грамма углеводов и аж 6 грамм белка. Калорийность одного стаканчика смузи из ягод составляет порядка 290 Ккал, что очень даже может претендовать на завтрак или перекус в середине рабочего дня.

Печать на Windows принтер из Linux. LPD.

Есть ПК с Windows XP SP3, к которому подключён по USB и настроен принтер HP LJ P1006. Есть ПК с Xubuntu 12.10, с которого нужно настроить печать на этот принтер по локальной сети. В этой статье я опишу настройку сервера печати LPD на Windows и последующую установку принтера на Linux.

 На ПК с Windows, нужно открыть общий доступ к принтеру. Заходим в свойства принтера, и на вкладке Доступ, активируем опцию — Общий доступ к данному принтеру, с присвоением ему простого сетевого имени без пробелов и спецсимволов. В данном примере сетевое имя нашего принтера — AdminsPrint (выбирал не я:).
Читать

Забор с кованой решеткой

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

забор с кованой решеткой

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

Читать

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

Последовательная работа с миграцией

Иногда Вы можете обнаружить, что изменения в модели требуют некоторых улучшений. Предположим, Вы определили модель:
 class Group(models.Model):
name = models.TextField(verbose_name="Name")
facebook_page__id = models.CharField(max_length=255)

и вы создали и применили миграцию:
 ./manage.py schemamigration southtut --auto
./manage.py migrate southtut

После чего Вы обнаружили, что: name на самом деле должно быть CharField, а не TextField, а facebook_page__id содержит двойное подчёркивание, а не одинарное, как Вы хотели. Тогда можно исправить эти проблемы и выполнить:
  ./manage.py schemamigration southtut --auto --update
+ Added model southtut.Group
Migration to be updated, 0026_auto__add_group, is already applied, rolling it back now...
previous_migration: 0025_auto__foo (applied: 2012-05-25 21:20:47)
Running migrations for southtut:
- Migrating backwards to just after 0025_auto__foo.
< partner:0026_auto__add_group
Updated 0026_auto__add_group.py. You can now apply this migration with: ./manage.py migrate southtut

Что произошло? South удалил последнюю миграцию, которая создала модель, но в которой были ошибки, и заменил её новой миграцией, которая уже не содержит этих ошибок.
Стоит так же обратить внимание на то, что та миграция, которая была уже применена, была автоматически откачена назад. Вы можете теперь применить последнюю версию миграции чтобы получить правильный вариант модели:
 ./manage.py migrate southtut

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

Просмотр текущих миграций

Часто бывает полезно посмотреть, какие миграции были применены на данный момент и какие доступны для использования. Для этой причины есть команда ./manage.py migrate —list. Вот результат выполнения этой команды для нашего проекта:
 $ ./manage.py migrate --list

southtut
(*) 0001_initial
(*) 0002_auto__add_field_knight_dances_whenever_able
(*) 0003_auto__add_field_knight_shrubberies
(*) 0004_auto__add_unique_knight_name
Наличие звёздочки (*) говорит о том, что миграция была применена, а отсутствие — что ещё нет. Соответственно, чтобы увидеть только те миграции, которые были применены, воспользуйтесь командой ./manage.py migrate —list | grep -v «*»
Если у Вас есть несколько приложений, работающих при помощи миграций, то можно задать и имя приложения для просмотра миграций только для него.

Перенос данных

До сих пор мы говорили только о «миграции схемы», то есть об изменении колонок и индексов. Но есть и другой тип миграции — «миграция данных».
Миграция данных используется для изменения данных, сохранённых в вашей БД для приведения их в соответствие с новой схемой или предоставления новых возможностей. Например, если Вы сохраняете пароль в виде обычного текста (если это и правда так, то немедленно исправьте это. НЕМЕДЛЕННО!!!) и теперь хотите хранить его в виде солёного хеша, то Вам могут потребоваться эти три шага (причём каждый шаг — это одна миграция):
  • Создаём две новые колонки: password_salt и password_hash (миграция схемы)
  • Используя содержимое колонки password вычисляем соль и хеш для каждого пользователя (миграция данных)
  • Удаляем старую колонку password (миграция схемы)
Как провести первую и последнюю миграцию Вы уже и сами знаете: изменяете models.py и запускаете ./manage.py schemamigration —auto myapp. Главное не удаляйте сразу колонку password, так как нам понадобятся данные из неё для заполнения двух новых колонок (всегда, всегда делайте бакуп вашей БД перед тем, как сделать любое изменение, которое может попортить данные. Потому что однажды именно так и будет).
Давайте возьмём реальный пример. Создадим новое приложение под именем southtut2. Добавим его в INSTALLED_APS и создадим его модель:
 from django.db import models

class User(models.Model):

username = models.CharField(max_length=255)
password = models.CharField(max_length=60)
name = models.TextField()
Сде

Как покрасить платье

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

Как покрасить платье

Читать

Выбираем мебель для кухни правильно

выбираем мебель для кухни

Кухня, видимо, самое притягательное и важное место в квартире. От того, насколько удобно и рационально расставлена в ней мебель, будет зависеть ее функциональность, удобство, уют.

Читать