An interactive line-chart without plugins

I wrote a quick and dirty line chart that is interactive without using flash or any other plugin – it uses Microsoft’s Vector Markup Language (VML) along with javascript. Although I feel dirty for doing something Microsoft specific, anabolics I’m planning to build it into a demo for work (where the apps are alarmingly short of data visualization), and the web-applications are IE-only due to activex plugins.

The example is here.

The chart could be improved in many ways, such as a fill under the line, some markers to indicate the original position of the chart as it is edited, larger click targets for the vertexes, some animations on mouseover. But since I’m not sure any of that will ever happen, I’m putting it up in case someone else can learn from it.

With Canvas and SVG support making it into the the other browsers, VML in IE, and a graphics api (like dojo.gfx/dojo.2d) that will hide the differences, it looks like there could be quite a bit of client-size rendering coming to the web in the not too distant future. (google maps already uses vml as a fall back from transparent pngs for drawing the route in IE)

Incidentally I did most of the work using Aptana which is a quite capable Javascript editor.

Does everyone use Java still?

I was talking to a recruiter the other day, and mentioned that I’d like an environment where people don’t use Java as the default implementation language. I feel that a company full of “Java programmers” are more likely to be less intelligent and proficient programmers and designers compared to a developers at a company that makes use of Python or Ruby or any other scripting languages (as well as more mainstream tech) would be more likely full of intelligent, intellectually curious people, because those people took the time to go and learn those new languages on their own.

While computer languages really are just a way to tell a machine what to do, making the “what to do” the most important piece of the design, I think learning several different languages makes one look at problems from different angles and come up with more elegant (and perhaps robust?) solutions. Perhaps the same way learning eskimo with its twenty something words for different types of snow would change how one would look at the weather?

Anyways having split my time recently between javascript and java, I’m frequently annoyed by the lack of first class functions and closures in Java. On the other hand Java provides a lot more API, so you win some and you lose some.

To wrap up the recruiter story, she said she doesn’t think she ever hears about jobs with python or ruby etc. There’s got to be some people out there using this stuff, but how to find them?

Click data as heatmaps

A colleague pointed out this open source project that allows users to visualize the mouse movements of users as a heatmap – the hotter the area, the more the mouse has been used there. Its a neat idea, a well executed visualization and a great that the code is shared, but I wonder about the utility of the resulting data.

Heatmaps are usually used in this context with eye-tracking data – that is it shows where the users look on the page, the movement patterns between sections, and how long they spend there. This data is useful for understanding if the layout makes sense, to understand where to place things so the user will see them.

I don’t think that cursor position is a good proxy for attention while using any application on a computer. I don’t constantly mouse over things on a page, paticularly when reading some amount of content. Maybe its the case that I do it unconsciously enough that there is some real meaning to the data, or maybe there are groups of users who do this all the time?

My colleague pointed out one good use for this – to identify elements of the page that are misleadingly affording interaction – are people clicking on stuff that isn’t clickable? Otherwise I fear people will read too much into the heat maps, and would be better off with just a click stream around the page. I wonder if even a clickstream provides solid enough data upon which
to draw conclusions with any degree of certainty.

Theres a commercial offering of a similar capability called Clicktale. They provide video simulations of the user’s mouse interactions with the page – from the limited information they have, it doesn’t look like they have visualization tools, and who has time to watch all that video?

Down with Monarch Computers

Don’t shop at Monarch Computers. If you have to make a return, you’ll regret it. I wanted a refund, instead I got a run around.

I found monarch computers browsing through Pricewatch for memory for my new macbook. It must have been late because it turns out I accidentally bought desktop RAM instead of laptop RAM. This was June 14. As soon as I opened the box I realized my mistake, so I contacted them and got an RMA number and had the memory on its way back in a day or two. They would only give me store credit, less the 15% gouging fee for restocking, so I waited my time until they processed my return. And waited. Called to ask why I hadn’t got a store credit notification yet even though the package was already there for days. I get told the “returns department” is taking care of it – but seriously how many people could actually be working for this place?

Seven days after the return gets there I finally get an email saying my store credit is ready. I instantly place an order for the correct memory so I can use my store credit. Only it turns out that they don’t apply the credit to the order:

keep in mind that orders processed on the website will be completely billed to your credit card or pay pal account, and in turn, the store credit will be refunded back to your account within 10-15 days of the order being processed.

Or do they? I get two emails that say this instead

