wtopy roku 2006

pcworld opublikował listę 21 największych (ich zdaniem) wtop (błędów) 2006 roku.
lista jest dosyć przewidywalna.
natomiast to co mnie w niej mocno zainteresowało to to:

  1. sony
  2. hp
  3. diebold
  4. aol
  5. microsoft (vista!)
  6. <użytkownicy>
  7. <użytkownicy>
  8. sony (ps3!)
  9. apple
  10. google
  11. riaa
  12. microsoft
  13. radio shack
  14. wal-mart
  15. aol
  16. apple
  17. microsoft
  18. homeland security
  19. pojedynczy "hacker"
  20. rocketboom
  21. ca

widzicie jakieś powiązania?
2x sony
2x apple
3x microsoft
2x aol
hmm … interesujące. zwłaszcza, że w/g mnie akcja z ostatnim "fake fun-site'em" sony jest bardziej żenująca niż kwestia rocketboom – co by dawało 3x sony.
na dodatkowe wyróżnienie zasługuje fakt, że dwa nowiutkie produkty – vista i ps3 trafiły już na listę największych wtop. po prostu słodko.

zdjęcie/render?

obejrzyj tę grafikę:

i jak?
zdjęcie? render?
ani jedno ani drugie.
grafika powyżej została namalowana w photoshopie (i illustratorze).
pewien koleś – bert monroy – zawodowo tworzy różne rzeczy w photoshopie. projekty, grafiki, whatever.
w ramach zabawy z photoshopem zrobił tę grafikę. kilka danych na jej temat:
he image size is 40 inches by 120 inches.

  • po wydruku obraz ma wielkość 101 x 304 cm!
  • spłaszczony plik (bez warstw itd) ma 1.7 giga
  • całość prac zajęła około 2000 godzin (11 miesięcy)
  • praca była rozrzucona po około 50 plikach połączonych dopiero na końcu
  • łącznie (we wszystkich plikach) było 15000 warstw
  • ponad 500 alpha-channeli
  • 250000 ścieżek!

teraz, możecie wejść na stronę berta i zobaczyć kilka zbliżeń by zobaczyć do jakiej skali są dopracowane szczegóły (porażające), albo obejrzeć jego videocast gdzie opisuje kilka technik photoshopowania które użył przy pracy nad tą grafiką. na razie są dostępne części pierwsza i druga – trzecia, ostatnia będzie dostępna pewnie za tydzień.

desktop czy laptop?

takie pytanie jeszcze całkiem niedawno było mocno abstrakcyjne. laptopy były słabe i drogie. pecety – tanie i mocne.
ale, jak się okazuje – sytuacja się zmieniła. jak donosi cnet, już 2/3 sprzedanych pecetów to laptopy! oczywiście – dane dotyczą stanów, w polsce pewnie jest jeszcze trochę inaczej. ale czy tak bardzo inaczej? różnice cenowe już nie zabijają. wydajność lapów rośnie. z drugiej strony – przeciętny nie-gracz, w ogóle nie potrzebuje tej mocy jaką oferują obecne kompy.
czy doczekamy się czasów, gdy desktopy zanikną?

bezpieczeństwo allegro

heh. wszyscy o tym piszą, to i ja napiszę. a co 🙂
wczoraj o 1 w nocy (czyli z przedwczoraj na wczoraj) serwis hacking.pl zamieścił informację, że allegro jest dziurawe i przejęcie uprawnień jest trywialne. co za tym idzie można wystawiać innym aukcje, podejrzeć dane i sporo innych "zabawnych" rzeczy.
padła też informacja, że allegro było powiadamiane dwukrotnie o problemach i sprawę zignorowało.
o 16, 15 godzin później serwis allegro wystawił informację, że w nocy ze środy na czwartek będzie przerwa konserwacyjna. powodu nie podano. informacja ta została skomentowana na stronach hacking.pl wraz z cytatami komentarzy użytkowników allegro 🙂
dziś koło 16 hacking wystawił kolejną informację – mianowicie dostali odpowiedź od allegro. odpowiedź oczywiście pełna standardowego pr'owego bajdurzenia (wypunktowanego ładnie przez rafała pawlaka z hacking.pl). w/g allegro przerwa w nocy nie ma nic wspólnego z zgłoszonymi problemami, a w ogóle to sprawa jest wyolbrzymiona.
sprawa obiła się też o onet, gazeta.pl, itbiznes.pl i pewnie z 100000 innych miejsc.
czemu więc o tym piszę?
bo po raz kolejny widzę w kolejnej dużej firmie brak zwykłej odwagi by powiedzieć wprost: tak, daliśmy ciała, już poprawiamy, dziękujemy za zwrócenie uwagi i postaramy się by się nie powtarzało.
allegro niby to mówi, ale ubiera to w jakieś cuda typu: tak, nie zareagowaliśmy na maila bo cośtam, dziury nie są takie straszne bo cośtam itd.
czemu nikt nie ma odwagi po prostu jasno i krótko przyznać się do błędu, poprawić go, i o sprawie zapomnieć?

szybkie sprawdzanie zainstalowania modułu

na postgresowym blogu grega sabino mullane przeczytałem fajną sprawę.
co jakiś czas sprawdzam czy mam jakiś moduł perlowy i jak tak to jaką wersję.
zazwyczaj robię to np. tak:

perl -e 'use DBI; 42'

jak się wywali to modułu nie ma.
sprawdzenie wersji:

 perl -e 'use DBI; print $DBI::VERSION'

fajne, ale skomplikowane.
greg zaproponował by dopisać sobie takiego aliasa do bashrc:

 alias modver="perl -e\"eval qq{use \\\$ARGV[0];\\\\\\\$v=\\\\\\\$\\\${ARGV[0]}::VERSION;};
print\\\$@?qq{No module found\\n}:\\\$v?qq{Version \\\$v\\n}:qq{Found.\\n};\"\$1"

po czym wystarczy:

 modver DBI

alias jest skomplikowany, ale wystarczy go wpisać raz. i wszystko działa ok 🙂

enum

na grupie pgsql-patches trwa dyskusja nad nową wersją patcha dodającego enumy.
jest kilka argumentów przeciwko enumom jako takim, kilka przeciwko temu konkretnie patchowi i całkiem sporo za tym aby enumy tym patchem włączyć do postgresa!.
wszystko wskazuje na to, że w nowym postgresie (8.3?) będzie można:

CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');
CREATE TABLE person (
    name text,
    current_mood mood
);
INSERT INTO person VALUES ('Moe', 'happy');
SELECT * FROM person WHERE current_mood = 'happy';
 name | current_mood
------+--------------
 Moe  | happy
(1 row)

fajnie 🙂

lepszy malloc()

jak większość programistów wie, systemowy (glibcowy) malloc jest delikatnie sprawę ujmując zbyt ogólny. mniej delikatnie – do niczego.
sprawdza się przy programach gdzie wydajność nie jest kluczowa.
problem jest znany. część projektów pisze własne wersje malloca – przykładem chociażby postgres i jest palloc.
jak mi donieśli zaprzyjaźnieni admini google wypuścł, a kolesie od wikipedii przetestowali, nową wersję malloca. ta – napisana przez google'a, nazywa się tcmalloc i jest dużo szybsza. można obejrzeć np. spadek zajętości procesora przez squidy zrekompilowane z tcmalloc'iem – różnica powala.
tcmalloc jest całkowicie bezstresowym zastępnikiem do standardowego malloca. można go alko zlinkować przy budowaniu, albo zaladować przy pomocy LD_PRELOAD.
polecam przyjrzenie się temu – wygląda mocno obiecująco.