IDLdoc 3.4.3 fixes the bug that prevented search results from being displayed.
Category "IDL"
The new IDLdoc 3.4.2 release changes one small aspect of the .sav file in the distribution (the source distribution is example the same as the 3.4.1 release): it removes the IDL library routines from the .sav file, i.e., it doesn’t do a RESOLVE_ALL when constructing the .sav file.
Currently, IDLdoc is built with IDL 6.4 to maximize who can use it, but this means any included IDL library routines could conflict with the routines provided by the user’s IDL distribution. IDLdoc is intended to be run from the command line, i.e., a full version of IDL, not a runtime or VM environment, so the IDL library routines should be provided by the user’s IDL distribution.
Get the new version here.
David Fanning recently used IDLdoc to generate documentation for his Coyote Graphics library:
On-line documentation is now available for all 41 of the Coyote Graphics programs. (These are a subset of the programs in the Coyote Library.) This will make it much easier to use these Coyote Graphics programs.
There was a bug in IDLdoc 3.4 which caused crashes with certain content in the Requires tag. The fix is in IDLdoc 3.4.1, get it here.
Also, I have confirmation that IDLdoc will run on big libraries, i.e., over 4000 files, 7700 routines, and 850,000 lines of code!
I will be AGU next week (Tuesday through Thursday morning). I’ll be hanging out at the Tech-X booth (circled at right, just up from the NASA booth) most of the time, but will also be patrolling the posters and hitting a few talks as well.
Here’s our press release:
Tech-X Corporation invites you to visit our booth (Booth #1748) at the American Geophysical Union Fall Meeting 2011, December 5 – 9, at the Moscone Center in San Francisco.
We will be featuring GPU Computing, including GPULib, our library of mathematical kernels for GPU computing.
We will also be demonstrating the Remote Data Toolkit, which allows seamless access to remote data with IDL.
Personnel from Tech-X and/or their collaborators will be participating in the following activities:
Session A53C: Multisensor and Model Aerosol Data Inter-comparison and Synergy III Posters Friday, December 09 1:40PM – 6:00PM, Halls A – C
A53C-0382 Aerosol type estimations for the ERBE period (1985 – 1989) Jose R. Fernandez, SSAI, Hampton, VA; Seiji Kato, NASA Langley Research Center, Hampton, VA; Fred G. Rose, SSAI, Hampton, VA; David W. Fillmore, Tech-X Corporation, Boulder, CO
Exelis VIS will be at booth #1431; I haven’t heard about if there will be an IDL user group meeting.
UPDATE: Also, if you have an iPhone, I recommend the AGU app. It has been very useful already for me.
Full disclosure: I work for Tech-X Corporation.
IDLdoc 3.4 was released today. This is mostly a bug fix version, but there is on big feature: LaTeX equation formatting. To use LaTeX equations in your docs, just use standard LaTeX syntax anywhere plain text is allowed. For example, here is an example of using an equation in the main description:
;+
; Inverse hyperbolic cosine. Uses the formula:
;
; $$\text{acosh}(z) = \ln(z + \sqrt{z + 1} \sqrt{z - 1})$$
;
; :Returns:
; float, double, complex, or double complex depending on the input
;
; :Params:
; z : in, required, type=numeric
; input
;-
The equation should be typeset like (results depend on browser):
$$\text{acosh}(z) = \ln(z + \sqrt{z + 1} \sqrt{z – 1})$$
Inline equations are also allowed. Both can appear in the main description and inside most tags (anywhere comments are just copied over to the output).
Here are the full release notes:
- Allow LaTeX equation formatting.
- Fix for bug where links to routines, files, etc. in directory overview comments on the overview page were not correct.
- Adding links to parent items in index entries.
- Changes to HTML output styling including larger type size.
- Fixed bug where DLM contents could not be references using backtick notation in rst markup syntax.
- Added private and hidden attributes to directory names in overview file.
- Not showing warnings page when USER keyword is set.
- Fixed bug where parsing rst Requires tag would cause IDLdoc to crash.
- Fixed bug where Warnings page showed items from private or hidden items.
- UPDATED 11/22: New color scheme.
[Download]
When writing applications or even just longer programs, I used to sprinkle in PRINT statements regularly, telling me of the progress of the program. At some point, I would think the program is working correctly and I would then have to search through the code to find all the PRINT statements to either comment them out (smart, but leaves ugly code behind) or delete them (dumb, I would eventually need them again when I discovered some problem). This approach has some definite drawbacks:
- there is no easy way to turn the complete output on and off, much less on a more granular level
- output goes to the output log, but sometimes it would be nicer to send the output to a log file
PRINTprovides little help for things that I commonly need to print like the time/date, the routine that the message is originating from, etc.
I’ve created the MG_LOG routine to help with these problems.
I’ve updated Modern IDL for some of the IDL 8.1 features, notably GRIB, function graphics enhancements1, and the IDLffVideoWrite class. PDF purchasers from this point on should get the new version and I will send out the update to the purchasers of the old PDF shortly. The first run of the print book is all sold; the second run is still at the printers. So if you order the print version right now, expect the book to ship sometime next week.
As always, see the Modern IDL website for purchasing, new code examples, table of contents, sample chapter (object graphics with the new function graphics updates!), and errata.
-
Also, I switch back to the term “function graphics”, which was my original favorite term for the new graphics system, but I had gone away from it because there seemed to be consensus on the newsgroup to call it “new graphics.” I think “function graphics” is a better term that is less likely to not make sense when the next graphics system comes out. ↩
★ Set operations on non-negative integers
posted Wed 12 Oct 2011 by Michael Galloy under IDL, OptimizationArrays of non-negative integers are encountered frequently in IDL, e.g., for index arrays and lists of ENVI file IDs to name a couple examples. Since valid data elements are non-negative integers, -1 is used to indicate an empty set. I have a few routines for efficiently computing set unions, intersections, differences, and complements.
For example, suppose I have found the valid data in an image with:
IDL> valid_ind = where(band gt 0.)
And then I find indices of the clouds in the image using my special routine FIND_CLOUD_INDICES:
IDL> noncloud_ind = find_cloud_indices(band)
Now, if I want to find the indices of the pixels of the image that are valid and not cloud pixels, I can use my MG_SETINTERSECTION routine:
IDL> valid_ind = mg_setintersection(valid_ind, noncloud_ind)
Download the routines or look at the documentation.
Combining testing methods
posted Tue 11 Oct 2011 by Michael Galloy under mgunitFinding severe bugs after a release is 100 more expensive than before (2x for non-critical bugs), so how can more bugs be found before release? This article suggests combining multiple testing/review methods, particularly adding code review:
More generally, inspections are a cheaper method of finding bugs than testing; according to Basili and Selby (1987), code reading detected 80 percent more faults per hour than testing, even when testing programmers on code that contained zero comments.
So grab mgunit and write some unit/regression/system tests; get a friend and have her look over your code; have a beta test period; etc.
