jedzenie tłuszczu nielegalne?

władze nowego jorku zdelegalizowały używanie tzw. “trans fats" (tłuszczy jakichś tam, ogólnie – zwierzęce, niezdrowe).

z jednej strony ok – tłuszcze te (może ktoś mi podpowie jak to się tłumaczy na polski) są niezdrowe, prowadzą do kupy chorób. ale, kurza wasza melodia, to moje prawo żreć co chcę.

wygląda na to, że władza tamże uznała, że mieszkańcy są tak głupi, że nie potrafią podjąć świadomej decyzji o tym co zjedzą (nota bene pewnie mają rację). problemem jest to, że takie ubezwłasnowolnienie ma kupę wad:

  • powoduje, że od groma ludzi nagle stanie się przestępcami – wystarczy przygotowanie foie gras.
  • zwalnia ludzi od myślenia
  • wchodzi z butami z prywatne życie prywatnych ludzi
  • jest prawem martwym – nikt normalny nie będzie się tym przejmował – tak jak np. limitami prędkości. tzn. do czasu aż pojawią się bojówki i będzie wydany pierwszy wyrok – śmierć przez powieszenie za podanie klientowi kotleta smażonego na smalcu.

ci co mnie znają, wiedzą, że ogólnie stany mi się podobają. wiem, że mają swoje problemy, ale po prostu podoba mi się ten kraj (niestety nie byłem). i wiem, że jest przynajmniej kilka osób które potraktują tę informację jako wyraz starczej demencji. zdarza się. ale nawet ja – lubiący amerykę – nie potrafię zrozumieć czym się kierowały elity polityczne uchwalając taką bzdurę.

nowości w postgresie 8.2 – … jednostki w postgresql.conf

dziś malutki wpis 🙂

w 8.2 w pliku konfiguracyjnym przy parametrach przy których jest pojęcie jednostki pojawiły się kody tych jednostek. np. shared_buffers, kiedyś podawane jako liczba bloków 8 kilobajtowych, teraz jest wyrażane po prostu jako 20000kB (na przykład).

znakomicie ułatwia to czytanie plików konfiguracyjnych – już nie trzeba się zastanawiać, czy dana wartość jest w bajtach, kilobajtach, blokach czy czymkolwiek innym.

lista parametrów objętych tą zmianą:

  • authentication_timeout
  • shared_buffers
  • temp_buffers
  • work_mem
  • maintenance_work_mem
  • max_stack_depth
  • bgwriter_delay
  • checkpoint_timeout
  • checkpoint_warning
  • effective_cache_size
  • log_rotation_age
  • log_rotation_size
  • autovacuum_naptime
  • deadlock_timeout

alternatywna ścieżka kariery

ostatnio po sieci przetoczyła się lawina komentarzy do tego co opisali pracownicy firmy mcafee.

cóż tak szokującego opisali? otóż, zgodnie z prezentowaną przez nich tezą, mafie wszelkiego rodzaju zatrudniają młody hackerów w celach zarabiania na cyberprzestępczości.

podobno stosowane są metody rodem z kgb:

  • przekupywanie
  • szantaż
  • podstawianie “wabia"

i inne.

w/g autorów organizacje przestępcze werbują nawet 14 latków. zlecają im początkowo proste rzeczy – kontrola nad botnetem, rozesłanie spamu. potem zadania robią się coraz trudniejsze. i zyskowniejsze.

część kandydatów jest wybierana spośród technicznie zaawansowanych uczniós kierunków nie-informatycznych – w celu wyszkolenia i osadzenia ich w jakichś korporacjach jako “sleepers" (śpiących? jak to przetłumaczyć) – np. w celu późniejszego ataku typu szpiegostwo przemysłowe.

młodych pcha w objęcia mafii kilka rzeczy – po pierwsze – kasa. za proste zadania dostaje się relatywnie spore pieniądze, ryzyko jest niewielkie więc łatwo się wciągnąć i potem robić trudniejsze i bardziej ryzykowne rzeczy. po drugie – w sukurs mafiozom przychodzi wrodzony w nastolatkach bunt. przeciwko rodzicom, przepisom, szkole, wszystkim.

