2014 m. balandis 18 d., penktadienis

Raspberry Pi

Jau gan senokai turiu RPi, tačiau vienintelis rimtesnis panaudojimas buvo git serveris (ir tai tik terminalinis). Todėl, pagalvojau, kad reikėtų papildyti I/O (įvestys/išvestys) ir užsisakiau:
Sultingasis logotipas
  1. Temperatūros sensorius DS18B20;
  2. Ultragarso sensorius HC-SR04;
  3. Radijo imtuvas TEA5767;
  4. Nokia 5110 ekranėlis.
Taigi, Nokia 5110 ekranėlis išvedinės bendrinę informaciją, nes valdiklių neturiu.

Pastebėjau, kad dauguma projektų su RPi vykdomi Python programavimo kalba, kuri yra pakankamai patogi, tačiau be papildomos pagalbos yra žymiai lėtesnė už C, todėl ją ir naudosiu. Vėlesniuose įrašuose papasakosiu kaip sekėsi atlikti tai, ką užsibrėžiau.

2014 m. balandis 3 d., ketvirtadienis

Duomenų suvokimas pagal Google

Prieš rašydamas šį postą pažiūrėjau, kad tikrai senai užsiėmiau kažkokiu rašymu čia. Per metus įvyko tikrai daug, tačiau nesižvalgydamas giliai į praeitį žiūriu ką turiu dabar. :)

Pastaruoju metu apsiimiau labai trumpu kurseliu apie duomenų suvokimą. Jame apžvelgiamas pirminio ir antrinių klausimų sudarymas, kas, kaip "projekto specifikacija" labai padeda gilinantis į turimus duomenis (drill-down). Žinoma, naudojamasi eksperimentiniu Google įrankiu Fusion tables, kuris yra pakankamai greitai perprantamas.

Viso kurso metu pirminiu šaltiniu pasirenkami realūs objektai/duomenys, nei sausoka teorija, kuri yra antrinis šaltinis siūlomas šalia pateikto klausimo arba tik pabaigus skyrių. Mano nuomone, toks informacijos pateikimas yra tikrai geras, nes skaitant teorinę dalį daug lengviau susieti ir įsiminti pateiktą informaciją, kai iš anksto susipažįstama su atitinkamomis situacijomis. Tai buvo stipriosios dalys.
Čia buvo beprasmis paveiksliukas, kad neatsibostų žiūrėti į raides
Nežinau kam atributinti nuotrauką, meh

Silpnosios dalys, manau, buvo prisirišimas prie platformos, nes nemažai laiko buvo praleista konkrečiai pritaikant sprendimus prie Fusion tables įrankio. Taip pat, galutinis projektas galėjo būti labiau kuruojamas, nes nebuvo aiškūs projektinio darbo rėžiai, todėl didžioji dalis darbo buvo daroma savo nuožiūra (parenkant duomenų ir klausimų sudėtingumus).

Aš savo baigiamajam projektiniui darbui pasirinkau oro kokybės duomenis iš JAV rytinio pajūrio po BP naftos išsiliejimo incidento 2010-ais metais. Duomenis pateikti nuo 2010-04-28 iki 2010-09-18, o pats išsiliejimas įvyko 2010-04-20, o liejimasis oficialiai sustabdytas 2010-09-20. Pagrindins klausimas buvo poveikis ir jo išsilaikymas laiko atžvilgiu.

Pagal pateiktą problemą pastebėjau, kad Luizianos valstijoje pastoviai didėjo užterštumas ir tik rugsėjo mėnesį paplito po kitas valstijas platesniu mastu. Kadangi buvo tirta tada, kai nuotėkis nebuvo sutvarkytas, užterštumas Luizianos valstijoje nestipriai didėjo, jau iš anksto buvo nemažas kiekis. Pastebėtina, kad ryškiau paplitus į kitas valstijas Luizianos valstijos taršos didėjimas menkiai nuslopo.

Viena iš pagrindinių problemų, kurias sutikau atlikdamas projektinį darbą buvo tai, kad nebuvo galima išdėstyti duomenų pagal laiko tarpus, reikėjo kurti papildomus žemėlapius. Taip pat, pakankamai sunku rasti išbaigtus duomenis, kur reikėtų sujungti vos kelias lenteles, o ką jau kalbėti į eilučių išbaigtumą, kur pritrūksta kokio svarbaus domens (mano atveju, kažkur dingo aukštuma duomenyse - tiesiog nebuvo pateikta).

2012 m. gruodis 23 d., sekmadienis

Maršrutai.lt Ubuntu aplinkoje

