poniedziałek, listopada 30, 2009

Piszemy rozszerzenie dla Chrome ;-)

Żeby nie było, że nie lubię Chrome OS i mam zamiar go sabotować ;-)

W ramach zabawy zrobiłem sobie malutkie rozszerzenie, które nie do końca wiadomo do czego ma służyć.
To taki niby notesik, tudzież to-do ;-)

Wygląda tak sobie:


Działa też w Chrome OS :-)



Podoba mi się bardzo to, że rozszerzenia w Chrome bazują w 100% na znanych technologiach, plik manifestu to JSON, popup rozszerzenia to HTML/CSS/JavaScript, strona backgroundu to także HTML/CSS/JavaScript [choć moje "rozszerzenie" nie ma strony backgroundu, bo nie robi nic w tle].
Co mi się nie podoba? To, że z automatu rozszerzenia lądują zawsze między paskiem a ikonkami menu. Nie dam głowy, ale zrobienie rozszerzenia, które umieści się gdzie indziej wymaga chyba zabawy z DOMem strony na której w danym momencie jesteśmy....... W każdym bądź razie na razie nie znalazłem innej możliwości umieszczenia "się" z rozszerzeniem u dołu strony.

Co do mojego "rozszerzenia" to używa ono localStorage do składowania notatek. Na razie nie potrafi się synchronizować i zobaczymy czy się kiedykolwiek nauczy ;-)

Co jak co, ale napisanie prostego rozszerzenia dla Chrome jest o wiele prostsze niż w przypadku Firefoksa. Z drugiej strony rozszerzenia dla FF jakoś łatwiej skomponować z przeglądarką.

Jakby ktoś chciał pobrać rozszerzenie to znajdzie je tutaj ;-)

Jakieś pomysły co dodać rozszerzeniu, co w nim zmienić? Czy może dać sobie spokój? ;-)


Podobne postybeta
Android nie taki zły ;-)
Algorytm - czemu w szkole nie uczą jak obliczyć pierwiastek? ;-)
Chrome2ChromeV2 na GitHub :-)
Swing i GUI znów "przeszkadzają" ;-)
Jakie są wasze "funkcje marzeń" w programie do blogowania? :-)

DVDowe pytanie ;-)

Z serii pytań dziwnych ;-)

Jak to jest, że z jednej strony 2 największe zbrodnie jakie może zrobić firma to wejść w zmowę cenową i dokonać podziału rynku, a z drugiej strony w ramach "ochrony własności intelektualnej" w DVD istnieje podział na regiony i istnieje możliwość zawierania umów o dystrybucji np. filmów z wyłącznością...

Takie mi się to wzajemnie sprzeczne wydaje ;-)

No bo jak to jest? Jak robię gwoździe to broń boże nie wolno mi powiedzieć konkurentowi, że nie jestem w stanie zejść poniżej ceny np. 1 grosza za gwoździa bo to już jest zmowa cenowa, ani nie mogę mu powiedzieć, że nie planuję ekspansji w jego okolicach bo tam jest trudno i mu chyba też będzie trudno w moich okolicach bo to wtedy jest podział rynku.
Ale jak firmy projektujące standard DVD przyjęły, że sobie podzielą świat w celu uniemożliwienia swobodnego przepływu płyt DVD to to nie był podział rynku i nie była to nieuczciwa konkurencja. Jak płyta DVD w Europie kosztuje 1.5 raza więcej niż w USA i jest wydana pół roku później to też jest wszystko OK, chociaż jest to wynikiem zawarcia umowy między producentem, a dystrybutorem.

Dziwne, nie? :-)


Podobne postybeta
CD/DVD to takie wyszukane /dev/null ;-)
Dobre IDE bywa złe ;-)
Karta Praw Podstawowych
Dlaczego wybrałem Windows XP dla mojego EEE?
No i mamy wyrok

niedziela, listopada 29, 2009

Kalkulator

Wiecie jaki gadżet lubiłem najbardziej na studiach? :-)

Mój kalkulator :-)



To była fajna bestia. Nawet się go programować dało. Nawet jedną 2 z kolokwium z elektrotechniki mu zawdzięczam, a dokładniej kalkulatorowi, mojemu błędowi w kodzie i temu, że w starym podręczniku do algebry Starka były przykłady układy równań z 3 niewiadomymi, w których rozwiązaniem była sytuacja gdy jedna ze zmiennych była równa 0 [niestety trzecia, a ja po napisaniu programu do rozwiązywania układów równań testowałem go na tych przykładach i tam wszystko działało ;-)].
Niestety jakiś czas temu kalkulator umarł :-( Miałem nadzieję, że to bateria, ale niestety to nie było to.
I teraz myślę o jakimś nowym kalkulatorze.
Nie jest mi może zbyt potrzebny do pracy i życia, ale to jedne z gadżetów inżyniera ;-) i jakoś mi go brakuje.
Macie może jakieś pomysły? Ktoś może używał Casio Algebra 2.0 FX? Albo FX-5800P? Który fajniejszy?


Podobne postybeta
Kiedy tablet zmieni się w dobry kalkulator?
Kalkulator marzeń ;-)
Czekamy na kalkulator :-)
To (kalkulator) żyje :-)
Zegarek z instrukcją ;-)

Minarety vs. krzyże - 0:1?

Fajny pokaz hipokryzji mamy teraz w związku z referendum w sprawie zakazu budowy minaretów w Szwajcarii.Jak możemy usłyszeć stawianie minaretów to znaczenie terenu przez Islam, to zawłaszczanie przestrzeni publicznej. Czyli stawianie przy meczecie minaretu [czyli w miejscu kultu] jest złe bo oznacza zawłaszczanie przestrzeni publicznej.I tutaj prawica Polska pieje z zachwytu.Ale jak ktoś zaczął mówić o tym, że krzyże w miejscach publicznych [np. państwowych szkołach czy szpitalach] są zawłaszczaniem przestrzeni publicznej to od razu usłyszeliśmy, że ateiści walczą z wiarą [mało kto wie, że kobieta, która wygrała przed trybunałem w Sztrasburgu jest muzułmanką, nie ateistką!].Czyli jak chrześcijaństwo, a głównie katolicyzm zawłaszcza obiekty publiczne to jest OK, a jak islam chce budować minarety przy swoich miejscach kultu to jest źle.Taka lekka hipokryzja, nie? Jak kali ukraść krowa, to jest to sprawiedliwy podział dóbr, a jak Kalemu ukraść krowa to źle bo to zbrodnia.Takie lekko nierówne traktowanie, nie sądzicie? Bo wydaje mi się, że nie chodzi tu o obronę przed zawłaszczaniem przestrzeni przez Islam, a raczej o taką obrzydliwą mieszankę nacjonalizmu/rasizmu z naturą krzyżowców. Może chodzi po prostu o to by "brudasom" pokazać, że mają zrobić wypad z "czystego" kraju?To jednak powody wieszania krzyży wszędzie są chyba mniej niebezpieczne, bo tu chodzi tylko o zrobienie pokazówki w stylu "ja chcący powiesić ten krzyż jestem lepszym katolikiem od was, którzyś cie na to nie wpadli".


Podobne postybeta
Wojny religijne i jak ich uniknąć
A takie tam absurdy
"Bóg urojony"
"Cywlizacja białego człowieka" - WTF?
Wydało się ;-)

Nie rozumiem, czyli czemu niektórzy ludzie pytają jak przejść z Windows 7 na XP?

Ktoś tu ostatnio trafił szukając informacji o tym jak przejść z Windows 7 na Windows XP na laptopie Asus N61VG-JX025V.Nie rozumiem po co.Albo inaczej, jestem w stanie zrozumieć, że istnieje kilka bardzo specyficznych i niszowych zastosowań w których może się okazać, że konieczne jest Windows XP, zwykle będzie to miało coś wspólnego z oprogramowaniem, które używa jakiegoś sprzętu [np. karty I/O] do którego nie ma sterowników pod Windows Vista/Windows 7. Pierwsze co mi się w głowie pojawia to kable i interfejsy do programowania niektórych starszych telefonów i radiów [i to jest poprawna forma! zaskoczony jestem], drugie to jakiś sprzęt badawczy.Ale to jest drobny wyjątek i wtedy raczej ktoś szukałby informacji o tym jak przejść na XP w tygodniu, a nie w weekend.Bądźmy szczerzy, Windows 7 to najlepszy w tej chwili system, który zrobił Microsoft. Nie widzę więc innego powodu niż ten o którym napisałem wyżej [OK, jest jeszcze jeden, zachowanie homogeniczności środowiska korporacyjnego, ale korporacje nie kupują Asusów, a jak już kupią to Asus im przygotuje środowisko z takim systemem jakiego sobie zażyczą], rozumiem oczywiście, że to jest moje zdanie i nie musi być z definicji słuszne, ale nie wydaje mi się by istniały inne racjonalne przesłanki za tym by rezygnować z Windows 7 na rzecz Windows XP.Rozumiem gdy ktoś zrezygnuje z Windows 7 bo od zawsze kochał Linuksa, ale dla XP?Przecież XP ma 7-8 lat, gdy powstawało nie było dla niego nawet wersji 64 bitowej [powstała dużo później].Przecież XP nie obsłuży 4 GB RAM.No nie rozumiem.Może ktoś mi spróbuje wyjaśnić?


Podobne postybeta
Windows 7 - łał :-)
Szkoda Java'y
Tarcza
Zasiałem mema :-)
Nieuki

sobota, listopada 28, 2009

Java i Chrome OS część 2 :-)

Postanowiłem robić dalsze eksperymenty z Java'ą na Chrome OS, tym razem jednak nie na VMPlayerze, a na moim EEE PC.

Okazuje się, że na Chrome OS są aż 2 Java'y!
Jest OpenJDK 1.6, która kryje się w katalogu /usr/lib/jvm/java-6-openjdk i przedstawia się jako OpenJDK Runtime Environment (IcedTea6 1.5) (6b16~pre5-0ubuntu2) OpenJDK Client VM (build 14.0-b16, mixed mode).
Druga to GCJ 4.4, które znajduje się w katalogu /usr/lib/jvm/java-1.5.0-gcj-4.4, która przedstawia się jako java version "1.5.0" jij (GNU libgcj) version 4.4.1.

