Извлечение дисков из живого рейда на adaptec 6805

Задача:

Извлечь 2 харда из raid-10 на логическом уровне (т.е., не извлекая из сервака физически), чтобы собрать из них raid-1, перенести туда систему и подготовить всё что можно к ребуту, таким образом минимизировав время и количество даунтаймов.

В чем сложность?

В 5 серии адаптеков вопрос решался двумя командами:
1. Зафейлили диск: arcconf setstate 1 device 0 0 ddd
2. Перевели в статус Ready: arcconf setstate 1 device 0 0 rdy
3. Делаем с дисками, что хотим.

В 6 серии так не прокатывает. Вне зависимости от того, включен failover или нет, диски возвращаются в состояние Present, и с ними ничего нельзя поделать (думаю, ясно, что сам рейд будет Degraded, пока не пройдет Rebuild).
Попытка обратиться в официальную тех.поддержку была неудачна — ответ я получил, но возникло ощущение, что я использую домашнюю железку, а не сервер, который нельзя просто так дергать туда-сюда:

После того как вы провели команду «arcconf setstate 1 device 0 0 ddd», система была перезагружена? Если нет, то перезагрузите и инициализируете оба диска в БИОСе контроллера. Там сразу же можно и создать RAID-1.

Чтобы стереть мете-данные на диске под Arcconf диск можно инициализировать с командой «arcconf task». Например: arcconf task start 1 device 0 0 initialize

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

Однако, если Вы выбрасываете из RAID-10 два диска, то он остаётся в статусе «Degraded». При ошибке одного из оставшийся в массиве дисков может рухнуть весь массив. Поэтому, возможно, просто сделайте бэкап всех данных, потом просто удалите массив RAID-10 и создавайте два отдельных RAID-1.

Я подумал и решил вопрос очередью экспериментов, после чего смог выполнить поставленную задачу.

Описание:

Имеем logical device с raid-10 на 4 дисках

 Logical device segment information    --------------------------------------------------------    Group 0, Segment 0                       : Present (0,0)             J0VV3R8N    Group 0, Segment 1                       : Present (0,1)             J0VV3ZBN    Group 1, Segment 0                       : Present (0,2)             J0VV3YEN    Group 1, Segment 1                       : Present (0,3)             J0VX2WXN 

Необходимо вытащить из него 2 харда (по одному из разных групп) и составить raid-1 из них

Решение:

1. Убеждаемся, что failover включен

arcconf failover 1 on 

2. Фейлим 2 диска из разных групп

arcconf setstate 1 device 0 0 ddd arcconf setstate 1 device 0 2 ddd 

Диски станут Inconsistent в logicaldevice и Failed в physicaldevice

3. Переводим эти диски в статус ready

arcconf setstate 1 device 0 0 rdy arcconf setstate 1 device 0 2 rdy 

Диски станут Missing в logicaldevice и Ready в physicaldevice

4. Ждем до тех пор, пока failover не запустит rebuilding

Group 0, Segment 0                       : Rebuilding (0,0)             J0VV3R8N 

Ребилдиться они будут по очереди, т.ч., как только видим у одного из них состояние Rebuilding, делаем пункт 5 сразу, затем для следующего.

5. Фейлим и очень быстро переходим к пункту 6

arcconf setstate 1 device 0 0 ddd arcconf setstate 1 device 0 2 ddd 

Диски станут Inconsistent в logicaldevice и Failed в physicaldevice

6. Переводим диски в статус Ready и очень быстро переходим к пункту 7

arcconf setstate 1 device 0 0 rdy arcconf setstate 1 device 0 2 rdy 

Диски станут Missing в logicaldevice и Ready в physicaldevice

7. Отключаем failover и очень быстро переходим к пункту 8

arcconf failover 1 off 

8. Инициализируем диски

arcconf task  start 1 device 0 0 initialize arcconf task  start 1 device 0 2 initialize 

Ура, можем состряпать из них raid-1

