My New Favorite Phone Game: termux

 A lot of people when bored pull out their phone and play games.  Games just don't do it for me for some reason.  I mean, I played chess for a while, and recently I tried Shoot Bubble and 5 Dice (generic Yahtzee), but for some reason I always forget I even have them available and I end up just scrolling Twitter :-/  My feed is pretty good, if someone gets overly political or negative (usually its a combination of the two) I block them, but stuff still leaks in.  Usually if Twitter is holding my attention for a long time it's because it's making me angry.  I don't like that.  I think I've found a better solution for when I'm bored and pull out my phone: termux . Termux is a linux command-line environment for Android.  It's a kinda like wsl (or cygwin if you are old like me) or, but for your phone.  It's almost linux but not quite.  Normally I find that very frustrating, especially if I'm trying to get real work done (you may have seen my

Git Rebase Explained

Introduction Rebase is a helpful git command that can be used to turn a branchy two-headed version history into an easy to follow linear one. A linear history is much easier for a human eye to follow and a human brain to understand. Rebase is a very safe command to use, despite some fear that people have about it. This post should explain how rebase works and clear up any misunderstandings about it. Rebase Basics The short summary of rebase is that it cuts commits out of the git history and reconnects them somewhere else. Let's say the common scenario comes up: you commit a change to the main branch of a repository, you then run  git fetch , and in come a couple changes that other people made on the main branch. If your commit is version 46f and the others that just came in on the fetch are versions ef9 and 4a2, your version history might look like this: The main branch now has two heads, 46f and 4a2. You can run  git rebase  to disconnect your commit from version d88 and connect i

My 2013 DVCon Paper and Poster

I just noticed that my 2013 DVCon paper and poster are no longer archived on the DVCon website.  So, for my records at least, here they are: The poster:  Poster: ASIC-Strength Verification in a Fast-Moving FPGA World The paper:  ASIC-Strength Verification in a Fast-Moving FPGA World Apologies for the PDF of the paper, but converting it to html requires more time than I have at the moment.

Zmodem File Transfer With GNU Screen

I've been using screen as my serial terminal (as opposed to minicom or picocom) for a long time now.  Today I had the need to transfer a file from my PC to the embedded device I was connected to with screen.  Networking was not working, and a co-worker reminded me that zmodem was a way to transfer a file over the serial port.  I googled for instructions on exactly how to use zmodem and I found stack overflow answers and blog entries all mentioning GNU screen for doing so, but none of them really explained it right.  Here's what worked for me today. To transfer a file from my PC to the embedded device: in screen hit ctrl-a : zmodem catch in screen, at the linux command-line on your device type: rz screen will prompt with an sz command, just append the filename to that command and hit enter Note that this works best if the file is in the same directory as you ran screen from.   To send a file from the embedded device to your PC: in screen hit ctrl-a : zmodem catch in screen, at

Giving Bitcoin as a Gift

 If you've been following along, you know I was considering giving bitcoin as a Christmas gift .  I did end up giving bitcoin to friends and family for Christmas.  I'm pretty happy with how it turned out.  I went with the HD Paper Wallet solution, and so I wrote some python code to generate paper wallets .  The code is open source, and instructions are in the README there on github.  You'll probably want to tweak the template to customize it for you instead of me.  Hopefully someday I can modify the code to make that easy, but I'm pretty new at generating images and PDFs.  The code I write for my day job doesn't involve pretty pictures, or words even :-)

Giving Bitcoin as a Gift, Initial Thoughts

 'Tis the season and I'm thinking about how to give bitcoin as a gift, to non-technical people, without requiring them to do anything like create an account or download software in order to accept it. Paper Wallet Bitcoin paper wallets have been around a long time.  The concept is simple.  Generate a send/receive address pair (private/public key pair) and print them on a piece of paper.  Basic operations: To add bitcoin to the wallet, send some bitcoin to the receive address To check your balance, type or scan the public key into any blockchain explorer  To gift that bitcoin, just hand over the piece of paper To send the bitcoin on the blockchain, type or scan the private key into the bitcoin wallet software of your choice Pros: simple, no fancy hardware or software required for them to receive the bitcoin Cons: No guarantee that the giver didn't keep a copy of the private key Private key could be easy for someone else to see/copy Private key could be easily lost If you wan

Traffic in Little Cottonwood Canyon

This is my comment on the Utah Department of Transportation's plans to "to provide an integrated transportation system that improves the reliability, mobility and safety for residents, visitors, and commuters who use S.R. 210." This is long, but I have tried to order it in such a way that the most important points come first, so don't give up now.  At least read the first 3 paragraphs, please. First and foremost I'd like to ask, what problem are we really trying to solve?  Roughly 355 days a year there are no reliability, mobility, or safety problems on S.R. 210.  The weather is good, the roads are clean and clear, and traffic flows at or above the speed limit of the road.  We all need to understand that the problems with reliability, mobility, and safety only happen about 10 days a year, if the skiers are lucky and we get that many big snow storms. Mobility Congestion on roads is annoying, but we need to seek to understand it before we try to fix it.  Congestion