<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Alex Ives</title>
    <description>% Enthusiast.</description>
    <link>/</link>
    <atom:link href="/feed.xml" rel="self" type="application/rss+xml" />
    <pubDate>Sun, 05 Jul 2026 21:20:38 +0000</pubDate>
    <lastBuildDate>Sun, 05 Jul 2026 21:20:38 +0000</lastBuildDate>
    <generator>Jekyll v4.0.0</generator>
    
      <item>
        <title>OpenSCAD Keyboard Library</title>
        <description>&lt;p&gt;In the height of the pandemic I decided that I would get a 3D printer. I’d been thinking about it for a while and finally decided that I would just go for it and get one. I’ve been using a CNC for a while, but there are some advantages to being able to use a 3D printer instead since it can do shapes a little differently and it’s a lot less work to just get something printed. Also since we just had a kid, having something that largely operates unattended is also advantageous.&lt;/p&gt;

&lt;p&gt;I’ve been building keyboards for a while and in the past, I’ve either generated all of the cases and files by hand laying them out in fusion 360 and spacing with parameters, or generating case files with &lt;a href=&quot;http://builder.swillkb.com/&quot;&gt;swillkb&lt;/a&gt; and then adapting them in an svg editor like inkscape. But when I got the 3d printer I realized I would need to adapt my process in order to get the shapes to come out and I was tired of doing things non-programatically. This is where OpenSCAD came in! I started laying out files, manually, in openscad and extruding and subtracting and such so that I could generate the shapes. Then I realized that what I really wanted was an abstraction for keyswitch holes. Then I asked, “Wouldn’t it be nice if I could just write out a list of the keys and their positions and have them lay out automatically?” Then I built an abstraction around different kinds of case files and generating cases.&lt;/p&gt;

&lt;p&gt;That was when I realized that I had built what was basically a library and thought, hey, why not make it even more general and publish it! So here it is.&lt;/p&gt;

&lt;p&gt;Currently there’s still a lot of work the user has to do in order to make things come out. The case generation is haphazard at best and the api leaves something to be desired. Someday I hope to change to just taking &lt;a href=&quot;http://www.keyboard-layout-editor.com/&quot;&gt;KLE&lt;/a&gt; raw and using that to generate the files instead, but for now folks just have to figure it out.&lt;/p&gt;

&lt;p&gt;Some advantages to this library&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Since all of the parts are generated from the same specs, they fit together pretty much without worrying&lt;/li&gt;
  &lt;li&gt;I also use it to generate a set of files that define a pcb that can be etched on a CNC. (Hoping to someday generate gerber files maybe.)&lt;/li&gt;
  &lt;li&gt;Because it’s openscad just generating shapes, those shapes can be manpulated if you want to add your own case, or add parts to the case for styling or such.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’d been working on designing a new version of my mittens keyboard and so I finally have a functional one thanks to this library! Also since I have a CNC, I could carve the PCB and it’s &lt;em&gt;much&lt;/em&gt; more durable than my old keyboards. The pcb design is based on the &lt;a href=&quot;https://github.com/mtl/keyboard-pcbs&quot;&gt;amoeba single switch pcb&lt;/a&gt;. The downside is you still have to do the work of manually wiring them, but since it’s carved as a single piece you get the added stability and durability of traditional PCB.&lt;/p&gt;

&lt;p&gt;Still working on the documentation so that it’s easy to use, but in the mean time you can check out the readme to get a sense of how to use stuff, and here are some pics of the new keyboard!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens-3/top.jpg&quot; alt=&quot;White plastic split ortholinear keyboard with blue and yellow keycaps in a grid, 24 keys on each half. Background is a blue desk pad with a line drawing of an astronaut.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens-3/pcb.jpg&quot; alt=&quot;Bottom of keyboard with copper colored plate with white circuit board traces, silver solder bridges and contacts, and colored wires connecting components together. White plastic case around the sides.&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Sat, 27 Nov 2021 12:44:00 +0000</pubDate>
        <link>/keyboards/code/2021/11/27/new-keyboard-lib/</link>
        <guid isPermaLink="true">/keyboards/code/2021/11/27/new-keyboard-lib/</guid>
        
        
        <category>keyboards</category>
        
        <category>code</category>
        
      </item>
    
      <item>
        <title>Timezone workflow for Alfred 4</title>
        <description>&lt;p&gt;I guess I’m on an alfred workflow kick right now.&lt;/p&gt;

&lt;p&gt;Since I started at GitLab, I’ve had trouble with timezones. I’ve got a world clock that gives me all of my teammates timezones in a dropdown, but if I’m trying to schedule time with someone, I have to go do math to figure out if the time I’m scheduling for is a time that they’ll reasonably be working.&lt;/p&gt;

&lt;p&gt;To fix this, I’ve written a Timezone Helper workflow. It’s easy, if you type &lt;code class=&quot;highlighter-rouge&quot;&gt;timez&lt;/code&gt; into alfred it gives you a list of configured timezones. If you give it a time afterwards, like &lt;code class=&quot;highlighter-rouge&quot;&gt;timez 10:00&lt;/code&gt; it gives you the same list, but the times the equivalent to the one you entered. That way you won’t accidentally schedule a meeting for someone in the middle of the night!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/alfred-timezones/list-view.png&quot; alt=&quot;Timezone list with timezones for each specified zone&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If you want to add a new zone, you can use &lt;code class=&quot;highlighter-rouge&quot;&gt;timez update &amp;lt;name&amp;gt;, &amp;lt;offset&amp;gt;&lt;/code&gt; and it’ll add that name to the list. If you give it an existing name, it’ll update it. (This is useful at DST change time).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/alfred-timezones/add-individual.png&quot; alt=&quot;Timezone update&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If you want to remove one, you can select it from the list then press ⌘ and enter to remove it.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/alfred-timezones/update-list.png&quot; alt=&quot;update list view&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Anyway, if you work on a distrubted team, maybe this’ll be useful for you!&lt;/p&gt;
</description>
        <pubDate>Wed, 04 Dec 2019 14:16:42 +0000</pubDate>
        <link>/alfred/code/2019/12/04/timezone-helper-alfred-workflow/</link>
        <guid isPermaLink="true">/alfred/code/2019/12/04/timezone-helper-alfred-workflow/</guid>
        
        
        <category>alfred</category>
        
        <category>code</category>
        
      </item>
    
      <item>
        <title>Timer workflow for Alfred 4</title>
        <description>&lt;p&gt;Since I started working from home, I converted an old stationary bike into something I can use at my desk. I like to put a timer up so that I know I’ve been biking, or standing long enough (or if I’ve been sitting too long). So I built a workflow that allows you to set timers and view and cancel existing ones. It tells you it’s done by putting large text on the screen saying it’s done!&lt;/p&gt;

