poniedziałek, kwietnia 17, 2006

"Językizm" czyli co mnie razi w C#

Czytałem dziś o C# i znów zacząłem mieć pewne wątpliwości co do tego języka. Dwie rzeczy mnie bardzo zraziły.
Pierwsza rzecz to właściwości czyli takie "wygodniejsze" wg. twórców C# podejście do hermetyzacji.
Chcąc dostać się do wartości pola obiektu, tudzież w bardziej abstrakcyjnym ujęciu odczytać lub zmienić część stanu obiektu możemy:
  • odczytać wartość pola
  • użyć metody dostępowej
  • użyć właściwości
Ta ostatnia "przypadłość" istnieje w C# i Delphi, nie ma jej zaś w Java'ie.
Dla mnie właściwości to taki "ni pies, ni wydra".
Nie jest to łamiący hermetyzacje dostęp do pól przez bezpośredni ich zapis i odczyt, ale nie jest to również jawne użycie metod dostępowych.
Czytając kod używający właściwości nie wiem czy używana jest bezpośrednio wartość pola czy jednak, gdzieś z tyłu wołana jest jakaś metoda. Może to prowadzić do dość "pociesznych" sytuacji gdzie przestawienie dwóch "niezależnych" dostępów do obiektu będzie powodować zmiany działania programu.

Drugą rzeczą, która mi przeszkadza w C# [w Delphi też ;-)] to fakt, że metody nie są domyślnie wirtualne.
Zastanawiałem się nad tym i szczerze nie widze powodu istnienia metod nie wirtualnych ;-)
Gdy mam klasę Ryba z metodą jedz() i dziedziczącą z niej klasę Błazenek z metodą jedz(), oczekuje że jeżeli stworzę obiekt Nemo na podstawie klasy Błazenek to niezależnie czy będę się do niej odwoływał przez kontekst Ryby czy Błazenka to zawsze zawołam metodę jedz() z Błazenka.... i tak jest w Java'ie gdzie wszystkie metody są wirtualne.
Sensu w tym nie widzę.... ;-)
Okazuje się, że dopadł mnie "językizm" ;-)
Językizm przez analogię z rasizmem i gatunkizmem, czyli uprzedzenia do innych języków programowania.

PS: zainstalowałem dziś serwer CVSNT, na razie jednak coś źle go skonfigurowałem ;-)
PS2: zastanawiam się czy tego bloga można już pokazać "światu" ;-)

Podobne postybeta
Na przekór
Weekend
Coca-Cola Zero i pomidory = najbardziej "odchudzająca dieta" na świecie ;-)
The Greatest Show on Earth: The Evidence for Evolution
C# - Java = Delphi

niedziela, kwietnia 16, 2006

Trzęsienie ziemi co 2-3 godziny

Kilka dni temu trafiłem dzięki StumbleUpon na stronę z informacjami o zarejestrowanych trzęsieniach ziemi.
Poszukałem "mojego" urodzinowego trzęsienia ;-), ale niestety znalazłem tylko o 20 minut późniejsze, którego epicentrum znajdowało się o 20-30 km od epicentrum tego mojego, miało też większą magnitudę (moje 2.9, a to 3.2).
Zastanawiałem się nawet nad wykorzystaniem kanału RSS tej strony do monitorowani i raportowania trzęsień ziemi na terenie Polski.
Nie wiem po co, po prostu żeby zobaczyć ile tego jest i jak często się zdarzają.
Na świecie takie rejestrowane zdarzają się 10-15 razy dziennie, czyli co 2-3 godziny, a z wstępnej "obróbki" danych widzę, że w Polsce co kilka dni.

Teraz mi do głowy przyszedł pomysł stworzenia "mapy" trzęsień ziemi.
Ciekawe czy trzęsień ziemi będzie więcej w okolicach granic płyt tektonicznych.


Podobne postybeta
C# - Java = Delphi
Trzęsienie ziemii i poszukiwania wiosny ;-)
Pixel XL jest genialny
Mini bug w Google Analytics?
Użytkowniki nie chcą współpracować ;-)

sobota, kwietnia 15, 2006

... i "we wte" ;-)

Wczoraj jak zresztą mam to w zwyczaju od paru miesięcy w każdy piątek ;-) wróciłem do domu z Krakowa pociągiem, stąd to tytułowe "we wte" ;-)

Przede mną 4 dni wolnego... Piękna perspektywa :-)

