Skip to content

Instantly share code, notes, and snippets.

Jakub Godawa vysogot

Block or report user

Report or block vysogot

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@vysogot
vysogot / MultipleOutputTimeline.ino
Last active Aug 29, 2015
Arduino – multiple output control with timeline
View MultipleOutputTimeline.ino
/* Algorithm based on delay for running different outputs in given LOW/HIGH intervals
This code is meant to control the relay grid behind a washing machine
and it can be used for many other devices. By Jakub Godawa (vysogot) */
/* addresses for Arduino Uno (!setup properly for Arduino Mega or other!) */
const int r1out = A0;
const int r2out = A1;
const int s3out = A2;
const int s4out = A3;
const int s5out = A4;
@vysogot
vysogot / permset.rb
Created Jul 4, 2011
permute sets with acumulators
View permset.rb
def permute(*args)
# initialize the register for each array
# with [array itself, offset, its size]
memory = []
perm_count = 1
args.each do |array|
size = array.size
memory << [array, 0, size-1]
@vysogot
vysogot / croissant.pl
Created Jul 5, 2011
croissant equation in eclipse clp
View croissant.pl
:- lib(ic).
croissant(X,Y,Z) :-
(X^2+Y^2+Z^2+7*sqrt(5)/2-11/2)^2 - ((1+sqrt(5))*X-7+3*sqrt(5))^2-(1+sqrt(5))^2*Y^2 $= 0,
locate([X,Y,Z], 1e-5).
# one of the solutions
croissant(X,Y,Z).
X = X{0.0 .. 7.4073630564431975e-6}
Y = Y{1.066573563196598 .. 1.0665754743970506}
@vysogot
vysogot / croissant.rb
Created Jul 5, 2011
croissant ordering
View croissant.rb
bar.receive_order(client.put_words_in_mouth('Un croissant, por favor.').speak_up)
@vysogot
vysogot / test_user_story.rb
Created Jul 5, 2011
user stories for test unit
View test_user_story.rb
module Test::Unit::UserStory
class UserStoryTestCase < ActionController::IntegrationTest
class << self
attr_accessor :description
alias :it :test
def criteria(name, options = {}, &block)
klass = create_class(name, self, &block)
helper_klass = options[:js] ? CapybaraJavascriptTestHelper : CapybaraTestHelper
View example_user_story_test.rb
require File.expand_path(File.dirname(__FILE__) + "/../test_helper")
include Test::Unit::UserStory
story "Create the thing", %{
As a user
I want to create something
In order to show something
} do
criteria "without js when logged in" do
@vysogot
vysogot / fast_permute_sets.rb
Created Jul 7, 2011
Fast, fully iterative permute sets
View fast_permute_sets.rb
def permute(*args)
# filter the arguments
args.reject! {|x| !x.is_a?(Array) || x.empty?}
# get the number of all combinations
total = args.inject(1) {|total, array| total * array.size}
# prepare the small_cycles array to know how many times
# one element should be repeated in a loop
View fast_cartesian_product.rb
def cartprod(*args)
result = [[]]
while [] != args
t, result = result, []
b, *args = args
t.each do |a|
b.each do |n|
result << a + [n]
end
end
@vysogot
vysogot / filter_matcher.rb
Created Jul 16, 2011
FilterMatcher module
View filter_matcher.rb
module FilterMatcher
#
# define filter in a class that uses this module
# named like:
# - name_filter
# - age_filter
#
# they should a filtered array
#
@vysogot
vysogot / people_matcher.rb
Created Jul 16, 2011
Using FilterMatcher example
View people_matcher.rb
class PeopleMatcher
include FilterMatcher
attr_reader :db
def initialize(db, input)
@db, @input = db, input
end
def match
You can’t perform that action at this time.