sobota, kwietnia 29, 2006

Google Analytics i odwiedzacze

Dość długo czekałem na zaproszenie przez Google do programu Google Analytics, łącznie były to chyba ponad 3 tygodnie. W końcu zostałem zaproszony, ale wtedy nie miałem już dostępu do mojej strony ;-)


Z tego też powodu zacząłem testy tego narzędzia na tym blogu.

Wyniki są ciekawe :-)

Blisko 64% odwiedzających tego bloga powraca tu po jakimś czasie :-)
Blisko 48% wejść odbywa się bezpośrednio na bloga, 38% ze strony Bloggera.
Wnioski są takie, że większość odwiedzających wchodzi na stronę wpisując adres "z palca", a jak sądzę zwykle biorą go z mojego statusu na GG :-)
Prawie 95% wszystkich wejść miało miejsce z terytorium Polski :-) z czego około 42% z województwa śląskiego, a nawet bardziej dawnego województwa katowickiego
Aż 35% odwiedzających używa Neostrady :-), łącznie zaś ponad 45% korzysta z usług TPSA, co ciekawe inna statystyka pokazuje, że gdy wchodzi ktoś z Neostrady to prawie zawsze jest z dawnego województwa katowickiego ;-)

Niektórzy wchodzą nawet na tego bloga 2 razy dziennie :-)

Dziękuje bardzo :-) i proszę o jakieś ślady ;-)

Dzisiejszy wpis jest raczej mało porywający, ale niech mnie tłumaczy cały dzień spędzony w obecności 5 letniego dziecka, które uznało mnie za ciekawy obiekt do zabawy.


Podobne postybeta
Spik mnie wkurzył
Google Friend Connect - pierwszy "test" ;-)
Jak można przegrać wybory gdy się je wygrywa?
Zmusiłem Asus MyPal A636N do pracy z WiFiFoFum :-)
Warto dla 57 złotych?

piątek, kwietnia 28, 2006

Podróżujemy ;-)

Jak co tydzień piątek minął mi wybitnie "w podróży" ;-)
Oczywiście jeszcze wczoraj w miejscu spania i dziś w pracy miałem ambitne plany czytania o CMM i dobrych praktykach dla CVS w trakcie podróży, ale na planach się skończyło ;-)

Żeby doznać "odrobiny luksusu" ;-) pojechałem sobie dziś I klasa w pociągu pośpiesznym i przyznam, że jest to miłe :-) Przez ponad połowę drogi miałem cały przedział dla siebie :-)
Kolejnym kolejowym eksperymentem powinna być przejażdżka InterCity, ale w najbliższej przyszłości nie wydaje mi się to grozić ;-)

A moja lista ludzi w sieci LinkedIn wzrosła już do 499 osób :-) Jeśli ktoś chętny to zapraszam, zgłoszenia przez komentarz [ale wątpię by się ktoś zgłosił ;-)]


Podobne postybeta
Wdrażam CMM ;-)
Kupić, nie kupić? Oto jest pytanie...
Clarke
Procesy ;-)
Mobosiciel ;-) czyli mobilny donosiciel, pomysł na mega złą aplikację

czwartek, kwietnia 27, 2006

Wdrażam CMM ;-)

W ramach eksperymentu postanowiłem spróbować wdrożyć sobie samemu CMM na poziomie 2 :-)
Czeka mnie wdrożenie następujących KPA (key process areas):
  • CM - Configuration Management
  • PMC - Project Monitoring and Control
  • PP - Project Planning
  • PPQA - Process and Product Quality Assurance
  • REQM - Requirements Management
  • SAM - Supplier Management AgreementA
jeśli uda się je wprowadzić to spróbuje jeszcze z MA - Measurement and Analysis, dzięki czemu będę miał CMMI na levelu 2 ;-)

Obecnie jestem na etapie prób wdrożenia CM, co tłumaczy się na wczorajszą instalację CVS ;-)
To pozwoli na kontrolę wersji, muszę jeszcze opracować system nazywania tagów oraz opracować sposób logowania i trackowania błędów i zmian.
Po CM przyjdzie czas na REQM, czyli zarządzanie wymaganiami.
Z SAM nie powinno być problemów, głównie przez to, że nie mam dostawców ;-)
Kolejnym KPA powinien być chyba PP, później PMC, a na końcu PPQA.

