TrueType fonty

V distribucích linuxu nejsou žádné TrueType fonty (spíš zatím žádnou disribuci, která by je přímo obsahovala neznám), proto je potřeba je vykostit z Windows.

Fonty jsem nakopíroval do adresáře /usr/share/fonts/iso8859-2/TrueType a v něm jsem také spustil příkazy ttmkfdir > fonts.dir a mkfontscale, do souboru /etc/X11/fs/config jsem přidal na začátek části, kde jsou cesty k fontům, i cestu k novým TrueType fontům. Po tom všem stačí příkaz service xfs restart pro restartování fontserveru a nová písma jsou přístupná systému.

Nastavení Mozilly

V případě, že máte v systému knihovnu freetype-2 s podporou antialisingu TTF(pro Slacka 9.0 ke stažení zde), můžete nastavit Mozillu velmi jednoduchým způsobem:
Do souboru /ADRESAR_KDE_MAM_NAINSTALOVANOU_MOZILLU/defaults/pref/unix.js (u mě to je /opt/MozillaFirebird/defaults/pref/unix.js) se na konec při píše:

pref("font.FreeType2.enable", true);
pref("font.freetype2.shared-library", "libfreetype.so.6");
pref("font.FreeType2.autohinted", true);
pref("font.FreeType2.unhinted", false);  
pref("font.antialias.min",        10);
pref("font.embedded_bitmaps.max", 1000000);
pref("font.scale.tt_bitmap.dark_text.min", 64);
pref("font.scale.tt_bitmap.dark_text.gain", "0.8");
// cestu k TTF souyborum,
// je mozne jich tam nastrkat jeste vic, je treba jen menit index...
pref("font.directory.truetype.1", "/usr/local/fonty/ttf");
pref("font.directory.truetype.2", "/usr/local/fonty/ms");
pref("font.directory.truetype.3", "/usr/local/fonty/mix");
pref("font.directory.truetype.4", "/usr/local/fonty/ce");

Po nastartování mozilly je potřeba vybrat písmo, které začíná velkým písmenem, v mém případě to je Mono-times new roman-iso8859-2 a podobně. Také je dobré zaškrtnout, že chceme používat pouze námi definovaná písma.

www.abclinuxu.cz bez AA

www.abclinuxu.cz s AA

PostgreSQL

Docela dlouho jsem požíval MySQL, ale když jsem začínal psát jeden větší projekt, tak jsem se rozhodl, že zkusím PostgreSQL.Postupně tu bude návod na instalaci, takovej menší tahák na správu a pak základy SQL.

Pro vlastní kompilaci je potřeba soubor se zdrojáky, ten je ke stažení na stránce www.posrgresql.org, z českého mirroru jsem si stáhnul soubor postgresql-7.4beta2.tar.bz2. Jěště jsem si stáhnul pgadmin3, chtěl jsem si ho taky zkompilovat, ale narážel jsem na miliony chyb, tak jsem si nakonec sosnul balíček pro slacka.

Kompilace

Soubor postgresql-7.4beta2.tar.bz2 rozbalíme, vlezeme do něj a provedeme magickou trojkombinaci…

tar -xjf postgresql-7.4beta2.tar.bz2
cd postgresql-7.4beta2
./configure --with-openssl --prefix=/usr
make
make install

Místo make install pouštím checkinstall, kterým si dělám balíčky.

Je potřeba udělat uživatele pod kterým se bude databáze spouštět:

groupadd pgsql
useradd -g pgsql -d /home/pgsql_data/ pgsql
mkdir /home/pgsql_data/

chown pgsql:pgsql /home/pgsql_data/
chmod 0700 /home/pgsql_data/

Spuštění

Dalím krokem je inicializace prostoru pro databáze(provedeme jako user pgsql):

initdb /home/pgsql_data/

vytvoření naší pokusné databáze:


createdb test

v souboru /home/pgsql_data/pg_hba.conf si změnte/přidejte nastavení pro ověřování. Soubor /home/pgsql_data/postgresql.conf obsahuje nastaveni databáze.
Pro spouštění databáze jsem si udělal rc.pgsql skript. Nyní můžeme spustit databázi příkazem /etc/rc.d/rc.pgsql start

Tahák na SQL

PostgreSQL ma program psql, který nám umožní ovládání databáze pomocí příkazového řádku. Také můžete použít program pgadmin3, je docela pěkný, grafický a klikací…

