cieszmy się.

nasi wspaniali rządzący opanowali widać wszystkie inne problemy. i teraz zajmują się (jak widać najważniejszym): fotografowaniem obiektów strategicznych.

mon (ministerstwo obrony narodowej. obrony? może ośmieszania) chce przywrócić znane z prlu tabliczki o zakazie fotografowania.

po co? noooo .. aby jak terrorysta będzie chciał rakietą strzelić np. w okęcie, to nie będzie mógł sobie wcześniej fotki strzelić i nie będzie wiedział w które okno dokładnie trafić.

co prawda misie mózgowcy z monu zapomnieli o całkowicie publicznie dostępnych zdjęciach satelitarnych i lotniczych (google earth i maps, odpowiednie serwisu microsoftu i yahoo). nic to. może i sobie namierzy satelitarnie, ale zdjęcia nie będzie mógł mieć.

jakie to dokładnie strategiczne obiekty będą chronione? w/g życia warszawy:

“…Zakaz ma dotyczyć lotnisk, portów, stacji i węzłów kolejowych, ważniejszych mostów i wiaduktów, zapór wodnych, elektrowni i urządzeń elektroenergetycznych, kopalń, składów paliw, żywności i artykułów sanitarnych oraz magazynów, których zawartość stwarza zagrożenie wybuchowe lub pożarowe. Obejmie również urzędy administracji państwowej, komendy policji, straży pożarnej czy straży granicznej, sądy, prokuratury, areszty i więzienia, a także placówki NBP i BGK oraz Mennicy Państwowej."

najbardziej mi się podoba punkt o magazynach których zawartość stwarza zagrożenie pożarowe.

rodzina i znajomi handlują dywanami. mają magazyn. nie znam się na tym za bardzo ale zgaduję, że dywan nieźle się pali. czyli ich magazyn będzie teraz chroniony. i jakbym chciał zrobić mu zdjęcie to będzie mi groziła “wysoka grzywna".

o co dopiero pomyśleć o hurtowniach książek. fajerwerków. uff.

no nic. pozostaje się cieszyć, że wszystkie inne problemy zostały już zażegnane. nie ma biedy, rolinicy są szczęśliwi, korupcja wyeliminowana, drogi zrobione i ogólnie cud miód i orzeszki. i tylko ja mam problemy ze wzrokiem bo tego nie widzę.

concorde był za drogi i nieekonomiczny. pora spróbować znowu

concorde. jedyny (nie liczę rosyjskiego tupoleva tu-144, bo to 1. kopia concorde'a, 2. i tak nie działał) naddźwiękowy samolot pasażerski.

wycofany niedawno po katastrofie w anglii, z tym, że był to raczej wygodny powód – concorde'y były nieekonomiczne, bilety drogie a standard taki sobie (co nie zmienia faktu, że wszystkie bilety na ostatni lot concorde'em wykupiono mocno przed terminem).
czy na tym zakończy się era pasażerskich, cywilnych lotów naddźwiękowych? najprawdopodobniej nie.

są przynajmniej 2 projekty zbudowania nowych, cywilnych samolotów naddźwiękowych. o jednym z nich wiadomo na razie jedynie, że ma nazwę kodową “Supersonic Business Jet" i będzie przewoził od 8 do 12 osób.

o drugim wiadomo więcej.

przedw wszystkim – będzie wyglądał tak:

dn9628-1_550.jpg

to nie jest zdjęcie ( a dokładniej nie tylko zdjęcie ) – na razie jest to grafika komputerowa bazująca na komputerowym modelu tego cudeńka.

co jeszcze wiadomo? wiadomo, że zaprojektował (a właściwie projektuje, bo jeszcze nie zakończono prac projektowych) lockheed-martin.

że nazywa się “Quiet Supersonic Transport", gdzie “quiet" tyczy się tego, że będzie o 20 decybeli cichszy od concorde'a dzięki odpowiedniej budowie, itd, itp.

wiadomo też, że będzie mógł latać z prędkością około 1.6 macha (2000 km/h tłumacząc na ludzki).

i że będzie małym samolotem biznesowym – 12 miejscowym dokładniej.

to ostatnie wraz z osiągami sugeruje, że cena będzie “sympatyczna" i raczej nie da sie kupić biletu na przelot tym cudeńkiem.

