1 2 3 4 5 6 7 8 9 10 11 12 13

Hudební tvorba / 16. 9. 2014
UVB-76

UVB-76 je tajemná ruská stanice, která minimálně od roku 1972 vysílá zvláštní opakující se bzučení a čas od času se ozve hlas, přeříkávající postupně nesmyslná čísla a písmena.

Nikdo přesně neví, k čemu tato stanice je.

Nejpravděpodobnější (pro mě) je vysvětlení, že se jedná o "tajnou" stanici vysílající šifrovací kódy pro zahraniční špehy, protože i ostatní země mají podobné stanice.

Zajímavosti / 30. 8. 2014
Erdal Inci

Dnes jsem se náhodou dozvěděl o jednom istanbulském umělci, který tvoří pozoruhodné animované GIFy. Základ natáčí na zrcadlovku a výsledné snímky produkuje na počítači. Vznikají krátké smyčky, ve kterých často vystupuje přímo autor a hravě pracuje se světlem, stíny, s pohybem, barvami a vzory.

autor: Erdal Inci

autor: Erdal Inci

Popularita animovaného GIFu mezi umělci opět stoupá. Souvisí to podle teoretiků s tím, jak na internetu těkáme mezi informacemi a vizuálno potřebujeme vstřebat co nejrychleji.

Určitě navštivte jeho blog: http://erdalinci.tumblr.com/

Programování / 27. 8. 2014
Lambda stopky

Pomocí lambda výrazů se dají v Java 8 implementovat i docela elegantní stopky. Budeme vycházet z funkčního rozhraní Runnable, které předáme do speciální statické metody. Tato metoda "obalí" volání metody run dotazem na aktuální systémový čas (v milisekundách) a vypočítá rozdíl mezi koncovým a počátečním časem. Tento rozdíl vypíše do konzole. Největší výhodou, kterou nám zde Java 8 přinesla, je bezpochyby možnost "vytvořit" instanci Runnable při volání metody jako lambda výraz nebo použít referenci na nějakou již existující metodu.

Nejprve si tedy vytvoříme knihovní třídu Stopwatch s jedinou metodou:

  1. public final class Stopwatch {
  2.     public static void measure(final Runnable task) {
  3.         final long startTime = System.currentTimeMillis();
  4.         task.run();
  5.         final long endTime = System.currentTimeMillis();
  6.         final long duration = endTime - startTime;
  7.         System.out.println(String.format("Task duration: %d ms", duration));
  8.     }
  9. }

Stopky potom můžeme používat rozličnými způsoby. Nejkratší je asi zápis pomocí reference na metodu. Pokud chceme měřit čas spuštění nějaké metody na dané instanci, použijeme tento zápis:

  1. Stopwatch.measure(new MargheritaPizza()::bake);

Pokud chceme měřit čas trvání statické metody, existuje tento způsob:

  1. Stopwatch.measure(MyUtilityClass::doSomething);

Jakmile má měřená metoda argumenty, už je zápis o něco delší:

  1. Stopwatch.measure(() -> Calculator.factorial(10));

1 2 3 4 5 6 7 8 9 10 11 12 13