arcconf CREATE 1 LOGICALDRIVE MAX 1 0 0 0 2 

У читателя, возможно, возникнут вопросы, для чего мы провели 2 раза одни и те же действия и почему сразу не отключили failover.
Повторюсь, 6 серия адаптеков не даёт возможности спокойно вывести диски из рейда при отключенном failover после команды:
arcconf setstate 1 device 0 0 rdy мы бы получили статус диска в logicaldrive Present, а статус рейда Degraded, при этом диск в physicaldrive был бы в статусе Online, а не Ready.
И почему же начиная с пункта 5 мы все делаем быстро? Все просто, контроллер через несколько секунд успевает опомниться и сменить статус
дисков, поэтому нужно успеть выполнить команды до того, как он это сделает.

Найти готовое решение не смог, пришлось изобретать свое, надеюсь, кому-то будет полезно — не один же я юзаю 6 серию адаптеков.

ссылка на оригинал статьи http://habrahabr.ru/post/214187/

Автопровижининг Cisco SPA504g и Asterisk. Часть 1. Сборка и настройка Asterisk+MySQL

Исходные данные

Итак, у нас есть желание развернуть офисную телефонию на Астериске.
Отличное желание, прекрасное open-source решение.

OS: Centos 6.5 64-bit
PBX Version: Последний стабильный релиз из SVN (в данный момент это Asterisk SVN-branch-12-r409131)
Телефоны: Тут выбор пал на Cisco SPA504G (для SMB-сегмента рынка)

Подготовка ОС

Так как собирать будем из исходника — подготовим ОС, скачав необходимый набор ПО для компиляции.

[root@asterisk ~]# yum update -y [root@asterisk ~]# yum groupinstall -y "Development Tools"  

Теперь скачаем исходники Астериска и необходимых для его компиляции DAHDI, LibPRI и libjansson

[root@asterisk ~]# cd /usr/local/src/ [root@asterisk src]# svn checkout http://svn.asterisk.org/svn/asterisk/branches/12 asterisk [root@asterisk src]# git clone git://git.asterisk.org/dahdi/linux dahdi-linux [root@asterisk src]# git clone git://git.asterisk.org/dahdi/tools dahdi-tools [root@asterisk src]# svn checkout http://svn.asterisk.org/svn/libpri/branches/1.4 libpri [root@asterisk src]# wget http://www.digip.org/jansson/releases/jansson-2.5.tar.gz 

Установим пакеты, необходимые для сборки DAHDI, LibPRI и самого Asterisk

[root@asterisk ~]# yum install -y wget ncurses-devel openssl-devel newt-devel libxml2-devel sqlite-devel libuuid-devel unixODBC-devel libcurl-devel libogg-devel libvorbis-devel speex-devel spandsp-devel freetds-devel net-snmp-devel iksemel-devel corosynclib-devel popt-devel libtool-ltdl-devel lua-devel libsqlite3x-devel radiusclient-ng-devel portaudio-devel postgresql-devel libresample-devel neon-devel libical-devel openldap-devel gmime22-devel sqlite2-devel mysql-devel bluez-libs-devel jack-audio-connection-kit-devel gsm-devel libedit-devel jansson-devel libsrtp-devel pjproject-devel libxslt-devel 

Список этих пакетов можно получить, выполнив скрипт, лежащий в директории contrib/scripts в исходниках Астериска

[root@asterisk ~]# /usr/local/src/asterisk/contrib/scripts/install_prereq test 
Сборка DAHDI и LibPRI
[root@asterisk src]# cd dahdi-linux [root@asterisk dahdi-linux]# make && make install 

Если в ответ на команду make получаете ошибку:

You do not appear to have the sources for the 2.X.XX-XXX.el6.x86_64 kernel installed. 

Значит ОС подтянула свежее ядро с заголовочными файлами и хочет в него загрузиться.
Перезагрузите сервер.

Продолжаем сборку и установку

