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

Как узнать, кто пользуется моим WiFi

Беспроводная сеть WiFi сейчас есть практически в каждом доме. С ее помощью очень удобно подключать к сети и интернету не только мобильные устройства, но и обычные настольные компьютеры. Но, отказ от проводов влечет за собой снижение уровня безопасности. Если вы используете WiFi, то к вашей домашней сети может подключиться любое устройство, если оно находится в зоне покрытия точки доступа. В связи с этим многие пользователи интересуются, как узнать, кто пользуется моим WiFi. Если вас также волнует этот вопрос, то данная статья должна вам помочь. Читать

​Паста с цветной капустой и домашней колбасой Термомикс.

на 4 порции

Ингредиенты:

  • 650 г воды
  • 100 г белого сухого вина
  • 400 г брокколи
  • 320 г пасты
  • 400 г домашней колбасы (кусочками)
  • 20 г оливкового масла
  • 1 ч. л. соли
  • 1 ч. л. перца Читать

Абстрактные классы для коллекций

Пусть мы сделали какой-то класс для хранения набора данных. Например, настроек вида ключ -> значение:

class Settings:

def __init__(self):
self._data = {}

def add_property(self, key, value):
assert isinstance(key, str), key
self._data[key] = value

def get_property(self, key):
assert isinstance(key, str), key
return self._data[key]

И тут нам в голову приходит удачная идея, что было бы здорово вместо вызова settings.get_property('key') использовать квадратные скобки как для dict: settings['key']:

def __getitem__(self, key):
return self.get_property(key)

Что не так?
То, что наш класс стал отчасти походить на readonly dict (он же mapping) — но он не реализует весь предполагаемый контракт.
Так, я привык, что если класс похож на readonly dict, то он позволяет узнать количество элементов в нём. Добавляем __len__:

def __len__(self):
return len(self._data)

Всё ещё не хорошо. Для mapping обычно можно итерироваться по ключам. Добавление __iter__ решает проблему:

def __iter__(self):
return iter(self._data)

Всё? Нет! Хочется ещё проверять на наличие ключа: key in settingsdict ведь это позволяет!
Можем добавить метод __contains__ — а можем вспомнить, что есть класс collections.abc.Mapping.
Это абстрактный базовый класс, задающий контракт для неизменяемого словаря.
Описание того, что таке абстрактный базовый класс — здесь
Просто наследуемся от Mapping:

from collections.abc import Mapping

class Settings(Mapping):

# ...

В качестве бесплатного бонуса получам поддержку .get(), .keys(), .items(), .values(), __eq__ и __ne__.
Реализация этих методов не оптимальная с точки зрения производительности, но она уже есть из коробки. К тому же всегда можно добавть свой вариант, который будет работать быстрее стандартного (если мы знаем как это сделать).
Если мы забудем реализовать какой-то критически важный метод — при создании экземпляра класса получим исключение:

>>> settings = Settings()
TypeError: Can't instantiate abstract class Settings with abstract methods __iter__

В стандартной библиотеке есть большой набор абстрактных базовых классов:

  • ByteString
  • Callable
  • Container
  • Hashable
  • ItemsView
  • Iterable
  • Iterator
  • KeysView
  • Mapping
  • MappingView
  • MutableMapping
  • MutableSequence
  • MutableSet
  • Sequence
  • Set
  • Sized
  • ValuesView

Очень рекомендую изучить набор методов, реализуемых этими классами — помогает понять систему типов собственно Питона.
При необходимаости можно (и нужно) написать свои.
А в заключение забавный пример.
В библиотеке sqlalchemy есть класс RowProxy для строки-кортежа, получаемой в результате SQL запроса.
Класс выглядит как mapping: имеет длину, .keys(), .items(), .__contains__() и все прочие нужные методы. Позволяет получать значение как по позиционному номеру так и по названию колонки в базе данных.
При этом он реализует контракт Sequence (как у tuple).
Т.е. iter(row) возвращает данные, а не названия колонок. И это немного сбивает с толку: выглядит как утка, а крякает как поросёнок.
В оправдание sqlalchemy могу сказать, что RowProxy появился в самой первой версии алхимии, еще до того как в Питон добавили collections.abc. А потом что-то менять стало поздно.
Но сейчас при разработке собственных библиотек стоит придерживаться устоявшихся стандартов и активно применять абстрактные базовые классы для коллекций.

Автор: Andrew Svetlov

Как исправить ошибку 404 или Not Found («не найдено»)