&lt;p&gt;Setting a timer is easy, you just type &lt;code class=&quot;highlighter-rouge&quot;&gt;timer *d *h *m *s&lt;/code&gt; into your alfred box. (replace the &lt;code class=&quot;highlighter-rouge&quot;&gt;*&lt;/code&gt; with times for days, hours minutes seconds.)
&lt;img src=&quot;/images/alfred-timer/timer-set.png&quot; alt=&quot;Timer set&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then you can view and cancel timers by typing &lt;code class=&quot;highlighter-rouge&quot;&gt;timers&lt;/code&gt;, then ⌘+⏎ to remove/cancel the selected timer.
&lt;img src=&quot;/images/alfred-timer/timers-list.png&quot; alt=&quot;Timer list view, says &amp;quot;timers&amp;quot; in the box, has a list with &amp;quot;09:58 Timer with 09:58 left, ⌘+⏎ to remove.&amp;quot; and &amp;quot;239:59:47 Timer with 239:59:47 left, ⌘+⏎ to remove.&amp;quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When the timer is done, it gives you a big image with the notification!
&lt;img src=&quot;/images/alfred-timer/timer-done.png&quot; alt=&quot;Timer done view, says &amp;quot;10s timer is done!&amp;quot;&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Tue, 03 Dec 2019 14:16:42 +0000</pubDate>
        <link>/alfred/code/2019/12/03/timer-alfred-workflow/</link>
        <guid isPermaLink="true">/alfred/code/2019/12/03/timer-alfred-workflow/</guid>
        
        
        <category>alfred</category>
        
        <category>code</category>
        
      </item>
    
      <item>
        <title>Building a Counterflow Wort Chiller</title>
        <description>&lt;p&gt;I started homebrewing about 8 years ago, and since then I’ve steadily upgraded my brewing setup, recently I finally got around to adding a ball valve to my kettle and went to brew a batch only to realize that my wort chiller had super oxidized and I didn’t want to deal with it!&lt;/p&gt;

&lt;p&gt;So I decided he, what a good chance to build a new one! It turned out to be pretty inexpensive to build one.&lt;/p&gt;

&lt;h3 id=&quot;parts-list-40&quot;&gt;Parts List ~$40:&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;2x 1/2” ID Barb x 1/2” MIP Brass Adapter&lt;/li&gt;
  &lt;li&gt;2x 1/2” FIP Brass Tee&lt;/li&gt;
  &lt;li&gt;1x 3/4” Female Garden Hose x 1/2” MIP Brass Adapter&lt;/li&gt;
  &lt;li&gt;1x 3/4” Male Garden Hose x 1/2” MIP Brass Adapter&lt;/li&gt;
  &lt;li&gt;1x 20’ x 3/8” copper tube&lt;/li&gt;
  &lt;li&gt;1x 25’ Garden Hose&lt;/li&gt;
  &lt;li&gt;1x Package of JB Weld&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;tools&quot;&gt;Tools:&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Drill with 3/8” bit&lt;/li&gt;
  &lt;li&gt;Copper Pipe Cutter&lt;/li&gt;
  &lt;li&gt;Corny Keg&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;steps&quot;&gt;Steps:&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;Trim the hose to about 19’.&lt;/li&gt;
  &lt;li&gt;Straighten the copper tube.&lt;/li&gt;
  &lt;li&gt;Feed the copper through hose.&lt;/li&gt;
  &lt;li&gt;Drill out the inside of the barbed adapter with a 3/8” drill bit.&lt;/li&gt;
  &lt;li&gt;Coil the hose around a corny keg.&lt;/li&gt;
  &lt;li&gt;Make sure there are at least 6 inches of brass pipe at each end of the hose.&lt;/li&gt;
  &lt;li&gt;Put a 1/4” bead of JB Weld at each end of the hose and fit a brass Tee at each end over the hose with the JB Weld. (Don’t add the barbed fitting yet, I did stuff in a bad order.)
&lt;img src=&quot;/images/chiller/barbAndTeeFitted.jpg&quot; alt=&quot;Barb and Tee Fitted&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Put a bead of JB Weld on the inside of the Brass Barb and thread tape on the threads, then fit the barb over the copper pipe and screw it in to the Tee.
&lt;img src=&quot;/images/chiller/jbWeldBarb.jpg&quot; alt=&quot;JB Weld on Barb&quot; /&gt;
&lt;img src=&quot;/images/chiller/pipeTapeBarb.jpg&quot; alt=&quot;Thread Tape on Barb&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Let the JB Weld Cure over night.
&lt;img src=&quot;/images/chiller/cureOvernight.jpg&quot; alt=&quot;Cure Overnight&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Put thread tape on the threads of the hose adapters and add them to the Tees at the end of the hose.&lt;/li&gt;
  &lt;li&gt;Wait at least 15 Hours after applying the JB Weld before using it the first time so the JB Weld has time to cure entirely.&lt;/li&gt;
&lt;/ol&gt;
</description>
        <pubDate>Fri, 07 Dec 2018 16:00:00 +0000</pubDate>
        <link>/diy/homebrewing/2018/12/07/making-a-counterflow-wort-chiller/</link>
        <guid isPermaLink="true">/diy/homebrewing/2018/12/07/making-a-counterflow-wort-chiller/</guid>
        
        
        <category>DIY</category>
        
        <category>homebrewing</category>
        
      </item>
    
      <item>
        <title>Selecting a Keyboard Layout</title>
        <description>&lt;p&gt;The first step in building a keyboard can in some ways be a daunting one. Selecting a layout can be really stressful if you aren’t sure what you want. There are a lot of options out there for both DIY and non-DIY options, and most of you will probably only build one or two, so getting a layout you really like is an important step.&lt;/p&gt;

&lt;p&gt;The first keyboard I ever built was an ErgoDox, and when I finally got it working I complained about having to reach some of the keys and one of my coworkers said “Why didn’t you just outline your hand on a piece of paper and make your keyboard around that?” At the time, I didn’t really think that was an option, after all, what did I know about building keyboards? My advice to someone just starting out and reading this is not to worry about it. If your heart is set on a particular layout, just go for it.&lt;/p&gt;

&lt;p&gt;Also &lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;plug&amp;gt;&lt;/code&gt; I’d suggest checking out &lt;a href=&quot;http://keyboardsthat.click&quot;&gt;Keyboards that click&lt;/a&gt;, which has a compendium of a bunch of different layouts and filters so you can sort through them. &lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;/plug&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;There are a variety of considerations, there are basically 4 factors I’d suggest considering when thinking about keyboards. Key stagger, split style, height, and width.&lt;/p&gt;

&lt;h3 id=&quot;height&quot;&gt;Height&lt;/h3&gt;

&lt;p&gt;To start, all of the dimensions for keyboards are measured in a unit called &lt;code class=&quot;highlighter-rouge&quot;&gt;u&lt;/code&gt;. &lt;code class=&quot;highlighter-rouge&quot;&gt;1u&lt;/code&gt; = one normal key width. So your standard letters and numbers would be 1u, where as tab is often 1.5u, and backspace is often 2u.&lt;/p&gt;