wstąpienie do gangu i ddosowanie serwisów nowoczesnym odpowiednikiem zapijania się starszych pokoleń? no cóż – przynajmniej są z tego pieniądze 🙂

jak się obronić przez 100000 ataków miesięcznie?

w zeszłym roku microsoft odnotował średnio 100 tysięcy ataków na swoją sieć i serwisy miesięcznie. to oznacza, że co 30 sekund ktoś próbuje się włamać lub zhackować ich sieć.

to całkiem sporo.

jednocześnie – firma z redmond mocno promuje wśród pracowników korzystanie z ras'a – w dużym skrócie – to taki vpn.

mając taką ilość ataków, taką ilość ludzi którzy nie lubią firmy – jak się zabezpieczyć? na ten temat napisał ostatnio martin heller w internetowym wydaniu computer worlda.

warto ten artykuł przeczytać choćby po to by podchwycić pewne pomysły/idee.

świat się kończy – apple sprzedaje tanie komputery

tanie, to może za dużo powiedziane. ale “tańsze"  – już nie.

ed burnette z zdnet'u porównał ceny laptopów: apple i dell. najpierw takie mocno “wypasione" a potem wersje tańsze, prostsze.

starał się dobrać maksymalnie zbliżone konfiguracje – oczywiście idealnie takich samych się nie da.

wynik?

w segmencie high-end apple za $2699 sprzedaje to co dell za $3222. różnica w cenie: $523. za ten pieniądze dell dorzuca lepszą rozdzielczość, wifi obsługujące 802.11a i gwarancję w domu.

802.11a mnie nie obchodzi. gwarancja w domu. no cóż. niby miłe, ale akurat mam pewnie doświadczenia z serwisem della, więc powiem tylko: to nie jest tak piękne jak na to wygląda. wyższa rozdzielczość natomiast to zdecydowany plus.

natomiast apple mimo niższej ceny też dał radę wstawić coś czego konkurencja nie dała: kamerę do wideokonferencji, podświetloną klawiaturę, dłuższy support (90 zamiast 30 dni) oraz fakt iż ich laptop jest mniejszy i lżejszy.

kamera – fajna. przyda się może jak będę miał więcej znajomych z kamerami. podświetlana klawiatura – mogę żyć bez tego – na klawisze i tak nie patrzę. support – obym nie potrzebował. ale fakt, że jest lżejszy mocno do mnie przemawia.

potem było porównanie lapów tańszych.

tym razem dell zaproponował rozwiązanie o niższej cenie: $1037, a apple o ciut ($187) wyższej: $1224.

i znowu są pewne rzeczy dodawane. w dellu dorzucili więcej portów usb (4 zamiast dwóch). sorry, ale jakoś mnie to nie wzrusza. korzystam z jednego – maksymalnie dwóch.

apple natomiast za te 187 dolarów dorzucił: kamerę, dłuższy support, oraz znowu – lap jest mniejszy i lżejszy.

i muszę przyznać, że oferta apple'a wygląda zdecydowanie lepiej. nie lubię tej firmy. uważam ich taktyki, zagrania i sposób postępowania z ludźmi za fatalny. maci ogólnie uważam za pomyłkę i dno. ale nie zmienia to faktu, że dają więcej w tej samej cenie, lub tyle samo za mniejszą cenę. czyli są lepszym wyborem. nawet jeśli docelowo będziemy na tym używać windowsa czy linuksa.

nowości w postgresie 8.2 – … nieblokujące tworzenie indeksów

ta poprawka mnie osobiście ratuje życie, ale mam świadomość, że tyczy się relatywnie niewielkiej ilości osób.

tworzenie indeksu (create index, create unique index) jest operacją blokującą.

w czasie tworzenia wszelkie operacje insert/update/delete na tabeli na której jest robiony indeks są wstrzymane.

zazwyczaj nie jest to problem – create index trwa np. kilka sekund. ale pojawia się problem co z większymi bazami, np. serwisami aukcyjnymi. tabele są spore, ruch jest non stop. jeśli np. zakładałbym indeks na tabeli “aukcje" w której jest kilkadziesiąt milionów rekordów, to tworzenie indeksu może spokojnie potrwać kilkanaście minut.

