czwartek, marca 30, 2006

Scriplet w służbie wygody

Od dłuższego czasu stosuje w pracy malutki scriplet do Firefoxa, który to scriplet pozwala mi na wysłanie adresu oglądanej strony na adres pocztowy.

Poniżej skrypt, który należy zmienić w scriplet:


addr=document.location.href;
addr="mailto:ktos@gdzies.pl?subject="+addr;
addr=+"&body=strona_do_zobaczenia:"+addr;
document.location.href=addr;

W celu jego „instalacji” należy utworzyć nową zakładkę o nazwie Send [lub innej, jak kto woli ;-)], a następnie w polu adresu wstawić treść scripletu. Można też przeciągnąć na pasek tą linkę :-)

Oczywiśćie adres mailowy ktos@gdzies.pl należy zmienić na własny :-)




Podobne postybeta
Kolejne zdjęcie i scriplet
EEE Storage - czyżby nie dla wszystkich?
Historia jednego #....
Korelacje
Chrome2Chrome w Chrome Web Store

Bawimy się w klasyfikacje dokumentów

W celu przetestowania mojej „teorii” semisubiektywnej klasyfikacji dokumentów, zacząłem dziś tworzyć program dokonujący właśnie takiej klasyfikacji.

Pierwszy krok mam już za sobą, mam klasy które potrafią wczytać plik i zliczyć w nim ilość słów ;-)

Pierwszym testem tych klas będzie sprawdzenie jak wygląda klasyfikacja przy pomocy wektorów, w przypadku dokumentów w języku polskim problemem może okazać się odmiana wyrazów, z tego też powodu większość testów chcę przeprowadzić z tekstami angielskimi. Podobny eksperyment przeprowadziłem półtora roku temu, ale rezultaty nie były do końca jasne.

Gdy skończę pisać program będę musiał uściślić warunki eksperymentu. Wstępnie myślę, że spróbuje na opowiadaniach, czy jak kto woli fanfic'ach ze świata Buffy i Angela. Sprawdzę czy „wektoryzacja” ;-) pozwala na rozróżnienie opowiadań w świecie Buffy i tych w świecie Angela.

Drugą częścią eksperymentów będzie próba implementacji wyszukiwania grup wyrazów, a później wzorców co jak sądzę będzie trudniejsze.

Na razie mój wzrok sięga tylko do tego momentu ;-)




Podobne postybeta
Działamy
Gdzie jest Nawiedzony Dom z książek Chmielewski? ;-)
"Semisubiektywna" klasyfikacja dokumentów ;-)
Byłem u Buffy :-)
Mini bug w Google Analytics?

środa, marca 29, 2006

Zdjęcia i Gadacz

Bawiąc się dziś Picasą znalazłem na laptopie parę zdjęć które zrobiłem moim aparatem cyfrowym (HP PhotoSmart 935). Szczególnie spodobały mi się moje nocne zdjęcia drzew.
Obok mała próbka.
Myślę, że będę musiał w końcu znów wsiąść z sobą aparat do Krakowa i spróbować kiedyś zrobić jakieś nocne zdjęcia.

Jakiś czas temu zacząłem się zastanawiać czy dodać do Gadacza obsługę syntezatora Dant. Od autora Dant'a dostałem dziś maila z informacją jak dogadać się z jego syntezatorem dlatego też sądzę, że może w weekend spróbuje dodać do Gadacza support Danta.


Podobne postybeta
Pomysł
Gadacz dla Danta
Wszystko kłamie ;-)
Telefon lepszym aparatem niż prawdziwy aparat ;-)
I znów widziałem ISS :-)

wtorek, marca 28, 2006

"Semisubiektywna" klasyfikacja dokumentów ;-)