Uživatelé

Vytvoření uživatele:
CREATE USER username;

Smazání uživatele:

DROP USER username;

Vlastnosti uživatele:

  • superuser
  • Má práva na všechno, pouze on může vytvářet nové uživatele.
    Pro vytvoření superuživatele použij: CREATE USER username CREATEUSER
  • zakládání databáze
  • Má právo na zakládání nových databází
    CREATE USER username CREATEDB
  • heslo
  • Heslo do databáze je oddělené od systému, takže se musí natsavit zvlášť. Nastavení hesla:CREATE USER username PASSWORD 'heslo'

Parametry zadávané při použití příkazu CREATE se dají upravit příkazem ALTER, takže například změna hesla se provede takto:
ALTER USER username PASSWORD 'noveheslo';

Skupiny

Přidání skupiny:
CREATE GROUP groupname;

Přidání uživatele do skupiny:
ALTER GROUP groupname ADD USER username1, ...

Odstranění uživatele ze skupiny:
ALTER GROUP groupname DROP USER username1, ...

Práva

Práva, která je možné nastavit:
SELECT, INSERT, UPDATE, DELETE, RULE, REFERENCES, TRIGGER, CREATE, TEMPORARY, EXECUTE, USAGE a ALL PRIVILEGES

Pro nastavení práv se používá příkaz GRANT:
GRANT INSERT ON tabulka TO username;
Uživatel provádějící tento příkaz musí být majitelem tabulky.

Přiřazení práv skupině:
GRANT SELECT ON tabulka TO GROUP groupname;

Přiřazení práv speciálnímu uživatelskému jménu PUBLIC přiřadíme práva všem uživatelům databáze.

To revoke a privilege, use the fittingly named REVOKE command:
REVOKE ALL ON accounts FROM PUBLIC;

Vytvoření databáze

CREATE DATABASE databasename;
případně
CREATE DATABASE databasename OWNER username;
nebo z prostředí shellu:

createdb -O username databasename

Výroba tabulek

CREATE TABLE (nazev_pole typ_pole [NULL|NOT NULL][UNIQUE|PRIMARY KEY][REFERENCES tabulka][DEFAULT hodnota][,...])

  • NULL – určuje, zda může byt pole prázdné
  • UNIQUE – hodnota se v tabulce může vyskytovat pouze jednou
  • PRIMARY KEY – primární klíč, automaticky je UNIQUE
  • REFERENCES – použijeme pokud je sloupec tabulky zároveň cizím klíčem (vytvoříme referenční integritu)
  • DEFAULT – pokud není při zadávání do tabulky pole známo, použije se tato hodnota

Vkládání dat

INSERT INTO tabulka [(pole[,...])] VALUES (hodnota[,...])

Při vkládání lze definovat pořadí polí. Pokud vynecháme definici polí vložíme data v pořadí v jakém jsme vytvořili tabulku.

Výběr dat

SELECT pole [AS nazev][,...] FROM relace zkratka [,...] [WHERE podminka] [ORDER BY poradi]

  • pole – Seznam sloupců, které chceme při výběru dat zobrazit oddělený čáarkami.
  • AS nazev – pokud chceme aby byl sloupec uvozen jiným nadpisem než je název pole, uvede me ho jako nazev
  • Když chceme vybrat všechny pole, můžeme použít znak *
  • relace – Název pole můžeme uvodit jménem relace (resp. její zkratkou), abychom jednoznačně identifikovali dané pole v případě stejných názvů polí ve dvou různých tabulkách

Definování podmínek – WHERE

logické operátory: =, <, >
logické spojky: AND, OR, NOT
porovnání řetězců: znak % zastupuje libovolný počet libovolných znaků

Řazení – ORDER BY

Výsledek dotazu můžeme seřadit podle libovolného výrazu. Nejčastěji řadíme záznamy podle jednoho ze sloupců, ale teoreticky můžeme řadit podle libovolného výrazu využívající jednotlivých polí záznamu.

Sloučení tabulek – JOIN

Často potřebujeme spojit několik tabulek dohromady v jednom dotazu. V našem případě chceme spojit tabulky Ucitel a Predmet pomocí pole ucitel v tabulce Predmet. Máme na výběr dvě možnosti. Buď použijeme úplný kartézský součin těchto dvou relací a vybereme pouze záznamy, které mají sobě odpovídající hodnoty sloupců Ucitel.id a Predmet.ucitel. Nebo můžeme použít klauzuli JOIN v definici relací.

