poniedziałek, lipiec 13, 2009

Chyba w końcu przejdę na ciemną stronę - otworzę sobie linię kredytową ;-)

Kolejny krok ku dorosłości ;-)

Karta kredytowa......

Co prawda swojego pierwszego AmExa dostałem jakieś 4.5 roku temu, ale miał to do siebie, że był [a dokładniej były bo to 2 karty były] korporacyjny.
Teraz zresztą też takowego mam, choć stoi za nim już inna korporacja ;-)

Długo się zastanawiałem i już chyba podjąłem decyzję. Wejdę w to.

Główne wabiki to Android Market i Amazon.com.
Android Market bo gdybym chciał wrzucić jakąś swoją aplikację to muszę w tym celu założyć konto, a to wiąże się z drobną opłatą do której karta jest niezbędna,
Amazon.com z wielu powodów, niestety wiele fajnych książek nie zostało w Polsce wydanych lub wydano je całe wieki temu. Taki np. The Last Theorem Arthur'a C. Clarke'a kusi ;-) Do tego w Amazon.com mają płyty DVD, a na nich 7 sezonów Buffy... Są tam też książki takie jak The Wisdom of Crowds, albo The Blind Watchmaker której polska wersja była wydane jakieś 10 lat temu i nie można jej nigdzie kupić.

Tak oto przejdę na ciemną stronę mocy... a wszystkiemu winne książki i programowanie.

Jeden plus, że dzięki temu powinienem pomóc w rozruszaniu gospodarki, a na dodatek nabiorę wiarygodności kredytowej ;-)

sobota, lipiec 11, 2009

A może niepotrzebnie aż tyle śpimy?

Dziś jak zwykle zdarzyło mi się obudzić o wiele za wcześnie i czułem się wtedy świetnie, wyspany i gotowy do działania, ale że była to 6:55 czyli 2 godziny przed planowanym przeze mnie terminem wstania to poszedłem spać dalej.
O 8:55 było gorzej ;-)

W ramach zaś głupiego myślenia zaczęły mi się kojarzyć fakty ;-)

Jest taki lek zwany modafinilem, którego najbardziej widocznym rezultatem jest to, że wystarczy przespać się 2 godziny by być wypoczętym jak po 8. Podobno nie zaobserwowano jak na razie żadnych poważniejszych skutków ubocznych, a te zauważone mają związek z reakcją skóry [ciekawe czy ma to coś wspólnego z faktem, że skóra lubi się z melatoninom, która związana jest właśnie ze snem] albo z interakcją z innymi lekami. Nie zauważono jednak podobno żadnych efektów ubocznych samego braku snu.

Oczywiście jestem sceptyczny bo zawsze patrząc na na takie sprawy mówię sobie, że przecież ewolucja promowała tych z naszych przodków, którzy byli najbardziej aktywni i czujni. Dlatego wszelkie środki zwiększające naszą aktywność, czujność czy koncentrację prędzej czy później upominają się o swoje.
Wydaje się więc logiczne, że śpimy ile śpimy bo to jest nam potrzebne do życia.
W końcu sen to swego rodzaju marnotrawstwo czasu. Śpiące zwierze zamiast robić to co jest jego celem, czyli rozmnażać się lub jeść [co jest przecież tylko środkiem do zdobycia energii na rozmnażanie ;-)] po prostu się wyleguje i nie robi nic pożytecznego.
Można więc domyślać się, że to coś co zajmuje nam blisko 1/3 życia jest nam niezbędnie potrzebne w takich ilościach.