[root@asterisk dahdi-linux]# cd ../dahdi-tools/ [root@asterisk dahdi-tools]# ./configure [root@asterisk dahdi-tools]# make && make install && make config 

С DAHDI закончили. Переходим к LibPRI

[root@asterisk dahdi-tools]# cd ../libpri/ [root@asterisk libpri]# make && make install 

Теперь очередь libjansson, которой нет в репозитариях CentOS

[root@asterisk src]# tar -zxf jansson-2.5.tar.gz [root@asterisk src]# cd jansson-2.5 [root@asterisk jansson-2.5]# ./configure --prefix=/usr/ && make clean && make && make install && ldconfig 

Сборка Asterisk

[root@asterisk jansson-2.5]# cd ../asterisk [root@asterisk asterisk]# ./configure --libdir=/usr/lib64 [root@asterisk asterisk]# make menuselect 

Необходимо включить Add-Ons -> res_config_mysql, чтобы работал Asterisk Realtime Configuration
Далее — Save & Exit

[root@asterisk asterisk]# make && make install 

И идём курить/пить кофе минут на 3-5-10, в зависимости от мощности сервера, после чего включаем его автозапуск

[root@asterisk asterisk]# chkconfig asterisk on [root@asterisk asterisk]# service asterisk start 

Установка MySQL и подготовка БД

[root@asterisk asterisk]# yum install -y mysql-server [root@asterisk asterisk]# chkconfig mysqld on [root@asterisk asterisk]# service mysqld start [root@asterisk asterisk]# /usr/bin/mysql_secure_installation [root@asterisk asterisk]# mysql -u root -p Enter password: 

Устанавливаем MySQL, добавляем его автостарт при запуске, устанавливаем пароль root’а, удаляем тестовую БД, подключаемся к серверу от имени root.

mysql> CREATE DATABASE `asterisk_db` CHARACTER SET = 'utf8' COLLATE = 'utf8_general_ci'; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON asteriskdb.* TO 'asterisk'@'localhost' IDENTIFIED BY 'mypass' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES; 

Теперь создадим таблицу для хранения SIP пиров

CREATE TABLE `tbl_sip_conf` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `name` varchar(80) NOT NULL DEFAULT '',   `host` varchar(31) NOT NULL DEFAULT 'dynamic',   `nat` varchar(5) NOT NULL DEFAULT 'no',   `type` enum('user','peer','friend') NOT NULL DEFAULT 'friend',   `accountcode` varchar(20) DEFAULT NULL,   `amaflags` varchar(13) DEFAULT NULL,   `call-limit` smallint(5) unsigned DEFAULT NULL,   `callgroup` varchar(10) DEFAULT NULL,   `callerid` varchar(80) DEFAULT NULL,   `cancallforward` char(3) DEFAULT 'yes',   `canreinvite` char(3) DEFAULT 'yes',   `context` varchar(80) DEFAULT 'default',   `defaultip` varchar(15) DEFAULT '0.0.0.0',   `defaultuser` varchar(80) NOT NULL DEFAULT '',   `dtmfmode` varchar(7) DEFAULT NULL,   `fromuser` varchar(80) DEFAULT NULL,   `fromdomain` varchar(80) DEFAULT NULL,   `insecure` varchar(4) DEFAULT NULL,   `language` char(2) DEFAULT 'ru',   `macaddress` varchar(20) DEFAULT NULL,   `mailbox` varchar(50) DEFAULT NULL,   `md5secret` varchar(80) DEFAULT NULL,   `deny` varchar(95) DEFAULT NULL,   `permit` varchar(95) DEFAULT NULL,   `mask` varchar(95) DEFAULT NULL,   `musiconhold` varchar(100) DEFAULT NULL,   `pickupgroup` varchar(10) DEFAULT NULL,   `qualify` char(3) DEFAULT NULL,   `regexten` varchar(80) DEFAULT NULL,   `restrictcid` char(3) DEFAULT NULL,   `rtptimeout` char(3) DEFAULT NULL,   `rtpholdtimeout` char(3) DEFAULT NULL,   `secret` varchar(80) DEFAULT NULL,   `serial` varchar(20) DEFAULT NULL,   `setvar` varchar(100) DEFAULT NULL,   `disallow` varchar(100) DEFAULT 'all',   `allow` varchar(100) DEFAULT 'ulaw;alaw;gsm',   `fullcontact` varchar(80) NOT NULL DEFAULT '',   `ipaddr` varchar(45) DEFAULT NULL,   `port` smallint(5) unsigned NOT NULL DEFAULT '0',   `regserver` varchar(100) DEFAULT NULL,   `regseconds` int(11) NOT NULL DEFAULT '0',   `lastms` int(11) NOT NULL DEFAULT '0',   `defaultuser` varchar(80) NOT NULL DEFAULT '',   `subscribecontext` varchar(80) DEFAULT NULL,   `callbackextension` varchar(50) DEFAULT NULL,   `useragent` varchar(20) DEFAULT NULL,   PRIMARY KEY (`id`),   UNIQUE KEY `name` (`name`),   KEY `name_2` (`name`) ) DEFAULT CHARSET=utf8; 

