czwartek, grudnia 31, 2009

Dobór naturalny, albo my

Wszystko co tu napiszę jest rozwinięciem idei, którą znalazłem chyba rok temu czy jakoś tak czytając "Samolubny Gen" Dawkinsa. Idea zawiera się w stwierdzeniu, że żyjemy w niemal doskonałym przeciwieństwie środowiska naturalnego.

Zacznijmy od tego, że możemy sobie zdefiniować dla naszych potrzeb pojęcie najlepszego przystosowania, jako osiągnięcie największego sukcesu rozrodczego, czyli osiągnięcie największych szans na dochowanie się dzieci i wnuków.

Wśród zwierząt posiadanie potomstwa to przywilej, niby większość zwierząt ma potomstwo, ale w każdym pokoleniu średnio licząc tylko te najlepiej przystosowane osiągają sukces i ich młode stanowią większość kolejnego pokolenia.

Opiera się to wszystko na założeniu, że tak naprawdę najlepsze przystosowanie jest rekurencyjne ;-) czyli, że najlepiej przystosowany rodzic ma najlepiej przystosowane młode, które mają najlepiej przystosowane młode, które znów mają najlepiej przystosowane młode i tak dalej.

Z grubsza tak to działa bo jeżeli np. jakieś zwierze zacznie produkować więcej potomstwa niż jest w stanie wyżywić to większość albo i wszystkie jego młode zginą z głodu.

W ogólnym rozrachunku wygrywają te organizmy, które produkują na tyle dużo potomstwa by przegonić konkurencję, a na tyle mało że nie ginie ono z głodu.
Większości organizmów się to nie udaje, choć wszystkie jak jeden mąż są potomkami takich, którym się to udawało ;-)

To wszystko przez to, że ilość zasobów jest ograniczona, więc puki poszczególne organizmy muszą zużywać skończoną część danego zasobu to ich liczba jest ograniczona z góry i zwykle do kolejnego pokolenia przechodzą te organizmy, które potrafią lepiej dany zasób wykorzystać.

Teraz przyjrzyjmy się jak to jest u nas.
Szanse posiadania dzieci i wnuków dla każdego mieszkańca państw wysoko rozwiniętych [czyli np. Polski] jest praktycznie taka sama. U nas dzieci nie umierają z głodu gdy rodzic nie chce lub nie potrafi ich utrzymać. Jeśli rodzic jest taki niezaradny to dziecko jest utrzymywane przez państwo.
Szanse na dożycie i posiadanie potomstwa dla dziecka z "marginesu społecznego" i dla dziecka lekarza, biznesmena czy programisty jest praktycznie takie samo. Często jest też tak, że wśród lekarzy, biznesmenów czy programistów rodzice poprzestają na 1 lub 2 dzieci albo nie mają ich w ogóle [często np. dlatego, że odwlekają moment posiadania dziecka, a w wieku 35 lat trudniej zajść wielu kobietom w ciążę niż wtedy gdy miały lat 20, co zresztą jak mi się wydaje doprowadzi do tego, że za kilka pokoleń kobiety 35 letnie będą o wiele bardziej zdolne do rodzenia dzieci niż teraz, bo jest duża szansa, że ta górna granica jest w jakiś sposób dziedziczna], a w "marginesie społecznym" zdarza się ponadprzeciętnie więcej rodzin z pięciorgiem czy większą liczbą dzieci.
Dzieci "elyty" powielą także prawdopodobnie model rodziców [czyli 1 góra 2 dziec, albo i wcale], to samo zrobią dzieci rodziców z "marginesu".

Nasz dobrobyt zawdzięczamy głównie tej "elycie", bo bez lekarzy zabiłaby nas każda choroba, bez inżynierów i naukowców nie mielibyśmy za to np. czystej wody czy takiej ilości żywności. Ilość dostępnych zasobów takich jak żywność jest większa dzięki "elycie", która "produkuje" dodatkowe zasoby.

Ale teraz jest tak, więcej dzieci mają konsumenci zasobów, niż producenci, to może oznaczać wzrost konsumpcji przy spadku produkcji zasobów. W pewnym momencie możemy dojść do miejsca gdy zaczniemy zużywać to co udało się do teraz zaoszczędzić, a w końcu wyczerpiemy zasoby.

Wtedy do gry wejdzie znów dobór naturalny i będzie promował tych, którzy będą lepsi w wykorzystaniu zasobów do produkcji młodych, ale to będzie też oznaczało, że większość ludzi znajdzie się w okolicach cienkiej linii głodu, chłodu i ubóstwa.

Mówiąc inaczej, przy ograniczonych zasobach i niekontrolowanej nadprodukcji konsumentów zasobów nad tymi, którzy te zasoby "produkują" dojdzie do wyczerpania zasobów i liczebnością populacji zacznie kierować natura [czyli dobór naturalny].

Stąd mój wniosek [którego nie jestem pewny, ale wydaje mi się prawidłowy ;-)], że albo my będziemy kontrolowali ilu nas jest, albo zacznie robić to za nas dobór naturalny. Wydaje się jednak, że nasza kontrola [np. odgórne ustalenie, że każda para może mieć góra n dzieci, osiągane np. przez podawanie środków antykoncepcyjnych] byłaby lepsza bo wszyscy ludzie mieliby taką samą szansę na bycie rodzicem [nadal ze wskazaniem na ogół, a nie "elyty" bo przecież ograniczenie działałoby z góry, a nie z dołu].
Dobór naturalny doprowadziłby zaś prawdopodobnie do wymarcia ogółu i pozostawił nową "elytę".

I tu jest problem, bo chęć posiadania potomstwa jest tak głęboko wbudowana w nasze geny [czytaj najwięcej jest teraz w nas genów które pośrednio lub bezpośrednio związane były właśnie z posiadaniem potomstwa, bo każda przewaga jednego zestawu genów uzyskana dzięki jednemu z genów oznaczała, że ten gen będzie bardziej liczny w następnej generacji], tak głęboko wbudowana w naszą psychikę przez dobór naturalny, że wg. naszych zasad moralnych ograniczanie ludziom ilości posiadanych dzieci jest niehumanitarne.
Czyli dobór naturalny mógł w ciągu historii naszego gatunku wbudować nam coś co może zadziałać w taki sposób, że sami nie zaczniemy prowadzić kontroli i z czasem przekażemy ją doborowi naturalnemu z powrotem.

[Wracając do wbudowanych norm moralnych, np. pomysł by "elyta" miała prawo do większej ilości dzieci niż ogół jest w ocenie większości z nas jeszcze bardziej niehumanitarny niż ograniczenie wszystkim ilości dzieci. Od razu się to kojarzy z faszyzmem].

Kończąc :-)
Wszystko się chyba sprowadza do pytania z tytułu "Dobór naturalny czy my?" Kto ma kontrolować wielkość populacji?


Podobne postybeta
Hodowla ;-)
Rankingi, to nie takie proste ;-)
Teoria ewolucji vs hipoteza kosmicznych siewców życia vs hipoteza kreatora vs hipoteza kreatora na młodej Ziemi - mecz przy pomocy Bayesa :-)
"Skoro ludzie wyewoluowali z małp to czemu małpy nadal istnieją?"
Patriotyzm

wtorek, grudnia 29, 2009

7 sezonów Buffy na DVD

Widzę, że kilka osób trafiło na mojego bloga szukając informacji o Buffy na DVD :-)
W Polsce wydano 2 sezony [podobno 3, ale nigdy w sklepie nie widziałem poza internetem] i niestety nie zapowiada się by miano wydać więcej. Same zaś polskie wydania były bardzo ubogie, bo nie miały żadnych dodatków, a na dodatek tłumaczenie na nich było gorzej niż złe.
Jeżeli jednak nie jest Ci obcy język angielski, to jest proste rozwiązanie o którym tu już kiedyś pisałem :-) Zakup na Amazon.co.uk.
Dostępne jest tam kilka wydań wszystkich 7 sezonów Buffy the Vampire Slayer na DVD, ja polecam konkretnie Buffy The Vampire Slayer - The Complete DVD Collection, które kosztuje w chwili obecnej 59.47 funta, czyli trochę ponad 270 złotych, a z kosztami transportu to około 300-320 złotych.
Sam zakup prezentuje się w taki sposób jak poniżej :-)

Widok na pudełko z boku:



Widok na pudełko z góry:



Wszystkie okładki:



Wydanie to jest trochę nie takie jak chciał Joss Whedon czyli twórca Buffy, ponieważ sezony od 4 wzwyż są w formacie 16:9 [czyli widescreen], a nie telewizyjnym 4:3. Przez to czasem widzimy coś na bokach ekranu czego nie powinniśmy widzieć ;-) ale mimo tego o wiele lepiej ogląda się taką Buffy na telewizorze 16:9 niż taką 4:3 :-)
Na płytach znajdziemy wiele dodatków, w stylu komentarzy do ważniejszych odcinków, wywiadów z twórcami i aktorami, opisów kręcenia niektórych odcinków, omówień sezonów, opisów jak tworzono dekoracje, kilka dodatków DVD-ROM i podobne.

Sam od zamówienia na dostawę czekałem około tygodnia.


Podobne postybeta
Przybijające cosie.......
Wpisy z Bloggera jako eventy w Google Calendar, odsłona 3 - Aplikacja ;-)
Anioł Ciemności - polskie DVD :-)
W przemyśle filmowym muszą pracować idioci...
Chyba w końcu przejdę na ciemną stronę - otworzę sobie linię kredytową ;-)

poniedziałek, grudnia 28, 2009