Ale dziś w ramach głupiego myślenia pojawiła mi się "teoria", która tłumaczy to inaczej. Może głównym celem snu nie jest odpoczynek, czy nawet porządkowanie informacji zebranych w ciągu dnia, ale po prostu przełączenie osobnika w stand by, w którym zużywa mniej energii? Może strategia z przejściem w tryb snu jest bardziej opłacalna niż maksymalizacja czasu poszukiwania pożywienia i partnerów? Może bardziej opłacalne jest przystosowanie się do trybu dziennego lub nocnego, a zysk z ewentualnej aktywności w czasie do którego nie jest się przystosowanym jest niższy od ryzyka, że zostanie się czyjąś przekąską?
Może taka strategia jest ewolucyjnie stabilna? Jakieś przesłanki za tym przemawiające są ;-)

Cud Tuska i Kopacz, polska medycyna bardziej wydajna niż niemiecka

Oto dlaczego nie lubię tego rządu.

W Niemczech składka zdrowotna wynosi około 14%, dodatkowo idąc do lekarza Niemiec płaci za każdym razem 10 euro. 14% w kraju w którym zarobki są jakieś 3-5 razy wyższe niż w Polsce.

A u nas po tym jak prezes NFZ zaproponował podniesienie składki z 9% do 9.25% spotkało się z odpowiedzią Pani minister:
Oczekiwania ministra zdrowia w stosunku do prezesa są takie: pokazać jak największą koncentrację na racjonalnym wydawaniu pieniędzy, które są, a nie w sięganiu do kieszeni obywateli po raz kolejny

Patrzcie jacy ci Niemcy głupi i nieracjonalni. Tyle kasy wydają, a przecież nie muszą. Nasza Pani minister przecież wie co mówi!
U nas jest od 4 do 8 razy mniej pieniędzy na jednego pacjenta i wystarczy zracjonalizować wydawanie pieniędzy i będzie super.

No cud po prostu, polska medycyna najtańszą medycyną w Europie!

Pacany......

Bo albo u nas służba zdrowia jest niedofinansowana, albo w Niemczech przepłacona. Inaczej się nie da.
Różnica dochodów tu nie działa tak bardzo. Pensje lekarzy i pielęgniarek, czy opłaty za prąd i wodę stanowią tylko część kosztów opieki medycznej. Leki i sprzęt są produkowane głównie poza granicami Polski przez co i w Polsce i Niemczech kosztują podobnie. Nie jest więc tak, że u nas coś jest o 4 razy tańsze, może być 2 razy tańsze, ale nie 4.

Głowy nie dam, ale mam dziwne przeczucie, że gdy za n lat już "pozbędziemy" się tego paskudnego NFZ i resztek państwowej służby zdrowia to nagle koszty podskoczą.

Tak btw. jak to jest, że do słynnej reformy Buzka jakoś ten system funkcjonował. Ale że był "zbyt" upaństwowiony to go zreformowano i w miejsce państwowych przychodni powstały prywatne, które uwłaszczyły się na "mieniu publicznym", bo prywatne jest lepsze, lepiej zarządzane i tańsze...... No i nagle się okazało, że kasy brakuje. I jako leczenie proponuje się dalszą prywatyzację.

Lek nie działa? Powoduje pogorszenie stanu zdrowia? Widać "logiczną" konsekwencją w takiej sytuacji jest zwiększenie dawki.

wtorek, lipiec 07, 2009

Darwin czy Bach? ;-)

[...] Ojciec Oszajca, jezuita w cywilu, poucza, że "bez lekcji religii nie da się pojąć Bacha". Ale z lekcjami religii nie da się pojąć Darwina, więc może uczmy religii tylko tych, co mają słuch, bo dla reszty bilans jest średnio opłacalny.

"Tydzień z głowy", NIE 28/2009

poniedziałek, lipiec 06, 2009

Niska cena

O napisaniu paru słów o cenach w IT myślałem od dłuższego czasu, piszę teraz bo sprowokował mnie do tego wpis na blogu Pawła Wimmera.

Często słychać od użytkowników pretensje co do tego, że "Windows jest za drogi", widać zdziwienie na twarzach klientów gdy dowiadują się, że stworzenie dla nich systemu kosztować będzie np. 2 mln złotych.

