czym zrazić użytkowników

jeden z najinteligentniejszych blogopisarzy – guy kawasaki napisał interesujący artykuł w którym w kilku prostych punktach zliczył co możne zrobić firma typu web 2.0, aby zrazić swoich użytkowników do siebie.

lista zawiera uzasadnienia, ale tak pokrótce:

  1. wymuś natychmiastową rejestrację
  2. używaj długich urli
  3. używaj okien bez urli – tak aby nie dało sie zbookmarkować
  4. nie daj użytkownikom searcha
  5. nie dawaj prostej metody do dodawania bookarków na popularnych serwisach social bookmarking (jak del.icio.us)
  6. ogranicz metody kontaktu do emaila. lub lepiej: do formularza na www.
  7. nie dawaj feedów rss i list mailingowych
  8. wymagaj powtarzania wpisywania adresów email
  9. nie dopuszczaj “@" jako znaku w nazwie użytkownika
  10. sprawdzaj wielkość liter w nazwie użytkownika i haśle
  11. ograniczaj ilość osób mogących komentować. a komentarze moderuj.
  12. stosuj catpchę
  13. wysyłając maile nie załączaj podpisu z danymi kontaktowymi
  14. obsługuj tylko internet explorera

do każdego punktu są wyjaśnienia. i z każdym praktycznie się zgadzam. zwłaszcza punkt 6 mnie zawsze drażnił.

agregaty wielowartościowe

w 8.2 pojawiły się agregaty wielokolumnowe. muszę przyznać, że nie bawiły mnie za bardzo dopóki nie trafiłem na swój dawny post na google groupsach.

tyczy się on tego jak zapisać agregat łączący wiele tekstów w jeden – rozdzielony znakiem definiowanym w zapytaniu.

nie był to kod ładny.

saint zaproponował inne rozwiązanie, ale miało one w/g mnie dwie wady:

  1. konieczność obcinania końcowego separatora.
  2. zwraca pusty string a nie null w przypadku odpalenia na pustym zbiorze – a ja wolę null'a 🙂

oczywiście obie te rzeczy można prosto poprawić lekko modyfikując zapytanie, ale wolałbym by logika była w funkcjach.

no i wreszcie. dzięki 8.2 można zrobić coś takiego:

CREATE OR REPLACE FUNCTION agg_text_sum(in_base TEXT, new_text TEXT, separator TEXT) RETURNS TEXT AS $BODY$
DECLARE
BEGIN
IF in_base IS NULL THEN
RETURN new_text;
END IF;
RETURN in_base || separator || new_text;
END;
$BODY$ LANGUAGE 'plpgsql';
CREATE aggregate SUM(TEXT, TEXT) (
sfunc = agg_text_sum,
stype = TEXT
);

a potem można to stestować:

CREATE TABLE table_names AS SELECT oid::INT4 AS id, relname::TEXT AS TABLE_NAME FROM pg_class  WHERE relkind = 'r';
SELECT SUM(TABLE_NAME, ', ') FROM table_names;

i już. separator można dowolnie zmieniać

nie jest to może szczytowe osiągnięcie w inżynierii oprogramowania, ale może się przydać.

ekstremalna wycieczka

forbes opublikował kolejną ze swoich interesujących list.

tym razem jest to lista najniebezpieczniejszych miejsc na świecie. lista przygotowana została w oparciu o prace dwóch firm zajmujących się oceną ryzyka.

nie jest to może  lista dla wczesowiczów. ale zdaża się, że biznesmeni muszą podróżować w dziwne miejsca – bo np. akurat tam są złoża jakichś minerałów.

lista – poza oceną stopnia niebezpieczeństwa poszczególnych regionów, informuje także gdzie można wynająć odpowiednią ochronę i jaki poziom ochrony jest konieczny w danym miejscu.

przydatne. dla niektóry. dla innych po prostu ciekawe.

8.2.2 i inne

na ftp'ie pojawiły się nowe wersje postgresa – 8.2.2, 8.1.7, … – ogólnie – nowa wersja z każdej wersji x.y aktualnie utrzymywanej (czyli od 7.3 wzwyż).

co ciekawe – nie pojawiła się żadna informacja o tej wersji na webie ani na listach dyskusyjnych – zakładam, że oficjalna informacja wyjdzie za chwilę.

w paczce z postgresem, w danych nt. wydań jest data wydania: 2007-02-05. czyli za 3 dni.

a co jako zmiany?

poprawki związane z bezpieczeństwem – w tym bardzo ważna pozwalająca klientowi czytanie pamięci procesu postgresa – przez co można dostać dostęp do danych do których nie powinno być dostępu.

poza tym – jak zawsze przy nowych wersjach gdzie podbijana jest ostatnia cyfra – żadnych nowych funkcjonalności. trochę patchy przyspieszających, trochę poprawek łatających jakieś błędy.