Myślę, że dzięki temu eksperymentowi uda mi się zrozumieć idee stojącą za CMM/CMMI, a przy okazji nabyć trochę praktyki :-)

W trakcie wdrażania będę na pewno często korzystał z tego i tego ;-)


Podobne postybeta
Podróżujemy ;-)
Information animal ;-)
TQM, BPEL, CVSNT i inne skróty
Zróbmy spisek....
Python zabójca ;-) czyli krótka opowieść o tym jak multiprocess "zabił" komputer ;-)

środa, kwietnia 26, 2006

CVS "złamany" :-)

Sukces! ;-)
Udało mi się w końcu skonfigurować CVSa na laptopie
Korzystając z tego zacząłem wrzucać moje projekty pod kontrolę wersji :-) Ciekawe ile czasu wytrzymam ;-)



To wyżej to mój kalendarz z Google Calendar, jak widać mam trochę zajęć choć większość [te hm... pomarańczowe] to programy TV, które sobie wpisuje żeby w razie czego ich nie zapomnieć ;-)].
Jak widać Google Calendar ma bardzo miły interfejs, w moim uznaniu jest ładniejszy od interfejsu Outlooka, szkoda tylko, że na razie nie oferuje synchronizacji z urządzeniami mobilnymi [ale jeżeli rozgryzę jak obsługiwać POOMa [Pocket Outlook Object Model] w PocketPC to zrobię sobie synchronizera].

Korzystając z zainstalowania CVSa zaimportowałem doń [jako pierwszy projekt ;-)] mój kod do "semisubiektywnej" klasyfikacji dokumentów :-)

Znalazłem też kolejny "ficzer" C#.
Od dłuższego czasu dziwiło mnie, że bezkarnie mogłem pisać string i String, nie do końca to mogłem zrozumieć. Teraz już rozumiem.... "Po prostu" string to typ C#, a String to typ .NET....
Zdecydowanie potwierdza to moją teorię o nadmiernym stechnizowaniu tego języka.


Dziś jak widać wpis w stylu "potok świadomości" ;-) Jutro postaram się poprawić.


Podobne postybeta
Deszczowy Niebieski Ząb ;-)
Działamy
Zaczynam wierzyć w postPC....
DRM Google wcale nie został złamany
Bawimy się w klasyfikacje dokumentów

wtorek, kwietnia 25, 2006

Social networks, mapy i papierowy organizer

Proszę, kilka dni temu pisałem o tym, że Google Maps dodało nowe zdjęcia niektórych fragmentów Polski, a tu dziś jeszcze lepsza wiadomość :-) Google Maps ma już mapy Polski ;-) Tego typu newsy interesują mnie też z powodów zawodowych, w końcu kiedyś pisałem oprogramowanie do lokalizacji pojazdów.

Znalazłem też dziś ciekawą rzecz, a mianowicie PocketMod czyli papierowy organizer (znalazłem przez Wykop, który wskazywał na tego bloga). PocketMod podsunął mi pewien pomysł na program, ale poczekam trochę z jego realizacją.

Dzisiejszy wieczór minął mi też pod znakiem LinkedIn, to social network czy jak wole to nazywać sieć znajomych, która pozwala na wyszukiwanie najkrótszych ścieżek między nami, a ludźmi z którymi szukamy kontaktu.... To duże uproszczenie, za tymi sieciami stoją całe teorie socjologiczne, których konkluzje sprowadzają się do tego, że przeciętna odległość między dowolnymi dwiema osobami na świecie to 6 osób.

To mi się kojarzy z tym, że te teorie nie biorą chyba jednej rzeczy pod uwagę ;-) Jest kilka osób z którymi łączyły mnie bliskie lub nawet bliższe kontakty [czyli odległość 1 osoby] i śmiem wątpić by w jakikolwiek sposób doszło do ponownego kontaktu.
Znaczy to, że w grafie takiej sieci znajomych choć dwa węzły [ja i któraś z tych osób] znajdują się w bezpośrednim sąsiedztwie, to "cena" kontaktu jest zbyt wysoka. Czyli węzły grafu są może i bezpośrednio połączone, ale odległość jest bardzo duża ;-)
To przy przyjęciu, że taka sieć jest statyczna, w rzeczywistości jest raczej dynamiczna, ze zmienną "odległością". Tą odległość można by porównać do przepustowości łącz i mamy wizje Internetu ;-)