W tej Java'ie z OpenJDK nie działa Swing, próba uruchomienia programu używającego AWT lub Swinga kończy się komunikatem:


Który mówi w skrócie, że Java nie może znaleźć odpowiedniej biblioteki natywnej.

W GCJ Swing działa :-)



Chociaż program jest dziwnie rozciągnięty na cały ekran.

Udał mi się także uruchomić w tej Java'ie mój programik animujący twarz cieniowaną metodą Gourauda:



I trzeba przyznać, że jest potwornie wolny. Co można zobaczyć na filmiku :-) [mam nadzieję, że kawałek Korna, którego słuchałem już został zastąpiony przez Bacha :-)]



Tyle wiemy.
Nie wiemy czy Java zagości w Chrome OS na stałe, czy jest tam teraz tylko przez przypadek.

A przydałaby się.
Np. niemal z automatu przyjąłem, że będę mógł poużywać mojego głównego komputera z Win7 przy pomocy Java'owego klienta VNC uruchomionego na Chrome OS.... Nie udało się ;-) Co oznacza, że nadal trzeba wstać i podejść do dużego komputera gdy chcemy mu coś zrobić.


Podobne postybeta
JDK8 na Rasbperry Pi rządzi :-)
Udawanie Raspberry Pi ;-)
GCJ mnie przerosło ;-)
Jeszcze o Chrome OS... a mądrość ludu po premierze sugeruje porażkę Chrome...
Sortujemy JTable gdy się da ;-)

Reglamentacja?


Wygląda na to, że Coca-Cola stała się produktem pierwszej potrzeby. Już ją zaczęli reglamentować.
Tylko 12 butelek [24 litry] na 1 osobę! Skandal!
Przecież te 24 litry to na moment starczą i co później? Człowiek ma o suchym pysku siedzieć? ;-)


Podobne postybeta
Pożar...
Forma nad treścią
Blogger i Google+ w końcu razem? ;-)
Buzz Troll Remover v0.1.1 :-)
Bigotland - kraina bigotów

piątek, listopada 27, 2009

Chromium OS na Asus EEE PC 900

Pobrałem sobie z torrenta obraz do nagrania na USB z Chromium OS. Wrzuciłem na pendrive'a i odpaliłem na moim Asus EEE PC 900.Nie wiem czy to wina wolnego pendrive'a, ale na moim EEE PC Chrome OS był odczuwalnie wolniejszy niż Windows XP uruchamiane z wbudowanego SSD [który prędkością nie grzeszy ;-)].Kursor strasznie szarpał, a mój wielokrotnie wspominany tu test prędkości działania JavaScript'u [ten bazujący na całkowaniu ;-)] potrzebował około 12 ms na 1 iteracje, gdy na Chrome pod Windows XP potrzebuje około 9 ms.Widać, że pisząc Chrome OS Googlerzy używali Asusów EEE PC, bo WiFi działa.Wystarczy wybrać SSID z listy i podać hasło. Jednak z tego co zauważyłem nie ma możliwości podpięcia się pod sieć, która nie rozgłasza SSID.Dodatkowo mimo tego, że WiFi działa to pierwsze uruchomienie wymagało podpięcia kabla Ethernet, bo dostęp do konfiguracji WiFi jest dopiero po zalogowaniu, a do zalogowania z tego co mi się wydaje potrzeba połączenia z siecią by sprawdzić czy nasze konto na GMAILu rzeczywiście istnieje.Ciekawe właśnie jak Google to rozwiąże, czy np. w okolicach ekranu logowania pojawi się możliwość skonfigurowania sieci WiFi? Bez tego będzie raczej niezbyt miło bo po prostu nie będziemy w stanie się zalogować żeby ustawić konfigurację WiFi.Taki Paragraf 22 ;-) żeby się zalogować trzeba mieć sieć, żeby mieć sieć trzeba się zalogować ;-)Chrome OS ładnie wykorzystał cały dostępny ekran, czyli 1024x600.Potwierdziły się też moje obserwacje z VMWare, że w Chromium OS na razie NIE MA Gearsów i przez to nie działa np. GMAIL Offline.Gdy się głębiej zastanowić to nie po to mamy mieć system oparty o chmurę by przechowywać cokolwiek off-line więc może brak Gears'ów to nie wynik problemów z ich implementacją, a przemyślana strategia?Miałoby to tego plusa, że w takim przypadku dyski SSD tych przyszłych Chrome OS'owych netbooków mogłyby być naprawdę malutkie.Tak btw. dlaczego aż tylu ludziom wydaje się, że SSD jest szybkie? Przecież te małe i tanie dyski SSD są wolniejsze od wielu pendrive'ów!Na tym Chromium OS powtórzył się znów błąd, który widziałem czasem na VMWare, i dawno temu na Ubuntu [o czym tutaj pisałem], nie wszystkie adresy są poprawnie rozwijanie i teraz Chromium OS upierało się, że mój blog nie istnieje ;-) Czyżby mój router coś rozrabiał?Ogólnie bez jakichś zachwytów, ale źle nie jest. Potencjał to ma, choć wymaga jeszcze poważnego dopracowania. Ale jak na coś co ma wg. jednych przekazów około roku, a wg. innych jakieś pół roku to i tak dobrze.Mój wymarzony Chrome OS miałby:- wsparcie dla Java'y, tak appletów jak i aplikacji odpalanych w Jawa Web Start- pełną synchronizację przeglądarki, łącznie z ciasteczkami, bookmarkami, składowanymi hasłami i danymi w localStorage'u- łatwa możliwość konfiguracji WiFi i możliwość dodawania sieci nierozgłaszających SSID- polska klawiatura i polski słownik- lepsza konfiguracja i ładniejsza, bo obecna jest brzydkaNa razie tyle mi do głowy przyszło :-)


Podobne postybeta
Chromebook vs netbook z Windows 8 ;-) - pierwsze wrażenia
A tak sobie ;-)
Java i Chrome OS....
Jeszcze o Chrome OS... a mądrość ludu po premierze sugeruje porażkę Chrome...
Raspberry Pi to nie jest demon prędkości ;-)

czwartek, listopada 26, 2009

Podobne posty i zachwyty nad nimi... ;-) i trochę o Java 7

Z przerażenie, ale i niejaką dumą ;-) odkrywam, że algorytm, który stosuję do wyszukiwania podobnych postów działa podejrzanie dobrze.
Ku mojemu zaskoczeniu proponowane notki o podobnej treści rzeczywiście często pasują tematyką lub tonem do wzorca. Jest to trochę dziwne, bo przecież cały algorytm bazuje tylko na podobnej częstotliwości unikatowych słów, czyli dwa teksty są do siebie tym bardziej podobne im więcej mają wspólnych słów, które są rzadkie w całym korpusie i im częstotliwości użycia tych słów są do siebie podobne. Czyżby aż taka część informacji o temacie czy tonie tekstu była zawarta w słowach?
Bardziej spodziewałbym się tego po zbitkach słów i analizie w oparciu nie tyle o słowa co o ich synonimy.
Inna sprawa, że algorytm działa w miarę dobrze na tekstach pisanych przez tą samą osobę, czyli bazuje też na tym, że gdy piszę o temacie A to prawie zawsze używam danego zestawu słów, i gdy piszę w danym tonie to znów używam też specyficznego zestawu słów.
Moim marzeniem jest zaprząc ten prosty algorytm do wyszukiwania jakiejś struktury w firmowych dokumentach, czy ogólnie w dokumentach, bo zwykle jest tak, że gdzieś coś jest napisane, ale trudno powiedzieć gdzie :-) Trudno też znaleźć bo to co my kojarzymy z tagiem "programowanie" ktoś inny mógł kojarzyć z tagiem "development".
A uruchomić to na opisach błędów! Może by się okazało, że da się coś z tego wyczytać? Wiem, że podobne rzeczy były już testowane i wyniki były różne.

A po samozachwycie ;-) o kilku smaczkach, które mają dodać do Java 7 :-)
Np. diamentowy operator, czyli <> dzięki któremu zamiast:
Map<String,Map<String,List<String>> map = new HashMap<String,Map<String,List<String>>();
użyjecie po prostu:
Map<String,Map<String,List<String>> map = new HashMap<>();
Co prawda to zwykle odwala za nas Eclipse, ale powinno ułatwić czytelność.
To samo zresztą z nowym mechanizmem tworzenia kolekcji :-) Listy będzie się dało tworzyć tak:
List<String> list = ['ala','ma',kota'];
A mapy tak:
Map<String,String> map = {"imie":"Buffy","nazwisko":"Summers"};
Dojdą też binarne literały i możliwość, podobno wygodniejszego, rozdzielania literałów typów int i long przy pomocy _ czyli underscore'a, stąd zamiast:
int milion = 1000000;
gdzie pisząc po prostu liczymy 6 zer, będzie:
int milion = 1_000_000;
Są jeszcze zmiany w generykach i obietnica dodania domknięć, choć tutaj się jeszcze kłócą i osobiście przyznam, że na razie trochę mnie razi składnia domknięć z #, ale to mi przejdzie :-)
Aha, jeszcze dodadzą coś paskudnego związane z automatyzacją zarządzania zasobami, nie wnikałem w szczegóły, ale możliwe, że chodzi o to, że np. plik będzie zamykany od razu gdy obiekt wyjdzie z zakresu.... Nie wiem, nie do końca jestem pewien czy mi się to podoba i jedynie widziałem wzmiankę o tym ficzerze, więc trudno cokolwiek więcej o nim powiedzieć.
Podobno nowa wersja Java'y ma być gotowa we wrześniu 2010.
Wszystko o tych nowościach w Java 7 znalazłem tutaj - http://code.joejag.com/2009/new-language-features-in-java-7/

[ten post poza swego rodzaju potokiem świadomości, ma też być testem dla podobnych postów coby zobaczyć czy zwariują bardziej niż zwykle ;-)}


Podobne postybeta
Ekszperyment :-) czyli Podobne posty :-)
GCJ mnie przerosło ;-)
Sztuczki tropiciela błędów ;-)
Socjalne Google - czego brakuje?
Androidujemy sobie ;-) ale tak niemrawo

środa, listopada 25, 2009

10 używek, których nie należy zażywać w trakcie jazdy ;-)


