nowy procesor intela – prototyp
intel ogłosił, że zrobił prototypowy procesor o większej ilości rdzeni. trochę większej – 80 rdzeni w procesorze. całość zużywa tylko 65 watów mocy i ma moc 1 teraflopa!
prototyp chodzi na 3.16ghz, czyli pewnie da się go bardziej podkręcić.
intel co prawda stwierdził, że procesor produkcyjny wejdzie na rynek najwcześniej za 3-5 lat i będzie zupełnie inny, ale fakt, że udało im sie upchnąć taką moc w procesorze jest powalający.
wsiąść do pociągu. nie byle-jakiego.
orient express. nazwa znana, ale jakaś taka zapomniana. tzn. niby wiemy, że to luksusowy pociąg, ale jakbym miał powiedzieć czy i gdzie jeździ to bym nie dał rady.
na szczęście (?) mamy luxlux, który informuje, że orientexpress to firma, a nie pociąg, i mają kilka pociągów. i zapraszają na 7 dniową wycieczkę kolejową po szkocji – za jedyne 5,000£ od osoby.
uff. ale jeśli uważacie, że szkocja nie jest ciekawa, bo za blisko – firma orient-express zaprasza na podróże po innych krajach – z czego mnie się najbardziej spodobała trasa bangkok-singapur (spodobała z opisu, bo jeszcze mnie tam nie było).
a mówią, że pieniądze nie dają szczęścia …
poważny błąd w postgresie
wykryto właśnie poważny błąd w postgresie w obsłudze funkcji typu “security definer". błąd tyczy się wszystkich wersji postgresa od kiedy to wprowadzono – czyli od 7.3.
błąd pozwala na wykonanie dowolnego kodu z podwyższonymi uprawnieniami i daje się wykorzystać podobno w przypadku większości funkcji zdefiniowany jako security definer (ale nie wszystkich).
na szybko kod można poprawić i zabezpieczyć ustawiając na sztywno w funkcji search_path'a.
prace nad poprawieniem tego trwają.
tapeta na dzis
tapeta na dzis
drop table if exists
mysql ma fajną rzecz – drop table if exists.
pozwala to na pisanie bezpiecznych skryptów sql'owych które nawet przy obudowaniu w transakcję się prawidłowo wykonają.
przykład?
załóżmy, że chcemy stworzyć tabelę i cośtam jeszcze zrobić – wszystko w transakcji.
BEGIN; CREATE TABLE test (x serial PRIMARY KEY, test_value TEXT); ... COMMIT;
wygląda niewinnie.
no tak, ale co jeśli ta tabela już istnieje – bo np. ktoś ma zainstalowaną wcześniejszą wersję bazy? trywiał zmieniamy na:
BEGIN; DROP TABLE test; CREATE TABLE test (x serial PRIMARY KEY, test_value TEXT); ... COMMIT;
i już działa.
ale nie. jeśli jednak odpalimy tego sql'a na bazie w której naszej tabeli nie ma – drop table sie nie uda, więc cała transakcja zostanie zrollbackowania.
no cóż, to może tak?
DROP TABLE test; BEGIN; CREATE TABLE test (x serial PRIMARY KEY, test_value TEXT); ... COMMIT;
teraz – drop jest poza transakcją, więc jak się wywali to nie problem.
hmm .. ale co jeśli tabela test jest, ale nasze zapytania po create table się wywalą? tabela test zostanie permanentnie skasowana, a polecenie zakładające zostanie zrollbackowane. tragedia.
czy nie da się tego sensownie zrobić? da się.
trzeba użyć funkcji execute() o której pisałem wczoraj.
dzięki niej, mogę zrobić swojego sql'a tak:
BEGIN; SELECT execute('DROP TABLE test') WHERE exists (SELECT * FROM information_schema.tables WHERE table_schema = 'public' AND table_name = 'test'); CREATE TABLE test (x serial PRIMARY KEY, test_value TEXT); COMMIT;
i uzyskuję w ten sposób funkcjonalny odpowiednik DROP TABLE … IF EXISTS;
oczywiście składnia jest trudniejsza, ale nie wydaje się to być dużym problemem – jeśli jest – no cóż. zawsze można napisać własną funkcję która zrobi ‘drop table' tylko jeśli tabela istnieje. ale wykorzystanie ogólnego mechanizmu ‘execute' wydaje się być zdecydowanie potężniejsze
tapeta na dzis
zestawienie szybkiego serwisu
na temat tworzenia serwisów internetowych powstało sporo tekstów. na temat przyspieszania i ogólnie dbania o wydajność też. zasadniczo ciężko jest napisać coś nowego.
ale dzis przeczytałem bardzo fajny wpis na “mysql performance blog". nie zawiera on niczego rewolucyjnego. ale idealnie wręcz sie nadaje jako “check-lista" do wypuszczania wysoko wydajnych aplikacji. ot tak, aby o żadnym szczególiku nie zapomnieć.
nieoczekiwany sojusznik w walce z drm’em
czy napiszę o jobsie i jego otwartym liście do riaa? nie. w/g mnie to tani chwyt pod publiczkę.
o kolesiu z linspire który zażądał od jobsa czynów a nie gadania? też nie. to jest koleś który w ogóle się w świecie nie liczy i wykorzystuje sytuację aby zdobyć chwilę “widoczności antenowej".
o czym więc?
otóż – dosyć nieoczekiwanym sojusznikiem okazała się być firma emi. kojarzycie? 3 na świecie wydawca muzyki (biorąc pod uwagę wartość sprzedaży). w ich “portfolio" wchodzą takie grupy/wykonawcy jak kate bush, pet shop boys, paul mccartney, tomoyashu hotei, massive attack, iggy pop, nick cave and the bad seeds, coldplay, queen, robbie williams, radiohead, depeche mode, liz phair, tina turner, the beach boys, enigma, the rolling stones, kraftwerk, david bowie, ub40, pink floyd, moby, gorillaz, sarah brightman, lenny kravitz, iron maiden, blur, the chemical brothers, koЯn, beastie boys, the beatles czy placebo. a to nawet nie jest połowa artystów tworzących w barwach emi.
co takiego zrobiło emi? otóż emi od jakiegoś już czasu sprzedaje muzykę swojej trzódki (małej jej części na razie) całkowicie bez żadnych ograniczeń, drm'ów czy innego badziewstwa. i jak mówią – oni są zadowoleni i klienci sa zadowoleni.
podobno już teraz planują sprzedaż całości swojej dyskografii w takiej właśnie bez-drm'owej postaci.
jak widać – wyłomy się pojawiają nawet w, zdawałoby się monolitycznej, strukturze riaa.