a w tym czasie wszystkie insert/update/delete by były wstrzymane. co oznacza, że jak ktoś będzie chciał dodać nową aukcję, to będzie czekał, czekał, a po 3 minutach przeglądarka go rozłączy i wyświetli komunikat o time-out'cie. cienko. rzekłbym nawet, że fatalnie.

czy nic nie da się zrobić? wcześniej – nie dawało sie. ale teraz jest lekarstwo:

# CREATE INDEX CONCURRENTLY ble ON tabelka (pole);
# CREATE UNIQUE INDEX CONCURRENTLY ble_u ON tabelka (pole, inne_pole);

indeksy tworzone z klauzulą CONCURRENTLY nie blokują zapisów! czyli wszystko działa tip-top.

haczyki? zawsze są. najważniejszy jest taki, że tworzenie indeksów w ten sposób jest wolniejsze. ale to za bardzo nie przeszkadza.

z innych rzeczy:

  • polecenie reindex nie porafi użyć “concurrently"
  • jeśli create index concurrently się wywali – w systemie zostanie tworzony indeks zawieszony w dziwnym stanie – niby jest, ale system z niego nie korzysta – przed ponowieniem próby założenia tego indeksu trzeba go skasować.
  • jeśli tworzymy indeks typu UNIQUE, to warunki unikalności są sprawdzane w trakcie tworzenia indeksu (dokładniej to w czasie drugiej fazy tworzenia indeksu). dzieje się tak mimo faktu iż nieistniejący jeszcze indeks nie może być użyty do wyszukiwania. jeśli w trakcie tworzenia indeksu polecenie create unique indeks wykryje powtarzające sie wartości – wywali się – i tu trzeba będzie skasować popsuty indeks (vide punkt wyżej)
  • można robić nieblokująco zarówno indeksy zwykłe jak i wielopolowe, funkcyjne czy częściowe.
  • można robić jednocześnie wiele indeksów w sposób nieblokujący, z tym, że nie więcej niż jeden na tabelę.
  • zwykły create index może być użyty w transakcji, ale create index concurrently – już nie.
  • tak samo jak przy zwykłych indeksach, tak samo przy tworzeniu nieblokującym nie są dopuszczone zmiany definicji tabeli na której tworzymy indeks

jak widać jest to funkcjonalność lekko (w/g mnie) jeszcze niewygładzona, ale zakładam, że rzeczy typu – pozostający “cień indeksu" po błędnym indeksowaniu – zostaną wyeliminowane dosyć szybko.

a poza tym – fenomenalna funkcjonalność. od zawsze mi jej brakowało.

czy pisuar może być ładny?

zapewne większości moich czytelników zdarzyło się kiedyś korzystać z pisuaru. lotniska, dworce, restauracje, centra handlowe.

czy zastanowiliście się kiedyś czy da się zrobić pisuar ładny? pewnie nie. nie tylko wy – większość ludzi o tym nie myśli. ale kilka osób tak. dzięki pomysłom tych ludzi mamy prawdziwe dzieła sztuki – nawet jeśli jedyną sztuką jaką zobaczą będzie trafienie do środka po kilku (nastu) piwach.

“capture the flag” – w rzeczywistości.

kanadyjczycy zorganizowali sobie sesję “capture the flag" w toronto. w zabawie wzięło udział 1200 osób (z czego kilka co widać na filmiku nie za bardzo wiedziało o co chodzi:)

dla tych co nie wiedzą to co jest capture the flag.

dwa zespoły ukrywają na swoim terenie flagi. cel jest prosty – znaleźć flagę przeciwnika, przechwycić i dostarczyć do swojej bazy.

do tego dochodzą dodatkowe reguły, ale one są tylko po to by nie było za łatwo, no i aby nie dochodziło do scysji.

ctf pochodzi z gier komputerowych – dokładniej z jednego z dodatków do quake'a. o tym, że ktoś w to gra w świecie poza-komputerowym nie słyszałem, ale skala zabawy w kanadzie sugeruje, że ktoś gdzieś kiedyś pewnie grał w mniejszej grupie 🙂 ogólnie – kawałek fajnej zabawy.