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

Файлы __init__.py пакетов

Если вы решили использовать импортирование пакетов, существует еще одно условие, которое необходимо будет соблюдать: каждый каталог в пути, указанном в инструкции импортирования пакета, должен содержать файл с именем __init__.py, в противном случае операция импорта пакета будет терпеть неудачу. То есть в примере выше каталоги dir1 и dir2 должны содержать файл с именем __init__.py каталог-контейнер dir0 может не содержать такой файл, потому что сам он не указан в инструкции импортирования пакета. Точнее говоря, для такой структуры каталогов:
dir0dir1dir2mod.py
и инструкции импортирования, имеющей следующий вид:
import dir1.dir2.mod
применяются следующие правила:
•  dir1 и dir2 должны содержать файл __init__.py.
•  dir0, каталог-контейнер, может не содержать файл __init__.py – этот файл
будет проигнорирован, если он присутствует.
•  dir0, но не dir0dir1, должен присутствовать в пути поиска модулей (то есть он  должен  быть  домашним  каталогом  или  присутствовать  в  переменной окружения PYTHONPATH и так далее).

Таким образом, структура каталогов в этом примере должна иметь следующий вид (здесь отступы указывают на вложенность каталогов):

dir0          # Каталог-контейнер в пути поиска модулей
    dir1
        __init__.py
        dir2
            __init__.py
            mod.py
Файлы __init__.py могут содержать программный код на языке Python, как любые другие файлы модулей. Отчасти они являются объявлениями для интерпретатора и могут вообще ничего не содержать. Эти файлы, будучи объявлениями, предотвращают неумышленное сокрытие в каталогах с совпадающими именами истинно требуемых модулей, если они отображаются позже в списке путей поиска модулей. Без этого защитного механизма интерпретатор мог бы выбирать  каталоги,  которые  не  имеют  никакого  отношения  к  вашему  программному коду, только лишь потому, что в пути поиска они появляются ранее.
В общем случае файл __init__.py предназначен для выполнения действий по инициализации пакета, создания пространства имен для каталога и реализации поведения инструкций from * (то есть from … import *), когда они используются для импортирования каталогов:

Инициализация пакета
 Когда интерпретатор Python импортрирует каталог в первый раз он автоматически запускает программный код файла __init__.py этого каталога. По этой причине обычно в эти файлы помещается программный код, выполняющий действия по инициализации, необходимые для файлов в пакете.
 Например, этот файл инициализации в пакете может использоваться для создания файлов с данными, открытия соединения с базой данных и так далее. Обычно файлы __init__.py не предназначены для непосредственного выполнения – они запускаются автоматически, когда выполняется первое обращение к пакету.

Инициализация пространства имен модуля
При импортировании пакетов пути к каталогам в вашем сценарии после завершения операции импортирования превращаются в настоящие иерархии вложенных объектов. Например, в предыдущем примере после завершения операции импортирования можно будет использовать выражение dir1.dir2, которое возвращает объект модуля, чье пространство имен содержит все имена, определяемые файлом __init__.py из каталога dir2. Такие файлы создают пространства имен для объектов модулей, соответствующих каталогам, в которых отсутствуют настоящие файлы модулей.

Поведение инструкции from *
В качестве дополнительной особенности, в файлах __init__.py можно использовать списки __all__, чтобы определить, что будет импортироваться из каталог

Растяжка мышц в картинках

Что Вы тянете на самом деле: растяжка мышц в картинках


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

Чтобы во время растяжки не пропустить ни одной важной мышцы и обеспечить правильность выполнения движений, необходимо знать, какие именно мышцы Вы разогреваете во время того или иного упражнения растяжки. Желая облегчить Вам задачу, представляет краткое описание и иллюстрации упражнений для растяжки мышц (подготовленные испанским тренером Вики Тимон), которые наверняка пригодятся каждому.


Упражнения для растяжки мышц – краткое описание и иллюстрации


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

Что Вы тянете на самом деле: растяжка мышц в картинках


Задействованные мышцы: прямые и наружные косые мышцы живота.

Выполнение: сядьте на пятки, отведите руки назад и вытолкните бедра вперед и вверд, не перенапрягая поясницу. При наличии проблем с шеей не запрокидывайте голову назад.

Задействованные мышцы: приводящие (аддукторы).