WordPress-это мощная CMS. Иногда незначительная ошибка может сделать вашу статью или весь сайт кроме главной страницы недоступным. Найти решение для сайта на WordPress — проблема несложная. Ранее мы рассмотрели 14 самых распространенных проблем пользователей CMS WordPress. Это ошибка установления соединения с базой данных и внутренняя ошибка сервера. Еще одна распространенная проблема, с которой большинство пользователей WordPress сталкиваются в какой-то момент при открытии записей:  это ошибка 404  или «не найдено». В этой статье мы расскажем вам об ошибке 404, и как исправить эту ошибку.

В данном случае пользователь сможет получить доступ к админ. панели сайта на WordPress, и к главной странице сайта, но при переходе на отдельную страницу они получают 404 ошибку: не найдена. Прежде всего, не нервничайте, в основном ваши посты до сих пор существуют и полностью в безопасности. Обычно это происходит, если ваш файл .htaccess был удален или что-то (обычно какой нибудь плагин) перезаписал правила. Мы расскажем вам о последовательности действий, что нужно сделать, чтобы  исправить правила.

Зайти в Настройки » Постоянные ссылки, и внизу нажмите на кнопку «Сохранить изменения».

Как исправить ошибку 404 или Not Found («не найдено»)

Это действие обновит ваши настройки постоянных ссылок и перезапишет правила в файле .htaccess. В большинстве случаев этот метод устраняет на сайте сообщения об ошибке 404. Но если, и он не сработает у вас, тогда вам, вероятно, нужно обновить файл .htaccess вручную.

Войдите на ваш сервер через FTP и отредактируйте файл .htaccess, который расположен в корне сайта, где находятся настройки сайта, если нет его то тогда создайте его там. Самое первое, что вы должны сделать, это сделать файл временно доступным для записи, изменив разрешения на 666. После того как сделали доступным файл для записи, добавить код в ваш .htaccess файл:

# BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

# END WordPress

 

Не забудьте возвратить разрешение обратно на 660.

Устранение на локальном сервере

Зачастую разработчики и  дизайнеры устанавливают, для удобства, локальный WordPress на свой компьютер, используя локальный сервер для тестирования. Если вы хотите использовать довольно часто, то Вам необходимо включить rewrite_module в вашей конфигурации Apache файл mamp, сервер WAMP, или XAMPP.

Мы написали учебник здесь о том, как включить пользовательские постоянные ссылки в локальной среде WordPress.

Мы надеемся, что данная статья помогла решить вам проблему ошибку 404  «не найдено». У вас получилось решить проблему с помощью нас? Или у вас есть другое решение, которое помогло вам? Пожалуйста, расскажите о нём в комментариях ниже. Мы хотели бы сделать эту статью всеобъемлющей для пользователей, которые столкнулись с данной ситуацией.



2015-06-04T09:25:22
CMS WordPress

​Рис с овощами и креветками Термомикс ( для ТМ5).

на 4 порции

Ингредиенты:

  • 800 г воды
  • 1 ст. л. оливкового масла
  • 2 ч. л. соли
  • 200 г цуккини (кружками 0,5 см)
  • 400 г цветной капусты (разобрать)
  • 450 г очищенных креветок
  • 320 г риса Басмати (18-20 мин варка)
  • 1 ч. л. сухой петрушки Читать

Диеты американских астронавтов

Тип диеты — малоуглеводная.

Убыль веса — 2-3 кг в неделю.

space_027-cropДиета Американских астронавтов ничем не отличается от кремлевской диеты. Кроме этого, можно с уверенностью сказать, что именно эта диета послужила основой для создания и раскрутки очень популярной, в настоящее время, кремлевской диеты.

Появилась диета в нашей стране благодаря Юрию Лужкову. В начале, она имела довольно секретное название:  «Условная эффективность питания. Применяется при разработке питания для военных и астронавтов США». Этой диетой увлекался Юрий Лужков и его супруга Елена Батурина, а затем, по цепочке, все тогдашнее руководство Москвы. Постепенно диета поменяла название и превратилась в знаменитую кремлевку.

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

Разрешено употребление любой белковой пищи, включая: мясо, рыбу, сыр, овощи с малым количеством углеводов и другую пищу с «низкой стоимостью». Причем, потребление продуктов с низкой стоимостью разрешается в любом объеме, поэтому во время применения этой диеты не ощущается чувство голода. Однако следует помнить, что чрезмерное увлечение белковыми продуктами во время диеты может привести к сильным запорам. Поэтому, обязательно включайте в рацион как можно больше разрешенных овощей и старайтесь употреблять полезные белки, исключая колбасы, копчености, жирные сорта мяса, жареное мясо. Старайтесь отдавать предпочтение постному мясу, мясу птицы, морепродуктам. Читать