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

Автор оригинала: Junwoo HWANG
  • Перевод
Когда я учился в начальном классе старшей школы (с марта по декабрь 2016 года), меня сильно раздражала ситуация, которая сложилась в нашей школьной столовой.

Проблема первая: слишком долгое время ожидания в очереди

Какую проблему я наблюдал? Вот такую:



У раздачи скапливалось очень много учеников и им приходилось выстаивать подолгу (пять-десять минут). Само собой, это распространенная проблема и справедливая схема обслуживания: чем позже придешь, тем позже тебя обслужат. Так что можно было понять, почему приходится ждать.

Проблема вторая: неравные условия для ожидающих

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

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

Особенно плохо нам приходилось в обеденное время. Днем в столовую бросались абсолютно все (учителя, ученики, персонал), поэтому нам, как младшеклассникам, обед никогда не был в радость.

Обычные пути решения проблемы

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

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

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

Эврика – идея создания Системы Мониторинга Столовой

И вдруг, уже в следующем учебном году (2017), я сказал себе: «А что если сделать систему, которая будет в реальном времени показывать длину очереди (то есть выявлять «пробку»)?». Если бы мне бы это удалось, картина сложилась бы такая: ученики младших классов просто кидали бы взгляд на телефон, чтобы получить актуальные данные о текущем уровне загруженности, и делали бы выводы, имеет ли им смысл идти сейчас.

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

Проектирование Системы Мониторинга Столовой


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



Изначальный план системы (сентябрь 2017 года)

Выбор аппаратуры (октябрь 2017 года)



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

Я заказал только пятьдесят мембранных выключателей, плату Wemos D1 mini на базе ESP8266, а также несколько кольцевых зажимов, к которым планировал крепить эмалированные провода.

Создание прототипа и разработка (октябрь 2017)

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

Для ПО, которое я писал на C++, я поставил такие цели:

  1. Работать непрерывно и отсылать данные только в те периоды, когда подают еду (завтрак, обед, ужин, полдник).
  2. Распознавать ситуацию с очередью/пробками в столовой на таких частотах, чтобы данные потом могли использоваться в моделях машинного обучения (скажем, 10 Гц).
  3. Отсылать данные на сервер эффективным способом (размер пакетов должен быть небольшим) и с короткими интервалами.

Для их достижения мне нужно было сделать следующее:

  1. Использовать модуль RTC (Real Time Clock, или часов реального времени), чтобы непрерывно следить за временем и определять сроки, когда в столовой подают еду.
  2. Использовать метод сжатия данных, чтобы прописать состояние щита в одном символе. Рассматривая данные как двоичный пятиразрядный код, я привязал различные значения к символам ASCII, так что они представляли элементы данных.
  3. Использовать ThingSpeak (инструмент IoT для аналитики и построения онлайн-графиков), отправляя HTTP запросы методом POST.

Разумеется, без багов не обошлось. Например, я не знал, что оператор sizeof( ) возвращает для объекта char * значение 4, а не длину строки (потому что это не массив и, соответственно, компилятор не рассчитывает длину) и очень удивлялся, почему мои HTTP запросы содержат только четыре символа из всего URL!

Также я не проставил скобки на этапе #define, и это привело к неожиданным результатам. Ну вот скажем:

#define _A    2 * 5 
int a = _A / 3;

Тут стоило бы ожидать, что А будет равняться 3 (10 / 3 = 3), однако на самом деле оно рассчитывалось иначе: 2 (2 * 5/ 3 = 2).

Наконец, еще один достойный упоминания баг, с которым я имел дело, это Reset на сторожевом таймере. С этой проблемой я промучился очень долго. Как потом выяснилось, я пытался получить доступ к низкоуровневому реестру на чипе ESP8266 неправильным способом (по ошибке прописал значение NULL для указателя на структуру).



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

Аппаратная часть (подножные щиты)

Чтобы щиты оказались в состоянии пережить суровые столовские условия, я выставил для них следующие требования:

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

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

Макет щита я сделал в AutoCAD; размеры – 400 на 400 миллиметров.



Слева дизайн, который пошел в работу. Справа вариант с соединением по типу лего

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





Чтобы подсоединить все переключатели я использовал эмалированные провода – всего их ушло больше 70 метров! В центр каждого щита я поместил мембранный переключатель. Из боковых прорезей наружу высовывались два зажима – слева и справа от переключателя.

Ну а для водонепроницаемости я использовал изоленту. Очень много изоленты.

И все заработало!


Период с пятого ноября по двенадцатое декабря



