Skip to content

Instantly share code, notes, and snippets.

View tomsaleeba's full-sized avatar

Tom Saleeba tomsaleeba

View GitHub Profile
@tomsaleeba
tomsaleeba / tail-recursion.js
Created May 30, 2020 04:29
Tail resursion in JS
// the non-tail-recursive way
;(() => {
function fac(n) {
if (n === 1) {
return 1
}
const nextFac = fac(n - 1)
return n * nextFac // last thing we do it multiply
}
@tomsaleeba
tomsaleeba / README.md
Created July 9, 2020 07:02
Test if we can modify IndexedDB records (not upgrade the DB version) in one connection while another connection is open. Spoiler, we can!

To run this test, copy and paste the script into the JS console of your browser (or use Snippets in Chrome devtools).

The output is:

starting
upgrading
opened1
req1 success
req2 success
req3 success
@tomsaleeba
tomsaleeba / README.md
Last active November 24, 2020 03:57
Pollin8 model tuning

Note: make sure you view this page on this URL with a trailing slash otherwise images won't work. More info.

What is this?

An attempt to get the model reporting the kinds of numbers that we'd expect to see based on expert opinion.

All of these runs are done including the "children inherit parent

@tomsaleeba
tomsaleeba / README.md
Created May 15, 2018 08:01
Deleting batches of records with SPARQL

I learned this when trying to clear our records in AWS Neptune. I was hitting the query timeout when trying to drop an entire graph. If you don't want to/can't raise the timeout, you can drop smaller parts of the graph in each transaction.

curl -sX POST http://<cluster-prefix>.rds.amazonaws.com:8182/sparql --data-urlencode 'update=
DELETE {
  GRAPH <http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph> { ?s ?p ?o }
}
WHERE {
  GRAPH <http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph> {
 {
@tomsaleeba
tomsaleeba / extract-subgraph-3levels.rq
Last active March 13, 2023 10:24
Extracting RDF subgraphs using SPARQL
# this query extracts a subgraph from the selected subject (level 1) and two child levels
PREFIX aekos: <http://www.aekos.org.au/ontology/1.0.0#>
PREFIX some_dataset: <http://www.aekos.org.au/ontology/1.0.0/some_dataset#>
CONSTRUCT {
?s1 ?p1 ?o1 .
?s1 ?pv1 ?v1 .
?s2 ?p2 ?o2 .
?s2 ?pv2 ?v2 .
?s3 ?p3 ?o3 .
@tomsaleeba
tomsaleeba / README.md
Last active June 16, 2023 11:09
Debugging HTTP traffic with mitmproxy

This will let you see the request and response headers for traffic going through.

We're going to run this as a reverse proxy, rather than a usual proxy, so you don't get completely flooded with traffic.

Start the proxy

  1. create a new VM
  2. expose port 8080 to the public internet
  3. SSH to the VM
  4. make sure you have at least python 3.6