Vyhrál jsem slevový kupón na nákup webhostingových služeb u společnosti WEDOS. Nemám pro něj nyní využití, takže ho dávám k dispozici.
Výše slevy: 20%
Kód slevového kupónu: TK2UDC59V5
Platnost kupónu do: 06.06.2012
16.5.2012
Vyhrál jsem slevový kupón na nákup webhostingových služeb u společnosti WEDOS. Nemám pro něj nyní využití, takže ho dávám k dispozici.
Výše slevy: 20%
Kód slevového kupónu: TK2UDC59V5
Platnost kupónu do: 06.06.2012
31.3.2012
Dnes přišla potěšující zpráva, že po dlouhém čekání spouští webhostér WEDOS podporu HTTPS. Oficiální datum spuštění je pondělí 2.dubna ale nedočkavci si mohou zažádat o spuštění HTTPS již nyní pomocí jejich kontaktního formuláře.
Z oficiální zprávy WEDOS-u:
Spouštíme podporu HTTPS u webhostingu
Nabízíme 2 varianty HTTPS:
- se sdíleným certifikátem - zdarma, vhodné pro váš zabezpečený přístup do administrace CMS či e-shopu, nevhodné pro návštěvníky a zákazníky
- s vlastním certifikátem - vhodné i pro zabezpečený přístup vašich návštěvníků a zákazníků na vaše WWW stránky, nutno u webhostingu aktivovat vlastní IP adresu – zpoplatněno 100 Kč bez DPH měsíčně (120 Kč s DPH) a nutno dodat vlastní certifikát
13.3.2012
Pokud delší dobu používáte virtualizovaný stroj a jako já jste při jeho zakládání špatně odhadli velikost disku, jednoho dne vám místo prostě dojde.
Řešení je prosté:
VBoxManage modifyhd "debian.vdi" --resize 20480
9.3.2012
Uniqselect je jQuery plugin který jsem vytvořil pro potřeby jednoduchého dotazníkového systému který připravuji. Umožňuje vybrat unikátní hodnoty ve skupině select-ů se stejným seznamem hodnot. Hodí se například pro úlohy typu „Ohodnoťte následující odpovědi jako ve škole..“
Zdrojové kódy lze stáhnout přímo uniqselect repository na Github-u.
Použití je velmi triviální.
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="jquery.uniqselect.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("fieldset").uniqselect();
});
</script>
<form>
<fieldset id="group1">
<legend>Group1 - 3 selects, unique values (1-5)</legend>
<select class="custSelect">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<select class="custSelect">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<select class="custSelect">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</fieldset>
</form>
Pro lepší představu je k dispozici uniqselect online demo.
21.2.2012
Pro zájemce o vyzkoušení android herního frameworku AndEngine zde stručně popíšu postup instalace všeho potřebného. Popisovaný postup platí pro poslední verzí AndEngine (GLES2) jejíž zdrojové kódy byly přesunuty na GitHub. Adresa celé repository je https://github.com/nicolasgramlich. Instalace proběhla na 32-bit verzi Windows XP.
Co je nutné stáhnout a nainstalovat:
Po instalaci a konfiguraci všeho výše uvedeného lze přejít k importu zdrojových kódů frameworku AndEngine z repository. Pokud jste Eclipse zelenáč a nevíte jak nainstalovat rozšíření EGit, použijte Google nebo se podívejte se jak instalovat rozšíření pro Eclipse.
Pro import zdrojových kódů nás budou zajímat následující adresy:
Každou z předchozích adres je nutné několika kroky naklonovat do lokální repository.
Klikněte na File->Import
Vyberte Git->Projects from Git
Klikněte na tlačítko Clone a do URI vložte adresu repository ze seznamu výše. Přejděte na další krok, nechejte vybrané všechny komponenty a poté pokračujte dalším krokem.
V posledním dialogu se Eclipse zeptá kam má repository naklonovat. Pozor! Je nutné mít Git repository na stejném disku jako bude váš budoucí projekt.
Po vytvoření všech projektů by měla struktura projektů vypadat podobně jako je vidět na následujícím obrázku.
Takto vytažené projekty ještě nejdou sestavit. U všech projektů je třeba změnit verzi kompilátoru na 1.6. Nastavení najdete v Project->Properties->Java Compiler. Následně pak opravit závislosti kliknutím na Android Tools -> Fix Project Properties.