Для работы астериска с созданной БД используем минимальный набор конфигов отсюда

В следующей части мануала будет установка Apache+PHP, подготовка скриптов для провиженинга телефонов, настройка DHCP, и т.д.

ссылка на оригинал статьи http://habrahabr.ru/post/214181/

ArnoldC: язык программирования из цитат Шварценеггера

image

Доброго времени суток, Хабр. Думаю многие люди, хоть каким-то боком относящиеся к программированию хоть раз в жизни слышали об эзотерических языках программирования. Тот же Brainfuck.

 ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++  .>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.  ------.--------.>+.>. 

От одного только вида бросает в дрожь, но кто же мог подумать, что найдется человек, который сможет создать язык программирования из цитат известного голливудского актера.
Финский программист Лори Хартикка (Lauri Hartikka) опубликовал на Github описание и компилятор языка программирования ArnoldC. В качестве команд в ArnoldC используются цитаты героев Арнольда Шварценеггера.

Пример кода

BECAUSE I'M GOING TO SAY PLEASE a TALK TO THE HAND "a is true" BULLSHIT TALK TO THE HAND "a is not true" YOU HAVE NO RESPECT FOR LOGIC 

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

Сложение

GET UP operand 

Вычитание

GET DOWN operand 

Умножение

YOU'RE FIRED operand 

Деление

HE HAD TO SPLIT operand 

image

Основные операторы (с ссылками на фразу)

False I LIED

True NO PROBLEMO

If BECAUSE I’M GOING TO SAY PLEASE

Else BULLSHIT

EndIf YOU HAVE NO RESPECT FOR LOGIC

While STICK AROUND

EndWhile CHILL

PlusOperator GET UP

MinusOperator GET DOWN

MultiplicationOperator YOU’RE FIRED

DivisionOperator HE HAD TO SPLIT

EqualTo YOU ARE NOT YOU YOU ARE ME

GreaterThan LET OFF SOME STEAM BENNET

Or CONSIDER THAT A DIVORCE

And KNOCK KNOCK

MethodArguments I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE

Return I’LL BE BACK

EndMethodDeclaration HASTA LA VISTA, BABY

CallMethod DO IT NOW

AssignVariableFromMethodCall GET YOUR ASS TO MARS

EndMain YOU HAVE BEEN TERMINATED

Print TALK TO THE HAND

AssignVariable GET TO THE CHOPPER

SetValue HERE IS MY INVITATION

EndAssignVariable ENOUGH TALK

ParseError WHAT THE FUCK DID I DO WRONG

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

a = (b || c) && d

GET TO THE CHOPPER a HERE IS MY INVITATION b CONSIDER THAT A DIVORCE c KNOCK KNOCK d ENOUGH TALK 
Вот пример посложнее.