&lt;p&gt;In general, keyboards fall into one of three categories of heights (though there are exceptions) with a minimum height of 4u and a max of 6u. In general, the fewer rows you have, the more you have to rely on shifted layers to get all of the keys you need.&lt;/p&gt;

&lt;p&gt;When considering how many rows you want I’d ask yourself the following:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Do you feel like you have to really reach for keys and they’re far away?&lt;/li&gt;
  &lt;li&gt;Are you comfortable changing your typing habits for a keyboard that makes you feel better?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you answered yes to both questions I’d say going to a 4u height keyboard might be a good choice for you, using chording (aka layers) means less reaching, but it will impact your typing habits and it takes a little bit of getting used to. Probably a few days to get back up to your typing speed.&lt;/p&gt;

&lt;p&gt;If you answered yes to the first question and maybe to the second, I’d suggest looking at a 60% keyboard or something with a 5u height. That moves the f keys to a layer, but for the most part leaves the experience the same as using a normal keyboard.&lt;/p&gt;

&lt;p&gt;If you anwered no to both, I’d suggest sticking with a 6u height keyboard, that pretty much locks you into either the full-sized or tenkeyless realms, but there are a few options in that height range.&lt;/p&gt;

&lt;h3 id=&quot;width&quot;&gt;Width&lt;/h3&gt;

&lt;p&gt;Like height, all of the dimensions are measured in &lt;code class=&quot;highlighter-rouge&quot;&gt;u&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Keyboard width is one of those things that’s pretty debateable. In terms of ergonomics, the general consensus is that moving your hand further to the mouse is less good, so going for a narower keyboard might be good, but to me, it’s always seemed like a diminishing return. In terms of desk space, the savings is obvious.&lt;/p&gt;

&lt;p&gt;Consider the following:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Is your desk small?&lt;/li&gt;
  &lt;li&gt;Do you feel like your mouse is really far away?&lt;/li&gt;
  &lt;li&gt;Do you use the arrow keys a lot?&lt;/li&gt;
  &lt;li&gt;Do you use the numpad a lot?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you answered Yes to 1 or 2, and no to 4, you can drop right away down to &lt;code class=&quot;highlighter-rouge&quot;&gt;18u&lt;/code&gt;. If you answered yes to 1, 2, and 4, you may want to consider getting an external number pad, they make some pretty good ones and then you can put your number pad in an ergonomically relevant place.&lt;/p&gt;

&lt;p&gt;If you answered yes to 1 or 2 and 3, there are other options if you’re using a keyboard with layers, and other location options, especially in the 65% keyboard area (16u x 5u). Another option if you’re looking even lower is to take advantage of layering. I actually keep arrow keys on h,j,k,l right on my home row with a modifier, no more traveling down to the arrow cluster (which I got rid of)&lt;/p&gt;

&lt;h3 id=&quot;key-stagger&quot;&gt;Key Stagger&lt;/h3&gt;

&lt;p&gt;Traditionally, keyboards have had keys that are staggered horizontally. This tradition dates back to typewriters in order for the key stems not to get in the way of one another, and has no bearing at all on usability. To that end, a lot of ergonomic options these days are pushing either no stagger at all (a grid) or a vertical stagger that lets your fingers move in a straight line rather than all over the place.&lt;/p&gt;

&lt;p&gt;Consider the following:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Do you feel like your fingers are reaching in strange directions?&lt;/li&gt;
  &lt;li&gt;Are you worried about carpel tunnel or other ergonomic issues?&lt;/li&gt;
  &lt;li&gt;Are you comfortable changing your typing habits for a keyboard that may feel better?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you answered yes to 1 or 2 and 3, then I’d suggest a horizontal stagger, or no stagger at all if that appeals to you. If you answered a hard no for 3, I’d suggest going with a horizontal stagger.&lt;/p&gt;

&lt;h3 id=&quot;split&quot;&gt;Split&lt;/h3&gt;

&lt;p&gt;Split keyboards have been around a while, though fully split keyboards were less common until a few years ago in favor of keyboards that were a single piece with the keys just split down the middle. The biggest problem with most split designs is a matter of which hand you use to type certain keys. For example, Many split keyboards put the number &lt;code class=&quot;highlighter-rouge&quot;&gt;6&lt;/code&gt; on the right half, some put it on the left half, but if you type the number &lt;code class=&quot;highlighter-rouge&quot;&gt;6&lt;/code&gt; with the other hand it can be a really big pain to switch because you’re not just moving something a little, you’re using a whole different hand and you have to develop new muscle memories for it.&lt;/p&gt;

&lt;p&gt;The advantages of a split keyboard are pretty obvious though, being able to angle your wrists will put less stress on them long term. Also being able to spread your arms further apart may be more comfortable for you. It certainly is for me.&lt;/p&gt;

&lt;p&gt;Consider the following:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Do you feel like your wrists are at odd angles, or do they get sore when you type?&lt;/li&gt;
  &lt;li&gt;Are you comfortable changing your typing habits for a keyboard that may feel better?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This time, if you answered “no” to number 2, it doesn’t mean you won’t be able to find something. I’d suggest checking which fingers you use to type &lt;code class=&quot;highlighter-rouge&quot;&gt;6&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;b&lt;/code&gt;. And with those answers in mind, take a look at the available split keyboards and see if you can find one that meets your requirements. That may still require some adjustment, but it may be less than you expect. There is at least one keyboard that actually has a bit you can break off depending on which side those letters are on.&lt;/p&gt;

&lt;h3 id=&quot;actually-picking-a-layout&quot;&gt;Actually Picking A Layout&lt;/h3&gt;

&lt;p&gt;Once you’ve (hopefully) narrowed it down a bit, I’d suggest taking your keyboard into the &lt;a href=&quot;http://keyboard-layout-editor.com&quot;&gt;Keyboard Layout Editor&lt;/a&gt; and editing it further from there. If you’re still on &lt;a href=&quot;http://keyboardsthat.click&quot;&gt;Keyboards that Click&lt;/a&gt;, you can simply click on any layout and it’ll take you to the layout editor for that keyboard.&lt;/p&gt;

&lt;p&gt;From there you may want to re-arrange the keys, or even add keys! Once you’ve got it in a place you want, I’d recommend printing it off and just trying it out. Put your fingers on the layout and see how it feels to reach for the keys. From there you can tweak the layout further, or you can try something completely different. Either way, printing out a layout is an important step in figuring this out, since it lets you try things out before you totally commit, and while it’s not the same as actually building something, it’s a useful step to getting things done.&lt;/p&gt;

&lt;h3 id=&quot;next-up-picking-a-switch&quot;&gt;Next up: Picking a Switch&lt;/h3&gt;
</description>
        <pubDate>Sat, 14 Apr 2018 17:00:00 +0000</pubDate>
        <link>/keyboards/diy/2018/04/14/building-your-own-keyboard-pt-1/</link>
        <guid isPermaLink="true">/keyboards/diy/2018/04/14/building-your-own-keyboard-pt-1/</guid>
        
        
        <category>keyboards</category>
        
        <category>DIY</category>
        
      </item>
    
      <item>
        <title>Selecting a Switch</title>
        <description>&lt;p&gt;Perhaps even more than layouts, people have long argued about what the “Best” keyswitch is. The truth is that no keyswitch is the best switch, though mechanical switches do tend to be more durable, and in terms of DIY they’re largly the only option. So this article is dedicated to selecting a mechancial keyswitch for your keyboard based on a variety of options.&lt;/p&gt;