prace postępują. konsorcjum powołane do tego by zbudować i sprzedać samoloty wystapiło do odpowiednich urzędów o zgody i certyfikowanie samolotu do lotów z prędkościami ponaddźwiękowymi. przewiduje się, że są szanse na to, że pierwszy komercyjny lot samolot odbędzie w 2013 roku.

nie wiem jak wy, ale ja zaczynam napełniać skarbonkę.

co kieruje takimi ludźmi?

abs news ostatnio podało takiego newsa:

robert charles browne (jak się rewelacje potwierdzą, to znajomość nazwiska w pewnych kręgach może być niemalże obowiązkowa), odsiadujący wyrok za zabójstwo (dożywocie za morderstwo w 1987 roku, złapani w 1995) powiedział, że ofiara za którą siedzi to ogólnie drobiazg, bo od 1970 do złapania zabił łącznie 48 osób.

jak na razie udało sie potwierdzić okoliczności śmierci 9 ofiar, co spowodowało komentarz, ze strony władz, że o ile browne może przesadzać i ubarwiać, ale jest spore prawdopodobieństwo, że to jest prawda. czynności śledcze trwają.

przeczytałem newsa z dosyć mieszanymi uczuciami. kilka luźnych komentarzy:

czemu? i to nawet 2 czemu:

  1. czemu ktoś zostaje seryjnym mordercą? jakie czynniki na to wpływają? mama go w dzieciństwie za mało lub za duzo przytulała (to tak a propos con-air z nickolasem cage'em)?
  2. czemu facet siedzący na dożywociu w więzieniu nagle decyduje się mówić o większej ilości swoich zbrodni (lub wymyślać je)? podnieść swój prestiż w więzieniu? facet ma 53 lata i “wypadki z mydłem" już mu się raczej nie zdarzają. nawrócił się? chce komuś zaimponować?

to imponowanie nie jest takie głupie. jeśli okaże się to prawdą, zaraz doczekamy się odcinka o nim na discovery, ruszy pewnie film bazujący na jego historii – amerykanie (a tak naprawdę cały świat) fascynują się takimi historiami i filmów na ich temat nie brakuje – jest top-ten, a to przecież nie wszystkie filmy, nie ma na nim chociażby fenomenalnego obywatela x ze stephenem reą, donaldem sutherlandem i maxem von sydowem, czy monster ze śliczną inaczej charlize theron.

co do imponowania – jeśli liczba 48 uzyska potwierdzenie to browne wskoczy na 15 miejsce na liście największych (pod względem ilości ofiar) seryjnych moderców świata. lub na 14 jeśli z listy usuniemy kevorkiana, którego umieszczenie na liście jest dosyć kontrowersyjnym pomysłem.

czy w ten sposób chce (browne) odejść w “chwale"? być konsultantem w filmie o sobie? napisać i sprzedać bestseller? zarobić miliony których nie będzie miał jak wydać?

ale z drugiej strony – czy ktoś wie na pewno co siedzi w głowie człowieka który zabił od kilku (potwierdzone 10) do kilkudziesięciu ofiar?

mistrzostwa świata w pokerze. rozbieranym.

irlandzki bukmacher paddy power zarzucił w formie żartu primaaprilisowego, że zorganizuje mistrzostwa świata w pokerze rozbieranym.

ha-ha.

okazało się, że pomysł zainteresował sporo osób. na tyle dużo, że facet zdecydował się faktycznie je zorganizować!

trochę zachodu i oto: 19 sierpnia, w cafe royal w londynie odbędą sie pierwsze na świecie mistrostwa.

co można wygrać? przede wszystkim kupę dobrej zabawy. dodatkowo: udział w przedsięwzięciu które zostanie wpisane do księgi rekordów guinessa. no a zwycięzca dostanie dodatkowo 10000 funtów i darmowe wejście na inne mistrzostwa organizowane przez paddy'ego – irish open poker 2007. z pulą nagród ponad 1 milion funtów.

jest o co powalczyć. a nawet jak nie o to – to o samą zabawę 🙂

jak dobrze pisać update’y do bazy danych?

teoretycznie napisanie polecenia update jest bardzo proste:

update tabelka set pole = ‘xxx' where id = yy;

tylko czy to na pewno słuszny sposób?

otóż nie.

problem polega na tym, że w postgresie działa cos co nazywa się mvcc. nie wnikając w szczegóły (jak kogoś z was bardzo interesują, odsyłam do dokumentacji postgresa) – powoduje to, że każdy update to tak naprawdę delete + insert.

efekty – tabelka rośnie. rosną też indeksy na polach które nie zostały zaktualizowane!

zostałem przez ten efekt dosyć boleśnie “ugryziony" gdy okazało się, że dosyć spora tabelka (1.5 miliona rekordów, 5 gigabajtów wielkości) rośnie mi jak na drożdżach, bo bardzo często robię w niej update jednego pola. a że na tabelce jest 15 indeksów to efekt się multiplikował.

rozwiązanie? wykonywanie update'a tylko gdy naprawdę jest konieczny:

update tabelka set pole = ‘xxx' where id = yy and pole <> ‘xxx';

sprawa się nieco komplikuje gdy pole może być null'em, ale na szczęście jest (mało znany) operator “is distinct from", i możemy zapisać zamiast:

update tabelka set pole = ‘xxx' where id = yy and (pole is null or pole <> ‘xxx');