Mały projekt, z 5 programistami, bez managerów i testów, czyli sami stukacze to w ciągu roku koszt od 0.5 do 1 mln złotych. Każdy z programistów będzie średnio kosztował pracodawcę z 8-12 tysięcy złotych miesięcznie i to tylko gdy mowa o kosztach płacowych i ubezpieczeniach. Do tego dochodzi jeszcze miejsce pracy i sprzęt.

A sami programiści to za mało by coś zrobić.

Oczywiście jeżeli ci programiści stworzą system, czy program który sprzeda się 1000 klientów to wystarczy by koszt jednostkowej licencji wynosił 500-1000 złotych i producent wyjdzie na zero.

W tym miejscu pojawiają się ludzie tacy jak ja. Czyli psuczace rynku. To, że robię OOo2GD, Gadacza czy Blipusia za darmo wynika tylko z tego, że istnieje firma, która zapewnia mi chleb, a ja w wolnym czasie mogę oddawać się perwersji ;-)
Jednak przez to psuję rynek, bo dostarczam produkty za darmo przez co wzbudzam w wielu osobach przekonanie, że oprogramowanie jest tanie.

Nie jest i wiele wskazuje na to, że nie może być tanie.

Po pierwsze do jego tworzenia potrzebni są specjaliści, którzy naprawdę znajdują się w wąsie krzywej rozkładu normalnego. Jeśli nie zarobią dobrze to pójdą sobie do innego biznesu i tam będą robić pieniądze. Pracuję wśród tych ludzi i większość z nich to ludzie, którzy są oddaleni od środka rozkładu normalnego o co najmniej 2.5 odchylenia standardowego. Muszą być piekielnie inteligentni, do tego twórczy, a mimo wszystko dokładni.

Po drugie by stworzyć program potrzeba czasu. Dużo czasu. Ten czas nie jest nawet potrzebny tak bardzo na samo pisanie, ale czasem po prostu nowe możliwości widać dopiero w momencie gdy dojdzie się do jakiegoś etapu. Zaczynasz, rozwijasz i dopiero w pewnym momencie widzisz, że można pójść pewną drogą.

Po trzecie zarządzanie. To, że w IT mamy product managerów to nie wymysł a konieczność. Ktoś musi rozumieć klienta i umieć z nim rozmawiać. Dodatkowo gdy masz paru ludzi to często potrzebujesz kogoś kto w najlepszym przypadku będzie rozwiązywał węzły wzajemnych stosunków, a w realnym świecie także kogoś kto zagna ludzi do pracy i powie im co mają robić [choć tu IT miewa odstępstwa od reguł bo czasem projekty się same zarządzają].

Po czwarte testy. Ludzie robią błędy. A programy komputerowe w odróżnieniu do wielu innych wyrobów myśli ludzkiej są na tyle złośliwe, że się nie zawalają na skutek grawitacji. Błąd w jednym obszarze może wpływać na coś co jest daleko, w innym systemie i w ogóle nie ma związku... i często tak bywa ;-)
Ludzie, czas i sprzęt kosztują.


A teraz zabawne. Jak to jest, że większość ludzi kupujących przygłupie tapetki czy filmiki na telefony komorkowe ma w domu pirackiego Windowsa? Jak to jest, że nie szkoda im pieniędzy na marnej jakości pornografię w komórce [zawsze zachodziłem w głowę po co komu porno na komórce], a mają pretensje do Microsoftu, że "Windows taki drogi"...

koniec bo mi się oczy kleją ;-) Widać nie napisałem zbyt porywającego tekstu, skoro sam przysypiam ;-)

niedziela, lipiec 05, 2009

Flaker

Lubię Flakera i podoba mi się bardziej od Blipa, ale ma jedną zasadniczą wadę.
W Blipie można stworzył ładną i dość kompaktową wklejkę na bloga.

We Flakerze można wklejkę co najwyżej stworzyć, bo ani ona ładna, ani kompaktowa.