Your RMA credit is currently being applied to your order. Any credit available to you will be refunded back to you.

Seems to be some internal confusion about their policies.

The order was placed on 6/30 and finally shipped 7/6 or so (because of the holiday). Add on the 10-15 days and my money is a little over two weeks overdue.

I start calling. They don’t even answer the phone half the time. Last monday (7/30) they told me that the return credit was to be processed that day by the “credit department”. Today (8/7) I call, again, looking for my refund and am told again it was sent to the “credit department” and should have been taken care of. I ask to speak with this mysterious “credit department” and the guy (Mark?) tells me he has no way of providing me that information (wtf?). So I tell Mark that unless I hear from someone by the end of the day I’m going to have to start a chargeback through my credit card – he takes my number but I didn’t hold my breath on hearing from them.

When I got home, I started my first ever chargeback.

Its disappointing really – I usually prefer to deal with smaller companies I find through pricewatch (especially if they’re on the east coast so shipping is faster and cheaper) but this is the first time I’ve had a problem.

Steer clear of monarch computers.

Self Checkout

Either I’ve been really unlucky or society just arrived at some plateau on the technology adoption curve for grocery self checkout. It seems to me that it used to be only once in a while that the line for self checkout was held up by some poor soul that couldn’t figure the thing out, but the last few times I’ve been in Shaws, i’ve been held up as people take forever to checkout their handful of items.

Its just not that hard! Scan items, scan shaws card, hit finish. Hit Ok at the annoying “check under your cart” prompt. Click the picture of the mechanism with which you’re going to pay. Swipe card. Done.

As someone with some interest in usability, I wonder what it is that leaves these people gaping open mouthed at the screen, struggling to comprehend the current prompt or messsage, but I feel like it would be rude to mosey up behind someone to see what is going on. I hope Shaws is doing something to capture the state where input to the machine is paused for some period of time(along with video tape of the user) to figure out what the stumbling block is.

I wish the self checkout wrangler would be more proactive about helping people who appear stuck – like at the airport where airline employees try to hold your hand through self check in.

As I’m not a patient person, while I’m fuming in line behind these slowpokes, I’m imagining some device where the self-checkout community can vote inept people back to the regular checkout lines. Can we make that happen?

Another thought – why can’t we all wait in one line for the cluster of self checkout machines? It seems to me that would be the most fair approach because now one has to not only judge how much stuff a person has, but also profile for computer aptitude when getting in line. Perhaps that’s un-American? I remember a couple of years ago waiting in line to use the ticket machines in Union Station (New Haven) trying to straddle a couple machines so that I could get the next one and having some lady ask me “Are you in this line?” to which I replied “We’re all going the same place lady”. She wasn’t amused.

Siggraph 2006

Siggraph 2006 is in Boston,
and they had a free public reception this afternoon (which I saw in one of the free weekly papers,
but was unable to confirm through official channels). I headed over there with Marty, and fortunately the paper was right. We were able to check out the emerging technology area (their page is here and a video preview is here) There were many really neat applications. Lots of what my advisor at Tufts would call reality-based-interfaces (RBI) where the user interacts with a computer application by manipulating real physical objects. There were many table top devices, one where multiple users could collaborate to create “music” (more like sound) by manipulating a large number of objects on a projector table. Turning objects to make them louder and softer and moving them around to change their interactions.

I think my favorite demo that I actually got to use was the Forehead Retina System because it made me really able to sense objects through physical sensations on my forehead. The effect really has to be experienced to be believed. It worked really well for linear objects, where it was easy to feel a line moving back and forth on my forehead, but not so much for a round object where the effect just felt mushy.

We also got to see the Art Gallery where there were some cool works, including an exhibit where you could interact with butterflies in side a mirror.

Stuff like this makes me wonder what I am doing with my career…

More macbook wireless

I spent over an hour on the phone today with Apple support about my macbooks’s tendency to drop wireless connections when on battery power. I didn’t really expect a resolution going in, rather I just wanted to have them increment the counter on the problem so they’ll finally fix the real issue, which still appears to be power management settings when the network is idle. I worked with level one support for a while changing this setting and that, and finally got transferred to a product specialist. He of course insisted there was no problem with the macbook’s wireless. Instead he blamed my linksys router. The one interesting thing we found out is that If I have my iMac create a computer to computer network and share its internet connection, my macbook will stay connected to that just fine.

The official apple workaround is to buy an apple airport base station, which seems like an expensive fix to me.

