diff --git a/content/blog/2024-04-26-leapmotion-photography.md b/content/blog/2024-04-26-leapmotion-photography.md new file mode 100644 index 0000000..b57ab97 --- /dev/null +++ b/content/blog/2024-04-26-leapmotion-photography.md @@ -0,0 +1,32 @@ +--- +title: Infra-red photography with a Leap Motion Controller +description: +date: 2024-04-26 +tags: + - hardware +draft: true +extra: + auto_center_images: true +aliases: + - /blog/leapmotion-photography +--- + +Ah, Leap Motion... + +Back in 2013, a company called *~~OcuSpec~~.. ~~Leap Motion~~.. ~~Ultrahaptics~~.. Ultraleap* released their first motion tracking device, the Leap Motion Controller. + +![The Leap Motion Controller](/images/posts/leapmotion-photography/controller.jpg) + +I recall first seeing one in elementary school. + +Looking back, I have no memory of what it was being used for, but I remember being fascinated with the diagnostics tool that showed the raw hand tracking data streaming from the device. + +![A screenshot of the visualizer](/images/posts/leapmotion-photography/leap-visualizer.png) + +## What does one actually do with one of these devices? + +Well, you see, thats a great question. Its probably also the reason why the company doesn't seem to be doing as well as people thought it would in the first place. + +There are very few practical applications for a non-haptic hand tracker. That being said, a few well-known demos do exist: + +- Hans Willem Gijzel used a controller to control Ableton (presumably through an M4L device) \ No newline at end of file diff --git a/content/blog/2024-04-27-ampr-upstreams.md b/content/blog/2024-04-27-ampr-upstreams.md new file mode 100644 index 0000000..ab7e989 --- /dev/null +++ b/content/blog/2024-04-27-ampr-upstreams.md @@ -0,0 +1,89 @@ +--- +title: Who are the upstreams for AMPRNet? +description: +date: 2024-04-27 +tags: + - networking +draft: false +extra: + auto_center_images: true +aliases: + - /blog/ampr-upstreams +--- + +I happened to be poking through the [AMPRNet](https://ampr.org) gateway list today, and pretty much out of nowhere came up with the question: *I wonder what networks most commonly house AMPR gateways?* + +So, in this short post, I shall set out to answer that question. + +## A brief overview + +Feel free to read about AMPRNet yourself online. There's lots of great information floating around. + +For anyone looking for a TLDR before continuing, you can basically think of AMPRNet as an ad-hoc mesh of gateways that act as core routers for tiny slices of IP space. These gateways share routing information with each other and form a mixed-topology network that spans the globe. + +## What gateways exist? + +Firstly, in order to figure out what networks house gateways, I need to know what gateways exist. + +AMPR operators have access to a little API that allows us to query for a list of all active gateways, so thats where I shall start. + +If you happen to be following along at home, heres the commands I am using to get my list of gateway IPs: + +```bash +AMPR_API_TOKEN="your-api-token-here" +http get https://portal.ampr.org/api/v1/encap/routes \ + "Authorization: Bearer $AMPR_API_TOKEN" \ + "Accept: application/json" \ + | jq ".encap[].gatewayIP" \ + | tr -d '"' \ + | sort \ + | uniq +``` + +This returns a nicely sorted list of approximately 650 unique gateways. + +## Where are they? + +Now that I have a list of IPs, I just put them into a file (`/tmp/ips` in my case) and asked the [BGP.tools API](https://bgp.tools/kb/api) for info about them. + +```bash +echo "begin\n$(cat /tmp/ips)\nend" | nc bgp.tools 43 | tee /tmp/bgp-tools-result +``` + +This gives me a very long list of ASNs for each gateway, which I can then process. + +Taking the `/tmp/bgp-tools-result` file that the previous command generated, I can now run the following command to get a list of unique ASNs: + +```bash +cat /tmp/bgp-tools-result \ + | cut -d "|" -f 7 \ + | sort \ + | uniq -c \ + | sort -n -r +``` + +## The results + +At the time of writing, here's the distribution of gateways by Autonomous System: + +| Count | Autonomous System | +|-------|---------------------------------------------------| +| 46 | Comcast Cable Communications, LLC | +| 25 | Charter Communications Inc | +| 23 | The Constant Company, LLC | +| 23 | AT&T Services, Inc. | +| 22 | Verizon Business | +| 16 | Charter Communications | +| 15 | Akamai (Linode) | +| 14 | Free SAS | +| 11 | Amazon.com, Inc. | +| 10 | Lumen (ex. Qwest) | +| 10 | Cox Communications Inc. | +| 10 | Bell Canada | +| 9 | Ote SA (Hellenic Telecommunications Organisation) | +| 9 | DigitalOcean LLC | +| *249* | *Various Others* | + +
+ +**Note:** the *Various Others* row represents nearly 230 ASes that only host 1 gateway, and a smaller handful that host a few more. diff --git a/static/images/posts/leapmotion-photography/controller.jpg b/static/images/posts/leapmotion-photography/controller.jpg new file mode 100644 index 0000000..42cab92 Binary files /dev/null and b/static/images/posts/leapmotion-photography/controller.jpg differ diff --git a/static/images/posts/leapmotion-photography/leap-visualizer.png b/static/images/posts/leapmotion-photography/leap-visualizer.png new file mode 100644 index 0000000..291d6b8 Binary files /dev/null and b/static/images/posts/leapmotion-photography/leap-visualizer.png differ