API też wygląda na trochę udziwnione, ale ma plusa w postaci tego, że jest dużo prostsze niż to do Blipa :-) [Przyglądam mu się bo myślę o dodaniu obsługi Flakera do Blipusia ;-)]

Dla mnie największym plusem Flakera jest to, że bliski jest mojego ideału czyli serwisu, który gromadziłby w jednym miejscu wszystkie nasze komentarze czy reakcje na to co znaleźliśmy w Internecie. Flaker potrafi np. wrzucić do naszych "flaków" informację o tym, że wykopaliśmy jakiś wpis na Wykopie. Nie potrafi jednak jak na razie wrzucić informacji o tym, że na tymże Wykopie coś skomentowaliśmy.
Także jego feed pozostawia jeszcze wiele do życzenia, głównie przez to, że po wklejeniu np. do takiego Facebooka pojawi nam się dużo informacji w stylu "użytkownik wykopał/odwiedził/skomentował/blipnął" ale bez treści.

Ale poza tym co skrytykowałem ;-) Flaker jest niezły.
Zobaczymy jak będzie dalej ;-)

A ja zapraszam na do "moich flaków" ;-)

Tworzenie poprawnych nazw plików :-)

Java jest świetna do pisania przenośnych aplikacji, które będą działały na różnych systemach.
Co prawda Swing wcale nie gwarantuje tego, że aplikacja będzie zachowywała się zawsze tak samo ;-), głównie zresztą za przyczyną Apple, które wie lepiej i ma swoją maszynę wirtualną. Ale mimo wszystko jest dobrze......

Do czasu gdy chcesz pobrać plik z sieci i zapisać go na dysku ;-)

W OOo2GD do stworzenia nazwy pliku używam tytułu dokumentu, a w tym tytule użytkownik może złośliwie użyć takich znaków jak :, albo *, albo i / czy \. Ogólnie zgroza ;-)

Dlatego w ramach nanoszenia poprawki na OOo2GD postanowiłem zabezpieczyć je przed problemami z dziwnymi nazwami plików.

Przy pierwszym podejściu wyrzucam z nazwy plików znaki / oraz separator elementów ścieżki do pliku [w Uniksach / w Windows \]... dalej jest już ciekawiej ;-)

public static String findAvailableFileName(String destFileURI) {
String destFileName = destFileURI.substring(0,destFileURI.lastIndexOf("."));
String destFileExt = destFileURI.substring(destFileURI.lastIndexOf(".")+1);
int count = 1;
File f;
while ((f=new File(destFileURI)).exists()) {
destFileURI=destFileName+"("+(count++)+")"+"."+destFileExt;
}
String fName = f.getName();
String fPath = f.getParent();
// Now we need to check if given file name is valid for file system, and if it isn't we need to convert it to valid form
if (!(testIfFileNameIsValid(destFileURI))) {
List forbiddenCharsPatterns = new ArrayList();
forbiddenCharsPatterns.add("[:]+"); // Mac OS, but it looks that also Windows XP
forbiddenCharsPatterns.add("[\\*\"/\\\\\\[\\]\\:\\;\\|\\=\\,]+"); // Windows
forbiddenCharsPatterns.add("[^\\w\\d\\.]+"); // last chance... only latin letters and digits
for (String pattern:forbiddenCharsPatterns) {
String nameToTest = fName;
nameToTest = nameToTest.replaceAll(pattern, "_");
destFileURI=fPath+"/"+nameToTest;
count=1;
destFileName = destFileURI.substring(0,destFileURI.lastIndexOf("."));
destFileExt = destFileURI.substring(destFileURI.lastIndexOf(".")+1);
while ((f=new File(destFileURI)).exists()) {
destFileURI=destFileName+"("+(count++)+")"+"."+destFileExt;
}
if (testIfFileNameIsValid(destFileURI)) break;
}
}
return destFileURI;
}

