Archive for Technology

Data Vis Roundup

I’m supervising a capstone project right now where students are providing data analysis and visualization support for a local organization, and the following set of links have been queueing up in my feed as to-read items for me related to that project (and, hopefully, to-read items for them):

eagereyes has a nice summary of ISOTYPE (International System of Typographic Picture Education) which in the roughest strokes is those charts where the number of an item is represented not by a bar but as a collection of images or icons representing the thing being counted. But it’s a lot more complicated than that, including guidelines about the design of the icons.

The same site also has a nice, short illustration of how visualizing something makes it real in a way that just seeing/reading the source information or data does not. To me, this highlights the importance of being thoughtful about what you are presenting and the accuracy of the analysis behind your visualization.

In a similar vein, I enjoy Junk Charts dissections of poor data presentation; this critique of bubble charts via a self-sufficiency test analysis is a nice example and serves as a good model for a simple way to assess your own visualizations.

If you’re thinking about data visualization to monitor something (which my students are), you probably need to think about if a “dashboard” would be helpful. juice analytics has put together a collection of innovative dashboard designs, and also have a helpful link to a white paper they wrote on dashboard design at the top of the article.

We’re also probably working with some maps in our project, so this list of common problems in maps from cartonerd could be useful, as could the linked collection of UK maps which is recommended as a tool for looking for ideas of what not to do. The key focus here is on persuasiveness of the maps; the overall message is ultimately narrowed down to the question “is the map as it stands capable of properly supporting policy-making”?

On the tool front, the announcement that students can now download and use the full desktop version of Tableau for free got a fair bit of fanfare recently.

My colleagues and I teach a number of courses where we hope students will go out and find their own data sets to work with – Quandl looks like it will be a great source to share with them. It’s a searchable collection of free and open datasets, normalized into a standardized format which can then be output in a range of useful formats (right now, Excel, CSV, JSON, XML or R). I love that you can browse the data online and even see some basic graphs of it without downloading, though. This is a site that some will use to look at data and get answers directly, not just a repository to download from.

Discourses

I’m helping organize a panel of faculty at my school who have been using a range of different technologies to support student interaction in and out of class. With so many options out there, we want to focus on what has worked for us, what hasn’t worked, and start some conversations around how to make the jump from looking at your course, with its content, outcomes, and pedagogy, and draw on others experience with these tools on the ground with our systems and our students to have some idea what options might be appropriate. Independently of this, I’ve got a group of students in a capstone using Basecamp to organize their project, and it’s got me thinking about (not a very new thought, I’ll admit), whether I like the idea of using this type of professionally-oriented project site in other courses to have students manage their groups. I get a lot less control than in a CMS, but the flip side is I’m running into fewer places where students are trying to make the site work for them and they don’t have enough power. SIGCSE just had a discussion in its mailing list about what repository systems people are using, and in all levels of courses. And when I see articles about new tools for collaboration and discussion like the new Discourse discussion platform, I’m immediately thinking about whether the improvements they talk about (less pagination, more dynamic processes for replying, flexible content embedding, and moderation/ranking tools) would work well for class discussion also. It reminds me of the window of time when I was in school and it was normal, if not expected, for a department to have a set of forums/groups associated with, and not just on a course by course basis. Is that still out there and I’m simply at an outlier school without them, or has that type of conversation been killed off? Is it (*shudder*) on Facebook?

Sometimes you can blame the compiler. Sort of.

I don’t know if this weblog entry about bug hunting in large scale game development is more appropriate for my spring games course or my spring project management course. The stories are great for both directions. Team members with poorly defined roles! Frantic timelines leading to bugs! The reality of entire days lost to a bug that won’t be found, let alone fixed! Bugs explained in simple code a novice student can understand! I particularly enjoyed the explanation of why the live server compiler ran without debug capabilities, violating the ideal that the dev and live servers are identically configured, to ensure that debug features used to test the games by forcing benefits, monster spawn, etc. weren’t leaked into the live system – if there were never sensible reasons for breaking what seem like obvious rules, they wouldn’t get broken.

