LoanCalculator za Siemens SK65

Loan Calculator za Siemens SK65 Od nedavno sam vlasnik finog, teškog 🙂 i elegantnog telefona, Siemens SK65.

Telefon sa dosta memorije (64 Mb, od toga dostupno korisniku 35Mb), odličnim delom za PIM (Personal Information Manager) koji se sinhronizuje sa Microsoft Outolook-om, i intuitivnim sistemom menija. Pokazao se kao savršeni kandidat za zamenu već ostarelog Handspring Visor Deluxe, Palm kompatibilnog uređaja.

Ono što mi je na novoj platformi nedostajalo su mali programčići za svakodnevne zadatke. Na sreću, SK65 podržava Javu za mobilne uređaje – Java 2 Platform, Micro Edition (J2ME) i za većinu programa sam našao freeware ili open source J2ME zamenu; no, za jedan, Loan Calculator, nisam uspeo, a u današnje vreme tako nešto je neophodno 😉

Kako odavno nisam učio nešto novo, neku novu platformu / jezik, ovo je bila super prilika i rezultat je pred vama: LoanCalculator, J2ME (CLCD 1.1 i MIDP 2.0), program koji za dati iznos, visinu kamate i period kredita izračunava mesečnu ratu, deo koji uzima banka
kao i ukupan iznos otplate kredita. Testiran je kako u emulatoru, tako i u samom telefonu i trebalo bi da radi na svim Siemens telefonima serije 65, kao i na drugim telefonima koji imaju podršku za J2ME (CLCD 1.1 i MIDP 2.0).

Datoteka je ovde: LoanCalculator.zip: ZIP sa .jar i .jad datotekama, 5kb

Za razvoj sam koristio:

  • Eclipse razvojno okruženje
  • EclipseME , Eclipse dodatak za razvoj midleta (mobilnih aplikacija)
  • Ant i Antenna za generisanje finalnih Jad i Jar fajlova

ASP.NET projekti i sistemi za verzionisanje koda – opustite se :)

.Net je po meni nešto najbolje što je izašlo iz Majkrosoft kuhinje za programere.

Iako je koncept među-koda (p-code, intermediate code) veoma star, MS ga je podigao na jedan viši nivo (verujem da mu je Java u tome puno pomogla ;)), donoseći jako udobnu i efikasnu platformu za rad.

Sad, naravno da nije savršena (neki bi rekli da je to nemoguće, kada je od Majkrosofta ;)) ali je ogroman pomak u odnosu na Win32 / Visual Studio 6 SP 6 kombinaciju. Visual Studio .Net 2002 a zatim i Visual Studio .Net 2003 su udobna (premda malo sporija) okruženja gde se najveći broj uobičajenih zadataka odrađuje jednostavno / intuitivno.

Problemi nastaju kada je situacija malo komplikovanija – čitaj, koristi se neki od sistema za kontrolu izvornog koda (SCC – Source Code Control sistemi) kao što su Visual Source Safe, Source Of Site, Perforce, SubVersion itd – VS.NET tada zna da bude jako svojeglav kada se radi o kontroli ASP.NET projekata – te mu treba prazan virtuelni folder, te ima problema sa dovlačenjem celog Solutiona, ako postoji virtuelni folder to ga boli …

Sa druge strane, odustajanje od ASP.NET projekata i korišćenje standardnih Class Library projekata rešava ove probleme, ali se gubi udobnost ispravljanja (debagovanja) ASP.NET projekata na prirodan način, kao i ugrađenih čarobnjaka za forme i korisničke kontrole (User Controls).

Na sreću, postoji rešenje koje miri oba zahteva: izbeći SCC kontrolu ASP.NET projekata kako je MS to zamislio, a zadržati sve ostalo:

ASP.NET Applications without Web Projects

Po cenu malo ručnog dorađivanja konfiguracionih fajlova samog Visual Studija dobijate daleko udobniji rad sa ASP.NET projektima, gde je potpuna kontrola o smeštanju datoteka u virtualne direktorijume samo vaša (Aleče, ovo je za tebe ;))

Ulepšajte XML

Vrlo često se dešava da u svom dnevnom poslu radim sa XML datotekama, nastalim kao rezultat rada nekog servisa ili programa.

Te datoteke su najčešće bez preloma redova, bez uvlačenja paragrafa, samo jedna veeelika linija teksta koja nosi svu informaciju. Ovo, naravno, ne smeta mašinama kod obrade takvih datoteka, no smeta meni, malo ;), kao običnom smrtniku, posebno kod poređenja dve verzije istog fajla – u originalnom formatu je to nemoguće uraditi.

Sad, većina editora namenjenih radu sa XML-om imaju mogućnost “ulepšavanja” XML koda, i to je sve lepo i fino ako radite nad jednom, dve … do 5 datoteka. Šta raditi ako je pred vama direktorijum (da ne kažem “fascikla”, daleko bilo ;)) sa stotinak datoteka koje treba pregledati?

Programer bi prvo posegao za “napisaću program za to”, ali to najčešće nije racionalno; bolje uposliti vijuge i dođi do jednostavnog rešenja, brzo.

Problem: kako od nečitljivog XML-a dobiti čitljiv (po ljudima) XML?
Rešenje: transformacijom polaznog u ciljni XML, sa željenim formatiranjem
Tehnologija: XSLT, ili prirodni jezik za transformacije XML fajlova u nešto drugo

Iako XSLT smatram jednim od najružnijih ikada napisanih skript jezika (a nagledao sam ih se), za ovu svrhu je i više nego pogodan. Potrebne su dve stvari:

