Skip to content

Instantly share code, notes, and snippets.

View janmarek's full-sized avatar

Jan Marek janmarek

  • Prague, Czech Republic
View GitHub Profile
@janmarek
janmarek / createLocalStorageReducer.js
Last active December 27, 2022 21:23
Save part of a Redux store to local storage
function mergeData(reducerDefaults, storedData) {
return {
...reducerDefaults,
...storedData,
};
}
function createLocalStorageReducer(
reducer,
key,
@janmarek
janmarek / index.html
Created May 13, 2022 12:03
React playground
<div id="app"></div>
@janmarek
janmarek / index.html
Created May 13, 2022 12:03
React playground
<div id="app"></div>
@janmarek
janmarek / ServiceLoader.php
Created October 13, 2010 09:08
Dependency Injection Container konfigurovatelný neonem pro Nette
<?php
namespace Neuron;
use Nette\Environment, Nette\String;
use Nette\NeonParser;
use Nette\Reflection\ClassReflection;
use Nette\IContext;
/**
@janmarek
janmarek / FocusDirective.js
Created September 23, 2013 16:32
Angular focus directive
function FocusDirective() {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attrs, ctrl) {
// add inputCtrl to scope
scope[ctrl.$name + 'InputCtrl'] = ctrl;
ctrl.$focused = false;
ctrl.enableEvents = true;
element.bind('focus', function (evt) {
@janmarek
janmarek / bootstrap.css
Last active December 15, 2015 08:29
Bootstrap zkompilovaný Lessem pro PHP a pro JS
.clearfix {
*zoom: 1;
}
.clearfix:before,
.clearfix:after {
display: table;
content: "";
line-height: 0;
}
@janmarek
janmarek / algoritmizace.md
Last active November 5, 2015 18:53
c/c++ a algoritmizace

C/C++ není jediný "opravdový" jazyk. Já bych pro výuku algoritmizace vybral třeba Javu, C#.

Při programování C/C++ musím v praxi řešit spoustu problémů, které s algoritmizací (tak se ten předmět jmenuje) vůbec nesouvisí. Jak mi pomůže, že místo výjimky buď program bude dělat nesmysly, protože někde přepisuje kus paměti co nemá nebo spadne na segfaultu? Nebo že musím řešit rozdíl mezi referencí a ukazatelem? Ruční správa paměti? To jsou prostě věci specifické pro céčko, ne pro programování obecně - algoritimizace.

Subjektivně by se mi taky líbilo, aby první jazyk pro prváky lépe vedl k objektovému nebo funkcionálnímu programování, ne k procedurálnímu. Ale vstřícnost k začátečníkům, jednoduchost a dobré chybové hlášky jsou v tomhle nejdůležitější.

<?php
/**
* @param \Doctrine\ORM\EntityManager $entityManager
* @param \Namespace\FooRepository $fooRepository
* @param \Namespace\BarRepository $barRepository
*/
public function __construct(EntityManager $entityManager, FooRepository $fooRepository, BarRepository $barRepository)
{
...
@janmarek
janmarek / DoctrineQueryBuilderBuilder.php
Created October 10, 2012 17:43
DoctrineQueryBuilderBuilder
/**
* @author Jan Marek
*
* @method QueryBuilderBuilder andWhere() andWhere(\mixed $where)
* @method QueryBuilderBuilder orderBy() orderBy(\string $sort, \string $order = null)
* @method QueryBuilderBuilder from() from(\string $from, \string $alias, \string $indexBy = null)
* @method QueryBuilderBuilder select() select(\string $select = null)
* @method QueryBuilderBuilder addSelect() addSelect(\string $select = null)
* @method QueryBuilderBuilder setMaxResults() setMaxResults(\int $maxResults)
* @method QueryBuilderBuilder setFirstResult() setFirstResult(\int $firstResults)
(ns trees.core)
(require '[clojure.contrib.math :as math])
(use 'clojure.set)
; tools
(defn
^{:doc "get column from 2 dimensional array"
:test (fn []
(assert (= [0 1 2] (get-column [[2 0] [3 1] [1 2]] 1)))