Выполнение: в положении сидя, колени согнуты, спина ровная. Начните медленно выпрямлять ноги, чуть прогбая спину, постарайтесь коснуться стоп.

Что Вы тянете на самом деле: растяжка мышц в картинках


Задействованные мышцы: приводящие (аддукторы)

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

Задействованные мышцы: приводящие (аддукторы)

Выполнение: станьте, широко расставив ноги. Медленно опускайте руки к правой ступне, сгибая правую ногу в колене и поднимая пальцы левой ноги вверх. Стопа правой ноги полностью стоит на полу.

Что Вы тянете на самом деле: растяжка мышц в картинках


Задействованные мышцы: приводящие (аддукторы)

Выполнение: в положении сидя прислоните стопы друг к другу, усядьтесь на седалищные кости, выпрямите спину. Аккуратно надавливайте руками на колени, опуская ноги все ближе к полу. Чем ближе стопы к телу, тем сильнее растяжка мышц.

Задействованные мышцы: разгибатель предплечья

Выполнение: плечо опустите вниз и отведите назад, затем зафиксируйте его в оптимальном положении. Теперь начинайте надавливать на противоположную руку, как показано на рисунке.

Что Вы тянете на самом деле: растяжка мышц в картинках


Задействованные мышцы: грудино-ключично-сосцевидная

Выполнение: максимально вытянув шею, медленно опускайте ухо на плечо.

Задействованные мышцы: грудино-ключично-сосцевидная

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

Что Вы тянете на самом деле: растяжка мышц в картинках


Задействованные мышцы: грудино-ключично-сосцевидная

Выполнение: положите руки на бедра, выпрямите спину и начинайте отводить голову назад, соблюдая осторожность.< /div>

Что Вы тянете на самом деле: растяжка мышц в картинках


Задействованные мышцы: грудино-ключично-сосцевидная и верхняя трапециевидная

Выполнение: максимально выпрямив шею, старайтесь коснуться ухом плеча.

Задействованные мышцы: поясничная и квадрицепс

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


Задействованные мышцы: разгибатель предплечья

Выполнение: плечо опустите вниз и отведите назад, затем зафиксируйте его в оптимальном положении. Теперь начинайте надваливать на противоположную руку, как показано на рисунке

Что Вы тянете на самом деле: растяжка мышц в картинках


Задействованные мышцы: боковая дельтовидная

Выполнение: выпрямите руку поперек тела и слегка надавите на ее, чтобы усилить растяжку мышцы.

Задействованные мышцы: трапециевидная

Выполнение: в положении стоя (ноги вместе) с выпрямленной спиной медленно отводите бедра вниз и назад, округляя спину и одновременно касаясь подбородком груди.

Что Вы тянете на самом деле: растяжка мышц в картинках


Задействованные мышцы: широчайшая мышца спины

Выполнение: ухватитесь за перекладину, медленно оторвите ноги от пола.

Задействованные мышцы: широчайшая мышца спины

Выполнение: станьте, взявшись обеими руками за угол стены или столб. Держа спину прямо, медленно отведите бедра в сторону.< /div>

Что Вы тянете на самом деле: растяжка мышц в картинках


Задействованные мышцы: широчайшая мышца спины

Выполнение: станьте на четвереньки и медленно отводите бедра назад, пока лоб не коснется пола.

Задействованные мышцы: камбаловидная и икроножная

Выполнение: встаньте на край ступеньки и слегка поверните щиколотки внутрь и наружу для растяжки мышц.

Что Вы тянете на самом деле: растяжка мышц в картинках


Задействованные мышцы: камбаловидные и икроножные

Выполнение: начинайте растяжку мышц, стоя на одном колене (как для выпада), соблюдайте осторожность, если у Вас есть проблемы с бедрами.

Задействованные мышцы: задней поверхности бедра и икроножные

Выполнение: сядьте на седалищные кости и при необходимости согните ноги в коленях. Постарайтесь взяться руками за стопы, выпрямив ноги в коленях.

Что Вы тянете на самом деле: растяжка мышц в картинках


Задействованные мышцы: задней поверхности бедра

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

Задействованные мышцы: ягодичные

Выполнение: станьте, поставив ноги на ширину плеч и медленно присядьте, выпрямив руки между ног и удерживая равновесие при помощи стоп и бедер.

Что Вы тянете на самом деле: растяжка мышц в картинках


Задействованные мышцы: ягодичные

