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?

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.

Matias Ergo Pro keyboard…

This review of the Ergo Pro keyboard from Matias is more then a thinly veiled exercise I dreamed up to test the keyboard… but not much.

The keyboard was delivered today from Amazon. Had to replace a failing ‘natural’ ergonomic keyboard from Microsoft that I’ve typically use on all my computers over the years. I’ve tried different ergonomic keyboards, but always end up with that one. I like mechanical keyboards, but you tend not to find them in an ergonomic styling. The Kinesis Advantage Pro is mechanical, but just a bit too wacky to use everyday. It’d be fine if every keyboard I touch was that one, but switching between keyboards would make that painful… and its too expensive to have everywhere.

So, Aaron at work got the Ergo Pro. It has ‘mechanical’ switches, but quieter then regular switches. Tried it and liked it for the most part. At $200, it was at a price point where if I needed a new keyboard I’d consider it, but too expensive just to buy outright.

Then the Microsoft keyboard on my main desktop broke. Opened up the Amazon app, and 10 seconds later the Matias was on its way. Its a truly split keyboard. Two half make up the keyboard, and you can separate them by any distance you want. The keys are mechanical, but as I mention, they went to lengths to make it quieter then other keys. They are like the MX Cherry Red keys, but a bit softer. Number pad is overlaid on the keyboard, so you have to press the function key and hit ‘U’ for a 4, ‘I’ for a 5… etc. That part isn’t great, but doesn’t bother me much.

Like any modern USB keyboard, it hooked up fine. OS be damned… And I find it fairly easy to get comfortable with. I’m not at the same speed I’d expect with my old keyboard, but I don’t think that will take long to get back to. The biggest issue so far is the Control key next to the ‘N’ on the right hand side. I keep hitting it when I mean to hit a ‘N’… but I think that’ll change as I get used to it.

I suppose the other issue is the height of the keyboard when you add the stands. You have three ways to set up the keyboard physically. Flat, inverse tilt or tented. Flat is exactly as it sounds… just straight on the desk. Inverse tile raises the front of the keyboard where the pads are, which is what I typically do. This puts your hands in a fairly comfortable position when typing for an extending time. Tenting is where the keyboard is lifted in the middle, and the edges are table-height. I’m using this now and I find it much better then the ‘inverse tilt.’ The reason I call this an issue is that the height could be taller. But so far its good enough for me.

So, five hundred words later, and I find that the keyboard is doing just fine. I’m still accidentally opening up new windows via the cntl-n I keep hitting, but it’s better now then at the start of this post. I’m completely enjoying the keyboard. Now it’s just a matter of getting work to buy me one for the office.