[Review] CruxSKUNK iPad keyboard / case
Kudos

~6m 0s
June 01, 2013

The backstory

Once upon a time there was a Kickstarter to make the world's most awesome keyboard / case ... thing to "Turn your iPad® into a laptop". As with most hardware projects on Kickstarter the expected delivery date came and went, and came and went again, but I feel the folks at Crux did a great job of keeping the backers informed, and the reasons it got set back almost always boiled down to them not being willing to accept half-assed Chinese manufacturing even if it would have gotten it into our hands sooner.

They really wanted to make the best product they could. They went so far with this that they actually lost money on each one that was made, and these are guys aren't new to manufacturing hardware. They've had similar products built in China before. When it comes to something like this, I'm ok with having to wait a bit longer to get a better product.

So, did they deliver?

First impressions

CruxSKUNK Triptic

The first thing you notice is the weight. This is not a flimsy POS product. They promised a CNC milled block of aluminum with a quality level that was right on par with the Macbook, and they came pretty close. Is it as beautiful as a Macbook Air? No, but we knew that going in. This is essentially a really fancy picture frame for your iPad with an attached keyboard. They could have put a sheet of aluminum behind the iPad's back, but it would have made the whole thing thicker and heavier. The reason I have to say "pretty close" is that Apple's manufacturing standards are very, very high and the tolerances aren't just good, they're precise. So, for Crux, or anyone else, to get "pretty close", is pretty damn good.

The case it comes with is actual leather, with a layer of padding and a fuzzy fake fur lining to keep your baby safe. Will I use it? Probably not. Is it nice? Yes.

Setup

Inserting the iPad was pretty simple. By default the little hinges that hold it in at the bottom are configured for an iPad 2 I suspect. The iPad 3 and 4 are a bit thicker, so I had to grab the included alan wrench and loosen them up (as instructed by the user manual) so that they would fit over my iPad 3. I also managed to put the iPad in backwards which obscured all the ports, but as soon as my foolishness was pointed out I just opened the hinges, flipped it around, and voillá the cutouts for the the ports and button lined up perfectly, but the space around the ports is only barely adequate. The headphone jack works fine with the Apple headphones, but anything with a thicker plastic portion won't fit. The main 30 pin port is only enough for the power adapter. I have to press the iPad "into" the case and / or pull down on the edge of the case to make enough room for my connector cable to fit. The adapters for the Apple Camera Connection Kit don't fit at all. I have to take the iPad out of the Crux Skunk to use them. Not a huge deal, as I don't use them that often, but I suspect I'll be using them much more frequently on the road and it'll be annoying then. The HDMI adapter does fit either, so you cross this right off your list if you're hoping to use it for presentations because even with pressing you can't make it fit while in the case. I can't comment on how accessible the Lightning port on the iPad 4 would be.

My first thought upon seeing my iPad in it's new "laptop" incarnation? "It's so wee!" Visually it's pretty good. The keyboard comes up through an aluminum plate, which is fine, but I'm not thrilled with visuals the seam that follows around its edge meets up with the base. Apple chose put the flat plate on the bottom of the Macbook so that you're not seeing it every time you use your laptop. I think this would have been a better choice for Crux, even if it did necessitate the use of screws, which Crux has managed to avoid. Also, the tolerances along that seam are good, but not Apple good. You can see it in the top right photo. I just can't help but think "Oh look, there's a metal plate that's been snapped to the base", every time I look down at it, and I don't want to think that. I don't want to be aware of that at any level. It should be hidden from me.

Pairing

Pairing it was pretty straightforward, except that I pushed the "LED window" instead of the "Sync button" because the "LED window has the light that they were talking about seeing. Doing so felt wrong, but it still moved significantly as if it was a badly done button. But no, it's a thing that looks like a button but really isn't, and moves in a disconcerting way when pushed by someone who's not paying close enough attention. Fortunately, I should never have to push the "Sync button" again, and it should be noted that if I'd read the instructions more carefully I wouldn't have pushed it in the first place.

Keyboard