&lt;p&gt;In general there are two main factors that go into a given mechancial switch: feedback and resistance.&lt;/p&gt;

&lt;h3 id=&quot;feedback&quot;&gt;Feedback&lt;/h3&gt;

&lt;p&gt;Feedback is generally separated into 3 sub categories: Clicky, Tactile, and Linear.&lt;/p&gt;

&lt;h4 id=&quot;clicky&quot;&gt;Clicky&lt;/h4&gt;

&lt;p&gt;Clicky switches, as their name implies, give audible feedback when the switch has been activated. This allows you to know when the switch has been activated and stop pressing. In addition, the tactile feedback is greatly enhanced by the clicking mechanism, meaning that you really know when the switch has been activated.&lt;/p&gt;

&lt;p&gt;Clicky switches work by having a sliding bar around the stem of the key that provides additional resistance when you press down the key, but snaps through when you clear it, thus letting you know that the switch is connected.&lt;/p&gt;

&lt;p&gt;Questions to ask yourself:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Do you work in an open office environment?&lt;/li&gt;
  &lt;li&gt;Do you work at home but have an easily annoyed partner/spouse/child/pet?&lt;/li&gt;
  &lt;li&gt;Do you have to press keys very rapidly? (Gaming?)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you answered yes to either 1 or 2, you probably want to check with either your coworkers or partners before you get one of these and annoy the heck out of them with your incessant clicking. With that said, the feedback from these is pretty spectacular. If you answered yes to number 3, keep in mind that the added feedback from the click bar makes these slightly harder and therefore slower to press. For that reason, many gamers prefer linear switches.&lt;/p&gt;

&lt;h4 id=&quot;tactile&quot;&gt;Tactile&lt;/h4&gt;

&lt;p&gt;Tactile switches are the happy middle ground, quiet enough that you can use them in an office, but with enough of a tactile bump that you get some feedback while you’re typing so you know you’ve activated a key. Tactile switches are similar to clicky switches insofar as they provide resistance while pressing the key, the difference is that instead of having a sliding mechanism, they instead just have a bump that provides the feedback without the noise. The feedback is slightly reduced, but they’re much quieter.&lt;/p&gt;

&lt;p&gt;Questions to ask yourself:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Do you ever bottom out keys?&lt;/li&gt;
  &lt;li&gt;Do you feel like you have to press your keys really far to activate them?&lt;/li&gt;
  &lt;li&gt;Do you work somewhere where noise must be absolutely minimal?&lt;/li&gt;
  &lt;li&gt;Do you have to press keys very rapidly? (Gaming?)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you answered yes to 1 or 2, I’d highly recommend either tactile or clicky switches to get that feedback for you. With that said I think anybody can benefit from keys with feedback because they make you more aware of when the key is activating and that can help improve your typing habits.&lt;/p&gt;

&lt;p&gt;If you answered yes to number three, I’d still suggest trying it out, but keep in mind that these switches could still be a little bit louder than your typical keyboard. There are ways to mitigate this, generally with small o-rings attached to the stem of the keycaps to cushion bottom outs.&lt;/p&gt;

&lt;p&gt;If you’re an avid gamer, like the clicky switches, tactile switches still provide extra resistance when you’re using them and that can be good or bad depending on your style. They also will be louder if you’re talking over a chat service, so keep that in mind.&lt;/p&gt;

&lt;h4 id=&quot;linear&quot;&gt;Linear&lt;/h4&gt;

&lt;p&gt;Linear switches are in a boat of their own, unlike clicky or tactile switches, there’s no feedback at all other than the spring when you press it. The big advantage they provide is that they can be very easy to press, since they offer no extra resistance for feedback, the activation weight can be much higher.&lt;/p&gt;

&lt;p&gt;Questions to ask yourself:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Do you have weak fingers?&lt;/li&gt;
  &lt;li&gt;Do you need to press keys very quickly?&lt;/li&gt;
  &lt;li&gt;Do people complain that you type too loud?&lt;/li&gt;
  &lt;li&gt;Do your fingers get tired or sore when you type?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you answered yes to 1 or 2, linear switches might be right for you. In general I tend to recommend that people consider and try tactile options first, and if you answered yes to number 3, you probably want to consider a different option.&lt;/p&gt;

&lt;h3 id=&quot;resistance&quot;&gt;Resistance&lt;/h3&gt;

&lt;p&gt;As a rule, resistance in the keypress is generated by two factors: The size of the spring, and the amount of tactile feedback. For the most part it really comes from the strength of the spring, so let’s start there.&lt;/p&gt;

&lt;p&gt;Keyboard springs are generally measured in gram force millimeters. In most places this is abbreviated as &lt;code class=&quot;highlighter-rouge&quot;&gt;g&lt;/code&gt;. Yes, that’s not really correct, it should be &lt;code class=&quot;highlighter-rouge&quot;&gt;gfmm&lt;/code&gt;, but it’s not, so get over it.&lt;/p&gt;

&lt;p&gt;For the most part, springs start at 35g and go up to around 100g. Most of the popular switches use springs that put them between 45g and 55g at bottom out.&lt;/p&gt;

&lt;p&gt;Questions to ask yourself:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Do you tend to bottom out the keys when you type?&lt;/li&gt;
  &lt;li&gt;Do people complain that you type too loud?&lt;/li&gt;
  &lt;li&gt;Do your fingers get tired or sore when you type?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you answered yes to 1 or 2, you may want to consider heavier keys. If you answered yes to number 3 you may want to consider a weaker spring.&lt;/p&gt;

&lt;p&gt;At the end of the day, there is no substitute to trying out switches. If you have a friend with a keyboard with switches you like, then ask to try it out. If you don’t know anybody with switches it’s not a bad idea to either order one of each switch you think you want.&lt;/p&gt;

&lt;h3 id=&quot;next-up-fabricating-the-case&quot;&gt;Next up: Fabricating the Case&lt;/h3&gt;
</description>
        <pubDate>Sat, 14 Apr 2018 16:00:00 +0000</pubDate>
        <link>/keyboards/diy/2018/04/14/building-your-own-keyboard-pt-2/</link>
        <guid isPermaLink="true">/keyboards/diy/2018/04/14/building-your-own-keyboard-pt-2/</guid>
        
        
        <category>keyboards</category>
        
        <category>DIY</category>
        
      </item>
    
      <item>
        <title>The Mittens Keyboard MKII</title>
        <description>&lt;p&gt;In the last post about building keyboards I talked about how easy it turned out to be to hand wire a keyboard, I’ve got a new one of the same design that I just finished. I thought I’d share that build log with you all.&lt;/p&gt;

