Skip to content

Instantly share code, notes, and snippets.

View bokner's full-sized avatar

Boris Okner bokner

  • Barrie, ON, Canada
View GitHub Profile
int: W;
int: C;
set of int: WAREHOUSE = 1..W;
set of int: CLIENT = 1..C;
array[WAREHOUSE] of int: max_demand;
array[WAREHOUSE] of float: fixed_cost;
include "globals.mzn";
int: N;
int: T;
set of int: WORKERS = 1..N;
set of int: TASKS = 1..T;
array[TASKS, WORKERS] of int: costs;
include "globals.mzn";
int: N;
int: E;
set of int: NODES = 1..N;
set of int: EDGES = 1..E;
array[EDGES] of int: from;
array[EDGES] of int: to;
alias CPSolver.IntVariable
alias CPSolver.Model
alias CPSolver.Constraint
alias CPSolver.Constraint.Factory
alias CPSolver.Constraint.NotEqual
alias CPSolver.Constraint.Equal
import CPSolver.Variable.View.Factory # For linear
x = IntVariable.new(0..3, name: "x")
y = IntVariable.new(0..3, name: "y")
@bokner
bokner / bit_vector.erl
Created March 4, 2023 21:09 — forked from garazdawi/bit_vector.erl
A shared mutable bit-vector in Erlang
-module(bit_vector).
-export([new/1, get/2, set/2, clear/2, flip/2, print/1]).
new(Size) ->
Words = (Size + 63) div 64,
{?MODULE, Size, atomics:new(Words, [{signed, false}])}.
get({?MODULE, _Size, Aref}, Bix) ->
cd minisearch
## Note the path for solver executable
minisearch --stdlib-dir ./share/minizinc --solver /snap/minizinc/254/bin/fzn-gecode n_queens.mzn
Solution 1:
8 queens, CP version:
. Q . . . . . .
. . . Q . . . .
. . . . . Q . .
. . . . . . . Q
async function loadScript(url) {
let response = await fetch(url);
let script = await response.text();
eval(script);
}
loadScript("https://cdn.jsdelivr.net/pako/1.0.3/pako.min.js")
## Commands to create lttng session/channel, start, stop and view results
### Create session 'test-0131' and channel 'ejabberd', specify the buffer size (4M)
lttng create test-0131
sudo lttng enable-channel ejabberd -u --subbuf-size=4M --session=test-0131
## Enable tracepoints (function_call and function_return)
sudo lttng enable-event -u org_erlang_dyntrace:function_return -c ejabberd
sudo lttng enable-event -u org_erlang_dyntrace:function_call -c ejabberd
@bokner
bokner / LTTng+erlang:trace
Last active January 8, 2025 18:54
LTTng+erlang:trace for tracing function calls/returns
1> l(dyntrace).
{module,dyntrace}
2> Match = [{'_', [], [{return_trace}]}]. %% Enable return trace for functions of any arity
[{'_',[],[{return_trace}]}]
3> erlang:trace_pattern({'_','_','_'}, Match, []). %% Trace all functions
2411
4> erlang:trace(all, true, [call,{tracer,dyntrace,[]}]). %% Trace function calls with dyntrace (i.e. LTTng)
@bokner
bokner / erl
Created December 20, 2015 02:01 — forked from sideshowcoder/erl
debug erlang nif code with lldb
#!/bin/sh
#
# %CopyrightBegin%
#
# Copyright Ericsson AB 1996-2012. All Rights Reserved.
#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be