I’m also amazed that the techs I spoke to profess they haven’t heard of this issue, when it does seem to be happening to an awful lot of people. There’s this thread at apple in particular.

In the meantime running iStumbler in the background seems to help, so that’s what I’ll do until apple comes out of denial and fixes the problem.

While we’re on the topic – anyone who runs a macbook with only half a gig of RAM is out of his or her mind. It is a dog configured like that. Now that I have 2 gigs this machine screams. Don’t even think about having less than a gig.

My Naturalization Interview

I had my naturalization interview today. Scheduled for 1:30, but didn’t actually start until 2:40, then it only took 15-20 minutes at the most. Although I passed the tests of English and US history, a decision cannot be made yet – apparently my security check is still pending.

Some highlights:

  • The waiting room had a bulletin board that hosted the Association of Immigration Attorneys Essay Contest – from 1997
  • If you’re not into nine year old essays or terrible MSNBC anchor-bimbos you can always stare longingly at the official portrait of Michael Chertoff, head of homeland security. What is it about being a cabinet level leader that makes it so you want to have your picture hung all over the place like some kind of minor deity?
  • If anyone from homeland security or the NSA is reading this, let someone know that “naturalization” is spelled “naturlaization” in the middle of form N-652 “Naturalization Interview results”. Scratch that, I mentioned the mispelling on the phone earlier, so I’m sure the NSA already knows. Thanks AT&T;!
  • Writing the sentence “I like good food” is enough to prove that one has a command of writing the english language
  • Apparently you know enough about the principles for which the US government stands if you know the answers to the following questions: What colors are in the flag? How many stars are on the flag? How many states are there? Who was the first president? Who’s the president now?. What do we celebrate on July 4th? Pretty demanding!
  • There seems to be a delicious irony that one of the questions asked is about whether I am opposed to the violent overthrow of governments, coming from a government that started that way and keeps on doing it all over the world? Could George Washington have answered yes to that question truthfully? Let the record show I don’t believe in the violent overthrow of governments.
  • The sentence “You passed the tests of English and U.S. history and government.” seems to be pretty ambiguous to me

I hate being asked for information by anyone more than once, but that was how most of the session was spent – confirming the answers I had already given.

Now we wait.

My Itunes Library: many unplayed songs.

I’m interested by data and information visualization, but unfortunately know next to nothing about statistics or data analysis. I’m trying to learn some stats on my own, so I’ve been casting about for some “interesting” data to mine.

While using iTunes one day, I noticed that there were quite a few of the ~2900 songs in my library that had never been played even once. I was curious about the distribution of play counts, and while I was at it wondered how strong the correlation between the length of time a song had been in the library and the number of times it was played. I exported the Library and wrote some python scripts to extract data (using this helpful library to parse the plist-in-XML file that itunes exports).

It turns out I have 208 unplayed songs in my library, and additionally lots of low single digit playcount songs. Here’s an (ugly excel generated) histogram:
playcounts.png

It doesn’t really hold to the power law well because of the way it seems to level off for a while, and the dip at zero playcounts.

While I was delving around, I figured I would see if theres any correlation between the length of time a song has been in my library, and the number of times it’s been played. The dot plot turned out interesting. agevsplay.png

Looks like there’s a weak positive correlation between age and playcount, which is to be expected. What intrigued me more is the vertical lines of dots that seem to indicate music being added in significant bunches which at least on first glance seem to be bigger than one album.

One of these days I’ll have to slap together something interactive so I can see what songs those clusters actually are.

Macbook wireless: use it or lose it

I’ve had my macbook for about a week now: not long enough for it to start turning yellow yet, so my chief annoyance with it (besides it only having 512 megs of RAM because I was an idiot and ordered the wrong kind) is that its wireless drops intermittently. As in, it’ll be sitting there with all 4 bars of strength clicking through web pages and all of a sudden there’s no internet. But I started downloading the new XCode (which is almost a gig), and as I started, thought, no way is this going to finish. And while theres still time for that to become true because its not done yet, for some crazy reason this is the longest its wireless connection has ever stayed associated to my base station.

Other than that I think its great. It’ll certainly keep me warm in the winter time. If anyone does happen to stumble upon this and is thinking about getting one: do not even think about keeping the stock 512 Megs of RAM. It swaps like crazy with more than a couple of things open.

Update: The experiment is a success. Of sorts. I noticed my wireless had dropped so I checked to see if the download had completed. It had.