The keyboard itself feels... well it feels pretty good. The keys on a Macbook Pro have a softer feel at the terminus of your stroke. These have a little bit more of a "whack" at that point. Is it bad? No. It's just different. You might start to feel it after an hour or more of typing. As for the layout, my fingers don't feel even remotely cramped like they do on a typical netbook, but the key layout is smaller than that on the Apple Wireless Keyboard.

The CruxSKUNK comes with a variety of useful specialty keys: home, search, slideshow, languages, screen toggle, copy, paste, a lock button, plus music and volume controls. Some work, some don't. I don't know if this is a bug in Crux's bluetooth software or just functionality that's not supported by my older iPad 3. The ones that don't work are: language, copy, and paste. I was really hoping those copy paste buttons worked. Alas, "comnd+c" and "comnd+v" (not a typo) do not copy / paste either. But, You can use shift+arrow keys to select text like with any other keyboard, and that's a hell of a lot better than the touch based text selection tools.

I've typed about about 1,500 words on the thing so far, and I'm enjoying it. I've always been painfully slow typing on iOS devices. Now, I can touch-type full speed (~100 wpm) without issue. Geeks like me will be happy to know there's a way to convince your iPad to use a Dvorak layout with bluetooth keyboards like this one. So all 4 of you can rejoice. Yay.

The lid / hinge

Closing and opening the lid sleeps and wakes the iPads screen respectively, as you'd hope. The hinge is designed such that you can keep opening until the back of the iPad is directly against the bottom of the case. They call this "Movie Mode." I guess the idea is that you could flip it over into an A-frame and set it on something. Nifty. Will I use it? Possibly. Only time, and travel, will tell. I doubt I'd use it in day-to-day life.

Speaking of the hinge. There were a couple revisions in the hinge during production and I think they've absolutely paid off. It feels solid, and reassuring. The iPad's weight is not going to gradually pull it open. On the downside, the hinge is so strong that you can't actually close the "lid" all the way, or more accurately, you can close it all the way but the hinge opens it back up about an eighth of an inch as soon as you let go (see the photo above), which looks a bit crap if you ask me. It makes me wonder if that's one of the reasons they included a case.

Conclusion

I recognize that, having just received it, and only typed a thousand or so words on it, it's still pretty early to make any claims about it's long term value, but I think that this is just the beginning of a radical transformation in how I interact with my iPad. Previously, typing on the thing was so frustrating that I wouldn't even respond to tweets. I'd switch over to the laptop. Now, I'm typing 1,500 word articles on it.

But, it does what it claims and turns your iPad into a laptop, which is absolutely not what some people want. The iPad is a spectacular tablet, so you definitely sacrifice something when making it into a laptop, and while the wee hinges that hold in the iPad are easy to open or close, it's not really the kind of thing that you'll be wanting to pop your iPad in and out of constantly.

Is it better than just using an Apple Wireless Keyboard? That depends on who you ask. I think the Apple Wireless Keyboard is great, but using it with an iPad is crap unless you're sitting at a table or desk. With the CruxSKUNK I can type on my iPad with it in my lap, at a desk, or anywhere else.


Postscript

For those curious, yes, this post was created entirely on the iPad using Writing Kit, and Diptic, and typed on my CruxSKUNK. If you like Markdown, and you need to lookup information (and URLs) on the web whilst writing things, I highly recommend Writing Kit.

Like this post? Click the heart above to give it a kudo. :)

The Thing About Today
Kudos

~0m 0s
April 16, 2013

The thing about today is that we have the power.

We, can destroy this fear.

Not by being stoic. Not by being "strong". By smiling. By being human. By being the neighbors we wish we were surrounded by.

Go outside.
Smile at a stranger.
Ask someone how they're doing and mean it.
Listen.

Yesterday's act was horrific, but I will light up this mother fucking town with smiles, because we are alive, and this world is filled with brilliant people with warm hearts, and their own 200 watt smiles, just waiting to shine.

Like this post? Click the heart above to give it a kudo. :)

Git push is not what you think
Kudos

~2m 0s
March 13, 2013

