WhoisHR - prvi dan razvoja

Posted on Monday 25 February 2008

10:35
Prema planu i programu radit na WhoisHR-u sam trebao počet u 10:00, ali nažalost backlog mailova koji se stvorio preko vikenda nije bilo moguće riješit u 1h pa smo pola sta behind schedule. Bacam se prvo na dizajn.
Kod ovakvog tipa projekta dizajn zaista nje nešto presudno. Content je king i važno je da to liči na nešto, ali nažalost ja o dizajnu nemam pojma i bilo kakav moj pokušaj da izdizajniram nešto propao bi na samom početku. Vjerovali iil ne upravo zbog toga je dizajn nešto što mi najteže pada u cijelom projektu i nije nešto što mogu samo sjest i napravit (u normalnim okolonostima naravno imam ljude koji obave posao umjesto mene). Na svu sreću ima puno ljudi kojima dizajniranje ide jako dobro i koji su voljni ustupit mi svoje uratke. Kako ne kanim krast ne zanima me nikakav Template Monster ili slične stranice već isključivo templatei koje mogu legalno pod nekom licencom uzet, modificirat i potpisat originalnog autora. Layout treba biti as simple as possible. Nekakav header, meni, jedan širok stupac za sadržaj i možda sidebar, te minimalistički footer za copyright. Sve dakako valid XHTML/CSS i sa što manje slika jer su zaista nepotrebne u ovom slučaju. Bacam se na traženje templatea.

11:37
Pravo je čudo kakvih se sve spektakularnih templateova može naći potpuno besplatno. Nisam neki autoritet, ali čisto subjektivno hrpa templateova koje sam upravo pregledao bolja je od većine stvari koje se mogu kupit na Template Monsteru i sličnima.
Sad vremena je prošlo kao od šale i prisilio sam se suzit odabir na dva templatea iako sam mogao utrošit još barem par sati na traženje. Oba su za WordPress što dakako ne predstavlja neki problem jer nam treba samo XHTML. Prvi izbor je Blue Kino 1.3, a drugi Simpla. Tražio sam apsolutnu jednostavnost i dobar kod kako bi imao što manje posla oko sređivanja istog. Sada slijedi konačan odabir teme i sat, sat i pol modificiranja i sređivanja. Nadam se da ćete se moći suzdržati od “tema ti je koma”, “nikad nism vidio ružniju temu” i sličnih hejterskih komentara :-)

13:00
Juhuuuuuuu, ahead of schedule! Dizajn je gotov, nekom će bit OK nekom manje. U krajnjoj liniji nije ga problem zamijenit jer Smarty sve to handlea. Izbor je pao na Simplau zato što mi se sidebar više sviđao od header menija. fam fam fam ikone su se još jednom pokazale apsolutno briljantnima i odlično su se uklopile. Vjerujem da je na ekskluzivnom v0.1 screenshotu sve jasno osim zelene ikonice sa strelicama i brojkom 7. To je broj domena hostanih na dotičnom IP-u (za znatiželjne, dokumentirani rekord jednog domaćeg hostera je 900). Tijekom razvoja će dakako doći do neznatnih izmjena u elementima na sidebaru … ali generalno govoreći layout i dizajn je gotov. Pokoja greška u XHTML-u i CSS će biti riješena u hodu. Ikone valja prebaciti u spriteove, smanjit broj CSS klasa, vidjet di je pametnije radit selektor po idu ili classu, al to sve ako bude vremena.
Ovom prilikom bi želio izrazit svoje negodovanje po pitanju činjenice da postoji više od jednog browsera na svijetu. Jednostavno me više uopće nije briga oće li to biti IE ili FF (koji je moj izbor u casual surfanju i developmentu). Naprosto neka netko lupi nogom o pod i kaže “ovo je the browser”, a ostalo neka zabrani/ukine/obriše. Kada bi zbrojio sate koje sam utrošio na modifikaciju CSS/JS koda kako bi relativno jednako radio u FFu i IEu mislim da sam za to vrijeme mogao kuću sazidat. Uzrujalo me što sam potrošio pola sata kako bi pozicionirao footer na dnu stranice bez obzira na visinu sadržaja. Trivijalan task ako želite da radi samo u jednom browseru, ali kada se tu bagra ubaci sa svojim custom tumačenjima standarda ….
Postaje pomalo naporno programirat i usput blogat, a da ne govorim da se i na telefon povremeno treba javit. Multitasking je katkada zaista loš za produktivnost.
WhoisHR - v0.1 dizajn

