Kategorie: Programování

Memtest USB instalace – Rescue CD

Potřeboval jsem spustit memtest na serveru bez cd-rom mechaniky. Můj oblíbený systém Rescue CD obsahuje Memtest, prošel jsem tedy postup instalace na USB disk, jevil se mi však složitý a postup, který jsem vyzkoušel byl nefunkční. Ještě další pátrání, došel jsem i na jeden web, který nabízel postup pro vytvoření bootovacího USB tímto způsobem s využitím FreeDOS, což jsem měl původně v úmyslu. A nějaké další neurčité postupy, není čas ale zkoušet všechno.

Nic se mi nelíbilo, takže u mně funkční postup je:

- stáhnout program UNetbootin
- pomocí tohoto programu uložit na USB flash disk ISO obraz RescueCD

a hotovo, funguje to. Pokud potom chceme takto vytvořený bootovací disk použít na daném počítači, nejprve je zapojíme do nějakého USB portu, potom teprve v BIOSu nastavíme pořadí bootovacích zařízení, kde dáme na první místo náš USB disk.

Zencart – změna sazby daně se zachováním cen produktů

V roce 2010 dochází ke změně sazby daně z přidané hodnoty z 19% na 20%. V případě, že zákazníkům chceme v internetovém obchodě postaveném na Zencartu zachovat ceny i v dalším roce na stejné výši, použijeme tento SQL dotaz:

UPDATE
products t1, tax_rates t2
SET
t1.products_price=(products_price*1.19)/1.2
WHERE
t1.products_tax_class_id=t2.tax_class_id
AND
t2.tax_rate=19

Potom upravíme výši daňové sazby a popisy daně následujícím SQL dotazem:

UPDATE
tax_class t1, tax_rates t2
SET
t1.tax_class_title='DPH 20%',
t1.tax_class_description='Daň z přidané hodnoty 20%',
t2.tax_rate='20',
t2.tax_description='DPH 20%'
WHERE
t1.tax_class_id=t2.tax_class_id
AND
t2.tax_rate=19

SQL dotazy spustíme v administraci – Nástroje – Instalace SQL patchů. Uvedený postup je bez záruky, pokud se tento postup rozhodnete použít, nezapomeňtě před změnou stáhnout zálohu databáze!

Ubuntu 8 – překódování mp3 audio pomocí ffmpeg

Na streamovacím serveru, který vysílá datový proud ve formátu WMV prostřednictvím softwaru Videolan VLC, se projevil problém se scházející zvukovou stopou ve formátu MP3 u streamovaného videa. Bylo použito řešení ze stránky Encoding mp3 audio with ffmpeg on Ubuntu Hardy. Převzato z uvedené stránky:

Podpora MP3 není zahrnuta ve ffmpeg v základním repositáři Ubuntu, je však možné použít repositáře Medibuntu. Jestliže je ffmpeg již máte instalovaný, odeberte jej. Doplňte do zdrojů softwaru repozitář Medibuntu a ověřovací klíč podle tohoto postupu:

sudo wget http://www.medibuntu.org/sources.list.d/hardy.list -O /etc/apt/sources.list.d/medibuntu.list
wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O - | sudo apt-key add - && sudo apt-get update

Potom instalujeme ffmpeg a libmp3lame codec (součást libavcodec balíčku):

sudo apt-get install ffmpeg
sudo apt-get install libavcodec1d

Ubuntu Nvidia – klonování výstupu na televizor – TwinView Clone TV out

Před časem jsem sestavil malý server s TV výstupem. Ubuntu 8, grafika nvidia 7800, po zapnutí byla na TV výstupu černobílá kopie obrazu na monitoru. Stačilo zapnout příslušný ovladač hardwaru a obraz byl barevný, postup pro instalaci ovladačů nvidia je zde. Při stavbě další podobné sestavy, tentokrát s grafikou nvidia 8400 se objevil problém v tom, že svideo výstup grafiky měl obnovovací frekvenci 60 Hz. V konfiguračním souboru xorg.conf bylo nutné nastavit parametr TVStandard v sekci Screen.