Podobne postybeta
Papierowy GMAIL i Internet z tualety ;-)
Strasząca książka - Extinction: The Thriller
Najmocniejszy "żart" Prima Aprilisowy
Emerytury
Ewolucja technologii i obyczajów w SF

poniedziałek, kwietnia 24, 2006

Brzydkie IE

W trakcie publikowania poprzedniego wpisu przekonałem się, że IE jest brzydki!
Brzydki, a nawet paskudny.
Drań zamiast wyświetlać ładnie rzeczy osadzone na stronie wyświetlał sobie jakieś krzyżyki i inne białe plamy. Ale zostało to zauważone i wyeliminowane :-)
A dla wszystkich użytkowników Internet Explorera:

Strzeżcie się Internet Explorera!!!!
Używajcie zamiast niego Firefoxa lub Opery!!!!



Podobne postybeta
Białe plamy 3G ;-)
Kelejny "ficzer" IE
Scriplet w służbie wygody
Nowy Gadacz v0.4
Writely

Pożycz mi swój procesor ;-)

Dziś może być trochę niezrozumiale, ale jak zwykle w poniedziałek jestem na nogach od 2:20 ;-)

Kilka lat temu zastanawiałem się czy można by było "kraść" moc procesorów, tudzież opłacać mocą CPU odwiedzanie stron WWW.

Dlatego też postanowiłem dziś poprekursorować ;-) [nic mi nie wiadomo by ktoś już się tym zajmował, ale przyznam, że nie szukałem zbyt dokładnie ;-)]

Celem dzisiejszego eksperymentu [którego większa część została wykonana wczoraj ;-)] jest stworzenie mechanizmu do "kradzieży" mocy obliczeniowej cudzych procesorów tak by te "skradzione" procesory szukały liczb pierwszych.
Ponieważ nie mam chwilowo dostępu do serwera, na którym mógłbym przechowywać dane to eksperyment będzie niepełny o przesyłanie danych do serwera.

Zacznijmy od wyjaśnienia co kryje się pod terminem "kradzieży czasu procesora".
W skrócie chodzi o wykorzystanie procesora osoby odwiedzającej stroną do przeprowadzenia pewnych obliczeń, w tym przypadku obliczeń prowadzących do wyszukiwania liczb pierwszych.

W celu przeprowadzanie "kradzieży" należy spreparować odpowiedni kod w JavaScript i osadzić go na naszej stronie. W celu osadzenia wykorzystam ten plik.









Po lewej mamy kod działający ciągle, po prawej mamy kod, który udaje przesyłanie do serwera danych.

Jak widać powyżej w ciągu czytania tego wpisu osadzony kod "ukradł" już trochę czasu procesora osoby czytającej... i o to właśnie chodzi ;-)


Istotnym problemem w trakcie tworzenia kodu "kradnącego" moc procesora jest to by "okradany" komputer nie cierpiał na tym zbytnio i by użytkownik nie odczuwał problemów związanych z kradzieżą mocy.
Dlatego też ograniczamy się do tego by pojedyncza "iteracja" trwała około 50 ms [można eksperymentować z większymi czasami, ale w pewnym momencie stają sie odczuwalne dla użytkownika].


Jeżeli wydaje się komuś, że mnie się nudzi i robie dziwne rzeczy to radze spojrzeć tutaj ;-) Tym to się dopiero musi nudzić ;-)



Podobne postybeta
Refleksja nad punktem 11
Ułuda prawdopodobieństwa, czyli jak użyć Bayesa do "wnioskowania"
Celeron M353 900MHz vs. Intel Atom 1.6GHz, czyli o tym czemu jest remis? ;-)
Android Market jest.... taki sobie ;-)
Klauzula samoluba?

