Skip to content

Instantly share code, notes, and snippets.

Andy Till andytill

Block or report user

Report or block andytill

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
@andytill
andytill / no war on russia motion.md
Last active Mar 25, 2018
no war on russia motion
View no war on russia motion.md

Even before this horrendous chemical attack in Salisbury, this Government has been following a dangerous and aggressive line of rhetoric and action that will inevitably escalate conflict between the UK and Russia. In the context of the Syrian War, where Britain and Russia are supporting opposing sides in a proxy war[1], the majority of the casualties of this escalation will likely be Syrian.

This Constituency Labour Party believes that the line taken by the Labour Leadership, to require evidence of Russian involvement before taking action is correct but we must go further. Escalating conflict MUST be ruled out, regardless of the origin of the attack. The Government and Labour must not fight fire with fire, it must stop and choose a path that leads to peace rather than one that taken to it's conclusion, will end in war[2].

This Constituency Labour Party therefore calls on the Prime Minister, Theresa May, for restraint and de-escalation in words and actions towards Russia, and must stop military drills and ex

View gist:ed553efc10aa16a13866fe53b6617ea4
andy.till ~/work erl -sname lol -setcookie lol
Erlang/OTP 20 [erts-9.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [kernel-poll:false]
Bus error: 10
andy.till ~/work erl -sname lol -setcookie lol
Erlang/OTP 20 [erts-9.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [kernel-poll:false]
Eshell V9.1 (abort with ^G)
(lol@ATILL-02)1> Segmentation fault: 11
@andytill
andytill / replace_process_state.md
Last active Mar 14, 2017
Replace or Modify Process State
View replace_process_state.md

Given a process state using the following record, how could we modify one of the record fields?

-record(state, {
          status :: init_in_progress | {init_failed, Reason::term()} | ready,
          qbufs = [] :: [{qbuf_ref(), #qbuf{}}],
          qbuf_serial_id = 0 :: non_neg_integer(),
          total_size = 0 :: non_neg_integer(),
          %% no new queries; accumulation allowed
          soft_watermark :: non_neg_integer(),
View 1001-error.sql
riak-shell(3)>INSERT INTO grouptab3 VALUES('x');
Error (1001): <<"Invalid date/time string">>
riak-shell(4)>INSERT INTO grouptab3 VALUES(NULL);
Error (1003): Invalid data found at row index(es) 1
riak-shell(5)>INSERT INTO grouptab3 VALUES(2.3);
Error (1003): Invalid data found at row index(es) 1
riak-shell(6)>INSERT INTO grouptab3 VALUES(2.3, 'hi');
Error (1018): too many values in row index(es) 1
riak-shell(7)>SHOW CREATE TABLE grouptab3;
CREATE TABLE grouptab3 (a TIMESTAMP NOT NULL,
View gist:0ea161d304c139be2523d9289b5b5325
diff --git a/tests/ts_simple_blob.erl b/tests/ts_simple_blob.erl
index 7235a26..a9fdb42 100644
--- a/tests/ts_simple_blob.erl
+++ b/tests/ts_simple_blob.erl
@@ -52,10 +52,15 @@ confirm() ->
Expected =
{ok, {Headers, Data}},
- Cluster = ts_setup:start_cluster(1),
+ lager:info("FREAD OUTPUT ~p", [io:fread("Hi.", "\n")]),
View retry.erl
%%
retry_delayed(Fn, DelayMs, TotalElapsedMs) when is_function(Fn),
is_integer(DelayMs),
is_integer(TotalElapsedMs),
TotalElapsedMs > DelayMs ->
retry_delayed2(Fn, DelayMs, TotalElapsedMs, ordsets:new()).
retry_delayed2(Fn, DelayMs, TotalElapsedMs1, Errors1) ->
View connect to riak shell.sh
erl -remsh riak_test@127.0.0.1 -setcookie riak -name debug@127.0.0.1
@andytill
andytill / failure-diffs.md
Created Nov 16, 2016
Better eunit failure output with unite and `assertEqual`
View failure-diffs.md

Problem: an eunit test was using ?assertMatch over a large datastructure and the output was truncated and impossible to debug. The failure was:

**error:{assertMatch_failed,[{module,riak_kv_qry},
                    {line,428},
                    {expression,"Res"},
                    {pattern,"{ ok , { _ , _ , ExpectedRows } }"},
                    {value,{ok,{[<<"Subquery">>,<<"Coverage Plan">>,
                                 <<"Range Scan Start"...>>,
                                 <<"Is Start Inc"...>>,<<"Range Sc"...>>,
View EUG demo setup.md

Please install VirtualBox 5.1.2 or compatible from https://www.virtualbox.org/wiki/Downloads, and Vagrant 1.8.5 or compatible from https://www.vagrantup.com/downloads.html. The virtual machine has been tested with these versions only.

Download the erlyberlydemo.box file from google docs, using the link https://drive.google.com/file/d/0B3ta2LL_LQZyTG8wQy1LRmJWSHM/view?usp=sharing and run the following commands. It assumes the downloaded box file is at ~/Downloads.

vagrant box add erlyberlydemo ~/Downloads/erlyberlydemo.box
mkdir erlyberlydemo
cd erlyberlydemo
vagrant init erlyberlydemo
@andytill
andytill / Erlyberly-EUG.md
Last active Jul 27, 2016
Quick Start for the Erlyberly EUG demo using Riak TS and Erlyberly
View Erlyberly-EUG.md

Riak TS commands

for node in {1..3}; do ~/riak_ts/dev/dev$node/bin/riak stop; done
for node in {1..3}; do ~/riak_ts/dev/dev$node/bin/riak start; done

Build the cluster

You can’t perform that action at this time.