&lt;p&gt;Full disclosure, I’m writing this blog post on it.&lt;/p&gt;

&lt;p&gt;This time I decided to cut the pieces out of wood instead of out of plastic, it just looks a bit nicer. I also took the canvas keycaps off of the first version and put them on here because those keycaps look freak’n awesome with wood next to them.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens-2/case_parts.png&quot; alt=&quot;Laser cut pieces&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I also decided to give the Kaihua Kailh Box Browns a spin on this one. I tried them out while the board wasn’t done yet and decided they have a nice resistance to them. I also like the idea that spilling my coffee might not result in a keyboard that has to dry out.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens-2/case_fitting.png&quot; alt=&quot;Fitting case with keys&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Since I cut the case out of wood with a laser, I had to do a bit of sanding to get the sides to come out again.  To make this easier I actually glued the case together first, then I clamped it to the workbench and got to sanding.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens-2/case_sanding.png&quot; alt=&quot;Sanding the case&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In order to keep the case together after I put things together, I decided to add little edges that would keep the sides in place, and then I countersunk a hole in the bottom of the case and added a tapped fitting into the wood on the inside. This worked okay, but I ended up having to clip the fitting a little in order to get it to fit inside the case.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens-2/case_countersunk_hole.png&quot; alt=&quot;Countersunk hole in case&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I used a stainless still screw to keep it in. For version 3, I plan to build this functionality into the design of the case so that I don’t have to retro fit it so strangely.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens-2/case_screw.png&quot; alt=&quot;Screw in case hole&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once I had everything set up, I glued the key switches in with super glue. You could also use something like wood glue, or some sort of plastic cement. I would advise against using hot glue like I did in the first version of this because as the hot glue set, it would push the keys out of the holes in strange ways, so I ended up with some uneven keys. Not to say you can’t use hot glue for other stuff, hot glue is great.&lt;/p&gt;

&lt;p&gt;Once the switches were glued I wired up all of the rows using the diodes. You might also be able to do this with diodes in the columns, but I think the rows works a little bit neater.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens-2/solder_diodes.png&quot; alt=&quot;Rows are soldered up&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once you’ve got the rows soldered up, it’s time to attach the columns and also to add lead wires to the rows to go to your microcontroller. For this some people like hookup wire, the only problem with hookup wire is you have to plan it out really carefully, and if you mis-measure, you can pretty easily end up with contacts touching by accident. To avoid this, I recommend solderable enamel wire. I used a 28g PN155 wire from Remington Industries, it was fairly inexpensive on amazon and it showed up pretty fast.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens-2/solder_columns.png&quot; alt=&quot;Solder up the columns and add leads&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You might notice that I left a whole lot of wire on the end of that. This is on purpose for two reasons: 1 - solderable enamel wire is very cheap. Like, $10 for 500 ft. 2 - It meant that I didn’t have to do any planning about where stuff would get routed once I got it all together.&lt;/p&gt;

&lt;p&gt;Next I added the microcontroller&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens-2/solder_microcontroller.png&quot; alt=&quot;Fit microcontroller in place&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once it’s fit it was just a matter of pulling the wires tight. After getting them tight and soldered to the microcontroller I did a quick sanity check to make sure all of the connections were good. I did this by taking my multimeter and just using the continuity checker to make sure all of the places I had soldered were connected and that it wasn’t connected to any of the columns. One of the hard parts about working with enamel wire is that you have to melt or burn off the enamel coating on all of the solder points. Once that was done I trimmed off the wire just above the microcontroller and glued it and the cables in place with hot glue.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens-2/trim_cables.png&quot; alt=&quot;Cables are trimmed&quot; /&gt;&lt;/p&gt;

&lt;p&gt;After that it’s more or less just a matter of repeating the same process on the other half of the keyboard.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens-2/solder_second_microcontroller.png&quot; alt=&quot;Second half soldered&quot; /&gt;&lt;/p&gt;

&lt;p&gt;For those of you who look closely at that last one, you might notice that that half has a few weird wires going on. After I started soldering the microcontroller I realized that some of the wires had come loose and got pulled away from the pins they were supposed to be attached to. Rather than starting over I just added more wire and soldered it to the pins that were still good.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens-2/trim_second_microcontroller.png&quot; alt=&quot;Second microcontroller has trimmed leads&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If you know your let’s split very well (or you read my last post about it), you might also notice that this is actually just a modified let’s split. It’s not! it also has all of the rows and columns backwards because I soldered the first one wrong and didn’t want to deal with it on the second one. :P&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens-2/final.png&quot; alt=&quot;Keyboard is all done&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Anyway, that’s all of it! It really wasn’t too hard. If you’ve got basic soldering tools and access to a case or laser cutter (These are starting to show up all over the place, our library has one.), then you could build one yourself. I sourced and bought all of the parts for this keyboard for around $45-50 (not counting keycaps). You could probably do it for even less if you can find the right deals. I was at a goodwill the other day and there was a Monoprice keyboard with cherry blues in it on the shelf for $3. Anyway, what I’m saying is that keyboards don’t have to be an expensive hobby! I mean, they can be if you’re an idiot like me who drops $70 on a keycap set from massdrop at the drop of a hat, and feels like it was a good deal. This hobby with be the end of me.&lt;/p&gt;

&lt;p&gt;So this story makes it sound like this went off without a hitch. If you think that’s true, I will direct you to the following picture.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens-2/first_try_at_wires.png&quot; alt=&quot;Wiring first try&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Look at that beautiful cable routing! It’s so fancy with it’s color coordinated cables and nice routing around the keys! There was just one problem, it didn’t work. I couldn’t get the microcontroller to flash correctly. So I took it all apart, plugged in the microcontroller by itself to see if I could flash it. It worked. Must be my wiring right?&lt;/p&gt;

&lt;p&gt;So I wired it up again exactly the same way. Still didn’t work, what the heck! So I took it all apart and ordered some new arduino pro micros. I must have gotten a weird one right?&lt;/p&gt;

&lt;p&gt;When I wired it up in the new one with the new wire, the first half worked perfectly! Yes, it must have been that arduino. Thats the only explanation. So I went to wire up the second half and again nothing worked! What the heck? This other one worked.&lt;/p&gt;

&lt;p&gt;This is when I discovered there is such a thing as power only micro usb cables, and that I own one. Neat. Anyway, for future reference, always make sure that your cable works before you rip things apart and put them back together 3 times.&lt;/p&gt;
</description>
        <pubDate>Sun, 28 Jan 2018 18:16:00 +0000</pubDate>
        <link>/keyboards/2018/01/28/mittens-mk2/</link>
        <guid isPermaLink="true">/keyboards/2018/01/28/mittens-mk2/</guid>
        
        
        <category>keyboards</category>
        
      </item>
    
      <item>
        <title>I Built a Custom Keyboard</title>
        <description>&lt;h3 id=&quot;and-it-wasnt-that-hard&quot;&gt;and it wasn’t that hard.&lt;/h3&gt;

