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
Ułuda prawdopodobieństwa, czyli jak użyć Bayesa do "wnioskowania"
Klauzula samoluba?
0 prawo programowania - Shit hits all fans in the same time
Refleksja nad punktem 11
Wyznanie, wyjaśnienie i coś z zupełnie innej beczki ;-)

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....
To uczucie gdy przechytrzysz elektronikę ;-)
Plug-in master ;-)
Proxy :-)
Działamy

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 :-)
A taki sobie nowy ficzer - filtrowanie :-)
Wdrażam CMM ;-)
Sklep z mieszkaniami
Działa :-)

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
"Arystokraci" od siedmiu boleści
Nuda w Wenecji...

ś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
Search it later ;-)
Pożycz mi swój procesor ;-)
Wydało się ;-)
Jak nic nie robiąc robię się mniej Polakiem ;-)
Nadpłacanie kredytu - arkusz ;-)

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
Jak Mruka dostał więcej metalowych przedmiotów - (nie)poradnik inwestycyjny z czasów kamienia (czasami łupanego) część druga
VRML
To były czasy ;-)
Minisec
"Obserwacje"

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#
Swing - największe zło Java'y ;-)
Dart - się mnie podoba :-)
Ha! Ochidna Echidna potrafi updatować pliki :-)

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
Nieoczywiste oczywistości ;-) podstępny autoboxing ;-)

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 ;-)
Google Docs & Spreadsheets
Asus EEE 900 - Tips & Tricks ;-)
Brzydkie IE
Państwo wybiórczo opiekuńcze ;-)