shw.rice
 
 

Archive for July, 2006

PHP vs .NET

Monday, July 31st, 2006

Trafilem dzis na artykul sprzed niespelna 4 lat – Debate – .NET V. PHP: Top 10 .NET Myths Exposed, i mimo, iz jest wiekowy, postanowilem sie do niego odniesc.

Po pierwsze napisala go osoba, ktora zajmuje sie szeroko pojetym developingiem przy uzyciu PHP – trudno chyba o osobe mniej stronnicza, nie szukajac jest w firmie Zend. Nawet poczatek zapowiada sie "ciekawie":

This article is intended as "self-defence" for any PHP developers being harassed by over-exuberant .NET fanatics.

Sugerujac, ze bedziemy mieli do czynienia z kolejna bitwa na miare Luke'a Skywalker'a z ciemna strona mocy, ale po kolei.

(more…)

Otwieranie “konsoli” w Windows

Saturday, July 29th, 2006

Okienka sa fajne, okienka sa super, lubie okienka, ale.. jedna z rzeczy dla ktorych lubie korzystac z linuxa jest to, ze multum rzeczy mozna zrobic z konsoli. Nie potrzebne ci kilkumegabajtowe GUI, zeby zrobic prosta operacje, albo uruchomic cos w tle. Poza tym jest pewna nalezcialosc, kiedy zabawe z PC-tami zaczynalo sie od DOSa – po prostu niektore rzeczy naprawde latwiej odpalic z linii polecen, niz bawic sie w fancy-gui-stuff.

Zwykle odpalalem Command Prompta przez Start -> Uruchom… -> cmd, ale minusem calej tej operacji bylo to, ze prompt odpalal sie z katalogu profilu – czyli domyslna sciezka najczesciej wygladala "C:\Documents and Settings\shw\". W 95% przypadkow byl to zly wybor [reszta to uruchamianie polecen, dla ktorych sciezka jest niewazna, jak ipconfig itp.].

Dzis postanowilem w koncu zawalczyc z lenistwem i zrobic to jak nalezy – a dokladniej – chcialem ustawic, aby command prompt odpalal sie z katalogu, w ktorym sie znajduje, a nie domyslnego – profilowego.

Sa 2 sposoby na osiagniecie powyzeszego efektu:

  1. Easy way : Istnieje Microsoftowy tweak zapewniajacy taka funkcjonalnosc – Open Command Window Here
  2. Oldchool way : Ustawiamy samemu. Przy otwartym oknie folderu klikamy: Narzędzia -> Opcje folderów… -> Typy plików -> Wybieramy "Folder" -> Zaawansowane -> Nowa -> Akcja: Nazwa_Elementu_w_Menu_Kontekstowym ; Aplikacja używana do wykonania akcji: "C:\Windows\System32\cmd.exe" [Oczywisciej, jezeli dysk i folder Windowsa sa takie]

Od tego momentu klikajac na folderze, bedziemy mieli dostepna dodatkowa opcje, ktora otworzy nam Command Prompt we wskazanym miejscu. Jednak miedzy podanymi sposobami jest pewna znaczaca roznica – po instalacji programu i kliknieciu opcji command prompt bedzie umieszczony wewnatrz folderu, na ktorym kliknelismy. Sposob samodzielny otwiera "konsole" w miejscu, w ktorym znajduje sie klikniety folder [roznica 1 zagniezdzenia].

Kondrat na prezydenta

Tuesday, July 25th, 2006

Tak mi sie skojarzylo a propos Marka Kondrata – Najsztub bowiem mial go namawiac usilnie do startowania w wyborach na prezydenta.. Warszawy niestety. Nie jestem na biezaco, nie wiem kiedy wybory beda, ile czasu na decyzje, ale ja bym sie wcale, ale to wcale nie pogniewal za takiego prezydenta – oby oby.

Ale dzis z innej paki – trafilem na boskie nagranie i musialem sie podzielic. Oto swoista oda do Giertycha Romana. I jaka prawdziwa..

Late binding

Monday, July 24th, 2006

Nemerle – jeden z jezykow .NET’owych, tworzonych btw przez Polakow, zaprezentowal kolejna ciekawa funkcje – Late binding.

Po zastosowaniu slowa kluczowego late, zgodnie z nazwa, “wiazanie” nie jest tworzone w trakcie kompilacji. Mozemy dzieki temu wywolac czesc klasy (wlasciwosc, metode), jezeli jestesmy pewni, ze takowa tam jest.

Najlepiej widac to na przykladzie:

def GetLength(obj : object)
late obj.Length

System.Console.WriteLine(GetLength("String testowy"))
System.Console.WriteLine(GetLength([0, 1, 2, 3]))

Jak widac – nie sa stosowane zadne interface’y, nie sprawdzane jest czy przekazywany obiekt rzeczywiscie posiada wlasciwosc Length – robione jest to dopiero po wywolaniu kodu.

I wszystko ladnie, pieknie – tyle, ze mi to nie pasuje. Minelo troche czasu od kiedy stukalem sobie w pehapie i mialem w nosie wszystko. Teraz [z reszta wtedy tez - tyle, ze mniej i ze to byla z kolei nalecialosc z c++] czyms naturalnym dla mnie jest kontrola typow czy typy same w sobie. Brak tego to ulomnosc, uproszczenie. Przydatne jest to przy pisaniu skryptow, ale w przypadku powazniejszych aplikacji – tym bardziej traci to sens im bardziej skomplikowany i rozrosniety jest projekt. Nie mowiac juz o czynnikach wydajnosciowych.

Late binding, duck typing – to przydatne feature’y, mile, upraszczajace pewne sprawy, w pewnych okolicznosciach. Byle uzywane z glowa, a nie downgrade’ujace jezyk programowania do poziomu jezyka skryptowego. Swoja droga – samodzielne wykonanie takiego late bindingu jest bardzo proste – .NET posiada wszystko co potrzebne, aby wykonac to samemu – wystarczy chociazby metoda InvokeMember z klasy Type [uzyskana dzieki GetType], chociaz sposobow jest kilka.

Choose your enemy!

Saturday, July 22nd, 2006

W “Ameryce” jest zwyczaj, ze np. w trakcie kampanii wyborczej na burmistrza miasta, ludzie [z oczywistych wzgledow glownie z przedmiesci] wystawiaja kolorowe tabliczki przed domy. Jedni czerwone, drudzy niebieskie itd. Na nich napisane jest na kogo glosuja. Ciekawym jest, ze caly dom wydaje sie wtedy jednomyslny, ale to temat na inna notke.

Idac jednak za przykladem oraz Rafi’m – postanowilem podchwycic ten zwyczaj, lekko go modyfikujac.

nie_glosuje_na_pis

Mi to tam nie robi wielkiej roznicy – i tak jestem zdecydowanie przeciwko calej wielkiej trojcy.

Wybierz tło:
Gotowe Gotowe