to:

update tabelka set pole = ‘xxx' where id = yy and pole is distinct from ‘xxx';

co istotne – jeśli już modyfikujemy choć jedno pole – to modyfikacje kolejnych nie mają tego złego efektu.

więc nie musimy robić:

update tabelka set pole = ‘xxx' where id = yy and pole is distinct from ‘xxx';

update tabelka set pole_2 = ‘x2' where id = yy and pole_2 is distinct from ‘x2';

itd.

wystarczy (i zdecydowanie lepiej zadziała):

update tabelka set pole = ‘xxx', pole_2 = ‘x2' where id = yy and (pole is distinct from ‘xxx' or pole_2 is distinct from ‘x2');
dodam jeszcze, że o ile vacuum świetnie sobie radzi z odzyskiwaniem miejsca po update'ach w plikach tabel, o tyle z miejscem w plikach indeksów nie jest tak słodko 🙁
inną opcją (dodatkowo pomagającą) jest:

jesli macie dużą tabelkę (kilkanaście kolumn, sporo danych) i tylko jedno/kilka pól jest często aktualizowanych, przy czym reszta danych (w szczególności indeksy) nie jest dotykana – warto się zastanowić by te kolumny wydzielić do oddzielnej tablicy i połączyć relacją 1-do-1.

od razu ostrzegam: to nie zawsze da dobry rezultat. ale może warto spojrzeć. zmniejszone pliki to zmniejszone zapotrzebowanie na pamięć do cache'a dyskowego. a więc cały system zaczyna szybciej działać.

sprzedaje samochod

sprzedaje swojego misia 🙂

jakby ktoś z was reflektował:

  • mitsubishi space star 1.3
  • kupiony 2001, w salonie, w polsce
  • jestem pierwszym właścicielem
  • serwisowany w aso (najpierw auto-gt na bielanach, ostatnio w mitcarze na spornej (warszawa))
  • przejechane niecałe 100000km
  • abs
  • 2 poduszki
  • klimatyzacja
  • radio z odtwarzaczem kaset
  • w pełni sprawny
  • ani ja ani nikt inny nie palił w środku

samochód nie ma jednego kołpaka (lewy przód) i ma lekko wgięty zderzak i klapę (słupek przy trawniku  – nie śmiecić, czy coś takiego). wgięcie jest minimalne, w niczym nie przeszkadza (można bezproblemowo zamykać i otwierać klapę bagażnika), lakier nawet nie odszedł od blachy. jest też ryska przy przednim lewym reflektorze oraz ktoś próbował otworzyć zamek w drzwiach.
jeśli ktoś z was jest chętny – proszę o kontakt. jakos się umówimy na oględziny/próbną jazdę.

cena – hmm .. na allegro chcą 26 tys lub 31.5 tys. jestem bardziej realistą – za 24 tys. oddam w dobre ręce 🙂

aha. – częste pytanie: czemu sprzedaję. bo pora nadeszła. serio. jeżdżę nim 5 lat, i pora wymienić. no i chciałbym coś większego.

