zagadka o bazach

dzisiejsza zagadka to praktycznie crosspost z grupy newsowej pl.comp.bazy-danych, ale nie pamiętam dokładnie kto to wtedy pisał – jak się odezwie to oczywiście dam linka.

pytanie jest relatywnie proste.

mamy dwie tabele:

CREATE TABLE tab_a (
pole_a TEXT,
pole_b TEXT
);
 CREATE TABLE tab_b (
     pole_c TEXT
);

wstawiamy do nich testowe dane:

INSERT INTO tab_a (pole_a, pole_b) VALUES ('a', '1');
INSERT INTO tab_a (pole_a, pole_b) VALUES ('b', '2');
INSERT INTO tab_a (pole_a, pole_b) VALUES ('c', '3');
INSERT INTO tab_a (pole_a, pole_b) VALUES ('d', '4');
 
INSERT INTO tab_b (pole_c) VALUES ('e');
INSERT INTO tab_b (pole_c) VALUES ('f');

na razie nic trudnego. teraz – zaraz podam zapytanie o które chodzi, proszę – nie wykonuj tego u siebie. postaraj się domyśleć co to zapytanie zwróci:

SELECT
*
FROM
tab_a
WHERE
pole_a IN ( SELECT pole_a FROM tab_b );

i teraz – co to zapytanie zwróci:

  • nic, bo się wywali z błędem. jakim?
  • nic, zwróci zero rekordów, ale błędu nie będzie.
  • zwróci jakieś rekordy. jakie? ile?

prawda, że proste? na pewno?

korzystanie z różnych postgresów z konsoli

w swojej pracy często muszę korzystać ze zdalnych baz danych.

to oznacza, że mam pewien “problem".

muszę albo:

  1. zapamiętać wszystkie opcje do połączenia do każdej bazy
  2. porobić aliasy/jednolinijkowce do łączenia do baz
  3. przerzucić się z ulubionego psql'a do czegoś typu pgadmin
  4. napisać coś własnego