Фотография системы – здесь видны все пять щитов. Слева размещается электроника (D1-mini / Bluetooth / RTC)

Пятого ноября в восемь утра (время завтрака) система начала собирать актуальные данные об обстановке в столовой. Я глазам своим не мог поверить. Всего каких-то два месяца назад я набрасывал общую схему, сидя дома в пижаме, и вот, пожалуйста, целая система работает без сучка без задоринки… или нет.

Баги с ПО в период тестирования

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

Программа не проверяла наличие доступных точек Wi-Fi при попытке соединить клиента с ThingSpeak API. Чтобы устранить ошибку я добавил проверку доступности Wi-Fi дополнительным шагом.

В функции setup я постоянно вызывал “WiFi.begin”, пока не появлялось соединение. Позже я узнал, что соединение устанавливает прошивка ESP8266, а функция begin используется только при настройке Wi-Fi. Я исправил положение тем, что стал вызывать функцию всего один раз, в ходе настройки.

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

Ода сторожевому таймеру

А, и еще вдогонку о той проблеме со сторожевым таймером – я решил ее именно на стадии тестирования в «полевых» условиях. Я без преувеличений только об этом и думал в течение четырех дней. Каждую перемену (продолжительностью десять минут) я несся в столовую, чтобы только опробовать новую версию кода. А когда раздача открывалась, я просиживал на полу битый час, пытаясь выловить баг. О еде я и не думал! Спасибо за все хорошее, сторожевой таймер ESP8266!

Как я разобрался с WDT



Фрагмент кода, над которым я бился

Я нашел программу, вернее, расширение для Arduino, которое анализирует структуру данных ПО, когда происходит Wdt-reset, обращаясь к ELF-файлу скомпилированного кода (корреляции между функциями и указателями). Когда это было проделано, оказалось, что устранить ошибку можно следующим образом:



Вот черт! Ну кто же знал, что исправлять баги в системе, работающей в режиме реального времени, настолько сложно! Тем не менее, баг я убрал, и это оказался тупой баг. По неопытности я написал цикл while, в котором происходил выход за границы массива. Уф! (index++ и ++index – две большие разницы).



Проблемы с аппаратной частью на стадии тестирования

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



Седьмого ноября во время обеда переключатель на третьем щите заело

Выше я привел скриншот онлайн-графика с сайта ThingSpeak. Как вы видите, около 12:25 произошло нечто такое, после чего щит номер три вышел из строя. В итоге, длина очереди определялась как 3 (значение равно 3 * 100), даже когда на деле она не доходила до третьего щита. Починка заключалась в том, что я добавил побольше подкладки (да-да, изоленты), чтобы переключателю было просторнее.

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

Распространение информации о системе по школе

Как уже упоминалось, я пользовался ThingSpeak API, который визуализирует данные на сайте в виде графиков, что очень удобно. В общем, я, по сути, просто скинул ссылку на свой график в группу школы на Facebook (полчаса искал этот пост и не нашел – очень странно). Но зато я нашел пост на my Band, школьном сообществе, от пятого ноября 2017 года:





Реакция была бурной!

Я разместил эти посты, чтобы разжечь интерес к своему проекту. Однако даже просто разглядывать их само по себе довольно занятно. Скажем, здесь хорошо видно, что число людей резко подскочило в 6:02 и практически упало до нуля к 6:10.



Выше я прикрепил пару графиков, которые относятся ко времени обеда и полдника. Интересно отметить, что пик загруженности в обеденное время почти всегда приходился на 12:25 (очередь доходила до пятого щита). А для полдника вообще нехарактерно большое скопление народа (очередь максимум в один щит длиной).