IT'S SHOWTIME HEY CHRISTMAS TREE result1 YOU SET US UP 0 HEY CHRISTMAS TREE result2 YOU SET US UP 0 HEY CHRISTMAS TREE result3 YOU SET US UP 0 HEY CHRISTMAS TREE result4 YOU SET US UP 0 GET YOUR ASS TO MARS result1 DO IT NOW modulo 9 4 TALK TO THE HAND result1 GET YOUR ASS TO MARS result2 DO IT NOW modulo 4795 87 TALK TO THE HAND result2 GET YOUR ASS TO MARS result3 DO IT NOW modulo 3978 221 TALK TO THE HAND result3 GET YOUR ASS TO MARS result4 DO IT NOW modulo 5559 345 TALK TO THE HAND result4 YOU HAVE BEEN TERMINATED  LISTEN TO ME VERY CAREFULLY modulo I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE dividend I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE divisor GIVE THESE PEOPLE AIR HEY CHRISTMAS TREE quotient YOU SET US UP 0 HEY CHRISTMAS TREE remainder YOU SET US UP 0 HEY CHRISTMAS TREE product YOU SET US UP 0 GET TO THE CHOPPER quotient HERE IS MY INVITATION dividend HE HAD TO SPLIT divisor ENOUGH TALK GET TO THE CHOPPER product HERE IS MY INVITATION divisor YOU'RE FIRED quotient ENOUGH TALK GET TO THE CHOPPER remainder HERE IS MY INVITATION dividend GET DOWN product ENOUGH TALK I'LL BE BACK remainder HASTA LA VISTA, BABY 

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

HelloWorld.arnoldc

IT'S SHOWTIME TALK TO THE HAND "hello world" YOU HAVE BEEN TERMINATED 

Подробнее вы можете ознакомится с этим языком на странице автора.

ссылка на оригинал статьи http://habrahabr.ru/post/214189/

Zillion приключений (миниобзор)

Я уже писал о том как легко разработать собственную игру, используя Zillions of Games, но я не упомянул об одном важном следствии этого факта. Набор приложений для ZoG не ограничивается 375 играми и головоломками, входящими в комплект дистрибутива. Игр, разработанных под Zillions of Games действительно много. Десятки энтузиастов со всего мира пополняют этот список, используя как ZRF, так и native-расширения. На сегодняшний день, его размер уже перевалил за 2000.

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

Безусловно, начать следует с игры, считающейся прародительницей всех современных разновидностей шахмат. В эту игру можно играть вчетвером, используя, для выполнения ходов, игральные кости. Любопытно, что уже в столь древней игре имеется фигура «Конь» ничем не отличающаяся от аналогичной фигуры в современных шахматах.
Разумеется, Шатрандж, считающийся прямым потомком Чатуранга, также доступен в нескольких вариантах. Из числа прочих «историко-национальных» разновидностей следует упомянуть таиландский Макрук и монгольский Хиашатар. Последний мало чем отличается от современных Шахмат.

Различные разновидности китайских и корейских шахмат стоит выделить в отдельное семейство. Ходы фигур вновь похожи на правила традиционных шахмат, но имеются и важные отличия. Так, например, пешки ходят и едят только вперед, взятий по диагонали нет. Конь не может «перепрыгивать» фигуры, а Генерал (аналог Короля в Шахматах) не может покидать свой «дворец». Очень интересной фигурой является Пушка. Ходит она как Колесница (аналог Ладьи в Шахматах), но брать фигуры может только при условии, что между исходной и конечной точкой хода находится еще одна фигура (своя или чужая).
ZoG может предложить нам традиционные варианты как Сянцы, так и Чанги. Также имеется вариант с дополнительной фигурой «Дракона», мини варианты, вариант на 3d и гексагональной досках. Довольно интересна игра традиционным набором фигур, против корейского. Большую часть игры «корейская» сторона имеет некоторый перевес, но в эндшпиле ситуация кардинально меняется.

