Blog Posts

Multicast Ipv4 and Ipv6 in Java / Kotlin

I recently ran into a peculiarity of multicast in Java / Kotlin. I was using a MulticastSocket: [https://docs.oracle.com/javase/8/docs/api/java/net/MulticastSocket.html](https://docs.oracle.com/javase ...

IPFS in-memory indexing in rust

Over the last six months or so, a couple friends and I have been working on and off on a hobby project to do indexing of IPFS content: [https://github.com/compscidr/ipfs_indexer](https://github.com/co ...

Mermaid Sequence Diagram with Ipv6 host as participant

Today I was messing around making a mermaid sequence diagram of an ICMPv6 ping and found that its a bit tricky to get participants with `:` in the name. For example, something like this: ``` Host->> ...

Github Actions Runner Docker Container with Android SDK

A couple weeks ago, I was setting up a CI system with instrumented tests to run on Android devices. I have a spare computer at home that I use for these types of things, and wanted to run the github r ...

Android JVM unit tests showing stdout and stderr via gradle

Was debugging some test failures today, and was finding it hard to debug because upon failure only a couple lines of stdout and stderr were included in the test report. Instead wanted to trace throug ...

Wi-Fi Direct on Android has become Annoying

### UI/UX popups Several years ago when I was working on RightMesh, it used to be possbile to startup a Wi-Fi direct hotspot on Android, use the advertising service or bluetooth to share the credentia ...

Livepeer Orchestrator / Transcoder: Infrastructure as Code with Ansible / Terraform

I've recently been experimenting with running a Livepeer orchestrator / transcoder on my newly acquired rtx 3080. I also do ethereum mining on it along with some old spare AMD rx 580 GPUs when I'm not ...

nginx-proxy: file upload limitation

Recently, I've found myself unable to upload images to this blog, and for a while I thought it was some bug in my code as a result of updating some dependencies or something. However, after some debu ...

Android Emulator with Github Actions on Linux

Occasionally, I work on some Android apps and in order to test them, I have a computer connected to a few phones running a self-hosted github runner hooked into the CI on the repositories for these ap ...

Clean shutdown of c++ sockets

At work I was doing some stuff with the libmodbus library: [https://github.com/stephane/libmodbus/](https://github.com/stephane/libmodbus/). This particular part of our codebase is c++. We needed the ...

Automatically Deployable Self-Hosted Github Actions Runner via Docker & Ansible

I often work on Android projects, and find myself wanting to run through tests on real devices. I have a spare computer running Ubuntu 20.04 server and have a bunch of phones attached to it via USB. I ...

Partitioning for RAID in a dual boot environment

Previously, for my developer/gaming rig, I had a setup with one barely functioning 1TB HDD and a small SSD (128GB) or something. I also had a server with another 1TB HDD, a DNS321 with 2x1TB HDD in a ...

Comcast xFI Advanced Security weirdness

So I'm doing a bit of traveling around and wanted to work on this blog. I have it hosted on a computer at my house (which as far as I know is not against the ToS since its a personal use, non-profit p ...

Goblog: GIN powered JSON and HTML rest endpoints with a testing framework

A few weeks ago, I set out to learn a bit of go, and rewrite my blog software. Previously I had been using a wordpress install with a DIY template, and some custom plugins. This worked pretty great fo ...

The Resurrection of my website

As some of you may know, there was an iteration of this website that existed previously. I posted about things I was working on, research I was doing and tips on how to get some complicated software w ...

Kotlin + Android + Junit5 + Jacoco + Gradle 5.4.1

![file](/uploads/image-1690612334664.png) Typical Jacoco report for a hello-kotlin-android app. I was having a bit of trouble getting this combination of tools working, and found most of the informa ...

Rigolet, Nunatsiavut — Winter 2019

![file](/uploads/image-1690611951430.png) This past week or so, I’ve been working out of Rigolet, Nunasiavut with my RightMesh colleague, Frazer Seymour, and MITACs researchers, Prof. Dan Gillis and ...

Things I would do if I had more Time…

Since I’ve spent the morning procrastinating and relaxing I figured I would write small entry on what types of things I would like to do if I had more time: * Write a program the can predict which te ...

RIP Open & Free Internet, Long live the Open & Free Internet.

It was completely expected, but still quite shocking that today the [US repealed net neutrality](https://www.motherjones.com/politics/2017/12/trumps-fcc-just-killed-net-neutrality-but-the-first-legal- ...

Howto: Install all the decentralized p2p things: Ethereum full node, GPU miner, proxy, tor relay, golem test node, ipfs full node on Ubuntu 16.04

A couple weekends ago I setup a bunch of decentralized projects on my computer for fun. As you might know I’m working on a project called RightMesh which aims to allow people to resell their extra net ...

p2p is missing the piece that will enable full decentralization

After having freshly attended the Blockchain Conference in Santa Monica / Los Angeles I am freshly excited and motivated with all of the cool projects and companies that people are building on blockch ...

ACM FCA — Progress, Rigolet Project

About a [month and a half ago](https://www.jasonernst.com/posts/2017/06/22/ACM-Future-of-Computing-Academy), I was on a plane to San Francisco to attend the 50th ACM Turing Awards and join the inaugur ...

The First True Peer-to-Peer (p2p) network: The Mobile Mesh

The majority of people in the world have a smartphone. A phone comparable to ones we use in North America can be purchased for under $50, and there are much more affordable ones available as well. Pro ...

ACM Future of Computing Academy

A few months ago, I got an email from the Association of Computing Machinery (ACM) notifying me about an opportunity to apply for the inaugural cohort of the [ACM Future of Computing Academy](https:// ...

The State of Connectivity in Canada’s Remote Communities

Previously, you might recall — I did a piece reviewing the [state of connectivity in Guatemala](https://www.jasonernst.com/posts/2016/07/25/The-State-of-Connectivity-in-Guatemala) based on data provid ...

Gitlab + Multiple Slack Service Integrations

So we’ve got a Gitlab repo at work that we already have setup to publish merge requests and stuff to a slack channel where all of our developers can see them. ![file](/uploads/image-1690608069912.png ...

One Year in — our mobile mesh platform is taking shape

I’ve almost officially been at Left for a year — where I’ve been working on connecting the next billion people with mesh networks. One of the key insights our company has compared with those launching ...

The State of Connectivity in Guatemala

Inspired by the [Akamai State of the Internet report](https://web.archive.org/web/20160708134821/https://www.akamai.com/us/en/our-thinking/state-of-the-internet-report/global-state-of-the-internet-con ...

Real Mesh Networking and Limitations of Opportunistic Delay Tolerance, Hastily Stitched Together Tech

There’s quite a few apps and companies working on “wireless mesh” networks. However very few are building what I’d consider to be a true mesh. Many do not care about building the actual underlying con ...

Turning a netgear r7000 into an augmented traffic control router

At work we’re developing apps that are being used in developing countries and half of the office works out of Vancouver where our networks are very good. Unfortunately, this means that we often don’t ...

Favourite Yo! Features From Fresh Eyes

After being a part of the team working on Yo! for almost a month I’ve had some time to dig into the inner workings and play with the app quite a bit. While we have a ton of really cool stuff coming ou ...

The next adventure — connecting the next billion people

As some of you who know me closely know — Tom and I have moved onto new things from Redtree. It was one of the most interesting projects I have ever worked on — and I love robotics, but we couldn’t ra ...

Come find me at Hardware Events!

Tom and I have been attending events and meetups like crazy lately. We want to meet anyone interested in robots, makers, hackers, and programmers. Here’s some of our upcoming and past events: **Upcom ...

Redtree Robotics Updates

It’s been a busy few weeks (but that’s not really new!). Tom and I have been all over the place, hustling hard and meeting as many people as possible, especially people who build robots. We were in Bo ...

Ubuntu: Script to Check Internet Connection and Repair

At school there are a set of laptops which I occasionally run experiments on for my research. I usually like to work remotely as I travel a bit and live in other cities. These laptops are all connecte ...

Startup Train and Startup Festival

Tom and I attended the Startup Festival in Montreal, QC. We took the startup train to the conference. The train was a great way to get there. It was filled with VCs, lawyers, other startups and lots o ...

IEEE ICC in Sydney, Austrlia

I attended and presented at IEEE ICC 2014 in Sydney, Australia. I presented a paper entitled, “[A Utility Based Access Point Selection Method for IEEE 802.11 Wireless Networks for Enhanced Quality of ...

Redtree Robotics at Democamp Guelph 24

Last night, co-founders Tom & Jason presented our vision of mobile robotics at Democamp Guelph. We started the talk with the current problems in the industry. There is no complete solution for mobile ...

IEEE AINA 2014, Victoria, Canada

I just spoke in Victoria, BC at the 28th IEEE conference on Advanced Information Networking and Applications (AINA 2014). The title of the paper I presented was "[A Wi-Fi simulation model which suppor ...

IEEEE CCECE 2014 and Cognitive Agent Simulation

This past week I attended IEEE Canadian Conference on Electrical and Computer Engineering (CCECE2014) in Toronto, Canada. I was there because of two papers I was a co-author on. The work was part of a ...

Good News! And Startups!

A few weeks back I posted about a couple of hackathons I participated in. The first was the OpenData Guelph hackathon which I participated in with my friend from UW Stratford, Carlos Saavedra. We plac ...

Hackathons!

I’ve recently participated in a couple of hackathons to keep brushed up on my coding skills. In both instances, the hackathons were motivated by working with open data, which I also find interesting. ...

PhD Candidate!

A week ago I finally managed to complete my qualifying exam at Guelph. It was a rocky road getting here, and the exam wasn’t easy but thankfully it’s done and I passed. The biggest criticism I receive ...

Technical Reviewing as Grad Student?

As I’ve published more and more, I’ve been invited to become a reviewer for many conferences and journals. Some are by people I’ve met while presenting at conferences, but others come randomly in my i ...

Notes on NS3 – IEEE 802.11 Wi-Fi Association

For some of my research I have been delving into the details on how exactly station devices in an IEEE 802.11 network associate with an access point. As far as I understand from the standard station n ...

Second Times a Charm?

After what seems like eternity, I have completed my second (and a half?) qualifying exam document at Guelph. For people who know me, or who have read a bit of my blog, you may know that I am on my thi ...

Hostmonster auto update IP address of subdomain

With my Hostmonster account, I host this website with my www.jasonernst.com domain, but I also have many other machines that are referred to with subdomains. For example, dev.jasonernst.com is my home ...

Blog stats

This blog has been running for quite a few years now and I got thinking about the traffic patterns on it today in an earlier post, so I thought I’d put some of the info together into a post :) Here a ...

Including Blogs in Tenure & Promotion

Inspired by this blog post: [http://andreweckford.blogspot.ca/2012/10/would-you-include-your-blog-in-your-t.html](http://andreweckford.blogspot.ca/2012/10/would-you-include-your-blog-in-your-t.html) a ...

Recent Computer Related Events

The last few months have been crazy. I’ve had a couple of job interviews with tech companies in California, attended a BB10Jam, released a couple of playbook apps, started on some side research proje ...

IEEE ICC 2012 – Ottawa

Last week I presented a paper at IEEE ICC, and since its been a while since I have posted I thought I put up a bit of a summary about my work. For people who have looked at my site a bit, you might kn ...

Toshiba Laptop + Ubuntu, Wireless Switch Problem

Just a quick post, about an annoyance with my Toshiba Satellite laptop. Maybe it will help someone, but the wireless card had no power because the “hardware switch” was turned off. This laptop has no ...

OpenGL Console Library for Blackberry Native SDK (Playbook)

Over the break, I decided to try my hand at some Blackberry native SDK programming since I recently got a playbook. I looked around the App World and noticed there weren’t any telnet/ssh tools availab ...

Creating a Bluetooth Access point (NAP) in Ubuntu 11.10

A Bluetooth NAP is similar to a Wi-Fi access point. In this case, we will be using NAP to share an Internet connection to another computer with Bluetooth. It is supposed to be able to support 7 or 8 d ...

Aircrack suite + Ubuntu 11.10 problems with monitor mode channel

Recently I have been playing around with the aircrack suite and in particular the aireplay-ng tool. This tool may be used for ARP replay attacks, however it requires that the monitor mode interface is ...

Upcoming PhD QE Progress

So I’ve been doing my PhD for over two years now, and I haven’t posted a reflective “state of the thesis” post in quite some time, so here it is. I have maxed out my 50 pages (not included ToC and ref ...

Why Blanket Wireless Coverage in Waterloo Failed, and Potential Solutions

Today the KW Record ran an article entitled “Blanket Wi-Fi plans unplugged in Waterloo Region and Guelph, but growing in Stratford”. I thought I’d throw in my two cents since this issue is very relate ...

uShare autostart – Ubuntu 11.04

Previously, I installed ushare easily on Ubuntu following a process similar to this: https://help.ubuntu.com/community/Xbox360Media I’ve recently become annoyed that ushare hasn’t been autostarting i ...

MediaWiki + Ubuntu 11.04 & Customizations

Recently, I setup a personal wiki for myself since I’m always encountering more information than I have time to read, but always want to go back later. Its also a way for me to organize topics I don’t ...

Ubuntu 13.04 – Latex

**Update**: This also continues to work on Ubuntu 13.04 Just a quick note to myself really about how to get Latex working the way I want on Ubuntu 11.04 (Texmaker GUI, and some fixes for some errors ...

Tutorial: sockets – 3 ways to listen

As you may know, I have been ta-ing a course in operating systems. We just finished covering sockets and in the last lab I gave a socket demo where I show three different ways a server can listen on a ...

WordPress Tutorial: Recent Posts Block with Images

This post follows up on the last WordPress tutorial which shows how to start using featured images. In this post, I show how you can display a block of recent posts along with the featured image, in t ...

PHP Tutorial: Replace long link text

I created this function so that I could have a way of preventing very long non-breaking text links from breaking my web page layout. Paritcularly, this is used in my tweet / facebook section of my hom ...

Some Useful Information for Setting Up Subversion on Ubuntu

Not a tutorial or guide this time, since everyone else seems to have this covered quite well, but thought I’d collect a few good links together in one place. Hopefully these links will be useful to so ...

WordPress Tutorial: Featured Images

This is a quick tutorial on how to get out featured images, which I use extensively on this blog ([jasonernst.com](jasonernst.com)). The featured image is what shows on the home page for the site, and ...

Howto: Custom icons for Burg (Graphical Grub2)

This is a short tutorial on how to create custom icons for Burg, since I have been trying out some new operating systems and noticed there are no icons for them. The tutorial will cover how to make th ...

Ubuntu 10.04, BB Storm 9530 Tethering

Some quick instructions on how to tether the Blackberry Storm 9530 in Ubuntu 10.04. (Tethering is for connecting to the Internet using your blackberry for the connection) ``` sudo apt-get install pyt ...

IEEE Format References & Citations for MS Word

Today I was working on my thesis / QE document and wanted to have IEEE style referencing included in my document (using the built in references features). At first I started trying to modify one of th ...

BWCCA 2010 – Adaptive Mixed Bias Resource Allocation for Wireless Mesh Networks

Today I presented a recent paper on “Adaptive Mixed Bias Resource Allocation for Wireless Mesh Networks” at the BWCCA conference in Fukuoka Japan. The paper is authored by myself and Thabo Nkwe from t ...

ACM Events & Website

Recently the ACM Student Group at the University of Guelph (which I am currently chair of) has been busy with some of our first events. The first was a programming contest modeled after the ACM-ICPC. ...

Research Day – Summer 2010

Tomorrow I present at Research Day at University of Guelph at 1:30pm. Here is the abstract for the presentation: **Title:** Radio Resource Management in Heterogeneous Wireless Networks **Abstract:** ...

Updates: Publications,Guelph ACM,Teaching,Thesis

Just a short post with some updates since I’ve been quite busy as usual. I have submitted the final draft of an adaptive scheduling algorithm for wireless networks to BWCCA conference in Japan. I int ...

A Frustrating Experience with Chromium OS

Recently I reinstalled my laptop and was hoping to add chromium onto my multiboot setup. I can get it working with the standard USB key approach that is recommended on all of the guides, however it se ...

ICC 2010 – Cross-Layer Mixed Bias Scheduling for Wireless Mesh Networks

This post is somewhat motivated by [Prof. Andrew Eckford’s post](http://andreweckford.blogspot.com/2010/06/you-should-be-tweeting.html) that encourages graduate students and faculty members to post mo ...

Ubuntu 10.04 Grub-2 with Themes

In this post, I will show you how to install grub 2 with themes so that you can replace the standard text-based grub menu with something that looks a bit nicer. This tutorial will use code which is un ...

Tutorial: Install ns-3 in Windows 7 using cygwin

Ns-3 is one of the most popular simulation tools for network simulation. See the website: http://www.nsnam.org/. It is the successor to the popular ns-2 simulator. The tool is written in c++ / python, ...

Experiences as a Computer Science Graduate Teaching Assistant

It’s almost the end of my second term of being a teaching assistant at the University of Guelph. This time around it was an intermediate c programming class. I’m really starting to enjoy being a TA, a ...

Research Progress, Recent News & The Importance of Math in CS

This post is sort of a hodge-podge of random bits, mostly just so I can post something new to the blog to prevent it from stagnating too long without anything new. The last semester has been far busie ...

Why Learning Assembly is Still Important for CS Undergrads

This past semester I had the privilege of assisting in an undergraduate assembly language class. From my experience in my undergrad years, I found this class quite challenging since it was much differ ...

Coast-to-Coast Seminars

Today I found out about some cross-Canada computer / math seminars that are sponsored by a consortium of research / computing organizations across Canada including SHARCNET, WestGrid, ACENet, IRMACS a ...

ANN for Wireless Network Applications

This semester I have been taking a soft computing course. We have covered fuzzy logic and are starting artificial neural networks (ANN) although I have missed a couple of classes due to the conference ...

Second Beginning at Guelph & September Conferences in Ontario!

This month I start for the second time at the University of Guelph, this time for my Ph.D. degree. I am continuing to work under the same supervisor and hopefully continue along with similar research ...

Back after a long hiatus!

Well after a long break from writing in my blog I am finally back! (Thanks [Eddie](https://web.archive.org/web/20090607081034/http://tin.blogdns.com/) for the encouragement to post again! haha) If you ...

AINA 2009 Conference Presentation

This past week I travelled to the UK to present at my first International Conference – Advanced Information Networking and Applications (AINA 2009) in Bradford, UK. My presentation was on “Fair Schedu ...

Thesis Defense a Success!

Last Friday I successfully defended my thesis at Guelph. The room was full with lots of friends, students and faculty and everything went fairly smoothly. It definitely feels great to be done after al ...

Update on the Lack of Updates & PhD Acceptance

Just a quick post to let any readers know why there has been a lack of posts on the blog lately. I have been working like crazy on my thesis with the hope of completing it in the next month or so. I h ...

Updated: NS-2.33 and HWMP rev 183 on Intrepid Ibex 8.10

This post is some quick instructions on how to install ns-2.33 and the hybrid wireless mesh protocol (hwmp) on Ubuntu Intrepid Ibex. More detail will be added later, just for quick reference right now ...

Top 10 Reasons to Study Computer Science in 2009

The trend in blogs, the internet and news sites lately is to write articles about the economy. Instead of that however, I thought I would use the opportunity to try to encourage people who might be co ...

CIS Career Night @ University of Guelph

On January 28th, the Computer Science department at the University of Guelph is having their annual Career Night. It’s being put on with the help of [CISters](https://web.archive.org/web/2009032504440 ...

Tips for Getting into Grad School and Receiving Funding

Occasionally, I get asked questions on how to get into grad school, what can be done to improve the chances of making it in and how to get funding. I am by no means an expert on this, but every bit of ...

Ns-3.2 on Ubuntu 8.04 Hardy Heron

For the next stage of my thesis instead of using the well known ns-2 simulator as originally planned, I have opted to instead use ns-3. I have chosen this particular environment because it seems to be ...

University of Guelph Research Day – Winter ’08

On December 2nd and 4th 2008, Research Day for the Computer Science Department at the University of Guelph is taking place. Research Day is a day where many of the graduate and some undergraduate stud ...

PerWin Research Group @ the University of Guelph

Today I completed the listing page for all of the presentations our research group PerWin at the University of Guelph has made in the last year or so. PerWin stands for Pervasive Computing and Wireles ...

Cluster Computer Case Suggestions?

So I’ve recently come across a bunch of free computers and I’ve decided to try to hook them together to form a beowulf style cluster for running some of my simulations on since I think I can modify th ...

Distributed Screen Saver Project

A couple of days ago while trying to stay awake while my simulations ran for hours, I came across this website: [Electric Sheep](https://electricsheep.org/). It seems like a really cool idea. It is a ...

Computer Science, A Science? Still debated…

As an update to my previous post on this subject “Computer Science, A Science?” more debate has taken place on the CompSci.ca forums and blog as a result of a blog post by Tony entitled “[The most imp ...

DD-Wrt Micro on Linksys WRT54Gv6

Today on a whim I decided to pickup a Linksys WRT54Gv6 wireless router from Staples. It was on sale for $20 off and looked like the last one there. I’ve been looking at the DD-Wrt software for some ti ...

Update: Whats Going on These Days

It’s been a busy few weeks, and I haven’t had much time to blog anything lately. I’ve sat in on a few good thesis defenses, quit my old job at the warehouse and got a new job as a web developer for a ...

Ubiquitous Computing vs Virtual Reality

Early this week, during a lecture at Guelph by Dr. Denko, I was introduced to the idea of ubiquitous computing. The idea was coined in the 1980′s by Mark Weiser at the Xerox Parc Lab. An extremely sim ...

Ten Practical Applications of Wireless Networks

Wireless Networks have become very popular in recent years and research in the area is very active. It is one of my main research interests while studying for my M.Sc. in Applied Computing at the Univ ...

Tutorial: Ns-2.33 (and nam) on Ubuntu 8.04 (Hardy Heron)

Since I have been working with ns2 for the last few months in preparation for my thesis I have decided to write a guide on how to install the most recent version of ns2 on the most recent version of u ...

Fair Scheduling & Load Balancing in WMN

My research is becoming more focused as of late towards the area of fair scheduling and load balancing in Wireless Mesh Networks. Earlier this week I gave a talk in our wireless research group at Guel ...

Motivation, Passion and Research…

Today I came across a great article on passion in research on Paul Ward’s website at the University of Waterloo and it motivated me to write something short about it on this site since it seems to fit ...

CRM-Fields Lecture at University of Toronto

About a week and a half ago I had the opportunity to attend a CRM-Fields Prize lecture by Allan Borodin at the University of Toronto. An audio recording of the lecture is available here: [http://www.f ...

Customized Reconfigurable Interconnection Network Paper Accepted to COCOA ‘08

![file](/uploads/image-1690575413591.png) Yesterday I found out that a paper I helped out with got accepted to [COCOA 2008 Conference](https://web.archive.org/web/20090327233629/http://www.cs.uregina ...

Computer Science: A Science?

Computer Science is a broad term used to describe many areas in the field of computing. Wikipedia defines Computer Science as the “study of the theoretical foundations of information computing and the ...

Thesis Topic

The last few days have been extremely busy. I have finally settled on a thesis topic after a few months trying to decide. In case you don’t know my area of interest has been in wireless networks for s ...

Welcome to my Blog!

Well this is my first real attempt at blogging. I finally got around to setting up the domain and some hosting so here I am. The purpose of this post will be to outline what exactly my blog is going ...

Most Recent Post

Multicast Ipv4 and Ipv6 in Java / Kotlin

I recently ran into a peculiarity of multicast in Java / Kotlin. I was using a MulticastSocket: [https://docs.oracle.com/javase/8/docs/api/java/net/MulticastSocket.html](https://docs.oracle.com/javase/8/docs/api/java/net/MulticastSocket.html) and trying to ensure that it winds up bound to either an Inet4Address or Inet6Address. It turns out that even if I did something like: ``` val multicastSocket = MulticastSocket(InetSocketAddress("0.0.0.0", MULTICAST_DEFAULT_PORT)) assert(multicastSocket.localAddress is Inet4Address) ``` The assertion could fail. Similarly if I did: ``` val multicastSock ...