tldr;

  • git's default configuration with regards to push is potentially very dangerous.
  • make sure you've run git config --global push.default current
  • There are other options for push.default but make sure you read the docs before setting them.
  • setting current as your default behavior means no more complaints about setting upstream when pushing.

Perception vs. Reality vis-à-vis git push

When it comes to git push most people think "It pushes my current branch's updates up to the remote server" but that's only a small part of what's happening, and ignorance about the rest can leave you with very upset coworkers. I know, because that's exactly what happened to me today when I ran git push -f on a coworker's computer that happened to have the default configuration.

I mistakenly believed that "Hey, git push just pushes the current branch up, so git push -f will just force push this current branch up. I want to wipe out history on this topic branch, so no worries."

git push > "Updates remote refs using local refs, while sending objects necessary to complete the given refs."

Note that nothing in that statement is singular: refs... plural.

push (in its default configuration) is effectively the opposite of fetch. Fetch pulls down all the changes from branches you're tracking. push uploads all your changes to branches you're tracking. Now, normally this won't get you in trouble. The branches you're not currently working are either: older (or current) versions of what's on the remote repo (in which case nothing happens), or incompatible versions of what's up there (in which case they get rejected), or possible new commits that can safely be updated. The latter case can be annoying, but it's rarely that bad, and can be easily backed out.

The problem is when you add -f to push in a default configuration and don't specify what repo and branch you're pushing to. This essentially says "Hey remote repo. All these branches I'm tracking? Yeah, make yours match. No. I don't care that I'm blowing away work. You can take those rejections and shove them where the sun don't shine."

The more remote branches you're tracking, the more damage it can do. And, you're probably tracking master, which is usually the most important branch in any repo, which means there's a good chance you'll be doing some notable damage.

But, if you change your default configuration by running git config --global push.default current then the default behavior stops being "everything I can find a matching name for" and starts being "the current branch" which is what everyone generally assumes is happening anyway. People don't want, or expect this "reverse fetch" behavior. They expect something akin to "my branch will go up".

Making this change to push's default behavior also means that when you do do git push on a brand new branch it won't complain about you not having set upstream. Instead it will just create a new remote branch for you that matches the current (new) branch.

What to do when you've run push -f

In the default configuration?

  1. pray
  2. apologize profusely to everyone who's working on your repo.
  3. ask very nicely if every could please do a push to all the branches they're tracking.
  4. thank the deit(y/ies) that someone came up with a distributed version control system where everyone's got a legitimate copy of the repo.

The only circumstance under which 3 will fail to recover the data is if you did the most recent work that was pushed to a remote branch, then reset or rebased your local copy of it to some prior state, then force pushed before anyone else had a chance to download your changes. Alternately, everyone hates you and refuses to push their copy in order to force you to recreate all the work you blew away. If that's the case you should probably go look for another team.

Like this post? Click the heart above to give it a kudo. :)

Support Engineering Wants You!
Kudos

~0m 0s
March 11, 2013

You

  • A Boston area geek well versed in the arts of Triage and Web Development.
  • Wielder of code machete in defense of users.
  • Happy to kill the fast bugs and throw the big ones over the wall to eng.
  • Willing to help buffer other engineers from a stream of interruptions and client requests.
  • Creative thinker who'll find ways to improve visibility, and increase customer smiles.
  • Willing to code up reports, onboard clients, and find ways to make doing so faster.
  • Strong familiarity with one or more modern web frameworks RoR, Django, Spring, etc.
  • Don't think I'm an asshole, or think I'm just the right kind of asshole: either / or.
  • Capable of figuring out how to contact me with your resume.

Us

A thirteen year old self-funded SAAS shop in East Cambridge, running Ruby on Rails. We do that crazy thing where you create a product and then sell it to customers... for money. No VC bullshit. No worry about everything disappearing in six months.

Health insurance, 2wks vacation, 401k, blah, blah, blah.

Alas, no telecommuters.

Like this post? Click the heart above to give it a kudo. :)

Setting the Atomic Clock
Kudos

~4m 0s
February 21, 2013