niedziela, kwietnia 23, 2006

Ile wie o Tobie Internet?

Internet to anonimowość. Tak w każdym bądź razie sądzi większość Internautów. Nic jednak bardziej mylnego ;-) Dlatego warto od czasu do czasu sprawdzić co wie o nas sieć (co w większości przypadków sprowadza się do tego co wie o nas Google).

Pierwszym testem powinno być sprawdzenie co wypisuje Google gdy wpiszemy swoje imie i nazwisko, najlepiej w cudzysłowach.
O mnie wie, że pisałem pracę magisterską, wie kto był moim promotorem, wie że wyprodukowałem Gadacza, Skryptusia i GmailFS4TC, oraz że wypowiadałem się o Java'ie i podatku liniowym.

Drugim testem jeżeli mamy stały adres IP powinno być wpisanie tegoż adresu w cudzysłowach (tak w postaci zrozumiałej dla człowieka (w rodzaju www.wp.pl) jak i w postaci szeregu cyfr (212.77.100.101)).
U mnie nie jest źle, jak na razie są tylko 3 odpowiedzi.

Trzecim testem powinno być wpisanie imienia i nazwiska (znów w cudzysłowach) i swojego adresu IP (też w cudzysłowach). To test na to czy nasz adres IP jest publicznie związany z naszymi danymi, czyli mówiąc bardziej zrozumiale czy gdzieś w sieci występuje jednocześnie nasz adres IP i imie i nazwisko.
Dla mnie jak na razie dobra wiadomość, nie ma takiego połączenia ;-)

To 3 podstawowe testy tego czy dane o nas są publicznie dostępne.

Należy jeszcze pamiętać, że dane np. o naszych ulubionych stronach mają firmy takie jak Gemius, czy Alexa, że Google ma techniczną możliwość śledzenia zapytań zadawanych z danego komputera (dokładniej zaś z przeglądarki na komputerze, lub jeżeli na komputerze jest kilku użytkowników to z każdej z przeglądarek na każdym koncie komputera i tutaj już nawet zmienne IP nie "chroni" ;-) ).
Do tego dochodzą informacje wiążące nasze adresy e-mail z IP i/lub danymi osobowymi, które sami zostawiamy na wielu portalach.

Nie wiem jak was, ale wcale mnie to wszystko nie martwi :-)


Podobne postybeta
Roman....
Jak VHDL obalił komunizm
Plug-in master ;-)
Android, lokalizacja i koszty
Proxy :-)

sobota, kwietnia 22, 2006

TQM, BPEL, CVSNT i inne skróty

Dziś w trakcie zajęć na Politechnice korzystałem z uroków szybkiej sieci ;-)
Dzięki temu odkryłem poprzez Google Earth, że są nowe zdjęcia satelitarne terytorium Polski, między innymi znalazłem tam nowe zdjęcia mojego nowego miejsca pracy (tutaj dzięki Google Maps)
Posłuchałem też dość ciekawego referatu o TQM czyli Total Quality Management, odebrałem też indeks ;-)
Dowiedziałem się też, że powinienem wiedzieć co to BPEL, rozumieć sens certyfikacji oprogramowania i nosić ze sobą drobne ;-)
Tym razem olśnień nie przeżywałem, a ponieważ zbliża się maj czyli moje wystąpienie "na forum" to chyba zacznę znów zwalczać moją "semisubiektywną" klasyfikację dokumentów, a jak się uda to przy okazji przemęczę do końca konfigurację CVSNT.


Podobne postybeta
Teleskop :-)
Wdrażam CMM ;-)
A taki sobie nowy ficzer - filtrowanie :-)
Terminator Genisys
Sklep z mieszkaniami

czwartek, kwietnia 20, 2006

Ekonomia w praktyce ;-) czyli jak zniechęcić kieszonkowców

Jak widać po braku wpisów o C# nie przyglądam mu się w ciągu ostatnich dni tak dokładnie jak powinienem. Wiąże się to z tym, że w Krakowie czytuje głównie w autobusach, a jednak książka o programowaniu wymaga choćby minimalnego skupienia, które czasem trudno osiągnąć w autobusie ;-)