Nie wiem czy pisałem, ale kilka dni temu udało mi się uruchomić pierwszą aplikacje ASP.NET napisaną w Delphi. Uruchomienia dokonałem przy pomocy Cassini Web Server'a.
Sam fakt uruchomienia jest o tyle niezwykły, że binarki z CWSem były jakieś dziwne i nic nie działało. Na szczęście skompilowanie źródeł we własnym zakresie sprawiło, że wszystko zaczęło działać.
A czemu to w ogóle zajmowałem się Delphi i ASP.NET? To proste ;-) Postanowiłem zmienić pracę z Motoroli na archITec. Żyje przez to ostatnio w pewnym stresie, ale cóż, kto nie ryzykuje ten w kozie nie siedzi ;-)
Kolejnymi moimi doświadczeniami związanymi ze zmianą pracy będą próby wdrożenia systemu kontroli wersji dla moich projektów.

W tzw. międzyczasie moja ulubiona firma internetowa, czy Google uruchomiło nową usługę czyli kalendarz. Ten pomysł krążył mi po głowie od kilku miesięcy, ale widać w Google myślą trochę szybciej :-)
Widzę na razie jedną niedogodność, nie mam jeszcze szybkiego sposobu na synchronizację kalendarza w PocketPC z tym Google'owym. Jeżeli jeszcze wydaje mi się, że rozwiązanie polegające na wrzucaniu spotkań z PocketPC na Google Calendar jest jak się wydaje do wykonania, to na "ruch" w drugą stronę nie mam jeszcze pomysłów.

Podobne postybeta
Nauka ;-)
A może by tak ukrywać sobie wszystkie artykuły czy video ze słowami Trump, Elon i Musk w tytule? ;-)
Tydzień 27 (jeżeli dobrze liczę ;-))
Przyroda...
Poskramianie Darta ;-)

środa, kwietnia 12, 2006

Działamy

Dziś wróciłem do kodu, który ma dokonywać klasyfikacji dokumentów. Przeanalizowałem treść części wpisów z bloga i kazałem wygenerować mojemu programowi zdanie wg. zasady, że następnym słowem w zdaniu będzie to, które w tekście wzorcowym było najbardziej prawdopodobne ;-) Sprawdziłem dla słowa "jazda", oto wynik:

jazda do celu przetestowania mojej „teorii” semisubiektywnej klasyfikacji dokumentów w pociągu

Przyznać muszę, że brzmi to nawet ciekawie, choć mało sensownie.

Prowadziłem też dziś ożywioną dyskusje na temat zalet Java'y, C# i Delphi. Mój oponent podkreślał, że Delphi może i mniej wygodne, ale za to bardziej wydajne, ja za to podkreślałem prostotę Java'y i C# i to, że z wydajnością też sobie radzą. Zrobiłem nawet test, 5 mln "rekordów" po 20 bajtów każdy. Stworzenie tego i wpisanie do listy zajmowało Java'ie od 238 sekund do 3 sekund :-) ale zajętość pamięci sięgała ponad 240 MB RAMu :-)
Test prze swoją niejednoznaczność jednak się "nie liczy".

Za to w pracy były dziś podwyżki ;-) dostałem, ale chyba jednak zdecyduje się na zmianę miejsca pracy.

Podobne postybeta
Bawimy się w klasyfikacje dokumentów
O promowaniu ;-)
CVS "złamany" :-)
Skrócona wersja zmian w ustroju Polski po wyborach w 2015 roku
Poniedziałek, czyli "w tę"

poniedziałek, kwietnia 10, 2006

Poniedziałek, czyli "w tę"

Jak co tydzień wstałem dziś o 2:20, dzięki czemu na nogach jestem już ponad 20 godzin....
Zaś o 3:35 siedziałem sobie już w pociągu (prawie takim jak na zdjęciu obok ;-)) wiozącym mnie do Krakowa.
Cotygodniowa jazda do Krakowa ma swoje zalety, główną jest to, że mam kiedy kupić gazety czyli NIE i Le Monde diplomatique, w tygodniu zawsze mi jakoś nie po drodze do kiosku :-)
Próbowałem się dziś bawić Delphi 2005 Personal (zdziwiło mnie, że Personal ma możliwość pisania aplikacji ASP), chciałem napisać aplikacje webową tak dla samego sprawdzenia jak wygląda.
Napisanie nie było trudne, jednak przetestowanie okazało się niewykonalne, do przetestowania najlepiej mieć zainstalowane IIS, które to IIS nie występuje w Windows XP Home :-(.
To, że napisanie nie było trudne to nie do końca prawda ;-) Niestety po półtora roku pisania głównie w Java'ie i C# trudno się jest przestawić na składnie Delphi, która wydaje się być strasznie nadmiarowa. Mam też wrażenie, że jednak Delphi na jakimś fundamentalnym poziomie łamie paradygmat programowania obiektowego, z drugiej jednak strony to wrażenie może być po prostu wynikiem "zapatrzenia" na Java'ę i C#.