Lokaty, liczymy podatek Belki :-)

Dziś policzymy sobie zyski z lokat ;-)
Okazuje się, że nie jest to wcale takie proste :-) Po pierwsze ważne jest oprocentowanie w skali roku, które po wymnożeniu przez kwotę, podzieleniu przez 12 i pomnożeniu przez ilość miesięcy daje nam kwotę zysku przed opodatkowaniem [naprawdę banki obliczeń dokonują nie w miesiącach, a w dniach, stąd wyniki mogą się trochę różnić], później ten zysk zaokrągla się do pełnych złotych [tak, że wszystko poniżej 50 groszy jest zaokrąglane w dół, a 50 groszy i więcej w górę], z tego liczone jest 19% podatku i znów wynik jest zaokrąglany.
Tutaj proste "narzędzie", które to liczy :-)


[jeśli nie widzisz ramki to tutaj znajdziesz samo "narzędzie"]

[przy okazji to narzędzie jest testem mojego mechanizmu wrzucania i serwowania plików do mojej aplikacji w Google App Engine :-)]
Jak ktoś będzie próbował używać tego narzędzia to np. można sprawdzić promowane teraz przez PKO BP lokaty 3+3, minimalna wpłata to 1000 złotych, jeżeli utrzymamy lokatę 3 miesiące to oprocentowanie wynosi 4.44%, jeżeli utrzymamy 6 miesięcy to 4.55% i okazuje się, że lepiej jednak utrzymać te 6 miesięcy bo i procentowo mniejszy podatek się zapłaci ;-)


Podobne postybeta
Warto dla 57 złotych?
Lubię PKO BP :-)
A ja jestem przeciwny prywatyzacji służby zdrowia.
Czemu Google Play nie sprzedaje u nas urządzeń, filmów, książek i reszty?
Piesakrew!

niedziela, grudnia 27, 2009

JNA, czyli w Java'ie też można :-)

OK, wychodzi na to, że z JNA w Java'ie też dość prosto się da używać kod natywny :-) [w C# używamy DllImport] W każdym bądź razie prościej niż z JNI.

W C mamy kod [projekt, który ma stworzyć DLLkę, ale to jest najważniejszy kod]:
DLLIMPORT void helloWorld ()
{
MessageBox (0, "Hello World from DLL!\n", "Hi", MB_ICONINFORMATION);
}


A w Java'ie:
import com.sun.jna.Library;
import com.sun.jna.Native;


public class JNATest {

interface HelloWorld extends Library {
void helloWorld();
}

public static void main(String... args) {
HelloWorld helloWorld =
(HelloWorld)Native.loadLibrary(
"Project1", HelloWorld.class
);
helloWorld.helloWorld();
}
}


Nadal jest jednak trudniej niż w C#, i to chyba dobrze bo dzięki temu zbyt często programiści piszący w Java'ie nie próbują wybierać rozwiązań natywnych.
Jak się wydaje wielu ludzi piszących w C# z lubością używa kodu natywnego i przez to .NET tracie na przenośności.

Btw. przy kodzie natywnym dobrze znać architekturę procesora. Żeby ją poznać musimy odczytać wartość właściwości systemowej "os.arch", co osiągniemy przez wywołanie System.getProperty("os.arch"). Dla x86 wartością będzie x86, dla x64 wartością będzie amd64.


Podobne postybeta
C# miewa swoje plusy ;-)
"CPUInfo" w Java :-)
"os.arch", "os.name", "sun.arch.data.model" co to jest i co pokazuje na jakiej maszynie i OSie? ;-)
Język Go dla Windows :-)
Pomysł - przypinajne TODO ;-)

C# miewa swoje plusy ;-)

Taka krótka notka ;-)
Jak nie znoszę .NET i C# to jednak w jednym jest na pewno wygodniejsze w użyciu niż Java.
Chodzi o użycie natywnego kodu.
Pisałem tu już o tym kiedyś, ale nadal tak uważam, a ostatnio się o tym znów przekonałem.

Chcąc sprawdzić jak .NET/C# zachowują się gdy kod natywny jest 32 bitowy, a wszystko działa w 64 bitowym .NETcie zrobiłem sobie prostą DLLkę, której najistotniejszy kod wyglądał tak:
DLLIMPORT void HelloWorld ()
{
MessageBox (0, "Hello World from DLL!\n", "Hi", MB_ICONINFORMATION);
}

A jego użycie w C# tak:
 [DllImport("Project1.dll")]
static extern void HelloWorld();

static void Main(string[] args) {
HelloWorld();


I to wszystko [przy okazji, 64 bitowy .NET tak jak i 64 bitowa Java nie jest w stanie użyć 32 bitowego natywnego kodu :-)].

A w Java'ie przez JNI? Toż to za skarby świata tak łatwe by być nie mogło. Po pierwsze musiałbym zawołać tą całą HelloWorld() z jakiejś metody która miałaby odpowiednie modyfikatory i nazwę, coś a'la kod z Nowego Gadacza:
JNIEXPORT void JNICALL Java_pl_przemelek_gadacz_tts_DDE_speakViaDDE
(JNIEnv *, jobject, jint, jstring);

Czyli w JNI to koszmarek.

Trzeba jednak zaznaczyć, że w JNA byłoby to chyba prostsze, ale że godzina już nie młoda to jakoś nie mam ochoty na konfigurowanie środowiska i ściąganie JARów dla JNA :-)

Inna sprawa, że kodu natywnego się powinno unikać. Nie tylko przywiązuje do wybranego systemu operacyjnego, ale nawet do danej jego platformy sprzętowej [w Windows x86 nie użyjesz kodu x64, a w x64 nie użyjesz kodu x86, w Linuksie gdzie można działać na większej ilość platform sprzętowych jest jeszcze gorzej, to samo w Solarisie i Macu].


Podobne postybeta
JNA, czyli w Java'ie też można :-)
JNI i łańcuchy ;-)
Język Go dla Windows :-)
Pomysł - przypinajne TODO ;-)
32 bity vs. 64 bity, tym razem C++ ;-)

Łatwo pisać, trudniej robić ;-)

Jest prawie 3 w nocy więc jestem w odpowiednim nastroju do filozofowania ;-)
Nikt tego nie przeczyta, a ja sobie napisze ;-)
Btw. 3 w nocy, to jest ten czas gdy już część hamulców psychicznych puszcza i człowiek jest taki bardziej otwarty i mniej się kontroluje. Pewnie koło tej godziny się będę oświadczał ;-) Gorzej jak ma wybranka będzie wtedy spała ;-) [punkt do ToDo znaleźć wybrankę ;-)]

Tak mnie tknęło dziś, z zarządzaniem mamy kłopoty.

Może wrócę do początku myśli. Jestem fanem Buffy, serialu i całej idei, silne kobiety, drobniutka blondyneczka, która walczy z siłami zła i broni świat przed zagładą i tym podobne.
I zawsze mnie zastanawiało czemu u nas nie zbliżono się nawet częściowo do tego serialu.
Rozumiem, koszty i wszystko, ale przecież przy blue-boksie czy green-boksie można dużo zaoszczędzić [co pokazano kręcąc serial Sanctuary].
Ludzi od scenariuszy mamy, OK, przynajmniej tak się wydaje, nie jestem fanem Sapkowskiego, ale przecież gościu jest dość znany na świecie więc jednak raczej dobrze pisze i dobrze wymyśla historię, a jednak serial który powstał na motywach jego książek został umiejętnie spartolony.
Ludzi od zdjęć też mamy, w końcu Idziak i Bartkowiak to nie jedyni dobrzy spece od zdjęć, którzy pochodzą z Polski. Może najlepsi, ale nie jedyni.
Muzykę też byśmy znaleźli.
Z aktorami może być gorzej, bo jednak w USA z 309 mln ludzi i produkcją dla tych 309 mln plus z 2 mld ludzi na świecie mają ostrą selekcję aktorów i aktorek przez co większość ichnich aktorów serialowych może spokojnie zakasować naszych filmowych i teatralnych. [To sprawa wielkich liczb, jeśli w USA żyje 309 mln ludzi i produkują tam filmy od lat to siłą rzeczy mają ze 10 tysięcy naprawdę dobrych aktorek i aktorów którzy łączą w sobie odpowiedni wygląd, wiek i umiejętności, u nas aktorów w całym kraju może być powiedzmy 10 tysięcy, z czego tylko górne 2% są podobnej klasy jak ci aktorzy z tych 10 tysięcy w USA] Ale mimo wszystko można by jakichś znaleźć.
Czyli mamy wszystko bez czego nie da się zrobić dobrego serialu czy filmu i mimo wszystko nie robimy takowych.

Albo popatrzcie na IT. Podobno mamy świetnych programistów w Polsce, na pewno teraz mamy jeden z lepszych jeśli nie najlepszy na świecie przelicznik jakość/cena, jesteśmy też państwem które jednak zawsze było częścią cywilizacji zachodniej, więc same plusy.
A mimo to nie jesteśmy wielkim zagłębiem software'owym.

I wracając do pierwszej myśli :-) Dziś mnie tknęło. Chodzi o zarządzanie.
Nie zrobisz dobrej telewizji czy dobrego software bez ludzi, którzy tym będą zarządzali. Bez ludzi, którzy potrafią wszystkie elementy składowe połączyć.
Bez ludzi, którzy mają wizję by coś zrobić i wyprodukować.

