Being in the ergonomic keyboard rabbit hole means that I spend a lot of time thinking about and trying different keyboards. Sadly, I realized that none of them are particularly easy to recommend to someone who’s never used an ergonomic keyboard before, or to someone who doesn’t want it to become a hobby. A new keyboard company called ElimKeys recently reached out and asked if I wanted to try…
After spending a few years in the realm of split ergonomic keyboards, I had mostly stopped paying attention to regular mechanical keyboards. Times sure have changed though; what used to require group buys, long waits, and a suspicious amount of disposable income is now showing up as off-the-shelf boards with gasket mounts, wireless modes, easy programmability, and stock switches that don’t…
AI is taking over the world of software development, but it sure ain’t going to take over my computer! I’ve been waist deep in coding with AI, testing out different models, agents, and workflows, but the one constant has been the ability to safely isolate these AI agents in a sandbox to prevent them from going rogue and doing things it shouldn’t (like leaking my api keys or…
So you’ve heard of split keyboards and want to buy one, but don’t know where to start? You’ve come to the right place! There are many offerings these days which can be overwhelming, so this guide aims to provide a high level overview of the landscape so you can figure out which path you want to take.
As much as I enjoy using my ergonomic keyboards, sometimes I still need to use the built in keyboard on my laptop. Transitioning between the two drastically different layouts is no longer an issue, but I find myself having an itch of wondering whether it’s possible to improve the usability of a standard keyboard.
As you might have noticed, I’ve put this website through a number of changes this year. Apart from changing the theme (sorry if you hate blue), I also switched my website metrics from Google Analytics to Umami , which is an open source, privacy focused analytics platform. Along the same vain, it was finally time to move on from Disqus.
As I continued the descent into my split keyboard addiction, I decided to dive off the deep end and handwire my own ergonomic keyboard. My Corne was a good intro keyboard, but I eventually determined it had more keys than I actually needed . I also grew intrigued towards keyboards with better ergonomics - more stagger and splay to improve alignment with ring and pinky fingers, as well as keyboards…
When first designing my layout on my Corne keyboard , I was mostly focused on the macro level of what layers keys should go on as well as the ease of common workflows like selecting text or switching workspaces. I put some thought into the placement of each symbol, but after growing quite comfortable with my keyboard and having a nagging feeling that something about the placement of my symbols…
Having used my Corne keyboard for some time now, I kept seeing 34/36 key layouts on r/ErgoMechKeyboards with a growing amount of envy. I mean, the minimalist aesthetics of the Ferris Sweep are just so enticing! Staring down at my whopping 42 keys, I found myself not actually using the outer columns that often and wondered if I too could join the ranks of those using even fewer keys… So naturally,…
It all started when I first saw a tenkeyless keyboard . Compared to a standard 104-key keyboard, having only 87 keys (an entire 17 keys fewer!) seemed like the next best thing to sliced bread . Since I wasn’t a big user of the numpad, it seemed like a no brainer to reduce desk space, bring my mousing hand a few inches closer, and just feel like I was one with r/PCMasterRace . Oh how naive I…
My intro to Hugo was back in 2016, a mere 3 years after its inception , when I was in my early days of learning web development. Quite a bit has changed since then, both in what Hugo is capable of and my understanding of how to actually code. I’m far from being a frontend dev, but I’ve gathered a collection of snippets that I’ve stumbled upon along the way in bringing this…
Google Cloud’s Pub/Sub is a useful service that provides an asynchronous and scalable messaging platform that decouples services producing messages from those that receive and process those messages. When combined with Apache Beam (and/or Dataflow , Google’s managed version of it), you can quickly develop powerful batch and streaming pipelines for data-parallel processing.
Terraform’s null_resource resource can be useful when there aren’t any existing modules to satisfy your needs (with some caveats). Hashicorp’s documentation for it is a bit lacking, but fortunately there’s more information about the provisioners in their other docs here . After using these resources in a handful of places across our infrastructure deployments, I’ve…
Cloud Functions are an easy, performant, and potentially inexpensive way to build serverless backends. I recently went down the route of setting up continuous deployments for them, and thought I’d share my learnings with it.
Featured on Hackaday ! A few years ago, I had the idea to track my sourdough starter using computer vision . It was neat to monitor it this way, but it was fairly impractical to do for each feeding since it required setting up a camera, downloading the images, and doing some manual image cropping before running it through my analysis script. The analysis was also only done after the fact, and what…
Back in 2018, we decided to raise chickens in our urban backyard, all in the name of being able to have fresh eggs every morning. Our city had bylaws on having chickens, which included: A maximum of 4 hens (no roosters), 4 months or older Ducks, turkeys, or other livestock are not allowed Eggs, meat, and manure cannot be used for commercial purposes Backyard slaughtering is not allowed Since we…
A few years ago, I created a tutorial on setting up Visual Studio Code for development with the STM32. Since I’ve also been developing on the Nordic nRF52, I thought I’d share another tutorial to show how a project can be set up, flashed, and debugged using Visual Studio Code.
Featured on MagPi Issue 72 , Hackaday , Hacker News , Adafruit , Hackster.io and The Guardian ! Bread, the quintessence of life. People have survived for centuries off this staple consisting only of flour, water, salt, and yeast. Try consuming all these ingredients separately, and you’ll be in for a digestive surprise. However, mix them together and let time do its thing, and the result is…
In case the title wasn’t clear, this blog post is about developing a web application using the Python programming language using Jupyter Lab, Flask, and the Heroku platform. If you were looking for an article on python recipes, you can start off with this one on making a poached Burmese python curry . The Backstory The problem with online baking recipes is that the majority of them use…
As a mechatronics engineer (in training), sometimes I like to pretend that I also know how to program. In my most recent adventures to software land at MistyWest , I needed to write an application in C# that involved doing a ping sweep to find devices that were physically connected through ethernet. Since Google and Stack Overflow are my two best friends, I was able to find (what seemed to be) an…
Disclaimer: Light therapy is one method of easing seasonal affective disorder (SAD); some people swear by it whereas others remain unaffected. This blog post does not intend to refute the effectiveness of light therapy, but rather to dig deeper into the technology behind these light therapy lamps to better educate fellow consumers. Ah, the winter blues of Vancouver, BC. While some days bring…
Visual Studio Code’s combination of functionality, customizability, and aesthetics makes it one of my favourite code editors. As such, I was set on making it work with embedded development since I was getting started with the STM32 line of microcontrollers. I was following the steps outlined in Mastering STM32 by Carmine Noviello (which is an excellent resource) until it said to use Eclipse,…
Featured on Hackaday , 3D Printing.com , All3DP , and Fictiv Blog . Also cited in a few research papers 1 , 2 . Yep, you heard it right. With all the craze surrounding cooking sous vide these days, it was only a matter of time before someone decided to venture using it outside of the culinary world. Turns out that someone also had a 3D printer, and you won’t believe what happened next!…
Objective: Design a custom PCB to protect and regulate a 14.8V LiPo battery for use with an autonomous RC car Features: 12V undervoltage and 10A overcurrent protection 8.4V, 7.4V, and 5V regulated outputs Main Components: LT6109 High Side Current Sense Amplifier RT8288AZSP Synchronous Step-Down Converter Skills: Reading and understanding datasheets Schematic capture and PCB layout in Altium…
Project Overview Objective: Create an autonomous gantry to follow the HTC Vive headset around, keeping its cable behind the user at all times. Motivation: An extravagant party prop for an evening at CES 2017, hosted by MistyWest. Features: CoreXY planar gantry design System built with 8020 aluminum extrusions and laser cut acrylic components Stepper motor control through Teensy 3.2 HTC Vive pose…
I’ve been slowly getting into the land of electrical pixies. So now, not only will I be inhaling sawdust, I can also fill them with leaded solder (because we all know that the performance of leaded solder takes higher priority than the safety of lead-free solder)! However, because I still value living, I figured I should get something to help get the solder fumes away from my lungs. At my…
What’s better than an inexpensive 3D printer? Free sources of information! The items below are a resource list for 3D printing with the Monoprice Select Mini, all thanks to a lively community of users around the interwebz. General Info Product Page: Monoprice Select Mini V1 Official User Manual: MP Select Mini User Manual Reddit: /r/MPSelectMiniOwners Facebook Group: MP Mini User Group…
I’ve been bit by the 3D printing bug. Like any tech-enthusiast, I have toyed with the idea of owning a 3D printer for quite some time. For my final year mechatronics design project, my partner and I designed an extravagent contraption to measure the yolk done-ness of a soft-boiled egg, which we called The PerfEGGct . We borrowed my roommate’s 3D printer to create the enclosure, and it…
Project Summary Objective: Create a small, modular controller to regulate the temperature of a water bath. Motivation: To get in on this cooking fad without dropping fat stacks of cash on an immersion circulator. Features: Crisp 0.96" OLED display Pushbutton rotary encoder provides simple user interaction Removable temperature plug through standard 3-pos audio connector Temperature controlled…
Originally posted on Medium under MistyWest . Virtual reality pushes the envelope of bleeding edge technology, allowing us to explore and experience worlds beyond our mortal imaginations. It gives us immersion in another dimension, providing an unprecedented medium for communication and story telling. If a picture is worth a thousand words, then virtual reality must be worth millions. Except…
Phone stands are something that seem a little unnecessary, but once you have one then you’ll wonder how your desk lived without one. I’m a firm believer in having a dedicated place for everything as a solution to keep things tidy, so making a phone stand for my desk at work just made sense. I started off on Google to look for existing designs I could imitate, but most fell short of not…
It’s generally known that cheap tools are usually not worth the trouble, but the deal on this bandsaw was simply too hard to pass up. With only a missing table, it was merely a quick woodworking project away from restoring its full functionality.
Background: Between paper notebooks, post-it notes, OneNote, Evernote, and so many more, there is no shortage of ways to write things down. Each has its strengths and weaknesses, but none satisfied my requirements to act as a daily work log to record key events, thoughts, and milestones during my work day. My paper notebook is excellent for free-form thoughts, sketches, and calculations, but I…
Introduction Objective : Develop an optical scanning system to be used for generating 3D models of well liners and casings with sub-millimeter accuracy. How : As a team of five mechatronic and mechanical engineering students, we designed and constructed an alpha prototype of the optical 3D well imager. Project Details Requirements and Specifications Optical Device must have a tolerance on distance…
My family moved into a new house, meaning that we finally have an actual garage instead of a measly carport. But what this really means is that I get a chance to claim space to set up an actual workshop! First project was naturally a workbench, which I put together using 2x4’s and a 3/4" MDF board for the work surface (see above). Second project was a bench stool, as shown in the following…
Objective: Build a cheap, portable, variable DC power supply. Motivation: It was finally time to get my hands on a variable power supply for my electronics projects. Previous projects mainly involved Arduino, which was able to supply 5V and 3.3V with ease. However, the need for a supply with higher voltage, current, and flexibility eventually arose, resulting in the birth of this ghetto (but…
Background: When a hard boiled egg is spun on a table, it rotates freely since the inside is completely solid. With a raw egg, the liquid yolk sloshes around and resists rotation. By using math and physics, we can analyze the rotational oscillation of an egg and determine the yolk consistency. “If it’s worth doing, it’s worth overdoing.” - Jaime Hyneman Objective: Design…
As you probably already know, I made a bamboo bike which I’m very proud of. However, what you probably don’t know is that I made some mistakes in the process. The photo above shows the result of one of these progress speedbumps, and yes, I did indeed cry the day I had to cut those tubes out. I started this project in November 2013 but failed to finish due splitting bamboo. Progress was…
The format of this series is an outline of my thought process during the development of @thehaikuza . Poetry is hard To write when algorithms Are extremely dumb. I dont want my haiku generator to be a vegetarian chef. There’s nothing wrong with always making word salad, but eventually it’ll have to learn to make fancier things. A poetic risotto would be nice from time to time. Leaving…
The format of this series is an outline of my thought process during the development of @thehaikuza . Haikus are simple Even children can write them maybe programs too? Nothing is cooler than algorithmic poetry. Except for maybe Carl Sagan. I heard he was a pretty cool guy. I was listening to the radio while driving home one Sunday evening, and an ad came up for a university that was submitting…
Objective: Develop an algorithm to generate haikus using song lyrics. Motivation: Because computational linguistics are cool. Project: twitter.com/thehaikuza Features: Scrapes Virgin Radio’s broadcast history to find recently played songs Creates a song-based haiku queue in Google Sheets Generates a haiku using the queue as a reference and posts it on Twitter Checks for new tweets every 5…
Originally posted on The Ubyssey . Oh boy, some beginner trip this turned out to be. As a new member of the VOC, it quickly became apparent to me how “beginner” can take on drastically different meanings. In retrospect, I should have read the wiki page on “The 5 Definitions of Beginner Friendly” before agreeing to this little excursion, but a bit of Type II fun (not fun…
Background: Welcome to TZOA (pronounced ‘zoa’) - the world’s most advanced environment tracker. TZOA uses internal sensors to measure your air quality, temperature, humidity, atmospheric pressure, ambient light, and UV (sun) exposure, all in one wearable device. Objective: Design and build a purified test chamber with zero air particulate to calibrate the TZOA devices against the…
Background: including (but not limited to) drag, gravity, air density, altitude, rotation of the bullet, and rotation of the Earth. One solution is to connect a computer to a manual targeting system (ie. a scope) and estimate the corrected target location by accounting for these external factors. The user may then line the manual targeting system up with the corrected target location, hoping to…
Background: The TrailRider™ is a specialized device to provide accessibility to the wilderness for those with limited mobility. It is intended for a seated rider propelled and balanced by assistants. Objective: Expand the range of both riders and assistants who can ride safely use the Black Diamond TrailRider™. How: As a team of seven mechanical engineering undergrads, we explored a range of areas…
Drill availability is a major limitation in developing counties, where surgeons turn to using manual hand-crank drills to perform surgeries. A common hardware drill equipped with a waterproof, sterilizable fabric cover provides a cost-effective solution in the operating room.
Objective : Design a roof-mounted bowling rig for a car2go marketing event. Constraints : Use a non-permanent method to securely attach the apparatus to the roof. Venue : 2014 Vancouver Fringe Festival Bowling rig set up and ready to roll. Car2go bowling in action.
Objective : Exceed the Vancourite-hipster threshold by building a fixed-gear bicycle using bamboo and carbon fibre. Challenges : Constructing a frame jig to allow freedom around joints for carbon-fibre layup Accounting for the non-uniformity of bamboo poles at the frame lugs Maintaining compatibility with standard bicycle components Ensuring the frame is treated for typical"Wet" Coast weather…
Objective: Develop a script to find and remove any differences in a series of photos. Motivation: How to Remove People From Your Travel Using Photoshop Framework: MATLAB Script takes any number of images (preferably taken on a tripod) and combines them into one cleaned-up image. Flowchart of the implemented algorithm.
Foam liners in bicycle helmets absorb energy during impacts. Manufacturers recommend replacing a helmet every 2 to 10 years to maintain optimal head protection. To investigate this recommendation, we quantified the material and impact attenuation properties of helmets to determine if they changed with age.