biking 4 posts
Bambu Bike Ride Through Sunnyvale and Santa Clara
A sunny bike ride stopping for Bambu drinks through Sunnyvale and Santa Clara.
Another Day, Another Bike Ride, Another Bubble Tea
Stopping for bubble tea at Tea Era after a bike ride.
food 5 posts
My Family’s Phở Bắc Recipe
An authentic step-by-step family recipe for preparing traditional Northern Vietnamese beef pho broth (Phở Bắc) from scratch.
Tiny Hamsters Eating Tiny Burritos
Today, judging by the nearly 7 million views it has garnered since it debuted on YouTube, the news story that is apparently at the top of everyone’s minds boils down to one fascinating idea: Hamsters. And how the heck they manage to get an entire burrito into those adorable little cheek pouches. Set to a lively classical score, “Tiny Hamsters Eating Tiny Burritos” may have gone viral because it hits us right in the feels: an adorable, pocket-sized pet is treated to a lavish — by hamster standards — meal, prepared lovingly by a chef whose fondest wish is that his furry customer give his homemade burrito the thumbs-up, if only hamsters had thumbs.
Another Day, Another Bike Ride, Another Bubble Tea
Stopping for bubble tea at Tea Era after a bike ride.
gaming 7 posts
Gaming with XDMA CrossFire Passthrough on Ubuntu 17.04
Configuring dual-GPU AMD XDMA CrossFire PCI passthrough inside a KVM Windows virtual machine on Ubuntu Linux.
Intel Smart Response Technology vs Windows 10 Tiered Storage Spaces
Comparing Intel Smart Response Technology (SRT) SSD caching against Windows 10 Tiered Storage Spaces performance.
Modded R9 390X BIOS for the PowerColor PCS+ R9 290/290X
Flashing a custom PowerColor R9 390X BIOS onto an R9 290/290X graphics card for enhanced performance and higher memory clocks.
Modded ASUS MG279Q drivers with 60-144 Hz FreeSync range
Modifying INF driver files for the ASUS MG279Q monitor to extend its AMD FreeSync range up to 144 Hz.
How to blow your budget water cooling your PC
Lessons learned building a custom rigid tubing dual-radiator water cooling loop for high performance PC hardware.
Building a MSI Z97-Gaming 5 Yosemite Hackintosh
A detailed installation guide for building a fully working OS X Yosemite Hackintosh using an MSI Z97 Gaming 5 motherboard.
hacking 20 posts
Migrating from Tumblr to Jekyll: A Fresh Start
Reflections and step-by-step notes on breaking an eight-year blogging hiatus and migrating from Tumblr to Jekyll hosted on GitHub Pages.
Guide to add zRAM on the Synology DiskStation DS212j
Enabling zRAM compressed RAM swap on low-memory ARM-based Synology DiskStation NAS models to boost multitasking performance.
Gaming with XDMA CrossFire Passthrough on Ubuntu 17.04
Configuring dual-GPU AMD XDMA CrossFire PCI passthrough inside a KVM Windows virtual machine on Ubuntu Linux.
LEDE and Debian on the NETGEAR Centria N900
Running LEDE Linux and Debian chroot environment on the NETGEAR Centria N900 for custom home server workloads.
Modded R9 390X BIOS for the PowerColor PCS+ R9 290/290X
Flashing a custom PowerColor R9 390X BIOS onto an R9 290/290X graphics card for enhanced performance and higher memory clocks.
Migrating from QGLWidget to QOpenGLWidget
Technical guide for porting legacy Qt QGLWidget OpenGL rendering code to the modern QOpenGLWidget API in Qt 5.4+.
Modded ASUS MG279Q drivers with 60-144 Hz FreeSync range
Modifying INF driver files for the ASUS MG279Q monitor to extend its AMD FreeSync range up to 144 Hz.
Building a MSI Z97-Gaming 5 Yosemite Hackintosh
A detailed installation guide for building a fully working OS X Yosemite Hackintosh using an MSI Z97 Gaming 5 motherboard.
Migrating your project from Qt4 to Qt5
A comprehensive practical guide to upgrading C++ Qt4 codebase dependencies and QMake project configurations to Qt5.
I liberated my NETGEAR Centria N900 router
Flashing OpenWrt onto the NETGEAR Centria N900 router to replace stock firmware and unlock advanced networking features.
My motherboard bus speed started fluctuating between 95-99 Mhz
I own a ASUS Z87 Pro and an Intel 4670K that I’ve overclocked to a respectable 4.4 GHz which had started exhibiting problems. I noticed a few weeks ago that the bus speed was fluctuating between 95-99 MHz by looking at it with CPU-Z. I orginally believed that this was happening due to an imminant motherboard death. In attempts to debug the problem I had: Increased input voltage to 1.9v Decreased/increase uncore multiplier Changed CPU multipliers Increased/decreased voltage Force BCLK to 100 Mhz Disabled/enabled spread spectrum RMA’d my motherboard to ASUS Oddly, the problem only exhibited itself when I was overclocked because the behavior disappeared when I reset to BIOS factory default settings. In truth, the issue was because I had Hyper-V installed on my Windows 8 machine! I discovered this after I disabled Virtualization support in the BIOS and noticed that the fluctuations stopped. After that, I uninstalled Hyper-V, re-enabled Virtualization...
Code Syntax Highlighting for Tumblr Posts using Prettify
Copy and paste the following into your blog description: <script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script> Use the following <pre/> tags in any of your Tumblr posts: <pre class="prettyprint"> Many lines of code </pre>
Adding Twitter to your Tumblr Blog
I’ve recently started using a new Tumblr theme called Optica. It’s awesome, it’s minimalistic, it looks exactly like what I want it to look; but it doesn’t allow me to display Tweets. Bummer! But wait, there must be a way we can hack it in, right? We can always hack the theme’s HTML directly but then we will lose any sort of improvements that happen naturally when the author updates it. So let’s hack it in by (ab)using your blog’s description! Create a embedded-timeline widget using your Twitter account. Edit your Tumblr blog’s theme. Append a custom <div/> element to your blog’s description. For example:
Securing Your Synology DSM with VPN
Bugs and exploits are a natural part of this world. The Synolocker ransomware was recently running rampant and hacking into Synology devices running DSM 4.3 and below. It did this by identifying your device if ports 5000 or 5001 were exposed and then exploiting a bug to implant itself. The only fool-proof solution to preventing being exploited permanently is to be paranoid. Shut down all unnecessary Synology services and never expose any ports to the web. This is far from a convenient solution though. For example, I still want to share access to my Synology device because it hosts a few websites for my family. This required me to find a good balance between security and availability. I decided that the best way to do this was to install the Synology VPN service and use a L2TP/IPSec VPN. I would only expose ports 80, 443 for web serving and ports 1701, 500, and 4500 for VPN. The...
Automatically Syncing your Photo Library to Flickr
I have a photo library that is well over 20GBs in size and only seems to have picked up in pace as cameras got more beefy and packed on the pixels. I am traveling to Scandinavia today, and I really wanted one place that I could store everything and beautifully display it at the same time.
A hard drive has two states: dead and dying
A hard drive has two states: dead and dying—My oldest hard drive is giving its last death rattle in the form of ever more common clicks. It is still working… but I’m pretty sure it’s days are numbered. I’ve backed up all the data from the clicker drive and now started an experiment. I’ve placed this drive and another semi-clicker into a ReFS mirrored storage space on my Windows 8 desktop. Write performance immediately tanked from 140MBps to 45MBps similar to what people have complained about before but otherwise I haven’t noticed any major problems. Will my data survive? I’m planning on adding another working drive to the array just to hedge my bets…
I bought a domain for my Synology NAS
I took the plunge and bought a domain from Namecheap for my Synology NAS. As an added perk I’ve even created a subdomain for my Tumblr blog :-) I’ll document the steps here in case anyone else has a similar setup and wants to do the same: Purchase a domain from your favorite domain registrar Optional: Create and install a free SSL certificate using StartSSL for your Synology NAS by following this guide Setup a Dynamic DNS (DDNS) service. You can either:Preferably: Utilize the Synology MyDS DDNS domain (i.e. XXXX.synology.me).Alternatively: Install Dynamic DNS and be sure to install IPKG and get SSL to workAdd a CNAME for your domain that points to your Dynamic DNS address.Done… or are you? Nope, look at this post to figure out how to secure your Synology device now! All in all, it was very straight forward and a fun weekend project!
Yahoo!: Our Commitment to Our Users' Privacy
Yahoo's statement on user data transparency and privacy.
German IT Officials Reportedly Deem Windows 8 Too 'Dangerous' to Use
German government IT experts raised concerns regarding Windows 8 backdoors and TPM.
hardware 19 posts
Bridging the Gap: Retrofitting a 1993 Home with UL 217 Smoke Alarms and Home Assistant
How I retrofitted a 1993 home with UL 217 9th Edition smoke alarms and integrated them into Home Assistant and Apple HomeKit for critical alerts without cutting into drywall.
Integrating the Tuya Smart Valve Controller with ESPHome
Build an instant, cloud-free local water shut-off system by flashing a $25 Tuya Smart Valve Controller with OpenBeken and ESPHome for Home Assistant.
My DIY NVR: From Raspberry Pi Aquarium Streams to Frigate AI Magic
From streaming an aquarium on a Raspberry Pi to a privacy-focused local NVR with Thingino firmware, Frigate AI object detection, Scrypted HKSV, and Home Assistant.
Integrating the Tuya FS-05R WiFi Dimmer Switch with ESPHome
How to liberate the $4 Tuya FS-05R dimmer switch from cloud lock-in using OpenBeken and ESPHome, enabling local Home Assistant control and custom multi-tap brightness cycling.
Guide to add zRAM on the Synology DiskStation DS212j
Enabling zRAM compressed RAM swap on low-memory ARM-based Synology DiskStation NAS models to boost multitasking performance.
Gaming with XDMA CrossFire Passthrough on Ubuntu 17.04
Configuring dual-GPU AMD XDMA CrossFire PCI passthrough inside a KVM Windows virtual machine on Ubuntu Linux.
Intel Smart Response Technology vs Windows 10 Tiered Storage Spaces
Comparing Intel Smart Response Technology (SRT) SSD caching against Windows 10 Tiered Storage Spaces performance.
LEDE and Debian on the NETGEAR Centria N900
Running LEDE Linux and Debian chroot environment on the NETGEAR Centria N900 for custom home server workloads.
Modded R9 390X BIOS for the PowerColor PCS+ R9 290/290X
Flashing a custom PowerColor R9 390X BIOS onto an R9 290/290X graphics card for enhanced performance and higher memory clocks.
Modded ASUS MG279Q drivers with 60-144 Hz FreeSync range
Modifying INF driver files for the ASUS MG279Q monitor to extend its AMD FreeSync range up to 144 Hz.
How to blow your budget water cooling your PC
Lessons learned building a custom rigid tubing dual-radiator water cooling loop for high performance PC hardware.
Building a MSI Z97-Gaming 5 Yosemite Hackintosh
A detailed installation guide for building a fully working OS X Yosemite Hackintosh using an MSI Z97 Gaming 5 motherboard.
I liberated my NETGEAR Centria N900 router
Flashing OpenWrt onto the NETGEAR Centria N900 router to replace stock firmware and unlock advanced networking features.
My motherboard bus speed started fluctuating between 95-99 Mhz
I own a ASUS Z87 Pro and an Intel 4670K that I’ve overclocked to a respectable 4.4 GHz which had started exhibiting problems. I noticed a few weeks ago that the bus speed was fluctuating between 95-99 MHz by looking at it with CPU-Z. I orginally believed that this was happening due to an imminant motherboard death. In attempts to debug the problem I had: Increased input voltage to 1.9v Decreased/increase uncore multiplier Changed CPU multipliers Increased/decreased voltage Force BCLK to 100 Mhz Disabled/enabled spread spectrum RMA’d my motherboard to ASUS Oddly, the problem only exhibited itself when I was overclocked because the behavior disappeared when I reset to BIOS factory default settings. In truth, the issue was because I had Hyper-V installed on my Windows 8 machine! I discovered this after I disabled Virtualization support in the BIOS and noticed that the fluctuations stopped. After that, I uninstalled Hyper-V, re-enabled Virtualization...
Securing Your Synology DSM with VPN
Bugs and exploits are a natural part of this world. The Synolocker ransomware was recently running rampant and hacking into Synology devices running DSM 4.3 and below. It did this by identifying your device if ports 5000 or 5001 were exposed and then exploiting a bug to implant itself. The only fool-proof solution to preventing being exploited permanently is to be paranoid. Shut down all unnecessary Synology services and never expose any ports to the web. This is far from a convenient solution though. For example, I still want to share access to my Synology device because it hosts a few websites for my family. This required me to find a good balance between security and availability. I decided that the best way to do this was to install the Synology VPN service and use a L2TP/IPSec VPN. I would only expose ports 80, 443 for web serving and ports 1701, 500, and 4500 for VPN. The...
A hard drive has two states: dead and dying
A hard drive has two states: dead and dying—My oldest hard drive is giving its last death rattle in the form of ever more common clicks. It is still working… but I’m pretty sure it’s days are numbered. I’ve backed up all the data from the clicker drive and now started an experiment. I’ve placed this drive and another semi-clicker into a ReFS mirrored storage space on my Windows 8 desktop. Write performance immediately tanked from 140MBps to 45MBps similar to what people have complained about before but otherwise I haven’t noticed any major problems. Will my data survive? I’m planning on adding another working drive to the array just to hedge my bets…
I bought a domain for my Synology NAS
I took the plunge and bought a domain from Namecheap for my Synology NAS. As an added perk I’ve even created a subdomain for my Tumblr blog :-) I’ll document the steps here in case anyone else has a similar setup and wants to do the same: Purchase a domain from your favorite domain registrar Optional: Create and install a free SSL certificate using StartSSL for your Synology NAS by following this guide Setup a Dynamic DNS (DDNS) service. You can either:Preferably: Utilize the Synology MyDS DDNS domain (i.e. XXXX.synology.me).Alternatively: Install Dynamic DNS and be sure to install IPKG and get SSL to workAdd a CNAME for your domain that points to your Dynamic DNS address.Done… or are you? Nope, look at this post to figure out how to secure your Synology device now! All in all, it was very straight forward and a fun weekend project!
open-source 7 posts
The Velocity of Trust: AI, Code Review, and Open Source
AI can write code faster than maintainers can review it. Here is how building an objective benchmark for FAAC solved the trust bottleneck and accelerated open-source collaboration.
FAAC 2.0: A Free, Fast AAC Encoder Built for the Edge
How constraint-driven engineering for embedded IP camera firmware pushed FAAC to a 2.0 release featuring 100% LGPL licensing, HE-AAC support, and a 116 KB footprint running at 544.9x real-time.
QtKeychain: Bringing Secure Password Storage to WebAssembly with Qt6
Bringing native, browser-backed secure credential storage to Qt6 WebAssembly apps via QtKeychain and the HTML Bridge.
Enabling Open Source Two-Way Audio in Thingino
An inside look at building a lean RTSP backchannel audio pipeline on 8MB flash cameras for Thingino, enabling real-time two-way audio with Frigate and Scrypted via libhelix-aac and ONVIF.
My DIY NVR: From Raspberry Pi Aquarium Streams to Frigate AI Magic
From streaming an aquarium on a Raspberry Pi to a privacy-focused local NVR with Thingino firmware, Frigate AI object detection, Scrypted HKSV, and Home Assistant.
LEDE and Debian on the NETGEAR Centria N900
Running LEDE Linux and Debian chroot environment on the NETGEAR Centria N900 for custom home server workloads.
Take Action for Free JavaScript - Free Software Foundation
A call to action from the Free Software Foundation regarding free JavaScript software.
outdoors 24 posts
Crazy Pow at Mt Bachelor in Oregon
We decided to hit up Oregon and were lucky enough have it dump. Amazing times!
Yvonne in Lake Luise
The drop in oil prices lead to a cheap Canadian dollar which in turn led to a an amazingly frugal Canadian vacation! We enjoyed our trip and would highly recommend our fellow skiers and snowboarders to check out the Big 3 in Banff. Click to view the above video in glorious 60 fps!
Mojave National Preserve and Capitol Reef National Park
Mojave National Preserve and Capitol Reef National ParkWe recently bought a Subaru Forester and we decided to take it out on a crazy winter road trip to view our national treasures: our National Parks and Preserves!
I traveled to Peru over winter break
Travel notes and photography from visiting Peru, Machu Picchu, and Cusco over winter break.
Bambu Bike Ride Through Sunnyvale and Santa Clara
A sunny bike ride stopping for Bambu drinks through Sunnyvale and Santa Clara.
Another Day, Another Bike Ride, Another Bubble Tea
Stopping for bubble tea at Tea Era after a bike ride.
smart-home 6 posts
Bridging the Gap: Retrofitting a 1993 Home with UL 217 Smoke Alarms and Home Assistant
How I retrofitted a 1993 home with UL 217 9th Edition smoke alarms and integrated them into Home Assistant and Apple HomeKit for critical alerts without cutting into drywall.
Integrating the Tuya Smart Valve Controller with ESPHome
Build an instant, cloud-free local water shut-off system by flashing a $25 Tuya Smart Valve Controller with OpenBeken and ESPHome for Home Assistant.
Enabling Open Source Two-Way Audio in Thingino
An inside look at building a lean RTSP backchannel audio pipeline on 8MB flash cameras for Thingino, enabling real-time two-way audio with Frigate and Scrypted via libhelix-aac and ONVIF.
Integrating Schlage Encode Plus with Home Assistant via HomeKit Actions and Automations
Integrate the Schlage Encode Plus lock into Home Assistant using HomeKit Actions and helpers to maintain bidirectional status sync while preserving Apple HomeKey and year-long Thread battery performance.
My DIY NVR: From Raspberry Pi Aquarium Streams to Frigate AI Magic
From streaming an aquarium on a Raspberry Pi to a privacy-focused local NVR with Thingino firmware, Frigate AI object detection, Scrypted HKSV, and Home Assistant.
Integrating the Tuya FS-05R WiFi Dimmer Switch with ESPHome
How to liberate the $4 Tuya FS-05R dimmer switch from cloud lock-in using OpenBeken and ESPHome, enabling local Home Assistant control and custom multi-tap brightness cycling.
snowboarding 6 posts
Crazy Pow at Mt Bachelor in Oregon
We decided to hit up Oregon and were lucky enough have it dump. Amazing times!
Yvonne in Lake Luise
The drop in oil prices lead to a cheap Canadian dollar which in turn led to a an amazingly frugal Canadian vacation! We enjoyed our trip and would highly recommend our fellow skiers and snowboarders to check out the Big 3 in Banff. Click to view the above video in glorious 60 fps!
software 15 posts
The Velocity of Trust: AI, Code Review, and Open Source
AI can write code faster than maintainers can review it. Here is how building an objective benchmark for FAAC solved the trust bottleneck and accelerated open-source collaboration.
FAAC 2.0: A Free, Fast AAC Encoder Built for the Edge
How constraint-driven engineering for embedded IP camera firmware pushed FAAC to a 2.0 release featuring 100% LGPL licensing, HE-AAC support, and a 116 KB footprint running at 544.9x real-time.
QtKeychain: Bringing Secure Password Storage to WebAssembly with Qt6
Bringing native, browser-backed secure credential storage to Qt6 WebAssembly apps via QtKeychain and the HTML Bridge.
Deploying a Qt App to the Microsoft Store with CPack and MakeAppx
Avoid expensive code signing certificates for open source Windows apps by packaging C++/Qt CMake builds into Store-ready .appxupload packages using CPack External and MakeAppx.exe.
Migrating from Tumblr to Jekyll: A Fresh Start
Reflections and step-by-step notes on breaking an eight-year blogging hiatus and migrating from Tumblr to Jekyll hosted on GitHub Pages.
Migrating from QGLWidget to QOpenGLWidget
Technical guide for porting legacy Qt QGLWidget OpenGL rendering code to the modern QOpenGLWidget API in Qt 5.4+.
Migrating your project from Qt4 to Qt5
A comprehensive practical guide to upgrading C++ Qt4 codebase dependencies and QMake project configurations to Qt5.
Code Syntax Highlighting for Tumblr Posts using Prettify
Copy and paste the following into your blog description: <script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script> Use the following <pre/> tags in any of your Tumblr posts: <pre class="prettyprint"> Many lines of code </pre>
Adding Twitter to your Tumblr Blog
I’ve recently started using a new Tumblr theme called Optica. It’s awesome, it’s minimalistic, it looks exactly like what I want it to look; but it doesn’t allow me to display Tweets. Bummer! But wait, there must be a way we can hack it in, right? We can always hack the theme’s HTML directly but then we will lose any sort of improvements that happen naturally when the author updates it. So let’s hack it in by (ab)using your blog’s description! Create a embedded-timeline widget using your Twitter account. Edit your Tumblr blog’s theme. Append a custom <div/> element to your blog’s description. For example:
Automatically Syncing your Photo Library to Flickr
I have a photo library that is well over 20GBs in size and only seems to have picked up in pace as cameras got more beefy and packed on the pixels. I am traveling to Scandinavia today, and I really wanted one place that I could store everything and beautifully display it at the same time.
Yahoo!: Our Commitment to Our Users' Privacy
Yahoo's statement on user data transparency and privacy.
German IT Officials Reportedly Deem Windows 8 Too 'Dangerous' to Use
German government IT experts raised concerns regarding Windows 8 backdoors and TPM.
Take Action for Free JavaScript - Free Software Foundation
A call to action from the Free Software Foundation regarding free JavaScript software.
sports 1 post
Watching World Cup 2014 at Yahoo
Watching live World Cup 2014 matches on the big screen with coworkers at Yahoo.
travel 24 posts
Yvonne in Lake Luise
The drop in oil prices lead to a cheap Canadian dollar which in turn led to a an amazingly frugal Canadian vacation! We enjoyed our trip and would highly recommend our fellow skiers and snowboarders to check out the Big 3 in Banff. Click to view the above video in glorious 60 fps!
Mojave National Preserve and Capitol Reef National Park
Mojave National Preserve and Capitol Reef National ParkWe recently bought a Subaru Forester and we decided to take it out on a crazy winter road trip to view our national treasures: our National Parks and Preserves!
I traveled to Peru over winter break
Travel notes and photography from visiting Peru, Machu Picchu, and Cusco over winter break.
Watching World Cup 2014 at Yahoo
Watching live World Cup 2014 matches on the big screen with coworkers at Yahoo.