OpenLayers: Still popular on YouTube, years later.

Posted in OpenLayers, YouTube on March 22nd, 2014 at 06:32:32

In 2007, I posted a video to YouTube; it was just a 5 minute, silent how-to video showing how to load data that you had in a shapefile, open it in QGIS, style it, export it to a mapfile, and load it into OpenLayers. I’ve given pretty much this exact presentation to groups around the world: from Cape Town, South Africa, to Osaka, Japan, but at the time it was just a quick demo I put together, related to a wiki page: Mapping Your Data, in the OpenLayers wiki.

I hadn’t paid attention to it in forever — I uploaded it to YouTube back in 2007, and I haven’t really thought about it since. So as I’m using YouTube a bit more recently, I actually looked at my analytics… and realized that this video still gets *400 views every month*, with an average of two minutes watched per view.

This means that 20 minutes gets wasted watching this video every day (on average); that is more time than I spend on YouTube in an average week. (Given my new employer, I can imagine that changing somewhat in the near future.)

Amusingly enough, for a long time this wasn’t my most popular video; the OpenLayers video is a bit long, and with no sound, can be a bit of a drag. (The pace of it, even 7 years on, still impresses me though; I spent a whole weekend just going through the motions to get the flow down. It really does work nicely.) My most popular video for a long time was an N95 Accelerometer Demo:

This demo showed the use of a Python script to use the accelerometer and simple 2d graphics to move a ball around the screen. (The Symbian Python APIs for interacting with 2d graphics were terrific, and I wish modern phones had something similarly easy.) In the week after that video launched, it had *1500* views; but it was a flash in the pan, and hasn’t maintained its popularity, getting only 2 watches in the last 30 days. (This video was popular enough that I was invited to join the YouTube monetization program, unlike the OpenLayers video, which was never ‘viral’ enough to get there.)

I’ve never been much of a video guy before — another thing I can see changing — but I’m now putting together some of the videos from my quadcopter flights. Last night, I published my bloopers from the first couple days of flying:

But I guess I can never expect, based on my current views, that anything I do on YouTube will be more popular than a silent video I published about OpenLayers back in 2007.

I guess this really just goes back to: OpenLayers was a unique experience, and is probably the most impressive thing I will actually work on for the benefit of the internet at large… ever.

Bitcoin: Just as Broken as Cash

Posted in default on February 27th, 2014 at 08:44:45

According to a Business insider article, Senator Joe Manchin III is suggesting that lawmakers pursue a ban on Bitcoin. He wrote a very cogent letter on the topic, included in the linked article. In the spirit of his letter, I would like to share my own letter on a related, but slightly different topic.

Dear Senator Manchin,

I write today to express my concerns about the US Dollar. This currency has allowed users to participate in illicit activity, while also being highly unstable and disruptive to the world economy. For the reasons outlined below, I urge regulators to take appropriate action to limit the abilities of this highly unstable currency.

By way of background, the US Dollar is a currency that has gained notoriety due to its varying exchange value and relation to illegal transactions. Each US Dollar is backed by the US Government, thus the US Dollar is not only a token of value but also a method for transferring that value. It also means that this currency allows for anonymous and irreversible transactions.

The very features that make the US Dollar attractive to some also attract criminals who are able to disguise their actions from law enforcement. Due to cash’s anonymity, the market has been extremely susceptible to hackers and scam artists stealing millions from US Dollar users. Anonymity combined with cash’s ability to finalize transactions quickly, makes it very difficult, if not impossible, to reverse fraudulent transactions.

Cash has also become a haven for individuals to buy black market items. Individuals are able to anonymously purchase items such as drugs and weapons illegally.

That is why more than a handful of countries, and their banking systems, have cautioned against the use of the US Dollar. Indeed, there have been moves to ban the US Dollar in several different countries— most recently Russia, where lawmakers are predicting a complete collapse of the currency by 2017. Several other countries, including many in Africa, have issued legal threats over the use of the US Dollar. While it is disappointing that the world leader and epicenter of the banking industry will only follow suit instead of making policy, it is high time that the United States heed our allies’ warnings. I am most concerned that as the US Dollar is inevitably banned in other countries, Americans will be left holding the bag on a valueless currency.

Our foreign counterparts have already understood the wide range of problems even with the US Dollar’s legitimate uses - from its significant price fluctuations to its inflationary nature. Just two years ago, the US Dollar’s prices plunged after the currency’s major holders in the form of banks, experienced major financial issues. This was not a unique event; news of plummeting or skyrocketing US Dollar prices is almost an annual occurrence. In addition, its inflationary trends ensure that only speculators, will benefit most from possessing the currency. There is no doubt average American consumers stand to lose by transacting in US Dollars.

The clear ends of US Dollars for either transacting in illegal goods and services or speculative gambling make me weary of its use. Before the U.S. gets too far behind the curve on this important topic, I urge the regulators to work together, act quickly, and prohibit this dangerous currency from harming hard-working Americans.


Christopher Schmidt
United States Citizen

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, 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.