noriu pristatyti Kiprianą, naują programuotoją, kuris
artimiausiu metu dirbs prie parašykjiems.lt projekto.
Tikiuosi, tai padės lengviau išsiaiškinti krūvą pradinių
klausimų.
Dariau, taip pat prisegu atnaujintą todo listą, prie kurio
pamažu ir dirbsime artimiausiu metu.
Miriam
Smagu, kad cia prisijungei. Tikrai galesime daugiau issiaiskinti
esminiu klausimu cia, o kas nores - gales laisvai prisijungti prie
diskusijos. Noreciau, kad ir ateityje visi pagrindiniai klausimai butu
cia aptariami, taip pritrauksime daugiau norinciu prisideti zmoniu.
> Aš esu tas naujas programuotojas. Man įdomu, ar galėčiau gauti
> priėjimą prie serverio, kuriame hostinamas projektas?
Jei nera rimtos priezasties, manau geriausia butu pirmiausia gyvai
susitikti, galeciau papasakoti kaip viskas veikia, kaip suinstaliuota
ir pan. Realiai kol kas priejimo net ir nereikia, nes nauju funkciju
kol kas nera, o kol kas viskas veikia, kiek tu funkciju yra. Duomenis
galima atnaujinti per http://parasykjiems.lt/data/update/upload/ .
Gali pradeti nuo to, kad pas save viska pasikurtum ir pasileistum.
Kodas yra http://bitbucket.org/dariusdamalakas/parasykjiems (url
rasau is atminties).
> Taip pat būtų gerai, jeigu buvę programuotojai papasakotų iš kur ir
> kaip dabartinėje sistemoje renkami duomenys, t.y. kas ir iš kur
> automatiškai scrapinama, o kas įvedama žmonių, bei kaip veikia duomenų
> taisymas.
Scrapinimos dvi svetaines -
* registru centras - gauname dauguma Lietuvos adresu, t.y. kokios yra
gatves Lietuvos miestuose. Numeriu, deja, jie nepateikia.
Taip is cia gauname kokioms seniunijoms priskiriami adresai.
Registru centras nepateikia adresu didziuosiuose miestuose (Vilnius,
Kaunas, Klaipeda), todel siems miestams info buvo surinka rankomis,
arba pusiau rankomis, ir issaugota csv faile.
Scrapinti kas karta importuojant visa DB nereikia, nes visus
nusiurbtus duomenis sudejau i source controla. Visa svetaine nusiurbti
uztrunka plius minus apie 3 - 5 valandas, jei pamenu. Realiai
scrapinti reikia tik tuomet, kai manome, kad registru centre atsirado
nauju adresu. Kaip suzinoti kada atsiranda nauju adresu - neaisku.
* lrvalstybe.lt - gauname merus ir seniunus.
Kaip atrodo nusiurbti duomenys gali pasiziureti cia:
http://parasykjiems.lt/data/update/mayor/
http://parasykjiems.lt/data/update/civilparish/
Meru duomenys jau suimportuoti, todel rodys, kad nera jokiu skirtumu,
seniunu duomenys dar nera atnaujinti. Ju neatnaujinau is karto su
merais, nes kai kur duomenys nera tikslus, pvz vardai yra sutrumpinti
iki vienos vardes, nors pas mus svetaineja jau yra irasytas pilnas
vardas.
>, o kas įvedama žmonių,
Seimo nariai, meriai, seniunai ir seniunaiciai buvo surinkti rankomis,
issaugoti kaip csv source controle. Merus ir seniunus dabar galime
atnaujinti per /data/update, su nuscrapintais duomenimis is
lrvalstybe.lt
> bei kaip veikia duomenų taisymas.
Jei reikia papildyti/pakeisti adresus, tuomet tiesiog istrinam
atitinkamas lenteles ir importuojame is naujo:
python manage.py clearTerritories
python manage.py importTerritories
Taip pat su atstovais:
python manage.py clearMembers
python manage.py importMembers
Issiustu el-laisku sios komandos neliecia, tad realiai tai galima
leisti ir ant live db.
Realiai lokaliai svetaines paleidimas turetu atrodyti mazdaug taip:
hg co http://bitbucket.org/dariusdamalakas/parasykjiems/
cd parasykjiems
python manage.py syncdb
python manage.py importMembers
python manage.py importTerritories
python manage.py runserver
Darius
--
Darius
Dar viena naudinga funkcija butu susirasti atstova pagal varda
pavarde. Labai lengva padaryti, tiesiog tam reikia siek tiek skirti
laiko.
Kiprianai, ka manai?
Darius
Dar viena naudinga funkcija butu susirasti atstova pagal varda
Aš kodą bitbuckete nuforkinau ir pas save jau esu pasileidęs viską.
Priėjimo prie serverio norėjau, kad galėčiau panagrinėti, kas kur yra
gyvoj instaliacijoj, ar yra kokių cronjobų ir pan., bet, kaip
paaiškinai, visi duomenys yra source controle ir pačiam scrapinti
nieko nereikia. Man vistiek reikėtų tas priėjimas, kad galėčiau
panagrinėti veikiančią instaliaciją arba kad galėčiau sutaisyti, jeigu
kas nors sugestų. Juk tu nebedirbi prie šio projekto?
O dėl paieškos pagal vardą pavardę — nebloga mintis ir nesudėtingai
įgyvendinama.
> Aš kodą bitbuckete nuforkinau ir pas save jau esu pasileidęs viską.
Liuks, as lygiai taip pat isivaizduoju, kad nuo to ir pradedam.
Perziurejau tavo commitus. Dziugu, kad pradedi nuo apvalymo.
Prisipazinsiu, nesu Pythono ar Django guru, todel gali rasti daug
´keistu´ dalyku. Kritika ir komentarai welcome.
> Priėjimo prie serverio norėjau, kad galėčiau panagrinėti, kas kur yra
> gyvoj instaliacijoj, ar yra kokių cronjobų ir pan.,
Yra vienas cronjobas.
python manage.py getResponses
Si komanda prisijungia prie lokaliai suinstaliuoti IMAP pasto
serverio, parsisiuncia visu laisku headerius, ir patikrina, ar yra
tinkamu laisku. Tinkami laiskai yra tokie, kuriu temos laukas atitinka
toki standarta:
parasykjiens_(emeilo nr)_(random number)@parasykjiems.lt
Jei sio standarto neatitinka, tai laiska praleidzia. Jei atitinka, tai
atsisiuncia ji visa, ir sudeda reikalinga info i DB, attachmentus
sudeda i atitinkama folderi.
Kadangi ateina ir spamas, ir vidiniai serverio laiskai, veikia dar
vienas cronjobas, kuris isvalo tikrai nereikalingus laiskus, pvz
istrina visus laiskus is IMAP serverio, kuriuos siuncia adresatas
ro...@parasykjiems.lt
> bet, kaip paaiškinai, visi duomenys yra source controle ir pačiam scrapinti
> nieko nereikia. Man vistiek reikėtų tas priėjimas, kad galėčiau
> panagrinėti veikiančią instaliaciją arba kad galėčiau sutaisyti, jeigu
> kas nors sugestų.
Teoriskai nieko bloga neturetu nutikti. Serve sukasi nginx, o patas
parasykjiems paleistas per gunicorn.
> Juk tu nebedirbi prie šio projekto?
Ne taip tave informavo. As negaliu skirti tiek laiko siam projektui
vystyti, kiek jo is tikro reikia. Realiai projekto pradzioje
isivaizdavome, kad scope´as bus zymiai mazesnis.
Realiai dabar prie projekto prisijungus tau, Mildai ir Miriam, yra
daugiau zmoniu, kurie gali suziureti daugiau projekto detaliu - ne tik
programavima, bet ir duomenu rinkima, ju atnaujinima, dizaina ir,
svarbiausia, strategija, kaip si projekta viesinsime.
> O dėl paieškos pagal vardą pavardę — nebloga mintis ir nesudėtingai
> įgyvendinama.
As ir manau, kad nesudetinga, ir gana naudinga funkcija. Realiai ji
padengia du usecase´us:
* kai zmogus nori susisiekti su konkreciu asmeniu (pvz seimo
pirmininku, ar seimo nariu)
* kai zmogus daznai bendrauja su savo seniuniu ar seniunaiciu, gali
buti padogiau ir greiciau ivesti zmogaus varda arba pavarde, vietoje
gyvenamosios vietos ir tuomet issirinkti ir keturiu variantu
--
Darius
Dabar yra atvirai visiems prieinami URL'ai, kurie prasideda
'data/update', kurie manau turėtų būti apsaugoti autentikacija.
Ruošiuosi tai įgyvendinti ir norėčiau šitą pakeitimą įdėti į
production serverį, nes dabar, kaip suprantu, bet kas gali įkelti ir
importuoti naujus duomenis.
aš labai palaikyčiau tokių saugumo spragų uždengimą, jau
vien dėl to, kad a) projektas ir jo soursas yra viešai
prieinami, b) tai yra geras įprotis, net jeigu dabar
niekas ir nenukentėtų, jei kas nors ką nors įdomaus
suimportuotų.
Kitas dalykas, dėl kurio būtų naudinga prieiti prie
hostingo, tai tam, kad būtų kur pakurti lygiagrečią ir
viešai prieinamą "staging" versiją, kurią būtų galima,
viena vertus, patogiai rodyti ir aptarinėti su kolegomis
iš TILS, kita vertus - atlikinėti user alfa/beta testing'ą
ir rinkti įspūdžius, kurie padės dirbti su puslapiu iš
usability pusės. Apskritai, esu prieš bet kokius testavimo
darbus (kas yra neišvengiama) ant production'o.
Dar pora klausimų:
- Anksčiau paieška veikdavo tokiu principu, kad vartotojui
įvedus gatvę be namo numerio, jam pasiūlydavo pasirinkti
tikslesnius variantus. Kažkurioje vietoje toks
funkcionalumas nustojo veikti. Dariau, gal turi versiją,
kokie pakeitimai tam galėjo turėti įtakos?
- Taip pat iš production db dingo /test/test atstovas ,)
Taip pat apgalvojom paieškos patobulinimą - su vairantų
siūlymų, galimybe ieškoti atstovų pagal vardą-pavardę ir
pagal instituciją, bei kiek patobulinta adresų paieška.
Miriam
> Kitas dalykas, dėl kurio būtų naudinga prieiti prie
> hostingo, tai tam, kad būtų kur pakurti lygiagrečią ir
> viešai prieinamą "staging" versiją, kurią būtų galima,
> viena vertus, patogiai rodyti ir aptarinėti su kolegomis
> iš TILS, kita vertus - atlikinėti user alfa/beta testing'ą
> ir rinkti įspūdžius, kurie padės dirbti su puslapiu iš
> usability pusės. Apskritai, esu prieš bet kokius testavimo
> darbus (kas yra neišvengiama) ant production'o.
Absoliuciai. Staging versija labai naudingas dalykas. Ypac kai dabar
atsiras daug nauju funkciju tai yra butinas dalykas.
> Dar pora klausimų:
> - Anksčiau paieška veikdavo tokiu principu, kad vartotojui
> įvedus gatvę be namo numerio, jam pasiūlydavo pasirinkti
> tikslesnius variantus. Kažkurioje vietoje toks
> funkcionalumas nustojo veikti. Dariau, gal turi versiją,
> kokie pakeitimai tam galėjo turėti įtakos?
Mes neturime duomenu kokie namo numeriai yra gatvese, tad realiai
tokio funkcionalumo mes negalime pateikti, ir tokio funkcionalumo
nebuvo.
Vietoje to yra kitas - kartais viena gatves puse prikauso vienai
institucijai, kita - kitai. Pvz Gedimino prospektas Vilniuje yra
priskirtas dviejoms rinkimu apylinkems.
Beje, maciau, kad yra branchas "rewrite". Mane tai labai nustebino,
ypac, kad apie tai nieko nebuvo kalbeta. Bet kokiu atveju nenoriu, kad
tam tikras problemas sprestume du kartus. Kiek turiu laiko, trumpai
perziurejau koda, ir pasigedau vieno esminio dalyko. Galbut to dar
Kiprianas nepridejo, bet manau geriau is karto pasakysiu, nei veliau
reikes ilgiau taisyti.
Kai perdarete adresu saugojima (klase Location
https://bitbucket.org/kspiridonovas/parasykjiems/src/1cbd2f265ff2/web/models.py#cl-71),
kazkodel ismetete seniunija. As sugaisau nemazai laiko kol
issiaiskinau, kas Lietuvoje sudaro adresa. Pagal registru centra
(http://www.registrucentras.lt/adr/apie/sudaro.php), adresa sudaro
tokios dalys:
savivaldybė, seniūnija, gyvenamoji vietovė, gatvė, pastato numeris gatvėje
Daugeliu atveju seniunija nera reikalinga. Bet yra atveju, kai tame
paciame rajone yra du kaimai tokiu paciu pavadinimu, tik skirtingose
seniunijose. Kiek suprantu, dabartineje rewrite versijoje seniunijos
is viso nera. Butu gerai, kad ir tokie variantai veiktu.
> - Taip pat iš production db dingo /test/test atstovas ,)
taip :) grazinsim.
> Taip pat apgalvojom paieškos patobulinimą - su vairantų
> siūlymų, galimybe ieškoti atstovų pagal vardą-pavardę ir
> pagal instituciją, bei kiek patobulinta adresų paieška.
Perziurejau kelis naujus sukurtus tasku. Komentai prie paciu uzduociu:
* https://bitbucket.org/kspiridonovas/parasykjiems/issue/11/letter-entry-form-implement-captcha
* https://bitbucket.org/kspiridonovas/parasykjiems/issue/30/flow-add-a-notification-after-user-fills
Beje, ar Tonis zino, kad prisijunge naujas programuotojas?
Darius
Nemanau, kad čia labai yra ko stebėtis. Perrašydamas kodą rūpinuosi,
kad jis sektų Python stiliaus ir struktūros standartus, būtų išsamiai
dokumentuotas ir kuo paprastesnis. Taip tikiuosi in the long run
sutaupyti mums visiems laiko ir taip pat padaryti kodą lengviau
prieinamą kitiems programuotojams, jeigu to kada nors prireiktų.
Artimiausiu metu ruošiuosi pabaigti tą perrašymą, t.y. pasiekti tą
tašką, kai jis turės visas pagrindines production versijos funkcijas.
Tai paliks didžiąją rugpjūčio dalį smulkesniems patobulinimams,
testavimui, duomenų tikslinimui. Pakeista paieškos sistema jau beveik
baigta ir dabar nebūtina visada vesti tikslų adresą, bei galima
ieškoti pagal institucijos ir atstovo pavadinimą.
Aš irgi nenoriu tas pačias problemas spręsti du kartus, bet kartais
naudinga gerai apgalvoti senąjį sprendimą.
> Kai perdarete adresu saugojima (klase Location
> https://bitbucket.org/kspiridonovas/parasykjiems/src/1cbd2f265ff2/web/models.py#cl-71),
> kazkodel ismetete seniunija. As sugaisau nemazai laiko kol
> issiaiskinau, kas Lietuvoje sudaro adresa. Pagal registru centra
> (http://www.registrucentras.lt/adr/apie/sudaro.php), adresa sudaro
> tokios dalys:
> savivaldybė, seniūnija, gyvenamoji vietovė, gatvė, pastato numeris gatvėje
>
> Daugeliu atveju seniunija nera reikalinga. Bet yra atveju, kai tame
> paciame rajone yra du kaimai tokiu paciu pavadinimu, tik skirtingose
> seniunijose. Kiek suprantu, dabartineje rewrite versijoje seniunijos
> is viso nera. Butu gerai, kad ir tokie variantai veiktu.
Gerai, kad parašei, nes šito nežinojau. Tai nedidelė problema ir
galima lengvai tą laukelį sugrąžinti. Jeigu turi kokių kitų komentarų
apie pakeitimus, tai rašyk, žinoma.
Tiesiog kazkaip nustebino mane tai, is pradziu gal net suglumino, nes
nei is Miriam, nei is taves apie tai nebuvau girdejes. Siaip naudos is
perrasymo tikrai bus, jau dabar matau, kad kai kurie dalykai padaryti
geriau nei buvo. Ypac jei perrasymas vyks tokiu greiciu kaip dabar
eina komitai :)
>> Daugeliu atveju seniunija nera reikalinga. Bet yra atveju, kai tame
>> paciame rajone yra du kaimai tokiu paciu pavadinimu, tik skirtingose
>> seniunijose. Kiek suprantu, dabartineje rewrite versijoje seniunijos
>> is viso nera. Butu gerai, kad ir tokie variantai veiktu.
> Gerai, kad parašei, nes šito nežinojau. Tai nedidelė problema ir
> galima lengvai tą laukelį sugrąžinti. Jeigu turi kokių kitų komentarų
> apie pakeitimus, tai rašyk, žinoma.
Mane butent ir nustebino, kad nebuvo jokiu paklausimu apie
subtilesnius dalykus, nes jei nebuciau uzsimines apie tai, gal rewrite
branche ir nebutu tam tikru dalyku. Cia ne skundimasis, o tiesiog
prasymas ir kitus dalykus kartais aptarti ir siam mailing liste, nes
daug dalyku jau buvo apkalbeta ir aptarta, tik gal nepadaryta. As ir
stengsiuos aktyviai perziurineti kas vyksa su kodu ir su taskais, ir
duoti savo feedbacka.
Ok, tai dar mane domina sie dalykai su rewrite:
* Ar bus itrauktas lrvalstybe.lt ir registru centro svetaines
scrapinimo ir importavimo i DB kodas? Kol kas jo rewrite nera, ir
neradau vietos, kuri butu jam palikta
* Kaip su csv importavimo funkcija? (/data/update/) , ar ja irgi
ruosies itraukti?
--
Darius
Na, taip, aš noriu kuo greičiau pasiekti tą tašką, kai jis turės visas
pagrindines funkcijas.
> Mane butent ir nustebino, kad nebuvo jokiu paklausimu apie
> subtilesnius dalykus, nes jei nebuciau uzsimines apie tai, gal rewrite
> branche ir nebutu tam tikru dalyku. Cia ne skundimasis, o tiesiog
> prasymas ir kitus dalykus kartais aptarti ir siam mailing liste, nes
> daug dalyku jau buvo apkalbeta ir aptarta, tik gal nepadaryta. As ir
> stengsiuos aktyviai perziurineti kas vyksa su kodu ir su taskais, ir
> duoti savo feedbacka.
Feedbackas yra gerai. Šiaip aptarimai vyksta issue trackeryje.
> Ok, tai dar mane domina sie dalykai su rewrite:
> * Ar bus itrauktas lrvalstybe.lt ir registru centro svetaines
> scrapinimo ir importavimo i DB kodas? Kol kas jo rewrite nera, ir
> neradau vietos, kuri butu jam palikta
> * Kaip su csv importavimo funkcija? (/data/update/) , ar ja irgi
> ruosies itraukti?
Jei prireiks, pridėsiu scraperį. Kai bus funkcionali sistema, į kurią
įkelsim dabartinius duomenis, tada bandysim sugalvoti, kaip tuos
duomenis geriausia tvarkyti. Scrapinimas turbūt būtų naudingas, bet
tikiuosi sugalvoti normalesnę sistemą redaguoti duomenis, nei CSV.
Noriu pabandyti kaip nors pritaikyti django-admin ar panašiai padaryti
web interfeisą. Nors didelį duomenų kiekį galbūt patogiau redaguoti su
spreadsheetu. Čia reikia įvertinti kokio redagavimo reikės. Būtų gerai
jei parašytum savo paties mintis apie duomenų atnaujinimą laikui
bėgant.
Duomenys dabartinėje parašykjiems.lt yra naujesni negu tie, kuriuos
importuoja import komandos iš CSV bylų tavo repositoryje, ane? Jei
taip, tai ar būtų galimybė man juos gauti, pavyzdžiui kaip SQL dumpą?
Arba dar geriau, kaip CSV bylas padarytas su exportdata komanda iš
'production' brancho mano forke.
o kaip vis dėlto darom su prisijungimais nuo production
serverio?
Viena vertus, jau tikrai reiktų pasikRe: Naujas
programuotojas ir darbų sąrašasurti staging'o aplinką, kad
būtų lengviau peržiūrėti / parodyti kitiems darbo
rezultatus.
Antra vertus, kažkas pradėjo tikrai ne iki galo veikti su
dabartine dirbančia sistema - pavyzdžiui, Mildai nepavyko
sukurti ir išsiųsti viešo laiško, taip pat, kaip jau
minėjau, keistai ėmė elgtis ir paieškos mechanizmas. Kol
nėra vartotojų, tai gal ir nesudaro didelės problemos,
tačiau yra blocker'is, norint daryti usertestingą ir po
truputį viešinti projektą Facebooke, kad atsirastų pirmų
vartotojų, iš kurių labai reiktų pradėti rinkti feedbacką.
Trečia vertus, norisi ten pat pahostinti ir projekto
blogą, kuriame būtų galima viešinti ir diskutuoti apie
tai, kaip mums sekasi, bei susilaukti feedbacko iš žmonių,
kurie dirba prie giminingų projektų kitose šalyse. Nebent
būtų kokių nors alternatyvių pasiūlymų, kaip tai padaryti,
bet manau, jei jau turim domeną ir hostingą, tai pasikurti
blogą wordpress.org ar dar kur nors - kažkaip ne į temą :)
Miriam
pastaba dėl tinklaraščių:
Siūlau kaip ir KąVeikiaValdžiai naudoti ManoValstybė.lt tinklaraštį:
http://manovalstybe.lt/
taip par nepamiršti ir angliškos versijos:
http://manovalstybe.lt/en/
Dar yra ir Facebooks puslapis:
https://www.facebook.com/pages/ManoValstyb%C4%97/194809627212302
Nors šiuo atveju gal geriau sukurti atskirą (kaip ir KąVeikiaValdžiai)
Atsiųskit vardus ir el. pašto adresus, sukursiu vartotojus tnklaraštyje.
--
Emilis Dambauskas
emil...@gmail.com
gsm: +370-686-07732
http://emilis.info/
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GAT/CC/MC/GG/O dpu(-) s:- a C++ UBLHS++ P(+) L+++ E-(++) W+++$ N+ o-- K? !w O? M-@ V? PS+(--) PE Y+>++ PGP t- 5? X+@ R- !tv b+ DI++++ D+ G e++ h---- r+++ y++++
------END GEEK CODE BLOCK------
On 08/01/2011 03:19 PM, Miriam wrote:
Atsiprasau, kad taip ´stabadau´, jei mano situacijoje taip galima
pasakyti, bet as neturiu reikiamu priemoniu suteikti prieiga prie
serverio. Kai dejai skelbima del naujo programuotojo, as buvau
pagalvojes apie tai, kas bus, jei programuotojas atsiras pora dienu po
mano atostogu pradzios, bet tiesa sakant, tikrai nesitikejau to. As
siuo metu esu atostogose, ir su esamomis priemonemis geriausia ka
galiu padaryti, tai atsakyti i jusu laiskus karts nuo karto. Is
atostogu gryztu kita savaite, tad manau treciadieni - ketvirtadieni
surasiu tam laiko (08 10 arba 08 11) ir is karto suteiksiu jums
prieiga. Ar tinka toks variantas? Galbut yra dar ir antras
variantas, jei pirmasis netinka. Berods Emilis turi prisijungima, gal
jis galetu ta padaryti anksciau nei as.
Darius
--
Darius
galvojau, kad nebepamenu savo slaptažodžio ant to serverio, bet pasirodo
pamenu.
Tai jei gaučiau naujojo programuotojo kontaktus (vardas pavardė, el.
paštas, mobilus) galėčiau sukurti vartotoją.