SELECT p.nazev AS "Název", u.prijmeni + ", " + u.jmeno AS "Učitel" FROM Predmet p, Ucitel u WHERE p.ucitel=u.id

Tento dotaz vypíše seznam názvů předmětů a k nim příslušných učitelů. Všimněte si, že jsme v definici zobrazených polí použili sloučení řetězců do jednoho. Jedná o tzv. vnější spojení (z angl. outer join).

SELECT p.nazev AS "Název", u.prijmeni + ", " + u.jmeno AS "Učitel" FROM Predmet p JOIN Ucitel u ON p.ucitel=u.id

Tento dotaz je ve výsledku stejný jako dotaz předcházející, ovšem použili jsme tentokrát tzv. vnitřní spojení (z angl. inner join). Použití tohoto typu spojení nám dává větši flexibilitu při definici spojení, což si ukážeme později.

Vypočtené sloupce

Při definici vypisovaných sloupců či při konstrukci výrazů se nemusíme omezit pouze na počítání s jedním řádkem, ale můžeme též počítat s celou množinou sloupce. Pro toto počítání se používají následující funkce:

  • SUM() – součet hodnot sloupce
  • MIN() – minimální hodnota množiny
  • MAX() – maximální hodnota množiny
  • AVG() – průměrná hodnota
  • COUNT() – počet unikátních hodnot

SELECT min(plat) AS "Minimum", max(plat) AS "Maximum", avg(plat) AS "Průměr" FROM Ucitel

Vypíše minimální, maximální a průměrný plat všech učitelů.

Tahák na CVS

Článků o CVS bylo na českém internetu napsané dostatečné množství, takže tady nečekejte nějaké sáhodlouhé pojednání nebo manuál k CVS. Je to jen souhrn základních příkazů, které jsou potřeba pro požívání CVS.

Jak se přihlásit k mému CVS?

linux, bash:

cvs -d :pserver:cvs@burdazd.sh.cvut.cz:/home/cvsroot login

nebo


export CVSROOT=:pserver:cvs@burdazd.sh.cvut.cz:/home/cvsroot
cvs login

Heslo není takže jen odbouchněte entrem.

Základní příkazy

repository

cvs -d/home/tsunami/cvsroot init

CVSROOT

Proměnnou CVSROOT nastavuju ve svém ~/.bash_profile pomocí příkazu export CVSROOT=/home/tsunami/cvsroot

import modulu

cvs -d/home/tsunami/cvsroot import -m"Initial import." test TSUNAMI INITIAL

  • -d/home/tsunami/cvsroot
  • lze vynechat, když máme nastavenou proměnnou CVSROOT
  • -m
  • log message
  • test
  • jméno modulu, který se vytvoří
  • TSUNAMI
  • značka výrobce 🙂
  • INITIAL
  • značka verze

získání z repository – checkout

cvs co test

  • co
  • také checkout, slouží k vydolování věcí z repository
  • test
  • jméno modulu, jehož poslední verzi chceme získat z repository

další volby

  • -A
  • převod souborů na jinou vývojovou větev, bez zadání -r… převede na aktuální větev(HEAD)
  • -P
  • nevytváří prázdné adresáře
  • -r
  • volí větev, bez zadání je zvolena hlavní(HEAD)
  • -D
  • volí datum, bez zadání se získá nejnovější verze

    datum se zadává třeba takhle: -D"2003-04-30 18:30:00"

  • -z3
  • komprese

uložení do repository – commit

cvs ci -m"Komentar k upravam"

  • ci
  • také commit, aktualizuje soubory v repository
  • -m
  • přidá komentář, když se nezadá, tak se spustí editor

zjištění změn v repository – update

cvs up test

  • up
  • take update, zjistí změny a zaktualizuje soubory

další volby

  • -APrD
  • stejné vlastnosti jako u checkout
  • -d
  • přinutí update aby akceptovalo i nové adresáře

status

cvs status test

další volby

  • -v
  • Vypíše informace o značkách a větvích.

Značka (tag)

cvs -f tag NAZEV_ZNACKY 'jmeno modulu_nebo_souboru'

Zámek

Zamknutí:
cvs -f admin -l 'soubor'

Odemknutí:
cvs -f admin -u 'soubor'