&lt;p&gt;I’ve &lt;a href=&quot;/keyboards/2015/01/03/building-the-ergodox/&quot;&gt;written before&lt;/a&gt; about building keyboards. One of the first questions I got after building my ErgoDox was from the another engineer I worked with.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Why didn’t you just trace an outline of your hand and build a keyboard to match it?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;At first I thought that question was absurd. Me? Build a whole keyboard from scratch? I didn’t even know how to begin. That was three and a half years ago and my &lt;del&gt;obsession with&lt;/del&gt; knowledge of keyboards has only grown since then. About two years ago I encountered the &lt;a href=&quot;https://olkb.com/planck/&quot;&gt;Planck keyboard&lt;/a&gt; and I was intrigued. The idea of having everything I needed that close to the home row? Awesome.&lt;/p&gt;

&lt;p&gt;So I ordered a pcb and built one. I hated it. It wasn’t that keyboard was low quality, it wasn’t. In fact I’m very impressed at the craftsmanship of it. I ordered the pcb from olkb and it was amazing actually. Super easy to put together. I built my own plate and case and it worked easily. Not to mention, the &lt;a href=&quot;http://qmk.fm&quot;&gt;QMK firmware&lt;/a&gt; is pretty fantastic. In fact I’ve since ported my ErgoDox layout to QMK instead because it’s got support for so many cool things.&lt;/p&gt;

&lt;p&gt;Coming from the ErgoDox the first thing that drove me crazy was that it wasn’t split. At first I thought, “You’ll get over that!” and “It’s so portable, you can handle not split for the sake of portability!”. I was wrong. The second thing I had trouble with was my thumbs running into each other on the bottom row. The ErgoDox has trained me to stick them out so far.&lt;/p&gt;

&lt;p&gt;I did learn a lot about how I wanted my keyboard to be from that one though. For one, the 40% design is great. In fact, I took that layout and put it straight onto my ErgoDox, melded with my own ErgoDox layout. I quickly stopped using the top row of my keyboard. I still came back to the question that engineer asked me before though:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Why didn’t you just trace an outline of your hand and build a keyboard to match it?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I started looking for something in between. I stumbled on the &lt;a href=&quot;https://mehkee.com/products/lets-split-pcb&quot;&gt;lets split&lt;/a&gt;. For a moment I thought maybe that would be the right thing but then I went back to that question and thought to myself, “Well, someone else already laid out this circuit and written firmware, how hard could it be to hand wire one in the layout I want?”&lt;/p&gt;

&lt;p&gt;Enter, the &lt;a href=&quot;http://www.keyboard-layout-editor.com/#/gists/5ac01610baa8137f85ac16e55d5af0c9&quot;&gt;MittensKB&lt;/a&gt;. It has the same number of keys as the let’s split, and it uses the same firmware and micro controllers, but instead of being 100% ortholinear, I gave it vertically staggered columns and arcing thumb buttons.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.keyboard-layout-editor.com/#/gists/5ac01610baa8137f85ac16e55d5af0c9&quot;&gt;&lt;img src=&quot;/images/keyboards/mittens/layout.png&quot; alt=&quot;MittensKB Layout&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So finally I’m back to the shape of my hands. Thumb buttons that aren’t too far away like the ErgoDox ones. Staggered in columns like your fingers are also staggered on your hand. I didn’t quite sit down and trace the shape of my hands, but I did print off this keyboard several times and iterate on the design until I felt like my fingers fit on it correctly.&lt;/p&gt;

&lt;p&gt;To simplify things I thought I’d start off with something that already had firmware for it to make things easier, but I think the next one I build might be 100% custom because it’s actually not that hard adapt QMK for your own keyboards.&lt;/p&gt;

&lt;p&gt;So for building the Mittens, after I had the basic design down, and I was sure I knew how it would fit on my hands, and the wrist rest (where I was going to put the micro-controller), the first step was to cut out the top and bottom plates.&lt;/p&gt;

&lt;p&gt;As usual, I screwed this up because I thought, hey, I’ll just cut this thing out and be done! Unfortunately the laser cutter I was using at TCMaker likes everything in svg form to be in exactly the dpi it expects. So end story, the thing I cut out the first time was 30% smaller than I needed it to be. Actually more like 33.333% smaller than I needed it to be. So I thought, “Hey, I’ll just scale it up by 30%!” Turns out that was just not quite enough because when I got home and put in all of the switches: A) The Kailh speed switches actually didn’t fit in the holes, and B) The other switches that did sort of fit were so close together the keycaps would get stuck down.&lt;/p&gt;

&lt;p&gt;If you look at that picture you’ll see how close it got.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens/rev0.jpeg&quot; alt=&quot;Wooden keyboard plates with keys so close together there are no gaps and you can't press the buttons&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Anyway, so I mothballed the whole thing writing it off as a failure and sobbing myself to sleep at night. Okay that’s an overstatement. I did let my TCMaker membership expire without renewing it because paying $55/month for something you don’t go to is expensive.&lt;/p&gt;

&lt;p&gt;Two weeks ago things changed. I wanted to work from home, but I couldn’t work at any of our desks because my muscle memory is such that the feedback of mechanical keys makes me want to type in a way that doesn’t work on normal keyboards. Plus I had learned about something new. Turns out the George Latimer Central Library in St Paul has what they call the Innovation Lab, a free makerspace for adults. And they have a laser cutter. And it’s free. And it’s 2 blocks from where I work. I literally have to walk past it on my way to work sometimes.&lt;/p&gt;

&lt;p&gt;So I went and took their “Orientation”, which is really just code for sign some papers, talk about what neat stuff they have, and show you around and tell you about things you can do on all of the machines. I’ll say, that place is pretty neat. They’ve got a laser, a couple 3d printers, a vinyl plotter, and some other random equipment like sewing machines and laptops. Oh, also a recording studio.&lt;/p&gt;

&lt;p&gt;So I went that very same day to use their laser cutter, and cut some new plates out of some spare clear acrylic that was lying around.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens/rev1-fit.jpeg&quot; alt=&quot;Transparent keyboard plates with keys and keycaps that fit well&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This time, the keys fit with keycaps and all! The big secret was this. I exported all of my files as pdfs, and then printed them out to make sure the size was right first. When the pdf was then imported into the laser software, it brought a dimensional component with it, unlike the svg I guess.&lt;/p&gt;

&lt;p&gt;Next was actually the annoying but fun part, soldering all of the switches. I read around a few guides and honestly, mostly I just looked at this picture I found of someone who had hand soldered their own let’s split instead of paying the $8 for the pair of pcbs. That seems like crazy talk to me, but hey, to each their own.&lt;/p&gt;

