Ako se ozbiljno bavite Web razvojem na .Net platformi i na bilo koji način želite integraciju sa širokom paletom Yahoo servisa, obavezno obiđite sledeću lokaciju:
Category: Programiranje
Google Code Jam 2006 – finale
Jedna od mnoštva akcija koje Google sprovodi je i Code Jam – programersko takmičenje uz tehničku podršku Top Coder sajta.
Ovogodišnje takmičenje je počelo 14. avgusta a završava se 27. oktobra u Njujorškoj Google centrali, gde će se najboljih 55 takmičiti za nekih 155,000$ u nagradama.
Ono što je vrlo interesantno je spisak finalista ili tačnije, njihova demografska struktura:
Rusija i istočna Evropa | 32 | |
Zapadna Evropa, VB, SAD, Kanada | 14 | |
Kina | 6 | |
Ostali | 2 | |
Hrvatska | 1 |
Nekako sam očekivao poplavu indijskih a zatim i kineskih programera, ali su programeri istočne Evrope i posebno Rusije (20 njih) apsolutno dominantni.
Ne znam kako da objasnim ovo, ali mi nekako prija (valjda po slovenskoj liniji ;)) kada vidim ovakve rezultate 🙂
Knjiga “Operativni sistemi: UNIX i Linux” – besplatno preuzimanje!
U nesvakidašnjem potezu (barem na ovim našim prostorima) moj prijatelj i kolega, Dragan Pleskonjić, stručnjak za operativne sisteme i sigurnost, je svoju knjigu:
Operativni sistemi: UNIX i Linux
dao javnosti kao besplatan download (na gornjem linku je detaljan sadržaj knjige kao i link za preuzimanje).
Pokriveno je mnoštvo oblasti: istorijat, pregled Unix/Linux operativnih sistema, uređaji, sistemi datoteka, shell, Midnight Commander, rad sa mrežom, rad sa štampačima, arhiviranje i backup, itd.
Knjiga je zaista dobra i ako vas ova oblast zanima, preporučujem skidanje, i naravno kupovinu papirne verzije 🙂 (tj. ja recimo zaista dobre knjige na kraju kupim i u papirnom obliku, bez obzira da li ih imam u elektronskom obliku).
Google Code Jam Europe – programersko takmičenje
U potrazi za najboljim programerima, Google se baca na Evropu ovog puta – sponzoriše Code Jam Europe 2006.
Prijava za takmičenje je od 1. do 23. maja; 4 runde:
- kvalifikaciona (23. maja)
- runda 1 (30. maja)
- runda 2 (3. juna)
- finale (29. juna)
Imate na raspolaganju tri moguće oblasti (jezika): C++, Java i C# a tu su i fine nagrade 🙂
Šta čekate? 🙂
Vaš virtuelni računar … besplatno … 2x :-)
Kažu da je konkurencija zdrava stvar – evo jednog primera gde zaista jeste 🙂 Naime, za manje od dva meseca, dva proizvoda namenjena virtuelizaciji (izvršavanju operativnih sistema kao da su obične aplikacije) postali su besplatni!
VMWare je 06. 02. 2006. objavio da VMWare Server postaje besplatan a već 03.04.2006. Microsoft povlači sličan potez i proglašava njihov Virtual Server 2005 R2 besplatnim 🙂
Pa, ako ste programer ili zahtevni korisnik, izaberite vaš porok 🙂 i prionite na download 🙂
Više detalja o samim programima imate u sekciji Programi:
O logopedima i udarnicima – www.radionica.co.yu
Retko koji članak odslika moja duboka profesionalna unutrašnja uverenja tako verno, kao da mi je neko napravio snapshot u glavi; ovo je jedan od tih:
Osim poražavajućeg osećaja da ispravljate tuđe greške i poražavajućeg osećaja da radite isti posao koji je neko pre vas već radio, ispravljanje tuđih “herojskih podviga” sa sobom nosi i rizik da menadžeri obrnuto percipiraju vaše uloge u proizvodnji i udarnika vide kao onog efikasnog, koji gura proizvod napred, a ostale kao one ko manje-više ne rade ništa i stalno nešto zakeraju.
Vrlo topla preporuka da, ako ste na bilo koji način vezani za softversku proizvodnju, pročitate članak … više puta.
.local protiv DLL Pakla
Ako je vaš posao ikada uključivao petljanje sa Windows DLL bibliotekama ili ne-daj-bože COM aplikacijama, sigurno ste iskusili ono što se zove DLL Hell – problem koji se dešava kada deljeni DLL instalacijom nove aplikacije bude pregažen sa lošom (starijom) verzijom i time napravi vašu aplikaciju nestabilnom ili totalno neupotrebljivom.
Microsoft je naravno svestan ovih problema, pa je (prvi) pokušaj za rešavanje ovog problema (ili za rešavanje dela problema): Dynamic-Link Library Redirection – praktično, prvo mesto na kome će LoadLibrary pokušati da locira traženi DLL je lokalni direktorijum same aplikacije.
Ovim se rešavaju problemi sa deljenim “statičkim” tj. ne-COM DLL-ovima; problem sa COM-ovima je bez obzira na lokaciju (možete imati više COM servera na raznim lokacijama na disku) registracija COM servera se nalazi samo na jednom mestu (u Registry bazi) i poslednja registracija će biti važeća.
Da bi ovo razrešio, MS uvodi od Windows 2000 potpunu redirekciju, koja se sada odnosi i na delimično poređenje imena fajla (praktično se odnosi i na imena COM server aplikacija) – ako za vašu app.exe kreirate datoteku app.exe.local (sadržaj same datoteke nije bitan), Windows će sve (obične DLL ili COM datoteke) prvo tražiti u direktorijumu aplikacije – ovo je najbolji način da izbegnete bilo kakve probleme sa verzijama DLL-ova: sve što vam treba držite kod sebe.
(ovo je iskorišćeno kao osnova za više IE instalacija na istoj mašini – a must za bilo kog ozbiljnog web developera)
Od Windows XP/2003 ponašanje je malo promenjeno – ako je app.exe.local datoteka, ponašanje ostaje kao gore opisano; međutim ako je app.exe.local direktorijum, traženje DLL-ova će prvo početi od tog direktorijuma – jako zgodan način za lokalizaciju deljenih datoteka.
Nadgradnja svega ovoga je upotreba manifesta ili Isolated Applications and Side By Side Assemblies (praktično kopija metodologije upotrebljena u .Net svetu), ali kako ovo nisam praktično probao, iskoristite gornji link za više detalja.
Fina kolekcija programa @ Vesic.Org
Posle duže pripreme, jedan od mojih malih velikih ličnih projekata je počeo svoj život:
Fina kolekcija programa @ Vesic.Org (http://www.vesic.org/programi/)
ambiciozno zamišljen kao jedinstvena referenca za software koji vredi imati i koristiti, sa posebnim akcentom na Open Source i besplatne programe.
Ovo neće biti yet-another-list-software-site niti lista koja će brzo rasti – uslovi da se program pojavi ovde je da sam srećni korisnik istog više meseci, kao i da prođe strogu moderaciju (moju :)). Naravno, i vaše preporuke će biti uvažavane i objavljivane.
Format liste je blog, tako da je možete pratiti i preko vašeg omiljenog čitača: RSS link.
Dobrodošli 🙂
HTTP debug alati – Fiddler i HttpSpy
U uobičajenom poslu web developera posmatranje saobraćaja između web pregledača (browsera ;)) i servera je maltene dnevni posao – da li su svi elementi na mestu (404 greške), koje su veličine objekata koji se učitavaju, šta dolazi iz keša browsera a šta se dovlači, koliko HTTP zahteva je potrebno za stranu – sve ovo bitno utiče na odziv i svekupni utisak vaše web aplikacije.
Za gornje zadatke postoji mnogo komercijalnih proizvoda, da pomenem možda najpoznatiji Http Watch – dodatak za IE browser i sa cenom od 249$ (jedna licenca) pa sve do $9950 (kompanijska licenca).
No, ja sam veliki poklonik Freeware i Open Source rešenja, pa se trudim da za većinu poslova (i uspevam) nađem alternative komercijalnim rešenjima. Tako je i ovde:
U početku sam koristio HttpSpy – ovo je više klasičan proxy, koji se postavlja između browsera i servera i hvata sav saobraćaj. Moćna mogućnost ovog programa je simulator modema – smanjivanje brzine konekcije između 14.4k i 256k – na broadband konekcijama (za Srbiju je to 128/64 Kbps ;)) se lako zaboravi na 33kbps klijente – ovo toplo preporučujem u dizajn fazi programa a ne u finalnoj. HttpSpy i dalje koristim kada je potrebna provera za modemske korisnike.
Sada je pravi izbor, teška kategorija, Fiddler– HTTP debugging proxy. Napravljen od strane Microsofta, daleko je od prostog proksija – sem što “hvata” http saobraćaj, parsira ga i prezentuje, omogućava direktnu promenu request/response parova!
Fiddler podržava JScript.NET jezik – uz pomoć prostog event modela, možete se nakačiti na saobraćaj i ispitivati/menjati sadržaj i tako daleko, daleko brže naći i otkloniti problem u vašem kodu. Evo nekoliko jednostavnih primera:
1. Pretvaraj se da je upit došao od Google boot-a:
Event: OnBeforeRequest
Skript: oSession.oRequest["User-Agent"]="Googlebot/2.X (+http://www.googlebot.com/bot.html)";
2. Zabrani učitavanje CSS fajlova:
Event: OnBeforeRequest
Skript:
if (oSession.url.toLowerCase().indexOf(".css")>-1){ oSession["ui-color"]="orange"; oSession["ui-bold"]="true"; oSession.oRequest.FailSession("CSS file"); }
Gomilu ovakvih primera imate i ovde – ScriptSamples biblioteka.
U svakom slučaju, kada jednom probate Fiddler, pitaćete se kako ste bez njega uopšte radili 🙂
Referenca:
- Fiddler – – Freeware, HTTP debugging proxy, analiza i mogućnost izmene http saobraćaja, samostalna aplikacija, potreban .Net framework
- HttpSpy – Freeware, HTTP proxy, hvatanje http saobraćaja i mogućnost simulacije nižih brzina prenosa, samostalna aplikacija, potreban .Net framework
- Http Watch – komercijalni, 249$ – 9950$, dodatak za Internet Explorer
Visual Studio .Net – Linije vodilje u tekst editoru
Visual Studio .Net 2003 je odličan IDE (Integrated Development Environment) sa velikim brojem konfiguracionih ekrana i opcija koje prilagođavaju okruženje vašim željama.
Za one kojima to nije dosta 😉 postoje i parametri koji su blago skriveni – podešavaju se kroz Registry.
Jedan od simpatičnih su Guidelines za Visual Studio tekst editor:
jednostavan način da proverite da li je uvlačenje koda sasvim ok.
Da bi iskoristili ovo, kreirajte dokument u bilo kom tekst editoru, i nazovite ga recimo VisualStudio200x-GuideLines.Reg. Sadržaj datoteke je:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERSoftwareMicrosoftVisualStudio7.1Text Editor]
"Guides"="RGB(128,0,0) 12, 24, 48"
[HKEY_CURRENT_USERSoftwareMicrosoftVisualStudio8.0Text Editor]
"Guides"="RGB(128,0,0) 12, 24, 48"
(ovo je za obe verzije Visual Studija: 2003 i 2005 Beta 2 i očigledno je podešavanje boja kao i raspored linija).
Zatvorite Visual Studio ako je aktivan; duplim klikom na ovu datoteku unesite ove izmene u Registry.
Ako poželite da sklonite ovu opciju, evo datoteke (recimo VisualStudio200x-GuideLines-.Reg):
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERSoftwareMicrosoftVisualStudio7.1Text Editor]
"Guides"=-
[HKEY_CURRENT_USERSoftwareMicrosoftVisualStudio8.0Text Editor]
"Guides"=-
Uzged, ono gore je način za ukidanje vrednosti iz određene grane Registry-ja preko fajla; format je:
Registry-Grana
“Ime ključa”=-