Zobrazují se příspěvky se štítkemprogramování. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemprogramování. Zobrazit všechny příspěvky

středa 16. dubna 2008

Ještě něco o Nýrsku?

Týden za týdnem mizí v dáli, a tak je tu opět stručný report. Zrovna včera jsem hodně přemýšlel na tím, že s blogováním na čas praštím. Můj blog začalo číst nepříjemně mnoho lidí, a ač mi to vynáší poměrně dost na reklamách, nemůžu sem z důvodu zachování svého zdraví některé věci vůbec psát. Viď, Peroxi (a spol., tedy spíš ten spol.)!
Už je - překvapivě - duben a ročníkové práce jsme měli odevzdat podle prvotního plánu asi před měsícem. Nu, konečný termín se posunul na příští pondělí. Asi bych měl na něčem zapracovat, protože mé dvě kapitoly "milé" paní učitelce asi stačit nebudou. V plánu mám ještě dvě (mělo jich být deset) a snad vyjdou. První z nich bude tuctová, popíšu webovky o Nýrsku a okolí, druhá by mohla být zajímavější a její nezkrácenou verzi bych chtěl dát i sem, ale záleží na tom, jaké počasí bude o víkendu. Když nebude pršet, vezmu noťas a půjčený foťák a zmizím na celou sobotu. Párkrát si Nýrsko vyblejsku.
Protože od Kuldy už dlouho žádná práce nebyla a na webu Nýrska se mi moc dělat zatím nechce, trochu víc jsem začal pythonýrovat. Lehce jsem překvapen, okolik je to proti píejčpíčku hezčí, jednoduší, objektovější a tak všelijak. Takže moje hrátky si můžete stáhnout odsud, ke spuštění budete potřebovat Python a PyGame.

pátek 28. března 2008

Programování?

Takže, na žádost spolužáků, krátký článek. Lehce o programování...

Mám se to učit?
Programovat se začni učit jestliže:

  • jsi často na počítači a hry už tě přestávají bavit
  • máš kladný vztah k technice
  • nejsi typ: kde je internet? Na ploše neni žádné modré E!
  • nevadí ti přečíst si tuny tutoriálů
Jak se učit a co pro to dělat?
  • vyber si jeden středně obtížný jazyk (např. Python)
  • najdi si něco pro začátečníka (např. Létající cirkus [PDF])
  • najdi si nějakou zkušenější oběť a otravuj ji otázkami!
  • zkoušej si jednoduché věci
  • měj velké plány (vlastní WoW apod.), ale nečekej, že něco podobného uděláš do pěti let
  • přemýšlej nad programováním (co naprogramovat a co z toho budu mít?)
  • v diskuzích se ptej jen v případě nouze (nebo chceš být za lamu?)
  • neuč se ze začátku víc jazyků. Čím víc jazyků umíš, tím víc se v tom motáš...
  • najdi si někoho, kdo se jazyk bude učit s tebou a vzájemně se žeňte vpřed
  • vydrž až tě programování přestane bavit
  • čti, čti, čti a potom si to vyzkoušej
  • pamatuj, že opakování je matka moudrosti

úterý 10. července 2007

Tvoříme chat v AJAXu

Do módy proniká tzv. "web 2.0" a s ním i rošíření technologie AJAX. Podíváme se jak s ním pracovat.

Tvoříme chat
Nejdříve si projdeme seznam věcí které budete potřebovat. Zapisovat budeme do těchto tří souborů: index.html (formulář pro odeslání, zobrazení všech příspěvků), ajax.js (veškeré kódy v JS), uloz_prispevek.php (odeslání nového příspěvku do databáze).
Pak je tu samozřejmě už zmíněná databáze. Potřebovat budete tabulku se třemi sloupci: ID, prispevek, nick. Můžete si samozřejmě přidat další sloupce, jako např. datum, ale toto pro pochopení stačí.

Index.html
Jako první musíte načíst soubor s javaskriptem:

<script type="text/javascript" src="ajax.js"></script>
Pak přidejte funkci do tagu BODY:
<body onload="zobraz()">
Co funkce dělá vysvětlím až se k ní dopracujeme.
Pak už stačí přidat formulář pro odeslání nového příspěvku a prázdný span:
<div>
<form action="javascript:get(document.getElementById('chat'));" name="chat" id="chat"> Váš nick: <input type="text" id="nick"/><br />
Vaše zpráva: <input type="text" id="text"/>
<input type="submit" value="Odeslat" />
</form>