Taka dygresja, urodziłem się pod koniec lat 70, znam je więc tylko z opowiadań rodziców i TV, ale wydaje mi się, że w latach 70 był taki miks ludzkich nastrojów i propagandy sukcesu, który przekładał się na coś takiego "A co to my gorsi? Nie umiemy? Pewnie, że damy radę!".

I tak sobie myślę, że brakuje nam ludzi do zarządzania, którzy patrzeliby na świat w taki właśnie sposób, bez widzenia ograniczeń i w ogóle reagujących na ograniczenia zaskoczeniem [ważne by po fakcie ;-)].
Brakuje kogoś kto coś zrobi i później ze zdziwieniem powie "Hmm? To było to coś co się miało nie udać?"

A chorujemy na to "nie da się" tudzież "to bez sensu po co próbować?".
Widzę to po sobie, jeszcze w LO próbowałem system operacyjny pisać, próbowałem pisać własne Logo [to akurat tam w jakimś zakresie napisałem :-)], próbowałem pisać własny translator Basica na Assemblera i wiele innych. A teraz mam kilka projektów do których mi się zaglądać nie chce, bo po co? Mam pomysły, ale już na etapie realizacji się zastanawiam po co przecież nikt tego nie użyje ;-)

Czyli, brakuje nam zarządzania i mamy za dużo czarnowidztwa, a za mało wiary w siebie.

Z czarnowidztwem i wiarą w siebie można powalczyć, z zarządzaniem będzie gorzej ;-)

Ja mam podobno w ciągu najbliższych 2 lat zdecydować czy wolę być na ścieżce tylko technicznej, czy menadżerskiej. Może warto spróbować tego całego zarządzania? ;-)


Podobne postybeta
Najmocniejszy "żart" Prima Aprilisowy
Mamy lepiej :-)
Dobór naturalny, albo my
Losowanie dobre
Głosowanie korespondencyjne jest tak dziurawe, że aż szkoda gadać - z perspektywy IT

sobota, grudnia 26, 2009

Nieznane ścieżki Garbage Collectora :-)

Dziwną rzecz dziś widziałem.
Jedna zmiana w kodzie programu, polegająca na wyprowadzeniu pewnej kolekcji poza metodę i uczynienie jej elementem globalnym spowodowało, że mój program pewien swój fragment zamiast 14-20 sekund wykonywał o wiele dłużej [jakieś 100-140 sekund] z czego wszystek czas poza tymi 14-20 sekundami przypadał na wątek Garbage Collectora :-)
Idea była taka: ponieważ mój program do wyliczania podobnych postów 2 razy pobiera wszystkie wpisy z bloga z sieci to może jak już je raz pobierze to potrzymać je w pamięci i nie pobierać za drugim razem, wg. teorii miało to zaoszczędzić te parę-paręnaście sekund zużywane na pobranie wszystkich postów bloga z sieci.
Okazało się jednak, że spowodowało to spadek wydajności :-)

Czemu?
Bo wszystkie zmienne, łącznie z tą kolekcją zawierającą wszystkie posty trafiły w okolice limitów pamięci przydzielonych JVM, przez co JVM próbowała co chwilę odzyskiwać pamięć.... ale że nie miała z czego to każdy przebieg GC był przebiegiem pustym, który pamięci nie odzyskiwał, za to zabierał czas.

Nauczka na przyszłość jest taka, że gdy program nagle spowalnia to trzeba się przyjrzeć przy pomocy JCONSOLE czy aby nie ma właśnie takich problemów :-)


Podobne postybeta
Nieznane skarby JDK - JConsole :-)
Filmy
Moja własna akcja w Google Home ;-)
Koszmarny Garbage Collector ;-)
Koszmarne Garbage Collectory part 2 ;)

czwartek, grudnia 24, 2009

Jak biegnie A1? :-)

Wczoraj otwarli odcinek A1 z węzła Sośnica do Bełku, oczywiście jak na razie ani Google Maps, ani Zumi, ani hmm.. Microsoft Maps [?? nie wiem jak to się nazywa] nie jest w stanie zaplanować drogi po tym odcinku A1.
Ciekaw byłem gdzie w ogóle ten Bełk jest i jak cała A1 przebiega.
Stworzyłem więc mapkę :-) Oto ona, sam Bełk znajduje się tak gdzieś w 1/3 drogi od węzła Sośnica do granicy.

View A1 in a larger map
Mapka powstała przez połączenie tego co widać na Zumi [to do samego Bełku] i tego co widać na Google Maps [trochę poniżej Bełku], na końcu na podstawie lokalizacji zdjęć A1 w Google Earth :-)
Jak ktoś ciekawy to tutaj cały przebieg odcinka od Sośnicy do Bełku wykonany z rzutów z Zumi.

Dla mieszkańców Wodzisławia jazda tym nowo otwartym odcinkiem może niewiele zmienić, ale na pewno obniży poziom stresu w trakcie jazdy.


Podobne postybeta
Walka z VacLagiem - start ;-)
Autozdrada ;-)
W końcu otwarli :-)
Autostrada dowiezie mnie do domu dopiero za 2 lata.... part 2
Autostrada dowiezie mnie do domu dopiero za 2 lata :-(

Wersja 2.0.0 OOo2GD już jest :-)

Dostępna jest nowa wersja 2.0.0 OOo2GD :-)
Główną nowością jest tryb autoupdate dla Google Docs. Działa on w taki sposób, że dla każdego pobranego pliku, który pobrano z zaznaczoną opcją autoupdate każda zmiana i nagranie pliku spowoduje update tego pliku w Google Docs. Działa to tylko w danej sesji, czyli od pobrania pliku z zaznaczoną opcją autoupdate do momentu wyłączenia OO.org.
Są pewne ograniczenia, np. gdy edytujemy plik na 2 komputerach jednocześnie [czyli w tym samym momencie dwa komputery mają otwarty dany plik w trybie autoupdate] to wygrywa ten który ostatni dokona update'u, zmiany tego wcześniejszego zostaną utracone i zachowają się tylko w historii wersji w Google Docs.
Także gdy otworzymy w 1 sesji 2 razy ten sam plik to updatowanie będzie działało tylko dla tego otwartego jako pierwszy.
Ale i tak wydaje mi się, że działanie tego ficzera jest dość spójne.



Po to by nie trzeba było za każdym razem zaznaczać Autoupdate można to ustawić w oknie konfiguracji :-) zaznaczając "Default autoupdate".



Do tego 2 nowe tłumaczenia :-) Czeski i węgierskie :-)

Zapraszam do pobierania ze strony rozszerzeń dla OpenOffice.org lub strony projektu :-)


Podobne postybeta
Podejrzanie szybko....
OOo2GD 2.2.0 - autoupdate "rośnie"
OOo2GD 1.9.0 w kierunku bezszwowości ;-)
OOo2GD 2.3.0 - nowe dokumenty i autoupdate w działaniu :-)
OOo2GD 3.0.0 - eksportowanie do Google Docs bez konwersji :-)

środa, grudnia 23, 2009

Nie jest dobrze z nami....

Właśnie przeglądam dwie książki, które przyszły z Amazona, "The Oxford Book of Modern Science Writing" pod redakcją Richarda Dawkinsa i "The Portable Atheist" pod redakcją Christophera Hitchensa i jedna rzecz mnie przeraża w tych książkach. Wśród wielu, bardzo wielu tekstów i autorów nie ma ani jednego malutkiego tekstu napisanego przez Polaka. Wylecieliśmy z kanonu cywilizacyjnego i chyba nic nie robimy by tam wrócić.
Jednego z niewielu profesorów znanych na świecie nie tylko specjalistom w danej dziedzinie, ale takiego, który znany też jest wielu nie naukowcom wygnaliśmy z uczelni bo podobno gdy miał koło 20 lat to podpisał jakiś papier dla SB.

Dobrze chociaż, że jeszcze Sabkowskiego i Vadera mamy....

Ludzie! Trza coś w tym kierunku robić żeby świat znów o nas usłyszał!

Dobrego coś.




Podobne postybeta
Książki, książeczki, książunie ;-)
Patriotyzm
Jak VHDL obalił komunizm
Google Talk i herbata... eksperyment ;-)
Znów o rozwiązywaniu krzyżówki

Nagły atak spowolnienia? Czyli JavaScript zwolnił w FF3.6 beta 5, za to przyśpieszył w Opera 10.5 pre-alpha :-)

Chciałem sprawdzić jak szybki jest JavaScript w nowej Operze 10.50 pre-alpha i do tego celu użyłem mojego starego testu z całkowaniem numerycznym.
Średnio na 1 iterację Opera potrzebowała teraz 2.06 ms, czyli mniej niż Chrome, który potrzebował 2.5 ms............

Dla przypomnienia Firefox 3.5 potrzebował czegoś w okolicach 1.380 ms na 1 iterację, liczyłem, że Firefox 3.6 beta 5 utrzyma ten wynik, a tutaj zdzwiko bo nowy Firefox potrzebował 6.79 ms! Prawie 5 razy więcej czasu niż w wersji 3.5, taki wynik jak w wersji 3.5 z tego co pamiętam uzyskiwał także w poprzednich betach.

Żeby nie było, że to tylko w moim teście Firefox tak spadł.
Wersja 3.5.5 w teście z opisu co to jest w ogóle TraceMonkey potrzebował średnio tylko około 43 ms na wykonanie testu:

W wersji 3.6 potrzebuje średnio 850 ms! Czyli prawie 19 razy więcej czasu!

Skąd taki nagły spadek wydajności? Nie mam pomysłu. Bo sam Firefox 3.6 beta 5 wydaje się być szybszym niż 3.5.


