Great roundup of visualization roundups:

A bit late, but here are links to a few round-ups of graphical journalism work from last year. These are always worth a look, no matter what time of year.

From the blog post introducing Kaggle Datasets:

Kaggle Datasets has four core components:

  • Access: simple, consistent access to the data with clear licensing
  • Analysis: a way to explore the data without downloading it
  • Results: visibility to the previous work that’s been created on the data
  • Conversation: forums and comments for discussing the nuances of the data

Looks like some fun data to play around with, along with ancillary information such as discussion forums and user uploaded scripts.

via FlowingData

Finally, for the my last (for now) IDL wish list item: a new widget toolkit. This wish list item is for a native widget toolkit, not the ability to create interactive web pages, though that would be good too.

This widget toolkit would:

  1. be supported on all platforms supported by IDL
  2. have a clean, modern look
  3. have all the capabilities of the current IDL widget toolkit
  4. have an embeddable web browser window
  5. have a richer set of features for existing widgets (tables, in particular)
  6. be accessible through a consistent, object-oriented API

I think the main candidates currently are wxWidgets, Qt, and GTK. My experience with these toolkits has been with Qt. Potentially, this could be done by piggy backing on the PySide project which created several generic tools for generating bindings that could be used for IDL instead of Python.

All three of these toolkits are license under something close to LGPL. I think1 this should work for a commercial product like IDL since only the source code for the widget toolkit and its bindings would have to be provided since the library would be provided as a DLM and not part of the main IDL executable.


  1. I am not a lawyer. 

Python Unlocked:

Python is a versatile programming language that can be used for a wide range of technical tasks — computation, statistics, data analysis, game development, and more. Though Python is easy to learn, its range of features means there are many aspects of it that even experienced Python developers don’t know about. Even if you’re confident with the basics, its logic and syntax, by digging deeper you can work much more effectively with Python – and get more from the language.

Python Unlocked walks you through the most effective techniques and best practices for high performance Python programming – showing you how to make the most of the Python language.

I find myself reading more about best practices, especially in Python.

If you are interested, promo code PYTUNL30 will get you 30% off the ebook until Feb 20.

When learning IDL many years ago, the first thing that caused me to do a double take was the comma between a procedure name and its first argument when calling it and between either a function or procedure name and its first argument when declaring it. While removing this comma would not provide any noteworthy capability to my code, it would:

  1. be one less keystroke per procedure call
  2. eliminate approximately 25% of my syntax errors when writing in other languages
  3. look a lot prettier
  4. eliminate most of the shame I feel when showing non-IDL programmers my IDL code

If . can be used for the -> operator, the extra comma can be removed from IDL!

IDL has had keyword inheritance for a long time. The special keywords _EXTRA, _REF_EXTRA, and _STRICT_EXTRA are used to have a wrapper routine pass its keywords to some routine that it calls. It would be convenient to have corresponding inherited positional parameters, perhaps using the analogous specially named parameter _extra:

pro mg_print, _extra, _extra=e
  compile_opt strictarr

  print, _extra, _extra=e
end

This routine would accept any number of positional parameters/keywords and pass those that PRINT accepts along to it.

Harris Geospatial1 released IDL 8.5.1 yesterday. The release notes show a few nice additions, appropriate to a patch release version: a new FILE_MODTIME, an ::IsFoldCase method for some of the container classes, routines for handling VGroup attributes in HDF4 files, IDLnetURL::URLEncode/IDLnetURL::URLDecode methods, writing a PNG to a buffer instead of a file, and an update to the HDF4 library.


  1. Exelis VIS changed their name yesterday too. 

I migrated my libraries to git, and GitHub, from Subversion over eight and a half years ago. While there is a bit of a learning curve to git, it is possible to handle basic operations fairly easily. The following is an overview of the basic features of git with some comparisons to Subversion. This basic overview completely omits many features of git; for more information check out the git docs.

Continue reading “git basics.”

Great essay about climate change and what you can do about it by Bret Victor:

This is aimed at people in the tech industry, and is more about what you can do with your career than at a hackathon. I’m not going to discuss policy and regulation, although they’re no less important than technological innovation. A good way to think about it, via Saul Griffith, is that it’s the role of technologists to create options for policy-makers.

Also fascinating is the presentation of his argument and the surrounding facts, particularly the interactive “model-driven debate” text in the Media section. He imagines (and has implemented in the article) news articles with input values that the reader can modify to explore different scenarios and output values the reader can click to find an explanation of how they were calculated. Wow!

In brief moments of mania, I’ve thought about creating an ASCII art graphics library. It would do things like this ASCII business report.

Link via FlowingData.

older posts »