<span name="prispecky" id="prispevky">
</span>
</div>
Tím jsme se souborem indes skončili.

Uloz_prispevek.php
Tento soubor obsahuje akorát uložení příspěvku do databáze a výpis všech příspěvků.
<?php
# Pripojeni k databazi
$link = mysql_pconnect('server', 'user', 'password');
$db = mysql_select_db('ajaxchat');
mysql_query("SET NAMES utf8");

# Pokud uzivatel odeslat nejaky text ulozi se prispevek do databaze
if($text != ''){
$uloz = "insert into prispevky
values('', '$text', '$nick')";
$uloz_result = mysql_query($uloz, $link);
}

# Nacteni 10 nejnovejsich zprav
$zobraz_query = "select * from prispevky order by ID desc limit 10";
$zobraz_result = mysql_query($zobraz_query, $link);

# Zobrazeni
while ($zobraz = mysql_fetch_array($zobraz_result)) {
echo
"<p><b>".$zobraz[nick]."</b>
- ".$zobraz[prispevek]."</p>";
}
?>
Ajax.js
Teď se dostáváme k tomu nejdůležitějšímu, k použití AJAXu. Rozebereme si ho po jednodtlivých funkcích.
ms=0;
stav=0;
function zobraz() {
setTimeout("zobraz();",10);


if (stav==0) {
stav=1;
then=new
Date();

then.setTime(then.getTime()-ms);
}else{
stav=0;
now=new
Date();

ms=now.getTime()-then.getTime();
}


// Po kolika sekundach se obnovi vypis prispevku
max_s = 0.5;
s = Math.round(ms / 1000);

if(s > max_s) {
var poststr =
"";

// Obnoveni prispevku
makePOSTRequest('uloz_prispevek.php', poststr);

ms = 0;
}
}
Jednoduchá funkce, která zařídí aby se příspěvky znovunačetli po určitém časovém intervale.
var http_request = false;
function makePOSTRequest(url, parameters) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {

http_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new
ActiveXObject("Msxml2.XMLHTTP");
} catch
(e) {

try {

http_request = new ActiveXObject("Microsoft.XMLHTTP");

} catch (e) {}
}
}
if (!http_request) {
alert('Nepovedlo se navazat spojeni');
return false;
}

http_request.onreadystatechange = alertContents;
http_request.open('POST', url, true);

http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

http_request.setRequestHeader("Content-length", parameters.length);

http_request.setRequestHeader("Connection", "close");
http_request.send(parameters);
}

function alertContents() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
result = http_request.responseText;

document.getElementById('prispevky').innerHTML = result;
} else {
alert('Pri odeslani zpravy vznikl problem');
}
}
}
Všechny funkce budou použity pro navázání spojení s námi vybraném souboru. To zajišťuje tato funkce:
function get(obj) {

var poststr = "text=" +
encodeURI( document.getElementById("text").value ) +





"&nick=" + encodeURI( document.getElementById("nick").value );

makePOSTRequest('uloz_prispevek.php', poststr);

document.chat.text.value="";

}
Všechny soubory můžete stahovat zde.

úterý 29. května 2007

Začínáme s PHP "2.díl"

Pracujeme s formuláři
Formuláře jsou důležitou částí webových stránek. Můžete pomocí nich udělat např. Odesílání mailů nebo jednoduchou diskuzi. Vytvoříme si dva soubory, jeden s formulářem (index.html) a druhý s akcí, která proběhne po odeslání (formular.php). Nejdřív si musíte vytvořit formulář v souboru index.html:

<form action="formular.php" method="post">
<input type="text" name="predmet" value="Sem napište předmět zprávy" size=30 /> <br />
<textarea name="text" rows=10 cols=50>Vaše zpráva</textarea><br />
<input type="submit" value="Odeslat">
</form>
Formulář si můžete jakkoli upravit, důležitý je vždy údaj name. Ten určuje pod jakou proměnnou se údaj zobrazí. Např. Pokud máte textové pole s name="jmeno", potom při zpracovávání formuláře bude $jmeno obsahovat data z pole s tímto názvem.