Выполнение: из положения сидя медленно подтяните ногу у груди и поверните бедро наружу, удерживая спину прямо.

Задействованные мышцы: камбаловидная и икроножная

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

Что Вы тянете на самом деле: растяжка мышц в картинках


Задействованные мышцы: наружные косые

Выполнение: выпрямив позвоночник, медленно отведите бедра в сторону. При проблемах с поясницей воздержитесь от упражнения.

Что Вы тянете на самом деле: растяжка мышц в картинках


Задействованные мышцы: ягодичные и наружные косые

Выполнение: лягте на спину, переведите одну ногу через все тело, медленно поворачивая туловище в противоположном направлении.

Задействованные мышцы: наружные косые

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


Задействованные мышцы: наружные косые

Выполнение: широко расставьте ноги, впереди стоящая стопа должна смотреть вперед, а другая должна быть повернута на 90 градусов. Положите руку на впереди стоящую ногу, отведите впереди расположенное бедро назад и вниз, держа спину прямо и поднимая противоположную руку.

Что Вы тянете на самом деле: растяжка мышц в картинках


Задействованные мышцы: грудные

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

Задействованные мышцы: груди и широчайшая мышца спины

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

Что Вы тянете на самом деле: растяжка мышц в картинках


Задействованные мышцы: передняя большеберцовая

Выполнение: сядьте и заведите одну руку назад, одну ногу положите на другую выше колена, придерживая ее рукой.

Задействованные мышцы: подлопаточная

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

Что Вы тянете на самом деле: растяжка мышц в картинках


Задействованные мышцы: груди и широчайшая мышца спины

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

Задействованные мышцы: груди

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


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



Автор: Нина Карулина

Плюшки SQL Server 2014.

Если лень читать можно сразу посмотреть небольшое видео
1. In-Memory OLTP
Новый механизм хранения данных в SQL Server.
Размещение таблиц в оперативной памяти  In-Memory OLTP для  устранения блокировок доступа к данным и ускорения чтения данных используется также при большом количестве подключений к таблице.
При перезапуске SQL Server после сбоя или запланированного завершения работы для устойчивых, оптимизированных для памяти таблиц повторно создаются экземпляры, чтобы вернуть их в состояние перед завершением работы или сбоем.
Существует два параметра устойчивости для оптимизированных для памяти таблиц:

1.Чтобы воспользоваться механизмом необходимо добавить в базу файл группу inmemory

ALTER DATABASE imoltp ADD FILEGROUP imoltp_file_group
    CONTAINS MEMORY_OPTIMIZED_DATA;

2.Создать таблицу с опцией MEMORY_OPTIMIZED=ON

CREATE TABLE [dbo].[InMemTable] (
  c1 INT NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT=1000000),
  c2 NCHAR(48) NOT NULL
) WITH (MEMORY_OPTIMIZED=ON, DURABILITY = SCHEMA_AND_DATA);
GO

3.Создать  специальную процедуру которая будет использовать механизм NATIVE_COMPILATION для ускорения работы процедуры  с таблицами inmemory

CREATE PROCEDURE [dbo].[usp_InsertData]
  @rowcount INT,
  @c NCHAR(48)
  WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
  AS
  BEGIN ATOMIC
  WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english')
  DECLARE @i INT = 1;
  WHILE @i <= @rowcount
  BEGIN
    INSERT INTO [dbo].[inMemTable2](c1,c2) VALUES (@i, @c);
    SET @i += 1;
  END
END
GO