&lt;p&gt;The trick to getting this all right was that the bottom row was shifted one column over. So long as I kept it in the same grid used in the original let’s split, there should be no reason that the firmware shouldn’t work. Plus, I’d potentially have access to other people’s let’s split layouts which seemed like it might be good. (Not that I actually used any of them).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens/rev1-soldered.jpeg&quot; alt=&quot;Bottom of transparent keyboard plates with row and column wiring diodes towards the rows&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I made two minor mistakes in my initial soldering: A) I didn’t leave any extra slack on the end of my hookup wire, so I had to solder on more. B) I used solid core hookup wire instead of braided wire which I think would have been more flexible.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens/rev1-wired.jpeg&quot; alt=&quot;Bottom of transparent keyboard plates with micro controllers installed and a wire connecting them slit&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It works! But I did make a couple of minor errors. First, the rows are defined bottom to top, not top to bottom so my rows are wired backwards. An easy firmware fix as it turns out. Second, a couple of the keys were not as well soldered as I thought and I had to go back and hook them back up.&lt;/p&gt;

&lt;p&gt;It actually works pretty well, and I’m so happy with it that I already started building the Rev 2. Instead of having the arduino down in a wrist rest that’s too short to be useful, I’m putting them in the part of the keyboard that makes it actually look like a mitten. Thus defeating the name and making me look silly. But that’s okay because it fits better there and wrist rests made only of foam are better anyway. Plus it’ll be more portable. I also wanted to make it out of wood.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens/rev2-arduino.jpeg&quot; alt=&quot;Keyboard made out of wood with a micro controller in a clever place instead of a silly one&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens/rev2-case.jpeg&quot; alt=&quot;Split keyboard made of wood without any switches in it&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/mittens/rev2-switches.jpeg&quot; alt=&quot;Right half of split keyboard with Kailh Brown Box switches in it&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I haven’t decided for sure that I’m going to use the Kailh brown switches yet, but overall I’ve been pretty impressed with other switches they’ve made. The Rev 1 has the copper speed switches in it and I’m quite fond of them. I bought a 120 pack of the brown box switches because I’m good at spilling things, so I’ll probably just use em because as I said, I’m good at spilling things. Especially coffee. On my keyboard. All the time.&lt;/p&gt;

&lt;p&gt;At any rate. Hope this has been informative. While I build the rev 2, I’ll try to put together an actual hand wiring guide. I hope this inspires you to build your own keyboard, because it’s really not as hard as you think it is!&lt;/p&gt;

</description>
        <pubDate>Fri, 22 Dec 2017 22:16:00 +0000</pubDate>
        <link>/keyboards/projects/2017/12/22/I-built-a-keyboard/</link>
        <guid isPermaLink="true">/keyboards/projects/2017/12/22/I-built-a-keyboard/</guid>
        
        
        <category>keyboards</category>
        
        <category>projects</category>
        
      </item>
    
      <item>
        <title>Easy Switch Tester/Fidgets</title>
        <description>&lt;p&gt;As the holidays roll around every year I always try to think of was that I can give people cool gifts that really come from me and somehow are still cool. I also like making stuff. This has inevitably ended in several duds. This year however, I saw something on Massdrop and thought, hey, I bet I could make something like that and it wouldn’t cost me $20. (TBH nor do mine look as nice.) The &lt;a href=&quot;https://web.archive.org/web/20191206012026/https://drop.com/buy/clickeybits-fidgety-switch-tester&quot;&gt;ClickeyBits fidgets&lt;/a&gt; are kind of a neat idea!&lt;/p&gt;

&lt;p&gt;I also happened to be working on the &lt;a href=&quot;/keyboards/projects/2017/12/22/I-built-a-keyboard/&quot;&gt;MittensKB Rev 2 case&lt;/a&gt; at the same time, so I figured I could cut out some boxes inside of some of the bigger holes in the case. It’s a pretty simple design:&lt;/p&gt;
&lt;svg version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; x=&quot;0&quot; y=&quot;0&quot; width=&quot;263.016&quot; height=&quot;187.344&quot; viewBox=&quot;0, 0, 263.016, 187.344&quot; alt=&quot;design for cutting keyswitch fidgets&quot;&gt;
  &lt;g id=&quot;Layer_1&quot;&gt;
    &lt;path d=&quot;M33.134,18 L33.134,26.496 L48.269,26.496 L48.269,18 L63.403,18 L63.403,26.496 L78.537,26.496 L78.537,18 L93.672,18 L93.672,33.134 L85.176,33.134 L85.176,48.269 L93.672,48.269 L93.672,63.403 L85.176,63.403 L85.176,78.537 L93.672,78.537 L93.672,93.672 L78.537,93.672 L78.537,85.176 L63.403,85.176 L63.403,93.672 L48.269,93.672 L48.269,85.176 L33.134,85.176 L33.134,93.672 L18,93.672 L18,78.537 L26.496,78.537 L26.496,63.403 L18,63.403 L18,48.269 L26.496,48.269 L26.496,33.134 L18,33.134 L18,18 L33.134,18 z M75.678,35.993 L35.993,35.993 L35.993,75.678 L75.678,75.678 L75.678,35.993 z&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-width=&quot;0.72&quot; /&gt;
    &lt;path d=&quot;M108.806,18 L108.806,26.496 L123.941,26.496 L123.941,18 L139.075,18 L139.075,26.496 L154.21,26.496 L154.21,18 L169.344,18 L169.344,33.134 L160.848,33.134 L160.848,48.269 L169.344,48.269 L169.344,63.403 L160.848,63.403 L160.848,78.537 L169.344,78.537 L169.344,93.672 L154.21,93.672 L154.21,85.176 L139.075,85.176 L139.075,93.672 L123.941,93.672 L123.941,85.176 L108.806,85.176 L108.806,93.672 L93.672,93.672 L93.672,78.537 L102.168,78.537 L102.168,63.403 L93.672,63.403 L93.672,48.269 L102.168,48.269 L102.168,33.134 L93.672,33.134 L93.672,18 L108.806,18 z M151.35,35.993 L111.665,35.993 L111.665,75.678 L151.35,75.678 L151.35,35.993 z&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-width=&quot;0.72&quot; /&gt;
    &lt;path d=&quot;M184.478,18 L184.478,26.496 L199.613,26.496 L199.613,18 L214.747,18 L214.747,26.496 L229.882,26.496 L229.882,18 L236.52,18 L236.52,33.134 L245.016,33.134 L245.016,48.269 L236.52,48.269 L236.52,63.403 L245.016,63.403 L245.016,78.537 L236.52,78.537 L236.52,93.672 L229.882,93.672 L229.882,85.176 L214.747,85.176 L214.747,93.672 L199.613,93.672 L199.613,85.176 L184.478,85.176 L184.478,93.672 L177.84,93.672 L177.84,78.537 L169.344,78.537 L169.344,63.403 L177.84,63.403 L177.84,48.269 L169.344,48.269 L169.344,33.134 L177.84,33.134 L177.84,18 L184.478,18 z M227.022,35.993 L187.337,35.993 L187.337,75.678 L227.022,75.678 L227.022,35.993 z&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-width=&quot;0.72&quot; /&gt;
    &lt;path d=&quot;M184.478,93.672 L184.478,102.168 L199.613,102.168 L199.613,93.672 L214.747,93.672 L214.747,102.168 L229.882,102.168 L229.882,93.672 L236.52,93.672 L236.52,108.806 L245.016,108.806 L245.016,123.941 L236.52,123.941 L236.52,139.075 L245.016,139.075 L245.016,154.21 L236.52,154.21 L236.52,169.344 L229.882,169.344 L229.882,160.848 L214.747,160.848 L214.747,169.344 L199.613,169.344 L199.613,160.848 L184.478,160.848 L184.478,169.344 L177.84,169.344 L177.84,154.21 L169.344,154.21 L169.344,139.075 L177.84,139.075 L177.84,123.941 L169.344,123.941 L169.344,108.806 L177.84,108.806 L177.84,93.672 L184.478,93.672 z M227.022,111.665 L187.337,111.665 L187.337,151.35 L227.022,151.35 L227.022,111.665 z&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-width=&quot;0.72&quot; /&gt;
    &lt;path d=&quot;M48.269,93.672 L48.269,102.168 L63.403,102.168 L63.403,93.672 L78.537,93.672 L78.537,102.168 L85.176,102.168 L85.176,108.806 L93.672,108.806 L93.672,123.941 L85.176,123.941 L85.176,139.075 L93.672,139.075 L93.672,154.21 L85.176,154.21 L85.176,160.848 L78.537,160.848 L78.537,169.344 L63.403,169.344 L63.403,160.848 L48.269,160.848 L48.269,169.344 L33.134,169.344 L33.134,160.848 L26.496,160.848 L26.496,154.21 L18,154.21 L18,139.075 L26.496,139.075 L26.496,123.941 L18,123.941 L18,108.806 L26.496,108.806 L26.496,102.168 L33.134,102.168 L33.134,93.672 L48.269,93.672 z M75.678,111.665 L35.993,111.665 L35.993,151.35 L75.678,151.35 L75.678,111.665 z&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-width=&quot;0.72&quot; /&gt;
    &lt;path d=&quot;M123.941,93.672 L123.941,102.168 L139.075,102.168 L139.075,93.672 L154.21,93.672 L154.21,102.168 L160.848,102.168 L160.848,108.806 L169.344,108.806 L169.344,123.941 L160.848,123.941 L160.848,139.075 L169.344,139.075 L169.344,154.21 L160.848,154.21 L160.848,160.848 L154.21,160.848 L154.21,169.344 L139.075,169.344 L139.075,160.848 L123.941,160.848 L123.941,169.344 L108.806,169.344 L108.806,160.848 L102.168,160.848 L102.168,154.21 L93.672,154.21 L93.672,139.075 L102.168,139.075 L102.168,123.941 L93.672,123.941 L93.672,108.806 L102.168,108.806 L102.168,102.168 L108.806,102.168 L108.806,93.672 L123.941,93.672 z M151.35,111.665 L111.665,111.665 L111.665,151.35 L151.35,151.35 L151.35,111.665 z&quot; fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-width=&quot;0.72&quot; /&gt;
  &lt;/g&gt;
