Initial Forays into 3D Printing

Posted in 3D Printing on January 19th, 2014 at 11:35:10

Last week, I received my Printrbot Plus v2.1 Kit. I sat down, and started putting it together.

The Assembly page on the kit website describes the kit as taking 6-10 hours to assemble. In the end, I spent about that getting the thing to the point where it was put together; it wasn’t all in one sitting, since I found out I was missing a part about 75% of the way through. You can see a time lapse of the initial assembly on YouTube.

Some things I learned during assembly — which almost anyone who’s built anything probably knows:

  • Lay out your parts and count them before you start. Organize them, and put them in a spot where they are out of the way of your work area, but easily accessible. You’ll save a lot of time that way, and a lot of headache when you later find out you’re missing parts you need.
  • For something like this — which required more than 100 screws — a good electric drill is a good idea. I had one, but didn’t think to use it until after my initial work; I wasted a lot of time on that.
  • The Printbot process is targeted at tinkerers. This means that there are some aspects which are… slightly more fiddly than they should be. (One of my parts didn’t fit right to start with, and I spent the first 20 minutes of my assembly process trying to fit a part into a hole that it simply couldn’t fit in.) Don’t fight it too hard; if something doesn’t work, move on and come back.

In the end, I had to buy myself a ACME threaded hex nut myself to finish the build; I got an extra 5/16″ (non-ACME) hex nut instead of the 3/8″ ACME nut I needed shipped with the bot. (I emailed Printrbot support last Sunday about this — I’ve still heard nothing about this.) I used that to finish the assembly.

Initially, I was worried about my filament feeding; you can see a video showing how it doesn’t feed straight down, but feedback on the Printrbot Talk forum suggested this is normal, and I took the next steps of doing a print the following morning.

The first print out came out … poorly πŸ™‚

The reason though was immediately obvious: early on in my print process, I couldn’t find a set screw on my y axis motor. Each layer that printed, my y-axis was slipping about 2-3mm in the wrong direction, which lead to the disaster that you can see.

On Friday night, I fixed that, and the next print was actually stacking the layers, which is good; but my bed being far from level meant that the print head was running into itself on higher layers, and created a mess.

My third print was the charm:

(Total print time was about 15 minutes.)

It produced a reasonably solid calibration print. (You can see a video of the printing process: part 1, Part 2.)

Since then, I’ve had more issues with extruder feeding, etc. but at least one of my prints actually worked, and it seems like I’m now in the same part of printing process that most hobbyists get to and stay in. πŸ™‚

In total, I spent about 10 hours building the thing, another couple hours getting it set up and working. I consider the project a success overall.

Hopefully in the next couple weeks I can finish my assembly, get things tightened up, and get a few more interesting things printed πŸ™‚

3d printer delivery: At Long Last

Posted in 3D Printing, Technology on January 10th, 2014 at 07:55:54

After ordering on Dec 13th, and the package being dropped off at the UPS Store in California on Dec 31st, my 3d printer is finally in Somerville, MA, with the expected delivery later today. While I’m not going to claim it will actually be here today — I mean, after all, it was supposed to be here yesterday as well — I am slightly hopeful, since the UPS website at least claims it is in this state.

… Crap. This means that I will soon have to follow the 122 step assembly process soon. On the plus side, only a half dozen or so of the steps have comments attached to them describing them as impossible with the materials provided, so that should be good!

When purchasing with casino utan svensk licens, I had an option of buying an assembled kit for $100 more. Given the 6-8 hour timeline for doing the build, this would almost certainly have been a financially wise course of action; however, as I told a coworker: If I can’t even sit down and spend 6 hours building the thing, when am I ever going to make time to fiddle with *actually printing something*?

AppleTV: aka AirPlay receiver

Posted in Apple TV, HDTV, Technology on January 7th, 2014 at 05:00:44

Along with the new TV, I also set up an AppleTV — a small set-top box designed to hook up to the Internet and provide some content. Or something.

I say this because I really don’t understand what AppleTV is supposed to be doing for me; it’s a walled garden of apps, with no ability to extend it — no app store, or anything like it — and I can’t understand a lot of what it is useful for. I suppose part of this is because I’ve never bought into the iTunes way of life — I don’t buy videos or music on iTunes, and I don’t even know the password for my MyAppleCloudWhatever account, so in some ways, I’m probably not an ideal candidate for the Apple way of life that the Apple TV is trying to tie into.