SCHEMA_ONLY (недолговечная таблица)
Этот параметр обеспечивает устойчивость схемы таблицы, в том числе индексов.При перезапуске SQL Server недолговечная таблица создается заново, но запускается без данных.(В отличие от таблицы в базе данных tempdb, где и таблица, и ее данные теряются после перезапуска.) Типичный сценарий для создания недолговечной таблицы — хранение временных данных, например промежуточной таблицы для процесса ETL.Устойчивость SCHEMA_ONLY предотвращает ведение журнала транзакций и создание контрольной точки, что может существенно уменьшить объем операций ввода-вывода.
SCHEMA_AND_DATA (долговечная таблица)
Этот параметр обеспечивает устойчивость как схем, так и данных.Уровень устойчивости данных зависит от того, выбрана ли фиксация транзакции как полностью устойчивая или отложенно устойчивая.Полностью устойчивые транзакции дают гарантию устойчивости данных и схемы аналогично таблице на диске.Отложенная устойчивость улучшает производительность, но может привести к потере данных в случае сбоя или отработки отказа сервера.(Дополнительные сведения об отложенной устойчивости см. в разделе
Сценарии использования In-Memory OLTP
• Интенсивные операции чтения на таблице
• Одновременная вставка большого количества данных из параллельных соединений к серверу
• Staging таблицы для ETL процессов
• Табличные типы in-memory (вместо временных таблиц и табличных переменных)
Подробно все описано на MSDN там же можно взять примеры кода.
Также есть интересные статьи на хабре 1 и 2
Технология пока еще довольно сырая так что существует много ограничений ко
торые не всегда придутся по вкусу.
Ограничения:
• Не поддерживаются DML триггеры
• Отсутствуют FOREIGN KEY и CHECK constraints
• Единственным уникальным индексом может быть только PRIMARY KEY
• Максимум можно создать 8 индексов, включая PRIMARY KEY
Не поддерживаемые типы данных
• DATETIMEOFFSET
• GEOGRAPHY
• GEOMETRY
• HIERARCHYID
• Large Objects (LOBs). For example, varchar(max), nvarchar(max),
varbinary(max), image, xml, text, and ntext.
• ROWVERSION
• sql_variant
• CLR functions
• User-defined types (UDTs)
2. PowerView для многомерных моделей
Раньше Power View работал только на реляционных данных, с 2014 версии можно использовать OLAP кубы в качестве источников данных Power View.
Это несомненный плюс для новой версии SQL сервера.
Отчет на многомерном источнике теперь может построить любой пользователь и поделиться им с коллегой через портал SharePoint.
Подробно также описано на MSDN .
Как запустить это дело на SharePoint описано тут
3. Обновляемые колоночные индексы
Появились еще в SQL Server 2012, для хранилищ данных и оптимизации запросов с  группировкой и агрегирующими функциями.
Однако появились в достаточно сыром виде  с существенным ограничением,  такие индексы нельзя было обновлять напрямую, только через задницу: удалить индекс, обновить данные и заново создать индекс.
В 2014 версии удалось победить это тупое ограничение и можно спокойно без извращений обновлять индексы, заработал таки REBUILD.
CREATE NONCLUSTERED COLUMNSTORE INDEX csindx_simple
ON SimpleTable
(OrderDateKey, DueDateKey, ShipDateKey)
WITH (DROP_EXISTING =  ON,
    MAXDOP = 2)
ON «default»
GO
— update mytable —
ALTER INDEX mycolumnstoreindex on mytable REBUILD
Как создать индекс  можно посмотреть на MSDN.  Интересно также написано тут
Небольшое  видео по теме
4. Расширяемый буферный пул  
Предлагается использовать в системах где память расходуется по максимуму через использование SSD дисков.
Включить опцию очень легко. Для этого достаточно использовать команду ALTER SERVER CONFIGURATION и указать расположение файла и его размер, который будет использоваться в качестве Buffer Pool Extension.
ALTER SERVER configuration
SET buffer pool extension
    ON (FILENAME = 'X:MyCache.bpe', SIZE = 64 gb);
GO
Отключается Buffer Pool Extension следующей командой.
ALTER SERVER configuration
SET buffer pool extension OFF;
GO
Сценарий использования
 ·      Ее рекомендуется использовать для OLTP систем, в которых преобладают запросы на чтение данных.
·      Нет никаких рисков потери данных, т.к. BPE кэширует только «чистые» страницы. При с

Удаление локального хранилища (local storage) в XenServer 6.5

Понадобилось мне как-то раз пересоздать raid на сервере с гипервизором Xenserver 6.5. Для этого нужно было отключить и удалить все локальные хранилища, пересоздать рейд и подключить заново новые storages. Задача простая, но как это часто бывает с XenServer, выполнить ее из панели управления нельзя, нужно лезть в консоль и выполнять кучу громоздких команд.

Читать

Учить или не учить?

Учить или не учить?

Учить или не учить?
================================================================================
Светлана Бублич on 10/07/2014 02:35:00

Сегодня данный вопрос стоит перед каждым
руководителем. Конечно, обучать персонал –
дело довольно затратное и где гарантии, что,
получив образование и повысив свою
квалификацию, сотрудник не найдет себе
рабочее местечко получше? Да риски, конечно,
велики. Но давайте рассмотрим вопрос с
другой стороны. Сегодня конкуренция
настолько велика, что задача любой компании
не просто выжить, а остаться
конкурентоспособной. И тут успех напрямую
зависит от эффективности работы его
сотрудников.
Во-первых, обучение является
высокоэффективным мотивирующим фактором.
Для каждого сотрудника должно быть нормой
чувство заботы, поддержки со стороны
руководства, благодаря чему создается
благоприятный климат в коллективе. Со
стороны работника нормально стремление
добиться профессионализма в любой работе,
он должен стремиться стать лучшим в своей
специальности. Увлеченный учебой человек
обязательно вырастет в должности, а
работодатель получит хорошего специалиста.
Таким образом работодатель удерживает
длительное время кадры от миграции,
привлекает новых сотрудников, получает
стабильный кадровый состав. Предприятие в
данном случае может полностью решить для
себя проблему недостаточной грамотности
персонала и расширить диапазон
теоретических знаний и практических
навыков.
Во-вторых, вкладывая средства в обучение,
руководитель получает команду
высококлассных и высококвалифицированных
сотрудников, которые смогут вывести
компанию на лидирующие позиции в своей
сфере, оставив конкурентов далеко позади.
Потому что система обучения и развития
персонала помогает сформировывать и
поддерживать кадровый состав в организации
в «рабочем тонусе», повышает
профессиональное мастерство работников,
формирует у них современное экономическое
мышление и умение работать в команде.
Благодаря процессам обучения и развития
повышается производительность труда и
эффективное функционирование предприятия
в целом. Что несомненно укрепит лояльность
клиентов к компании.
В-третьих, сотрудники, прошедшие обучение,
будут распространять новоприобретенные
знания, умения и навыки среди своих коллег.
Это многократно усилит эффект развития
персонала. Выигрыш заключается в том, что
персонал обучают новым умениям, навыкам и
мировоззрению непосредственно на рабочих
примерах, а не на отвлеченных теоретических
моделях.
Таким образом напрашивается вывод, что
обученный персонал – это актив, вложения в
который (т.е. вложение в обучение) окупаются
очень быстро и дают колоссальный рост
прибыли!
Судите сами: после прохождения тренинга
эффективность работы одного сотрудника
вырастает всего лишь на 0,5% — это не так и
много на первый взгляд. Но в отделе работают
20 человек, и каждый из них даст прирост на
0,5%, то суммарное увеличение результатов
составит 10%! А бывают ситуации, когда
внедрение одного простого навыка или
приема в работе повышает эффективность
каждого сотрудника на 10 — 30%!
Я думаю, что больше не осталось сомнений —
обучение персонала необходимо
руководителю любой компании.
Увеличение интеллектуального капитала
компании дело довольно хлопотное. Но этих
трудностей можно избежать благодаря
использованию специальных
автоматизированных информационных систем
для обучения, аттестации и управления
персоналом. Для достижения наибольшего
эффекта на современном рынке существуют
решения для комплексной автоматизации
процессов управления персоналом, которые
охватывают не только обучение персонала, но
и подбор, адаптацию, анализ квалификации
сотрудников и многое другое. Все это стало
возможным благодаря широкому функционалу
АИС, а также возможности интеграции с
другими программными продуктами,
используемыми в кадровых департаментах
предприятий. Сегодня такая информационная
система позволит:
— Установить централизованный
контроль над образовательной
деятельностью компании;
— повысить эффективность и
оперативность кадрового учета при обучении
сотрудников;
— создать единую информационную
систему в области развития персонала;
— оперативно информировать персонал об
актуальных изменениях во внутренних
нормативных документах;
— планировать обучение каждого
сотрудника;
— проводить дистанционное обучение;
— оценивать результаты обучения;
— оперативно формировать различные
отчеты по планам и результатам обучения;
— реализовывать мотивационные
программы для персонала по итогам
образовательного процесса и многое другое.
Группа компаний SIKE готова предложить
инструмент, который поможет сделать
процесс обучения персонала более простым и
удобным, избавит от необходимости помнить,
кого, когда и чему надо учить, позволит
выстроить на предприятии систему оценки
персонала.
АИС «SIKE.Управление персоналом» — хороший
помощник в выстраивании процессов
обучения.