Podobne postybeta
Dart wolny.... w sensie nieprędki
Go wolniejsze od C i JavaScript, i ciut szybsze niż Java ;-) [a jednak od Java'y też wolniejsze]
Udawanie Raspberry Pi ;-)
Java 32 bit vs. Java 64 bit
A JavaScript i tak szybszy ;-)

poniedziałek, grudnia 21, 2009

A gdyby tak....

Taki szalony pomysł... nie żebym go zamiarował zrealizować, ale opisać można ;-)

Wiele wskazuje, że moje problemy z GG są spowodowane tym, że GG10 ma chyba nowy protokół, pozwalający np. na używanie numerków o numerach wyższych niż 16,7 mln.
Znajoma, z którą nie mogłem się ostatnio dogadać używa co prawda numerka o 2 razy mniejszego niż te 16,7 mln, ale za to używa Mirandy.
Stąd wnioskuje, że możliwe jest iż serwery GG gdy wykryją jakiś naprawdę stary protokół to przepakowują wiadomości do nowego protokołu.......... i mój klient, czyli Spik nie potrafi tego obsłużyć...... [jest duża dziura w rozumowaniu, bo czemu GG7 potrafi się dogadać? :-)]

Ale teraz pomysł, który może mnie by nie pomógł [znaczy cały akapit wyżej to bzdura], ale dałby szansę by stare komunikatory mogły gadać z nowymi numerkami...........
Mamy Nowego Gadacza, który jest serwerem proxy, i teraz ten serwer proxy mógłby teoretycznie przepakowywać komunikaty z nowego formatu na stary gdy przychodziłyby one z sieci, i wysyłał w nowym formacie dostając je z komunikatora w starym formacie.


Problemem byłoby tylko mapowanie nowych numerków na stare, ale tylko częściowo.
Najprościej byłoby założyć, że mapowanie będzie takie, że pierwszy nowy numerek który się pojawi będzie zmapowany na np. 1, drugi na 2 i tak dalej.
Można też pomyśleć tak, mamy 16,7 mln numerków, user na liście ma góra 500 [a chyba sama konstrukcja protokołu w wersji 7 ograniczała jeszcze bardziej wielkość listy], to daje nam nada ponad 16 mln numerków. Możemy więc losować dowolny numerek i mapować wszystkie transmisje z nowych numerków na takie wylosowane [oczywiście trzeba gdzieś trzymać tą mapę] lub można nawet z tej mapy zrezygnować i zastosować zwykłą funkcję hashującą :-) choć tu są pewne problemy....
Ogólna idea jest jednak taka, że przecież najprawdopodobniej większość z ludzi nie ma na GG numerka 505188 [mój :-)] tak więc swobodnie może on u nich zostać "przykryty" przez zmapowany nań numerek nowy.
Problemy pojawiłyby się w momencie gdyby user chciał dodać do swojej listy kogoś z nowym numerkiem GG bez wcześniejszej rozmowy z tym kimś.......

Ale pomysł i tak szalony :-)

[btw. że jest 3:14 to się pojawiły duchy na iGoogle :-)

]


Podobne postybeta
Dziwne wiadomości na GG
Jak sprawiedliwie przydzielić biurka?
"Cześć"
Kto mi podmienia certyfikat do GMAILa? ;-) A bardziej - jak? ;-)
Nowy Gadacz v0.2

niedziela, grudnia 20, 2009

Umiejętność programowania pomaga :-)

Jak pisałem GG, albo jeszcze coś innego, się obraziło i dlatego nie mogę rozmawiać przez GG z użyciem Spika.
No to mam teraz GG7 albo 7.7 i problemem był brak listy.
Mógłbym oczywiście ręcznie przepisywać numerki, ale mi się nie chciało.

Dlatego zrobiłem to inaczej :-)
Najpierw eksport kontaktów z WP Spika do do pliku, formatem jest nieszczęsny XML, później trochę kodowania w Java'ie [góra 50 linii, btw. ten model dostępny w pakiecie org.w3c.dom jest taki sobie, wolę jednak trochę przyjaźniejszego DOMa a'la JavaScript :-)] i już XML jest analizowany i program generuje plik tekstowy w formacie do jakiego GG7 eksportuje listę kontaktów.
Następnie import do GG i w końcu eksport do serwera :-)

I już mam listę :-)

Jak ktoś zainteresowany to tutaj kod, który to robi ;-)
public static void main(String[] args) throws Exception {
File file = new File("d:\\lista.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(file);
doc.getDocumentElement().normalize();
NodeList nodeLst = doc.getElementsByTagName("item");
for (int s = 0; s < nodeLst.getLength(); s++) {
String userNumber = "";
Node fstNode = nodeLst.item(s);
NamedNodeMap attributes = fstNode.getAttributes();
boolean isGG = false;
for (int j = 0; j<attributes.getLength(); j++) {
String str = attributes.item(j).toString();
str = str.replace("\"", "");
str = str.split("=")[1];
isGG = (str.indexOf("@gg.jabber.wp.pl")!=-1);
if (isGG) {
str = str.split("@gg.jabber.wp.pl")[0];
}
userNumber = str;
}
Element element = (Element)fstNode;
NodeList displayName = element.getElementsByTagName("displayname");
NodeList nickName = element.getElementsByTagName("nickname");
if (isGG) {
String name = "";
if (nickName!=null && nickName.getLength()>0) name = nickName.item(0).getTextContent();
if (displayName!=null && displayName.getLength()>0) name = displayName.item(0).getTextContent();
String str = ";;;"+name+";;;"+userNumber+";;0;;0;;0;";
System.out.println(str);
}
}
}



Podobne postybeta
Ile z obligacji... odsłona 2 ;-)
O wyższości Mavena nad Gradlem ;-)
Monitorujemy cenę IntelliJ'a ;-)
Sekrety klasy String ;-)
GG mnie nie lubi

Autostrada dowiezie mnie do domu dopiero za 2 lata.... part 2

Pisałem ostatnio, że GDDKiA wygania firmę budująca "mój" odcinek A1. No i już wiem kto przegra na tym najbardziej.
Gminy przez które miał biec ten odcinek A1. Na początku budowy podpisały one z wykonawcą umowy na przewóz dzieci do szkół [bo często jest tak, że tam gdzie teraz jest autostrada tam szła droga, którą dziecko mogło nawet przejść do szkoły, a teraz drogi nie ma, a most się budował.... Wykonawca zobowiązał się również, że wyremontuje drogi po których jeździł, niszcząc je, sprzęt budowlany. A teraz nikt tego nie zrobi przez następne najmniej 2 lata.
Wracając do mostów to teraz przez następny rok czy nawet dłużej mieszkańcy będą mieli coś takiego zamiast drogi którą mieli kiedyś i mostu, który mieli mieć po wybudowaniu autostrady.


View Larger Map

Fajne jest też to, że gminy dowiedziały się o całej sprawie z TV, nikt z GDDKiA ich nie raczył o niczym poinformować. Podobno też nic nie zapowiadało problemów, bo jeszcze miesiąc temu wojewoda obwoził dziennikarzy po tym odcinku i chwalił jak to wszystko ładnie się do przodu posuwa.


Podobne postybeta
Autostrada dowiezie mnie do domu dopiero za 2 lata :-(
Walka z VacLagiem - start ;-)
Śnieg - brrr
Jak biegnie A1? :-)
Czytelnictwo ;-)

Podejrzanie szybko....

Coś podejrzanie szybko mi się dziś napisało wsparcie dla autoupdatowania dokumentów z Google Docs w OOo2GD.

Działa to tak, że jeżeli pobierzemy dokument z Google Docs [z zaznaczoną opcją autoupdate] to po każdym nagraniu pliku [czyli gdy zmieni się data ostatniej modyfikacji pliku lub jego rozmiar] w ciągu paru sekund OOo2GD wrzuci nową wersję do Google Docs. Oczywiście wszystko działa puki OpenOffice.org i OOo2GD są włączone i tylko dla plików pobranych w danej "sesji", czyli od uruchomienia OpenOffice.org.


Są pewne ograniczenia, np. gdy edytujemy plik na 2 komputerach jednocześnie [czyli w tym samym momencie dwa komputery mają otwarty dany plik w trybie autoupdate] to wygrywa ten który ostatni dokona update'u, zmiany tego wcześniejszego zostaną utracone i zachowają się tylko w historii wersji w Google Docs.
Także gdy otworzymy w 1 sesji 2 razy ten sam plik to updatowanie będzie działało tylko dla tego otwartego jako pierwszy.
Ale i tak wydaje mi się, że działanie tego ficzera jest dość spójne.

Wszystko zabrało mi może jakieś 6 godzin co jest czasem podejrzanie krótkim. I wszystko zabrało chyba mniej niż 200 linii kodu....

Jeszcze nie wiem czy poczekać chwilę, np. na moment gdy dostanę czeskie tłumaczenie OOo2GD i dopiero wtedy wypuścić wersje 2.0.0, czy może zrobić to już teraz, czy też może dodać coś jeszcze ;-) choć na to ostatnie nie mam do końca pomysłów.


Podobne postybeta
Wersja 2.0.0 OOo2GD już jest :-)
No i mam skilla dla Alexy ;-) [wcześniej już miałem akcję dla Google Home :-)]
OOo2GD 2.3.0 - nowe dokumenty i autoupdate w działaniu :-)
Google oddaj URLa!
OOo2GD 3.0.0 - eksportowanie do Google Docs bez konwersji :-)

Wesołek ;-)