private static boolean testIfFileNameIsValid(String destFileURI) {
boolean valid = false;
try {
File candidate = new File(destFileURI);
String canonicalPath = candidate.getCanonicalPath();
boolean b = candidate.createNewFile();
if (b) {
candidate.delete();
}
valid = true;
} catch (IOException ioEx) { }
return valid;
}

Ładniejsze źródła tutaj.

Idea jest taka, po pierwsze próbujemy pozbyć się znaku ":", który jak się wydaje nie jest wspierany przez żaden system plików jako element nazwy pliku :-)
Później próbujemy pozbyć się znaków specyficznych dla FAT32 [jak mi się wydaje], czyli np. nawiasów kwadratowych, czy masek [* i prawdopodobnie również ?, którego w kodzie jeszcze nie ma ;-)].
Gdy to nie poskutkuje idziemy na całość i wyrzucamy wszystkie znaki, które nie są literami łacińskimi lub cyframi.

Do tego dobrze by było by nie nadpisać istniejącego już pliku, dlatego na każdym kroku należy się upewnić, że dana nazwa jest dostępna.

Samo zaś testowanie czy plik o danej nazwie może zostać stworzony to smutny przykład wykorzystania wyjątków. Najpierw próbujemy pobrać kanoniczną ścieżkę do pliku przez getCanonicalPath(), które w przypadku gdy nazwa pliku jest zła wyrzuci wyjątek, a następnie próbujemy stworzyć plik. To drugie jest zbędne, ale w ramach dmuchania na zimne lepiej je zostawić ;-)

niedziela, czerwiec 28, 2009

OOo2GD 1.7.0

Po bardzo długiej przerwie ;-) nowa wersja v1.7 OOo2GD.

Co nowego?
  • francuska wersja językowa

  • wszystko przekompilowane do Java 5

  • całkowicie nieoficjalne, częściowe wsparcie dla MacOS - oznacza to, że czasem działa, a czasem nie

Poprawki:
  • poprawiony problem z pobieraniem arkuszy z kont w Google Apps

  • poprawione nazwy plików z tłumaczeniami


Do tego wszystkiego ta wersja wspiera możliwość używania zewnętrznych tłumaczeń, wystarczy je wrzucić do katalogu domowego [w Windows będzie to C:\Documents and Settings\<user>\], jest to przygotowanie do kolejnego etapu, czyli możliwości tworzenia własnych wersji językowych on-line i ściągania ich :-)

Zapraszam do pobierania.

Blipuś v0.3 czyli Blip na Androidzie :-)

W ramach nauki programowania dla Androida [czyli systemu operacyjnego dla telefonów komórkowych od Google'a] piszę sobie od jakiegoś czasu klienta serwisu Blip.

Blipuś bo tak nazywa się mój klient pozwala oczywiście na przeglądanie obserwowanych "blipów", oraz na pisanie nowych:





Pozwala także na zarządzanie swoimi "blipami":



W tle zaś działa specjalny serwis, który co minutę sprawdza czy aby nie pojawiły się nowe "blipy":



Jest to bardzo wczesna wersja, ale ja już z niej korzystam :-)

W systemach Android z włączonym językiem polskim Blipuś jest w większości miejsc po polskiemu :-)

Zapraszam do pobierania :-) W tym celu albo należy skorzystać z tego linku, albo z kodu:

Oraz do przeglądania źródeł :-)

Nowy Gadacz v0.4

W najnowszej wersji 2 zmiany, po pierwsze Nowy Gadacz okienko z informacją o sobie będzie wyświetlał tylko przez 10 sekund, a nie do czasu aż ktoś przyciśnie OK :-)
Druga zmiana powinna zaś spowodować rozwiązanie problemu z Expressivo, polegającego na tym, że gdy Nowy Gadacz wystartował przed Expressivo to nie umiał nawiązać połączenia i nie gadał.

Zapraszam do pobierania i podzielenia się ze mną opiniami o tej wersji :-)