Jun 02 2008

Nulový počet řádků v MySQL

Tag: MySQLJens @ 19:01

Jak udělat co nejjednodušší dotaz v MySQL tak, aby vrátil vždy nulový počet řádků? Je to blbost, ale někdy se to může hodit — spoléháte-li např. v PHP na výsledek dotazu: if ( $res->fetchRow() ) nebo počet řádků výsledků: $res->rowCount()

Můžete použít něco takového:

mysql> SELECT 0 LIMIT 0;
Empty set (0.00 sec)

jednoduché (nepotřebujete žádnou tabulku ani funkci), rychlé** a v určitých případech užitečné :) Možná to jde i jednodušeji, pokud ano, pište jak na to do komentářů, rád se přiučím.

**Benchmark (IBM ThinkPad T41 – Intel(R) Pentium(R) M processor 1400MHz)

mysql> SELECT BENCHMARK(1000000,(SELECT 0 LIMIT 0));
+---------------------------------------+
| BENCHMARK(1000000,(SELECT 0 LIMIT 0)) |
+---------------------------------------+
|                                     0 |
+---------------------------------------+
1 row in set (0.04 sec)

Apr 29 2008

Zend Framework: View Helpers

Tag: Zend Framework,ZprávičkyJens @ 14:31

Od verze 1.5 jsou součástí Zend Frameworku i nové View Helpry. Některé jsou pouze upravené ale spousta jich je přidána. Na Zend Developer Zone včera vyšel článek View Helpers in Zend Framework, který se věnuje přehledu nových helperů.

V současnosti jsou helpry rozděleny do třech kategorií:

  1. Formulářové helpry – slouží pro generování formulářů a elementů spojených s formuláři
  2. Placeholders helpry – slouží pro generování struktury stránky, jež je poskládaná z jednotlivých segmentů do kterých lze ukládat (a načítat) obsah nezávisle. Nakonec se tyto segmenty (typicky s využitím Zend_Layout) vykreslí jako ucelená stránka.
  3. Utility helpry – používají se především pro přístup k ostatním komponentám ZF jako např. layout (Zend_Layout), překlady (Zend_Translate), generování URL na základě aktuálního routování (Zend_View_Url_Helper), atd.

Zajímavostí jsou i tzv. Partials helpry, které patří do třetí kategorie: Utility helprů. Ty při renderování používají vlastní prostor proměnných který si definujete. Tedy namísto:

$this->view->foo = 'neco';
$this->view->render('bar.phtml');

použijete toto:

$this->view->partial('bar.phtml', array('foo' => 'neco-jineho'));

To lze s výhodou použít v případě, kdy chcete například v cyklu renderovat stále jednu šablonu a nechcete si přepisovat nějaké „globální“ View proměnné.

Další podrobnosti najdete ve výše zmíněném článku a samozřejmě také na webu dokumentace (který je prý celý postavena na ZF :-) Zendu — Zend_View.


Apr 16 2008

Apache 2: %2F a %5C v URL – „404 Not Found“

Tag: Apache,SEOJens @ 09:05

Výchozí nastavení direktivy AllowEncodedSlashes je v Apache 2 nastaveno dle oficiální dokumentace na Off. To způsobí, že v případě že se v URL objeví %2F, tedy „enkódovaný“ znak / (případně %5C pro ) Apache hodí výchozí chybovou hlášku 404 Not Found přičemž tato chyba nezohlední ani vlastní stránky 404 a vždy se zobrazuje výchozí hláška Apache.

Pokračování článku…


Mar 31 2008

Zend Framework: Routování subdomén

Tag: PHP,SEO,Zend FrameworkJens @ 00:00

Routování v Zend Frameworku (ZF) není nic zvláště složitého. Stačí pouze lehce nahlédnout do dokumentance a začít používat defaultní routovaní případně si nastavit nějaká jiná vlastní pravidla.