14:05
Rješena je domena, DNS-ovi i potreban softver na serveru. Za one koji se pitaju zašto sam to radio sada kad je to “10 minuta posla” odgovor je jednostavan: da, to je 10 minuta posla, ali ako nešto zaribam ispravljanje može trajat satima, ako ne i danima pa mi iskustvo nalaže da djelujem preventivno.
Do prije par godina sam bio jedan od onih koji uvijek moraju imat zadnju verziju softvera instaliranu na serveru. No nema ljepše stvari nego kada čovjek par puta kvalitetno udari glavom u zid. Nekoliko takvih nepromišlejnih updateova stajalo me dobrih tjedan dana posla pa sad s puno većim oprezom koristim yum i slične stvari. Iduće je na redu dokumentiranje baze i razrada nekih klasa i funkcija.

14:45
Dokumentirao sam i stavio na papir sve što sam mislio. Ispalo je ukupno 13 tablica. Isprva ih je bilo 16-17 ali sam onda zaključio da sam pretjerao sa normalizacijom i kliknuo undo nekoliko puta. Iako se držim normalizacije puno mi je važnije razmislit kako će se ti podaci konkretno koristit i s kojim upitima će se dohvaćat. Dizajn baze prema tim parametrima može značajno ubrzat rad poglavito kada je riječ o projektu u kojem će većina tablica imat oko 100 tisuća unosa što i nije neka brojka, ali ako napravite primjerice SELECT * FROM table ORDER BY RAND() LIMIT 1 stvar će potrajat dobrih 3-5 sec na bilo kojem stroju. S indeksima sam također vrlo oprezan jer neke tablice će imat gadnu fragmentaciju, a puno indeksa znači da nas prosječan write u tablicu jako puno košta. S druge strane dobro postavljen indeks ubrzava upit na desetke i stotine puta.

15:40
Uspiješno sam kliknuo new project na lokalnom računalu :-) Provjerio sam jel sve ok sa bazom, jesu li se generirali svi fileovi, modeli, viewovi, controlleri, lokalni DNS zapisi (da i ostali iz firme mogu pristupat projektu preko http://whois.lokalno). Provjerio sam ima li nekog kardinalnog razloga za update komponenti poput Smartya (nema).
U svakodnevnom radu koristim Win XP SP2. Tipkam u Zend Studiju. Više manje sam zadovoljan, ali otkako su prešli na Eclipse nisam baš oduševljen. Plus toga preskup je i kada se otvorio previše fileova ne ide mu u prilog što je pisan u Javi. Već neko vrijeme razmišljam o prelasku na neki drugi IDE ali nisam samo ja u pitanju pa nije to baš samo tako. Za prčkanje po bazi koristim SQLyog. Ima par stvari koje nisu idealno riješene, ali po meni je najbolji MySQL GUI.
Moj framework je nakon cca 3 godine razvoja u verziji 2.2. Ne volim se razbacivat verzijama, ali realno mogao bi biti u v4. Isprva je mojeg koda bilo tek oko 30%, a sada ga ima cca 70%. Tipičan primjer evolucije frameworka je DAL koji koristim. Davnih dana sam se odlučio za ezSQL koji je zadovoljavao sve moje potrebe i nije bio glomazan poput primjerice Pear::DB-a. Malo po malo dodavao sam kod dok nije došlo do implozije :-) pa sam tada sve nanovo napisao. Kod je sada 100% moj ali temelji i ideje su definitivno od Justina koji je napisao izvornu stvar. Koristim i ponešto stanjenu verziju Smartya sa podosta custom pluginova. Uglavnom zastupam tezu da x ljudi koji rade y godina može napravit puno bolju stvar od mene koji radim nešto par dana sve i da sam Einsteinov sin.