Podobne postybeta
Walka z DDE
Są ludzie, którzy nie kochają Java'y
Groch z kapustą, czyli co daje mieszanie OOP z programowaniem strukturalnym
Działamy
Monitorujemy cenę IntelliJ'a ;-)

niedziela, kwietnia 09, 2006

Weekend

Skończyłem wczoraj jadąc w pociągu (właściwie to było przedwczoraj ;-)) 6 tom Harrego Pottera, czyli Księcia Półkrwi. Czytałem ksiązkę po angielsku zaraz po premierze i nie zrobiła na mnie zbyt dobrego wrażenia, teraz polska wersja zrobiła ;-)
Jeśli się zastanowić to już kolejny raz kiedy książka w wersji angielskiej zbytnio mi się nie podoba, po czym polska wersja robi na mnie wrażenie. Poza 6 Harrym podobnie było z Jingo i The Lost Continent Terrego Pratchetta.
Za to 5 tom Harrego bardzo mi się podobał po angielsku i po polsku. To samo z Na Glinianych Nogach ze Świata Dysku.
Teraz wziąłem się za Kiryła Yeskova i jego Ewangelie według Afraniusza.

Szczerze to opis problemu z książkami to próba ucieczki od paru spraw, w których powinienem zadecydować a jakoś nie umiem ;-) Jedna z nich jest problem uczestnictwa w Konferencji Bazy Danych: Aplikacje i Systemy, to jest problem mniejszy.
Za to pomierzyłem dziś, że problem większy znajduje się ode mnie w chwili obecnej o jakieś 43 km, ma około 100 metrów na 100 metrów i to wszystko co mogę o nim powiedzieć ;-)


PS: miło zauważyć, że nowy toolbar do Firefoksa nie powoduje wariowania Bloggera w trakcie sprawdzania pisowni :-)
PS2: w Wikipedii można znaleźć naprawdę wiele ;-), nawet możliwe tematy nienapisanych jeszcze książek

Podobne postybeta
Pat Condell - Boże, pobłogosław ateizm!
"Językizm" czyli co mnie razi w C#
Człowiek to dziwne zwierze....
Paradoks Java'y - domyślny poziom widoczności jest stosowany najrzadziej ;-)
Marsz, książka i resorówki ;-)

czwartek, kwietnia 06, 2006

Nie rozumiem ;-)

Moje postępy w zgłębianiu klasyfikacji są dziś raczej nikłe ;-) jedyne osiągniecie na dzień dzisiejszy to odkrycie (ponowne zresztą), że contains(Object) z Hashtable'a działa w sposób podejrzany.

Wydawać by się mogło, że kod:

Hashtable raszpla = new Hashtable();
[... kod gdzie wypełniamy raszple ;-) ]
String kluczyk = "ogorek";
if (raszpla.contains(kluczyk)) {
    Integer liczba = raszpla.get(kluczyk);
    [...działania na liczba]

zadziała tak samo jak kod:

Hashtable raszpla = new Hashtable();
[... kod gdzie wypełniamy raszple ;-) ]
String kluczyk = "ogorek";
Integer liczba = raszpla.get(kluczyk);
if (liczba!=null) {
    [...działania na liczba]

a jednak tak nie jest ;-) i druga wersja kodu w moim przypadku sprawdza się lepiej. Będę musiał poczytać dokładnie o Hashtable'u bo pewnie znów czegoś nie rozumiem.

To chyba ostatni u mnie stan permanentny bo ostatnio nie rozumie wielu rzeczy.

Z informatycznych nie rozumiem tego dlaczego generator, który próbuje w pracy zmusić do działania wcale nie chce działać tak jak ja sobie życzę z politycznych tego co opowiedziała mi właścicielka kamienicy w której mieszkam. Sens tego drugiego jest taki, że straż miejsca zamiast ścigać ludzi, którzy niszczą cudzą własność umieszczając graffiti na murach, zajmuje się ściganiem właścicieli tych zniszczonych murów, za to że nie usuwają tych graffiti....