Zabawne słowa nowego kierownika krk w Polsce.
Szło to jakoś tak "bla bla bla wojująca laicyzacja bla bla bla to totalitaryzm ideologiczny".

Tak, bo rzeczywiście widać, że jak każdy totalitaryzm laicyzm wciska się np. do Nauki. Słynne są przecież sprawy gdzie np. laicy wtrącają się w badania nad komórkami macierzystymi, czy embriogenezą. Znane są też przypadki wtrącania się wojującej laicyzacji w zapłodnienie in-vitro.

Także wojująca laicyzacja próbuje wieszać swoje symbole gdzie tylko się da i krzyczy ostatnimi czasy o islamizacji Europy.

Zła wojująca laicyzacja, zła! ;-)


Podobne postybeta
Chwalmy chciejstwo ;-)
Prawicowa logika ;-)
Nie Polak
Szum informacyjny
4 małpki z trojgiem rodziców :-)

GG mnie nie lubi

No i GG mnie nie lubi ;-)

WP Spik przestał mi odbierać wiadomości od co najmniej części moich kontaktów, czyli jeśli ostatnimi czasy coś do mnie pisałaś/pisałeś na GG i nie odpowiedziałem to sorry :-) zniknęło w pokładach absurdu.
Co ciekawe Miranda też nie działa.
Zainstalowałem więc Gadu-Gadu 10.... po ataku wymiotów spowodowanym atakiem epilepsji wywołanych tym ciągłym miganiem wszystkiego spróbowałem użyć i GG10 udało się spowodować BSoDa ;-) [Blue Screen of Death] na Windows 7!
Po drugim uruchomieniu znów to zrobiło, 3 raz już mu tej szansy nie dałem i teraz używam GG7.
Szczerze jedyna rzecz, która trzyma mnie przy GG to duża ilość kontaktów na GG, bo tak to używałbym tylko GTalka/Jabbera :-)

Dlatego kochani Wy moi, jak na razie nie będzie testów Nowego Gadacza z GG10 bo nie lubię BSODów oglądać ;-)


Podobne postybeta
A gdyby tak....
Umiejętność programowania pomaga :-)
Galxy Tab w Erze i ciekawe ceny za transfer :-)
DVD BtVS sezon 2
Dziwne wiadomości na GG

sobota, grudnia 19, 2009

Spokój=Nuda

Krótko, przez ostatni tydzień prawie nic nie zrobiłem, miałem święty spokój.. i choć źle nie było to się strasznie wynudziłem.
To jest straszne, dotrzeć do miejsca gdzie nudzisz się tak bardzo, że nic Ci się nie chce robić.
Mam kilka pomysłów ale jakoś takie niepociągające są. Chciałbym np. dodać do OOo2GD prosty mechanizm autoupdatowania dokumentów w Google Docs, ale jakoś nie chce mi się usiąść i czegoś zrobić.
A najlepsze, że mnie to strasznie wkurza ;-) i to mi daje nadzieję, że wkrótce będę na tyle zły, że coś zrobię.

(Z góry sorry za błędy ortograficzne, ale piszę z G1 bo mi się nie chce po netbooka sięgać.... z tego też powodu sekcja podobne posty zostanie dodana dopiero za parę godzin gdy odpalę laptopa i program do ich wyliczania)




Podobne postybeta
Czy to już pracoholizm? ;-)
Podejrzanie szybko....
O wadach wysokiego IQ
Nuda....
Koszmarny Garbage Collector ;-)

środa, grudnia 16, 2009

OOo2GD 1.9.1 - wybierz sobie Look And Feel :-)

Dostępna jest nowa wersja OpenOffice.org2GoogleDocs, tym razem z numerkiem 1.9.1.
Jedna nowość w niej, możliwość wyboru Look And Feel w jakim UI pracować ma rozszerzenie.

Wybór dostępnych Look And Feel zależy od wersji Java'y, systemu operacyjnego, a w przypadku Linuksa, Solarisa, HP i paru innych także tego jakiego menadżera okien używacie.
Po każdej zmianie Look And Feel, której dokonujemy w oknie konfiguracji:


trzeba zamknąć wszystkie okienka rozszerzenia.

Zapraszam do pobierania ze strony OOo2GD w repozytorium rozszerzeń OO.org, albo ze strony projektu.


Podobne postybeta
Nimbus vs. Ocean - nowy Look And Feel w Swing
OOo2GD w różnych smakach ;-)
Mac OS X ma u mnie krechę
OpenOffice.org2GoogleDocs 1.0.4
Bloggeroid 1.4.0 :-) - w stronę stabilności... oby ;-)

Autostrada dowiezie mnie do domu dopiero za 2 lata :-(

A miałem w przyszłym roku móc pojechać z Krakowa do Wodzisławia non-stop autostradą....

View Larger Map
Ale niestety okazało się, że budowa nie idzie tak jak powinna i GDDKiA zrywa umowę na budowę trasy A1 i zamiast jak było w planach w okolicach połowy 2010 ten kawałek drogi zostanie skończony 2 lata później :-(
Największym problemem jest chyba to co widać u góry mapki, co ma być mostem czy wiaduktem mającym 600 metrów długości i 40 szerokości [to jedyne w Google Earth wygląda na coś takiego ;-) w tej okolicy].
Jest jeszcze szansa, że do połowy przyszłego roku skończony zostanie kawałek do Świerklan, z którego też mogę dojechać do domu, ale znów na Węźle Sośnica się coś wloką, mieli skończyć do końca tego roku, czy nawet do końca listopada i do końca tego roku miał zostać oddany, a brakuje im tam jeszcze chyba 1 wiaduktu.
A mogło być tak fajnie. Poza autostradami przejeżdżałbym góra z 15 km, czyli jakieś 10% całej trasy, a tak nadal 50 km będę musiał jeździć po zwykłych drogach....... nie lubię tego. W takim np. Rybniku niedobre Straszniki Miejskie porozstawiały radarów [śmiem niestety wątpić czy poprawi to bezpieczeństwo, choć byłoby fajnie], ale dziury im zostały [szczególnie na jednym z rond].
Inna sprawa, że jak cały ruch z tych biednych Świerklan do Czech będzie szedł tymi drogami co teraz to może nie być wesoło. Niby teraz też idzie tylko, że nie autostradami.


Podobne postybeta
Autozdrada ;-)
Autostrada dowiezie mnie do domu dopiero za 2 lata.... part 2
Tunel... ciąg dalszy ;-)
W końcu otwarli :-)
My Tracks mówi "budujmy więcej autostrad" ;-) albo jakoś tak ;-)

poniedziałek, grudnia 14, 2009

Wszędobylska Java :-)

Java to jest jednak dobra rzecz.

Od jakiegoś czasu śledzę to jakich systemów operacyjnych używają komputery na których jest zainstalowany OpenOffice.org2GoogleDocs, jakby przy okazji dostaję też informację o procesorze i jak na razie widać takie kombinacje systemu i architektury procesora:
  • FreeBSD X86
  • FreeBSD X86-64
  • Linux x86
  • Linux x86-64
  • MacOSX PowerPC
  • MacOSX x86
  • Solaris SPARC
  • Solaris x86
  • Windows x86

Przy okazji widać, że wersja 64 bitowa OpenOffice.org jest jak na razie na Linuksa i FreeBSD :-)

Mamy więc 4 rodziny systemów operacyjnych, 3 potomków Uniksa [po mieczu lub po kądzieli ;-)] i Windows, 3 totalnie różne architektury procesorów - x86, PowerPC i SPARCa, a do tego jeszcze w przypadku x86 mamy 32 bitowy i 64 bitowy tryb.
I na tych wszystkich systemach działać może rozszerzenie napisane w Java'ie.

Czyż to nie jest piękne? :-)

Gdyby jeszcze ten Swing był prostszy i szybszy.... ;-)


Podobne postybeta
Java szybsza na M1 jako X86 niż jako ARM ;-)
Windows++ ;-)
Przeszacowany Linux, Niedoszacowany Windows i Ukryty MacOS ;-) czyli o tym na jakich systemach używa się głównie OOo2GD
To (kalkulator) żyje :-)
Tak o niczym ;-)

sobota, grudnia 12, 2009

Jak oceniasz swoje bezpieczeństwo? - podsumowanie

Jeśli patrzeć na wszystkie wyniki ankiety to nie jest dobrze, bo średnia z Waszych szacunków liczby zabójstw w Polsce to 10741 sztuk rocznie, czyli ponad 14 razy więcej niż w rzeczywistości.
W 2008 roku było w Polsce 759 zabójstw, w tym zapewne będzie mniej.

Jeżeli odrzucimy dwa głosy [z 14], ten który "brzmiał" "123456" [podejrzanie kolejne liczby ;-)] i "1" to jest już lepiej, bo wtedy szacunki są "tylko" prawie 3 razy wyższe niż rzeczywista liczba zabójstw. Średnia w tym przypadku wynosi 2243 czyli 2.96 raza więcej niż rzeczywiste 759.

Czyli uważacie, że szansa na to że ktoś zostanie ofiarą morderstwa jest 3 razy wyższa niż wynosi ona w rzeczywistości, czyli uważacie, że jest bardziej niebezpiecznie niż w rzeczywistości.


Podobne postybeta
Jak oceniasz swoje bezpieczeństwo?
Światełko w tunelu :-)
Wyniki do Sejmu na podstawie wyników do PE
Nie czaję... ;-)
Ile potrwa kryzys? Pierwsze szacunki.

OOo2GD w różnych smakach ;-)

