Dalius Daro

2014 m. liepos 22 d., antradienis

Kalorijų skaičiuoklė

Pastaba 2021-01-02: aprašytas produktas nebeegizstuoja

Nusprendžiau skaičiuoti kalorijas ir būtų patogiau tai daryti ne rankomis. Mano reikalavimai programai paprasti:

  1. Noriu žinoti kiek gramais gaunu baltymų, angliavandenių ir riebalų bei kokia tų gramų išraiška kalorijomis.

  2. Reikia galimybės suvesti informaciją dienomis/valgymais.

  3. Taip pat norėčiau gauti visą suvestą informaciją pasirinktam laikotarpiui su vidurkiu per dieną.

  4. Noriu galimybės prisidėti savo maisto produktą, jeigu jo nėra sistemos duombazėje.

  5. Noriu, kad būtų lietuviška su lietuviškais maisto produktais.

  6. Noriu, kad sistema būtų paprasta.

Google sako, kad yra dvi sistemos. Viena nepatogi, kita (kilo.lt) kažkokia neaiški. http://www.kilo.lt/kaloriju-skaiciuokle# galima pasibandyti skaičiuoklę ir man nesueina kalorijų skaičiavimo matematika kartais, taip pat pakeitus matavimo vienetus vistiek naudoja gramus (dėl to didelės bėdos nėra, nes geriau visada naudoti gramus). kilo.lt šiaip siūlo daugiau negu tik kalorijų skaičiuoklę, jei susimoki ir jei jums to daugiau reikia, tai imkite. Mano nuomone, tai ką jie daro yra teisingiau negu daug kitų dalykų. Jie viską savo reklaminiame filmuke pasako tai daugiau jų nereklamuosiu :-)

Žodžiu pasibaigė tuo, kad per pora dienų pasirašiau savo k.sandbox.lt. Apie pačią sistemą skaitote čia k.sandbox.lt/apie. Žodžiu, imkite ir naudokite, jei jums reikia, ir man papasakokite, ką apie ją manote.

Programavimas

Paradoksalu tai, kad tokią sistemą rašau trečią kartą (bet pirmą kartą man šios sistemos tikrai reikia pačiam ir bent jau suprantu kam). Pirmą kartą rašiau kai dar mokiausi Licėjuje - mokytojas B. Skūpas davė kaip papildomą projektą. Dariau ilgai. Tąkart sistemos nepabaigiau. Turbūt net ir naudotinos versijos nepadariau.

Antrą kartą tokią sistemą dariau kažkada kai studijavau universitete. Kodėl? Net nežinau. Tąkart sistemą padariau labai sudėtingą: tvarkinga normalizuota DB, didžiūlė DB (verčiau USDA duombazę ir beje dar ją dabar turiu) ir XUL vartotojo aplinka. Tai buvo totaliai geek’iškas ir be galo sudėtingas sprendimas. Tokių esu ne vieną padaręs ir kituose projektuose. Galų gale tai pasibaigia sunkiai palaikoma sistema (net jei rašai unit-testus), kurios niekam nereikia. Dariau tikrai ilgai (mėnesiais). Žodžiu ta sistema irgi numirė.

Šįkart programavau kaip dviratį taisydamas. Sumečiau komponentus (bootstrap’as, jquery, google login’as, date picker’is, typeahead, viskas sukasi ant nodejs/expressjs). Kokia DB nesakysiu, nes gėda pripažinti, kad SQLite’as. DB visiškai nenormalizuota (jei reikės scale’intis galėsiu numesti į kokį lentelinį NoSQL storage’ą be jokių problemų). Žodžiu sistema paprasta ir veikianti (bent jau man). Sistemą padariau per 16h maždaug, tai beje šiek tiek pasako ir apie technologinį ir atviro kodo progresą (ne tik apie mano pačio žinias). Kartais paprasti sprendimai geriausi :-)