However, the Apple TV has proven useful for one thing that I didn’t know anything about when I set it up: AirPlay. Apple’s AirPlay started out as AirTunes, for streaming music content, and grew into a more general media (and screen) sharing technology later on. I’ve seen options for AirPlay in OS X for a number of years, but I didn’t really know much about it, so I just ignored it.

I set up the AppleTV, but wasn’t really using it — I had watched some TV while plugged into an HDMI cable directly from my Macbook Pro, but not poked at the AppleTV at all. Then, I turned on the TV… and Kristan’s computer screen was mirrored on the TV. (Apparently some apps when they go into fullscreen mode will automatically activate AirPlay in some way — specifically, the Cake Mania Main Street game appears to do this.) Prior to that, I didn’t really have any idea what AirPlay was — but suddenly, I found out that I could put whatever was on my screen on the TV with one button click.

To me, this is actually one of those times when technology actually (mostly) works: I’m watching something on my computer, and someone else in the room says “That sounds interesting, you should put it up on the TV”… and they click one button, and it goes on the TV.

Of course, it’s still software, so it’s not without it’s flaws.

  • Sometimes, in order to get sound to go to the TV, you need to restart the CoreAudio daemon; this macrumours thread describes the problem and the command line workaround: sudo kill `ps -ax | grep 'coreaudiod' | grep 'sbin' |awk '{print $1}'`
  • I actually found that the Linksys WRT54G router that I had wasn’t keeping up with the demands of running AirPlay over the wireless; even plugging the AppleTV into the ethernet was still not up to snuff, so I unboxed the Apple Airport Extreme we’ve also had lying around; switching to that cleared the issues up. (Looking at the CPU usage on the router, I think this is actually just that the chip can’t keep up with the demands of the network traffic — it was maxing out the CPU moving data around — rather than any specific software problem.

Of course, the AppleTV has other functionality — the ‘apps’ that exist on it. So far, I’ve used both the Netflix and YouTube apps on it, and neither leaves me super impressed. (Admittedly, I apparently used the ‘default’ software that came with the device; I received a Software Update a couple days later which installed about 10x as many apps, and probably changed the functionality of the apps I did have, so some of this criticism may be out of date.) The Netflix app lacked auto-play (a key feature for me, since I spend most of my time watching many episodes of television shows), and even navigating to the next episode via button presses proved more annoying than it should have been.

The YouTube app appeared to completely lack the ability to downgrade the streaming quality — it would play at whatever the highest quality level was — which just flat out didn’t function on my DSL connection, which could usually support a 720p stream, but even that wasn’t reliable. This meant that all the time on YouTube was spent buffering videos and no time actually watching them.

If the AppleTV actually supported DIAL — a spec for remote device discovery and application launching — I could imagine using it a bit more. If I could just launch the Netflix player on the Apple TV by clicking a button on my laptop, I could certainly imagine using it more, and the same with the YouTube app. AirPlay makes things easy, but it means that I’m tied to not using my computer while using AirPlay; it would be worth it to me to use the less fully featured app if I could start it more easily. (Searching via an on-screen keyboard with a 6 button remote is not particularly user-friendly.) In fact, I’m considering setting up my long-avoided Google TV (Logitech Revue) to see if it will function in this way — or possibly even going the next step and buying a Chromecast solely for this functionality. Of course, Apple and standards have never been a great friend, so I’m not surprised here, just annoyed.

To me, so far, the Apple TV doesn’t provide a lot of functionality for me. With a little bit of software support, I think it could be a much more useful device — DIAL support would be a killer app for meI don’t ever expect to use anything other than YouTube and Netflix as far as apps — the others require subscriptions I don’t have in order to be useful, or just aren’t that interesting. Without an iTunes account, I don’t see any major benefits from any shared media purchasing. However, as an AirPlay receiver for quickly sharing what’s on my screen, I think it’s a useful device to keep around, and I expect I will continue to let it have a home in my living room entertainment going forward for that reason alone.

Raspberry Pi

Posted in Raspberry Pi, Technology on January 6th, 2014 at 08:30:30

Over Christmas, I bought myself a 3D printer kit from printrbot. It didn’t arrive in time to occupy me over the holiday break, however, which meant that over the weekends, I was actually lacking in toys to play with for myself. Since I had already spent somewhat lavishly on myself — I bought the Printrbot Plus kit, which is pricier than I really should have — I was looking for a toy that would be entertaining but also relatively inexpensive.

In the end, I went with the Raspberry Pi Model B: A credit card sized ARM-based computer. Part of the reason was actually related to my 3D Printer: Since prints take a long time to run, having the Pi as an extra computer I can hook up to the printer when needed seemed opportune — but part of it was just the fact that it was relatively inexpensive and seemed like it might let me do some interesting things.

Originally, I had planned on using it as a video game emulator — something that a number of people have talked about having done, via distributions like RetroPie and the like. Unfortunately, I’ve had some trouble getting the primary platform I’m interested in emulating — NES — to run at a reasonable speed. (Amusingly, SNES emulators seem to actually be noticeably faster.) This has led to some interesting research and reading about emulators — like an article in Ars Technica about how accurate emulation requires much more resources than the original hardware, and how emulator developers should take advantage of the hardware they have available these days.

In the end, I haven’t really done that much of interest with the Pi yet — nothing I couldn’t have done using the Linux machine that I already pay for on Linode. However, it has led to me actually doing some things that I hadn’t otherwise — setting up Asterisk, for example. It’s now possible to dial a given phone number, and you’ll be logged into a conference call served from my Raspberry Pi. I also set up munin — after having serious issues with Verizon for months, I was finally able to track and confirm that I was getting packet loss to Google at regular intervals. None of this is particularly complex, but there’s also nothing pi specific about it — these are things you can do pretty easily with *any* linux computer — but I haven’t had another computer running in this house for years, and the Pi provided motivation to learn these things.

That doesn’t mean that I don’t plan to use the Pi to do things that *do* actually get benefit out of it; I made my first order to Adafruit the other day, buying a digital temperature sensor and Pi Cobbler breakout board for the Pi, as well as breadboarding bits, to be able to experiment with the GPIO pins on the Pi; I’m hoping that I can entice Julie into doing some electronics experiments with me using the Pi. (She enjoyed the toy electronics kit that we got for her a while back, but I get the feeling that she’d be more interested in more involved electronics work.)

I also still plan to use the Pi to drive 3D Printing, though I expect it will be a while before I’m in a position to actually need it — given how finicky 3d printing tends to be, I expect to be at the “Goddamnit nothing works” stage for quite a while first. (Of course, before that, I’ll have to put the darn thing together, which may or may not be sufficiently complex to cause me to give up on the whole notion.)

In short: Raspberry Pi. Cheap, Small Linux computer. For me, not a lot more or a lot less — but having a Linux computer in the house is a nice thing to have. It’s also got me interested in a few new areas of interest — emulation, home automation, and amateur electronics — which may prove more interesting than the computer itself.

Adding a new member to my home electronics: Modern Television

Posted in HDTV, Technology on January 6th, 2014 at 00:45:57

Over the Christmas break, I invited a new friend into my home electronics: a 32″, 1080p television set.

Now, most people would say “What? You’ve migrated most of your media consumption to your laptop anyway, why would you go back to having a functioning television?” And that’s a completely reasonable question. The primary reason is: for fun.

You see, I don’t want to have a television because I want to watch TV. In fact, the reason I set up the television is actually unrelated to media consumption at all — the reason I set up the TV is because I wanted to buy a Raspberry Pi, and the TV was the only display I had in the house (long story) which supports HDMI in. (I don’t even own a monitor with DVI in — only VGA — so I couldn’t even just buy a cheap adapter.)

This has resulted in me putting together a lot of little things that we’ve had floating around the house for a while, but never actually used — an Apple TV my wife bought back when we were watching TV more often (but which only supported HDMI, which our old TV didn’t have); a new Airport Extreme wireless base station — and buying some new, relatively inexpensive things as well — a broadcast television antenna, for example — and even a shift in my home internet provider.

I’m going to be trying to write a bit more about each of these things individually — why I ended up with them — but I wanted to start with the basics: The only reason I did any of this at all was basically because the only monitor I had for the $35, credit card sized computer that I had in the house was a $500 Phillips HD TV.

Somewhere in that picture, there is some irony. (Or maybe just a First World Problem.)

Watching someone grow up on TV

Posted in default on November 26th, 2013 at 07:33:07

I watch reality TV.

One of the shows I watch is Gold Rush; I’ve talked about it before.

On Gold Rush one of the people is Parker Schnabel. Parker’s been on the show in part since Season 1; he’s an enthusiastic kid who started out helping his grandfather mine (and taught the rookie Hoffman crew a thing or two in the first season), and has since taken over his grandfather’s mine, and then moved onto the Yukon to mine his own gold claim.

I love watching Parker — not for the usual reason, which is that I enjoy feeling superior (yes, I will admit that watching people be idiots on TV gives me a small sense of superiority, even if I know most of it is scripted drama that isn’t real) — but because I’ve been able to watch him grow up in a lot of ways.

Parker has basically lived his life around the TV show for the past 3 years, and in that time, he’s gone from being a helper to running a mine under his grandfather to running his own — and he’s grown up. He’s grown from being a bit of an overeager snot — to actually being someone who is taking on responsibility and able to be the boss. He’s grown from someone who is putting all of his responsibility on others, to someone who feels very clearly the responsibility is on him, and wants to make it work.

Maybe I see some of myself in Parker; he’s the kid who moves 3 times faster and works 5 times harder than those around him, and still feels like he’s only breaking even; he is smart, cocky, and doesn’t tolerate fools well. He’s all in on a risky venture without proof that it will work, and without any idea what he’s getting into most of the time.

And when shit goes to pot, or he needs help, he’s still got parents who care about him and help him out; even if his dad is strict, he’s still got Parker’s best interests at heart, and they clearly want the best for him.

In the end, I guess I like watching Parker is a little bit like how I think of myself. Even if it’s stupid, mostly scripted, overdramatized reality TV, I like Parker, and I like to watch him, because he’s how I think of myself.

Coursera: Discovering I’m Still Bad at School

Posted in default on November 23rd, 2013 at 21:40:32

I’ve taken a handful of Coursera courses.

Or really, I should say, I’ve tried to take a handful of Coursera courses.

As with all other formal (or in this case, semi-formal) educational opportunities, I always start off super-committed. “I will do the homework early. I will watch all the lectures. I will take the quizzes without reskimming the lectures and use my copious notes.”

As always, it fails. I fall behind; I miss a week; I don’t start my homework until two hours before it’s due.

In a recent course, I was supposed to write a 2000 word data analysis paper. I pulled it up about two hours before the due date — without having watched most of the videos, or done anything else for that week.

After about 1.5 hours of work, I ran `wc` on my analysis … and discovered that I had what I thought were 2700 words, despite feeling like I was way under my limit. I spent the next 20 minutes trimming things out, and getting it down to just 2000 words… and then pasted into the online text editor, which reported that I had actually written 300 words. I looked back at my `wc` output and found that I had actually been looking at the number of *characters* — so I had written a 2000 *letter* report instead of a 2000 word report.

In the last 9 minutes before the deadline, I drastically tried to bring back some of the text I just deleted, and add some more things I had been meaning to add. In the end, I think I did very poorly on the assignment, but I have no one to blame but myself.

It’s the same as it was in college and high school; I’m actually semi-decent at some of the tasks, but sitting down, getting organized, and actually *doing the work* is always the problem.

Ah well. At least I’m learning some new things.

Joel Test for my current project

Posted in default on November 20th, 2013 at 07:50:14
  • Do you use source control? – yes
  • Can you make a build in one step? – yes
  • Do you make daily builds? – yes
  • Do you have a bug database? – yes
  • Do you fix bugs before writing new code? – yes
  • Do you have an up-to-date schedule? – no
  • Do you have a spec? – no
  • Do programmers have quiet working conditions? – no
  • Do you use the best tools money can buy? – yes-ish
  • Do you have testers? – Not convinced ‘tester’ applies in the sense that is meant by the Joel Test, but we have a QA team; most test code is written by programmers though.
  • Do new candidates write code during their interview? – yes
  • Do you do hallway usability testing? – no, but we don’t create a UI.

Going over this, I do have a feeling that the Joel test is directed primarily at things that users see and touch; with that not being the case, the projects I work on lack some of what is deemed as important, specifically because “hallway usability testing” doesn’t seem to apply the same way and ‘testers’ can’t really help as much as I think might otherwise apply.

Improving the World

Posted in default on November 17th, 2013 at 22:14:19

I like to improve the world.

If I described my day job to most people, they would probably say I’m not improving the world very much. I work on improving the local search product of a commercial entity; the work I do doesn’t directly contribute to solving hunger, or saving lives, or what have you. I still feel like I am improving the world though, even if it’s in a smaller way.

Nokia phones are used by millions of people around the world every day. We get millions of users using our local search product every day. I can use the numbers we have to put a percentage on how many search queries are successful every day, and track that over the past couple years since our team started working on the problem.

What is a successful search query worth? Well, on a mobile phone, a bit more than you might think. In rapid-fire testing — attempting to run search queries as quickly as possible, with good knowledge of what I’m looking for and a solid understanding of the search experience — a single search query might take as little as 20 seconds. Reviewing some logs in the past and looking at typeahead, we have seen that for users on some devices, simply typing a query may take some users upwards of a minute.

If I can make search .1% better, with 1 million daily users, I’ve just saved 1000 users 30 seconds or so — or about 8 hours of productivity has been created that might not otherwise exist, assuming that the amount of productivity lost is equal only to the time to do a new search.

In the search team at Nokia in the past year, we have made much more significant gains than this; in fact, given our usage and our improvements in the past two years, the amount of productivity we save each day via improved search alone is more than 3 times the total working hours per day *of our entire team*. That’s right, with the improvements we have made in search, all the time we have spent getting to this point will be paid off in increased productivity in the world in 1/3rd the time we have invested into it; and we continue to make improvements at an approximately linear rate (without, so far, drastically growing the size of our team at a supra-linear rate).

While increased productivity isn’t the same as solving world hunger, or even more mundane acts of saving the world, it is a little bit nice to work on a product where the work we do is a net positive on human productivity. It’s certainly not going to save in the world, but it does help improve it.

Hidden Writing Archives

Posted in Web Publishing on November 2nd, 2013 at 23:48:18

So, recently I realized that my website essentially hasn’t been updated since 2007. (I noticed last week that I had an announcement on there about the presentation I gave at FOSS4G… in 2006. As a current event. Yeah, my website isn’t particularly up to date.)

So, I’m working on moving bits and pieces of it to git, so I can track history and changes more easily, and also because I think that having it open presents no risk and provides opportunity for me to more easily track what I’m doing there in public. However, since the website has been essentially a dumping ground for my various crap for the past 8 years, I’m being a bit cautious about it, and moving things in one by one. (There is some content in my webdir which should not be publicly available — everything from passwords to old client content which is currently protected by password.)

In the process, I came across a collection of articles that … I might have written.

I say might, because I have no real memory of writing them. However, they have examples which use my name; they are written in a style which is semi-consistent with how i would write, and most importantly, they’re hosted under my formal/writing directory (which no one else has ever had access to), which is also explicitly prevented from being crawled by robots.txt. The modification dates on these files are in November 2005 (all on the same day; which likely means they were copied en masse from something even older).

They’re all of things that were of interest to me at the time — how to integrate RSS into IRC bots, how to parse mood information from LiveJournal RSS feeds, how to parse the LiveJournal live stream, etc.

The thing is… I have no idea why I have them. Or why I hid them.

At the time, I was working on getting contracting work — this was before I had started working for Ning, during a time when I was grasping for contracting work to make ends meet, having ended my commute back and forth to wedΓΌ. I guess this means that I was actually (essentially) unemployed for a brief period there… perhaps I thought writing articles like this was a good way to draw attention to myself. But then my question becomes… why did I hide them from my robots.txt?!

My biggest fear is that this content is actually stolen from somewhere else — the topics are general enough that it could be. However, given the specifics of the topics, I think that they can’t all be.

While I would believe that someone else could write some of those, it would surprise me that anyone else wrote all of those, and put them in one place. So I think this *is* writing I created… but I have no idea why. With no historical version control, I can’t refer to that (curse you, younger, more foolish self!), and at this point I’ve switched computers enough times that there isn’t much left in the way of detrious of conversation logs from that time; even my email records only go back to 2006 consistently. I think this was actually content that was probably created before transitioning my website to a hosted webserver; this was from the days when it just ran off the server at the apartment.

I’ve googled titles and snippets of these; I see no other evidence of them on the web. I think this means these probably are my original content. Given that, I think I’m going to go with: share and enjoy! I’ve put these into the github repo under formal/writing, where you’re free to do with them what you will. I may try to tidy them up… heck, I may even try to write a few more, because I actually enjoy the writing style.

I just… find it weird that I have this content that the internet at large doesn’t have access to which I apparently wrote 8 years ago and have absolutely no memory of… what a weird thing to find.

(If you have any memory of me writing these articles, why, or evidence I’ve shared them in the past, I’d love to hear it!)