IDL 8.7.1 was released today. Check the What’s New on the Docs Center for a comprehensive list of the new features.

Along with some performance improvements and library updates, there are two big new features:

  • an IDL package manager
  • machine learning classes (including a feed forward neural network class)

I will publish an article about the package manager shortly; I made IDLdoc, mgunit, and my personal library available through the package manager. I think this is now the best way to distribute IDL packages.

I am also excited to explore the machine learning classes. I will write more as soon we get 8.7.1 installed on our machines.

With these two new features, this is a powerful "bug fix" release.

When working with data files at my day job, I often come across directories containing a large number of files of several distinct types. It would be useful to produce a listing of the files clustered into these types. I wrote `cls` (Clustered ls) to find patterns in filenames for display.

Continue reading “Clustered ls.”

Circular law states the eigenvalues of a matrix with random entries of mean 0 and variance 1/n are approximately uniformly distributed in the unit disk of the complex plane. To see this, create a random matrix:

n = 1000
x = randomu(seed, n, n) - 0.5
x *= sqrt(12.0 / n)

Find the eigenvalues:

eigenvalues = la_eigenproblem(x, eigenvectors=eigenvectors)

Plot them:

plot, real_part(eigenvalues), imaginary(eigenvalues), $
      psym=3, $
      xstyle=1, xrange=[-1.5, 1.5], $
      ystyle=1, yrange=[-1.5, 1.5]

This gives a plot like below:

Via the excellent John D. Cook blog. I recommend reading his site if you are interested in a combination of mathematics and Python.

[IDLdoc][repo] 3.6.2 has been released! New features include:

* Bug fix for image directive for image files in other directories specified
with a relative path (fix by Dave Gellman).

* Only copying MathJax for LaTeX-style equations if not already present.

* Fixed crash when invalid format/markup was specified on the docformat line of
a `.pro` file.

[repo]: https://github.com/mgalloy/idldoc/ “mgalloy/idldoc”
[download]: https://github.com/mgalloy/idldoc/wiki/Releases “IDLdoc releases”

[mgunit][repo] 1.6 has been released! New features include:

* Fix for bug when no filename with jUnit output format

* Recursively search directories below test suite home directory for `*_ut.pro`
and `*_uts.pro` files

* Fixed for bug in `mguttestsuite_define::addTestingFolder` that did not add
absolute paths correctly

* Add superclasses of test classes recursively

You can [download] a distribution with a `.sav` file and documentation, or just access the [repo] as needed.

[repo]: https://github.com/mgalloy/mgunit/ “mgalloy/mgunit”
[download]: https://github.com/mgalloy/mgunit/wiki/Releases “mgunit releases”

This is [fascinating]:

> People use imprecise words to describe the chance of events all the time — “It’s likely to rain,” or “There’s a real possibility they’ll launch before us,” or “It’s doubtful the nurses will strike.” Not only are such probabilistic terms subjective, but they also can have widely different interpretations. One person’s “pretty likely” is another’s “far from certain.” Our research shows just how broad these gaps in understanding can be and the types of problems that can flow from these differences in interpretation.

For example, below are probability distributions for some common phrases:

via [FlowingData]

[fascinating]: https://hbr.org/2018/07/if-you-say-something-is-likely-how-likely-do-people-think-it-is “If You Say Something Is Likely, How Likely Do People Think It Is?”
[FlowingData]: http://flowingdata.com/2018/07/06/how-people-interpret-probability-through-words/ “How people interpret probability through words”

I released a new version of my iOS app, [Simple Checklist], today. Simple Checklist provides an easy way to track progress through checklists. I use them for my morning routine, weekly review, physical therapy, and other repeated sequences.

The release notes for 1.4.0:

– [NEW] Dark mode
– [NEW] iPhone X support
– [NEW] Haptic feedback
– [NEW] Markdown format for exported checklists
– [FIX] Fixed order of exported checklist

Simple Checklist is available on the [iOS App Store].

[Simple Checklist]: http://michaelgalloy.com/simple-checklist
[iOS App Store]: https://itunes.apple.com/app/id973818951

[Mathpix] is a great idea, executed well:

> The Mathpix desktop app allows users to take screenshots of math equations and paste the extracted Latex, all with a single keyboard shortcut.

For example, I wrote this on a piece of paper and took a picture of it:

And Mathpix put the following text on my clipboard:

\sum _ { i = 0} ^ { n } i = \frac { n ( n + 1) } { 2}

Which is exactly right:

$$\sum _ { i = 0} ^ { n } i = \frac { n ( n + 1) } { 2}$$

Mathpix can grab anything that is displayed on your screen.

The Mac app is free on the Mac App Store and there is a corresponding iOS app which is free with in-app purchase.

[Mathpix]: https://mathpix.com “Mathpix”

IDL 8.7 was released recently. The listed features are:

– `ROUTINE_DIR` function that returns the directory for the file containing the calling routine
– asynchronous job classes
– a few miscellaneous other updates

The asynchronous job classes look interesting:

> The IDLAsync classes allow you to specify units of work to execute asynchronously outside the main IDL session. To do this, create an IDLAsyncQueue and one or more IDLAsyncJob objects that encapsulate the work to be performed. As jobs are added to the queue, they will be executed at some point in the future as resources are available. When a job is complete, you can retrieve its results for further use. You can also construct an IDLAsyncJoin object and pass it into the jobs on creation. If you do this, you can wait on the join object for all of the jobs it observes to be finished before continuing.

Check the [release notes] for more details.

[release notes]: http://www.harrisgeospatial.com/docs/whatsnew.html

[HoloViews] is yet another Python visualization library, but it has a different approach:

> With HoloViews, instead of building a plot using direct calls to a plotting library, you first describe your data with a small amount of crucial semantic information required to make it visualizable, then you specify additional metadata as needed to determine more detailed aspects of your visualization. This approach provides immediate, automatic visualization that can be effortlessly requested at any time as your data evolves, rendered automatically by one of the supported plotting libraries (such as Bokeh or Matplotlib).

It can produce a variety of visualizations — check out its to see more examples.

[HoloViews]: http://holoviews.org “HoloViews”
: http://holoviews.org/gallery “Gallery – HoloViews”

« newer postsolder posts »