Problém ale nastává v případě, že chcete do routování zahrnout subdomény. Na to ZF není přímo (zatím? — v době psaní tohoto článku je stable verze 1.5) vybaven a je tedy třeba použít kousek „vlastního kódu“.

Pokračování článku…


Mar 26 2008

Debian: Apache 2 + envvars

Tag: Apache,Debian,LinuxJens @ 12:00

Nedávno jsem při aktualizaci Apache na jednom ze strojů zjistil, že v testing verzi Debianu (lenny) nastali nějaké zásadnější změny v konfiguračních souborech, jmenovitě v /etc/apache2/apache2.conf které bylo třeba ručně odsouhlasit před vlastní aktualizací.

Změna se týká předávání parametrů z prostředí uživatele pod kterým je server spouštěn do konfigurace Apache serveru – environment variables. Imho velmi zajímavá a vhodná věc. O co jde?

Pokračování článku…


Mar 22 2008

Neuronová síť Backpropagation v PHP

Tag: Nezařazené,PHPJens @ 23:00

Jedná se o velmi triviální příklad dopředné neuronové sítě se třemi neurony a třemi vrstvami (vstupní vrstva, jedna skrytá vrstva a výstupní vrstva) a sigmoidou jako aktivační funkcí. Síť se dvěma vstupy a jedním výstupem lze naučit jednoduché logické funkce (např. XOR).

Pokračování článku…


Mar 18 2008

Vyšel Zend Framework 1.5

Tag: Zend Framework,ZprávičkyJens @ 18:20

Včera, tedy 17.3.2008, vyšla další významná stabilní verze Zend Frameworku, v tuto chvíli tedy již 1.5.0.

Hlavní novinky jsou:

  • přidána komponenta Zend_Form pro generováni, validaci a práci s formuláři včetně podpory Ajaxu (Zend_Form tutoriál)
  • přidána komponenta Zend_Layout a související úprava Zend_View pro snazší práci s šablonami

Dále byla přidána podpora OpenID a Microsoft’s InfoCard přes Zend_Auth komponentu, vylepšena byla podpora UTF-8 pro generování PDF, přidány funkce pro lepší integraci Ajaxu a přidány funkce pro práci se službami Google.

Více se dočtete v oficiálním ohlášení. Současně s tímto byl také přepracován web po grafické stránce pro snadnější navigaci. Takže neváhejte, brouzdejte a upgradujte ;)


Mar 03 2008

PHP hádanka – isset()

Tag: PHPJens @ 16:30

Co vypíše následující kód?

<?php

  $klic = 'klic';
  $arr = array($klic => 'hodnota');

  var_dump(isset($arr[$klic]['cokoliv']));
?>

Pokračování článku…


Feb 26 2008

Debian, Apache2 + ssl + mod_rewrite

Tag: Apache,Debian,Linux,SEOJens @ 23:59

Výchozí instalace web serveru Apache2 na Debianu (Etch, Lenny) neobsahuje podporu SSL — tedy protokolu HTTPS. Zároveň neobsahuje ani zavedený modul mod_rewrite toliko potřebný pro krásná URL a SEO optimalizaci. Vše lze napravit několika málo příkazy.

Pokračování článku…


Feb 14 2008

Instalace eAcceleratoru na Debianu

Tag: Debian,Linux,PHPJens @ 23:00

eAccelerator je velmi užitečný nástroj pro „zrychlení“ PHP. Funguje na principu vytváření mezipaměti (cache) PHP skriptů a v případě že máte na serveru slabší stroj, nebo prostě jen potřebujete maximálně zrychlit vaše stánky je vhodné uvažovat o jeho použití. Jeho výhody se ukáží především při programování projektů založených na mnoha knihovnách, které se v průběhu vývoje nemění nebo pouze minimálně. eAccelerator vytvoří cache všech těchto PHP skriptů a není tedy nutné je při každém načtení stránky znovu kompilovat.

Pokračování článku…


« Předchozí stránkaDalší stránka »