Гісторыя карэйскага школьніка, які атрымаў прыз ад міністэрства за сістэму маніторынгу чэргаў

Калі я вучыўся ў пачатковым класе старэйшай школы (з сакавіка па снежань 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, прыехаў і прадставіў!

Гісторыя карэйскага школьніка, які атрымаў прыз ад міністэрства за сістэму маніторынгу чэргаў

Пачатак прэзентацыі (крайні злева – міністр)

Гэта быў цікавы досвед - проста чагосьці там прыдумаў для сталоўскай праблемы, і вось нейкім чынам апынуўся ў пераможцах конкурсу. Нават стоячы на ​​сцэне, я ўсё думаў: "Хмм, а што я тут наогул раблю?". Але наогул гэты праект прынёс мне вялікую карысць - я шмат чаго даведаўся аб распрацоўцы ўбудаваных сістэм і ўкараненні праектаў у рэальнае жыццё. Ну і прыз атрымаў, вядома.

Заключэнне

Тут ёсць нейкая іронія: колькі я ні ўдзельнічаў ва ўсякіх спаборніцтвах і навуковых кірмашах, на якія запісваўся мэтанакіравана, нічога талковага з гэтага не выйшла. А тут магчымасць проста знайшла мяне сама і дала добрыя вынікі.

Гэта прымусіла мяне задумацца аб прычынах, якія падахвочваюць мяне брацца за праекты. Навошта я пачынаю працу - каб "выйграць" або каб вырашыць рэальна існуючую ў навакольным свеце праблему? Калі ў вашым выпадку дзейнічае другі матыў, я з усіх сіл заклікаю вас не кідаць праект. З такім падыходам да справы вы можаце сустрэць на сваім шляху нечаканыя магчымасці і не будзеце адчуваць ціску ад патрэбы абавязкова перамагчы - вашым галоўным матыватарам станеце захопленасць сваёй справай.

І самае галоўнае: калі ў вас атрымаецца рэалізаваць годнае рашэнне, вы адразу зможаце апрабаваць яго ў рэальным свеце. У маім выпадку пляцоўкай стала школа, але па ходзе часу досвед назапашваецца, і хто ведае - можа быць, ваша прыкладанне будзе выкарыстоўваць цэлая краіна ці нават увесь свет.

Кожны раз, успамінаючы аб гэтым досведзе, я нават накшталт як сабой ганаруся. Не магу растлумачыць чаму, але працэс рэалізацыі праекту папросту прыносіў мне вялікае задавальненне, а прыз стаў дадатковым бонусам. Да таго ж, мне было прыемна, што я здолеў вырашыць для аднакласнікаў праблему, якая псавала ім жыццё кожны дзень. Адзін раз да мяне падышоў адзін з вучняў і сказаў: "З тваёй сістэмай вельмі зручна". Я быў на сёмым небе!
Думаю, нават без усялякіх узнагарод я б за адно гэта адчуваў гонар за сваю распрацоўку. Можа, гэтая дапамога іншым прынесла мне такое задавальненне… увогуле, люблю праекты.

Чаго я спадзяваўся дабіцца гэтым артыкулам

Спадзяюся, дачытаўшы мой артыкул да канца, вы натхніліся на тое, каб зрабіць нешта, што прынясе карысць вашай супольнасці ці нават толькі вам самім. Заклікаю вас выкарыстоўваць свае навыкі (праграмаванне, безумоўна, да іх адносіцца, але ёсць і іншыя), каб мяняць навакольнае рэчаіснасць да лепшага. Магу вас запэўніць, што досвед, які вы атрымаеце падчас, ні з чым не параўнаць.

Таксама гэта можа адкрыць перад вамі шляхі, якіх вы зусім не чакалі - так здарылася са мной. Так што прашу вас, рабіце тое, што вам падабаецца, і пакідайце свой след у свеце! Рэха ад аднаго-адзінага голасу можа патрэсці ўвесь свет, так што верце ў сябе.

Вось некалькі спасылак, якія маюць дачыненне да праекту:

Крыніца: habr.com

Дадаць каментар