Vlastní HTML podpis pro Gmail

Tento velmi krátký článek vám prozradí, jak si ve službě Gmail nastavit vlastní HTML podpis. I když během zadávání formátovaného textu není možné přepnout zobrazení do zdrojového kódu, řešení je překvapivě jednoduché a funkční.

Začneme tím, že si vytvoříme klasický HTML soubor a do něj zapíšeme podpis v požadované podobě. Použít můžeme i obrázky z externím serverů (v mém případě používám logo operačního systému Ubuntu). Výsledek může vypadat například takto:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title></title>
</head>
<body>

<div>
 <div>
 <span style="font-size: 1.3em"><strong>Jméno Příjmení</strong></span>
 </div>
 
 <div> 
 <em>Adresa</em>
 </div>

 <div>
 <img src="http://assets.ubuntu.com/sites/ubuntu/latest/u/img/logos/logo-ubuntu-orange.png" />
 </div>
 
</div>

</body>
</html>

Tvorba HTML podpisu

Nyní celý obsah lokální stránky označte (CTRL + A) a zkopírujte do schránky (CTRL + C).

Následně zavítejte na Gmail. Klikněte na ozubené kolo v pravém horním rohu a zvolte Nastavení. Již v první záložce Obecné se nachází část Podpis. Zde do zobrazeného pole vlože obsah schránky (CTRL + V) a změnu uložte s pomocí tlačítka situovaného na úplném konci stránky.

HTML podpis ve službě Gmail

A to je vše, nyní se Gmail naučil používat HTML podpis a bude jej automaticky vkládat ke všem odeslaným zprávám.

Zpráva s HTML podpisem

Coraabia je konečně tady, každého ale bavit nebude

Poprvé jsem se o české online karetní hře Coraabia dozvěděl před několika lety v pořadu Game Page z produkce České televize. Okamžitě mi bylo jasné, že si ji chci vyzkoušet. Ovšem úvodní stránka tehdy nic podobného nenabízela, protože projekt byl stále ve vývoji. Hru jsem nicméně nadále sledoval a zachytil jiskřičku naděje v podobě uzavřené betaverze, do které jsem se ovšem bohužel nedostal. To však již patří minulosti, protože Coraabia konečně po pěti letech vývoje otevírá své brány všem zájemcům.

Probíhající soubor je ve hře Coraabia

Probíhající soubor je ve hře Coraabia

Coraabopedia

Několik dní před spuštěním jsem zběžně navštívil fórum, kde mě zaujaly rozbory nejrůznějších taktik. Na Coraabopedii naopak nešlo přehlédnout vlastní vymyšlený jazyk Coraabish a jeho slovní zásobu. Zkrátka důraz kladený na nejmenší detaily. Tohle bude bomba…

Stálo čekání za to?

Upřímně řečeno, úplně jistý si nejsem. Hlavní naplň hry symbolizují souboje jednotlivých karet. Každá postava přichází se čtveřicí čísel, ze kterých hráč volí ten, o kterém se domnívá, že je nejsilnější a s jistotou převýší údaj na kartě soupeře. To by samo o sobě příliš záživné nebylo, a proto na scénu vstupují schopnosti jednotlivých tvorů a tzv. triky, tedy karty ovlivňující již vyložené postavy. Grafické zpracování je nádherné, obrázky na kartách potvrzují, že na nich pracovali skuteční profesionálové. Chybí mi ovšem pocit, že hru můžu výrazně ovlivnit svoji taktikou. Obrovskou roli hraje síla jednotlivých karet (ty lepší kousky pochopitelně můžete pořídit za peníze), štěstí a teprve až v poslední řadě úsudek hráče, jenž se například rozhoduje mezi dvěma trikovými kartami. Buď se tedy taktika projeví až později nebo mi něco důležitého uniká.

Zhodnocení

V současné době, jeden den po otevření bety, si netroufám hru hodnotit. Zřejmě bude potřeba vyčkat, až se situace vyladí. Hráči momentálně vlastní prakticky shodné karty a koupi významného počtu jiných za bezplatnou měnu si ještě nemohou dovolit, protože získávání těchto mincí probíhá velmi pomalu. Doporučuji si tedy Coraabii osobně vyzkoušet na coraabia.cz a utvořit si vlastní názor. Základy vás zde naučí připravený tutoriál.

 

Scheme

Scheme

Tento článek představuje základní konstrukty jazyka Scheme. Uvedené informace se skvěle hodí k získání povědomí o některých dostupných procedurách a vybraných rysech jazyka.

Quote a quasiquote