mis3d.JPGmis1.JPGmis4d.JPGmis2d.JPGmis5d.JPGmis6d.JPGmis7d.JPGmis8d.JPG

youtube dla dorosłych

serwis youtube zna praktycznie każdy. każdy może uploadować film, otagować względem tego co zawiera i dać innym by oglądali i oceniali.

jednym z minusów (dla niektórych) jest fakt iż youtube ma dość restrykcyjną politykę nt. tego co może a co nie może być uploadowane.

na przykład nie można wgrywać pornografii. aby pomóc ludziom którzy kręcą swe prywatne życie na video i chcieliby się tym podzielić – powstał serwis pornotube.

funkcjonalnie jest praktycznie identyczny. każdy może wgrywać, odtwarzania flashem, tagi, oceny, linki, elementy social networking. tylko content trochę inny 🙂

najdroższe domy na świecie

mój poniekąd ulubiony serwis podał kolejne interesujące zestawienie – listę najdroższych na świecie domów.

całej listy nie będę cytował – nie ma sensu, chętni mogą poczytać. powiem jedynie iż najdroższy dom jest w anglii i jest wart 139 milionów dolarów (75 milionów funtów). ma 103 pokoje, 5 basenów, kino na 50 osób, korty do squasha i tenisa, tor do bowlingu (kręgle? jak to się po polsku nazywa) i podgrzewaną, marmurową, drogę dojazdową.

perl hacks – hit czy kit?

w firmie mamy kupioną książkę “perl hacks" napisaną przez chromatic‘a z damianem conwayem i curtisem poe.

książkę czytał znajomy, przeczytał. trafiła do mnie.

otworzyłem na chybił – trafił. i znalazłem taki o to kawałek:

zaczęło się od tego, że funkcja open() zwraca kod błędu. a lepiej by było by zwracała exceptiona.

rozwiązanie z książki:

use File::Exception;
sub open_file {
my ($name, $mode) = @_;
open my $fh, $mode, $name or File::Exception->throw( "file" => $name, "mode" => $mode, "error" => "$!" );
return $fh;
}

no i potem wszędzie w kodzie zamieniamy open(…) na open_file(…).

eh. i to ma być efektywne programowanie?

jakie widzę z tym problemy?

  1. konieczność doinstalowania nowego modułu. nie jest to problem per se, ale niepotrzebna czynność
  2. konieczność modyfikowania kodu – zamiana wszędzie open na open_file
  3. jeśli gdziekolwiek robimy własną obsługę błędu open() to nie możemy zamienić na open_file
  4. jeśli gdziekolwiek używamy open() do np. czytania z pipe'a, to też nie możemy zamienić

ogólnie – przerobienie istniejącego kodu w/g tej regułki uważam, za całkowitą porażkę.

a jak zrobić to sensownie? użyć standardowego w perlu modułu fatal:

use Fatal qw(open);

i to wszystko. nie trzeba przerabiać kodu – wystarczy jedna deklaracja. a jeśli gdzieś mamy własny handling? wystarczy zmodyfikować use'a:

use Fatal qw(:void open);

no i dodatkowo – fatal potrafi obsłużyć nie tylko open. zasadniczo można przez niego zrobić exceptiony do praktycznie każdej funkcji/builtin'a.

i w ten oto sposób zraziłem się do książki poprzez przeczytanie losowego kawałka. zobaczymy co będzie dalej.

monopoly porzuca gotówkę

monopoly – jedna z najpopularniejszych gier planszowych, na której wychowały się już pokolenia – przechodzi olbrzymią zmianę.

w najnowszym wydaniu nie będzie już banknotów!

zamiast nich będą karty kredytowe i czytnik do nich. producenci – firma parket brothers, podpisali umowę z visą, dotyczącą zaprojektowania kart do nowej gry. karty oczywiście nie będą działać w normalnych punktach, ale w grze tak.

do gry będzie dołączony czytnik/kalkulator umożliwiający korzystanie z kart.

zmiana jest interesująca. przyczyny oczywiste – coraz mniej ludzi używa gotówki. ale czy to się przyjmie? i jak szybko narodowe wydania podchwycą ten pomysł?

pojawia się drobny problem – standardowa wersja gry kosztuje około 13 funtów. nowa, bez banknotów, ale z kartami i czytnikiem, będzie blisko dwukrotnie droższa!