Archiv pro rubriku: Programování

MySQL – řazení dle písmen a číslic

MySQL - řazeníPro aplikaci vytvářenou na operační systém Android jsem potřeboval zajistit výpis ze vzdáleného serveru. Vytvořil jsem si proto příslušný PHP skript, který měl za úkol vypsat z databáze názvy dostupných seriálů, ty přeměnit do formátu JSON a předat je na stranu klienta v podobě chytrého mobilního telefonu, který tato data následně použije a zobrazí. Problém překvapivě nastal během vytváření dotazu. Ten jsem klasicky v jeho závěru obohatil o klauzuli ORDER BY a byl poněkud zklamán výsledkem. Chování přesně odpovídalo ASCII tabulce, což znamená, že se nejprve objevily seriály začínající číslicí a teprve poté následovaly položky obsahující na první pozici písmeno. Osobně mi připadá přirozenější obrácené pořadí, a proto jsem začal hledat způsob, jak takového cíle dosáhnout.

Po chvíli jsem narazil na řešení spočívající v nasazení dvou řadících operací zároveň. Ve stejné době mi došlo, jakým způsobem budou řetězce složené z čísel interpretovány. Máme-li například trojici 1, 2, 10, objeví se jako 1, 10, 2, protože ctí pravidla pro zacházení s textem. K převodu na číslo poslouží trik, který znám z JavaScriptu. Jednoduše stačí provést číselnou operaci, jenž nezmění výsledek, tedy například vynásobení jedničkou nebo přičtení nuly.

Vraťme se ale nyní k samotnému seřazení. Nejprve zaměníme pořadí u řádků na základě převodu zvolené hodnoty na číslo. Druhá část řazení následuje ihned poté, tentokrát však již bere v potaz textovou reprezentaci. Hotový dotaz v mém případě vypadal takto:

SELECT * FROM shows ORDER BY (name * 1) ASC, name ASC

Jak již vás patrně napadá, sloupec name udržoval název daného seriálu, shows naopak slouží k identifikaci celé tabulky.

Stane-li se, že pořadí písmen následovaných číslicemi nevyhovuje, stačí jednoduše vyměnit obě součásti klauzule ORDER BY:

SELECT * FROM shows ORDER BY name ASC, (name * 1) ASC

Nyní výpis v čele ovládnou číselné údaje s plynulým navázáním záznamů, kde se první znak nese v duchu písmena.

Úvodní poznatky z programování pro Android

Tvořit aplikace pro mobilní zařízení mě vždy lákalo, a proto když se tato příležitost objevila na obzoru, tak jsem ji samozřejmě využil. Na následujících řádcích popíši nejen skutečnosti, které mě během programování překvapily, ale také přinesu řadu tipů, jenž osobám se zájmem o vývoj pro Android patrně stejně jako v mém případě pomohou.

Vývojové prostředí

Prakticky standardizovanou volbu symbolizuje open source IDE Eclipse, jenž dokonce doporučuje i Google. Toto vývojové prostředí však samo o sobě pro tvorbu aplikací nepostačuje, potřebovat budete i SDK pro Android a speciální ADT Plugin. Potěšila mě bezproblémová instalace na operačním systému Linux. Problémy však začaly po rozšíření o Subclipse starající se o snadné použití SVN (systém pro verzování zdrojových kódů). Nalezení správného kompatibilního seskupení Javy a IDE se všemi pluginy mi nejednu hodinu zabralo. Jak jsem však později zjistil, tyto potíže trápilo již mnoho osob přede mnou. Narazil jsem dokonce i na stylový MEME komiks, jenž celou záležitost parodoval.

Zdroje informací v češtině