16:45
Za početak bazu treba napunit sa sljedećim informacijama o svakoj domeni: IP, name serveri, title i hosting tvrtka. To na prvi pogled nije uopće komplicirano, ali nekoliko detalja pokazuje da problema ipak ima. Kao prvo govorimo o 50 tisuća domena pa faktor vremena nije zanemariv i važno je da se stvar odigra u konačnom vremenu. Drugo je 90/10 faktor. Uzmimo za primjer title neke web stranice. Napisat algoritam koji će u 90% slučajeva dohvatit title je cca 20min posla, ali za dobit rezultate od ovih preostalih 10% domena mogu trebati sati programiranja tj 90% vremena. Samo neki od problema su: naša slova, redirekcije, spor odaziv domene i greške u HTML-u. Sve su to manje poteškoće, ali dublje ulaženje u problematiku četo otkriva probleme koji na prvi pogled nisu očiti.

17:45
Jednostavno pretraživanje je gotovo. Sa punjenjem baze, kao što sam i predviđao, ima problema. Ponajviše zbog sporosti. Problemu sam doskočio prebacivši se na OpenDNS, a zavrtio sam dio domena na još jednom stroju. Sada se proces odvija na tri servera pa se nadam da će do sutra ujutro barem 75% biti gotovo.
Za sada sve ide prema planu i programu i čini se da će biti vremena i za tweakanje, optimizaciju i slične “sitnice”.

9 Comments for 'WhoisHR - prvi dan razvoja'

  1.  
    25.2.2008. | 10:55
     

    Meni su ovo najdraze stranice za free (open source) templateove:

    http://www.solucija.com
    http://www.oswd.org
    http://www.openwebdesign.org

    HTH

  2.  
    vuk
    25.2.2008. | 11:04
     

    Ja koristim Template World, a on ima nekoliko besplatnih xhtml/css templatesa:
    http://www.templateworld.com/free_templates.html

  3.  
    25.2.2008. | 11:58
     

    a to ide real time :) how nice. Da, besplatnih templatea za wordpress koji izgledaju dobro ima stvarno na bacanje.

  4.  
    25.2.2008. | 12:11
     

    Ja sam našao nekoliko vrlo lijepih na http://www.freecsstemplates.org

  5.  
    Nutshell
    25.2.2008. | 22:36
     

    Zbog cega je mana Eclipsi da je pisana u Javi? Nije hate komentar, samo me zanima argument. Inace, zanimljivo je citati o napretku projekta!

  6.  
    26.2.2008. | 0:20
     

    @Nutshell: nisam baš tako mislio :-) Zendu zamjeram što je pisan u Javi (iako je lako moguće da to nije uzrok problema) jer se vuče ko krepana kokoš kada otvorim u njemu sve što želim otvorit. Kada sve to otvorim u recimo PhpED-u (koji kod mene konkurira kao zamjenik Zenda :-)) sve se odvija puno brže. A glede Eclipsa, to je čisto subjektivno. Naime kupio sam Zend i smatram da nije nimalo jeftin. Prelazak na Eclipse mi ostavlja gorak okus u ustima jer ga doživljavam kao neku uštedu od strane Zenda. Nećemo zaposlit još 5 programera da to naprave za nas nego ajmo uzet Eclipse. A samo razvojno okruženje kao takvo …. protiv njega nemam ama baš ništa, dapače.

  7.  
    26.2.2008. | 12:59
     

    Par brzih komentara:

    1. Moj IDE of choice je kombinacija Komodo + Dreamweaver.

    2. Glede pravila 90/10, ima ona stara programerska: za napisati prvih 90% koda, treba ti prvih 90% vremena, a za preostalih 10% koda treba ti drugih 90% vremena. :)

  8.  
    Vjeko
    26.2.2008. | 17:39
     

    Profulao si smisao glede jednog browsera. Mora postojati jedan standard, browser ne bi smio biti na tržištu ako ne udovoljava tom standardu. Proširenja standarda su dobra - ona vode novim standardima ako postanu općeprihvaćena. Ali jedan browser - definitivno ne. Browser je rendering engine + korisničko sučelje. Firefox i Internet Explorer imaju sučelje ko da ih je neki kostolomac dizajnirao. Preznojim se kad sam prisiljen raditi u njima.

  9.  
    01.3.2008. | 11:41
     

    @Vjeko: istina, ja bi zapravo htio da se svi drže standarda pa neka bude n browsera. No, u afektu, kada mi netko krade sate i sate dragocjenog vremena jednostavno poželim da postoji samo jedan browser, ma koji god on bio

Leave a comment

(required)

(required)


Information for comment users
Line and paragraph breaks are implemented automatically. Your e-mail address is never displayed. Please consider what you're posting.

HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>


RSS feed for comments on this post |