xom`s pinion - Tom Hnatovsky Blog

KHTML na Windows? Zatím jen Swift!

13. června 2007 Web design 4 komentáře

Safari je pozadu za Swiftem Safari, jé! Uvidíme žirafy, lvy a rosomáky!

Kdepak, většina uživatelů českých Windows XP a dle reakcí i některých Windows Vista si Safari ani nespustí. Předevčírem vydalo Apple svůj internetový prohlížeč Safari i ve verzi pro Microsoft Windows – zatím se jedná o první veřejnou betu. Zpráva, že velká společnost vydává prohlížeč postavený na KHTML jádře, je na první poslech výtečná. Na druhý poslech již tolik ne, vzhledem k problémům uživatelů vůbec Safari pustit.

Win Safari jsem také nespustil, ale stále mám kde své výtvory kontrolovat – již kolem roku sleduji vývoj prohlížeče Swift, který je momentálně dostupný v mnohem stabilnější verzi a má problémy s vykreslováním u méně elementů než Safari..

Ukázka seznam.cz na Safari a na Swiftu

Pokud chcete na Windows zkoušet náhledy stránek vykreslené KHTML jádrem a nechcete instalovat virtuální linux operační systém, tak si stáhněte Swift – alespoň ho spustíte, narozdíl od Apple pokusu..

Pod čarou: Uvedení Safari pro Microsoftí systém mně připadá jako předvoj expanse Applu i na počítače, jejichž case nezdobí nakouslé jablko. Upřímně řečeno, předvoj ztroskotal v první zatáčce závodní trati. Budoucnost ukáže jak bude Apple ještě dlouho kopat kolem sebe, jeho poslední kroky na poli velkých počítačů nebyly zrovna slavné..

Ukázkový obrázek seznam.cz na Safari jsem si půjčil z conBlogu Jiřího Bureše.

Levná a kvalitní myš Canyon NRMSL5

9. června 2007 Technika 2 komentáře

Canyon NRMSL5 Tak jsem si před 3 nedělemi koupil novou myš k notebooku. Ta stará Genius Mini Traveler začala mít problémy s přerušeným kabelem – nejspíš následek samo navíjecího systému. Hlavní podmínkou bylo, že si koupím k nahrazení starého elektronického hlodavce něco levného, abych nebyl naštvaný, až mi zase udělá pápá.

Objednal jsem si Canyon CNRMSL5. V CzechComputeru asi museli být šťastni z toho, jak jsem takřka 14 dní trval na tom, že si chci koupit právě tuto myš za 150 korun a žádnou jinou. Canyon myšku nějak neměli skladem, ale já jsem vytrval. Když jsem si ji přebíral, tak jsem byl překvapen růžovou krabicí, nu což, alespoň to má krabici. Myš překvapila – na obrázcích vypadá větší než ve skutečnosti je, k notebooku má takřka ideální velikost – akorát do přihrádky v mé brašně.

Tvar je velice příjemný, má ruka na myši krásně sedí, problém bych viděl s užíváním v levé ruce. Povrch je matně černý a zachycuje mnoho otisků prstů, jakékoliv zašpinění je vidět. Na levém boku, kde budete mít palec, je vložena zvrásněná guma, která zlepšuje vedení myši. Plošky (nožičky) po kterých Canyon klouže nemají žádný problém s hladkými povrchy, ale zaznamenal jsme drobné potíže s trháním na drsnějším látkovém podkladu. Myš disponuje 7 tlačítky (pokud počítám i možnost mačkat kolečko) a nebyl jsem si před koupí úplně jist, jestli budu přídavná tlačítka využívat. Nyní mohu prohlásit, že jsem závislý. Levé horní tlačítko obsahuje v části u kolečka červené tlačítko, které simuluje dvojklik. Umístění tlačítka mě zlenivěla natolik, že již prakticky neumím dvojklikat.

Canyon NRMSL5 Na levém boku myši jsou další dvě tlačítka – ideálně na ně směřuje palec. Standardní nastavení je ovládání historie v internetovém prohlížeči. Super funkce, chci jít o stránku zpět a nemusím přejíždět kurzorem přes celou stránku či sahat na backspace klávesnice.. Na hřbetu myši je ještě netradiční tlačítko Office, které otevírá speciální nabídku, do které si můžete přidat tlačítka na rychlé spouštění programů. Vzhledem k umístění i funkci toto tlačítko ignoruji a zcela bych se bez něj obešel.

V intuitivním programu pro nastavení myši se dají veškeré akce na jednotlivých tlačítcích nastavit dle vaší libosti.

Myš pracuje na laserové technologii s vyšším rozlišením než klasické optické myši a toto řešení si také velice pochvaluji – myš pracuje spolehlivěji na více typech povrchů a je i trochu přesnější – ne zas o tolik. Znatelné rozdíly v přesnosti bych očekával až u herních modelů s 2000dpi.

Jsem spokojen, nečekal jsem to, ale je to tak. Canyon vyrobil výbornou myš, která je super levná, ale zároveň velice kvalitní. Tak přemýšlím, proč bych měl někdy platit za nějakého drahého hlodavce např. od Logitechu, když si mohu dopřát stejnou muziku za méně peněz.

Můj malý údiv na závěr: Připojení myši nezkontrolujete tím, že svítí - ona totiž nesvítí, alespoň ne na frekvenci, kterou by lidské oko vidělo.

SQL cvičení - Výběr aktualních komentářů

1. června 2007 nezařazeno 8 komentářů

Database Mějme modelový projekt, předpokládejme, že máme články a k těm je možno přidávat komentáře. Součástí aplikace je zároveň funkce, která vrací poslední tři komentované články – nikoliv poslední 3 komentáře, ale poslední články.

Jak na to SQL příkazem, abychom nemuseli třídit data externě?

V tabulce article máme 3 články:

idname
1Nový článek
2Jiný článek
3Další článek

V tabulce comment máme 4 komentáře z různých dní:

idid_articledateauthor
132007-03-02xom
212007-03-03myff
322007-03-04xom
422007-03-05lada

Nelezl jsem dvě řešení, přesně nevím, které z nich je optimálnější, možná mi pomůžete v komentářích nebo vás napadne další možnost řešení.

První řešení je následující:

Použijeme funkci MAX, která nám vybere nejnovější datum a zároveň výsledek zgroupujeme podle názvu článku a srovnáme podle data.

SELECT MAX(comment.date) AS date, article.name FROM article LEFT JOIN comment ON article.id = comment.id_article GROUP BY article.name ORDER BY date DESC LIMIT 3
2007-03-05Jiný článek
2007-03-03Nový článek
2007-03-02Další článek

No jo, ale co když potřebujeme vybrat více položek z komentáře, pokud bychom chtěli primární klíč – id, tak není problém, jelikož se předpokládá, že bude mít nejvyšší číslo klíče pole, které má zároveň nejnovější – nejvyšší datum.

Funkci MAX(comment.id) musíme uvést, jelikož chceme filtrovat výsledky dle tabulky article, pokud bychom selectovali čistý comment.id, tak bychom ho museli zahrnout do definice GROUP BY. Tím by se nám výsledku znehodnotili na něco podobného:

2007-03-05Jiný článek4
2007-03-04Jiný článek3
2007-03-03Nový článek2

S použítím MAX(comment.id) a nezahrnutím do GROUP BY je výsledek optimální:

2007-03-05Jiný článek4
2007-03-03Nový článek2
2007-03-02Další článek1

Problém by nastal, pokud bychom chtěli vybrat jméno komentujícího comment.author, při použití funkce MAX by databáze přiřazovala k výsledku jméno, které by nemuselo patřit k vracenému datu komentáře.

Dostali jsme se nejspíš do slepé uličky v modifikaci této metody.

V SQL existuje deklarace DISTINCT, která odstraňuje duplicitní hodnoty. V příkladu:

SELECT DISTINCT id_article FROM comment

Tento select by nám vrátil

1
2
3

Jenže při použití na náš příklad by nespatřoval žádný výsledek jako duplicitní, protože vybíráme hodnoty, které se nikdy nepřekrývají úplně.

Postgre SQL má funkci DISTINCT ON, která umožňuje filtrování duplicit přes definované sloupce.

Jasnou volbou je, že nechceme mít duplicitní hodnotu id_article, která je vzdáleným klíčem tabulky article.

SELECT DISTINCT ON (comment.id_article) comment.date, article.name, comment.author FROM article JOIN comment ON article.id = comment.id_article ORDER BY comment.id_article, comment.date DESC LIMIT 3

Nevýhodou tohoto řešení je nutnost uvést parametr funkce DISTINCT ON na prvním místě v deklaraci ORDER BY, což znamená, že máme ve výsledku 3 poslední komentáře 3 různých článků, ale neseřazených dle data.

2007-03-03Nový článekmyff
2007-03-05Jiný článeklada
2007-03-02Další článekxom

Seřazení dle data jsem provedl vnořeným selectem..

SELECT * FROM ( SELECT DISTINCT ON (comment.id_article) comment.date, article.name, comment.author FROM article JOIN comment ON article.id = comment.id_article ORDER BY comment.id_article, comment.date DESC LIMIT 3 ) AS tabulka ORDER BY date DESC LIMIT 3

A výsledek je:

2007-03-05Jiný článeklada
2007-03-03Nový článekmyff
2007-03-02Další článekxom

Vybrali jsme z databáze 3 nejnovější příspěvky ke 3 různým článkům v pořadí od nejnověji přidaného.

Znáte nějaký lepší způsob? Komentáře jsou k dispozici..

© 2004-2012 Tom Hnatovsky - Všechna práva vyhrazena