Quote zabrání vyhodnocení výrazu. Lze zkráceně zapsat jako uvozoku . Zápisy ‚szj.cz a (quote szj.cz) jsou tedy naprosto totožné. Quasiquote se chová shodně jako quote, můžeme si ale vyžádat vyhodnocení vybrané části výrazu. Ke zkrácení se používá symbol `.

‚szj.cz => szj.cz

(quote szj.cz) => szj.cz

`szj.cz => szj.cz

(quasiquote szj.cz) => szj.cz

Unquote a unquote-splicing

Z předchozího se může zdát, že mezi quote a quasiquote neexistuje rozdíl. Tak tomu však není. U výrazu uzavřeného v quasiquote vynutí unquote (zapisovano jako čárka „,„) vyhodnocení následující části.

`(szj.cz (+ 1 1) cz.szj) => (szj.cz (+ 1 1) cz.szj)

`(szj.cz ,(+ 1 1) cz.szj) => (szj.cz 2 cz.szj)

Quasiquote tedy označuje úsek, jenž se nikdy nezmění. Naopak tomu unquote symbolizuje přesný opak.

Dále lze využít unquote-splicing (symbol ,@) chovající se jako unquote, ale s výraznou změnou – výsledný seznam ztratí své vnější závorky.

`(,@`(1 2 3)) => (1 2 3)

Všechny dosud uvedené konstrukty obsahující ve svém názvu quote lze vzájemně vnořovat a kombinovat.

`(szj.cz `cz.szj 10) => (szj.cz `cz.szj 10)

`(szj.cz ,`cz.szj 10) => (szj.cz cz.szj 10)

Povšimněte si, že v následujícím zápisu nedojde k sečtení čísel 1 a 1.

`(szj.cz `(,(+ 1 1) cz.szj) 10) => (szj.cz `(,(+ 1 1) cz.szj) 10)

Unquote zde nebude fungovat, protože se nachází uvnitř druhého quasiquote nikoliv prvního. Po drobné úpravě však dosáhneme kýženého výsledku. Povolíme funkci druhého quasiquote a vše se již chová dle našeho přání.

`(szj.cz ,`(,(+ 1 1) cz.szj) 10) => (szj.cz (2 cz.szj) 10)

Seznam

Každý seznam se skládá ze dvou složek. K té první se přistupuje s pomocí car, druhou část vrátí cdr.

(car ‚(1 . 2)) => 1

(cdr ‚(1 . 2)) => 2

Pokud je druhá složek seznam, vypouští se tečka a závorky příležící k tomuto seznamu. Oba následující zápisy jsou proto totožné.

‚(((1))) => (((1)))

‚(((1).()).()) => (((1)))

O konstrukci páru se stará cons (bere v parametrech první a druhou složku).

(cons (cons (cons 1 ‚()) ‚()) ‚()) => (((1)))

(cons (cons 1 2) (cons 3 4)) => ((1 . 2) . (3 . 4)) => ((1 . 2) 3 . 4)

Car a cdr lze vzájemně sdružovat s pomocí předdefinovaných zkratek – např. cadr nejprve vykoná cdr a poté car, postupuje se tedy obráceně.

(cadr (cons (cons 1 2) (cons 3 4))) => 3

Build-list

Jako první parametr je očekávána délka budovaného seznamu, druhý parametr symbolizuje procedura, jenž bude aplikována na každý prvek nově vznikajícího seznamu, přičemž indexování začíná od nuly.

(build-list 5 -) => (0 -1 -2 -3 -4)

List-ref

Ze zadaného seznamu vrátí prvek na dané pozici. Indexování začíná od nuly.

(list-ref ‚(a b c d) 1) => b

Reverse a length

Jak již název napovídá, length zjišťuje délku seznamu, zatímco reverse provádí obrácení pořadí prvků.

(reverse ‚(a b c d)) => (d c b a)

(length ‚(a b c d)) => 4

Append

Vytváří nový seznam spojením libovolného množství zadaných seznamů.

(append ‚(1 2) ‚(3 4) ‚(5 6)) => (1 2 3 4 5 6)

Map

Aplikuje danou proceduru na každý prvek seznamu a vrátí výsledný seznam.

(map – ‚(1 2 3 4 5)) => (-1 -2 -3 -4 -5)

Pokud je zadáno více seznamů, prochází se postupně od začátku.

(map + ‚(1 2 3 4 5) ‚(1 2 3 4 5)) => (2 4 6 8 10)

Tento výčet nesymbolizuje to jediné, co jazyk Scheme nabízí. Jeho možnosti jdou totiž mnohem dál. K vyzkoušení uvedených příkladů potřebujete vhodný interpret, například Racket.