And there is an interesting lesson about customer satisfaction in the story of embedding code in a game to identify hardware failures and then not only detecting when bug reports are actually related to customer hardware failures but proactively telling customers when they are having hardware issues before problems crop up so they can do something about it. The explanation of why this ultimately saves them time by avoiding hard to resolve bugs that are really due to hardware faults makes sense, but also reflects an interesting decision about how much responsibility to take for the entire game playing experience, whether portions of that are actually one’s responsibility or not.

Risks in user content

My security class is talking about the types of commonly seen mistakes that can crop up when writing programs that lead to security flaws, and while I usually introduce the ideas using “normal” programming examples because it is the common background I can assume my students have, I’m trying to help the students map these ideas to what they’ve seen of database or web development as well. So I finally went back in my saved links and read through a Google blog post from a month ago about security issues in hosting user content, specifically web content.

After a brief but reasonably nice survey of the problem they’re trying to address, they include this interesting statement, contrasting the current state of affairs to the old days of hosting static HTML: “For a while, we focused on content sanitization as a possible workaround – but in many cases, we found it to be insufficient. For example, Aleksandr Dobkin managed to construct a purely alphanumeric Flash applet, and in our internal work the Google security team created images that can be forced to include a particular plaintext string in their body, after being scrubbed and recoded in a deterministic way.”

I’ve been trying to make the argument to our digital media (as I get opportunities to talk to them) that they really ought to think of security as a good elective to round out their major, particularly those focusing on courses in web development and mobile application development. I’m sorely tempted to print out a copy of this article and go over and paste it on their lab door – or at least remind their professor to do another advising push towards the course on its next offering. These problems are perhaps outside the scope of what most web developers would encounter, but I wonder if rejecting the importance of understanding these issues would be analogous to an application developer believing that only someone working in operating system design really has to understand security.

Robots run amok

Interesting story of the life webcast of the Hugo Awards being blocked by copyright enforcement bots. Short version: the live webcast included clips of the television episodes up for best script (as award ceremonies do) and UStream’s bots for detecting copyrighted work spotted it and blocked the entire rest of the broadcast. The article points out that not only is that fair use but, the clips were provided by the copyright holders who were happy the content was being promoted as award winning.

The whole thing is reminiscent of NASA’s footage of the Curiosity landing being removed from NASA’s YouTube channel under the claim that it violated Scripps News Service’s copyright on the material. The problem being that Scripps uploaded NASA’s video to their own stream and, accidentally they say, marked it as being their own content. It ought to jump out at you that, whether Scripps made an honest mistake here or not, there’s plenty of potential for someone to fraudulently claim ownership of content and harass the legitimate owner or reap profits from the content with so little evidence required. Figuring out that a live feed of a NASA rover and the NASA control room during a highly publicized NASA mission actually does belong to NASA has to be one of the easier cases to get right…

The common thread being the automatic disabling or removal of content without solid evidence that infringement is happening or, clearly, human review. It also sounds like, from the Hugo Awards case, there isn’t anybody standing by on call to reverse these actions if errors are made. Add this to the list of things to worry about with both digital intellectual property management and what happens when you start moving to the cloud.

This entry readable in lynx 2.8.3 or higher.

This security critique of the Tesco website is a hoot. It walks through an increasingly deep, and increasing damning, look at what is wrong with their setup, and how you can tell. The critique is well peppered with links to additional content about the problems being described, so it’s not a bad starting place to learn something about web security. It is also an accessible illustration of the type of exploration and deduction that can be used to profile a system and its vulnerability. Finally, to me, it reads as a nice lesson in why you can’t just “throw some security on your site” without real expertise. I like the concept of “unconscious incompetence” being used to describe the situation where incompetence (here about security) is being compounded by a lack of awareness of the incompetence. If you at least know what you don’t know, you’re moving a step in the right direction!