1. XSLT datoteka sa instrukcijama za izvođenje transformacije (MakePretty.XSLT) – u ovoj datoteci je upravo celo rešenje:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- Ulepšavanje XML coda -->
<xsl:output method="xml" indent="yes" /> <!-- indent="yes" je ključno -->
<xsl:template match="*">
   <xsl:copy>
      <xsl:copy-of select="@*" />
      <xsl:apply-templates />
   </xsl:copy>
</xsl:template>
<xsl:template match="comment()|processing-instruction()">
   <xsl:copy />
</xsl:template>
</xsl:stylesheet>

2. Način da izvedemo transformaciju:

Predlažem NXSLT, jako dobru konzolnu aplikaciju Olega Kačenka (nisam siguran kako se piše ime na srpskom :?). Sada se obrada celog direktorijuma sa XML fajlovima svodi na:

for %i in (*.xml) nxslt.exe “%i” MakePretty.XSLT -o “out\%i”

(pretpostavka je da želite sve datoteke konvertovane u isto ime u poddirektorijumu out)

Update, 15.01.2005 – Način 2

Zahvaljujući Danilu (hvala Danilo :)), evo još jednog alternativnog načina za isti posao:

LibXML, odlična biblioteka, i deo te instalacije je xmllint; jedno „xmllint –format“ će odraditi posao.
Ovde je Win32 implementacija.

RentACoder, Guru – dodatni prihod za IT profesionalce

Uobičajeno pitanje u IT vodama je kako zaraditi dodatni novac, bez peripetija koje donose dva redovna posla 🙂 U našim krajevima je to još uobičajenije pitanje 😉 Jedan od odgovora je korišćenje usluga sajtova koji se postavljaju kao posrednici između onih koji nude IT usluge i onih kojima su te usluge potrebne…

U vreme IT boom-a (1998 – 2000) broj sajtova koji su se bavili ovim poslom je bio ogroman; no, kako se IT balon tada izduvao, tako su ostali samo najiskusniji i najozbiljniji – RentACoder i Guru. Moja iskustva sa RentACoder-om su dobra, i toplo ga preporučujem kao mogući izvor dodatnog prihoda.

RentACoder
Prijava na RAC-u je besplatna; potrebna vam je važeća mail adresa i to je to uglavnom. Odmah po prijavi možete učestvovati u nadmetanju za jedan ili više poslova po principu aukcije: kupci ostavljaju opis posla koji treba odraditi, a onda registrovani programeri pokušavaju da osvoje posao, pokušavajući kupca da ubede da su baš oni pravi izbor i da daju najbolji odnos cene/kvaliteta rezultata.

Za posredovanje između zainteresovanih strana RAC uzima najčešće 15% ili 3 US$ (šta je veće); u slučaju da se radi o doradi starog posla, onda je ovaj procenat 10%. Tu su i troškovi isplate, o tom malo kasnije.

Kao i svuda, svaki početak je težak – pokušaću da vam pomognem savetima:

  • Pročitajte tekstove za kodere – pisali su ih iskusni RAC korisnici, i u njima ćete naći korisne i praktične savete
  • Pripremite dobro vaš rezime – to je vrlo često odlučujuća stavka kod neodlučnih kupaca
  • Budite jako uporni – potrebno je i 10 – 20 pokušaja dok se neko ne odluči za vas prvi put
  • Prve poslove (tačnije, prva tri) nudite po smešnim ciframa, odradite ih profesionalno i zamolite naručioca da oceni vaš rad – potrebna vam je što bolja pozicija za ozbiljnije poslove
  • Gledajte da konkurišete samo u oblastima gde ste zaista jaki; pokušaj žongliranja vam može samo doneti loše ocene.
  • Trudite se da zahteve za posao dobro razumete; tražite dodatne informacije sve dok niste sigurni da ste raščistili sve nejasne stavke – mnogo je bolje da tu ode malo vremena, no da potcenite potrebno vreme za izradu posla.

Kada prikupite novac, treba da odlučite kako želite da vam bude dostavljen; RAC nudi nekoliko opcija, od kojih su na nas praktično primenljive samo dve:

  1. Slanje čeka poštom
    Cena slanja čekom je 10 US$; kada ček stigne, odlazite u vašu omiljenu banku i dajete ček na naplatu; to će vas koštati dodatnih 1 – 2% kao i barem 3 nedelje dok se ček ne naplati. Ako se radi o većem iznosu, preporučujem da izaberete Priority Mail varijantu, koja će vas koštati još 26 US$, ali će stići daleko brže i daleko sigurnije no obična pošta
  2. Western Union
    Troškovi su 10$ + cena WU usluge koja uopšte nije mala: na 500 US$ ćete platiti 40$ troškova (na manje iznose ide i do 16%), plus će vam isplata biti u evrima, po internom WU kursu koji je obično niži no redovan kurs 🙁 No, to je cena za brzu uslugu – do novca stižete za 10tak dana, bez jurenja po bankama.

Isplata novca ide do dva puta mesečno (sredinom i krajem meseca); možete lako podesiti da se ne isplaćuje preko nekog minimalnog iznosa (preporučujem) da bi smanjili ukupne troškove.

Ako imate viška slobodnog vremena a manjak slobodnih sredstava, obavezno probajte – vrlo često se dešava da RAC bude mesto gde ćete susresti vašeg sledećeh poslodavca, uspostaviti dobar odnos i krenuti u posao van RAC sajta i uslova.