Вариантов японских Сёги много, хороших и разных. Японцы, пожалуй, оказались самыми изобретательными в деле разработки разнообразных шахматных игр. Важным отличием большинства вариантов Сёги от Шахмат является возможность «сброса» фигур. Снимая фигуру противника с доски, игрок не выводит её из игры окончательно, а сохраняет «в руке». Впоследствии, эта фигура может быть выставлена на любое свободное поле доски (с соблюдением ряда правил) уже под своим «цветом». Эта особенность делает Сёги невероятно динамичной и комбинационной игрой, несмотря на то, что фигуры Сёги слабее их шахматных аналогов.
Разумеется, Сёги не осталась обделенной вниманием сообществом ZoG. Новичкам можно посоветовать набор вариантов игры с различными видами «форы», традиционно предоставляемой более слабому игроку. Также имеются варианты игры на мини-досках. Довольно экзотическими можно считать варианты игры на одномерной доске (следует отметить, что благодаря возможности «сброса» фигур, игра не становится менее интересной). «Исторические» варианты представлены Tori Shogi, Wa Shogi, Chu Shogi и Dai Dai Shogi. Последняя, кстати, не является самым «большим» вариантом игры. Известная разновидность Taikyoku Shogi игралась на доске размером 36×36 клеток. Имеется возможность игры на не-квадратной и трехмерной досках. Cannon Shogi добавляет в игру Пушку из китайских шахмат. Довольно интересна синтетическая игра Chessgi, в которой используется набор фигур традиционных шахмат, но правила дополнены возможностью «сброса» взятых фигур, по аналогии с Сёги.

Весьма многочисленны варианты игры в Шахматы на не-квадратных досках. 3D не является пределом размерности доски, существуют её четырех и пяти-мерный аналоги. Имеются варианты игры на действительно больших досках. Весьма многочисленны варианты с расширенным набором фигур, такие как Alekhine Chess, Capablanca’s Chess и Omega Chess Advanced. Имеются даже шахматы с аэропланами. Очень интересны варианты с изменяющимися фигурами: FlipChess, Fusion Chess и Assimilation Chess. Оригинальны и многочисленны варианты игры на гексагональных досках. Имеются даже шахматы "на троих". Есть игра на доске, повернутой на 45 градусов. LadderChess предлагает сыграть на «лестнице». Fortresses посвящена тонкостям тактики сражений на узком «перешейке» между двумя «крепостями». DarkChess предлагает сыграть «втемную». Очень изящна игра на «звездообразной» доске. Также имеется ряд мини игр шахматными фигурами: Caïssa, Maharadscha, Hunt, Towers, Chad и HexChad.

Отдельного внимания заслуживают игры «по мотивам» различных фантастических произведений. Родоначальником «шахматного» жанра в литературе является, по всей видимости, Эдгар Берроуз, подробно описавший нам "Марсианские шахматы". Само собой, Jetan на сайте ZoG имеется в ассортименте. Имеется даже "Война миров" с участием марсианских шахмат с одной стороны с объединенными силами Земли с другой. Поклонников творчества Джорджа Мартина может порадовать Cyvasse. Мир Dungeons & Dragons также не оставил нас без игры. StarTrek, как ему и полагается, одаривает нас целой плеядой игр. Мы можем почувствовать себя Клингонами, играя в Klin Zha и её трехмерный аналог. Имеется игра с оригинальными фигурами, по мотивам сериала. Знаменитые трехмерные шахматы также присутствуют, но я их, если честно, не понял.