Jakieś półtora roku temu próbowałem swoich sił w stworzeniu narzędzia, które pozwalałoby na ocenianie dokumentów wg. moich upodobań. Schemat działania przedstawiać miał się w sposób następujący, oglądam strony, czy też czytam dokumenty, które są logowane, a ja je oceniam, tudzież do oceny wykorzystywany jest czas jaki spędzam na danej stronie. W trakcie mojego zwiedzania sieci gromadzone są linki, które służą do dalszej penetracji sieci gdzie wyszukiwane są dokumenty najbardziej podobne do tych, które uzyskały najwyższą ocenę.
Po co?
Wydaje mi się, że pozwoliłoby to na wyszukiwanie stron zgodnych z moimi upodobaniami, czyli na klasyfikacje dokumentów nie tylko ze względu na treść ale również ich styl. To dość ryzykowne stwierdzenie i nie do końca zweryfikowane przez moje próby.
Teksty najłatwiej klasyfikować wg. podobieństwa mierzonego przez odległość między wektorami w przestrzeni gęstości słów. Bierzemy wszystkie słowa w korpusie, liczymy ich ilość w dokumentach, normalizujemy i otrzymujemy zbiór wektorów w przestrzeni. Każda wiązka to jedna kategoria dokumentów. Zastosowanie tego mechanizmu pozwala na klasyfikowanie tekstów, ale ocena zależy głównie od słów kluczowych dla dokumentów. Nie ma tu jeszcze słowa o ocenie subiektywnej. Do tej samej wiązki wektorów mogą należeć dokumenty, które mi się podobają i takie, które mi się nie podobają. Gęstość występowania słów nie jest tu dobrą miarą. Mój pomysł to użyć kilku metryk, po pierwsze właśnie tej wyżej opisanej czyli odległości między dokumentami, po drugie tej samej metryki dla dokumentów potraktowanych "kompresją synonimową" ;-)
Kompresja synonimowa polegać powinna na zastępowaniu słów w dokumencie ich najkrótszymi synonimami. Oczywiście prowadzić to może do absurdów, ale z drugiej strony daje nadzieje na zmniejszenie "szumów".
Trzecią metryką powinno być użycie czegoś na kształt łańcuchów markowa. Tutaj powinno to polegać na liczeniu prawdopodobieństw występowania 2 i 3 słów obok siebie oraz wzorców zbudowanych z 2-3 słów [z co najwyżej 2-3 słowami między]. Czyli szukamy w tekście najpierw zbitek 2-3 wyrazowych, i liczymy dla nich gęstość. Dopiero tych zbitek używamy do stworzenia wektorów... nie wiem czy to zadziała, musze sprawdzić po te półtora roku temu nie dotarłem do tego momentu ;-) To samo robimy na tekście potraktowanym "kompresją synonimową". Metryka dla wzorców wydaje się być trudniejsza do policzenia i nad tym musze się jeszcze zastanowić....
Później wyniki tych wszystkich metryk należy przedstawić bandzie agentów czyli prostych programików czy po prostu zestawowi współczynników i przepuścić go przez algorytm genetyczny. Rezultatem powinno być kilka agentów reagujących na teksty, które im się podobają....
Tak jest teoria, praktyka nie posunęła się jeszcze tak daleko ;-) Na razie udało mi się policzyć pierwszą metrykę i stworzyć system, który łazi po sieci śledząc linki na podstawie stron, które już zna.



Podobne postybeta
Bawimy się w klasyfikacje dokumentów
Ekszperyment :-) czyli Podobne posty :-)
Życie artysty jest trudne - System Extensions na macOS z ARMem...
Co lubie :-)
Go dla Java'owca ;-) odcinek 2 "kontenery dwa ;-)"

poniedziałek, marca 27, 2006

Klasy .NET w Java'ie....

W ramach odpoczynku darowałem sobie wczoraj eksperymenty nad ClassLoader'em dlatego dziś mam zamiar do nich znów powrócić ;-)
Zastanawiałem się też nad tym jak mógłbym zmodyfikować ClassLoader'a i w głowie pojawił mi się pomysł wykorzystania "odległego" wykonywania klas z .NET.
Jak na razie widzę jeden problem, mianowicie nie potrafiłbym zapewnić możliwości korzystania z obiektów w Java'ie obiektom z .NET, czyli współpraca byłaby raczej mikra.
Na razie spróbuje jednak podpiąć pod mojego loadera klasy wykonywane "odległe" ;-)



