Skip to content

Instantly share code, notes, and snippets.

View ydaniv's full-sized avatar

Yehonatan Daniv ydaniv

View GitHub Profile
@ydaniv
ydaniv / mozGetMatchedCSSRules.js
Created July 2, 2012 12:32
A Gecko only polyfill for Webkit's window.getMatchedCSSRules
// polyfill window.getMatchedCSSRules() in FireFox 6+
if ( typeof window.getMatchedCSSRules !== 'function' ) {
var ELEMENT_RE = /[\w-]+/g,
ID_RE = /#[\w-]+/g,
CLASS_RE = /\.[\w-]+/g,
ATTR_RE = /\[[^\]]+\]/g,
// :not() pseudo-class does not add to specificity, but its content does as if it was outside it
PSEUDO_CLASSES_RE = /\:(?!not)[\w-]+(\(.*\))?/g,
PSEUDO_ELEMENTS_RE = /\:\:?(after|before|first-letter|first-line|selection)/g;
// convert an array-like object to array
@ydaniv
ydaniv / simple-hue.js
Last active August 20, 2019 11:25
Introducing Kampos Examples :: hue simple
import {Kampos, effects} from 'kampos';
const target = document.querySelector('canvas');
const media = document.querySelector('video');
const hueSaturation = effects.hueSaturation();
const kampos = new Kampos({target, effects: [hueSaturation]});
hueSaturation.hue = 90;
@ydaniv
ydaniv / ticker-simple.js
Created August 20, 2019 11:25
Introducing Kampos Examples :: ticker simple
import {Kampos, effects, Ticker} from 'kampos';
const ticker = new Ticker();
const kampos = new Kampos({target, effects: [effects.hueSaturation()], ticker});
const kampos2 = new Kampos({target2, effects: [effects.hueSaturation()], ticker});
// rest of drawing logic ...
ticker.start();
@ydaniv
ydaniv / ticker-full.js
Created August 20, 2019 11:24
Introducing Kampos examples :: ticker full
import {Kampos, effects, Ticker} from 'kampos';
const target1 = document.querySelector('#canvas1');
const media1 = document.querySelector('#video1');
const target2 = document.querySelector('#canvas2');
const media2 = document.querySelector('#video2');
const hueSaturation = effects.hueSaturation();
const brightnessContrast = effects.brightnessContrast();
@ydaniv
ydaniv / duotone.js
Created August 20, 2019 11:23
Introducing Kampos examples :: duotone simplified
export default function () {
return {
fragment: {
uniform: {
u_light: 'vec3',
u_dark: 'vec3'
},
main: `vec3 gray = vec3(dot(lumcoeff, color));
color = mix(u_dark, u_light, gray);`
uniforms: [
@ydaniv
ydaniv / directives.js
Last active December 30, 2015 00:09
AngularJS-SpinJS SpinButton module
define([
'spin'
], function (Spinner) {
return [
function () {
return {
restrict: 'A',
scope : {
spinAction : '&spinAction',
@ydaniv
ydaniv / example.build.js
Created March 10, 2013 07:53
Example of a build config for the r.js optimizer, in a typical UIjet app
({
// appDir : "use if creating a proper app according to RequireJS' conventions",
baseUrl : 'path/to/base',
// dir : "use if we're outputting a directory",
optimize : 'uglify',
paths : {
plugins : '../../lib',
mustache : '../../lib/mustache',
common : '../common',
ui : 'ui',
import os
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
DEBUG = True
FIXTURES = (
'dev/sites',
'dev/objects',
'pages',
@ydaniv
ydaniv / defaultuuidfield.py
Created December 1, 2015 13:11
Django UUIDField with primary key and default value that doesn't break `if self.id` checks inside `save()`
import uuid
from django.db import models
from django.utils.encoding import force_text as force_unicode
class DefaultUUIDField(models.UUIDField):
def __init__(self, *args, **kwargs):
kwargs['blank'] = True
kwargs.setdefault('editable', False)
@ydaniv
ydaniv / DRA API Alternatives
Last active November 20, 2015 01:42
2 API alternatives for the Django-REST-assured testing library.
############
# Option A #
############
class CategoryTestCase(RESTAPITestCase):
"""Tests Category API endpoints."""
base_name = 'category'
user_factory = account_factories.Admin