Ряд игр я затрудняюсь отнести к какой-то определенной группе. В первую очередь, это, безусловно, ни на что не похожий Hnefatafl. Имеется реализация Gala, которая, хотя обычно и относится к шахматам, на мой взгляд, имеет с ними мало общего. Различные варианты соединения правил Халма и Шахмат также популярны. Мне очень понравилась Andalusia, показанная на картинке справа. Есть несколько игр, превращающих шахматную доску в настоящий лабиринт. Некоторые игры просто ни на что не похожи. Конечно же множество разновидностей Шашек, Го, Реверси и Рендзю также присутствуют. Ностальгические воспоминания вызывает у меня Hex, описанный в незапамятные времена Мартином Гарднером. Имеется версия этой игры, использующая подключаемый engine и играющая заметно лучше своего честного ZRF-аналога. Для большинства из перечисленного можно найти множество 3D гексагональных и прочих клонов.

ZoG не ограничивается логическими и настольными играми, как можно было бы подумать. Ей есть чем порадовать и казуальщиков. Имеется неплохая реализация всем известного Сапера. FreeCell предлагает нам до боли знакомый пасьянс. Есть множество лабиринтов, с лазерами и без, в том числе и трехмерных. Можно поиграть в "Быки и коровы". Отдельного упоминания заслуживает раздел обучающих приложений. Наряду с всем известной "Жизнью" (включая ее одномерный вариант) и "Муравьем Лэнгтона", здесь можно найти реализации суммирующих и логических машин, а также пару реализаций машины Тьюринга и чего-то для подсчета CRC. Здесь можно найти решатель задач Пентамино. А любителей «ненормального программирования», я уверен, крайне порадует реализация Калькулятора.

В общем, на сайте ZoG есть на что посмотреть. Всех с наступающими выходными!

ссылка на оригинал статьи http://habrahabr.ru/post/214163/

SmartWatch для Васи инженера

В наше время заводы сильно автоматизированы, инновационные станки и методы позволяют облегчить труд человека, но по прежнему возникает много проблем. Сейчас широкое распространение получила технология «умного окружения», а её применение в квартирах/домах людей дало жизнь термину «умный дом». Ну, тут без подбробностей, перейдём к делу.

Применение в производстве (сейчас)

А что если сделать умный завод? Сейчас уже применяют большое количество разнообразных датчиков:

• света;
• температуры и влажности;
• движения;
• дыма;
• присутствия (открытия окон/дверей);
• и другие.

Они себя не плохо зарекомендовали, сэкономив не мало денег государству и нашим миллиардерам.

В настоящие время датчики на заводах работают в автономном режиме и настраиваются на долгое время специальными наладчиками. Мозгом это системы является компьютер, спрятанный подальше от глаз. Большинство систем функционирует на основе шинной технологии, заключающейся в использовании «витой пары», так называемой шины, по которой идут сигналы от одного устройства к другому. Система функционирует при напряжении в 24 V, в результате чего она абсолютно безопасна для «всезнаек» на заводе, а ее установка возможна даже в помещениях с высокой влажностью.

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

Настраивать систему никто не может, следовательно прогресс возможен только при:

• модернизации оборудования;
• повышения качества датчиков;
• время реагирования системы;
• ит.д.

Новая идея

Поэтому следует акцентировать внимание на более важных вещах. Что же ещё такого можно придумать для завода?

Совсем недавно люди заговорили об умных часах, но они ещё не получили широкого распространения из-за того, что не все игроки ещё вышли на рынок. Самый главный законодатель моды: американская компания Apple ещё держит свои разработки в тени. Не зря автор уделяет этой корпорации особое место в статье, можно вспомнить ситуацию с iPad, когда его миру показал Стив Джобс. Именно после презентации iPad в конце января 2010 года и старта продаж первого апреля того же года началось бурное становление новой индустрии – планшетных компьютеров или, как их именуют в народе «планшетники». Можно с полной уверенностью сказать, что именно Apple создала целый рынок планшетов.

Параллельно с умными часами ведутся разработки умных очков. Другая американская корпорация, Google, ведёт разработки и уже начала осуществлять закрытые продажи своих очков – Google Glass. Но в данной статье пойдёт речь о возможности использования умных часов на производстве.

Минусы

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