Podobne postybeta
Czy "Nowy" Blogger znaczy, że Blogger będzie żyć?
Budzik zagłady...
Nieznane ścieżki ClassLoader'a ;-)
Frustracja....
Nudno

sobota, marca 25, 2006

Szkoła, a ja zaczynam rozumieć ClassLoader'a

Już wiem czemu mój ClassLoader nie ładował niektórych klas, chociaż program ich używał :-)
Delegowałem po prostu ładowanie klas do "rodzica" ClassLoader'a [czyli do standardowego SecureClassLoader'a], który ładując klasę ładował od razu wszystkie klasy, których ona używa.
Olśnienia doznałem na seminarium, a eksperymenty na moim ClassLoader'ze robiłem w trakcie wykładu ze "Zbiorów rozmytych" i z "Inżynierii języka naturalnego". Rzeczywiście uczelnia poszerza horyzonty ;-)
Wystarczyło zapewnić ładowanie i definiowanie klas przez mojego ClassLoader'a i od wtedy za większość działań odpowiada mój kod :-)
Na razie ograniczyłem działanie mojego kodu do ładowania definicji klas z plików .class czyli robie niemal dokładnie to samo co SecureClassLoader [z tym, że ja nie sprawdzam czy wolno ładować daną klasę].
Kolejny cel to próba podpięcia pod ClassLoader'a ładowanie klas przez sieć :-) Wiem, że to już jest napisane ale praca odtwórcza dobrze uczy :-)



Podobne postybeta
Spisek ClassLoader'ów ;-)
Wpis próbny, czyli rozproszona wirtualna maszyna Java'y
Rekrutacja w czasach pandemii ;-) - a może poszerza liczbę firm?
I tak żle i tak niedobrze
OpenOffice -> GoogleDocs v0.4.1

piątek, marca 24, 2006

Laptop + PDA = UMPC???

W tamtym tygodniu Microsoft zaprezentował swoje Origami, czy jak postanowił je nazwać Ultra Mobile PC. W skrócie ma to być tablet wielkości książki z Windows XP Tablet Edition z minimalną rozdzielczością ekranu 800x600.
Jako użytkownik tak PDA jak i laptopów widze dla tego urządzenia nisze, ale czy dużą? Tego nie wiem. Wiem jednak czego oczekiwałbym od takiego UMPC :-)

  • Waga do 1 kg, a najlepiej nie więcej niż 0.5 kg

  • Długa praca na bateriach, powiedzmy 5 godzin

  • Możliwość zmiany orientacji ekranu

  • Wbudowane WiFi

  • Gniazdo PCMCIA [gdzieś musze używać mojego Blueconnect'a ;-)]

  • Kilka portów USB

  • Możliwość dołączenia zewnętrznej klawiatury

  • Wbudowana karta sieciowa 10/100/1000Mbit

  • GPS

I to chyba wszystko. Dodatkowe rzeczy, które by się przydały to wyjście VGA, VHS/SVHS, FireWire.
Nie jestem jednak pewien czy nawet mając UMPC zrezygnowałbym z PDA i laptopa. UMPC wydaje się świetnie pasować do plecaka, świetnie będzie można na nim czytać książki [w PDA ekran jest jednak za mały, w przypadku laptopa niewygodnie się czyta], sprawdzać pocztę, serfować po sieci, oglądać filmy czy robić większe notatki.

PDA szczególnie taki ze zintegrowanym telefonem jest bardziej poręczny gdy się poruszamy, laptop za to daje większy komfort pisania.

UMPC wpasowuje się gdzieś „między” PDA i laptopy. Jest dużo wygodniejsze w użyciu niż PDA i bardziej poręczne niż laptop. Dlatego na razie wydaje mi się, że UMPC nie zastąpi PDA i laptopów, raczej do grona gadżetów dojdzie następny ;-)



