Главная Бессонница боль в глазах суставвх

Можно ли туалет определить как место для курения


аденомэктомия в г.омске



Привет, Хабр!
Меня зовут Serg Krivoblotsky и я алкоголик iOS-разработчик. Я работаю в небольшой киевской компании, которая специализируется на iOS разработке и дизайне для нашей платформы. «Люби то, что делаешь и делай то, что любишь», говорят у нас. Делаем. Любим.
Идея ежемесячных хакатонов прижилась в нашем коллективе на отлично. Раз в месяц, на выходных, собирается команда для развлечения в виде написания кода, изучения новых технологий, просто генерации идей, или поедания пиццы. Задачи бывали разные: от виртуального planning poker'а, до распознавания цены на чеке и конвертации в нац. валюту. Главная цель всего этого — не зарелизить готовый продукт, а скорее написать рабочий прототип, a.k.a MVP, как хотите.
Об одной из идей и ее реализации, я бы хотел рассказать подробнее.
Каждый кто находится в co-working'е, или небольшом офисе сталкивался с таком алгоритмом своих действий:
  1. Подходишь к туалету
  2. Упс, занято
  3. Идешь на рабочее место.
  4. Ждешь до тех пор, пока не освободится.

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


Что нам понадобится для этого:
  • Датчик света. (Свет включен == туалет занят)
  • Устройство, способное считывать его показания.
  • Немного кода на PHP и Objective C.

Было куплено:
  1. PCduino
  2. Самый обыкновенный аналоговый датчик освещенности
  3. Множество проводов и несколько резисторов

Ход работы:
Кода писать много не буду, потому что он понятен как hello world. В конце статьи будут ссылки на Github.
  1. Подключаем датчик к pcduino:

    Датчик вернет значения в диапазоне 0..4096.
    Эмпирическим путем было определено, что наша лампочка в туалете в включенном состоянии выдает:
    >3400 — темнота
    <3400 — свет
  2. Поднимаем apache. (предварительно туда ubuntu поставили).
  3. Пишем код на php для считывания показаний (вконце статьи ссылки на GitHub):
    $this->port = (isset($_GET["port"]) && is_numeric($_GET["port"])) ? $_GET["port"]:2; $this->data = exec("cat /proc/adc".$this->port);
  4. Пишем API для мобильных, и не только, клиентов:
    $this->answer(array( 'light_value' => (int)$this->data, 'light_status' => (bool)$l_status, 'light_change' => (int)$l_change, 'sensor_status' => true ));
  5. Опрашиваем по таймеру устройство любым удобным для вас способом:
    OSX:
    NSURL toiletURL = [NSURL URLWithString:kToiletURLString]; NSError requestError = nil; NSData responseData = [NSData dataWithContentsOfURL:toiletURL options:NSDataReadingUncached error:&requestError];
    iOS:
    NSURL url = [NSURL URLWithString:urlString]; NSURLRequest request = [NSURLRequest requestWithURL:url]; //Send NSURLSession dataTask [self sendRequest:request withCompletion:completion];
  6. Постим notification:
    [self.notificationController deliverNotificationWithTitle:kBusyNotificationText andText:notificationText];

… В общем-то это и все что нужно. Позже мы добавили несколько плюшек в виде таймера и возможности отключить всплывающие нотификейшны.
Результат работы:
OSX:
iOS
Исходники хакатона:
OSX:
github.com/Krivoblotsky/iToilet-Mac-OS
iOS
github.com/Krivoblotsky/iToilet
PHP:
github.com/Krivoblotsky/iToilet-PHP
Krivoblotsky

Источник: http://habrahabr.ru/post/216059/


примеры кардиограм при стенокардии реальных пациентов
Панкреонекроз тотальный геморрагический прогноз..
Читать дальше

Классификация заболевания прямой кишки в таблице