Zde je konkrétní funkční konfigurace xorg:

Section "Monitor"
 Identifier     "Monitor0"
 VendorName     "Unknown"
 ModelName      "CRT-1"
 HorizSync       30.0 - 61.0
 VertRefresh     56.0 - 75.0
 Option         "DPMS"
EndSection

Section "Device"
 Identifier     "Videocard0"
 Driver         "nvidia"
 VendorName     "NVIDIA Corporation"
 BoardName      "GeForce 8400 GS"
EndSection

Section "Screen"
 Identifier     "Screen0"
 Device         "Videocard0"
 Monitor        "Monitor0"
 DefaultDepth    24
 Option         "TwinView" "1"
 Option         "TVStandard" "PAL-G"
 Option         "metamodes" "CRT: 800x600_56 +0+0, TV: 800x600 +0+0"
 SubSection     "Display"
 Depth       24
 EndSubSection
EndSection

Ubuntu – Připojení sdíleného disku bez hesla

Pro připojení sdíleného disku bez hesla použijeme příkaz:

sudo mount.cifs //192.168.1.115/zalohy /home/nas -o guest

Výpočet daně z přidané hodnoty dle § 37/2 zákona o DPH

Daň = CenaVčetněDaně * koeficient
Koeficient = SazbaDaně / (100 + SazbaDaně)
Vypočtený koeficient se zaokrouhlí na čtyři desetinná místa

Koeficient pro sazbu 19% = 0.1597
Koeficient pro sazbu 9% = 0.0826

Klonování disku pro VirtualBox

Pro testování různých síťových funkcionality, jako je např. routing, NAT, DHCP, QoS apod. ve virtuálních počítačích vytvořených v produktu VirtualBox se projevila potřeba klonování již instalovaných operačních systémů. Klonováním se vyhneme zdlouhavé opakované instalaci operačních systémů do jetnolivých virtuálních počítačů. Prostá kopie disku v souboru s příponou .vdi není možná, VirtualBox takový disk odmítne s tím, že disk se stejným identifikační číslem již existuje. Řešení bylo nalezeno v diskuzním fóru nas serveru virtualbox.org:

v příkazovém řádku spustíme tento příkaz

vboxmanage clonehd "d:\virtual machines\ubuntu_client.vdi" "d:\virtual machines\ubuntu_server.vdi"

Po naklonování disků pouze doplníme do jednotlivých instalací OS potřebné komponenty.

NetBSD – Password file is busy

Na stroji, kde běží poněkud starší, ale udržovaný OS NetBSD, se najednou při pokus o změnu hesla uživatele:

# passwd uzivatel

začala objevovat hláška:

The password file is busy

a změnu hesla nebylo možné provést. Krátké hledání ne internetu, a v dokumentaci na serveru netbsd.org se píše:

If you try to modify a password and you get the mysterious message “Password file is busy”, it probably means that the file /etc/ptmp has not been deleted from the system. This file is a temporary copy of the /etc/master.passwd file; check that you are not losing important information and then delete it:

# rm /etc/ptmp

Po smazání soubou ptmp, který měl nulovou délku probíhá změna hesla uživatele normálně.

Databáze Firebird – smazání duplicitních řádků

Pokud máme v tabulce dva nebo více identických řádků, požijeme pro mazání jednoho z nich interní označení řádku RDB$DB_KEY, např. takto:

q1.sql.text='SELECT  RDB$DB_KEY AS KEY FROM tabulka WHERE id=10 '+
            'ORDER BY RDB$DB_KEY DESC';
q1.open;
key:=q1.Value['KEY'];
q1.sql.text:='DELETE FROM tabulka where RDB$DB_KEY='+key;
q1.ExecSql;

Jquery, Ajax, Json, PHP

V případě potřeby komunikace Javascriptu s PHP skriptem použijeme něco jako $.getJSON(„mujskript.php?id=“+$(„#id“).val()…, potom můžeme jednoduše v PHP skriptu vygenerovat asociativní pole a pomocí funkce json_encode vrátit Javascriptu výstup. Vrácená data zpravujeme podle examplu, který ke uvedený u getJSON.