Podobne postybeta
Postęp... powolny postęp
Znajomości
Chwalmy chciejstwo ;-)
Sztuczki tropiciela błędów - breakpoint na sterydach 2 ;-)
Drony listonosze...

wtorek, kwietnia 04, 2006

Postęp... powolny postęp

Prace nad moim systemem „semisubiektywnej” klasyfikacji dokumentów posuwają się... z tym że posuwają sie wolno ;-)

Ostatnim problemem, z którym się zetknąłem realizując projekt jest to, że jeżeli podzielę obiekt utworzony ze Stringa przy pomocy split(RegEx) to jednakowo „brzmiące” [bardziej - identyczne co do treści] Stringi nie będą identycznymi kluczami w Hashtable'u ;-) W każdym bądź razie wszystko na to wskazuje i wydaje mi się to być zachowaniem logicznym.

Na razie posuwam się linią najmniejszego oporu i zamierzam sprawdzić jak do oceny podobieństwa służyć może ocena prawdopodobieństwa zdania z dokumentu badanego na podstawie zestawu dwu wyrazowych zbitek. W skrócie jeżeli wiem, że w korpusie prawdopodobieństwa zbitek są np. takie:

jak na – 80%

jak to – 20%

na razie – 60%

na to – 30%

na który – 30%

i tak dalej

a badane zdanie zaczyna się od „Jak na razie...” to mogę policzyć, że prawdopodobieństwo wystąpienia takiego ciągu to 0.8*0.6 czyli 0.48, za to „Jak na to” to 0.8*0.3 czyli 0.24 jest więc 2 razy mniejsze. Nie pozwoli mi to prawie na pewno stwierdzić o czym jest tekst, ale powinno pozwolić wyłapać coś co nie jest prawidłowym zdaniem, a to już coś ;-)



Podobne postybeta
Droga do celu..
"Semisubiektywna" klasyfikacja dokumentów ;-)
Tagowanie MLem... ciąg dalszy ;-) nadal brak sukcesów ;p
Nie rozumiem ;-)
Zakład MENu

niedziela, kwietnia 02, 2006

Droga do celu..

To obok to moja droga do celu [w rzeczywistości to była droga do domu, do celu jeździłem w drugą stronę ;-)].


W ramach testowania możliwości „semisubiektywnej” klasyfikacji dokumentów chcę przetestować badanie podobieństwa dokumentów poprzez badanie gęstości zbitek wyrazowych. Każde słowo ma swoje prawdopodobieństwo wystąpienia, ale takie prawdopodobieństwo ma również zbitka dwóch, trzech i czterech słów.

To co trzeba zrobić to przeanalizować dokument wyszukując wszystkie możliwe 2 wyrazowe zbitki, następnie należy policzyć prawdopodobieństwo każdej zbitki liczone jako prawdopodobieństwo wystąpienia drugiego słowa po pierwszym. Dzięki temu możliwe będzie oszacowanie prawdopodobieństwa wystąpienia dowolnie długiego ciągu [co daje nawet dość ciekawą możliwość zmierzenia prawdopodobieństwa, czy raczej poprawności nawet takich ciągów, które nie występują w tekście źródłowym.... ;-)].

Problemem jaki się przede mną pojawia jest to jak wykorzystać te informacje.

Proste porównanie zestawów zbitek dla dwóch dokumentów nie da żadnej ciekawej informacji.

Czuję jednak, że w tych danych znajduje się to czego potrzebuje... muszę to tylko znaleźć ;-)




Podobne postybeta
Postęp... powolny postęp
"Semisubiektywna" klasyfikacja dokumentów ;-)
Windows Phone nie dla mnie (i nie dla innych mieszkańców Polski) ;-)
BigInteger i liczby pierwsze ;-)
Wierszowy data mining

sobota, kwietnia 01, 2006

Kolejne zdjęcie i scriplet

Dziś kolejny scriplet, tym razem jednak nie mój. Pozwala on na sprawdzenie "świeżości" strony, czyli podaje czas ostatniej modyfikacji dokumentu. Instalacja polega na przeciągnięciu linki na pasek zakładek :-)

Zaś po to by mnie sumienie nie gryzło, że nie zrobiłem dzisiaj zbyt wiele nowego obok kolejne zdjęcie drzewa ;-) Wydaje mi się, że wyszło ciekawie, choć przez przypadek :-)




Podobne postybeta
Scriplet w służbie wygody
Iście spać....
OS X, ładny cholernik jest.... ale nie idealny ;-)
Heurystyka dostępności a strach przed imigrantami
Co ma wspólnego łyżka z post-PC?