Mnoho užitečných postupů odkrývá v přehledném tutoriálu portál developer.android.com. Studování článků v angličtině se nebráním, myslel jsem však, že by moji cestu k první aplikaci mohlo výrazně usnadnit seznámení v češtině. Během probíhající akce, kdy se nakladatelství Computer Press potýkalo s inventurou a pozdrželo odesílání zásilek, jsem objednal knihu Android 2. K ní mám dohromady jen dvě výhrady. Za zbytečné považuji úvodní seznámení autora s kompilací v prostředí příkazového řádku. Jak jsem již zmínil, Eclipse představuje nepsanou normu. Druhá výtka směřuje k překladu, jenž však patrně většině vyhovuje. Cílené překládání všech výrazů mě několikrát spíše zmátlo, než aby pomohlo. V případě záměny activity za aktivita nejde o nic zásadního, u termínu záměr (původne intent) ve specifickém kontextu jsem se však zpočátku musel skutečně zamyslet, abych význam odstavce pochopil. Ve všech jiných ohledech však publikace přebírá formu spolehlivého průvodce.

Příchozí dotazy:

  • programujeme hry pro android 4 pdf

Editor TinyMCE – implementace a základní nastavení

EditorChcete-li dát uživateli na webové stránce prostor k vyjádření obsáhlejší myšlenky, hodí se nabídnout alespoň základní editor, který podpoří tvůrčí činnost vhodným formátováním. Mezi oblíbenou volbu patří projekt TinyMCE, který využívá například i WordPress. Editor bez problémů funguje ve všech nejpoužívanějších prohlížečích a zvolená open-source licence (LGPL) přidává další pádný důvod, proč se rozhodnout pro zakomponování.

Hotovo je za několik minut

Na webové stránce tinymce.com/download/download.php si stáhněte balíček obsahující vše potřebné pro nasazení na webu. Lokalizační soubory poté naleznete zde. V obsáhlém seznamu se nachází i čeština. Po stažení jazyka překopírujte soubory na odpovídající umístění ve složce „tiny_mce“ v hlavním balíčku. Samotná implementace začíná v hlavičce ve formě JavaScriptu a pokračuje uvnitř samotné stránky vložením formulářového prvku textarea. Během inicializace editoru lze nastavit mnoho užitečných vlastností.

<html>
<head>
<script type="text/javascript" src="./inc/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
language : "cs",
entity_encoding : "raw",
mode : "textareas",
theme : "advanced",
plugins: "paste,wordcount",

theme_advanced_buttons1 :
"code,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2 :
"undo,redo,|,paste,pastetext,pasteword,|,bullist,numlist,|,link,unlink",
theme_advanced_resizing : true
});
</script>
</head>
<body>
<textarea name="clanek" rows="15" cols="80" style="width: 100%">
</textarea>
</body>
</html>

TinyMCE

TinyMCE dokáže změnit svůj vzhled. Protože si většinou lidé přejí upravit editor dle vlastních představ, používá se zpravidla volba theme : „advanced“. O použití staženého českého jazyka se poté postará language : „cs“. Diakritika se však může zobrazovat ve zdrojovém kódu s pomocí speciálních znaků (entit). Znak á proto bude například nahrazen za &aacute;. Toto chování zakáže ‚entity_encoding : „raw“.

Úprava menu

Přidání nebo naopak odebrání dostupných funkcí představuje častý požadavek. Jednoduše stačí dostupná tlačítka specifikovat v rámci konkrétního řádku, jež vždy začíná na theme_advanced_buttons a končí číslovkou. Optické oddělení příbuzných tlačítek zajistí znak | (svislá čára). Některé z funkcí vyžadují předchozí načtení pluginu. Této problematice se blíže věnuje tinymce.com/wiki.php/Plugins a podružné stránky v pravém menu.

Pouze pro čtení

Toužíte po pouhém zobrazení textu bez možnosti jeho editace? V tom případě stačí odstranit sekci věnující se pluginům i konkretizaci dotyčných tlačítek. Následně již jen povolte mód umožňující pouze čtení s pomocí readonly : true.

<html>
<head>
<script type="text/javascript" src="./inc/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
language : "cs",
entity_encoding : "raw",
mode : "textareas",
theme : "advanced",
readonly : true
});
</script>
</head>
<body>
<textarea name="clanek" rows="15" cols="80" style="width: 100%">
</textarea>
</body>
</html>