sobota 16. června 2012

Jak bezpečně zapisovat do MySQL ze vzdáleného počítače

Na serveru běží MySQL, nechtěl jsem k ní nechat přístup z Internetu, proto jsem celý problém vyřešil pomocí předání parametrů v URL dotazu. Něco podobného je možné realizovat wgetem nebo pomocí programu curl.

<?php
$server_name = 'localhost'; // jmeno databazoveho serveru
$db_user = ''; // uzivatel
$db_pass = ''; // heslo
$db_name = 'Teploty'; // jmeno databaze

session_start();
//$_SESSION["hash"] = "17f5596768b6b33ea69dfc822d3a8bace7fe6ae5";
session_register("hash");
if ($_REQUEST['hash']==$_SESSION["hash"])
    {
    $hash = sha1(rand());
    $_SESSION["hash"]=$hash;
    echo $hash;
    mysql_connect($server_name, $db_user, $db_pass) or die('Nepodařilo se připojit k MySQL databázi'); // pripojeni k databazi
    mysql_select_db($db_name) or die('Nepodařila se otevří databáze.'); // vyber databaze

    $dotaz="INSERT INTO `Teploty`.`Teploty` (`ID`, `Datum`, `Teplota doma`, `Teplota venku`,
    `Teplota kotel`) VALUES (NULL, NOW(), '".mysql_real_escape_string($_REQUEST['doma'])."', '".mysql_real_escape_string($_REQUEST['venku'])."',
    '".mysql_real_escape_string($_REQUEST['kotel'])."');";
    $radku = mysql_num_rows($vysledek);
    }
?>

Při každém spojení je vygenerován autorizační kód pro další relaci, použitím session je pro každého uživatele generován jiný přístupový kód. Pro synchronizaci stačí odkomentovat řádek kde se do $_SESSION["hash"] přiřazuje počáteční hodnota, po úspěšném připojení všech klientů je nutné tento řádek opět zakomentovat.

Další poznatky: adresu do wgetu či curl je nutné zadávat v uvozovkách, jinak dojde k oříznutí ostatních parametrů kromě prvního.

curl "http://xxx.cz/teplota.php?doma=23.5&venku=10.81&kotel=65.58&hash=ahoj"
Při spojení s curl se session chová poněkud divně.

Jak jednoduše generovat PDF soubor?

Na mcu.cz byla docela zajímavá diskuze, jak generovat PDF soubor v omezeném mikropočítači. Někdo poslal odkaz na toto, text stačí jen zkopírovat a uložit do souboru s příponou pdf. Opravdu to funguje.

http://www.gnupdf.org/Introduction_to_PDF

středa 13. června 2012

Kolik ROM a RAM program zabere?

V RIDE stačí spustit arm-none-eabi-size.exe -t <soubor.elf>


   text    data     bss     dec     hex filename
   4620      96     392    5108    13f4 Bluetooth.elf
   4620      96     392    5108    13f4 (TOTALS)

sloupeček text ukazuje využití paměti s read-only přístupem, data ukazuje využití paměti pro zápis a čtení. Využití ROM (FLASH) bude tedy text + data (4716:1024= 4,6 kB) a paměti RAM bude data + bss (488 B).

http://support.code-red-tech.com/CodeRedWiki/FlashRamSize

pátek 8. června 2012

Ethernet, HDMI, SATA, USB co více si přát?

Na internetu jsem našel zajímavého konkurenta  Raspberry Pi, jedná se o multimediální přehrávač k TV MELE A2000. Hlavní výhodou je jeho snadná hacknutelnost a spuštění například Ubuntu. Odkazuji na fotky a stránku s popisem IO pinů:


 Cenou je cca o čtvrtinu dražší než Pi, ale je také nutné do výsledné ceny započítat napájecí adaptér, dálkový ovladač a 4 GB Flash! Na desce je také integrován WiFi  b/g/n modul. Jediným nedostatkem je asi nemožnost připojení kamery jako u PI ale nic nebrání tomu připojit libovolnou webkameru do USB portu. Také předpokládám, že u tohoto zařízení není tak kostrbaté řešení připojení Ethernetu pomocí USB sběrnice. Škoda, že jsem zatím nenašel nic o podpoře OpenWRTáku pro toto zařízení, bylo by tak možné realizovat levný a rychlý NAS, WEB server, WRT je možné nahradit například Debianem.

ARM Cortex A8 1GHz
RAM: DDR III 512MB
Storage: Built-in 4GB flash memory (firmware included)

http://rhombus-tech.net/allwinner_a10/hacking_the_mele_a1000/
dealextreme.com