&lt;/svg&gt;

&lt;p&gt;From there it was just a matter of cutting them out on the laser and then gluing together the edges like so:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/fidgets/partial.jpeg&quot; alt=&quot;Partially assembled fidgets with a couple of switches in some of them&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then you just fill it in with more switches. While they did stay in OK without it, I did glue mine in because I didn’t want people to get them and have them just fall apart all the time.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/fidgets/filled.jpeg&quot; alt=&quot;Fidget cubes with all keyswitch holes filled&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then I used some of my spare keycaps from the bag of bulk random keycaps I was a sucker enough to buy from PMK last year. Glad that I have them now of course since it’s actually kind of nice to be able to just fill these in.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/keyboards/fidgets/complete.jpeg&quot; alt=&quot;Fidget cubes fully assembled with keycaps&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At any rate, if you want to build your own, I’d suggest using the template I made here. I used the &lt;a href=&quot;http://www.makercase.com/&quot;&gt;MakerCase box generator&lt;/a&gt;, and then the switch holes from the mittens design that came from the &lt;a href=&quot;http://builder.swillkb.com/&quot;&gt;SwillKB builder&lt;/a&gt;. Your best bet is to download the PDF since PDF has a concept of real world size built into it.&lt;/p&gt;

&lt;h3 id=&quot;download-the-plans-here&quot;&gt;&lt;a href=&quot;/files/keyboard/fidget.pdf&quot;&gt;Download the plans Here&lt;/a&gt;&lt;/h3&gt;
</description>
        <pubDate>Sun, 12 Nov 2017 18:16:00 +0000</pubDate>
        <link>/keyboards/gifts/2017/11/12/keyswitch-figets/</link>
        <guid isPermaLink="true">/keyboards/gifts/2017/11/12/keyswitch-figets/</guid>
        
        
        <category>keyboards</category>
        
        <category>gifts</category>
        
      </item>
    
      <item>
        <title>Moving to Gitlab pages</title>
        <description>&lt;p&gt;I’ve been using GitLab for the past year and a half at work and watched their product evolve delightfully over the last year and a half. Their unified product is pretty stellar. One of the coolest things they’ve done is their CI product. And with that, GitLab Pages. Unlike GitHub pages, GitLab uses their CI pipelines in order to do the build and deployment. Because of that not only are you not limited to the version of Jekyll that GitHub pages uses, you also have access to any other static site generator you want to use, so long as you can compile it in a pipleine.&lt;/p&gt;

&lt;p&gt;There are some other pretty serious advantages to GitLab, for one, the 10GB repo size limit means that you could actually have a photo heavy site and not worry about it. For another, you can install a certificate for your custom domain giving you https. (I haven’t yet) Pretty soon, you’ll be able to run an automated job to update a let’s encrypt certificate.&lt;/p&gt;

&lt;p&gt;Also, because it’s running the build in a CI pipeline, you can add dependent steps, like link validation and html proofing. Also, it’s easy to see everything that goes on in the deployment simply by looking at &lt;a href=&quot;https://gitlab.com/alexives/alexives.gitlab.io/blob/master/.gitlab-ci.yml&quot;&gt;my gitlab ci file&lt;/a&gt;. Pretty nifity!&lt;/p&gt;

&lt;p&gt;Also, with the gitlab pages domains api merged into 10.2, you’ll be able to use &lt;a href=&quot;https://letsencrypt.org/&quot;&gt;Let’s Encrypt&lt;/a&gt; certificates and auto renew and update them them via CI.&lt;/p&gt;

&lt;p&gt;If you don’t have a GitHub page, or if you do and you want plugins or other things, take a look at GitLab’s pages offering. I expect it’ll be my go to from here on out if I need websites for things.&lt;/p&gt;
</description>
        <pubDate>Sat, 11 Nov 2017 20:16:00 +0000</pubDate>
        <link>/code/2017/11/11/moving-to-gitlab-pages/</link>
        <guid isPermaLink="true">/code/2017/11/11/moving-to-gitlab-pages/</guid>
        
        
        <category>code</category>
        
      </item>
    
  </channel>
</rss>