Jeśli już mowa o autobusach to właśnie w poprzedni piątek jadąc autobusem wpadłem na genialny w swej prostocie pomysł ekonomicznego zniechęcenia kieszonkowców.

Pomysł opiera się na założeniu, że istotnym współczynnikiem dla kieszonkowca jest średni zysk z kradzieży, co można przełożyć na opłacalność ryzyka w stosunku do zarobku.

Skomplikowałem jak to mam w zwyczaju ;-) teraz wyjaśnię.

Każdy kieszonkowiec "obrabiając" swoją ofiarę podejmuje ryzyko złapania. Im więcej kradzieży tym większe ryzyko.
Jednak przy większości kradzieży zyski z niej rekompensują to ryzyko.
Pomysł polega na tym by zmniejszyć średni zysk z kradzieży, przez co dla zgromadzenia tej samej sumy kieszonkowiec będzie musiał podjąć więcej ryzyka.

Jak to zrobić?

To proste ;-) wystarczy nosić przy sobie kilka pustych portfeli ;-)

Jeżeli każdy będzie miał przy sobie 5 portfeli z czego 4 będą puste to zakładając, że każda z kradzieży kończy się zabraniem portfela mamy sytuacje w której wydajność kieszonkowca spadnie pięciokrotnie. Średnio trzeba będzie wykonać 5 razy więcej kradzieży żeby uzbierać tą samą kwotę, czyli podjąć 5 razy więcej ryzyka ;-)

Proszę jakie to proste ;-)


Podobne postybeta
Pożycz mi swój procesor ;-)
Medytacja
No i teraz Dallas
Refleksja nad punktem 11
"Arystokraci" od siedmiu boleści

środa, kwietnia 19, 2006

Ułuda prawdopodobieństwa, czyli jak użyć Bayesa do "wnioskowania"

I zima ;-) Miał być wpis o ułudzie prawdopodobieństwa, z interaktywnym formularzem liczącym "w locie", ale Blogger nie chce współpracować.
Nie straszny nam jednak Blogger i jego niedogodności ;-) Skorzystam z Google Page Creatora do przehostowania pewnego pliku.


Większość, jeśli nie wszystkie znaczące systemy antyspamowe korzystają z twierdzenia Bayesa o prawdopodobieństwach cząstkowych.
Cała idea tych systemów opiera się na założeniu, że istnienie pewnego słowa w tekście powoduje, że oceniany list ma większą bądź mniejszą szansę na bycie spamem.
Np. w mailach, które dostajemy słowo Viagra występuje powiedzmy 100 razy częściej w spamie niż zwykłych mailach. Mamy więc współczynnik, którego możemy użyć we wzorze.

Właśnie ten wzór służy czasami do "wnioskowania" na podstawie wiarygodnych (lub uznanych za takie) danych.
Możemy przyjąć pewne współczynniki za obowiązujące i policzyć np. prawdopodobieństwo spowodowania wypadku przez kierowce, to czy uda się jakieś przedsięwzięcie gospodarcze i tak dalej. Cały dowcip z tym sposobem wnioskowania polega właśnie na doborze danych. Przy odpowiednim ich spreparowaniu możemy "dowieść" wszystkiego.
Ciekawy przykład takiego naciąganego wnioskowania przedstawił Michael Shermer w Scientific American (można było o tym przeczytać w polskiej edycji, czyli w Świecie Nauki z sierpnia 2004).
Shermer przedstawił tam wyliczenia pewnego osobnika, który dowodził w taki sposób istnienia Boga. Sam Shermer przeprowadził te same obliczenia dla własnych wartości współczynników, a jego wynik był skrajnie różny.

Sam też przeprowadzałem te obliczenia. Narzędzie do tego znajduje się poniżej.
W pola wpisujemy odpowiednie współczynniki. Jeżeli istnienie danej rzeczy dowodzi wg. nas istnienia Boga to wstawiamy liczbę większą od 1, np. zakładamy, że istnienie dobra jest 10 razy bardziej prawdopodobne przy istnieniu Boga niż bez więc wpisujemy 10, w drugą stronę wpisujemy ułamki, czyli jeżeli coś jest 10 razy mniej prawdopodobne to wpisujemy 1/10 czyli 0.1. Jeżeli zaś coś nie ma wg. nas związku wpisujemy 1.
Całe obliczenia zaczynają się od sytuacji 50/50.
Początkowo wpisane są "moje" współczynniki.