Mimo wszystko najbardziej podobają mi się tutaj skutki ecstasy ;-) [wstyd przyznać, ale nie wiedziałem nawet jak to się pisze i musiałem sprawdzić w Wikipedii]], reakcja na haszysz też zabawna, a co do Absinthe'u [też potrzebna była pomoc Wikipedii] to zdecydowanie lepsza reakcja była pokazana EuroTrip ;-)
Ktoś kto oglądał Buffy to wie, że Anya nie mogłaby zażywać LSD z racji swojej królkofobii.


Podobne postybeta
Niezdecydowany tramawaj
Niewyspanie - złe skutki niechciejśpizmu ;-)
Użytkownicy Mac OS - pomożecie? ;-)
White & Nerdy
Wyznania programoholika ;-)

"We skrócie"

Krótko.

Podobno wczoraj była 150 rocznica wydania "O pochodzeniu gatunków" ale u nas w Polsce media jakoś to pominęły, jedyne co zauważyłem to Onet, który "przedrukował" wywiad z CNN z Dawkinsem.

localStorage rozrabia, co najmniej w Chrome nie "trzyma" kolejności wkładania elementów gdy się po nim iteruje. Nie obiecywali tego, ale byłoby to miłe ;-)

Wiecie co się stanie jak w Java'ie poprosicie o utworzenie na komputerze z polskimi localami daty i godziny 28/03/2010 2:30? :-)
A dostaniecie 28/03/2010 3:30 :-) Ale gdy ten sam ciąg co u góry sparsujecie przy pomocy DateFormater'a w trybie rygorystycznym to dostaniecie null'a ;-) W nie rygorystycznym będzie znów 28/03/2010 3:30.
Wszystko przez to, że akurat w Polsce w 2010 roku nie będzie nic między godziną 2:00 a 2:59:59 28 marca, czas wtedy przesuwamy.

Era Premia mnie zaskoczyła, mam Blueconnecta jakoś tak od 2005 roku, czyli ponad 4 lata i uzbierałem tam kilka tysięcy punktów, i sobie tam leżały w myśl zasady, a niech się zbierają. Dziś zajrzałem do szczegółów i okazało się, żę co miesiąc dochodzą mi 88 punkty, ale 158 jest mi odejmowanych ;-) bo się unieważniają......... dlatego jutro kupie za ich pomocą cokolwiek ;-) byle się nie straciły.

Czytam "The Wisdom of Crowds" i niezłe jest, nie tak porywające jak Dawkins, ale też się nieźle czyta. Btw. TWoC i zapędów antyhazardowych naszego rządu, to wychodzi że jeśli jeszcze zakażą zakładów wzajemnych w sprawach innych niż sport [a może już zakazali???] to zabiją obiecujący sposób agregowania przewidywań przyszłości. Brawo!

Spać ;-)


Podobne postybeta
Czasoprzesunięcie
Nikt już nie dba o tekstowe przeglądarki
7 sezonów Buffy na DVD
42 do 58 na porażkę Chrome OS
Niepomyśleli....

wtorek, listopada 24, 2009

localStorage odsłona 2 - zaczynają się kłopoty ;-)

Wczoraj w nocy [prawie 12 godzin temu ;-)] pisałem o localStorage wprowadzanym przez HTML5.

Jak pisałem jest świetny, ale nie ma róży bez kolców.

Chrome i Firefox rozumieją localStorage trochę inaczej.

Chcąc przeinterować się przez elementy w localStorage w Chrome użyć trzeba kodu:

for (key in localStorage) {
var value = localStorage[key];
// niecna działalność
}

Oczywiście to nie zadziałą w Firefoksie [testuję na 3.6 beta 3] bo dowiemy się, że localStorage nie posiada właściwości _iterator_ czy podobnie.
W FF trzeba iterować tak:

for (var idx=0; idx<localStorage.length; idx++) {
var key = localStorage[idx];
var value = localStorage.getItem(key);
// niecna działalność
}


Ale nadal mi się to podoba :-) Testowałem i wrzucałem po 1MB danych [łącznie] i jak na razie działało :-)


Podobne postybeta
HTML5 goodies - localStorage
Sekrety klasy String ;-)
Czytanie Pocketa ;-)
Zabawy z Chrome, chrome.storage.sync jest wielkie :-)
Jak "okradłem" Google Readera ;-)

HTML5 goodies - localStorage

"Bałdzo kłótko dziś" bo obiecałem sobie, że pójdę spać o 2:00... a jest teraz 2:20 ;-)Bardzo podoba mi się localStorage wprowadzony w HTML5 [Chrome już go implementuje :-) co tłumaczy dlaczego w Chrome OS nie ma Gearsów, choć może w następnych wersjach będą].localStorage służy za lokalną składnicę dla stron.Wystarczy w JavaScript'cie użyć localStorage.setItem("toster",12) i już będziemy mieli zapamiętaną pod kluczem toster liczbę 12 :-)Żeby odczytać używamy localStorage.getItem("toster") lub localStorage["toster"]. Tej drugiej metody możemy też użyć by iterować po locaStorage, wtedy użyjemy:
for (el in localStorage) {   var item = localStorage[el];   // niecna działalność}
Gdy chcemy skasować wartość pod "toster" to używamy localStorage.removeItem("toster").Proste jak konstrukcja cepa, a jakie przydatne!


Podobne postybeta
localStorage odsłona 2 - zaczynają się kłopoty ;-)
[Updated] Czytanie Pocketa ;-)
Expressivo + OpenOffice.org
Gmail Off-line i problem z "Failed to enable local store" - rozwiązanie ekstremalne ;-)
Kolejny "projekt" na GitHub ;-) LocaleSSID

niedziela, listopada 22, 2009

Na przekór

Obserwuję u siebie kolejne objawy choroby "na przekór" ;-)Nie pisałem tu zbyt entuzjastycznie o Chrome OS, zrobiłem nawet ankietę i za każdym razem gdy przybywał głos na "sukces" to uważałem, że osoba głosująca się myli.......
Teraz wielu zawiodło się na tym co pokazano, a we mnie narasta jakieś pozytywne uczucie do Chrome OS. Zacząłem nawet dłubać sobie malutkie rozszerzenie do Chrome.
Klasyczne objawy choroby "na przekór".
To samo miałem z Go, tłum krzyczał "to jest najlepszy język świata", a ja go krytykowałem, a teraz patrzę [po tygodniu ;-)] nań z pewną sympatią choć jako programista mam nadzieję, że akurat ten język spadnie do któregoś z wewnętrznych kręgów piekła, może to być ten krąg gdzie spoczywa Perl ;-) Ale to zapewne mój językizm [dla niewtajemniczonych językizm to taki rasizm w sprawie języków programowania].
Żeby nie było, że to tylko o Google chodzi [a przecież Chrome też krytykowałem i odczuwałem olbrzymią przyjemność gdy w moich testach JavaScript Chrome okazał się wolniejszy od tego z Firefoksa ;-)], to "na przekór" pojawia mi się ostatnio w sprawie pakietów biurowych.
Prawie od zawsze byłem zwolennikiem OpenOffice.org, a "przeciwnikiem" MS Office. Nie w sensie, że uważałem MS Office za gorsze od OpenOffice.org, bo MS Office bywa lepszy w jednych rzeczach, a w innych OpenOffice.org jest lepszy. Moja postawa była raczej taka, że nie kupię MS Office, i nie ukradnę go, będę używał darmowego OpenOffice.org, było tak gdy wszyscy w koło krzyczeli że MS Office jest lepszy.
Ale teraz co jakiś czas pojawia mi się w głowie myśl żeby kupić MS Office'a........ Fakt, że głównie po to by spróbować napisać do niego jakieś wtyczki ;-) ale jednak się pojawia.
To pewnie jest jakieś zaburzenie psychiczne, ale dobrze mi z nim :-)


Podobne postybeta
Iluminacja... czyli "Oświeciło mnie"...
"Językizm" czyli co mnie razi w C#
Pythonowe formatowanie kodu ma jednak swoje zalety ;-)
Narzędzia, wszędzie narzędzia...
Głupi nacjonalizm, głupi!

sobota, listopada 21, 2009

O prywatnej i publicznej służbie zdrowia.

Co jakiś czas ktoś sprzedaje wielką teorię, że prywatna opieka medyczna będzie lepsza od tego co dostajemy z NFZ bo będzie tańsza i w ogóle super.

Tak, to prawda. W tej części dotyczącej lepszości. Rzeczywiście prywatna opieka medyczna może być lepsza, w każdym bądź razie dla niektórych.

Kto się kwalifikuje do tych niektórych?

Popatrzmy.
Mamy rodzinę, on, ona, i 2 dzieci, jedno powiedzmy 10 lat, drugie 2 latka. Prywatnie zapłaciliby za ubezpieczenie zdrowotne i szpitalne 1095 złotych miesięcznie [jeśli zapłacą całość za rok z góry].
Inny przykład, on lat 60, ona 57, składka 1064 złote miesięcznie, też przy płatności z góry na rok.
Jak jesteś sprzed 1945 roku to się nie ubezpieczysz.
Takie są koszty w świetnej firmie jaką jest Medicover.

Teraz dla porównania, ktoś zarabiający 3300 złotych brutto na miesiąc płaci na NFZ jakieś 260 złotych miesięcznie. Jeżeli oboje małżonkowie pracują to płacą łącznie 520 złotych. Nadal 2 razy mniej niż prywatnie.

Takie małżeństwo na NFZ zacznie płacić tyle ile płaciliby za prywatną opiekę medyczną w momencie gdyby oboje zarabiali po 7000 złotych brutto na miesiąc.

A coś bliższego typowego małżeństwa? Powiedzmy on 2000 złotych brutto na miesiąc, ona 1500 złotych brutto na miesiąc. Łacznie płacął na NFZ około 270 złotych, 4 razy mniej niż by wypadało.

NFZ, który jak zapewnia nas prof. Balcerowicz i inni, marnotrawi tylko nasze pieniądze i robi wszystko za drogo, ma na miesiąc na 1 klienta około 110 złotych.
Te 110 złotych to mniej niż prywatnie kosztuje tylko opieka w stylu wizyty u internisty.