opcja 1 – odpada. z paru powodów. głównym jest lenistwo. dodatkowo rozwala mnie fakt iż mam na dysku postgresa 8.2 (z cvs'u) i to jego psql jest domyślny. a łączę się do baz 8.1, 8.0 czy 7.4. a psql z wersją postgresa powinien być zgodny. więc musiałbym jeszcze pamiętać który psql do której bazy. tragedia.

opcja 2 – aliasy – no, może i by się dało, ale ani to proste ani miłe, ani przesadnie skalowalne.

opcja 3 – odpada. graficzne toole do baz danych mają jedną wspólną cechę: wkurzają mnie.

pozostała więc opcja 4.

pomyślałem, pokombinowałem i napisałem skrypcik “sql“. a jak napisałem to i udostępnię – może się jeszcze komuś nada.

skrypcik jest w perlu. wymaga kilku niestandardowych bibliotek:

  • Readonly
  • IO::Prompt
  • IO::All

zakłada on, że w katalogu domowym w podkatalogu .sql-profiles będą pliki *.conf o takiej budowie:

user=cos
database=cosmix
host=db123.internal
port=5811
psql=/usr/bin/psql

opcje te służą do uruchomienia psql'a w odpowiedni sposób. no i odpowiedniego psql'a (jak nie podam psql=…, to sql uruchomi domyślnego psql'a).

jak to działa.

odpalam: sql

i dostaję menu z listą konfiguracji. wybieram jedną i sql wykonuje “exec" na odpowiedniego psql'a z odpowiednimi parametrami.

co więcej. załóżmy, że mam 2 konfigi: cos.conf i ble.conf. wystarczy, że napiszę: sql c i sql automatycznie załaduje cos.conf (technicznie – sprawdza czy jest tylko 1 takie plik konfiguracyjny którego nazwa zaczyna się od parametru jaki podano).

inne parametry są przekazywane do psql'a.

więc mogę np.:

SQL b -c "select version()"

co połączy mnie z bazą zapisaną w ble.conf i wykona polecenie (switch -c, oraz “select version()" zostaną przekazane do psql'a).

oczywiście do tego używam pliku .pgpass, ale to raczej oczywiste 🙂

tak więc – jeśli aby się połączyć z bazą musicie podac jakies parametry – może użyjcie sql'a (programu) – da się parametry skrócić nawet do jednego znaku 🙂

samotność w sieci

to już nie news, ale obiecałem sobie, że skomentuję przy okazji robiąc “plug" do fajnego opowiadania.

tak więc – na fali tego, że samotność w sieci ma być w kinach, kupiłem i przeczytałem książkę (wersja zwana “tryptyk", z dodatkowym rozdziałem i listami od czytelników).

po pierwsze – o ile rozumiem dodanie dodatkowego rozdziału, o tyle listy od czytelników są dla mnie zupełną zagadką. są to w większości typowe maile – po 2-3 zdania, ostre poglądy, zero umotywowania. ot – takie wykrzyczane hasła poparcia lub zbluzgania wiśniewskiego.

co do samej książki – wszyscy wiedzą, że jest smutna. ale to co przeczytałem była wręcz kuriozalne. czytając “sws" miałem wrażenie, że czytam tekst oddany na konkurs: “największa ilość wzruszających historii w przeliczeniu na czas trwania opowieści".

koszmar. co kilka stron kolejny powód do płaczu i zastanawiania się nad okrucieństwem świata. może i nawet sprawnie napisane, ale w pewnym momencie zaczęło to być zabawne. “czy na następnej stronie główny bohater opowie historyjkę jak to mu kiedyś ulubiona żaba spadła z pudełka pod rower? (takie luźne nawiązanie do zabójczej broni 🙂 a może teraz dowiemy się, że bohaterka prawie uratowała kiedyś kotka nad którym znęcali się jacyś zwyrodnialcy – i oczywiście zaserwuje dokładny opis tego co mu zrobili?

dużo bardziej mnie wzruszyły teksty gdzie nie było takiego epatowania nieszczęściem. chociażby “love story" segala (ericha, nie stevena) czy mój absolutny faworyt – “cyberjoly drim" antoniny liedtke (to drugie można przeczytać online) – oba są dalekie od bycia “przyjemnymi, szczęśliwymi", a jednocześnie dzięki temu, że nie dowalają na każdej stronie jakąś smutną historyjką – są zdecydowanie realniejsze i lepsze w odbiorze.

co jeszcze mogę powiedzieć – książkę czytało się z przyjemnością. nie umęczyła (poza tymi “momentami"). ewidentnie autor umie pisać, choć zdecydowanie nie jestem w “targecie".

jeśli miałbym ją komuś polecić to facetom którzy chcą okazać swoją kobiecą stronę (łezka nad książką i już ma się opinię wrażliwego, mimo, że łezka tyczyła wydanych pieniędzy a nie czytanej historii). no i oczywiście kobietom które są spragnione czytania o wielkiej, wspaniałej, czystej miłości. i do tego nie lubią harlequinów – bo tam się wszystko tak cukierkowo dobrze kończy.

30% straty wartości, wielkie zwolnienia za pasem.

to jest wykres wartości akcji pewnej firmy:

graph.png
jak widać – sporo w dół. ostatnio “senior vice president" rzeczonej firmy wysłał memo do managerów firmy informując o jego poglądach. w tym o tym, że w/g niego firma powinna zwolnić do 20% ze swojej ekipy prawie 10000 pracowników na świecie.

rzeczony senior vice president stwierdził, że firma nie ma pomysłu na rozwój starając sie być wszystkim na raz, kupując bez opamiętania inne firmy, mając jednocześnie sporo problemów wewnętrznych – przerosty biurokratyczne, pokrywające się kompetencje, brak jasnej struktury i podziału odpowiedzialności.

jaka to firma ma takie problemy? yahoo. kiedyś cudowne dziecko. firma która obronną ręką wyszła z pierwszej “bańki internetowej". a teraz – problemy. oczywiście – firma jest olbrzymia. z tej wysokości spada się długo, więc mają trochę czasu na poprawę sytuacji. ale czy na pewno zdążą? jako fana google'a, los yahoo jest mi praktycznie obojętny. ale jednak smutno patrzeć na problemy legendy.

300giga za 100$. na cd!

hitachi i maxell ogłosiły, że w ciągu tygodnia zorganizują pokaz publiczny nowych dysków. i nie chodzi o blu raya czy hd-dvd!. oba te formaty dają pojemności typu 25-50 giga (z tym, że pokazano nośnik 200 giga blu raya, ale nie jest i jeszcze jakiś czas nie będzie w sprzedaży).

nowy format nie ma chtytliwej nazwy kodowej. wiadomo, że jest to format holograficzny i, że pierwsza generacja dysków ma mieć pojemność 300 giga. i kosztować około 100$ za dysk.

napęd jest drogi – $15000 (15 tysięcy), ale – w końcu, ja za swoją pierwsza nagrywarkę cd zapłaciłem ponad 2000 pln. a teraz można kupić w okolicach 100!.

dane techniczne są fajne – transfer – 20 megabajtów na sekundę. zapis jest taki jak na cd więc dane są odporne na pola magnetyczne i inne takie “atrakcje".

w 2008 ma wyjśc następna generacja – 800 giga pojemności, 80megabajtów na sekundę transferu.

docelowo – dyski mają uzyskać pojemność 1.6 terabajta w 2010 roku!. sweet.

oczywistym celem są na razie duże firmy i zastosowania “do backupów". ale jeśli format sie przyjmie, ceny spadną, może się okazać, że niedługo paczka płytek na biurku będzie miała nie 40 giga, ale 20 tera 🙂

hp największą firmą informatyczną na świecie!

hp ogłosił ostatnio wyniki finansowe za 4 kwartał roku rozliczeniowego. i są one fenomenalne. wszystkie znaki na niebie i ziemi wskazują, że po ogłoszeniu przez ibm'a wyników za jego 4 kwartał (na początku 2007 roku) – hp oficjalnie stanie się największą firmą it.

co ciekawe – hp zawsze zarabiał głównie na tuszach/tonerach. reszta działów firmy była albo mało opłacalna, albo wręcz była subsydiowana przez “cartridge".a teraz – cud na cudy – wszystkie działy przyniosły konkretne zyski.

szczególnie jest interesujący przykład działu “pc". ibm swój sprzedał. dell przewiduje wzrost obrotu w roku rozliczeniowym o 4.3%. a hp? wzrost o 10% w tym 26% wzrost sprzedaży laptopów!

czyżby hp miał być nowym big-blue? jest big, logo też mają niebieskie … 🙂

szybkie “dyski”

zawodowo zajmuję się bazami danych. głównie postgresem. jedną z podstawowych prawd jest to, że dyski są ważniejsze od ramu, a ram od procesora (oczywiście pomijam ekstrema typu serwer bazodanowy z macierzami dysków za kilkaset tysięcy dolarów i 1 giga ramu).

dyski są zawsze za wolne. nie pomagają (za bardzo) macierze, techniki rozrzucania danych itd. dostęp jest zawsze za wolny.

pewnym rozwiązaniem mogłyby być bazy w pamięci, ale ram jest drogi.

firma texas memory systems zaprezentowała publicznie rozwiązanie. (publicznie, bo podobno ich sprzęt jest już używany jako storage do systemu “echelon"). są to pamięci “solid state" (coś jakby flash). podłączane via infiniband (natywny lub via firewire).

co to daje? dużo. czas dostępu – 15 mikrosekund. 250 razy szybciej od dysków twardych. do 50000 operacji (random read) na sekundę (na jednym kontrolerze!). dobry dysk twardy robi 250-300 losowych odczytów w ciągu tej samej sekundy. odczyt ciągły do 800 megabajtów na sekundę.
sprzęt ma wydajność zbliżoną do wydajności pamięci. i niestety nie wiadomo ile kosztuje. choć może to i lepiej. na pewno są to duże kwoty. a po co się denerwować? wystarczy sobie pomyśleć: to więcej niż mam w budżecie na cały sprzęt na kilka lat. i od razu lepiej. choć żal człowieka bierze, że inni takie cuda mają, używają i cię cieszą.

blada niebieska kropka

16 lat temu, w lutym 1990 roku nasa zleciła poprzez łącze radiowe by sonda voyager 1 odwróciła się obiektywami w stronę ziemi, zrobiła kilka zdjęć i przesłała je na ziemię.

sonda zrobiła. łącznie powstało 60 zdjęć. na zdjęciach widać ziemię jako kiepsko widoczną, bladą, niebieskawą kropeczkę. była w odległości ponad 4 miliardów mil od “aparatu fotograficznego". zdjęcia te były przełomowe. po raz pierwszy zobaczyliśmy na własne oczy jak mała jest ziemia. jak mali jesteśmy wobec ogromu wszechświata.

tamte zdjęcia były interesujące, lecz technicznie kiepskie. ziarniste, mało wyraźne. ostatnio jednakże dostaliśmy nowsze zdjęcia. robione zdecydowanie lepszym sprzętem podróżującym sondą cassini.

nasa to zdjęcie udostępniła. obejrzałem u muszę przyznać, że powodują one, że wiele spraw zaczyna wydawać się inne. ale może to tylko ja…

aha. jak nie wiesz gdzie jest ziemia. ziemia to ta mała kropka po lewej nad jasnymi dyskami. maleństwo. a na niej miliardy ludzi, zbrodniarze, geniusze, poeci i barbarzyńcy.

tapeta na dziś

skoro wróciłem to otworzę od razu nowy dział.

postaram się codziennie dorzucać coś fajnego do użytku. tapetę, zestaw ikon, skina czy cokolwiek (najprościej będzie o tapetę).

dziś zaczynamy od cieplutkiej tapety na chłodne dni. tapeta pochodzi z serwisu kde-look.org.

fire.jpg