Svi postovi sa bloga: Area51. Web dizajn, web razvoj, programiranje

A51 nudi sjajne uslove za rad, atraktivne plate i sistematičan pristup razvoju, a ovaj izazov koristimo kao način da vidimo kakav ste programer. Cela stvar je zamišljena kao zanimljiva mini aplikacija koja može da se napravi u slobodno vreme, a da uz to pokaže Vaše programersko iskustvo i pristup rešavanju problema.

Samostalno rešavanje ovog izazova je uslov da biste konkurisali na programersku poziciju u našoj firmi.

Izazov

Uz pomoć bilo kog popularnog PHP frameworka napravite mini aplikaciju koja:

  • Uvozi sadržaj fajla fraze.xml u bazu podataka. Neka potpis svake "fraze" bude njen MD5 hash.
  • Iako je sam XML fajl mali, potencijalno može biti dosta velik (hiljade fraza) tako da savetujemo korišćenje XPatha za izvlačenje vrednosti, umesto prostih XML to array funkcija.
  • Omogućava korisnicima da definišu jezik (zahtevano polje je ime jezika), a potom prevedu sve fraze iz uvezenog fajla. Povezati frazu sa prevodom za odgovarajući jezik preko njenog "potpisa".
  • Primer interfejsa za prevođenje je ponuđen (prevodilac.png) kao inspiracija. Slobodno ga učinite boljim i funkcionalnijim ako želite.
  • Izlistati sve jezike koji su definisani u bazi podataka i omogućavati posetiocima da otvore jezik i pogledaju listu fraza i njihovih prevoda.
  • Svaki prevod fraze počinje sa +1 glasova. Posetioci sajta mogu da glasaju za prevode podižući im vrednost za 1 za svaki pozitivan glas (i time potvrde da je prevod dobar) ili da joj daju negativan glas, što rezultuje negativnim poenom (i time kažu da je prevod loš). Glasa se klikom na + i - dugmad, koja vrednosti šalju PHP skripti kroz Ajax zahtev (POST metodom).
  • Na stranici jezika, gde su prikazane prevedene fraze osvežavati broj glasova paralelnim Ajax zahtevom svakih 30 sekundi.
  • Prevod fraze koji padne na -1 glasova (tj. dobije doboljno negativnih glasova da padne na vrednost ispod nule) treba da bude automatski obrisan.
  • Prilozi (fraze.xml i prevodilac.png): https://www.dropbox.com/s/vvmjw9hvfc649in/izazov.zip

    Kada završite ovu aplikaciju, zapakujte kod i pošaljite ga na ilija.studen@activecollab.com, sa kratkim instrukcijama za podešavanje skripte.

    Hvala i srećno! Iskreno se nadamo da ćemo se čuti i upoznati, te da ćete postati deo našeg tima!

    A51 doo je softverska firma iz Novog Sada. Potojimo pet i po godina i fokusirani smo na razvoj web aplikacija koje pomažu timovima i malim firmama da rade efikasnije. Najznačajniji proizvod koji smo izbacili je activeCollab, popularan sistem za upravljanje projektima i saradnju koji koriste hiljade firmi širom sveta, uključujući i zvučna imena kao što su Apple, BBC, Nokia, McLaren, Sony i mnogi drugi.

    Pošto imamo velike planove za postojeće (a i neke nove) proizvode, u potrazi smo za dobrim programerima. Iz tog razloga tražimo:

    Iskusne Web Developere

    Opis posla:

  • Peglanje postojećih i razvoj novih mogućnosti u našim proizvodima (objektno orijentisan PHP i MySQL na server strani, HTML5, CSS i mnogo JavaScripta na klijent strani).
  • Rad na sistemima koji nam omogućavaju pakovanje, demonstraciju i prodaju proizvoda (naši interni alati i sistemi koji pokrivaju stvari od deploymenta, preko samog sajta do besplatnih demoa na sajtu).
  • Rad na novim proizvodima i uslugama koje A51 planira da ponudi u budućnosti.
  • Razne integracije i usklađivanje sistema sa novim otvorenim standardima (SSO, standardni formati razmene informacija, integracije i transfer podataka iz drugih popularnih alata i slično).
  • Sve ostalo vezano za razvoj i održavanje naših proizvoda i alata koji nam omogućavaju da ih razvijamo, demonstriramo, prodajemo i podržavamo.
  • Šta nudimo:

  • Atraktivnu i redovnu platu koja prati kurs Eura, u skladu sa vašim mogućnostima i iskustvom.
  • Fleksibilno radno vreme (u razumnim granicama) i dogovorenu radnu nedelju: od ponedeljka do petka. Vikend je vaš i od vas se neće očekivati prekovremeni rad.
  • Nova kancelarija (na Bulevaru Oslobođenja), nov računar (Mac laptop ili desktop), kuvan ručak svaki radni dan.
  • Sistematičan razvoj s jedne strane (agilan razvoj sa čestim šipovanjem), ali i prostor za eksperimentisanje s druge.
  • Očekivanja se u osnovi svode na:

  • Treba da budete dobar programer koji voli da razvija aplikacije i unapređuje ih.
  • Cenimo temeljnost, snalažljivost, sposobnost da se problem primeti, nađe i brzo i efikasno reši, kao i radnu etiku, ozbiljno shvatanje obaveza i preuzimanje odgovornosti za napravljeno. Ukratko, cenimo zreolost u pristupu poslu.
  • Temeljno poznavanje web tehnologija: PHP baziran stack koji koristi MySQL ili sličnu bazu na server strani i HTML5, CSS i JavaScript na klijent strani.
  • Posao obavljamo iz naše kancelarije u Novom Sadu, tako da treba da ste ili iz Novog Sada i okoline, ili spremni da se zbog ovog posla preselite u Novi Sad.
  • Mogućnost verbalne i pisane komunikacije na engleskom je zahtevana, što zbog naših mušterija, što zbog nekih naših zaposlenih (iz UK su i ne pričaju sprski).
  • Fakultetska diploma nije obavezna, ali ne može da škodi.
  • Ukoliko ste zainteresovani, spremite cover letter (za sada nam još uvek ne treba Vaš CV) sa sledećim informacijama:

  • Ime, prezime, kontakt email i telefon.
  • Vaša primarna sfera interesovanja što se programiranja tiče i gde smatrate da možete dati najveći doprinos.
  • Pomenite neke zanimljive projekte na kojima ste do sada radili, a za koje smatrate da govore o Vašem iskustvu i mogućnostima.
  • Primeri koda ne mogu da škode, a bićemo super srećni ako ste doprinosili projektima i bazama znanja (GitHub, StackOverflow i slično), gde možemo da vidimo kako funkcionišete u programerskoj zajednici.
  • i pošaljite ga na info@activecollab.com. Ovaj oglas je stalno otvoren, pošto smo u stalnoj potrazi za programerskim talentom koji želi da se pridruži našem timu i pomogne nam da naši proizvodi budu među najboljima u svetu.

    A51 doo is a software company from Novi Sad. Our focus is development of web based tools that help organisations get more done by helping them communicate better.

    Our flagship product, activeCollab, is used across the globe by thousands of organisations, including some of the largest technology and media companies and well known universities (Apple, BBC, Sony, Nokia, Disney, Yale, Stanford etc, just to name the few).

    As our business and popularity of activeCollab grows, we are looking for new people to join our support team. Currently open position is for:

    Support Engineer

    You will be:

  • Providing great and timely support to people who have activeCollab related questions. Technical support is provided mainly via email, but we don't shy away from screen-sharing tools.
  • Helping customer install, upgrade and troubleshoot their activeCollab installation.
  • Improving end user and administration documentation.
  • If you like to demonstrate products and workflows, you may even host webinars for our users, record workflow videos etc.
  • What we offer:

  • Combination of attractive salary, great work environment and reasonable flexibility with work hours.
  • Work is done Monday to Friday, weekends are off.
  • Clean and quite environment where you can concentrate and get work done. We even offer home cooked lunch served in the office every day.
  • Opportunity to learn new and develop existing skills.
  • Great equipment to work on (new Macs and high quality peripherals). If you don't like Mac OS, no worries - Macs run Windows just fine.
  • Type of energy that only small companies can offer. You will not find inertia and closed minds here.
  • Make the difference! activeCollab is one of the best known end user software products coming from Serbia. It is also a globally recognised project collaboration platform.
  • What we expect from you:

  • Experience with hosting and managing PHP applications is required. Troubleshooting will probably required some serious programming chops, so you should not shy away from PHP, MySQL and JavaScript (we can help with some super heavy problems).
  • Good written and spoken English. We offer tools and resources to improve your English, but good foundation is required.
  • Knowledge of German, French, Spanish or Portuguese is an advantage.
  • Work is done in our brand new office in Novi Sad (in Aleksandar Boulevard Center, on the corner of Bulevar Oslobodjenja and Novosadskog Sajma).
  • Faculty degree is a plus, but not a requirement.
  • How to Apply?

    If you are interested and see a fit here, please prepare a cover letter (we don't need your CV just yet) where you will provide following details:

  • Why do you feel this is a perfect job for you? What attracts you to customer support line of work?
  • Customer is having problem with setting up activeCollab on their server and they are frustrated. Defuse the situation and offer sincere help (you can log in via FTP or SFTP to check what the problem is if they send you connection parameters).
  • activeCollab does not provide typical Gantt chart view. Explain in two to three paragraphs that traditional Gantt charts implementation is not provided, and that customer should take benefit of Outline (which provides easy management of project's task structure) and Milestones (which displays and provides easy management of project timeline) features instead.
  • Please send this letter to info@activecollab.com by the end of 2012. We'll get back to you within one business day with initial response, and take it further from there.

    Thank you for your time!

    ​Početkom oktobra, moj laptop je napunio četiri godine. U pitanju je prva MacBook Pro generacija koja dolazi u unibody paketu (15"). Od kada je kupljen, "osvežio" sam ga dodavanjem SSD-a (apgrejd koji donosi skok u performansama kao kupovina računara novije generacije) i 8GB RAM-a, a bateriju sam silom prilika morao da menjam prošle godine pošto se stara "naduvala". 


    Zahvaljujući tim dodacima, laptop me još uvek lepo služi, ali već lagano gledam da ga zamenim. Mislio sam da će odluka biti no-brainer kada Apple izbaci novu MBP generaciju, ali su me malo "zeznuli" - umesto da samo izmene form factor i učine laptop manjim (a cenu istom), oni su dodali Retina displej zahvaljujući kojem je računar postao osetno skuplji, a i sporiji u nekim svakodnevnim operacijama. Na taj način osveženi ne-Retina MBP je verovatno zadnji trzaj tog formata (znači, nije novi MBP), a sa novim Retina MBP-om ne dobijam ono što sam pre četiri godine dobio sa ovim laptopom (pouzdan računar koji me dobro služi niz godina). Zez...

    To sve znači da ću još malo čekati na novi laptop, a do tad evo mojih očekivanja od novog računara:

  • Bez džidža koje ne koristim: ne sećam se kada sam zadnji put koristio DVD, mrežni kabal ili Firewire. Možemo i bez toga (u MBP Retina to su već izbacili).
  • Manji i lakši: sadašnji laptop mi nije ni veliki ni težak, ali ne postoji razlog da novi ne bude manji i lakši. Kada se izbace nepotrebne stvari, može se napraviti dovoljno mesta za veću bateriju, a da pritom finalni proizvod bude i manji (MBP Retina to već nudi).
  • Baterija da drži duže:​ sa sadašnjim laptopom mogu da izvučem dva do tri sata rada. U zadnjih 4 godine baterije su dosta napredovale, tako da bih voleo da novi može bez većih problema da izvuče bar pet, šest sati (više je bolje).
  • Brži u svakodnevnom radu: kada kupim novi računar, ne očekujem da sporije rešava neke stvari od starog računara. Na žalost, tu MBP Retina ima problem. Naime, potrebno je dosta snage da se ta rezolucija "nahrani" tako da osetno jači novi računar može da "štekne" kod nekih stvari koje ne muče stari računar. Rešiće se to vremenom, ali za sada je tako i to je ono što me najviše odvraća od kupovine Retina modela.
  • Očekivan rok službe od bar četiri godine: kao i kod trenutnog laptopa, i od novog očekujem da bude relevantan kroz četiri godine. Na žalost, manje i kompaktnije znači i zatvorenije u Apple svetu, tako da sam računar treba odmah "nasvirati" (16GB RAM-a i jači procesor od prvog dana). Ovde se provlači i stavka #4. Ako računar dana ima problema sa nekim zadacima, ta situacije će se samo pogoršavati kako godine budu prolazile.
  • U suštini, ono što želim je osvežena verzija uređaja koji me danas dobro služi. Jedino očekivanje koje odstupa od računarske verzije "bržeg konja" je očekivanje da bude future proof, tj. da sadrži tehnologije koje danas nisu opšte rasprostranjene, ali očekujem da će biti kroz koju godinu (ekran visoke rezolucije pre svega).

    Dnevno rešavam stotinak mailova. Ima tu svega: podrške, transkripti razgovora sa mušterijama, notifikacija iz našeg sistema o poslu na kome se radi, ostalih poslovnih mailova i (najmanje)​ lične pošte. Iako ne bih mogao reći da je zatrpan mailbox sam po sebi uzrok stresa, definitivno pomaže pošto sam primetio da tenzija raste sa brojem stvari koje su mi "otvorene" (nezavršene).

    No, u zadnjih mesec dana sam počeo da koristim izuzetno jednostavan pristup kojim jako brzo čistim i lični mail i podršku. Svodi se na primenu dva jednostavna principa koja opisuju dve skraćenice: 4D i OHIO. Znam da su skraćenice i glupe i da bacanje istima nedvosmisleno pokazuje želju govornika da se svidi ili ostavi utisak pametne i informisane osobe. Ipak, ovde ću se držati skraćenica zašto je mail nešto sa čime radim svakodnevno, a skraćenice pomažu da se principi lako zapamte i još lakše koriste, pa postaju skoro kao mantre.

    4D samo kaže da treba da uradite jednu od ove četiri stvari kada primite mail:​

    • Do It - Uradi šta treba odmah umesto da ostaviš za kasnije. Postoji gomila stvari koje mogu da se reše za manje od dva minuta i bolje ih je uraditi odmah, nego ostavljati za kasnije.
    • Defer It - Ako ne možeš da rešiš sada, odloži za kada možeš. Ja svoje stvari beležim u Things i arhiviram mail, ali za ovo može poslužiti i neki folder, podsetnik, parče papira itd.
    • Delegate It - Prebaci nekom drugom da dalje rešava. Ovo je česta stvar na podršci. Mailove šaljem dalje na verifikaciju problema, da se reši neki bug, pomogne mušteriji itd.
    • Delete It - Najslađa D u listi. Brišem sve što mogu, a arhivu ne organizujem. Kada je gotovo, više nije bitno.

    Za razliku od 4D, koji kaže šta da se radi, OHIO kaže kako da se radi: Only Handle It Once. Svaki ponovni povratak poruci koju ste već pročitali bez da je rešena je nepotrebno trošenje vremena i pažnje. Onog momenta kada vidim mail, rešim šta ću sa njim i ne vraćam mu se (osim ako nije odložen). Jednostavno.


    ​Sparrow, Inbox Zero

    Dodatak: U momentu pisanja, help desk kaže 0/0 (prazan inbox, prazan moj queue), a Sparrow pokazuje Inbox Zero. Stoji da je tehnika čist productivity porn, ali meni lepo radi posao.

    U zadnje vreme ne viđam previše SEO priča, saveta i čuda. Možda je to zato što ne zujim po web dev forumima i što sam prilično isfiltrirao blogove koje pratim, a možda je i zato što se napokon prašina (ili mulj?) oko SEO smirila. Uostalom, nije ni bitno zašto sve manje nalećem na slične članke i teme. Ionako imam već izgrađen stav prema svemu tome i sumnjam da i jedan novi tekst ili guru mogu da ga promene.

    Suština mog pogleda na celu priču je da SEO treba ignorisati. Pozicija na pretraživačima je rezultat nečega dobrog što radite, a ne nešto što treba da izmanipulišete. Stvari kao što je dobra tehnička realizacija sajta, čisti linkovi, pravilan odabir ključnih reči itd pomažu, ali definitivno ne dovoljno ako ono na čemu radite nije vredno nečije pažnje.

    Dobar proizvod i usluga je ono što će (vremenom)​ dovesti do dobre pozicije na pretraživačima. Sve ostalo je po meni jalov posao i prazna priča (od koje neki konsultatni lepo žive, ali opet…).

    ​Napomena: Ovaj post je stari draft iz 2010. Moj stav se u međuvremenu nije promenio, tako da sam ga na brzinu osvežio i objavio.

    Google Chrome, Preferences dijalog:


    Zend Studio (Eclipse), Preferences dijalog:


    Horace Dediu u "Reverting to the mean":

    ​Rather than assuming that businesses are in a state of average growth or in some anomalous state above or below that average (from which they’ll recover) we need to think of them being either growing or failing. Going straight up or straight down.

    Sudbina kompanija je da ili rastu ili umiru. Samo umiranje može biti jako dug proces tokom koga kompanija lepo živi, ali se ne menja činjenica da lagano nestaje. ​

    Kroz par diskusija koje sam sa @godza imao o iPhone 5, uvek se nekako vratimo na NFC. Moje razmišljanje o tome koje nisam uspeo (stigao?) da verbalizujem se svodi na:

    The truth is that NFC won’t take off without Apple — at least not nearly as quickly as it would with Apple

    Izvor: Technology vs. Utility by Matt Drance

    Sumnjam da Apple ne može da shipuje NFC sada ili čeka da ga neko drugi učini “prevelikim da bi se dalje ignorisao”. Mislim da je istina bliže tome da Apple zna da NFC neće “poleteti” bez njih, te da ga čuvaju za novu generaciju uređaja i dobar use case koji će običnom korisniku (ne nekom zagriženom giku) biti očigledan i jako brzo nezamenljiv.

    Sada se ne bih usudio da predvidim šta je tačno taj use case, ali mora biti dobra demonstracije tehnologije, a za to je potrebno partnerstvo sa nekim poznatim i sveprisutnim brendom (na američkom tržištu). Keyless otključavanje automobila nekog od premium brendova deluje zanimljivo kao demonstracija, ali pre će biti nešto tipa plaćanja računa u Starbucksu telefonom (na ovaj način bi se Apple “ugradio” i uzmeo deo kolača i na tom frontu).

    Android uređaji mogu da se hvale što su tehnologiju dodali ranije, ali najviše će profita uzeti onaj koji tu tehnologiju učini masovno željenom i korišćenom. Sumnjam da su to Google i Android (po statistikama, većina Android korisnika nisu velike “trošadžije”).

    Vreme će pokazati…

    Nasumično određeni, a nepotrebni rokovi lako mogu da nam se obiju o glavu: 

    Unrealistically tight deadlines result in longer-duration projects than desired, and 42% higher cost (Boehm 2000), lower quality, longer time to benefit realisation (if ever) and frustrated and dissatisfied team members

    Takođe:

    Boehm’s work with software projects showed a 42% increase in effort and cost resulting from a deadline that was 75% or less than ideal for the project’s scope and staffing.

    Izvor: Stacy Goff, Tight, Inflexible Deadlines: Scourge of Projects

    Čisto da znate koja cena se plaća kada se forsiraju rokovi koji nisu dobro odmereni i baziraju se na pustim željama umesto na iskustvu i dobrom planiranju. Čak bih se usudio reći da je nemanje nikakvog roka bolje nego imanje pogrešnog roka (loše “šacnut” ili postavljen iz pogrešnih razloga).

    blogodak blog

    Blogodak?

    Blogodak je vaš pogled na domaću blogosferu. Prijavite se i napravite sopstvenu listu blogova koje pratite.

    O projektu

    Podrška

    MyCity.rs

    DevProTalk

    Duhovi iz Palmotićeve 37