To co płacimy na służbę zdrowia to są śmieszne grosze, w porównaniu do takich Niemców płacimy jakieś 30% tego co oni płacą na swoją służbę zdrowia. Więc i tak serwis mamy całkiem niezły, szczególnie jeśli brać pod uwagę to, że oni ceny sprzętu i leków mają porównywalne do naszych. Mają po prostu więcej pieniędzy i mogą za nie lepiej leczyć.

Konkluzja jest taka, że jak zarabiasz mniej niż jakieś 3300 brutto miesięcznie to wyciągasz kasę z systemu, bo płacisz mniej niż by "wypadało". A mniej niż średnią krajową zarabia coś koło 70-80% tych, którzy pracują.


Podobne postybeta
A ja jestem przeciwny prywatyzacji służby zdrowia.
Płatnik czy beneficjent?
My = Bogacze.
"Medyczny" dowcip dnia ;-)
Wojny religijne i jak ich uniknąć

Connectify - zmień swoje Windows 7 w hot spota :-)

Od paru dni używam czegoś co można by nazwać jednym z goodies for Windows 7.Jest to programik zwany Connectify, który pozwala na to by Windows 7 stało się hot spotem WiFi :-)Ktoś może spytać niby po co.A po to żeby móc w bezpieczniejszy sposób dzielić się Internetem z innymi komputerami i np. telefonami :-)W domu nie jest mi to potrzebne bo tutaj mam router, ale w Krakowie mam tylko Blueconnecta podpiętego do laptopa, czasem chciałbym jednak skorzystać z sieci przy pomocy mojego netbooka, albo podłączyć do sieci G1 inaczej niż przez sieć komórkową, tudzież podłączyć firmowego laptopa czy cokolwiek innego.No i takie G1 nie jest się w stanie podłączyć do sieci ad-hoc, a do hot spota i owszem.I w takich momentach przydaje się Connectify.Dodatkowo sieć ad-hoc może działać z maksymalną prędkością 11 MBps i jest praktycznie niezabezpieczona, łatwo ją złamać, z WPA2-PSK jest ciut trudniej :-)Ważną cechą Connectify jest także to, że nasz komputer z Windows 7 będąc hot spotem może nadal być podłączonym do innego hot spota i może dzielić się dostępem do tej właśnie sieci :-)Obecnie dostępna jest beta 0.2, poprzednia wersja 0.1 nie działała na moim laptopie, ale teraz już wszystko jest OK.Programik jak na razie jest darmowy, choć kto wie, może kiedyś stanie się płatny.Btw. jak widać moje komputery zowią się Shiri i Ginny, pozostałe to River i Priscila. Jest jeszcze Maleństwo i G1. Gdy miałem jeszcze desktopa to zwał się Albert a wcześniejszy HAL.


Podobne postybeta
Nazwy
Zmusiłem Asus MyPal A636N do pracy z WiFiFoFum :-)
WS-Security złe, SOAP zły, WebServices złe. REST dobry
Asus EEE 900 ;-)
Comfort zone to zło!

Jeszcze o Chrome OS... a mądrość ludu po premierze sugeruje porażkę Chrome...

Wracając do ChromeOS i wyników ankiety, którą "rozpisałem" ;-)Wynik z całego "badania" to 68 do 32 na sukces, ale jeśli liczyć wyniki tylko po premierze to już mamy 45 do 55 na porażkę.
W wielu artykułach, które pojawiły się wcześniej w sieci wiele osób zakładało, że ChromeOS to będzie "zwykły" Linux, w którym wszystko sobie w razie czego zainstalują. Rozwodzono się nad tym jak to Google skierowało masę programistów do prac nad ChromeOS i sterownikami do Linuksa... a tu amba ;-) Raczej nic nie da się zainstalować, a samego Chrome OS nie da się zainstalować na swoim komputerze, bo będzie go można tylko kupić z dedykowanym sprzętem. Dla chcących użyć go na innych komputerach pozostaną buildy Chromium OS, ale to już bez brandingu Google.
Sterowniki też raczej powstaną tylko dla wybranego sprzętu.
Ale wszyscy się spodziewali nowego Linuksa, to można było wnieść po serii pytań zadanych po prezentacji. Pytano np. czy da się zainstalować tam inną przeglądarkę. Zdziwiony prowadzący stwierdził, że Chrome OS to przeglądarka. Ktoś inny pytał o dostępność AppStore'a [choć tu akurat coś może będzie, np. może sklep z rozszerzeniami do Chrome, za dużo pieniędzy tu czeka ;-)]Ja ze swojej perspektywy stwierdzam, że pewnie w ciągu paru lat będzie trzeba zacząć traktować Chrome jako kolejną platformę dla aplikacji webowych. Na razie można w przypadku rynku w USA przyjmować, że jest 1 platforma w kilku wersjach i nazywa się Internet Explorer, do tego dochodzi nieśmiało Firefox. Ale pewnie jednak Chrome OS zagości na małych zgrabnych komputerkach i z czasem zacznie się przebijać........
Jak już tu pisałem nie do końca mi się ta wizja podoba ;-)Inna sprawa, jak na razie nie mam wrażenia by ChromeOS potrafiło synchronizować cokolwiek, ale jeśli dodadzą do niego Gears'y i będą synchronizowali ciasteczka, stan rozszerzeń i pliki Gears'ów to kto wie, może się uda.Do tego jeszcze dedykowany sprzęt może będzie potrafił pracować długo w standby, tak że włączenie Chrome OS będzie trwało np. 2 sekundy [bo wbrew pozorom 7 sekund to za długo jeśli chodzi o używanie komputera do rzeczy w stylu - "zobacz co znalazłem", bo przez to praktycznie WSZYSCY trzymamy komputer włączony w ciągu dnia tylko po to żeby móc w razie potrzeby podejść i sprawdzić maila] i niestety może się udać..... i znów się będzie trzeba przestawiać na całkiem inny paradygmat tworzenia aplikacji ;-)


Podobne postybeta
42 do 58 na porażkę Chrome OS
Java i Chrome OS....
Szkoda Java'y
Przewidujemy wyniki wyborów ;-) - wyniki
Chromium OS na Asus EEE PC 900

Java i Chrome OS....

Ciekawa sprawa, gdy bawisz się którymś z dostępnych w sieci obrazów z Chrome OS,



to widać, że jest tam Java,





ale nie ma niestety Plugina Java'y



Jak ktoś ciekawy to tutaj efekt działania uname -a:



Wracając do tego co ważne ;-) Jak widać Java jest w obecnych buildach Chromium OS, ale nie można jej w żaden sposób użyć. Nie można odpalać appletów, ani aplikacji używających Java Web Start. Pociągnałem sobie wget'em jakiegoś ZIPa z kilkoma klasami, ale na razie nie potrafię go rozpakować..... no i oba moje Chrome OS'y po jakimś czasie w linii poleceń zwisają. [jak ktoś chce spróbować linii poleceń to zauważyłem, że pojawia się po CTRL-ALT-T, innym razem ALT-2 ;-)]
Tak btw. to nie wiem czy ta Java jest tam dlatego, że tak jest w skryptach buildowych, czy dlatego, że ktoś kto robił te obrazy [a sprawdzałem na dwóch] sam ją sobie dołożył. Ciekawe jest, że w obu wersjach Chrome OS, które mam jest to zawsze ta sama Java, w której numerze wersji jest słowo ubuntu ;-)
Pewne za to jest, że gdyby Chrome OS wspierał Java'ę to spełniłoby się marzenie Sun'a, które wyrazili chyba w 1997 roku, tworząc ideę Net Computer'a.
Tamten miał być napędzany Java'ą.
Chrome OS napędzany za to byłby JavaScript'em i Java'ą :-)

Co do samego systemu to na razie nie grzeszy stabilnością i wygodą ;-)
Wygląda też na to, że nie ma co marzyć o instalacji tam czegokolwiek poza rozszerzeniami do Chrome, choć tego jeszcze nie próbowałem.
Próba użycia apt-get kończy się informacją, że w /var/cośtam ;-) nie można nic zapisać.
Nie liczcie więc raczej na OpenOffice.org, albo GIMPa na ChromeOS ;-)


Podobne postybeta
Notka miraż
Prezentacja Chrome/Chrome OS
Macbook Pro Retina i OS X po 24 godzinach
Linux po miesiącu
Chromium OS na Asus EEE PC 900

piątek, listopada 20, 2009

Książkowy Stack Overflow ;-)


Lubię książki.

Nie tylko czytać, ale i mieć.

Problemem jest tylko składowanie.

Książki mają u mnie naturalną tendencję do gromadzenia się w stertach, tudzież stosach.

Jak widać, ten stos po lewej grozi przepełnieniem ;-) A StackOverflow na książkach bywa niebezpieczny ;-)

Jak się zastanowić to u mnie książki mają też coś wspólnego z kolejkami. Gdy coś czytam i kupię coś innego to zwykle to coś nowego wpada na kolejkę i czeka na swoją kolej. Teraz na kolejce są The Blind Watchmaker, Superfreakonomics i Unseen Academicals. A czytam The Wisdom of Crowds, z doskoku są Effective Java i Java Puzzlers.

Na kolejkę wpadły też dziś komiksy z serii Buffy :-)
Sceptycznie byłem nastawiony do idei komiksu z Buffy, ale obejrzymy, może mi się spodoba.




Btw. Buffy to Polsat zaczął dziś nadawać 3 sezon BtVS :-) Nie wiadomo tylko czemu o 13:00, w ogóle dziwnie to zaplanowali, bo dzisiejszy odcinek powtórzą w poniedziałek o 8:00, a o 13:00 pokażą następny i tak chyba przez wszystkie dni pracujące.....
Kochany Polsacie, czy wy myślicie, że tym zdobędziecie kogokolwiek z widowni, która w tym czasie ogląda TV? Wątpię.


Podobne postybeta
Chyba w końcu przejdę na ciemną stronę - otworzę sobie linię kredytową ;-)
A tak sobie ;-)
Książki, książeczki, książunie ;-)
Tunel... ciąg dalszy ;-)
Bug w debugu ;-)

Nie podoba mi się idea "wszystko jest aplikacją webową"