Jeśli niżej nic nie widać to "zima", o której pisałem u góry nadal trwa ;-) Wtedy radze skorzystać z tego linka.



Podobne postybeta
Nadpłacanie kredytu - arkusz ;-)
Konwerter, Nexus One i Bayes ;-) czyli co mi głowę zawracało w ciągu ostatnich paru dni ;-)
Pożycz mi swój procesor ;-)
Teoria ewolucji vs hipoteza kosmicznych siewców życia vs hipoteza kreatora vs hipoteza kreatora na młodej Ziemi - mecz przy pomocy Bayesa :-)
Wydało się ;-)

wtorek, kwietnia 18, 2006

Oplotek...


Tak wyglądała Oplica, lub jak lubił ją nazywać mój tata Oplotek.
Dziś dokonała swego żywota jako samochód i została zawieziona do firmy zajmującej się utylizacją pojazdów.


Podobne postybeta
VRML
To były czasy ;-)
Minisec
"Obserwacje"
Drzewka, ładne drzewka - kilka zdjęć :-)

Dalsze przygody z C#

Poznałem przed chwilą ciekawy ficzer połączenia Bloggera i Google Toolbara ;-) Jeżeli w trakcie sprawdzania pisowni kliknie się na słowie, które jest linkiem linka zadziała, a cały tekst wpisu diabli wezmą ;-)


Wracając jednak do tego o czym chciałbym dziś napisać ;-)

C#, znów C#. Tym razem urzekły mnie struktury, trochę zniesmaczyły problemy z przeciążaniem operatorów i zniesmaczył sposób zapisu po kim klasa dziedziczy i kogo implementuje.

Struktury mi się podobają. Co prawda można je np. w Java'ie udać przez malutkie klaski, ale w C# jest to wydzielona struktura języka co ma swoje plusy. Nie podoba mi się za to, że struktur jako skalarów można używać bez ich tworzenia.

Location lo;
lo.x=10;
lo.y=10;

Taki zapis jest całkiem poprawny z punktu widzenia C#, dla mnie już za to nie do końca ;-)

Przeciążanie operatorów też mi się podoba, ale nie podoba mi się to, że przeciążywszy operator wypada także stworzyć metody, które "odwalą jego robotę", a będzie ich można użyć gdy wykorzysta się klasę .NETową napisaną w C# w innym .NETowym języku, który nie wspiera przeciążania operatorów. Wskazuje to wg. mnie na niedopatrzenia w architekturze, można przecież było przyjąć, że tworzone będą w takiej sytuacji odpowiednie metody, np. dla operatora + metoda additionOperator() albo coś podobnego.

Nie podoba mi się za to zapis dziedziczenia i implementacji. W Java'ie mamy ładny kod:

public class Ryba extends Zwierze implemments Plywalne

za to w C#:

public class Ryba:Zwierze, Plywalne

Niby ten zapis z C# krótszy, ale chyba akurat w tym miejscu nie o krótkość zapisu chodzi, a o jego czytelność.

W ogóle mam wrażenie, że C# jest jednak zbyt stechnizowany. Jest na pewno ciekawym i dobrym językiem, ale ma słabsze momenty w których elegancje zastąpiono technicznością.



C# to taka suma z Delphi i Java'y, to podobieństwo do Delphi tłumaczy osoba Anders Hejlsberg, który maczał swoje palce w obu tych językach. Wydaje mi się też, że przez te Delphi'owe dodatki C# stracił na swojej elegancji, zyskał za to może na elastyczności, ale przez to pozwala na popełnienie większej ilości błędów.



Podobne postybeta
Bio"etyka"
"Językizm" czyli co mnie razi w C#
Refactoring bez testów to proszenie się o problemy ;-)
Swing - największe zło Java'y ;-)
Lubię enumy

C# - Java = Delphi

