Skip to content

Instantly share code, notes, and snippets.

@mgiagante
mgiagante / semaphores_4.txt
Last active September 27, 2017 02:35
Semaphores 4
assignment assignments[40] = ([40] nil) // Inicializa las tareas en nulo.
error_report corrections[40] = ([40] nil) // Inicializa las correcciones en nulo.
boolean has_left[40] = ([40] false) // Indica si el alumno se ha ido.
boolean doing_assignment[40] = ([40] false) // Indica si el alumno i esta ocupado haciendo tarea.
sem can_do_assignment[40] = ([40] 0)
sem can_see_correction[40] = ([40] 0)
sem can_check_assignment = 0 // Alumnos esperando corrección
@mgiagante
mgiagante / semaphores_5.txt
Last active October 2, 2017 02:02
Semaphores 5
sem task_chosen[0..49] = ([50] 0)
sem able_to_work[0..49] = ([50] 0)
sem notify_completion[0..9] = ([10] 1) // Mutex array for notifying each shared task was finished by a single student.
sem grade_mutex = 1
sem some_task_was_finished = 0
task tasks[0..9] = ([10] generate_task())
int students_that_finished[0..9] = ([10] 0) // Amount of students that finished working on each task.
int grade[0..9] // Puntaje. Es el orden en el que cada equipo 0..9 terminó de trabajar en su tarea.
int finished_task // Sólo la declaro. No la inicializo porque su valor inicial no importa.
sem arrived[0..E - 1] = ([E] 0)
sem start_working[0..E - 1] = ([E] 0)
sem finish_task_mutex = 1
int remaining_tasks = T
int tasks_done[0..E - 1] = ([E] 0)
task tasks[0..T - 1] = ([T] generate_task())
reward rewards[0..E - 1] = ([E] null)
process Employee {
while true {
serve_customer(pop(queue))
}
}
process Customer[c = 0 to N - 1] {
while timeout[c] < 10 {
p(wait_a_minute)
}
RSpec.configure do |config|
config.use_transactional_fixtures = false
config.before(:suite) do
DatabaseCleaner.strategy = :transaction
DatabaseCleaner.clean_with(:truncation)
end
config.around(:each) do |example|
DatabaseCleaner.cleaning do
require "cuba"
require "mote"
require "mote/render"
Cuba.plugin Mote::Render
require_relative "controllers/pages"
require_relative "controllers/tasks"
require_relative "db/data_store"
@mgiagante
mgiagante / medium-oop-series-examples-2.rb
Last active May 4, 2018 03:55
Encapsulation example for my object-oriented programming series in medium.com
class Dragon
def initialize
# ...
end
def fly
take_off
100.times do
move_wings(:horizontally)
@mgiagante
mgiagante / medium-oop-series-examples-1.rb
Last active April 2, 2018 08:10
Class definition an instantiation example.
class Dog
def initialize(name)
@name = name
end
def bark
puts "woof!"
end
end
public
def greet(who)
"Hi, #{who}!"
end
class MyClass
@@my_class_variable = "Class variable content."
def initialize
@my_instance_variable = "Instance variable content."
end
# Class methods have a "self." before their name. For now we won't go into the details
# on why it is that way.
def self.thing_my_class_does