Readability versus Realism

I’ve been reading a lot about games and game design over the past few months, and this recent blog post about when visual detail in games becomes overwhelming rung true for me. It’s responding to the difficulty that can emerge when trying to actually play the stunning, complex, 3D games that are coming out, when compared to less graphically “sophisticated” games. The idea of readability, and what makes a game readable, is nicely discussed. I liked the idea, hinted at, that if your game is only playable because you have added meta-labels that appear when you’ve successfully found or targeted an object, this may be a sign your games visuals are sacrificing readability for complexity.

Playing games about making games

While Gamestar Mechanic isn’t really a fit as a development tool for my course, it’s an excellent example of a teaching game, and I would highly recommend it for anybody with a middle-school aged kid (I think that is the right age range for it). The game is structured as a quest to learn to be a game developer, but what surprised me was how much of the focus was on good design, not just how to place blocks and enemies and make things go. You start out by just playing the various types of games that might get built (e.g. platformers versus top-down maze games) and becoming familiar with the differences, but soon you start getting walked through design concepts like how to use space or how to balance goals by playing the same game multiple times with a single aspect changed to see the effect. I loved the “quest” where you get to see how balancing a countdown timer and number of lives can lead to different types of game play. Overall, there’s a lot of showing not telling.

By the end, you can start building and sharing your own games in their “Game Alley, play others’ games, and it looks like there are occasionally challenges with prizes. The site does have a premium paid section as well as the free section, which may bother some, but from what I saw you can get a lot of value out of it for free – it’s not like some sites where you’ll find yourself almost immediately coming up against the limitations of what you get without paying.

Tsk Tsk Speedometer

I really enjoyed this assessment of how a speedometer both breaks a ton of good-visualization rules, and yet is a great visualization given its purpose and context of use. I particularly liked its discussion of why you would want to change scale halfway through a visualization in this setting. Obviously, don’t break the rules until you understand them disclaimers apply, but it’s a really elegant example of how blindly following rules alone also doesn’t make good design.

Sourcecode access wanted

GameSalad is a graphical game-programming tool available for Windows now as well as the Mac (though I had to install something called the Microsoft XNA Framework which doesn’t sound horrible at all), and supports HTML5 for deploying games on the web but also iOS and Android for tablet/phone games (in the pay version). It seems like the pay version focuses on integrating tools for monetization, ads, in-game sales, and social gaming. The core of the free version is very full-featured though. The built-in behaviors and attributes are broad. It’s nicely object-oriented, which I liked about GameMaker when I used it in a course because it sets up well for transitioning to Java.

Unfortunately, for all that I wanted to decide to use it in a course next spring, I just can’t. The interface could be more intuitive/explanatory (for example, it took distressingly long to figure out that you can delete an actor from a scene by clicking it and then pressing the delete key on the keyboard, since everything else gets deleted by clicking it and then clicking a button with a minus sign in the interface). Couple that with the fact that I’m finding most of the documentation is either for an older version of the system, or perhaps for the Mac version. Working through the tutorials, I finally had to stop because some of the features referenced aren’t just in different places, they don’t even exist in the version I’m running (and yes, I checked I had the most updated version).

I could have worked around those things, given how much I was liking the tool, but the killer is that it doesn’t look like you can actually get the HTML5 code out of the tool to view and use as you like. Rather, they publish it to their site and you can embed it from there. Perhaps there’s an undocumented way around it, but currently, the site is also failing to actually produce a published HTML5 version of the game for me (I keep being instructed to wait a few minutes). I can’t find documentation that the pay version would solve this problem either.

So, if you want to play around with producing games, and are willing to have them hosted by GameSalad or pay a bit to deploy to Android or iOS, this is a nice tool, worth checking out, and the Mac version is probably smoother to use. I’m disappointed it won’t work for my course.