ogólnie – warto instalować.

pdf standardem iso?

pewnie większość z was zetknęła się kiedyś z plikami w formacie pdf. miły format. darmowy czytnik (nawet sporo). możliwość darmowego tworzenia z openoffice'a.

teraz, adobe stwierdziło, że obecna wersja formatu – 1.7, jest już na tyle dojrzała, że można ją przedstawić pod obrady iso i aiim, w celu ustanowienia standardu w oparciu o tenże format.

standard ten byłby otwarty, w tym – otwarta byłaby pełna specyfikacja. specyfikacja która nigdy w całości otwarta nie była – czasem można było zobaczyć to, czasem co innego, ale nigdy całość.

odcinania balastu ciąg dalszy

ibm znowu odcina zbędny balast. tym razem pozbyli się działu drukarek.

dział został wydzielony do oddzielnej firmy (infoprint solutions), której 51% akcji zostało sprzedane ricoh'owi za 723 miliony dolarów. pozostałe 49% ma być odkupione od ibm'a w ciągu 3 lat.

na transakcji zyskują obie strony – ibm – pozbywa się biznesu który jest zupełnie na boku głównego nurtu działalności firmy. ricoh – od lat produkował te drukarki (a przynajmniej sporą część tego co w środku), teraz sam walczy o rynek, ale walczy z pozycji firmy mało znanej. przejęcie marki ibm'a da im dodatkowego kopa w staraniach o zdobycie lepszego miejsca na rynku.

sprawdzanie które wiersze w tabeli są zalockowane

greg sabiano mullane na swoim blogu dał kolejny popis kreatywnego myślenia.

tym razem opisał w jaki sposób prosto sprawdzić które wiersze w tabeli są zalockowane.

metoda którą opisał na pewno jest przyjemna przy dużych ilościach rekordów, ale do prostego przejrzania małych tabel – w 100% się przyda. polecam przejrzenie – zawsze można się czegoś nauczyć – nawet jeśli kod robi coś czego się samemu nie potrzebuje.

mysql enterprise db – interesujący model opłat

jeśli zetknęliście się kiedykolwiek z cenami komercyjnych baz danych, to z pewnością wiecie, że co jak co, ale proste to one nie są. zależą od praktycznie wszystkiego. wielkość danych, ilość użytkowników, ilość procesorów, rdzeni, podstawek, maszyn w klastrze itd.

mysql ostatnio przedstawił nowy cennik swoich baz klasy enterprise. cena zależy od – niczego. jest stała. $40,000 rocznie od firmy. niezależnie od ilości maszyn, wielkości danych, ilości użytkowników, ilości procesorów i innych rzeczy.

cena może powalać dopóki nie porównamy jej z innymi bazami komercyjnymi. $40,000 daje nam licencję na 1 procesor – pod oracle'em.

oczywiście – nie można porównywać bezpośrednio oracle'a i mysql'a, ale – różnica w cenie jest od razu widoczna.

nie jest to oczywiście oferta dla tych co chcą postawić bloga na mysql'u, ale jeśli ktoś stawia duży system na mysql'ach, na np. kilkudziesięciu maszynach, i chce mieć do tego wsparcie – cena $40,000 rocznie może się okazać całkiem kusząca.

przełom w technologiach procesorowych

w dosyć nieoczekiwany sposób dwa duże zespoły badawcze – intela i ibm'a, jednocześnie, choć nie wspólnie ogłosiły osiągnięcie zasadniczo tego samego.

oba zespoły znalazły sposób na dalsze miniaturyzowanie tranzystorów. czyli procesorów.

nie wydaje się to może szokujące – dopóki sie nie pomyśli o tym w jakiej skali ci ludzie już teraz pracują. okazało się, że krzem używany jako izolator, został już tak oskubany, że jest go najzwyczajniej za mało. efekt – utraty energii, wzrost temperatury. od dawna jesteśmy tego świadkami – poniekąd przez to są wentylatory i radiatory na procesorach.

nowe odkrycie (a właściwie dwa, niezależne) używa czegoś innego niż krzemu, i daje zdecydowanie lepsze rezultaty. w/g intela – o 20%. ludzi z ibm'a nie podali żadnych precyzyjnych danych.

nowe odkrycie umożliwi zejście z procesami technologicznymi z obecnych 65 do 45 nanometrów. a to oznacza spory wzrost mocy i możliwości nowych procesorów.

trzeci z wielkich – amd powiedział jedynie, że swój proces przejścia na 45 nano pokaże dopiero w 2008 roku.

samo przejście na mniejszą technologię nie jest szokujące, ale sam fakt, że po tylu latach badań odkryto jak to zrobić jest niezwykły i słusznie rekatorzy wired'a określają to jako największy przełom w technologii chip'ów od lat '60.