• часы надо постоянно носить на руке;
• их надо заряжать (в данное время проблема энергопотребления девайсов
ещё не решена);
• привыкать к новому способу управления.

Даже «гики» (продвинутые пользователи) ещё не привыкли к использованию данной инновации, поэтому обычным рядовым рабочим этот прибор может показаться через чур диковинным и даже лишним. Но дальнее его использование принесёт ряд плюсов.

Плюсы и функционал

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

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

2) Если рабочий выходит из помещение (там нет будет его часов), то свет выключается (или освещение становится тусклым), экономя энергию предприятию.

3) Существует немало установок, у которых присутствует ключ, с помощью которого работники блокируют станки, если отлучаются. С применением «умных часов», при выходе рабочего из зоны станка (рабочий часы не снимает, следовательно часы тоже удаляются (по ним и происходит контакт рабочий-часы-установка) из зоны станка, то он переходит в заблокированный режим, как и при повороте обычным ключом, который используется в данное время.

Обычные ключи имеют ряд недостатков:

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

4) Начав повсеместное использование «умных часов», на предприятиях можно
отменить системы пропусков, используя их, как пропуск. Использую NFC модуль, можно
отменить наличный расчёт и безналичный (именно пластиковые карточки), и начать осуществлять приём средств с помощью часов. Применение данного технического решение даст ряд плюсов:

• увеличит пропускную способность столовых;
• отменив пропуски, у работников предприятия появляется новая возможность приобретение товаров в автоматах.
5) Некоторые работники станков с ЧПУ отходят от своих установок во время их работы. Применив RFID-метки в «умных часах», можно будет осуществлять контроль над работником. Ставить камеры и следить – это сложно, даже, если применить распознавание образов. А RFID-метки могут стать дешёвым способом повышения качества производства. Сейчас же использование данной технологии затруднительно, ибо нет места, куда можно вшить/встроить метки:
• в одежу (из-за частой стирки они испортятся);
• создавать целый объект/гаджет – дорого.

6) Используя ОС в качестве базы, а ПО для «управления» предприятиям брать из
«облака», можно разрешать этот девайс работникам уносить домой, для управления своим личным пространством (ПО для которого тоже будет находиться в «облаке», получая временный доступ к аппаратной части гаджета). Тем самым «умные часы» будут единым стандартом для будущего человечества.

7) Получение ПО из «облака» даст следующие преимущества:

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

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


Пример нейронной сети

Нейронная сеть способна оперировать большим количеством начальных
условий – всевозможных данных после диагностики (входные нейроны), после чего на их основе формируются различные предположения о болезнях (скрытые нейроны), и уже на выходе имеем результат – диагноз (выходной нейрон).

9) Часы будут иметь систему оповещений, которая будет способствовать экономии времени руководителям и рабочим, работающих в разных цехах. Так же, можно будет посылать запросу серверу, который будет по RFID-меткам определять местоположение работников, к которым хочется лично обратится.

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


Служба автономной геолокации

10) Для предотвращения несанкционированного доступа к гаджету, он будет
иметь камеру SightWatch, которая будет сканировать сетчатку глаза для предоставления доступа к функционалу при аутентификации пользователя.

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

Техническая реализация

Спецификация:

• базовый модуль (CPU, RAM, GPU).
• NFC-модуль (для осуществления денежных операций);
• Wi-Fi, Bluetooth.
• RFID-метки (для контроля местонахождения рабочего);
• Камера SightWatch для сканирования сетчатки глаза.
• GLONASS-, GPS-модули (геолокация для приложения «Карты»).


Архитектура «Умных часов»

Базовый модуль очень слабый (зато потребляет мало энергии), т.к. все вычисления будут производиться в облаке. Не только ПО находится в «облаке», но и сама работа системы осуществляется там же. На аппарат лишь приходят готовые результаты.
Будущие

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

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

P.S. Много. Писал не для хабра, но начало немного подравил. Просто мысли, ничего большего…

ссылка на оригинал статьи http://habrahabr.ru/post/213795/