Teď se dostáváme k části důležitější, ke zpracování. Do souboru formular.php dáme toto (samozřejmě musíte začínat značkou <?php a končit ?> ):
echo $predmet."<br />".$text;
Tím se vypíšou data z formuláře. S nimi teď můžeme dělat téměř cokoli:
mail("vas@mail", $predmet, $text);
Úplně nejjednodušší odeslání mailu pomocí PHP skriptu. Pokud to zkoušíte na svém počítači, možná vám to nebude fungovat a vyhodí chybovou hlášku. Ta je
způsobena špatným nastavení SMTP serveru v PHP. Doporučuji se v tom moc nehrabat a zkoušet odesílání mailů na nějakém freehostingu.

Příště: Práce s databází MySQL

pátek 11. května 2007

Začínáme s PHP "1.díl"

Pokud jste se rozhodli vytvořit si svoje vlastní webové stránky a nechcete skončit u HTML pak je právě pro vás PHP. PHP je kvalitní programovací jazyk, který jeoblíbený pro svou dostupnost (na 80% kvalitnějších freehostingů jako je např. webzdarma či ic.cz) a jednoduchost. Prosím zkušenější programátory aby omluvili moje vyjadřování o některých věcech. Přece jen to píšu pro začátečníky.

Nejdříve technika
Pokud nechcete po každé změně nahrávat stránky na webový server a tam je zkoušet pak doporučuji nainstalovat si Apache, PHP a MySQL. K MySQL se dostaneme později. Pokud se nechcete mořit s ruční instalací všechno zvláště doporučuji použít nějaký z volně dostupných balíčků, např. EasyPHP, nebo PHPTriad. V Linuxu si můžete nainstalovat vše jednoduše pomocí instalačního manažera, v Debianu (i z toho odvozených distribucí např. v Ubuntu) pomocí Synapticu. Existují i podobně balíčky jako pro Windows, ale s nimi nemám dobrou zkušenost.
Skripty musíte ukládat na speciální místo určené při instalaci. Při instalaci balíčku EasyPHP je to standardně složka s EasyPHP\www (většinou C:\Program Files\EasyPHPverze\www).
V Linuxu musíte vytvořit ve složce uživatele složku public_html a ukládat do ní (poté musíte zadat http://localhost/~uzivatel).
Pokud se vše povedlo můžete zadat do prohlížeče adresu localhost nebo 127.0.0.1 (standardně) a nesmí vám vyskočit chybová hláška "Stránka nenalezena".
Pokud vám tento návod nefunguje, nespamujte tady diskuzi, ale zkuste zagůglit (prostě vyhledat na Google lepší návod).

Začínáme programovat
Programovat v PHP můžete i v obyčejném texťáku, ale mnohem lepší je specializovaný program. Ve Windows doporučuji PSPad, v Linuxu Quanta+ nebo Bluefish.
Na vyzkoušení si vytvořte soubor index.PHP. Pokud jste HTML chvíli zabývali poznáte že je to soubor se stejným významem jako index.htm(l). Pokud jste o HTML ještě neslyšeli zkuste JakPsatWeb.cz.

Každý skript psaný v PHP začíná značkou:

<?php
a končí značkou
?>
Výpis textu (či HTML kódu) provedete takto:
echo "Sem něco můžete napsat.
Můžete to libovolně odřádkovat.
Pro nový řádek musíte sáhnout do HTML.<br />
Všechno
musí ale být v uvozovkách!";
Každý příkaz se ukončuje středníkem, jinak vyhodí PHP chybu. Všechno samozřejmě musíte psát mezi značky <?php a ?>. Další možnost jak něco vypsat je použít příkaz print:
print "Používá se to podobně jako příkaz 'echo'.";
Do výpisu můžete dát i apostrofy, pokud byste chtěli vypsat uvozovky musíte učinit následující:
echo "On řekl: \"Programovat mě baví!\"";
To samé platí pro příkaz print. Pro psaní HTML kódu to ale můžete udělat jednoduše ji. Stačí prohodit apostrofy za uvozovky.
echo '<a href="http://seznam.cz">Seznam - najdu tam co neznám!</a>';
Pokud byste ale chtěli do textu dát apostrofy musíte to zase ošetřit zpětným lomítkem.

Proměnné
Více o proměnných byste se dozvěděli od nějakého většího odborníka na programování všeobecně, vám ale bude stačit vědět, že do proměnné si můžete libovolný text, číslo či data a pak je použít. PHP má výhodu (pro některé programátory to může být i nevýhoda) a to jednoduchou definici libovolné proměnné.
$libovolnynazev = "Nějaký text nebo číslo";
Dolar je speciální značka pro proměnou, proto kdybyste chtěli vypsat toto:
echo "Řekni $dolar";
nevypíše vám to "Řekni $dolar", ale data, která jsou v proměnné $dolar. Pokud chcete vypsat opravdu $dolar musíte zase použít zpětné lomítko.
echo "Řekni \$dolar";
nebo
echo 'Řekni $dolar';
Tím se dostáváme i k výpisu proměnné pomocí funkce echo. Můžete použít tyto metody:
echo $nazevpromenne;

echo "$nazevpromenne a dalsi text";

echo $nazevpromenne.' dalsi text';
Poslední ukázkou jsme zabrousili k tvoření řetězců. Pomocí tečky můžete spojit i více textu nebo více proměnných, připadně to prokombinovat:
echo "Vítejte uživateli: ".$uzivatel."<br />"."Dnes je".$rekni_den;
Samozřejmě musíte mít proměnné někde výše dosazeny.

Pracování s proměnnými
Proměnné jsou hodně důležité mimo jiné s nimi můžete dělat např. výpočty. Jednoduchý výpočet můžete provést takto:
$a = 5;
$b = 6;
$c = $a + $b;
echo $c;
Tento jednoduchý příklad vám vypíše, jak jinak, 11. Můžete sčítat, odečítat, násobit i dělit
$x = $a * $b - $c;
nebo můžete použít závorky
$z = ($x * ($a + $b)) - $c + 4;
Pozor!
Při psaní proměnných si dávejte pozor na velikost písmen. $a není to samé jako $A.

Příště: Pracování s daty formuláře, práce se soubory.

Níže najdete nějaké zajímavé odkazy.

sobota 17. března 2007

Nová verze Programu na výpočet sil

Stahujte novou verzi programu na výpočet sil. Přibyla nová funkce - výpočet tlaku.

úterý 13. března 2007

TheGoal - online manažer vašich snů

Chystá se stvoření nového online manažeru. Samozřejmě si můžete říct, že takových je tu spousta. Tento však bude něčím neobyčejným. Nechte se ale překvapit.
Zatím je TheGoal pořád ve stádiu vývoje. Hledají se dobrovolníci na testování. Pokud máte zájem pište na admin74@volny.cz mail o vašem zájmu.
Pokud jste, nebo znáte dobrého webgrafika, pak je tu dost práce. Je velká naděje že tento manažer bude ziskový.
Oficiální zahájení testování je 1.dubna.2007, je možné i odložení.

středa 7. března 2007

Update výpočtového programu

Nové funkce:

  1. Výpočet přímé úměrnosti
  2. Výpočet nepřímé úměrnosti
  3. Popis postupu u převodu kilogramů na Newtony
  4. Opravení chyb
Stahujte v menu "Výpočet sil"!

Jak si naprogramovat svůj vlastní program "1"

Možná si říkáte že je hrozně obtížné naprogramovat svůj program. Není to pravda. Pro naprogramování jednoduchého programu (např. na výpočet trojčlenky) je celkem jednoduché. Stačí znát pár příkazů a mít v hlavě trochu logiky.
Python je vhodný pro začátečníky přehledností kódu a jednoduchostí tvoření různých funkcí. Ukážeme si jak na první program.
Aby vám pythonové skripty dobře běželi musíte si stáhnout python zde a pak ho nainstalovat. Předpokládám že máte Windows, pokud máte Linux stáhněte si z domovské stránky Python.org balíček pro svoji verzi.
První program můžete vytvořit jednoduše. Vytvoříte soubor "neco.py". Důležitá je koncovka .py která určuje, že se jedná o skript v pythonu. Tento soubor už můžete spustit. Ovšem, nic se nestane. Aby váš program něco udělal musíte naprogramovat vy.
Otevřete si svůj soubor v nějakém textové editoru. Ze začátku vám napíšu pár příkazů které se vám budou hodit.
print "sem muzete zadat nejakej text"
Příkaz print vám vypíše text, který máte v uvozovkách. Každý příkaz musí být na novém řádku.
Takto uptavený soubor můžete zkusit spustit, ale nejspíše se vám velmi rychle vypne a vy nic nezjistíte.

Aby se vám program hned neukončil můžete ošetřit dalším příkazem:
konec = raw_input("Stistkněte [enter]")
Konec je ve skutečnosti proměnná. Pokud jste ještě neprogramovali a nevíte co to proměná je pak vězte že do proměné si můžete dát jakákoliv data která chcete později vypsat, nebo s nimi jinak dále pracovat. Raw_input znamená že se program zeptá na to co vypíšete do závorky a uvozovek a umožní uživatelovi na to odpovědět. Uživatelova odpověď se zapíše do proměnné. V tomto případě do proměné konec.

jmeno = raw_input("Napište své jméno:")
print jmeno
Tento příkaz se uživatele zeptá na jméno, a hned po zadání ho vypíše.
Pokud si chcete vytvořit proměnou ručně stačí napsat:
nazevpromenne = "text v promene"
Tím jsme se základy Pythonu téměř hotovy, přejdeme k výpočtům
S každou proměnou můžete provádět matematické úkony (+,-,/,*), ale musíte je zapsat v tzv. typu int. To můžete provést následovně
scitanec = int(scitanec)
Tento skript počítá s tím, že proměnná scitanec je už vytvořena, ale je v jiném datovém typu, např str().
Uděláme jednoduchý skript na sečtění dvou čísel zadaných uživatelem.
prvnicislo = raw_input("Zadejte prvni číslo:")
druhecislo = raw_input("Zadejte druhé číslo:")
vysledek = int(prvnicislo)+int(druhecislo)
print vysledek
V prvních dvou řádcích se postupně zeptáte na všechny údaje které potřebujete vědět. V třetím řádku pak tyto údaje sečtete a v posledním řádku data vypíšete na obrazovku. Pokud vás programování začalo bavit doporučuji si přečíst Učebnici Pythonu, aneb Létající cirkus, která vás provede celým pythonem od a do z. Příště vám napíšu jak si vytvořit program na výpočet trojčlenky...

úterý 6. března 2007

Nová verze programu na výpočet sil

Update: kdo jste stáhli před 20:00 6.3.2007 stáhněte si prosím znova. Byly opraveny kritické chyby...
Stahujte zde! Mezi novinky patří převod z kilogramů na newtony apod.
Další články o tomto tématu:
Jak spustit Python ve Windows
Program pro výpočet sil

pondělí 5. března 2007

Jak spustit Python ve Windows (XP)

Rozhodl jsem se že zkusím spustit svůj program ve WXP, protože jsem si dobře vědom, že ne všichni už zkusili operační systém nového tisíciletí (desetitisíciletí?).
Pro spuštění skriptů v Pythonu potřebujete nainstalovanou podporu Pythonu. Stahovat můžete zde. Po nainstalování stačí stáhnout můj skript (stahujte zde) a tento soubor spustit. Přeji příjemné ulévaní při dělání domácích úkolů...

sobota 3. března 2007

Program pro výpočet sil

Protože se mi nechtělo dělat pořád úkoly na fyziku ručně napsal jsem si jednoduchý program v Pythonu, který vše vypočítá za mě a vyjede mi i zápis, výpočet i postup. Stahovat můžete zde. Nevím jak tento program bude běžet ve Windowsech, byl testován pouze na Linuxu (Xubuntu). Čistě teoreticky by to fungovat mělo. Program zatím nepodporuje převod jednotek! Možná ještě někdy vydám další verzi která tyto neduhy opraví.

pondělí 27. listopadu 2006

Trocha filozofie "díl 6"

"Některé věci se nestačí naučit, některé se musejí umět"


Kdysi jsem se bavil s jedním chlápkem o CSM a problémech s tím spojených a onen chlápek navrhl že vyrobíme lepší hru. Ptal jsem se ho jestli už někdy skoušel něco programovat, a on odpověděl že ne. Ptal jsem se ho, v jakým programovacím jazyku by to chtěl programovat. Protože CSM je v Deplhi, neboli v Pascalu chtěl rovněž programovat v tomto jazyku. Ptal jsem se ho, jestli ví kolik stojí program na tvorbu těchto programů. Nevěděl. Ty nejlepší stojí i přes 100 000 Kč.
Ale zpět k tématu. V knížce vás nemůžou naučit všechno a logické uvažování je základ. Něco holt musíme nechat profíkům

Sponzorované odkazy