This morning's shower brought me an interesting series of thoughts that I thought you might appreciate, and it all started with the simple question of "How do you set The Atomic Clock?"

My first thought was that at some point you have to find some other clock and precisely sync up with it. Then again, they may have said "fuck it" and just had Bob press a button when some other clock flipped over, but then I wondered "How do we know what time it is in the first place?"

Well, our calendar is based on the birth of Jesus, and we claim we know what day that was, and what town that was in. I'm ignoring that the details in the Bible point to a date that's nowhere near Dec. 25th. Anyway... The first moment of the first day would, I suspect, be associated with the moment at which dawn broke in Jerusalem that morning. Or maybe some more esoteric moment that day. Regardless, let's stick with dawn for the sake of attempting to figure out what time it is.

So, dawn, in Jerusalem, on day 1. Great we can work forwards from there. But, wait... how do we know how long a year is?

A year is the time it takes for the Earth to travel around the Sun, but how do we know when we are at the same place in the rotation we were exactly one year ago? You could try and position yourself relative to other heavenly bodies "When star X is directly behind the Sun." But our orbit's not circular, it's elliptical. Actually, that's not true either "The Earth travels around the sun in an elliptical orbit that varies in shape, with time from nearly circular to distinctly elliptical." Then there's the fact that every galaxy in the universe is shooting out away from the center of it.

If you ignore the orbital complication and say "ok, we can compensate for orbital weirdness", how do you verify it with observation? Well you'd look up on... wait a minute. How the fuck do know where the same up is? In order to calculate our point in the Earths solar orbit we have to first be able to look up at the same point on different days. Which means we have to calculate exactly how long a day is, but "The tilt of the earth changes cyclically between 21 3/4 degrees and 24 1/4 degrees. The period of cyclicity is 42,000 years.". On top of that we're going around the sun.

So, even if the Earth wasn't wobbling, and even if I knew exactly how long it took to spin 360° when I looked up the sun would be in a different place because we've moved around it. The stars would be in a different place because we've moved around the sun, and even if we hadn't done that, the contents of the universe is still shifting outwards.

Back to figuring out how long a day is. So, we look up. We find something in the universe that we're not rotating around to mark as a point of reference. We can compensate for the universe's expansion by observing its Redshift (i think). So, we look up but once 23 hours have passed and we're ready to start looking straight up again to observe the exact instant we're lined up with that distant star (or whatever) the planet has wobbled on its own axis and now "up" will be pointed in a different direction than it was exactly one day ago. So, now we have to calculate the the wobble of the planet...

At that point I needed to get out of the shower. But I do know that the wobble's going to be affected by the fact that we're on a large ball of rock that's got a molten core, which means liquid sloshing around in the center (for some definition of "sloshing"). I've no clue how one would determine that we even have a liquid center. Maybe by the fact that we're wobbling?

To summarize:

In order to calculate the correct time you must: * Figure out the speed at which the universe is expanding so that we can use a distant star as a reference point to observationally confirm all the other things we need to figure out. * Figure out the Earth's eccentric wobble. No clue how to do that. My shower ended. Once you've got that you can then figure out how long a day is. * Now store away what you've learned about our wobbling rock with a liquid center. We'll need that. * Once you know how long a day is, and what direction you're pointing after a given span of time, you can then start observing our orbit by marking the location of the sun relative to you and some distant star. So, now you can figure out how long it takes you to get around the sun. Unfortunately that's going to change every single year as our orbital path changes. * So observe those changes for enough years to calculate how our orbit changes. Then factor in the effects of a wobbling mass on an orbit.

Once you've done all that you can then work backwards to calculate out where the hell the sun was over Jerusalem on December 25th 2013 years ago, and then you can work forwards to figure out what time it is.

You're still going to have the problem of actually syncing the clock with the math though.


P.S. How was your shower?
P.P.S. Those links? Missouri Department of Natural Resources, Division of Energy. "Global Climate Change: Effect of the Earth's Orbit"
P.P.P.S. I'm not a Physicist. I just play one on the Internet.

Like this post? Click the heart above to give it a kudo. :)