ErgoDox and me

I updated my keyboard at work to the ErgoDox EZ. Its the best keyboard I’ve had in a while… replacing my tried and ‘untrusted’ ErgoPro from Matias. The Matias keyboard worked nicely for me, but they kept flaking out… quality challenges where the keyboard would register multiple clicks all the time or just PCB burnout. And I’ve bought 3 of them over the years. Each one has some problem. So, I upgraded.

The ErgoDox is based on a popular open-source design… and the company I had build mine uses a great plastic for the keys, and standard Cherry MX Brown switches by default. (You can pick any you want.) The feel of the keys is awesome, and the ergonomic layout at first seems perfect. Also easy to customize and just plain fun to use.

However… I’m having trouble getting used to the layout. Not the layout of the alphanumeric keys. Rather the arrow keys, escape, command and enter. I happily moved the control key to where the caps lock was. But I’ve found that I’m so locked on where the arrow keys are its hard to keep the flow going when writing code. The curly braces {} so vital to me went to the bottom right. Also, there are now ‘slow’ keys. Hold down one key for a bit and it turns into another. In my case, the command key. That has to go… I need keys that have a distinct function. My typing is too fast for those keys.

Don’t get me wrong, I can move things as I see fit. And do intended to adjust more. But its a work in progress. I’ve been typing for over 35 years… and I feel like I’m back to learning fresh again.  I’ve gone through several layouts of my keyboard and a plan to do more. Its been 5 weeks… I’m giving it another five till I’m truly comfortable in this design.


Kubernetes Phase 1

I just uploaded to github a set of instructions and scripts that I’m using to install kubernetes on raspberry Pis. I’ve run into some weird funk due to the arm OS install on the arm64 processor, and that many containers assume amd64. But this is a start.

The next steps is simplify the install a bit more, and add in instructions to include heapster and kubernetes-dashboard that is compatible. I’m planning on updating to a kernel that is arm64 compatible so I can do more fun stuff.  (Mesos)

Easy-Bake Data Center

I cleaned up my office a few weeks ago. Collected the few raspberry pi’s that are unused. The odd switch; cheap, unmanaged, but efficient. Sure, I’m still in the process of making a game, but like most humans, I’m easily distracted. This distraction got to me when a saw the switch. And of course, when you see a switch, you think about deployment pipelines.

I work at Amazon, and the way we deploy software is fairly cool. When I write software at home, they way I deploy sucks. Its fine for me, but it ‘could be’ soooo much more. So a quick search on-line turned up the Netflix deployment pipeline they open-sourced called spinnaker. Spinnaker sounded like something I wanted to try. Which, of course, means I have to run it somewhere. And no, I’d rather not run it on my development desktop. Besides, having places to run little apps at home is nice, especially since I’d rather not have to keep my desktop on all the time. Raspberry pi’s are great for these types of things.

At $35 a pop, not including SD disk drives, they make perfectly fine compute nodes for a home environment. And there is an active community creating clusters of various sizes. So I looked at my switch and said screw it, lets build a data-center the same way Hasbro said lets build an oven. Here’s the initial play-list of goodness:

  • HypriotOS for the Linux installs. Raspberry pi meets Docker.
  • Kubernetes to manage the docker installs. Following instructions on this post.
  • NFS mounted file-system with one host using 1TB hard drives (For sharing/storing data like ab initio calcs I want to start running again.)
  • Spinnaker, which started all this for me.
  • And not a lot of money, considering

That last part is the interesting part. This is more of a learning exercise then anything else. For a few bucks, I get to build and play with an easy-bake oven version of a data center using modern techniques. I get a simple place to build my software, or run my old calculations 24×7, and the cluster is easily expandable if I so desire. No monthly costs beyond electricity once it’s setup. What’s not to love?

Google Home no longer using Google keep starting April 10

Google looks like its making a change in how it handles lists with Google Home. We use Google Keep a ton. Shared grocery lists are really great… and having you tell Home to add and item to the shared list is perfect. Well, was perfect. Starting April 10th, Google Home will instead add the item to a list in their Express shopping app.

Google Express has a list feature, but it’s not shared between people. It’s really intended only for your self to help with ordering online. This means that when my wife adds to the shopping list on Google Home, she can no longer view it later on her phone. Google Home is attached to my account so its only available to my shopping list on Express. And unlike now, she won’t be able to add to it when she’s away from home using google keep or any other app.

We have basically have three sets of lists that we use. Groceries, CostCo and ‘misc’. (Of course, I’m ignoring the holiday specific lists…) Shared lists is fundamental for us. This all makes Google Home slightly less useful to us. I’m still waiting for Wink integration like I have with Alexa. It is very disappointing.

Starting April 10th, I’ll only be using Google Home like an audio chromecast with speakers… for music or random questions. Most of my music is in my Google account, and I have chromecasts setup around my house. But I’ll end up switching to our Alexa for our and lists in addition to our podcasts and smarthome integration. I’d love to see Alexa support Google Keep, but I doubt that would happen. may be better for us though.

Crypto Library

I finally pushed my first version of paranoia crypto library. Its basically a wrapper around Bouncy Castle. It ‘expires’ keys so they don’t hang out in memory, forces AES-256, uses Scrypt for hashing, requires SecureRandom, and will include a proguard file to munge BC so it doesn’t get into classloader issues on Android. (Google mucked with BC… I’m doing this instead of using spongy castle)

This library avoids the 128 limitations provided by default JCE usage, so you are hereby warned to check your local laws for compliance. I’ll have to send out a post detailing why I had to make this library. If you want to use it, start with the SecuredParanoidManager and run from there. I’ll work on some better examples of how I intend it to be used.

the Farmer…

I’ve started writing a new game. I switched from my second version of ‘Pachinko Fever’ to this ‘pseudo’ RPG style game. We’ll see how it goes. I have the game-play in mind… but its not finalized. I’m making sure that it’ll be interesting and addictive. There is a way to level up and fashion (learn) new ‘features’ in the game easily enough. I’ll go over the game-play more as it solidifies a bit. The core concept is you don’t fight, but you create other creatures to fight for you.

I’m using tiled to create tile maps… and I’m basing the landsacpe on my old house in Wisconsin and the land around it. I had to pick somewhere so I figure’d I’d pick where I know. Its been fun so far to model the environment, both the real and the fantastical. This will take time to develop. LibGDX is the running engine, and gimp for graphics. (More on that later)

The first ‘zone’ is free. Unlocking the game via in-app purchase opens the other ones. First place is home and Osti… what we called the land my home sat on. Troy Village and Troy is on the second zone. The river, Arena, Mazomanie follows next. My goal is to get Osti up first. If I can do that by summer I’ll be a happy camper. Its a Lovecraftian theme but you may not notice that when it plays out. Least I’m hoping that it will be subtle. I’m listening strongly to Extra Credits on this one.

The code for this game isn’t too hard. The real work is going to be in the story and graphics. I’m creating the basic framework now for the game while doodling bits and pieces. Its pixel-art style graphics. That’s important because what I found is that doing pixel-art is easier for me then trying a cartoonish-style, or heaven-help me, realistic. And its simple enough using gimp to handle these graphics. I’m sure my design is going to be problematic to some, but I’m using this as a learning process too. I’m reading more and more about art design in games and looking for common pitfalls.