Ось уже 24 дні як я не вживаю цукор, шоколад, морозиво, торти, вафлі, печиво, газовану воду та інші продукти сучасності, які прикрашають наше життя. Ні, я не захворів :) Мене не «ламає» і в мене немає жодного бажання повернутися до колишнього «солодкого» життя. Після 24 днів мені це навіть у кайф! Три тижні тому я зрозумів, що серйозно підсів і мені варто з цим щось робити. Тож у цьому пості я хотів би розповісти, чому я прийняв таке рішення, як знайшов до себе підхід, як мені в цьому допомогли сучасні технології.
Чому
Кинути цукор я вирішив ще дуже давно, років зо два тому. Причин багато: здоров’я, вага, залежність, зайві витрати, самодисципліна. Але як завжди, з’являлося 100500 причин з’їсти щось солодке. Найпопулярнішими відмазками для мене були: «мені потрібна глюкоза для роботи мозку», «потрібно підняти настрій для ефективнішої роботи» і «халява»! Оскільки я час від часу їжджу на конференції, де зазвичай нічим корисним не годують (цукерки, печиво), то слово «халява» виникало в моїй голові досить багато разів =)
Є купа інформації та відео, чому від цукру варто утриматися. Моя улюблена авторка з цієї теми - Ася Казанцева зі своєю книжкою «Хто б міг подумати! Як мозок змушує нас робити дурниці». Там досить класно і простою мовою пояснено, чому варто контролювати кількість солодкого. Плюс багато іншої корисної інформації (хто зацікавився - раджу також подивитися відео її доповіді).
Загалом, інформації предостатньо. Але кожен сам для себе має вирішити, чому йому варто кинути. Для мене головна мотивація - це здоров’я і бажання якомога довше затриматися в цьому світі.
Я перепробував багато підходів. Напевно найпопулярніший - New Year Resolution. Це коли ти на Новий Рік виписуєш список цілей на рік. Але як завжди, цілі забуваються і знаходиться купа причин перенести їх на наступний рік.
Ідея
Якось я їхав велосипедом і думав про те, який підхід був би найефективнішим для мене, і якого б я точно дотримувався. Із занять спортом я знаю, що люблю досягати якихось конкретних цілей: пробігти 10 км, проїхати 40 км, віджатися 100 разів тощо. Також я читав, що для того, щоб звичка увійшла в ужиток, потрібно дотримуватися її хоча б 21 день. У кожного, звісно, по-різному, але в середньому десь так.
І вуаля! Я зрозумів, що просто маю постійно бачити перед собою, скільки днів я обходжуся без цукру, і поставити собі за мету протриматися мінімум 21 день. А далі мій організм почне працювати на мене. Так тому й бути.
Реалізація
TL;TR Якщо вас не цікавить технічна реалізація, просто прокрутіть до «Перший час».
Уже понад рік я ходжу з Apple Watch. Штука відмінна і дуже зручна! Особливо мені подобаються різні віджети і нотифікації з додатків. Я зрозумів, що відображати кількість днів без цукру на екрані годинника - буде найідеальнішим варіантом. Він завжди з собою і можна в будь-який момент подивитися на екран. Думаю, можна щось подібне зробити і за допомогою годинника на Android, або взагалі просто в телефоні. Головне, щоб ви завжди могли досить швидко подивитися на свій результат.
Спочатку я намагався шукати додатки, які вже виконують таку функцію, і не «винаходити колесо». Але мої пошуки не увінчалися успіхом. Тоді я вирішив написати щось своє. Але знову ж таки - відсутність вільного часу. У підсумку завдання «написати додаток» купу разів відкладалося на потім.
Я вирішив знайти додаток, у якому я б міг просто вбивати текст і відображати його на годиннику. І тут я зустрів Glimpse.
Додаток дає змогу вставити посилання, за яким він має отримувати текст і відображатиме його на екрані. Усе просто:
Залишилося тільки дати додатку посилання, за яким він отримуватиме кількість днів без цукру. Найпростіше - створити файл на сервері і просто змінювати в ньому число. Але щодня заходити на сервер і редагувати файл, як на мене, досить клопітно. І тут я згадав, що часто ходжу на всілякі google-орієнтовані конференції і там часто з’являється Firebase. А в нього і адмін-панель зручна, і REST API є, і базовий функціонал безкоштовний. Тож я зупинився на ньому.
Firebase
Заходимо на https://console.firebase.google.com/ і реєструємо новий проект: перед нами відкривається адмін-панель.
Заходимо в Database і створюємо ось таку ось невелику структуру:
Також потрібно зайти в RULES і перевірити, що база відкрита на читання:
Потім просто переходимо за посиланням формату https://[посилання_на_базу]/[шлях_до_даних].json
і отримуємо число.
Вставляємо це посилання в додаток і вуаля! Дані відображаються на екрані годинника.
Лінь
Але заходити щодня в адмінку стало ліньки. Хотілося, щоб можна було ввести тільки дату початку, а дні рахувалися самі по собі. А тут якраз у Firebase з’явилися Cloud Functions, які дають змогу виконувати різні функції з даними на стороні Firebase. Штука цікава, тож раджу почитати і спробувати.
Структура даних змінилася. Тепер у мене в базі була вказана дата початку відліку і нічого не потрібно було міняти.
Потім за допомогою JavaScript я написав Cloud Function, яка повертає кількість днів. На вхід потрібно подати get-параметр name (у моєму випадку sugar). Код шукає дату в базі, рахує скільки днів минуло з моменту дати і повертає результат. Тепер посилання виглядало так:
Функцію я написав, ґрунтуючись на прикладах із документації. Якщо ви вже мали справу з npm і NodeJS, то у вас не виникне труднощів.
Після цього все працює як по маслу. В адмінпанелі можна побачити, що годинник приблизно раз на годину робить запити до бази й отримує дані.
Багато хто може подумати, що я все занадто ускладнюю. Можна було написати bash-скрипт, який би модифікував файл на сервері. Або просто написати iOS-додаток, який би зчитував усе локально і нікуди не ліз. Але я керувався швидкістю розробки і бажанням якомога швидше все запустити. Плюс хотілося погратися з Cloud Functions. Тому на той момент це був найпростіший варіант.
Перший час
Початок було покладено. Перший день усе пройшло нормально. Найцікавіше почалося на другий. В офісі, де я працюю, з’явилося три торти. І, ясна річ, у мене почали бродити думки про «халяву» (ох вже ця українська душа). Але паралельно я вирішив виробити допоміжну звичку, простішу. Щоразу, коли мені хотілося солодкого, я просто мав повернути кисть і подивитися на годинник. І все. Мені захотілося солодкого, подивився на годинник, перехотілося. Було просто прикро втрачати вже набрані дні і починати все спочатку.
Оскільки я не писав про це в соц. мережах, не кидав собі публічно якийсь challenge, то ніхто б і не дізнався про жалюгідну цукерку. Але це було потрібно насамперед мені. Тому я вирішив, що щойно щось з’їм - одразу скидаю лічильник і по новій.
Перший тиждень найскладніший. Мене реально «ламало». Щоб організм не так сильно переживав різке зниження рівня «швидких» вуглеводів, я став їсти більше фруктів. Щойно мені починало хотітися солодкого, я їв звичайну їжу і бажання проходило. У такі моменти потрібно просто набивати шлунок чимось не жирним і малокалорійним. Благо зараз літо, тож фруктів і овочів досить багато. Хочеться солодкої води - п’єш звичайну, і спрага минає. Чай і каву я вже давно п’ю без цукру, тож це не було проблемою.
Другий тиждень уже було простіше: дивишся на годинник лише час від часу. Коли перевалює за 10 днів, починаєш бачити двозначні числа. І тут починається найцікавіше! Що більше число ти бачиш, то образливіше тобі починати з самого початку, принаймні для мене. Тож починаючи з 10 днів усі «мости назад» були «спалені».
Третій тиждень я навіть уже й не думав про цукор. Дивишся на годинник - радієш. Коли тобі пропонують щось солодке, ти на автоматі відмовляєшся. Звичка майже сформована і від цього отримуєш ще більше задоволення.
Результати
Як мене не залякували, що глюкоза потрібна для роботи мозку, але від відсутності солодкого в моєму житті гірше він працювати не став. Навіть краще! Глюкоза для мозку потрібна. Але йому достатньо і тієї, яку він отримує зі звичайної їжі та фруктів. За цей час у мене були різні стресові ситуації. Часом хотілося якось підняти собі настрій. Але подивившись на годинник, я розумів, що солодке - не найкраща ідея, і йшов прогулюватися парком.
Як не дивно, але «широка кістка» теж почала звужуватися! Я завжди не розумів, чому люди, які не хворіють на жодні хвороби, скаржаться, що не можуть схуднути. Адже ми ж влаштовані досить просто. На вхід подаються калорії і ми їх витрачаємо за допомогою своєї мозкової та фізичної активності. Якщо ви набираєте вагу, то значить ви або подаєте на вхід багато калорій, або мало їх витрачаєте. Відповідно, або зменшуємо перше, або збільшуємо друге. Як каже Джекі Чан: «Я їм усе, що мені хочеться. Якщо з’їм морозиво - просто буду тренуватися на 20 хвилин довше». Усе просто.
Сподіваюся, це тільки початок і я буду далі прищеплювати все нові корисні звички. А ще сподіваюся, що надалі я все ж таки знайду час на розробку застосунку, і тоді зможу контролювати і відстежувати набагато більше показників.
Тож не відкладайте все на потім, ставте конкретні цілі і ваше життя потихеньку змінюватиметься на краще.