Na początku zastrzeżenie ;-) Jestem developerem, i teraz zajmuję się głównie aplikacjami webowymi. Kocham JavaScript, a HTML mimo wszystkich wad jest świetny jeśli chodzi o budowę prostych interfejsów użytkownika.
Po zastrzeżeniach ;-) przechodzimy do sedna, czyli tego, że nie podoba mi się idea wspierana przez Chrome OS, czyli idea wyrażająca się słowami "wszystko jest aplikacją webową".
Oto dlaczego.
Po pierwsze aplikacja webowa z zasady będzie wolniejsza od aplikacji lokalnej. Prosty przykład to kontrola pisowni.
Jeżeli chcielibyśmy dodać do aplikacji webowej sprawdzanie pisowni on-line to będzie ono zawsze wolniejsze od sprawdzania pisowni lokalnie.
Czemu? Bo nawet jeśli przyjmiemy, że prędkość transmisji jest nieskończenie wielka, czyli sam czas transmisji jest zerowy, oraz czas obróbki po stronie serwera też jest zerowy to i tak mamy pewien minimalny czas potrzebny na komunikację.
Jeżeli serwer jest od nas o 1.5 tysiąca kilometrów, to sygnał musi przebyć 3 tysiące kilometrów po światłowodzie. Prędkość światła w światłowodzie to 2/3 prędkości światła w próżni czyli około 200000 km/s. Czyli od momentu wysłania słowa do sprawdzenia, do momentu gdy otrzymamy odpowiedź minie najmniej 150 ms. W 1GHz procesorze w 150 ms będziemy mieli 15 milionów taktów oczekujących na odpowiedź. Gdy będzie to procesor 2.2 GHz z 2 rdzeniami będzie to już 66 milionów taktów. Spokojnie w połowie tych taktów koniecznych na samą transmisję będzie można tego sprawdzenia dokonać lokalnie.
Mówiąc inaczej w świecie webowych systemów operacyjnych Twój komputer będzie głównie czekał.
Drugi powód to druga strona medalu, czyli utrata mocy komputera spowodowana tym, że to co można zrobić łatwo robi się trudno.
Przeglądarka to program komputerowy, który wyświetla pewne dane utworzone na podstawie HTMLa, CSSów i JavaScriptu.
Działanie aplikacji webowej to w dużym uproszczeniu coś takiego:1) Twoja przeglądarka chce wyświetlić stronę więc przesyła po sieci żądanie do serwera,2) serwer rozpoznaje żądanie, odsyła potwierdzenie i zaczyna przygotowywać stronę, w końcu wysyła HTMLa, CSSy i JavaScripty do Twojego komputera,3) Twoja przeglądarka interpretuje HTMLa, CSSy i JavaScripta i rysuje Ci stronę, 4) przyciskach guziczek, w tym momencie system operacyjny informuje o tym przeglądarkę,5) przeglądarka wykonuje jakieś zadanie napisane w JavaScript,6) przyciskach kolejny guziczek, system znów przekazuje żądanie do przeglądarki,7) przeglądarka stwierdza, że tym razem musi znów poprosić serwer o coś, i wraca do punktu 1W przypadku aplikacji natywnej [Java i C# też są w tym przypadku natywne], wszystko odbywa się w miejscu i nie ma momentu gdy trzeba interpretować coś by wyświetlić wyniki.
Tak naprawdę w aplikacji webowej każda robota odbywa się 2 razy, bo raz w przeglądarce, a drugi raz na serwerze.
AJAX tu trochę sprawę polepszył, ale mimo tego, że uważam AJAXa za jeden z największych wynalazków to jest to leczenie objawów, a nie przyczyn.
A taka kontrola poprawności danych to w ogóle świetna rzecz. Po pierwsze po stronie klienta wypada to zrobić bo głupio by było zmuszać klienta do czekania przez sekundę czy 10 na odpowiedź mówiącą tylko tyle, że nie wpisał jakiejś wartości, lub wpisał złą wartość. Po drugie, nawet gdy po stronie klienta to zrobisz to musisz zrobić to samo po stronie serwera. Nie masz gwarancji czy ktoś Ci nie zmodyfikuje danych w locie, albo że nie przyśle Ci złych danych.
W przypadku aplikacji natywnej za to wszystko odpowiada system operacyjny. W przypadku aplikacji webowej nie odpowiada i nie będzie odpowiadał, bo to co możesz pominąć w systemie lokalnym, czyli ryzyko zmiany danych między interfejsem użytkownika, a logiką, w aplikacji webowej jest nie do pominięcia. Powód trzeci to konieczność wynajdywania koła za każdym razem gdy chcemy go użyć.
Przykładem niech będzie komponent zwany ComboBox'em. Jest to edytorek + lista wyboru.
HTML zna edytorek, zna listę wyboru, ale nie zna ComboBox'a.
Gdy jako developer chcąc użyć ComboBox'a musisz sobie go samemu napisać. Możesz też użyć jakiejś biblioteki, ale jest prawie pewne, że inna aplikacja użyje innej biblioteki, a jeszcze inna aplikacja, jeszcze innej biblioteki.
De facto każdy twórca każdej z aplikacji musiał wymyślić koło od początku.
To samo z rozwijalnymi menu i np. oknami modalnymi. Da się zrobić, ale trzeba samemu.
Tu jest jeden plus ;-) interfejsy się upraszczają. Gdy developerzy nie dostają wszelkiego rodzaju gadżetów to po prostu muszą korzystać z tego co jest i często wychodzi to aplikacji na dobre.
Powód czwarty to ograniczenie możliwości tworzenia aplikacji.
Teraz chcąc napisać program do zarządzania notatkami, muszę napisać kod i wymyślić jak przechowywać lokalnie dane. W aplikacji webowej muszę jeszcze znaleźć i opłacić serwer, który będzie służył do przechowywania notatek. Muszę dodać bardzo dużo zabezpieczeń by np. notatki te nie były dostępne dla kogoś innego niż Ty.
To są podstawowe powody.
Oczywiście to, że mnie się to nie do końca podoba nie oznacza, że takie podejście nie wygra ;-)Zalet jest co niemiara. Jeśli przeglądarki będą się synchronizowały między komputerami to ziści się niemal idealna bezszwowość aplikacji. Np. zaczniesz oglądać film na YouTube, Hulu czy czymś innym, na swoim netbooku. Po chwili postanowisz dalej oglądać go na laptopie podpiętym do telewizora HD. Wystarczy tylko "podnieść stan" tej akurat tabki na laptopie i można dalej działać.
Albo piszesz maila na laptopie, ale musisz szybko wyjść, i kończysz go pisać na komórce.
To wszystko jeszcze nie do końca działa z dzisiejszymi przeglądarkami, ale Chrome OS może tutaj zapoczątkować dobry trend. Przecież wystarczy by przeglądarki synchronizowały się w taki sposób, że przesyłałyby także ciasteczka i lokalnie składowane dane aplikacji i wszystko będzie działało super.
Chrom OS może zacząć też erę nowych komputerów.
Procesor powiedzmy 1 GHz, bez wiatraka, 1 GB RAM, do tego malutki dysk flash powiedzmy 8 GB i mamy maszynę na której możemy robić co nam się żywnie podoba. Ceny mogą tu naprawdę spaść.
W odróżnieniu do wielu osób nie uważam za to tego, że Chrome OS musi być ciągle on-line za wadę.
Nie licząc komórki, dzięki której jestem non-stop on-line, to prawie zawsze i tak jestem on-line na którymś z komputerów.
Ktoś może powiedzieć "OK, to Ty, ale zwykli ludzie nie mają Blueconnecta, a często nie mają też sieci w domu bo to drogie".
Tak, jest drogie, ale popatrzcie na to tak :-)
W 2002 roku płaciłem po chyba 70 złotych za 30 godzin miesięcznie połączenia z internetem z prędkością około 40 kbps.
W 2003 TPSA zaproponowała Neostradę 512 kbps za 160 złotych, a później chyba za 120 czy 100 złotych.
W 2005 roku Era sprzedawała Blueconnecta z prędkością 240 kbps lub 384 kbps za około 140-150 złotych.
W 2006 lokalni providerzy za 60-80 złotych dawali dostęp do sieci z prędkością 1-2 Mbps.
W 2007 Era w ramach Blueconnecta za 100 złotych dała prędkość 3.6 MBps, a później 7.2 MBps.
I tak dalej i tak dalej, w ciągu 5 lat transfer z którego korzystałem wzrósł o blisko 200 razy.Jeszcze inny przykład, przed 2004 rokiem każdy kto korzystał głównie z webowych aplikacji pocztowych uchodził wśród "śmietanki" za lamera.
W 2004 pojawił się GMAIL i z biegiem czasu większość tej "śmietanki" przesiadła się na webowego klienta e-mail.
W 2000 roku robiąc stronę WWW trzeba było myśleć o użytkownikach przeglądarek tekstowych i takich, którzy będą mieli wyłączone obrazki by przyśpieszyć transfer. Sam by przyśpieszyć działanie BuffyPedii zakodowałem jej cały mechanizm w JavaScript'cie, a i tak się przejmowałem, że przy pierwszym kontakcie klient będzie musiał pobrać ponad 27 KB JavaScript'u............
Dziś wiele stron w stylu blogów [czyli prostych stron] na dzień dobry ściąga 0.5 MB danych i nikt nie narzeka ;-)
A wracając do Chrome OS, to ciekawe czy Google będzie wspierać Java'ę. Chociaż w postaci apletów. Jako fan Java'y jestem za :-)


Podobne postybeta
Elektryczna książka 2 - a może by tablecik? ;-)
Celeron M353 900MHz vs. Intel Atom 1.6GHz, czyli o tym czemu jest remis? ;-)
Przepis na szybkie programy ;-)
Java, JavaScript, Python, C++, C#? co ma przyszłość?
"Powszechnie znane" prawdy o wydajności to często bujdy na resorach

czwartek, listopada 19, 2009

42 do 58 na porażkę Chrome OS

[update: 19/11/2009 17:48 - teraz wyniki za Google, Bingiem i AltaVistą są już inne ;-) 6 do 4 na sukces Chrome OS :-) A o 19:00 mają być dostępne materiały informacyjne ;-)]

W ramach czytania The Wisdom of Crowds dziś zabawa w przewidywanie tego czy Chrome OS okaże się sukcesem czy porażką ;-)

Kwestią otwartą pozostaje to co oznacza sukces, a co porażka ;-)

