Poznámky

The Zen of Todoist

Now is better than later.
Later is better than never.
Organized is better than messy.
Big things are composed by smaller things.
Smaller things are done by action.
Think like a person of action.
Act like a person of thought.
The beginning is half of every action.
The longest journey starts with the first step.
Everything should be made as simple as possible.
But not simpler.
Celebrate any progress.
Don't wait to get perfect.
Deadlines and stress are a part of life.

(Zdroj: http://todoist.com/Help/viewAbout)

Ořez obrázku pomocí JS a PHP

http://www.chose.cz/…rez-obrazku/

Model

dgx-ova břitva dobrého MVC

  • když změním názvy sloupců v databázové tabulce, bude nutné editovat kód controlleru či view?
  • když změním HTML rozhraní za Flashové, bude nutné editovat kód modelu? (zmíněno i v článku)
  • když přehodím rozložení prvku na stránce, bude nutné editovat controller nebo model?

Převzato z komentáře od Davida Grudla.

  • model nemá vědět o tom, že nějaké pohledy/presentery existují
  • view o modelu vědět také nemusí (pasivní view), nebo naopak může data tahat přímo z něj, dle zvolené koncepce
  • presenter seznámí view s modelem (ne naopak) a realizuje uživatelské akce. Ty patří do tří kategorií
    • změna view (nejčastější)
    • zmena stavu (interakce v rámci aktuálního view)
    • příkaz pro model

Model ve většině případů bude tvořit více tříd. Jedna z nich se může starat právě o zapouzdření připojení k DB, které využijí jiné třídy modelu. Ale z pohledu celé aplikace je to chápáno jako jeden celek, jeden model.

Z pohledu jednotlivých vizuálních komponent i tyto mohou mít svůj vlastní malý model. Dal by se nazývat třeba komponentový model. Propojení těchto modelů s hlavním modelem pak opět zajistí presenter.
Z pohledu celé aplikace se tyto modely budou spíš považovat za součást prezentační logiky, než součást modelu.

Převzato z Nette fóra.

PHP: Jak ve Windows zjistit, zda je soubor skrytý

function isFileHidden($file)
{
    if (!is_file($file)) {
        throw new Exception("Soubor '$file' nebyl nalezen.");
    }

    exec("dir $file /ah /b", $output);

    return in_array($file, $output);
}

Proč mě sere NetBeans

  • přetahování záložek s otevřenými soubory
  • změna přípony souboru
  • přidání nového souboru
  • $t + enter za sebou nezvládne
  • failuje odsazování (čas od času)
  • nemožnost zobrazit si bílé znaky

Gem Miner: Dig deeper

  • White Opal
  • Red Opal = 60
  • Black Opal = 90
  • Ruby
  • Emerald = 81
  • Sapphire = 100
  • Diamond = 115
  • Uranium = 120

Zprovoznění diakritky v příkazové řádce Gitu

Transakce + zámky MySQL tabulek dohromady

$this->db->query('SET autocommit = 0'); // nelze použít $db->begin()

try
{
    $this->db->query('LOCK TABLES [...] WRITE');
    ...
    $this->db->commit();
    $this->db->query('UNLOCK TABLES');
}
catch (Exception $e)
{
    $this->db->rollback();
    $this->db->query('UNLOCK TABLES');
    throw $e;
}

Normalizace konců řádků

find . -name "*.php" -exec dos2unix --d2u {} \;

PhpStorm issues

$curl->setCallback(function (Request $request, RollingCurl $curl) {
    $extra = $request->getExtraInfo(); // $extra marked as unused
    $extra['callback']($request, $curl);
});

Navigace


Kontakt

Jan Tvrdík
ICQ: 238-999-481
MSN: jan.tvrdik@live.com