21.2.2012 DOČASNÉ OPRAVY:
V posledních verzi je v projektu AndEngineExamples závislost na projekt AndEngineScriptingExtension který ještě nemá žádné zdrojové kódy a nelze jej zatím z GitHub-u importovat. Neplatnou závislost je možné odebrat přes Project->Properties->Android.
Další dočasnou opravou je úprava zdrojových kódů podle nahlášené Issue #48. V aktuální verzi na GitHub je již opraveno.
Pokud jste zvládli všechny předchozí kroky můžete spustit projekt AndEngineExamples a v emulátoru by vás měla potěšit následující obrazovka:
9.2.2012
Poslední dobou často potřebuji objemná testovací data ve formátu JSON. Jak už to tak bývá, nějaké existující generátory jsem našel ale žádný mi úplně nevyhovoval.
Pro potřeby generování testovacích JSON dat jsem si proto vyrobil šikovný on-line JSON generátor. Aplikace je napsaná pomocí Dojo toolkit frameworku.
8.6.2011
V jednom větším projektu používám z historických důvodů jQuery. Při menší refaktorizaci jsem si chtěl ulehčit život a vytvořil jsem jednoduchý, několikařádkový parser.
Parser najde všechny prvky s atributem „data-widget-type“ a pokusí se zavolat oblužnou funkci. Argumenty předávané oblužné funkci lze definovat v atributu „data-widget-attr„. Celé se to hodí např. pro automatické vytváření ui widgetů.
Jedná se opravdu o jednoduchý kód pro ulehčení práce. Cílem nebylo vytvořit rozsáhlý parser s automatickým načítáním AMD modulů apod.
/**
* Tato funkce prohledá DOM model a získá elementy s atributem "data-widget-type".
* Pro každný nalezený element poté zavolá obsluhu pojmenovanou 'parsed_'+ typ_widgetu
*/
$.fn.parse = function(){
/**
* Parsuje hodnotu atrubutu 'data-widget-attr' ze které
* se pokusí získat parametry pro oblužnou funkci
* Příklad syntaxe: data-widget-attr="prop1:'value',prop2:'value'"
* @param {String} strAttr
*/
var _parseAttributes = function(strAttr){
if(strAttr && strAttr.length){
try{
// return $.parseJSON("{" + strAttr + "}"); //toto je hezké ale nefunkční pokud se použijí apostrofy
strAttr = strAttr.replace('"','"');
return eval("(" + "{" + strAttr + "}" + ")");
}catch(e){
throw new Error(e.toString() + " in data-widget-attr='" + strAttr + "'");
}
}
};
$('[data-widget-type]',$(this)).each(function(){
var _type = $(this).attr('data-widget-type');
var _attr = $(this).attr('data-widget-attr');
var _func = 'parsed_'+_type;
// pro zjednodušení jsou obslužné funkce v globálním kontextu
if(window[_func]){
window[_func]($(this), _parseAttributes(_attr) || {});
}
});
return this;
};
Příklad použití mluví sám za sebe:
/**
* Definice obslužné funkce pro data-widdget-type="mujWidget"
* @param {Object} prvek nad kterým se fce volá
* @param {Object} argumenty definované v 'data-widget-attr'
*/
var parsed_mujWidget = function(node, attributes){
//definice výchozích hodnot
var _mixin = {klic: 'hodnota'};
//mix s dodanými argumenty
var attrs = $.extend(_mixin, attributes);
//vysledne argumenty: attrs = {klic:'hodnota', klic2:'moje-custom-hodnota'}
//nakonec si zavolám požadovanou funkci
mojeFunkce(attrs);
};
//zapojení parseru po načtení stránky
$(document).ready(function(){
$(document).parse();
});
Ve stránce pak stačí zápis:
<!-- nad timto prkem se automaticky zavola "mojeFunkce" --> <div data-widget-type="mujWidget" data-widget-attr="klic2:'moje-custom-hodnota'"></div>