Prieš mėnesį prie RaspberryPi prisijungiau porą DHT22 oro temperatūros ir drėgmės jutiklių ir pradėjau automatizuotai iš jų surinktus duomenis saugoti MySQL duomenų bazėje (plačiau čia). Dar programuodamas duomenų surinkimą, pastebėjau, kad laikas nuo laiko DHT22 duomenyse pasitaiko klaidų, pav. vieno iš 10 matavimų rezultatas yra keliais laipsniais didesnis nei likusių ar pan. Tokias klaidas bandžiau eliminuoti suvidurkindamas kelių matavimų duomenis, tačiau tai padėjo tik iš dalies, nes net vienas klaidingas rezultatas gan stipriai iškreipia vidurkio rezultatą (žr. grafiką viršuje). Nusprendžiau matavimų klaidas eliminuoti panaudodamas statistinį „nukrypėlių” eliminavimo metodą. Skaitykite toliau
Temos Archyvai: Programavimas
Avietė: DHT22 -> MySQL
Viena pagrindinių priežasčių, kodėl aš iš viso pirkau RaspberryPi, buvo noras pagaliau prisiversti susidraugauti su linuxu ir kažkiek pramokti python, php, mysql, java, js, ir visokius kitokius šiandien aktualius velnius. Programuoti vien dėl programavimo yra tuščias laiko gaišimas, todėl iš karto reikia daryti kažką naudingo, o ne rašinėti visokius „hello world”. Vos tik nusipirkęs RPI, nusprendžiau pasidaryti kelių zonų termometrą su istorinių duomenų atvaizdavimo galimybe. Tam, kad spyris į užpakalį kažką daryti būtų kuo stipresnis, nusprendžiau viską programuoti pats. Sukurpiau tokį pradinį planą: Cron jobas kas 5 min. paleidžiai Python scriptą, kuris kelis kartus nuskaito DHT22 jutiklio duomenis, juos suvidurkina ir surašo į MySQL DB. Skaitykite toliau
Excel: lietuviškų raidžių panaikinimas (nulietuvinimas)
Neseniai prisireikė rankiniu būdu sukurti kelis naujus naudotojus vienoje sistemoje. Naudotojų sąrašą gavau su lietuviškomis raidėmis, o mūsų sistema lietuviškų raidžių naudotojo varde nepriima. Ką daryti? Ranka taisyti? Taip neįdomu.. Skaitykite toliau
JasperServer JFreeChart grafiko išvaizdos tobulinimas su „Customizer Class”
Įrašas bus apie taip, kaip gan paprastai galima pagal asmeninius poreikius pasikeisti JasperServer grafikų išvaizdą. Tikriausiai žinot, kad grafikai tiek iReport’e tiek pačiame JasperServer grafikai yra išpiešiami naudojant JFreeChart komponentą. iReport šiek tiek leidžia keisti grafiko išvaizdą, bet nepakankamai. Kažkodėl programuotojai iReport’e sukūrė tik galimybę keisti tik grafiko elementų (linijų, stulpelių ir pan.) spalvą, bet nerealizavo galimybės keisti linijų stilių, išpiešimo eiliškumą ir kitus naudingus parametrus. Yra kaip yra. Viską kitą yra gan lengvai padaroma su/per java Customizer Class. Skaitykite toliau
Išklausiau kursus „Oracle Database 12c: Introduction to SQL Ed 1”
Ilgai delsiau, bet pagaliau išklausiau „Oracle Database 12c: Introduction to SQL Ed 1” (lt. Oracle DB: Įvadas į SQL) 5 dienų trukmės kursus. Nors pavadinimas kaip ir nieko daug nežada, bet kaip savamoksliui programuotojui kursai buvo labai naudingi. Ne tik tuo, kad prisisėmiau daug teorinių žinių ir supratau, kodėl kai kas, ką kažkada bandžiau suprogramuoti, net ir negalėjo veikti, bet ir tuo, kad turėjau labai gerą dėstytoją, kuris peržengdamas kursų gaires atsakinėjo į visus man rūpimus klausimus.
Highly recommended!
JasperServer: SMTP autentifikacija
Note for myself: jei jasperis niekaip nenori išsiųsti laiško, patikrink ar nepamiršai įjungti SMTP autentifikacijos, kuri yra konfigūruojama faile $TOMCAT/webapps/jasperserver/WEB-INF/applicationContext-report-scheduling.xml ! Skaitykite toliau
Laiko rėžis datos rėžio oracle užklausoje
Laikas nuo laiko tenka ištraukti tam tikrų valandų kelių dienų duomenis, pav. gauti duomenis už praėjusio mėnesio kiekvieną dieną 08:00–09:00 valandomis. Kartais pasitaiko tai įdomesni poreikiai, pav. gauti tam tikro laiko intervalo duomenis tik savaitgaliais arba tik konkrečią dieną (pav. tik antradieniais ir pan.). Užduotis paprasta, bet dėl to, kad tai daryti tenka ne dažnai, vis pamirštu konkrečia sintaksę. Tenka pasikelti senus failus, juose ieškoti konkretaus sprendimo. Taip daryti nusibodo ir nusprendžiau savo naudojamą techniką aprašyti čia. Gal kam nors irgi pravers… Skaitykite toliau
Oracle hierarchinės užklausos su WITH ir CONNECT BY
Darbe iš nutolusių įrenginių kelis kartus per valanda surenkam įvairius duomenis. Kiekviena surinkimo faktą (surinko ar nesurinko duomenis) taip pat fiksuojame ir saugome DB. Kažkada iškilo poreikis grafiškai pasižiūrėti, kaip vis dėl to mūsų įrenginiai veikia, t. y. kaip kokybiškai teikia mums duomenis. Tam pasirašiau paprastą užklausą, kuri tiesiog suskaičiuoja, kiek kiekvieną valandą buvo sėkmingų duomenų surinkimo iteracijų. Kaip ir viskas gerai, tačiau bėda kyla, jei konkrečią valandą nebuvo nei vienos sėkmingos iteracijos. Tada duomenys visai dingsta (žr. nuotrauką viršuje), o norėjosi bent null pamatyti. Skaitykite toliau
Pusiau automatinė JasperServer atsarginė kopija
Kaip pasidaryti ir atkurti atsarginę JasperServer saugyklos (angl. repository) kopiją yra puikiai aprašyta sharad-gupta bloge. Iš principo, tereikia js-export.bat įrankį paleisti su –everything ir –output-zip backup.zip raktais, ir po kelių minučių turėsite pilną JasperServer repository atsarginę kopiją backup.zip archyve. Tačiau ką daryti, jei norime jei norime atlikti periodinius versijuotus backup’us? Kiekvieną kartą rašysim tą pačia komandą nusibodusią komandą, pakeisdami archyvo pavadinimą?
<js-install directory>buildomatic>js-export.bat --everything --output-zip backup_20140618.zip
Aišku galima, bet tai šiek tiek kvaila. Štai mano liaudiškas metodas..