Hi! Today we’re going to be comparing the usability of various household devices (Microwave, TV remote, keyboard, etc.) against those of research devices (like eye trackers and brain-computer interfaces).

Information Transfer Rate and Bits/Min

To do this, we’ll be investigating each device’s information transfer rate (ITR), or how fast the user can communicate with the device. We have some intuitive sense of this — obviously the keyboard allows for faster and more varied input than the TV remote. It’d be easy to compare the speeds if they had the same number of buttons, but since they don’t, we have to define some common metric to…


Hello! Today I’m going to show you how to access the built-in cameras in-browser, on computers and mobile devices using Javascript.

In this series, I will show you how to set up a simple HTML page that accesses the front-facing camera, runs MediaPipe Facemesh to detect facial keypoints, and then shows a livestream using the detection features.

This post in particular will show you how to:

  • Properly access a device’s camera through the Javascript MediaDevices interface (phone or laptop)
  • Stream it live to an HTML Canvas for viewing
Image for post
Image for post
Mobile camera livestreamed to an HTML Canvas

The Rundown

Demo

Find the demo here: https://facemeshdemo1.netlify.app/

Code

HTML: https://gist.github.com/kongmunist/83d4862406b3363dcc07199780d81bad#file-index-html

JS: https://gist.github.com/kongmunist/83d4862406b3363dcc07199780d81bad#file-facemeshsetup-js

Deep Dive

Motivation

With the advent…


Image for post
Image for post
A beautiful but expensive piece of electronic test equipment

Hi! Not everyone can afford the $2000 for a beautiful function generator like this Agilent 33210A, but everyone deserves to have basic function generation capabilities. So, today I’m going to show you how to make a basic function generator using everyone’s favorite microcontroller: an Arduino Uno!

In this post I’m going to go over some basic code, and how to set up an LED to test it out.

Hardware setup

Set up the LED+resistor with positive lead in pin 9 and the negative plugged into ground. Plug the Arduino into your computer.


TL;DR: Demo here. Hit the button at the top to start.

I recently tried out a bunch of different Javascript accelerometer demos that claimed to able to access the sensor in-browser. It was usually a simple demo: dots rolling across a screen due to gravity, or perspective shifting a 3D scene based on what your orientation was. However, none of these demos worked at all — no popup asking about permissions or anything. What gives?

In iOS 13, Apple added an option under Safari to allow webpages to request accelerometer access. However, the webpage couldn’t just spam you with a…


Hi, Andy here. I want to bring your attention to the depressing fact that there are really only two ways to sell software. Well, three, but hardly anybody uses the third. I am, of course, talking of subscription services (SaaS) and advertisement/data driven.

Software as a Business Model

Before people could write software for a living, you had to sell things. Tangible objects that performed a certain function, whose parts cost money, which further cost more money to assemble into a product.

Two people exchanging a bag of money for a house
Two people exchanging a bag of money for a house
Transactions before software

After computers became widespread people began writing software, and realized that other people would pay real money to buy your software. And best…


Image for post
Image for post

It happened again. You didn’t notice the gloomy skies as you pulled out of your driveway to go to Home Depot, and now you’re umbrella-less and sitting in their parking lot, watching the raindrops bead up and flow down your windshield. Worse yet, their New Grill November sale has summoned every dad within a 25 mile radius to the store, forcing you to park in the back of the lot. You didn’t even bring your rain jacket, because it’s new and you didn’t want to dirty it while carrying your new oak floorboards.

As you sit there feeling sorry for…


“Waking up one morning, a student of Zen realized he was going to be late to meet his teacher. He quickly got up and rushed out to his teacher’s hut. Upon arriving, he took off his shoes outside and greeted him.

Noticing his shortness of breath, his master asked ‘Which shoe did you put on first this morning?’ Ashamed that he did not know, the student realized he was not ready for his lessons and went home.”

Every time I’m late, I’ve always been working on something. I see the time, throw my shoes on and rush out. Along the…


Bear with me. I’m going to try to explain something slightly abstract but incredibly interesting.

Image for post
Image for post
Apparently you can’t embed a mirror in a blog post

You, the brain reading this

Look at your hands. Admire your reflection in a mirror. That’s you, right?

Wrong. That is not you. You are the brain inside that person. You are a chunk of meat piloting a bone-armored meatsuit, using your limbs as tools to let you interact with the physical world. And they’re our best tools because they’re so generalizable; I’m currently using the fingers on mine to hit my keyboard in specific combinations to write the words you’re reading.

However, their generality leads us to create more…


Hello! This is Andy. I’m about to tell you about something way cooler than implanting a chip in the brain to control robot arms, which is a very hard subject to top.

You can read brain activity by just shooting lasers into your skull and seeing how much of it comes back out. Introducing fNIRS, or functional near-infrared spectroscopy.

The basic principle of fNIRS is that blood changes shade as it becomes more oxygenated. Since deoxygenated blood absorbs more red light than oxygenated, it appears darker.

Image for post
Image for post
Not so blue, right?

You can think of fNIRS as shining a flashlight onto the brain. Since groups…


We’re going to explore the simpler uses of machine learning.

The Problem with Neural Networks

Hello, this is Andy. There is an underlying perception that people new to the topic of machine learning have, and that is this: when a model isn’t doing too hot, you need either more data or more hidden layers with more neurons between them. This misconception isn’t their fault; it seems everyone in the news is talking about these huge neural networks trained on terabytes of data to decide whether to advertise an eco-friendly backpack or water bottle to an unsuspecting consumer based on their heart rate variance. However, more…

Andy Kong

Hi! I’m Andy. I try to make things that haven’t been made before. Check out my personal projects at https://andykong.org/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store