Podobne postybeta
Złapałem lenia....
Dzień z frontu ;-)
Zmusiłem Asus MyPal A636N do pracy z WiFiFoFum :-)
Nieszczęście... ale nie takie złe ;-)
A co jeśli jesteśmy jedyni?

Zastój, albo dzień podróży ;-)

Moje badania w "sferze praktycznej" nie posunęły się dziś zbytnio do przodu, ale znów wróciła do mnie idea napisania całej maszyny wirtualnej w Java'ie :-)
Liczę, że mój jutrzejszy wyjazd do Gliwic na zajęcia się powiedzie, i że pojawią mi się jakieś nowe pomysły.
Za to mój PocketPC przetrwał bez ładowania przez 114.5 godziny, w trakcie których używany był przez około 2 godziny. W tym czasie pożarł aż 73% baterii. Wynika z tego, że byłby w stanie przetrwać bez ładowania baterii co najwyżej trochę ponad 156 godzin.


Podobne postybeta
Jestem lepszy od UE ;-)
Atak klas anonimowych
USB-C w iPhonie dobra rzecz :-)
Kryzys przedsenny ;-)
Pebble to zapewne przyszłość... bo mi się nie podoba ;-)

czwartek, marca 23, 2006

Frustracja....

Walczę nadal z ClassLoader'em. Wszystko wskazuje, że mój paskudny hack nie zadziała ;-)
Zagwozdka związana z tym hackiem wygląda tak, JVM woła z ClassLoader'a metodę loadClass(String,boolean), ale woła ją tylko raz... na to w każdym bądź razie wskazują moje doświadczenia. Nie rozumiem tego do końca ponieważ nawet w JavaDoc'u do loadClass(String,boolean) stoi:

Loads the class with the specified binary name. The default implementation of this method searches for classes in the following order:
1. Invoke findLoadedClass(String) to check if the class has already been loaded.
2. Invoke the loadClass method on the parent class loader. If the parent is null the class loader built-in to the virtual machine is used, instead.
3. Invoke the findClass(String) method to find the class.


Czyli mamy, że najpierw wołana jest metoda findLoadedClass(String), która to metoda zwraca definicje klasy jeżeli była ona już ładowana. Nie wprost, ale jednak sugeruje to, że loadClass(String,boolean) wołane jest za każdym razem gdy JVM żąda załadowania klasy... myślę, że będę musiał przestudiować specyfikacje JVM żeby dowiedzieć się jak to jest dokładniej :-)



Podobne postybeta
Wydało się ;-)
Sortujemy JTable gdy się da ;-)
Nieznane ścieżki ClassLoader'a ;-)
"Log porażek" ;-)
Czy LLMy umieją wnioskować? Test :-)

Jestem lepszy od UE ;-)

Dowiedziałem się przed chwilą z programu Plus Minus w TVP1, że w Unii Europejskiej przypada średnio 31 komputerów na 100 mieszkańców, w Polsce tylko 14. Policzyłem sobie więc jak wyglądam na tle statystyk ;-)
Biorąc pod uwagę, że używam na co dzień 3 komputerów:
  • Laptopa - Acer Aspire 5002LM
  • Stacjonarnego - Athlon 2000XP+ 1GB RAM
  • PocketPC - Optipad 400 Photo aka Mitac Mio 339
przewyższam średnią europejską o około 10 razy ;-), polską zaś o ponad 21 razy ;-)

Dziś moje badania nad rozproszeniem JVM przy pomocy czarów na ClassLoader'ze nie posunęły się zbyt daleko, ciągle nie mam rozwiązania dla pisania pliku ze źródłem kadłubka, nie jest to problem techniczny, a raczej wynik mojej niechęci do dłubania. Jak na razie nie widze eleganckiego sposobu na rozwiązanie tego problemu.

Podobne postybeta
Dzień z frontu ;-)
Zastój, albo dzień podróży ;-)
Kuchenka mikrofalowa
Szkoła, a ja zaczynam rozumieć ClassLoader'a
Chromebook vs netbook z Windows 8 ;-) - pierwsze wrażenia