Pagrindinė šios aplikacijos mintis yra rodyti kokie ir kada [auto/trolei]busai išvažiuoja nuo vienos apibrėžtos stotelės iki kitos. Maršrutai.lt naudoja SOAP (arba tiesiog XML'ą su keliais pričiūdais) iš kurio man tereikia kada ir koks autobusas atvažiuoja į konkrečią stotelę, daugiau belieka viską apdoroti ir pritaikyti Ubuntu sistemai. Kadangi realios dokumentacijos dar nėra, o github'e dar vis įsirenginėju, manau, kad čia galėčiau kuo puikiausiai aprašyti šį projekčiuką.
Taigi, ką padariau:
  1. Padorus XML'o su'parse'inimas ir apiobjektinimas 
    1. Pakolkas 99% projekto yra javoje  
    2. viso labo tas likęs 1% yra bash skriptas, nes kaži ko javoje runtime'as negražiai elgiasi su notify-send, gal su laiku atrasius problemą.
  2. Paprasti duomenys išvedimui (tiesiog String tipo eilutės)
  3. Išvedimas pateikiamas į notify OSD per notify-send
  4. Sudėti 15 minučių intarpai, kad kažkoks cikliukas vis pranešantis apie artimiausius autobusus/trulikus.
  5. Išvedime pateikiami 3 variantai, tačiau pačioje programoje jų gali būti ir daugiau (notify-osd apribojimas)
Ką norėčiau dar padaryti:
  • Plėtojant pirmąjį punktą:
    • būtų labai gražu į bash'ą pereiti, bet vis pritingiu atminty dulkes nusivalyti. 
  •  Daugiau OOP arba tiesiog platesnis esamos programos išnaudojimas visoje Ubuntu sistemoje.
  • Notify OSD naudoti kaip papildomą įrankį ir sukurti kokią grafinę sąsają (app indicatoriuje arba iškviečiant su shortcut'u)
  • Įvesti protingesnę pranešimo/atnaujinimo sistemą
    • pvz. nustatyti piko metus ir jais padidinti dažnį
    • pvz. dynaminis dažnis, kai nustatoma pagal paskutinįkart tikrinto paskutinio maršruto laiką (ir minus dešimt minučių, tarkim)
  • gauti alfa testerių
 Kad kodas bus atviras, tai faktas, tačiau reikėtų pirma apsitvarkyti su pačiu kodu ir jį publikuoti github'e. Priedo pridedu scr shot'ą kaip atrodo su notify-send ir trim rezultatais:


Šiam kartui tiek, jei jau kas čia skaito, labai faina būtų k&k (komentarai ir kritika)


2012 m. gruodis 19 d., trečiadienis

Kūčių stalas.

Taigi, vyko šiokios tokios pre-kučios, kurioms reikėjo atnešti vieną pagal kūčių taisyklės (jokių gyvulinių patiekalų) pagamintą patiekalą. Aš, kaip įprasta, neturiu pinigų tokiam dalykui kaip silkė, kuri atrodo ot bus brangi, nors kainos nežinau, tai pradedu galvoti apie alternatyvas, kurias valgymo ribose  mokėčiau pagaminti valgyti ir ale pigiau gautųsi.
Tai kuo trumpiau, nenuklydus į psichologines kodėl-pirkau-tai-o-ne-tai lankas, šoku prie minties, kad sugalvojau pagaminti krabo lazdeles alaus tešloje.
Vaizdingumui - alaus pavyzdys
Receptūra (pagal tai, ką turėjau) ir kiekiai "iš akies":
  1. Koks 200-300g kukurūzų miltų,
  2. Pusės skarbės šviesaus alaus,
  3. apie 20 krabų lazdelių (kuo pigesnės, tuo levesnės, bet pinigų mažiau kainuos, o prieskoniai pagal skonį)
  4. Druska, pipirai arba tos maximinės prieskonių receptūros už centus paruoštos žuviai (suėjo),
  5. Aliejaus ar šiaip kokio riebaliuko.
Miltus išmaišom su prieskoniais ir užpilam alaus. Išmaišius tešla turėtų būti tiršta lyg grietinė. Įmetam kelias krabų lazdeles, nes po vieną neverta - nėr ko čia terliotis*, ir gražiai padedam ant pakaitintos keptuvės su jūsų pasirinktu #5 ir stengiamės kuo dažniau vartyti, kad visa tešla nesubėgtų vienon pusėn.

Tikiuosi, gausis kasnors skanaus, nes jau beveik patikėjau, kad moku gamint.

Jei ką, taip turėtų atrodyt.











*-realiai, čia tikra terlionė

2012 m. rugpjūtis 23 d., ketvirtadienis

Netikras progresinis metras

Arba fake progress bar yra toks gudrokas būdas ale apgaudinėti kitus, kad šiuo metu negali kaži ko čia daryti, nes vyksta svarbūs procesai. Aš, kaip labiau prie linux'ų, o tiksliau Ubuntu, tai norėčiau pasidalinti savuoju variantu, kuris gan nesunkiai sukuria dirbančiojo įvaizdį.
Šiam suktai niekšybei užteks paprastos Ubuntu instaliacijos arba gnome ir zenity paketų.
zenity --progress --text="KRAUNASI LABAI SVARBŪS REIKALAI MAT"
Sukčių langas
Paprastas variantas (žinoma galima ten dar visokių pribambasų padaryt, bet esmė aiški), belieka tik sukurti įvaizdį, kad kažkas tikrai kraunasi. Blogybė ta, kad visą proceso reikalą reikia pri'pipe'int prie zenity, kas atrodytų maždaug taip:
(for x in 10 20 30 40 50 60 70 80 90 ; do echo $x ; sleep 1; done)|zenity --progress --text="KRAUNASI LABAI SVARBŪS REIKALAI MAT"
šiuo atveju belieka keisti sleep laiką, matuojamą sekundėmis, kurį dalinsime iš etapų skaičiaus (šiuo atveju berods 10). Tarkim, jums reikia penkminutės, tai prie sleep'o vedame 30 ir t.t.



Pati mintis apie šitokią suktybę atėjo besėdint (ne ant tualeto) ir mislijant ką čia gudresnio. Jeigu turite savų variantų kaip šią užduotį dar labiau supaprastint ar padaryti įtikinamesnę, laukiu pasiūlymų :)

2012 m. rugpjūtis 10 d., penktadienis

Apie social media internetuose

Nors ir nesu labai didelis tokių dalykų žinovas, kaip kokie commonsense.lt , tačiau mėgstu (o kas ne?) prajukt nuo kvailų išsireiškimų. Turiu omeny štai ką:
ChryslerAutos twitter
Ironija, matyt, gali ne visiems patikti
O tokie palyginimai, mano nuomone, pagirtini
Šitokiais nebiednais įrašais išsireiškiama greičiausiai netyčiukais, kaip ne kartą teko pasijuokti iš viešų feisbukinių žinučių apie nepasitenkinimą kitais žmonėm, kas greičiausiai baigdavos atleidimu iš darbo arba kitais apribojimais.
Kitas variantas gali būti - atžagarokas elgesys, kur, nors jau amerikose, nuskambėjo nestle feisbuk puslapio skandalas aiškinęs apie internetų teisybes. Jau kai teko prakalbt apie veidaknygę, joje vyksta visokių visokiausi socialiniai žaidimai (berods jau kalbų apie Tele2 1200Lt telefoną banga praėjo, tai aš to ir neminėsiu), kurie nevisai linksmai baigiasi, nes duodamas per daug galios vartotojų nuomonei, kaip tarkim:
Lindo lindo ir išlindo yla iš maišo
Ale ne visi tokie žaismingi, m?
Pabaigai norėčiau pasidalinti neblogu blog'u apie štai vat tokius atsitikimus Lietuvoje: SocMediaFail.tumblr

2012 m. rugpjūtis 9 d., ketvirtadienis

Pirmasis (nelabai) įrašas

Pic Unrelated
Nu visai nesusijęs, bet įrašą papuošiantis paveikslas
Tai vat, kad nebelabai "pirmas" įrašas. Tuo labiau, kad anksčiau buvo rašyta daug ir visokiom temom, bet vistiek nustota (ir gerai, nieko protingo vistiek nebūčiau parašęs).
Tada kyla klausimas - kodėl ir vėl?! Mėgstu rašyti, štai kodėl. Realiai, visada norėjau kąnors (nu ne belenką) rašyti, tik vis neužsikabindavau. Tad nusprendžiau, kad visgi reikia man blog'o, o kaip jau bus - taip bus.
Tai apie ką rašysiu čia? Kasdieninėm pasaulio naujienom greičiausiai nesidalinsiu, tam skirti visokie Google+, feisbukai ir linkedinai, čia galvoju dalintis pastebėjimais (kas ir parašyta viršuje) arba stebėtis kitų pastebėjimais. Dalinsiuos dar ir savo kodukais, kurie yra tokio siauro akiračio, kad žiauru. Labai pamėgau visokius tokius falšyvus bash scenarijus (script'us), kurie Windows programuotojams turėtų ekvivalentą į batch scenarijų kūrimą.
Štai, tarkim, turiu išmanoką (ne išmanusis telefonas, bet ir ne plytinis) noškę, kuri labai primityviai draugauja su linux/gnu tipo operacinėm sistemom. Aš, mat, noriu pilnai susinchronizuoti, bet šiuo metu tėra kaži koks ftp tipo prisijungimas ir tiek, tad šiame blog'e galėčiau rašyti apie savo pastangas laužiant ledus :)
Gal daugiau nebesvaigsiu ir baigsiu šį įrašą,
tai tiek.