Dziś pojawił się request na nowy ficzer do OpenOffice.org2GoogleDocs. Tak który pozwoli na przyjmowanie przez OOo2GD wyglądu jak najbardziej zgodnego z systemem.
Stwierdziłem, że to rozszerzę i dam po prostu możliwość wyboru dowolnego z dostępnych w danym systemie stylów Look And Feel.

Tutaj wyniki :-)

Windows


Nimubs na Windows 7:


Metal na Windows 7:


Windows na Windows 7:


Windows Classic na Windows 7:


CDE-Motif Windows 7:


Linux


Zrzuty robione na Ubuntu 9.10.

Najpierw zrzut z Look And Feel GTK+:


Standardowy Java'owy Metal:


CDE-Motif:


Macinthosh


Jakaś starsza wersja OOo2GD w natywnym Look And Feel Maca, nie dysponuję niestety nowszymi zrzutami z braku Maca :-) [jakby ktoś chciał mi go zasponsorować to ja bardzo chętnie ;-)]



Nagrodę na najbrzydsze środowisko wygrywa wg. mnie bezapelacyjnie CDE-Motif tak na Windows jak i na Linuksie. Później Windows i Windows Classic na Windows 7, następnie Macowy, Metal na Linuksie i Windows i w końcu GTK+ i Nimbus.

Czyli po odwróceniu moja lista ładności wygląda tak:
  1. Nimubs na Windows 7
  2. GTK+ na Linuksie
  3. Metal na Windows i Linuksie
  4. Mac
  5. Windows na Windows
  6. Windows Classic na Windows
  7. CDE-Motif na Windows i Linuksie


Jeszcze nie do końca jestem przekonany co do tego czy dodawać ten ficzer do zmiany L&F czy też nie, pewnie dodam, w końcu już go zakodowałem, ale nie jestem jeszcze przekonany :-)


Podobne postybeta
Nimbus vs. Ocean - nowy Look And Feel w Swing
Mac OS X ma u mnie krechę
Samsung nie umie w software ;-)
OOo2GD 1.9.1 - wybierz sobie Look And Feel :-)
Trudne USB...

piątek, grudnia 11, 2009

Jak oceniasz swoje bezpieczeństwo?

Ilekroć jakaś rozmowa schodzi na temat przestępczości i tego, że w Polsce jest niebezpiecznie tylekroć w końcu zadaję pytanie swojemu rozmówcy "Ile wg. Ciebie jest rocznie w Polsce zabójstw?" i prawie zawsze dostaję zawyżoną, zwykle o rząd lub dwa odpowiedź.

Stąd prośba, wpiszcie ile wg. Was jest co roku zabójstw w Polsce, chodzi o liczbę.



Ale bez oszukiwania i sprawdzania w statystykach :-)


Podobne postybeta
Jak oceniasz swoje bezpieczeństwo? - podsumowanie
Smutne pytania w statystykach
Co się z tą młodzieżą dzieje? ;-)
Programowanie jako sztuka oszukiwania ;-)
Wyniki do Sejmu na podstawie wyników do PE

czwartek, grudnia 10, 2009

Zegarek trudny

Dziś, a właściwie to już wczoraj ;-) przekonałem się, że zegarek to jest momentami zbyt skomplikowane urządzenie.

Jak zwykle wyszedłem z pracy tak koło 18 [to naturalne gdy zaczynasz o 10, a nie jesz obiadu w pracy], poszedłem na tramwaj, poczytałem sobie w tramwaju i przed wysiadaniem jak zwykle sprawdziłem czy nie ma jakiejś nowej poczty... i tu amba bo na telefonie była wtedy 17:25............. A powinna być 18:25 czy jakoś tak ;-)

Wychodzi na to, że wyszedłem z pracy godzinę wcześniej myśląc, że wychodzę o dobrej godzinie ;-)
A wszystko przez call'a, którego przez ostatnie prawie 3 lata mieliśmy zawsze o 17 [żeby nasi amerykańscy koledzy z LA mogli zaczynać pracę o 8, a nie o 7 co IMHO byłoby barbarzyństwem] przeniósł się ostatnimi czasy na 16, no i po tym jak call się skończył to naturalnym wydawało się pójść do miejsca spania ;-) Może wydawało mi się, że to wtorek gdy nadal mam call'a o 17? :-) Ale przez to jutro i pojutrze muszę odrobić tą godzinę :-) coby pójść na 3 tygodnie urlopu z czystym sumieniem :D


Podobne postybeta
Blog to jednak nie jest dobre źródło notatek ;-)
Dowcipy biurowe ;-)
Nieprzytomny
Kalkulator marzeń ;-)
A może zarwać noc?

środa, grudnia 09, 2009

Kupić bilet czy nie kupić? Oto jest pytanie....

Ostatnio gdy czekałem na tramwaj zadałem sobie pytanie czy opłaca się w ogóle kupować bilety?

Pytanie nie jest wcale głupie.

Policzmy.

Załóżmy, że jeździmy codziennie 2 razy przez 5 dni w tygodniu, przez powiedzmy 45 tygodni w roku.
Oznacza to, że potrzebujemy 450 biletów za łączną kwotę 1125 złotych [założenie, że kupujemy cały bilet].

Jeżdżąc bez biletu ryzykujemy karę w wysokości 102.5 złotego [100 złotych + cena biletu].

Zyskujemy do momentu gdy koszty kar są niższe niż koszty biletów. Z podzielenia 1125 złotych przez 102.5 złotego dostajemy 10.97... czyli puki mieścimy się w 10 złapaniach to interes się opłaca bo zyskujemy 100 złotych rocznie.

Żeby zyskać te 100 złotych rocznie musimy spotkać kontrolera rzadziej niż raz na 45 przejazdów czyli raz na 4.5 tygodnia w których jeździmy. Czyli trochę rzadziej niż raz na miesiąc.

To by znaczyło, że opłaca się oszukiwać puki gęstość kontrolerów jest niska. W Krakowie przy chyba 25 liniach i powiedzmy 10 tramwajach na linię, czyli 250 tramwajach z powiedzmy 2 wagonami każdy, czyli przy 500 wagonach, gęstość ta wynosi 10 zestawów kontrolerów na 450 wagonów. Co daje 12 zestawów kontrolerów na 500 wagonów.
Czyli wystarczy, by w każdej chwili było 12 lub więcej zestawów kontrolerów "gdzieś w sieci tramwajowej" i już strategia oszusta przestaje się opłacać.

To w idealnych warunkach, ale gdy zwiększymy ilość kontrolerów do powiedzmy 36 zestawów czyli 72 osób to już zdecydowanie bardziej opłaca się kupować bilety niż jeździć na gapę :-) [zresztą sami kontrolerzy by się opłacić muszą złapać średnio koło 120-130 osób dziennie]

I proszę od najmniejszych lat to wiedziałem :-) bo na gapę zdarzyło mi się jechać chyba tylko 1 lub 2 razy i zostałem wtedy wstrętnie oszukany przez kuzynkę i kuzyna, że oni mają bilety i zaraz skasują [miałem wtedy 6 i chyba 12 lat :-)]. Ewidentnie sprytna ze mnie bestia ;-)


Podobne postybeta
No i jest problem natury logistyczno-temporalnej....
Nie taka klasa konkretna straszna....
Upał promuje mniejszych?
A o tym żeby za często nie było tak, że drzewa przesłaniają las
Patenty

wtorek, grudnia 08, 2009

Plus dla aplikacji webowych :-)

Pisałem tu kiedyś, że nie podoba mi się by każda aplikacja na świecie była webaplikacją [to było w nawiązaniu do Chrome OS]. Nadal tak uważam, ale mam przykład na to, że aplikacje webowe są często lepsze dla użytkownika i prostsze do tworzenia dla developera.

Ostatnio w pracy do naszego produktu dodaję integrację tego produktu z kalendarzami z Outlooka, Google Calendar czy czymkolwiek innym co lubi się z iCal.
I wymyśliłem sobie, że fajnie będzie dać userowi w treści zdarzenia w kalendarzu możliwość szybkiego obejrzenia tego co wygenerowało to zdarzenie w aplikacji.
A, że to jest aplikacja webowa to wystarczyło dodać na końcu maila z zaproszeniem urla do strony na której użytkownik [po zalogowaniu jeżeli akurat nie jest zalogowany] może sobie obejrzeć to co go interesuje lub to przeedytować.
Łącznie z 2-3 linie kodu, a o wiele większa użyteczność i co ważne działa zawsze.

Chcąc to zrobić z aplikacją okienkową trzeba by było stworzyć i zarejestrować nowy protokół i w aplikacji dodać jakieś mechanizmy pozwalające na określenie stanu aplikacji po jakimś urlu. Do tego użytkownik mógłby używać tego tylko na tym komputerze na którym zainstalowana byłaby aplikacja.

Czyli aplikacje web mają swoje plusy ;-)


Podobne postybeta
Wpisy z Bloggera jako eventy w Google Calendar
Zinwigiluj się sam, część 2 - mapa :-)
YouWave
Co by tu jeszcze dodać?
Oddajcie robota!!!

Blee... czyli ogólne zniechęcenie ;-)

Prawo w Polsce jest dziwne.
Wczoraj gościu za zabicie 2 dziewczyn w wypadku który spowodował po pijaku dostał 12 lat odsiadki. Dziś czytam, że za seks z 14 letnią dziewczyną jakiś gościu też może dostać 12 lat.
Mimo wszystko jednak ciężar gatunkowy tych dwóch przestępstw jest jednak ciut różny, nie sądzicie? Jakby nie patrzeć jednak ten pierwszy czyn spowodował więcej nieszczęścia, pozbawił życia 2 osoby. W tym drugim ta 14 latka też nie ma za dobrze, ale jednak ma zdecydowanie większe szanse na szczęśliwe życie niż te 2 zabite dziewczyny.
A kara dla sprawców taka sama?