Zadałem Google i Bingowi pytania "chrome os" success oraz "chrome os" fail.
Policzyłem stosunek odpowiedzi dla każdego z zapytań i wyciągnąłem z nich średnią.

I wynik jest 42 dla sukcesu do 58 dla porażki.

Czyli źle nie jest :-) bo jak na produkt, którego jeszcze nikt na oczy nie widział dość dużo osób prognozuje sukces.

Ciekawa sprawa, że IEM (Iowa Electronic Markets) nie przyjmuje zakładów na to czy Chrome okaże się sukcesem czy porażką. Ich wynik mógłby być ciekawy.
Z drugiej strony, podobno Google jako jedna z niewielu firm na świecie używa właśnie takiego sposobu predykcji przyszłości i może on robili takie badanie i ONI JUŻ WIEDZĄ ;-)

[zdaję sobie sprawę z tego, że "metodologia" tego "badania" jest o kant dupy rozstrzał ;-) ale jest późno, a ja chciałem coś napisać ;-)]

Jak zwykle zapraszam do ankietyki [tutaj bezpośredni link dla tych, którzy nie widzą poniższej ankiety] ;-)




Podobne postybeta
Jak się profesjonalnie kłamie
Jeszcze o Chrome OS... a mądrość ludu po premierze sugeruje porażkę Chrome...
"We skrócie"
Zaszumienie....
Informacja źródłowa

wtorek, listopada 17, 2009

OOo2GD w Ubuntu 9.10 - da się.

Co jakiś czas dostaję informacje, że OOo2GD komuś nie działa z Ubuntu 9.10.U mnie działa, na co dowód poniżej [OOo2GD w OpenOffice.org 3.1 na Ubuntu 9.10 rc 4 w VMPlayer w Windows 7]:Wszystko co zrobiłem żeby móc korzystać z OOo2GD to wydanie komendy z linii poleceń:
apt-get install openoffice.org
Która pobrała i zainstalowała mi OpenOffice.org oraz Java'ę [choć wcześniej miałem pobrane już OpenJDK]Następnie wszedłem na stronę http://extensions.services.openoffice.org/project/ooo2gd, pobrałem OOo2GD w wersji 1.9.0 i w końcu zainstalowałem je przy pomocy Extension Managera w OO.org.Jak widać działa, więc jak coś u Was nie działa, to ewidentnie coś macie nieteges w swojej konfiguracji, sorry.


Podobne postybeta
LibreOffice - takie sobie
Udawanie Raspberry Pi ;-)
Java i Chrome OS....
Sezon na Chrome
GCJ mnie przerosło ;-)

Giń konstruktorze! Giń! ;-)

Kartkuję sobie Effective Java i już pierwsza rada mi się spodobała :-) jest to rada "Rozważ użycie statycznej metody fabrykującej zamiast konstruktora".

To zdecydowanie ułatwia późniejszy refactoring, oraz poprawia naszą zdolność do samodzielnego zarządzania obiektami.

Jeżeli np. stworzenie obiektu jest kosztowne, a można go używać wielokrotnie to dzięki zastąpieniu konstruktora metodą fabrykującą będziemy w stanie utrzymywać np. pulę z obiektami i serwować je o wiele szybciej.
Także gdy nam obije i zapragniemy używać Singletona, albo np. jednej kopi obiektu na wątek [czasem się przydaje] to skorzystanie z metody fabrykującej zamiast konstruktora na pewno pomoże.

Innym aspektem jest łatwiejsza - czytaj wymagająca mniejszej ilości kodu - parametryzacja typu przy pomocy generyków [się rymło ;-)]

Np. teraz by stworzyć List<String> z ArrayList musimy zrobić to tak:
List<String> list = new ArrayList<String>();

Ale gdyby w klasie ArrayList zamiast konstruktora bezparametrowego była metoda:
 public static <E> List<E> createList() {
return new ArrayList<E>();
}

Wtedy moglibyśmy kod taki:

List<String> strings = new ArrayList<String>();
List<Integer> integers = new ArrayList<Integer>();

zastąpić takim:

List<String> strings = ArrayList.createList();
List<Integer> integers = ArrayList.createList();

A ten drugi jest zdecydowanie ładniejszy ;-)

Ogólnie takie podejście ułatwia późniejszą pracę z kodem, bo gdy zmienia nam się koncepcja to dzięki takiemu podejściu mamy większą kontrolę nad tym co się dzieje.
Możemy nawet zacząć serwować obiekty innego typu niż nasz jeśli akurat taki mamy kaprsy ;-) [byle ten nowo serwowany typ obiektów był zgodny z starym typem ;-)].

OK, są dwie wady takiego rozwiązania. Wada pierwsza to niemożność dziedziczenia po takiej klasie [da się to obejść, ale przy dzisiejszym przekonaniu, że dziedziczenie jest złe i kłopotliwe może i nie warto ;-)]
Druga wada jest bardziej subtelna i wynika z faktu, że nie ma sposobu na odróżnienie takiego metody fabrykującej od innych metod statycznych, ale to można załatwić nazwą.


Podobne postybeta
Trick w Java'ie ;-) czyli double brace initialization
Konstruktory
Ile to jest 1+1 w Java'ie?
Lenistwo w działaniu, "piklujemy" Androida ;-)
Java na Raspberry Pi zaskakuje ;-)

poniedziałek, listopada 16, 2009

Metoda na idiotę, czyli sposób pokonywania autostrady we mgle

Dziś wyjawię wam wielki sekret, sekret mówiący o tym jak w nocy we mgle tak gęstej, że trudno powiedzieć jaka jest widoczność, jechać po autostradzie 130 km/h z dużym prawdopodobieństwem sukcesu [jak się zastanowić, to chodzi raczej o niskie, najlepiej zaniedbywalnie niskie, prawdopodobieństwo wjechania w jakieś inne auto].

Potrzebny jest idiota..... jak się zastanowić to dwóch, ale o tym czemu dwóch to będzie dalej.

Zatem potrzebujemy idioty. Dla opisania operacji nazwijmy naszego idiotę jeleniem.

Jeleń potrzebny jest nam do tego by dostarczał nam informacji o stanie drogi przed nami.
Mgła, a już szczególnie w nocy ma tą przypadłość, że trudno powiedzieć jak daleko widać. Przez to nie wiadomo czy za ułamek sekundy nie pojawi się przed nami jakieś auto, np. uszkodzony samochód z wyłączonymi światłami, albo taki z bardzo słabymi światłami. A problem polega na tym, że jadąc 130 km/h pokonujesz ponad 36 metrów na sekundę, a żeby zahamować potrzebujesz przy zablokowaniu kół coś koło 50 metrów, przy czasie reakcji równym 0.5 sekundy w najlepszym przypadku jesteś w stanie zareagować przy widoczności pozwalającej zobaczyć przeszkodę oddaloną od Ciebie o 70 metrów...... przy założeniu że jesteś mistrzem w reakcji.
I tutaj potrzebujemy jelenia, który będzie dostarczał nam informacji o drodze przed nami.
Musimy poczekać aż ktoś nas wyprzedzi jadąc z prędkością 130 km/h lub podobną - czyli jak już była mowa wcześniej, potrzebujemy idioty.
Pozwalamy mu oddalić się na tyle by widzieć jeszcze jego tylne światła.
To ważne! [tutaj mała uwaga, niech to będzie chociaż z 200 metrów odstępu, i tak mało ale w razie czego masz jeszcze krztynę szansy by hamować i uciec przy zmniejszonej prędkości na drugi pas, na pas zieleni lub na awaryjny]
Bo puki je widzimy póty możemy z dość dużym prawdopodobieństwem zakładać, że droga między nami a tymi światłami jest pusta.
Tada! ;-)

To jeleń bierze na siebie problem wypatrywania przeszkód, my zaś wnioskujemy z widoczności jego świateł, że między nami, a nim niczego nie ma.

Aha, na początku napisałem, że tak naprawdę trzeba dwóch idiotów.

Ten drugi to Ty, jeśli tak jedziesz ;-)

[zapewne technika ta pozwala także jeździć szybciej, ale Przemek jest przezorny i ma autko, które jest w stanie w miarę wygodnie rozpędzić się do 130 km/h, a przy wyższych już nie jest takie wygodne, gdyby miał szybciejsze to musiałby trenować swoją wolę by trzymać się przepisowych 130 km/h... a czemu 130? Bo czytał kiedyś jak są wytyczane Polskie drogi i problem polega na tym, że mamy kilka miejsc które określają jakie powinny być parametry drogi, ale są one wzajemnie sprzeczne, a z tego co czytał, to droga dopuszczona do prędkości 130 km/h powinna pozwalać na bezpieczną jazdę do chyba 180 km/h, ale u nas czasem zdarza się nadać drodze prędkość maksymalna taką jaka jest maksymalną bezpieczną prędkością....... OK, w przypadku autostrad jest chyba ciut lepiej, w przypadku zwykłych dróg za to gdzie jest te 90 km/h najlepiej jest podobno tam gdzie drogi wytyczali jeszcze Niemcy... tak btw. jak dobrze pójdzie za rok jeżdżąc do domu Przemek będzie mógł jechać prawie cały czas autostradami :D zacznie w Krakowie, a będzie zjeżdżał z autostrady w Świerklanach, albo Gorzyczkach [? bo nie wiem jak się będzie nazywał ten zjazd :-)]

Kids Do Not Try This at Home!


Podobne postybeta
Przemyślenia autostradowe
Myślenie = Szybka jazda
"Demon" prędkości
Tramwaj uczy i wychowuje ;-)
Mały paskowy bezpiecznik i jego moc, część druga - Powrót bestii...

niedziela, listopada 15, 2009

"Powszechnie znane" prawdy o wydajności to często bujdy na resorach

Trochę mnie przeraża posługiwanie się "powszechnie znanymi" prawdami gdy mowa o wydajności.

"Java jest wolna", tak w każdym bądź razie twierdzi wielu. Jak pokazały między innymi moje testy, Java jest szybka. Momentami ociera się o wydajność porównywalną z C i C++, a zwykle jej wydajność jest tego samego rzędu co w przypadku tych dwóch języków.

