MyUnity – небольшая утилита позволяющая пользователям настроить различные компоненты Unity такие, как шрифты, темы, Dash, панель Unity и ещё многое другое.

MyUnity – небольшая утилита позволяющая пользователям настроить различные компоненты Unity такие, как шрифты, темы, Dash, панель Unity и ещё многое другое.

В этом необычном уроке будем делать светящийся террариум своими руками с птицей внутри. Эта декоративная банка своими руками способна украсить совершенно любой интерьер, а не только детскую.
С этой идей я познакомился в журнале Selber Machen №8 2007 г. и реализовал ее на собственный манер. Те березовые тюльки, которые не удалось расколоть на поленья, были весной превращены в цветочные вазоны для посадки садовых растений.
Из таких «неподдающихся» тюлек была сооружена целая цветочная композиция. Садовые вазоны стали прекрасным украшением, добавив саду природную естественность.
//===============================================================
// Name : HiTimer.c
// Author : D.Falko
// Version : 1.0
// Description : High Resolution timer test
//===============================================================
#include
#include
#include
#include
#include
#include
int main(int argc, char *argv[])
{
if(0 == geteuid()) // приложение должно быть запущенно с правами суперпользователя
{
struct sched_param sp;
memset(&sp, 0, sizeof(sp));
sp.__sched_priority = sched_get_priority_max(SCHED_FIFO);
sched_setscheduler(0, SCHED_FIFO, &sp);
mlockall(MCL_CURRENT | MCL_FUTURE);
}
else
{
printf("Not running with superuser rigthsn");
exit(1);
}
if(argc < 3)
{
printf("Using: HiTimer iterations delayn");
exit(1);
}
int iter = atoi(argv[1]);
int delay = atoi(argv[2]);
int i=0;
struct timespec tS, startT, stopT;
clock_getres(CLOCK_MONOTONIC, &tS); // узнаем разрешение таймера
printf("Timer res: %ld sec, %ld nsecn", tS.tv_sec, tS.tv_nsec);
struct timespec time;
clock_gettime(CLOCK_MONOTONIC, &startT); // засекаем время начала теста
while(i<iter)
{ // повторяем iter раз задержку delay
i++;
clock_gett
ime(CLOCK_MONOTONIC, &time); получаем актуальное время
time.tv_nsec+=delay; // добавляем требуемую задержку
clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME,
&time, NULL); // засыпаем
}
clock_gettime(CLOCK_MONOTONIC, &stopT);
long int nsec=stopT.tv_sec*1000000000 + stopT.tv_nsec
-startT.tv_sec*1000000000 + startT.tv_nsec;
// iter*delay должно примерно равняться nsec, узнаем погрешность задержек
printf("Number of iterations: %d timer value: %d nsecn",
iter, delay);
printf("Time elapsed: %ld nsecn", nsec);
return 0;
}А теперь подробней о использованных компонентах.
Используемая структура времени определена в <sys/time.h> и выглядят следующим образом:
struct timespec {
long tv_sec; /* секунды */
long tv_nsec; /* наносекунды */
};Далее мы узнаем и выводим на экран точность(разрешение) системных часов, при помощи функции:int clock_getres(clockid_t clk_id, struct timespec *res);в структуру struct timespec *res записывается разрешения, указанных в clockid_t clk_id часов.clockid_t clk_id может быть:
▪ CLOCK_REALTIME: часы реального времени, доступные всем процессам в системе. Часы измеряются в секундах и наносекундах с начала эпохи (то есть 00:00:00 1 января 1970 по Гринвичу). Точность 1/HZ секунд.
▪ CLOCK_MONOTONIC: время непрерывной работы ОС, доступное всем процессам. В Линукс оно измеряются в секундах и наносекундах после загрузки ОС. Точность 1/HZ с. Время в этих часах не может быть изменено каким-либо процессом, по этому рек Знакомимся с virtualenv (Перевод)
Виртуальное окружение может быть очень полезно для тестирования программ. Ian Bicking создал проект virtualenv, который и является инструментом для создания изолированного окружения Python. Вы можете использовать эти окружения для проверки новых версий ваших программ, новых версий пакетов, которые Вы используете или просто в качестве песочницы для новых пакетов. Кроме того, Вы можете использовать virtualenv в качестве рабочего места в случаях, если Вы не можете копировать файлы в site-packages по какой-либо причине. Когда Вы создаёте виртуальное окружение при помощи virtualenv, он создаёт папку и копирует Python в неё с папкой site-packages и несколькими другими. Кроме того устанавливается pip. Пока активно ваше виртуальное окружение оно используется как обычный Python. Когда же Вам оно перестаёт быть нужным — Вы просто удаляете папку. И всё. Или можете продолжать её использовать для работы.В этой статье мы потратим немного времени для знакомства с virtualenv.Установка
Для начала понадобится установить virtualenv. Вы можете использовать для этого pip или easy_install или просто загрузить файл virtualenv.py с их сайта и просто использовать его. На данный момент предположим, что ваша папка Python находится в системном пути поиска и Вы можете использовать virtualenv в командной строке.Создаём виртуальное окружение
Для создания песочницы выполните следующую команду:
python virtualenv.py FOLDER_NAMEГде FOLDER_NAME — это имя папки, которую Вы будете использовать в качестве песочницы. На моём компьютере Windows 7, я добавил папку C:Python26Scripts в путь поиска так что я могу использовать команду virtualenv.py FOLDER_NAME без слова python. Если Вы не укажете имя папки, то получите в ответ список опций, которые можно передать скрипту. Давайте создадим проект с названием sandbox. Как его использовать? Для начала надо его активировать:На POSIX системах Вам нужно source bin/activate тогда как на Windows Вам нужна команда путь_к_песочницеScriptsactivate. Давайте пройдём через эти шаги. Песочницу создадим на рабочем столе:
C:UsersmdriscollDesktop>virtualenv sandbox
New python executable in sandboxScriptspython.exe
Installing setuptools................done.
Installing pip...................done.
C:UsersmdriscollDesktop>sandboxScriptsactivate
(sandbox) C:UsersmdriscollDesktop>Вы можете заметить что как только Вы активировали ваше виртуальное окружение, Вы увидите в приглашении командной строки префикс с названием папки для вашей песочницы (в нашем случае — “sandbox”). Так Вы можете определить, используется ли песочница или нет. После этого Вы можете использовать pip для установки пакетов в ваше виртуальное окружение. Когда закончите работать просто вызовите команду декативации для того, чтобы выйти из виртуального окружения.Есть несколько флагов, которые Вы можете передать скрипту virtualenv при создании виртуального окружения. Например, можно использовать –system-site-packages для переноса пакетов из установки Python. Если Вы хотите использовать distribute вместо setuptools, можете использовать флаг –distribute.virtualenv так же предоставляет способ просто установить библиотеки, но использовать их при помощи стандартного Python. Согласно документации, для этого Вам надо лишь написать специальный скрипт. Подробнее смотрите тут.Кроме того, есть экспериментальный флаг –relocatable который можно использовать для того, чтобы сделать папку переместимой. Однако, на данный момент, это не работает на Windows.Наконец, есть флаг –extra-search-dir, который можно использовать, чтобы сохранить ваше виртуальное окружение оффлайн. Это позволяет Вам добавить папку в путь поиска, по которому pip или easy_install будет искать пакеты для установки, даже если у Вас нет доступа к интернету.Итог
К этому времени Вы должны уметь сами использовать virtualenv. Есть несколько других проектов, которые теперь могут Вам пригодиться. Есть библиотека Doug Hellman’а virtualenvwrapper, которая облегчает создание, удаление и управление виртуальных окружений. Есть zc.buildout, который похож на virtualenv и является его конкурентом. Я рекомендую посмотреть их и изучить — они могут помочь Вам в вашей работе.Автор: Ishayahu Lastov
Преимущества современных бассейнов
Представьте себе, что после возвращения домой с работы у Вас появляется возможность окунуться и поплавать в бассейне, который располагается прямо в Вашем доме. Попробуйте нарисовать в своем воображении картину безмятежной водной глади, которая переливается и искрится в огнях искусственного освещения. Представьте, как гейзер выбрасывает на поверхность воды со дна мощный поток воздуха, и как приятно будет встать под струи воды или пройти через гидромассажную установку! Согласитесь, это именно то, что нужно для снятия напряжения после тяжелого и изнурительного трудового дня.