Ogólnie ostatnio mam znów atak choroby "na nie" w stosunku do naszego kraju. Dziś znów w dyskusji padło pełne przeświadczenia "religia zapewnia moralność i nie można żyć moralnie bez religii" i jeszcze jakie oburzenie było gdy spytałem czy to znaczy, że ja jako ateista wychowany bez żadnej religii jestem w takim wypadku gwałcicielem.
Jak pan prezydent swoimi słowami mnie do wyprowadzki nie zachęcił to to już tak.

Albo teraz sprawa z Jaruzelem, wielka radocha bo "JEST DOWÓD!", tylko że jak się okazuje dęty i wart tyle samo jakbym ja sobie napisał w zeszycie, że tak i tak jest i to opowiedział w filmie. Równie dobrze może być fałszywy jak i prawdziwy więc nic nam nie wnosi do wiedzy, może gdyby sprawdzić chemicznie czy powstał w tym czasie to by już coś dało, ale pewnie z takim sprawdzaniem byłoby dokładnie tak samo jak z "obiektywnym" badaniem tego opłatka z Sokółki. Za jakiś czas będzie tak jak w czasach gdy Tejkowski tworzył swoją listę prawdziwych Polaków, był na niej on i jego zaufani, tak IPN stworzy listę tych, którzy w PRLu zachowywali się tak jak IPN uważa za słuszne i otwierać ją będzie pan Kurtyka i jego przyboczni.

A najbardziej przybijająca wiadomość dnia to info o tym, że pan doktor co to homeopatię wciskał swoim pacjentom wygrał sprawę z izbą lekarską czy czym tam. "Pamięć wody" nagle dostała legitymację.

Jak IV RP Kaczyńskich przerażała całą swoją istotą to obecna RP 3.5 a może raczej 4.1 przybija takim zbiorowiskiem dziwności. Nadal panuje przekonanie, że "każdem jeden co to zarabia więcej niż 2-3 tysiące złotych to złodziej" i w ogóle wszyscy to złodzieje....

I idea pracy za granicą nabiera na atrakcyjności........ dajcie jakieś powody żeby znów zobaczyć plusy ;-)

[dziś blog robi za narzędzie do zniwelowania zniechęcania, wyrzucam swoje myśli to może pójdą precz ;-)]


Podobne postybeta
Szczęśliwe nieszczęścia ;-)
Nienawiść
Seksizm
No to posprzątane, pójdę siedzieć, za obrazę uczuć religijnych....
Demokracja

Google Goggles w działaniu :-)

Się głośno o Google Goggles zrobiło czyli o wyszukiwaniu obrazkowym.
No to proszę jak nie widzieliście jeszcze jak to działa to tu przykład :-) Zrobiłem zdjęcie 1 komiksu z serii 8 sezonu Buffy the Vampire Slayer i znalazło :-)



W pracy testowałem na herbacie i znalazło Vitaxa, choć Tetley już nie ;-)


Podobne postybeta
Buffy ma 40 lat....
Cytat ;-)
Przenośna wikipedia
Książkowy Stack Overflow ;-)
10 lat temu byłem u Buffy ;-)

poniedziałek, grudnia 07, 2009

Galileoskop złożony ;-)

No i złożyłem Galileoskop, zajęło mi to jakieś 30 do 40 minut z czego ostatnie 10 minut użyłem do wyjęcia jednego z obiektów [18x] z nasadki nań coby zastosować go w połączeniu z obiektywem 25x jako soczewkę Barlowa [jeśli dobrze rozumiem]. Wszystko w trakcie oglądania TV więc nie jest to jakieś szczególnie złożone zajęcie.

Po złożeniu wszystko prezentuje się tak jak widać na zdjęciach.





Trochę niepokoją mnie te dziwne plamki na soczewce.

Najwięcej zamętu jest ze składaniem obiektywów bo trzeba dość dokładnie przyglądać się soczewką coby je odpowiednio złożyć a przy okazji nie po palcować ich zbytnio. Same soczewki z boku wyglądają czasem lekko przerażająco tak jakby były odtłuczone od jakiegoś większego kawałka szkła czy raczej plastiku. Ale całość choć jednak Made In China jest bardzo składalna, wszystko do wszystkiego pasuje. Jedyny zgrzyt to obiektyw 18x, który trudno złożyć i jeszcze trudniej rozłożyć.
Obserwacji żadnych nie byłem w stanie wykonać, popatrzałem sobie tylko na logo pobliskiego McDonalds ale takie uroki chmur na niebie ;-) Choć już teraz wyraźnie widać, że problemem będzie ustawianie ostrości bo wszystko jest na "suw" a to trudne. Jednak pokrętła w tanich chińskich teleskopach trochę pomagają ;-)
Wydaje się też, że rzeczywiście udało się projektantom osiągnąć to, że obiektywy są tak skonstruowane, że spokojnie można patrzeć w okularach.
W składaniu bardzo przydatna jest instrukcja obrazkowa dostępna na stronie downloadu dla Galileoskopu, tutaj link bezpośredni.

No i to chyba wszystko ;-)

[Dodane po pierwszej obserwacji ;-)
patrzyłem na Księżyc i wyglądał super, obraz o niebo lepszy niż na tanim chińskim teleskopie z marketu, do tego o wiele bardziej stabilny, nawet lekkie trącenie okularami o teleskop wprowadziło go w bardzo krótkie i spokojne drgania, które szybko wygasły. Patrząc na terminator świetne widać poszczególne kratery, obraz jest bardzo ostry i jasny choć teraz sam Księżyc jest dość ciemny. Celowanie to mordęga, muszka i szczerbinka na tubie są mało pomocne szczególnie gdy próbuje się celować w coś mniejszego, próbowałem w mgławicę Oriona i tylem widział co nic ;-) Choć tu dużo do powiedzenia będzie miał także sam statyw. Tu trzeba zaznaczyć, że Galileoskop jest BEZ STATYWU i do obserwacji konieczny jest statyw fotograficzny. Wrażenia bardzo pozytywne :-)]


Podobne postybeta
Focus
Galileoskopy w Polsce
Czemu używam częściej Chromebooka niż netbooka z Windows?
Podwójne standardy - Tybet a Arabia Saudyjska.
Czy się stoi czy się siedzi.... kamerka w laptopie jako detektor tego czy biurko jest w trybie stand czy sit ;-)

sobota, grudnia 05, 2009

Galileoskop :-)

Wczoraj odebrałem na poczcie dwa galileoskopy :-)

Tutaj 4 zdjęcia z otwarcia pudełka :-)











Jak na razie nie składałem jeszcze drania. Ale wygląda nieźle :-)


Podobne postybeta
Galileoskop jest już tuż tuż ;-)
Galileoskop
Galileoskopy w Polsce
Stefan albinos przybył... i trochę przerażający jest ;)
Teleskop :-)

piątek, grudnia 04, 2009

Dziwne wykorzystanie twierdzenia Bayesa :-)

Nie bijcie ;-) będzie kontrowersyjnie i może być z błędami :-)

Mamy dane z USA: odsetek ateistów wśród amerykanów to jakieś 10% wśród przeciętnych mieszkańców USA, czyli takich o IQ w okolicach 100 [duże uproszczenie].
Wśród ogółu amerykańskich naukowców średnio 35% to ateiści*, przyjmijmy, że ich IQ to około 130 [też przybliżenie].
Wśród wybitnych naukowców należących do National Academy of Sciences niewierzący stanowią 93%** i załóżmy że dla nich IQ to 150.

Czyli jest tak:
P(ateista|IQ to 100) = 10% (prawdopodobieństwo, że ktoś jest ateistą pod warunkiem, że jego IQ to 100 wynosi 10%)
P(ateista|IQ to 130) = 35% (prawdopodobieństwo, że ktoś jest ateistą pod warunkiem, że jego IQ to 130 wynosi 35%)
P(ateista|IQ to 150) = 93% (prawdopodobieństwo, że ktoś jest ateistą pod warunkiem, że jego IQ to 150 wynosi 93%)

Teraz zastanówmy się czy można z tego wywnioskować coś o szansach na to, że masz IQ powiedzmy 130 gdy jesteś ateistą?
Wydaje się, że tak. Można spróbować użyć twierdzenia Bayesa [i tu mogą być błędy :-)], które zapisujemy np. tak:

P(A|B)=P(B|A)*P(A)/P(B)


Czyli mamy tak:
P(IQ to <wartość>|ateista)=P(ateista|IQ to <wartość>)*P(IQ to <wartość>)/P(ateista)

Czyli szansa, że IQ danego osobnika wynosi <wartość> gdy jest ateistą jest równa odsetkowi ateistów w grupie ludzi o danym IQ pomnożonej razy odsetek ludzi z całej populacji o danym IQ i podzielone przez odsetek ateistów w całej populacji.

Wiemy że:

P(IQ to 100)=~68% [tyle ludzi jest w odległości 1 odchylenia standardowego od 100]
P(IQ to 130)=3%
P(IQ to 150)=0.1%

P(ateista)=~10%

Gdy wrzucimy to wszystko do wzoru Bayesa to mamy:
P(IQ to 100|ateista)=68%
P(IQ to 130|ateista)=11%
P(IQ to 150|ateista)=1%