Знаете, что забавно? Эта система до сих пор живая (https://thingspeak.com/channels/346781)! Я зашел в аккаунт, который использовал раньше и увидел вот что:



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

Как я получил за свой проект первый приз от Министерства образования Кореи


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

Однако наш школьный диетолог, мисс О, с которой я очень сблизился, пока планировал и разрабатывал свой проект, как-то раз спросила меня, знаю ли я о конкурсе на идеи для столовой. Тогда я подумал, что это какая-то странная затея – меряться идеями для столовой. Но я прочитал информационный буклет и узнал, что проект нужно подать до 24 ноября! Ну и ну. Я побыстрее довел до ума концепцию, данные и графики и отправил заявку.

Изменения исходной идеи для конкурса

Кстати, система, которую я в итоге предложил, немного отличалась от уже реализованной. По сути, я приспособил свой изначальный метод (измерение длины очереди в реальном времени) для значительно более крупных корейских школ. Для сравнения: в нашей школе триста учеников, а в некоторых других столько людей учится только в одном классе! Мне нужно было понять, как масштабировать систему.

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

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

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

Сообщение о том, что я выиграл первый приз!

Если вкратце, меня пригласили приехать и представить свой проект перед правительственными работниками. Так что я напряг все свои таланты в сфере Power Point, приехал и представил!



Начало презентации (крайний слева — министр)

Это был интересный опыт – просто чего-то там придумал для столовской проблемы, и вот каким-то образом оказался в победителях конкурса. Даже стоя на сцене, я все думал: «Хмм, а что я тут вообще делаю?». Но вообще этот проект принес мне большую пользу – я многое узнал о разработке встраиваемых систем и внедрении проектов в реальную жизнь. Ну и приз получил, конечно.

Заключение


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

Это заставило меня задуматься о причинах, которые побуждают меня браться за проекты. Зачем я начинаю работу – чтобы «выиграть» или чтобы решить реально существующую в окружающем мире проблему? Если в вашем случае действует второй мотив, я изо всех сил призываю вас не бросать проект. С таким подходом к делу вы можете встретить на своем пути неожиданные возможности и не будете ощущать давления от потребности обязательно победить – вашим главным мотиватором станете увлеченность своим делом.

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

Каждый раз, вспоминая об этом опыте, я даже вроде как собой горжусь. Не могу объяснить почему, но процесс реализации проекта попросту приносил мне большое удовольствие, а приз стал дополнительным бонусом. К тому же, мне было приятно, что я сумел решить для одноклассников проблему, которая портила им жизнь каждый день. Один раз ко мне подошел один из учеников и сказал: «С твоей системой очень удобно». Я был на седьмом небе!
Думаю, даже без всяких наград я бы за одно это испытывал гордость за свою разработку. Может, это помощь другим принесла мне такое удовлетворение… в общем, люблю проекты.

Чего я надеялся добиться этой статьей

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

Также это может открыть перед вами пути, которых вы совсем не ожидали – так случилось со мной. Так что прошу вас, делайте то, что вам нравится, и оставляйте свой след в мире! Эхо от одного-единственного голоса может потрясти весь мир, так что верьте в себя.

Вот несколько ссылок, имеющих отношение к проекту:

Цифровые Экосистемы
Переводим бизнес в цифру

Комментарии 48

    +5
    [off]
    Мы в очереди первыми стояли, а те кто сзади нас уже едят. ()В.Высоцкий.
    [/off]
      +7

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

        +2
        Азиатская культура значительно отличается от привычной нам. Возможно, у них это считается нормой.
          –1
          Своеобразная справедливость тут тоже есть, отложенная во времени. Те, кто вчера были младшими классами завтра станут старшими, а некоторые даже учителями.
            +8
            И будут устраивать ту же дедовщину, потому что так воспитаны. Жертвами будут новоиспеченные школьники, который на момент свершения этой дичи ни в чем не виноваты. Сомнительная справедливость.
              –5
              Т.е. Вы утверждаете, что:
              а) Старших не нужно уважать
              б) У взрослых и опытных особей должен быть равный приоритет с молодыми и неопытными
              </Сарказм ли?>
                +6
                Старших не нужно уважать

                А за что их уважать?

                У взрослых и опытных особей должен быть равный приоритет с молодыми и неопытными

                Ну да.

                Мы же не с стае волков живем.
                  0
                  А за что их уважать?

                  Хотя бы за то, что ты и твоего года выпуска пользуются тем, что «старшие» создали. Вас же (следующее поколение) не на отдельный пустой астероид рожали, да и в поле/лесу вас не оставили. Вот если тебя родили и бросили в поле и ты случайно сумел выжить и зарегистрироваться на хабре — тогда, разумеется, можешь никого не уважать.
                  Но молодых смущает то, что нужно уважать всех подряд кто чуть старше, но
                  Мы же не с стае волков живем.

                  А так да, всегда был конфликт поколений, старшие считали что их мало уважают, младшие считали, что уважение требует каких либо заслуг перед ними же. Бессмысленная трата времени и ресурсов на подобные споры. У меня 3 кошки почти без слов, за одну неделю быстро построили иерархию и с ней очень комфортно живут все довольны. Рассказать как?
                    0
                    . У меня 3 кошки почти без слов, за одну неделю быстро построили иерархию и с ней очень комфортно живут все довольны. Рассказать как?
                    Расскажите и сообщите где вы в этой иерархии находитесь.
                +3
                Для них это не дедовщина. Это то, как живет все корейское общество. Такие традиции и такой уклад жизни.
                  +1
                  Для них это не дедовщина.

                  Если что-то выглядит как утка, плавает, как утка и крякает как утка, то это утка. Даже если кто-то утверждает, что это лосось.

                0

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

                  0
                  А это время куда-то ушло?..
                    0

                    Теперь же на год призывают вроде.

                      0
                      А какая разница? Некоторым личностям и недели хватает, чтобы дедовщину устроить.
                +2

                Если у них это норма и одобряется обществом, значит они, с моей точки зрения, еще дикари, отставшие в социальном плане от европейской цивилизации лет на 50-70.

                  +1
                  Если у них это норма и одобряется обществом, значит они, с моей точки зрения, еще дикари, отставшие в социальном плане от европейской цивилизации лет на 50-70.


                  Я не уверен, что 50-70 лет назад в европейском обществ было что-то подобное. Точнее даже я знаю, что такого не было.

                  Думаю, со временем корейцы сами как-нибудь разберутся, насколько это дико и отстало. Ну или не разберутся. В любом случае, это их личное дело.
                    0
                    Я не уверен, что 50-70 лет назад в европейском обществ было что-то подобное.

                    Социал-дарвинизм то? Цвёл и пах.

                    –1

                    Жёсткая иерархичность общества по возрасту — не отставание, а просто другой вариант развития. Для общества в целом это даёт как плюсы, так и минусы. У европейцев такого не было ни 50, ни 500 лет назад. А вот традиция называть всех непохожих на тебя дикарями свойственна как Европе, тик и Азии.

                  +1
                  «доедать остывшие остатки за остальными» в течении 20 минут ожидания…

                  тут скорее что-то не так с самой столовой.
                    +3
                    Я общался с «американизированными» корейцами. По их словам это не «сильный дискриминирует слабого». Это принятое в корейском обществе уважение старших со стороны младших. Нам это сложно представить, но там даже в языке фразы грамматически строятся по разному, в зависимости от того, с младшим ты разговариваешь, или со старшим.

                    Я к тому, что бессмысленно пытаться распространять какие-то моральные принципы одного общества на другое.
                      +1

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


                      Я к тому, что бессмысленно пытаться распространять какие-то моральные принципы одного общества на другое.

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

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

                        В русском языке тоже зачастую к старшим принято обращаться на «вы», а к ровесникам или к тем, кто младше — на «ты». С другой стороны, это не строгое правило и оно часто не соблюдается, в отличие от, как я понимаю, (южно?)корейского языка.
                        0
                        Это не та ситуация, когда «слабый угнетает сильного», а просто вопрос возраста. Таков менталитет. Если видишь бабушку в общественном транспорте — ты обязан уступить ей место, и уж точно не потому, что она сильнее.
                          +1

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

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

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

                          +3
                          А можно было поставить камеру, которая транслировала бы видео в сеть, но тогда бы не было проекта :) А реализованный школьником с нуля до рабочего решения проект заслуживает внимания и похвалы, без шуток.
                            0
                            Камера отлично даст данные в реальном времени, но их проблематично хранить и анализировать.
                              0
                              скорее всего не тот бюджет. И вандалоустойчивость.
                              да и лишнего гемора при уборке пола надо добавить :)
                                0
                                У нас этим сразу начали бы играть в футбол школьники, а остатки снесла бы уборщица.
                                Так что да — камеры.
                                0
                                Светодиоды и отражатели.
                                0
                                И что в итоге, машинное обучение пригодилось?
                                Предсказывает пробки?
                                  0

                                  Сама идея защиты карапузов от "дедовщины" (и даже со стороны учителей) достойна уважения и рассмотрения через различные реализации.
                                  Парень продемонстрировал систему позволяющую малышам подстраиваться под ситуацию (стратегия избегания проблем). Технически решается оповещением о размере очереди: датчиками, камерой — это уже детали реализации.
                                  Чисто механическое решение — это огражденный коридор для очереди, емкость которого заведомо больше очереди. Человек пытающийся вклиниться должен будет либо проталкиваться по коридору, либо преодолевать ограждение сбоку, что и заметно и иногда просто невозможно.
                                  Электронный помощник. В некоторых школах есть электронные пропуска. Такой же коридор, или даже без него, на входе в зал или в начале коридора считыватель карт. Отметившись получаешь номер в очереди. Если стоишь в ней честно, твой номер подойдет к раздаче вовремя, за человеком, который перед тобой. У раздачи еще раз отмечаешься. Одновременно фиксируются все нарушения. Раздача работает независимо от контроля (можно взять без очереди, но отметиться обязательно). Нарушение после, если будут недовольные, должно быть обосновано.


                                  А сама задача очень интересная для генерации идей самими же школьниками для себя же.

                                    +1

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

                                  • НЛО прилетело и опубликовало эту надпись здесь
                                      0
                                      А как же очередь к микроволновке?
                                        +1
                                        Хороший вариант, но лично меня смущает упоминание о том, что есть там не только обед, а еще и завтрак с ужином. А так же смущает оговорка о том, что покидать территорию школы можно только по выходным.
                                        +4
                                        Самая большая проблема так и осталась нерешенной:
                                        Увидели что очередь совсем маленькая, пришли, подождали 2 минуты, в этот момент пришла толпа старшеклассников и учителей и задвинули их на километр назад.
                                          0
                                          да я вообще читая думал, что там будет какая то живая авто-очередь из приложений
                                          +2
                                          Немного в сторону, но не понял почему получилось 2:
                                          #define _A 2 * 5 
                                          int a = _A / 3;
                                          Компилятор неканоничный? разбор (2 * 5 / 3) должен идти слева направо по стандарту.
                                            0
                                            Как-то раз «just for fun» писал эмулятор пробок в корпоративной столовой. Время обеда распределил на 4 смены, а юзеров по категориям:
                                            1. Консерваторы — приходят всегда в определённое время (смену).
                                            2. Пофигисты — приходят обедать в случайное время.
                                            3. Самые умные — выбирают обеденную смену по предыдущему опыту — была ли большая очередь или нет (там немного сложная формула).
                                            С учётом реалии, каждый день из категории 2 и 3 выбиралась группа неудачников, которым смена назначалась случайным образом «сверху».
                                            И вроде пропускной способности столовой вполне хватило бы на равномерный проход всех сотрудников, но люди из категорий 2 и 3 регулярно создавали бешеный затык почти при любом процентном соотношении этих категорий.
                                              0
                                              На практике ещё работает производный от 3го вариант.
                                              Поскольку в это время была большая очередь, то «Самые умные» в это время не пойдут, а раз их там не будет, то и очереди тоже :)
                                                0
                                                В эмуляторе это тоже довольно хорошо проскакивало
                                              0
                                              Кроме сомнительного явления «дедовщины» обращает на себя внимание сам факт того, что эксперимент вообще удалось провести. Мне очень-очень кажется, что в любой нашей школе, даже самой физматинфотех-ориентированной, в первый же день от этих девайсов остались бы только обрывки проводов. И никакая протекция школьной администрации ничего бы не изменила (да и ее в принципе быть не могло).
                                                0
                                                Не знаю, как в Корее, но, к примеру, в Японии ты можешь потерять кошелёк с деньгами и совсем не переживать, что останешься без них. Если твоих контактов в кошельке не было, можно прийти в полицию, и там тебе его отдадут (деньги будут на месте).

                                                Оставлять любые вещи в общественном месте (например, сумку перед туалетом) — норм.
                                                0
                                                Другие варианты решения (для столовой):

                                                1. Поставить автоматы для электронного заказа и оплаты, как в ресторана быстрого обслуживания. Позволит сократить время обслуживания одного человека в 2+ раза, а очередь ещё больше. Также увеличит удобство очереди — можно не стоять, а сидеть.

                                                2. Сделать возможность самому набрать блюда (расставленные заранее) и оплатить их в конце. Аналогично, сократит время обслуживания до одной только оплаты. Касс для оплаты должно быть несколько.

                                                3. Возможно расширить до электронной оплаты, тогда очереди пропадут вообще (блюда должны быть расставлены, чтобы не требовать очереди). Варианты сделать:
                                                1) Ученик должен сдать тарелки в конце. По ним будет автоматически подсчитана стоимость. Такая система действует в суши в Японии.
                                                2) Ученик при выборе блюда приложит какую-либо карту, чтобы уведомить, что он взял это блюдо. Рассчитывается на честность (в Японии бы прокатило, в Корее не знаю). Попытка считерить чревата проблемами — не только выгоном из школы, но и репутационными (если об этом кто-то узнает, вряд ли захочет общаться (там другая культура)).
                                                3) Тоже самое, но при прикладывании поднимается створка, блюдо выкатывается на конвейере, створка опускается. Таким образом, считерить нельзя физически (попытки будут быстро замечены и не приведут ни к чему хорошему).
                                                  0
                                                  Если бы им решения нужны были бы, они бы сами напридумывали. Сдаётся мне что так было сделано для воспитания в культурных традициях, а не для того чтобы удобно было.

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

                                                Самое читаемое