Mam nadzieję, że ktoś dobry w końcu wytłumaczy mi po co w języku obiektowym niewirtualne metody.
Jedyny powód jaki widzę i mogę zrozumieć to wydajność, ale nie przekonuje mnie to w przypadku języków które kompiluje się do kodu pośredniego.
Jak widać z powyższego, nadal jestem w "szoku" po kontakcie z C#.
Kolejne ciosy otrzymałem od klas abstrakcyjnych. Metody w klasie abstrakcyjnej nie są oznaczane jako wirtualne..... To nawet logiczne w końcu dopiero ich implementacja będzie wirtualna, ale jeszcze dodatkowo komplikuje kod. Bo już nie wystarczy pamiętać, że metodę wirtualną w klasie bazowej trzeba oznaczyć jako wirtualną, a później zaznaczyć metodę w klasie potomnej jako nadpisującą, trzeba jeszcze pamiętać, że choć metoda w klasie abstrakcyjnej nie jest oznaczona jako abstrakcyjna, to tak ją trzeba traktować w klasach potomnych.....
O boxingu i unboxingu, który powoduje, że rzutuje się obiekt na prymityw już nawet nie wspomnę ;-)



To co widać wyżej to wynik wrzucenia do arkusza kalkulacyjnego z OpenOffice.org danych ze strony z danymi o trzęsieniach ziemi [te akurat dane to ostatnio zarejestrowane 2000 trzęsień ziemi do 2006-04-17 21:43:01].
Tak jak przypuszczałem można dostrzec punkty styku płyt tektonicznych, które właśnie na siebie "włażą" ;-)


Podobne postybeta
Różniste różności różne ;-)
Trzęsienie ziemi co 2-3 godziny
Konstruktory
Myślenie = Szybka jazda
Szok kulturowy

poniedziałek, kwietnia 17, 2006

Writely

Stałem się przed chwilą szczęśliwym posiadaczem ;-) konta na Writely, czyli web'owym edytorze tekstów, którego właścicielem jest obecnie Google.
Zaproszenie dostałem dzięki Google.VC.
Moje wrażenia ze współpracy z Writely są na razie bardzo pobieżne, ale i pozytywne ;-)
Jedyne czego mi na razie brakuje to eksportu do formatu MS Reader'a czyli LITa, brakuje też polskiego "kurektura" ortograficznego.

Z moich doświadczeń wynika, że edytor świetnie działa z Firefoksem i Internet Explorerem, nie lubi za to Opery.


Podobne postybeta
Hackowanie dysku ;-)
Gdy się da kupuj ebooki, które można pobrać jako MOBI, ale i EPUB :-)
Google Docs & Spreadsheets
Asus EEE 900 - Tips & Tricks ;-)
Brzydkie IE

"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
Refleksje i serializacja w Java'ie - podstawy i obalanie mitów ;-)
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 ;-)
Zniknęła mi Spersonalizowana Strona Google'a (Personalized Home)
Mini bug w Google Analytics?
Pixel XL jest genialny

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 ;-)
Odrobina miłości i serwery działają ;-)
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
Do the right thing, Wait to get fired - to jednak ma sens
O promowaniu ;-)
CVS "złamany" :-)
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
Działamy
Groch z kapustą, czyli co daje mieszanie OOP z programowaniem strukturalnym
No i jest problem natury logistyczno-temporalnej....
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
"Językizm" czyli co mnie razi w C#
Pat Condell - Boże, pobłogosław ateizm!
Człowiek to dziwne zwierze....
Uwaga na Pottermore i Harry'ego Pottera jako ebooki po polsku
Konferencja

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
Sztuczki tropiciela błędów ;-)
Dart - to działa i ma sens :-)
Sztuczek Java'owy
Znajomości

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 ;-)
Nie rozumiem ;-)
Zakład MENu
Ekszperyment :-) czyli Podobne posty :-)

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 ;-)
Wierszowy data mining
Windows Phone nie dla mnie (i nie dla innych mieszkańców Polski) ;-)
BigInteger i liczby pierwsze ;-)

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
SNPAW, czyli "Stosunkowo Najbardziej Przydatna Aplikacja Webowa" ;-)