Czyli, jeżeli ktoś jest ateistą to w 68% przypadków jego IQ to około 100, czyli tak jak w reszcie populacji, w 11% przypadków jego IQ to 130, czyli o 3.5 raza częściej ateista ma IQ w okolicach 130 niż w całej populacji, w 1% przypadków jego IQ to 150, czyli wśród ateistów jest to częstsze o 10 razy niż w całej populacji.

I co Wy na to? :-)



* dane za stroną apologetów religii
** dane za artykułem z Nature, który można znaleźć tutaj


Podobne postybeta
Ku pamięci - iteracyjna wersja twierdzenia Bayesa ;-)
Studia wyższe
&quot;Bóg urojony&quot;
Głupie użycie twierdzenia Bayesa.....
Słaby, ale wojujący ateizm - czyli "obiektywne" dziennikarstwo ;-)

czwartek, grudnia 03, 2009

Trybunał zdecydował.

Wczoraj Trybunał Konstytucyjny uznał, że wliczanie religii do średniej jest "w porzo". Nie zgadzam się, bo mimo tego co twierdzi Trybunał religia nie jest jeszcze jednym przedmiotem dodatkowym. Głównie z tego powodu, że nie ma jasnych kryteriów oceny, a sama ocena bywa często [i nie ma żadnych mechanizmów to uniemożliwiających] oceną za wiarę, a nie za wiedzę. Czyli może być uczeń, który zna cały temat lepiej od prowadzącego, ale może dostać ocenę niedostateczną ponieważ np. nie był na rekolekcjach.
Ale OK, na decyzji trybunału i tak najpewniej nie straci żaden ateista :-) W Polskich warunkach ateizm jest domeną ludzi inteligentniejszych niż przeciętna*, ich dzieci z wszystkich przedmiotów mają zwykle na tyle dobre oceny, że i tak wybijają się na tyle mocno ponad przeciętną, że spokojnie mogą się dostać do wybranej szkoły.
Wysoka ocena z religii może tak naprawdę w znaczący sposób zawyżyć średnią tylko przeciętnemu lub słabemu uczniowi, a wśród takich ateistów zbyt wielu nie ma.

Dlatego choć jestem zaskoczony decyzją Trybunały i jestem skłonny do przychylenia się do opinii, że Trybunał wolał nie zadzierać z kościołem i stąd ta decyzja, to jakoś szczególnie smutny z powodu tej decyzji nie jestem. Cóż, stało się, Trybunał zdecydował, trzeba z tym żyć.
Mam tylko nadzieję, że nikt w ramach "walki o dobro dzieciaczków" nie przeforsuje obowiązkowych lekcji etyki, bo temu jestem przeciwny.



* związek jest taki, że im ktoś jest inteligentniejszy tym jest bardziej prawdopodobne, że jest ateistą. Nie znaczy to jednak, że ktoś kto jest wierzący jest z automatu mniej inteligentny!


Podobne postybeta
Zakład MENu
Iran coraz bliżej....
Bóg Urojony i Źródło Wszelkiego Zła
No i mamy wyrok
"Bóg urojony"

środa, grudnia 02, 2009

Inercja i koło wielokrotnego wynajdywania, czyli radosne macki piekieł w kodzie [alem pojechał w tytule ;-)]

Już parę lat pracuję ze wspólnym kodem, czyli takim który pisze wiele osób i którego niektóre fragmenty skrywają swoje pochodzenie w pomrokach dziejów i nikt nie jest w stanie powiedzieć kto je napisał i kiedy [znaczy to tyle, że napisano je jeszcze zanim zaczęto używać kontroli wersji, tudzież używano innego systemu kontroli wersji, a później dokonano przejścia na inny system ;-)], często także nikt nie wie po co ktoś to napisał ;-)

I dwie najbardziej denerwujące cechy takiego kodu to jego inercja i wielokrotne wynajdywanie koła.

Inercja uwidacznia się w taki sposób, że natrafiając na dany fragment kodu developer podświadomie przyjmuje styl pisania w tym fragmencie, przy jednoczesnym braku analizy tego kodu.
To drugie oblicze inercji objawia się tym, że często poprawka polega na dodaniu, zmianie lub usunięciu jednej linii do której doprowadził Cię debuger, ale tak naprawdę nie rozumiesz co zmieniasz.
Oznacza to, że kod z wiekiem obrasta w różnego rodzaju obejścia i tymczasowe rozwiązania, upodabnia się do klasycznych układów na pająka ;-) ale nie tych gdzie pająk jest wynikiem braku płytki, a tych gdzie robi się nim np. wspólną masę.

I w pewnym momencie w kodzie mamy tajemniczą linię:
st.setString(1,values[idx++]);
st.setString(2,values[idx++]);
idx++; // tajemnicza linia
st.setString(3,values[idx++]);
Która oznacza, że prawdopodobnie zmieniło się coś w strukturze danych, i najprostszym rozwiązaniem było zastosowanie takiego tricku ;-)

Pierwsze oblicze inercji wygląda tak, że ktoś kiedyś powtórzył dany kod kilka razy z drobnymi zmianami, np. coś takiego:
if (startValue==null) {
start.setValue(0);
} else {
start.setValue(startValue);
}
if (middleValue==null) {
middle.setValue(0);
} else {
middle.setValue(middleValue);
}
if (endValue==null) {
end.setValue(0);
} else {
end.setValue(endValue);
}

Wtedy niemal pewne jest, że gdy będzie to potrzebne dostaniemy do kodu takie coś:
if (stopValue==null) {
stop.setValue(0);
} else {
stop.setValue(stopValue);
}

Żeby kod był "konsystentny".
Tutaj zaś rozwiązaniem byłoby np. proste zamienienie wszystkich tych "idiomów" w użycie operatora warunkowego ?, a w większości innych przypadków wyrefaktorowanie metody i przekazywanie jej tych drobnych różnic.
Ale tu właśnie pojawia się inercja, bo gdy tego są 3 sztuki to mało kto coś robi, a jak jest ich paręset w całym kodzie w kilkudziesięciu klasach to już taka prosta operacja nie jest ;-)

Wielokrotne wynajdywanie koła też jest ciekawą przypadłością. Zapewne można by próbować wyznaczać ilość developerów pracujących na danym kodzie przez prostą analizę ilość powtórzeń pewnych fragmentów i częstości wyniesienia ich do klas utilowych ;-) O co chodzi?
Np. trzeba zapisać coś do pliku, jakiś tekst, kilka razy, wtedy developer może zrobić metodę saveToFile(String fName,String text) i umieścić ją w klasie Util i niby wszystko OK, ale jest prawie pewne, że za jakiś czas inny developer [a czasem nawet ten sam ;-)], będzie potrzebował metody robiącej dokładnie to samo, nie będzie miał jednak pojęcia o istnieniu tej pierwszej metody i stworzy nową... tym razem może przyjmować np. parametry w odwrotnej kolejności.
W jednej z poprzednich firm mieliśmy chyba 4 kompletnie różne metody pobierania informacji o sprzęcie do którego byliśmy podłączeni i co najlepsze każda z tych metod mogła zwrócić za każdym razem ciut inny obiekt, choć intencja była taka by zawsze zwracała to samo ;-)
Albo metody formatujące, często jest ich kilka zestawów choć każda z nich robi to samo ;-) Bo gdy developer dotarł do miejsca gdzie musiał sformatować dużo liczb czy dat to stwierdził, że dobrze zrobić sobie takie metody........... nie wiedząc, że już gdzieś takie są ;-)

Oczywiście tak inercja kodu jak i wielokrotne wynajdywanie koła nie są dobre. Bo gdy trzeba coś zmienić to okazuje się, że nie wiadomo gdzie to zrobić, że trzeba poprawkę z drobnymi modyfikacjami założyć w milionie miejsc i w końcu, że i tak się kilka tych miejsc przegapiło ;-)

Jak z tym walczyć? Czasem pomagają stand-up'y, bo np. pomagają szerzyć wiedzę o utilach, ktoś mówi "i dziś napisałem trochę kodu do formatowania daty i używajcie tego" i czasem to gdzieś w cudzej głowie utkwi i jest szansa, że wykorzysta. Pomagają czasem inspekcje bo wszyscy jako tako znają dzięki nim kod.
Na inercję pomaga refaktoring. Zwykle pomaga, choć oczywiście nie zawsze. Już byłem w takich miejscach, że przerefaktorowanie kodu powodowało, że musiałem się kilka razy bardziej nagimnastykować by coś osiągnąć bo akurat dany refaktoring był zbyt "ładny", a za mało praktyczny.

Btw. widzicie jak często używam słów niemierzalnych, takich jak "ładny", "czasem", "zwykle" i podobnych? Taki już urok kodowania, że mimo istnienia jakichś 3 milionów typów metryk i tak jedyną metodą na ocenę kodu jest popatrzenie nań przez człowieka, który może dostrzec tam piękno [rzadko ;-)] lub radośnie machające macki piekieł [częściej ;-)].

Ale, choć wspólny kod miewa problemy, to i tak zwykle mimo połączenia ignorancji wielu łączy też ich geniusz i efekt działa i bywa nawet w miarę przewidywalny ;-)
Czasem się tylko coś wysypie ;-)


Podobne postybeta
Przepływ sterowany danymi - A takie Java'owe coś ;-)
"Skoro ludzie wyewoluowali z małp to czemu małpy nadal istnieją?"
Wyrocznia od siedmu boleści
Electron + Airly = wskaźnik jakości powietrza w pasku ;-)
O tym czemu branche są złe...