"Chrome jest najszybszą przeglądarką", to tez tak "powszechnie znana" prawda.
Ale ja sam na swoich komputerach mam tak, że wszędzie bardziej responsywny, a więc dla mnie i szybszy jest Firefox. JavaScript Firefoksa w pewnych zadaniach też jest szybszy od tego z Chrome.
Prawdę mówiąc pierwszym komputerem na którym mogę używać Chrome bez obawy, że dostanę cholery czekając na pokazanie strony [po przełączeniu się z innej strony] jest mój nowy laptop, ale on ma 4GB RAM! tutaj nawet IE MUSI być szybki ;-)

"Linux jest szybszy od Windowsa". To też nie do końca prawda, szczególnie gdy chodzi o przełączanie wątków, które w Linuksie jest wolniejsze. Stąd np. wydajność klientów Seti@Home czy teraz Boing'a jest zwykle niższa na Linuksie niż pod Windows na tym samym sprzęcie.

"Szybkość komputera zależy głównie od szybkości procesora".
Też nieprawda. Największy wzrost wydajność zawsze zauważałem po zwiększeniu pojemności RAMu. Bo bądźmy szczerzy pod takim Windows, jeśli nie masz odpowiednio dużo RAM [teraz 4 GB to rozsądne minimum] to procesor Twojego komputera i tak będzie marnował miliardy taktów tylko na to by czekać aż mechanizm stronicowania przerzuci do RAM z dysku potrzebny kawałek pamięci.
Inna sprawa, że nawet sama szybkość procesora, mierzona w ilości rzeczy, które jest w stanie zrobić w jednostce czasu nie zależy wcale tak bardzo od taktowania, a bardziej od jego architektury, o czym już tu kiedyś pisałem porównując procesory Intel Celeron 900 MHz z Intel Atom 1.6 GHz.

Teraz zaś przyszła nowa "powszechnie znana" prawda, która mówi "Go jest szybkie". Nie, na razie jest tylko porównywalne do C/C++ i Java'y. Ma za sobą potencjał więc jest szansa, że będzie szybkie.
Ale trzeba przyznać, że kompilator Go JEST szybki i to bardzo :-)


Podobne postybeta
Celeron M353 900MHz vs. Intel Atom 1.6GHz, czyli o tym czemu jest remis? ;-)
Freakonomia, czy jak kto woli Freakonomics
Atom
C# i Java okazały się szybsza od Pythona :-) [było Java okazała się szybsza od C# i Pythona]
Nie podoba mi się idea "wszystko jest aplikacją webową"

Buffy dobra, brak chęci do działania zły ;-)

Oglądanie Buffy ma swoje minusy. Znów mnie korci żeby coś robić z BuffyPedią, ale problem polega na tym, że trudno tu wybrać dobrą strategię.
No i nie wiem czy warto. Przecież nie będę się męczył dla 30 osób, a znów w Polsce jest zbyt mało fanów żeby to jakoś popchnąć do przodu.
Ale i tak nowa wersja programu do generowania się już pisze ;-) choć to wszystko zależy do wielu czynników.
To już nie te czasy kiedy człowiekowi się chciało pisać, teraz wydaje się to być nudne.
[I tu leży prawdziwy problem ;-) się mi nie chce, to ma coś wspólnego z syndromem Maksa z Seksmisji, o którym już tu pisałem]

Inna rzecz, że zacząłem myśleć czy by jednak nie kupić sobie 8 sezonu, który wydawany jest w formie komiksów ;-)
Jajx, to już 6 lat od momentu gdy BtVS się skończyło.

Po głowie chodzi mi też xBox żeby móc zgrać w grę o Buffy ;-)

Fanowanie męczy ;-)

Jestem w połowie sezonu 7 i zbliżam się do końca, w planach na później mam obejrzenie znów 4 sezonu i może powtórkę od 5 lub od 1.


Podobne postybeta
Brakuje mi BuffyPedii....
Google Goggles w działaniu :-)
PRISMochoza....
Zgryz laptopowy ;-)
"Zostaw, zostaw. Tamtego świata się nie da uratować." - czyli syndrom Maksa

piątek, listopada 13, 2009

Go wolniejsze od C i JavaScript, i ciut szybsze niż Java ;-) [a jednak od Java'y też wolniejsze]

[update: 17/11/2009 0:08 - pozmieniałem trochę treść wpisu żeby oddawał rzeczywiste wyniki :-)
update: 14/11/2009 1:06 - Oszukałem się ;-) Go wcale takie szybkie nie jest, jeśli zwrócicie uwagę na program w Go i te w innych językach to zauważycie istotną różnicę, wszystkie języki poza Go używały odpowiednika math.pow() czyli potęgowania, w Go użyłem przez pomyłkę math.exp(), różnica jest znacząca, bo po użyciu math.Pow() prędkość spadła do 8.521 ms na 1 iterację.
W Java'ie program używający math.exp() zamiast math.pow() potrzebuje na wykonanie 1 iteracji tylko 1.37 ms, a JavaScript w Firefoksie tylko 0.74 ms, C++ 32 bitowy zaś 0.5 ms.
Go więc szybkie nie jest, w podanym przykładzie program w Go jest wolniejszy od Java'y]

Google wypuściło swój nowy język o nazwie Go.
Nie ma go dla Windowsa, jest na razie tylko dla Linuksa i MacOSa.
Sam język mi się nie podoba. Szczególnie bałagan z brakiem konwersji typów.
Język jest przemądrzały i wie lepiej od Ciebie czego chcesz, czyli gdy użyjesz:


f:=10.0;
To zgadnie, że na pewno chcesz użyć typu float, ale gdy spróbujesz tego f użyć w miejscu gdzie Go oczekuje float64 to dostaniesz info o błędzie i tyle.
Żeby drania przechytrzyć trzeba użyć:


var f float64=10.0;
co już takie czytelne nie jest.
Ale rzeczywiście Go wydaje się szybkie.
Znów napisałem w nim całkowanie numeryczne ;-), którego kod poniżej:

package main

import "fmt"
import "math"
import "time"

func calc() float {
var sum float=0.0;
var start=0.0;
var stop=10000.0;
var d float=20.0/stop;
for i:=start; i<stop; i++ {
var x float=d*i-10.0;
sum=float(sum+float(math.Exp(float64(-x*x)))*(20.0/stop));
}
return sum;
}

func test() {
start:=time.Nanoseconds();
for i:=0; i<1000; i++ {
calc();
}
stop:=time.Nanoseconds();
var time = float64(stop-start)/1000/1000;
fmt.Printf("%f\n",float64((time)/1000));
}

func main() {
test();
test();
test();
test();
test();
test();
test();
test();
}
Wszystko uruchamiałem na Ubuntu 9.10 w VMware Player 3.0. I zaskoczenie, wynik jest całkiem niezły bo wynosi 3.183 milisekundy na 1 iterację [przy wykonywaniu math.Exp(), jednak wszystkie inne języki były testowane z liczeniem potęgi czyli math.Pow(), wtedy czas wynosi 8.521 ms na 1 iterację]. [Z czasu wykonania kodu dla JavaScript'u mogę wnosić, że różnica w prędkości wykonania między hostem Windows a systemem w VMPlayer wynosi jakieś 1.5, co dawało by jakieś 2.1-2.2 ms na 1 iterację ;-) [a w rzeczywistości 5.5-6 ms], nieźle, ale nadal wolniej od Java'y, która wykonywana w tym samym środowisku potrzebuje 2 razy mniej czasu na wykonanie tego samego zadania. Trzeba jednak pamiętać, że kompilator Go dla 32 bitów nie produkuje chyba najszybszego kodu, bo główny development odbywa się w wersji 64 bitowej. Trzeba też przyznać, że sam kompilator jest NAPRAWDĘ szybki :-)
Jako jednemu z niewielu produktów Google nie życzę temu językowi na razie zbyt dużych sukcesów ;-) i na razie to nazwałbym ten język Błe.. ;-)


Podobne postybeta
Język Go dla Windows :-)
Raspberry Pi to nie jest demon prędkości ;-)
Całkujący Dart ;-)
Go dla Java'owca ;-) odcinek 1 "klasy"
Plus dla Scala, minus dla Groovy ;-)

czwartek, listopada 12, 2009

OOo2GD 1.9.0 w kierunku bezszwowości ;-)

Seamless to takie ładne słowo, oznaczające bezszwowość, a w przypadku komputerów to by wszystko odbywało się płynnie. To takie jedno słowo, które ma między innymi zawierać w sobie zasadę najmniejszego zaskoczenia.OOo2GD nie było bezszwowe, teraz zaczyna się za to zbliżać w tym kierunku ;-)W oknie konfiguracji pojawił się nowy checkbox, który pozwala na to by OOo2GD próbowało nadpisywać pobierane dokumenty. Teraz gdy pobierzesz kilka razy dokument o nazwie test.odt to pojawią Ci się pliki test.odt, test(1).odt, test(2).odt, test(3).odt i tak dalej. Od teraz zaznaczając "ptaszka" będzie można tego uniknąć.Ta zmiana wraz z kolejną powinno ułatwić updatowanie dokumentów w Google Docs.Od teraz OOo2GD będzie starał się sprawdzić czy wśród dokumentów w Google Docs nie ma takiego, którego nazwa jest podobna do nazwy aktualnego pliku, jeśli będzie to zamiast domyślnie ustawić się w trybie wysyłania nowego pliku, ustawi się w trybie updatowania tego "podejrzanie podobnego" dokumentu.Ostatnią zmianą jest to, że OOo2GD będzie próbowało wykorzystywać informacje, które już raz pobrało. Mówiąc inaczej, jeśli używasz okna importu i ściągasz listę dokumentów, po czym okno to zamykasz i otwierasz jeszcze raz to OOo2GD spróbuje wyświetlić tą wcześniej pobraną już listę dokumentów zamiast zmuszać Cię do ponownego klikania na "Pobierz listę".Zapraszam na stronę projektu oraz do pobierania.


Podobne postybeta
Wersja 2.0.0 OOo2GD już jest :-)
OOo2GD 3.0.0 - eksportowanie do Google Docs bez konwersji :-)
OOo2GD 2.1.1 gotowe :-)
User Interface... jak ja tego nie lubię...
Wysyłamy naszą e-bibliotekę do Google Play Books :-)

środa, listopada 11, 2009

BLIP API rozrabia, czyli czemu Blipuś był zszedł ;-)

To, że Blipuś [czyli mój wprawkowy klient Blipa dla Androida] umarł jakiś czas temu nie jest chyba tajemnicą ;-) sam straciłem zainteresowanie Blipem, a przez to też developmentem nowszych wersji Blipusia.

Ale ciekawe jest to, że z niewyjaśnionych przyczyn w ogóle nie jestem w stanie przy pomocy BLIP API wysłać żadnego komunikatu :-)

Nic, zero, null.

Próbuję wysłać taki message:
----------------AaB03x
Content-Disposition: form-data; name="update[body]"
Content-Type: text/plain

>przemelek:To jest test

----------------AaB03x--


i nic, serwer odpowiada mi błędem 500.
A kiedyś działało ;-) Wg. dokumentacji nadal powinno działać.

Jak ktoś ciekawy to może sobie przejrzeć kawałek kodu, który tworzy tego message'a, błąd 500 wylatuje w momencie próby otwarcia "kanału zwrotnego" w linii 225.


Podobne postybeta
Blipuś v0.3 czyli Blip na Androidzie :-)
Naprawdę uwielbiam...
Blipuś znów działa :-)
Java 7 :-) Demon prędkości ;-) 25% przyrost prędkości wykonania pętli....
Linko skrótacze

"Zostaw, zostaw. Tamtego świata się nie da uratować." - czyli syndrom Maksa

Cierpię już od dłuższego czasu na syndrom Maksa z Seksmisji ;-)W pewnym momencie, gdy Albert snuje plany by z pomocą Lamii i Emmy doprowadzić do re-introdukcji ;-) mężczyzn Maks studzi jego zapały słowami:"Zostaw, zostaw. Tamtego świata się nie da uratować."I sam tak już od jakiegoś czasu miewam. Co prawa w innych sprawach, ale jednak ;-)Np. ktoś się rozwodzi nad wyższością świąt Wielkiej Nocy nad świętami Bożego Narodzenia, czyli np. przekonuje, że Linux jest gorszy od Windowsa, albo Windows gorszy od Linuksa.Człowiek chciałby się odezwać, powiedzieć coś, ale po chwili zastanowienia milczy, bo nie warto, bo tego kogoś i tak się już nie uda uratować ;-)Przez wiele lat myślałem, że wszystkie problemy uda się załatwić dzięki rozmowie, że można porozmawiać, wymienić swoje poglądy i w najgorszym przypadku dojdzie się do protokołu niezgodności.Ale z czasem dotarło do mnie, że się myliłem. Są ludzie, może nawet stanowią większość, z którymi nie da się rozmawiać. Nie trafiają do nich żadne argumenty.Sam taki bywam ;-)


Podobne postybeta
Walentynki
Buffy dobra, brak chęci do działania zły ;-)
Wernyhora mode ;-)
Nexus 7 sprzedaje się jak świeże bułeczki :-)
Przeżycie artystyczne ;-)

Nie Polak

Właśnie z ust najjaśniej nam panującego Lecha Aleksandra Kaczyńskiego spłynęły słowa które dla mnie zabrzmiały jako sugestia bym opuścił Polskę.
Chodzi o słowa:
"Nikt nie będzie w Polsce przyjmował do wiadomości, że w szkołach nie wolno wieszać krzyży, nie ma na co liczyć. Być może gdzie indziej tak, ale w Polsce nie"

Rozumiem, mam wypierdalać z Polski, bo swoją obecnością kalam świętą ziemię.

Takiego wała! Nie będzie tak łatwo. Ktoś tu poziom musi trzymać, widać wypadło między innymi na mnie. Zostaję.


Podobne postybeta
Mentalność czy dobór materiałów?
Ostrzeżenie
Wesołek ;-)
Znów o rozwiązywaniu krzyżówki
Mistrzowie political fiction

wtorek, listopada 10, 2009

Przeszacowany Linux, Niedoszacowany Windows i Ukryty MacOS ;-) czyli o tym na jakich systemach używa się głównie OOo2GD

No i proszę, jak na razie zbiorowa ocena 11 osób, które postanowiły wypowiedzieć się w sprawie tego jak wygląda udział systemów operacyjnych wśród użytkowników OpenOffice.org2GoogleDocs dość znacznie odbiega od wyników uzyskanych przeze mnie w trakcie "odpytywania" przez OpenOffice.org o nową wersję OOo2GD ;-)Największa różnica występuje w przypadku Linuksa."Sędziowie" znacząco przeszacowują jego udział w "rynku".W przypadku Mac OS wynik uzyskany ze zbiorowej mądrości jest niemal identyczny z rzeczywistym.Udział Windows jest za to niedoszacowany przez uczestników zabawy.Co równie ciekawe, rzeczywista kolejność udziałów wśród systemów operacyjnych jest inna niż ta, która wynika z szacunków 11 osób.Najpierw o metodologi ;-)Wyniki dla "zbiorowej mądrości" powstały przez wyciągnięcie średnich z wszystkich głosów, tych głosów było 11.Pomiar "z natury" przeprowadzony został zaś w oparciu o nagłówek userAgent przekazywany przez instancje OpenOffice.org odpytujące o to czy dostępna jest nowa wersja rozszerzenia OOo2GD [w tym celu sprawdzają zasób pod URLem http://www.przemelek.pl/gdocs.update.xml].Tutaj przykłady typowego wyglądu tego nagłówka:OpenOffice.org 3.1 (310m11(Build:9399); MacOSX; x86; BundledLanguages=sv),gzip(gfe),gzip(gfe)OpenOffice.org 3.1 (310m11(Build:9399); Windows; x86; BundledLanguages=es),gzip(gfe),gzip(gfe)Jego typowa budowa to:Wersja OO.org (oznaczenie buildu(numer buildu); System Operacyjny; architektura procesora; język)W około 0.3% przypadków zdarzały się inne nagłówki, głównie przeglądarek internetowych i parę botów, oraz 1 instalacja z MacOS X, która wysyłała w miejscu architektury dziwne ciągi.W mierzonym okresie [około 23 godzin] było łącznie 6736 odpytań [jeżeli w ciągu 2 minut ten sam adres IP pytał kilka razy to liczony był tylko raz], z czego tylko 22 nie zostały zidentyfikowane jako instancje OO.org.Po przydługim opisie "metodologii" badania przedstawmy wyniki ;-)Wyniki mądrości ludu są następujące:Windows 64.14%Linux 24.85%MacOS 9.1%Wyniki "z natury" są ciut inne ;-)Windows 88.87%Linux 1.44%MacOS 9.37%Jak widać jedynie ocena udziału MacOS była bliska rzeczywistego wyniku, w przypadku Linuksa jego udział w rynku został przeszacowany o ponad 17 razy!Wg. uczestników zabawy Linux znajduje się na 24.85% komputerów, czyli na blisko 1/4, a w rzeczywistości znajduje się tylko na mniej niż 1.5% maszyn.Z drugiej zaś strony udział Windowsa został dość mocno niedoszacowany.W tym świetle szacunki mówiące o tym, że Linuks znajduje się na mniej niż 1% maszyn biurkowych na świecie wydają się uzasadnione.Ta metoda pomiaru prawdopodobnie zawyża udziały Linuksa i MacOSa kosztem Windows, dzieje się tak ponieważ dla Windows o wiele bardziej popularnym pakietem biurowym jest chyba jednak MS Office, zaś w przypadku Linuksa i MacOS [w tym przypadku mogę się mylić] OpenOffice.org lub jego pochodne są najbardziej popularnym wyborem.Te wyniki utwierdzają mnie w przekonaniu, że Linux umiera :-(


Podobne postybeta
OOo2GD w liczbach ;-)
Trochę liczb :-)
Tak o niczym ;-)
Nadmiar wyboru, to jest problem dla Androida ;-)
Niehackerski dzień ;-)

poniedziałek, listopada 09, 2009

32 bity vs. 64 bity, tym razem C++ ;-)

Taka 32/64 bitowa ciekawostka ;-) całkowanie numeryczne w 64 bitowej Java'ie było szybsze niż w 32 bitowej, ale już dla kodu natywnego wyprodukowanego przez kompilator C++ wyniki są odwrotne.

W ramach walki z Nowym Gadaczem, a dokładniej zabawą z tym by mógł równie dobrze pracować w 32 bitowej Java'ie jak i 64 bitowej [ręki nie dam, ale na 99% jedyny raz gdy był uruchomiony w 64 bitach to było wtedy gdy sam sprawdzałem ;-)], a nie może z racji tego, że wykorzystuje do komunikacji po DDE natywny kod w JNI skompilowany dla 32 bitów, próbuję zrobić jego wersję 64 bitową. W tym celu używam Visual C++ 2008 Express Edition [wersja 32 bitowa powstała w Dev-C++], które przy pomocy pewnej sztuczki używa 64 bitowego kompilatora z Windows 7 SDK.
I właśnie ten 64 bitowy kompilator postanowiłem wykorzystać dla testów.

Jest to o tyle uzasadnione, że mamy tu do czynienia z "tym samym" kompilatorem, który produkuje raz kod 32 bitowy, a drugim razem 64 bitowy.
Więc różnice w prędkości wykonania "powinny" zależeć tylko od bitowości ;-)
No i wyniki są takie [przypomnę, że wynikiem jest czas w którym wykonano 1 całkowanie w 10 tysiącach kroków w przedziale <-10,10) z funkcji f(x)=e-x2 [do znudzenia to tu piszę ;-)]]:

32 bit 0,985 ms
64 bit 1,387 ms

Czyli kod 32 bitowy jest o prawie 30% szybszy!
Oczywiście w tym akurat zastosowaniu, bo już możliwe że w innych będzie dokładnie na odwrót. Nie wolno zapomnieć też, o tym że sam kompilator może mieć w sobie pewne założenia, które przyśpieszały kod na 32 bitach, a na 64 bitach tego nie powodują.
Najsprawiedliwiej byłoby porównać wyniki uzyskane w kodzie assemblerowym, ale ze wstydem przyznaje, że próbowałem coś przed chwilą w assemblerze napisać i już nic nie pamiętam z tego jak się pracuje z koprocesorem :-)


Podobne postybeta
Java 32 bit vs. Java 64 bit
Język Go dla Windows :-)
A JavaScript i tak szybszy ;-)
"CPUInfo" w Java :-)
Sarkania na C++