Friday, October 30, 2009

Continuous Integration Tools

Do you need to compile and test your software on an automated basis? Which continuous integration or nightly build tool should you use?

Hudson

Why? Because it's that good. Give it a try, you won't regret it. I've used Cruise Control and then LuntBuild. I've looked at and followed BuildBot, Zutubi Pulse, AntHill, Atlassian Bamboo, Apache Continuum, CDash, and QuickBuild.

And Hudson is better. It's easy to set-up, it's easy to configure, it's deceptively powerful, there are a ton of plug-ins. I don't think I've encountered another open-source projects that does releases more frequently. It's free and open-source. It supports large clusters of slaves or agents. It's management and set-up of slaves is the best I've seen. Because it's free, you can scale up your slaves as high as you want to go.

And no, I don't work on the project. And I'm certainly not getting paid to endorse it. I just found it one day and it's that good. Check out the public instance I administer for the Opticks project.

Ever try to use copy?

Today, I was working on some automated builds for Opticks, and I needed to use the windows "copy" command as part of the automated build process. So, I wrote:

copy foo.zip bar.zip

and then my 250 MB foo.zip was turned into a 55 byte bar.zip. And I was so very confused until I discovered that copy has "/B" flag. This apparently tells copy that a "binary" file is involved and then all my problems went away. I thought about researching the history of the "/B" flag, but I'm not sure I want to know. I think my life might be better not knowing.

So, for the record please use:

copy /B foo.zip bar.zip

It saves lives.

Like StackOverflow? Check out GeoExchange

If you've ever used Stackoverflow, you might want to give GeoExchange a look. StackOverflow is a collaborative site that aims to be a Q & A or knowledge base for all kinds of computer programming questions. GeoExchange just debuted and is running the same software, but is set-up to become the Q & A or knowledge base for all kinds of Geo and GIS questions.

I checked it out earlier, it appears to be in it's infancy. But it's worth keeping an eye on.

Tuesday, October 27, 2009

New DoD Memo On Open Source Software - What does it all mean?

As a number of people have reported today, a new DoD memo was released that clarifies the DoD's usage/participation in OSS. See here, here and here for more details. And the actual memo should appear on the DoD's site soon. For now, you can read it from any one of the other posts I've linked to.

So, what does this memo mean?

I think you can see that momentum has been building and progress is being made. The OSS movement within the DoD hasn't stagnated from 2003 to 2009. So, why then is this memo so important? Because it is going to help remove some long-standing and problematic roadblocks and if you attended the Mil-OSS working group August session or join the Mil-OSS Google Group, you'll see there are still quite a few roadblocks.

So, jump in and help out. And by that I mean keep an eye out for the next Mil-OSS working group session in Spring 2010.

GEOINT 2009 - Recap

My colleague, Tony Wolf, just back from GEOINT 2009 and wanted me to post the following:

"Just got back from GEOINT 2009... Very cool

Lots of great exhibitors this year showed off some pretty cool tools. One that comes to mind was the "Liquid Galaxy" booth set-up by Google. It was a 340 degree view of LCDs all displaying Google Earth, steerable by a 3-D connexion controller. I want to build one in my garage. BAE showed off their new plug-ins for SOCET GXP, which included more Spectral enhancements than in the past. Finally, PAR Government built more capability to their FMV tool, GV 3.0.

The fun didn't stop there. Got to hear some great talks by people like James Clapper, Major Gen. John Custer, and of course Vice Admiral Robert Murrett from NGA. These guys speak plain english reminding us of the value of geospatial intelligence.

Of course no GEOINT is complete without the GeoWalk. Coincidentally, WorldView 2 got it's first collection over San Antonio that same day, just 12 days after launch!!! This called for a celebration. And no one throws a better party than DigitalGlobe. I got the chance to speak with Jill Smith, CEO of Digital Globe, who couldn't be more enthusiastic or grateful for the success of WorldView. Live music and open bar, what else can I say? The river walk itself was the perfect setting which made the GeoWalk even better than in years past.

I gave close to 30 demos of Opticks. All of which were well received. And I made some new friends along the way. I got the chance to show off just how many different types of data that Opticks will support and what that means to the open-source community. The thing people liked the most about Opticks is how easy it is to get your hands on a copy, without having to sign up for anything, become a member of anything, etc. All in all, great time, looking forward to next year."

Sunday, October 25, 2009

New Direction of this blog

Originally, this blog was to be pretty limited and scope and only talk about Opticks. Since then, I've decided that I'm going to use it principally as my personal blog. So, continue to expect topics about Opticks, since I am a committer on that project. But, I'll also discuss programming, website development, installation and the like, or whatever else I happen to be interested in.

Monday, October 19, 2009

New Opticks Website

I've just flipped the switch on the new Opticks website. Just go to http://opticks.org/ to see the new site. The goal of the new site is to better separate the Opticks community into three user groups (end-users/analysts/scientists, extension developers, and opticks developers) and then tailor the site towards those users. So, check out the new site and let us know what you think, either as a comment here or on the Opticks mailing list or real-time chat.

Over the next week or so, I'll be updating the old site (http://opticks.ballforge.net/) to point people to the new site.

GEOINT 2009 - Come See Opticks

GEOINT 2009 starts today and if you are attendance, stop by the Ball Aerospace & Technologies Corp. booth to see some of my colleagues demo Opticks.

Tuesday, September 8, 2009

New Mouse Pan Feature

Opticks 4.3.1 introduces a new panning mode that I happen to think is quite useful. It allows you to pan around the image quickly while retaining knowledge of what you were doing before you started panning. So, if you were drawing arrow annotations or creating AOIs (areas of interest) for an algorithm, you can now engage this new pan mode, pan around, exit the pan mode and continue drawing arrow annotations or AOIs. In addition, this mode allows for variable speed panning with very quick change of direction. All you have to do is middle-click in an image to start the pan mode and then start moving your mouse around. To exit the pan mode, you just need to click (left, middle or right will do). You can watch the following video to see it in action.

Length: 30s Download

Wednesday, August 26, 2009

Mil-OSS Re-cap

Sorry for the delay in getting my re-cap out. This is what happens when you attend a conference in the middle of a release cycle for Opticks (you get really bogged down).

The first working group of Mil-OSS was really good. Quite a few people showed up (~150) and everyone was pretty energized about Military Open Source. There was a wide variety of discussions ranging from DoD policy to specific open-source projects. There was a lot to learn, too much in fact, I couldn't see it all. I don't really want to name any highlights, because there was so much good content. I will say this:

If you have any interest in Military Open Source, you need to join the Google Group. From there, you can most of the presentations that were given at the working group. Just look in the files section of the google group. And you need to start planning now to attend the next working group in Spring 2010. The location and dates haven't been determined, but you're going to join the Google Group, so you can be the first to find out, right?

Oh, and don't forget to check out the pics that have been posted to Flickr.

Saturday, August 8, 2009

Opticks and IDL - Helpful Hints

I just published documentation on how to combine the free IDL extension for Opticks along with the built-in wizard capability of Opticks, the resulting effect is pretty powerful. If you have any interest in IDL scripting, I suggest you check it out. I actually received the documentation from one of our users, so I'll take this opportunity to remind everyone that every contribution is important and documentation is one of the easiest and lot of times best ways to contribute.

Friday, August 7, 2009

Presenting at Mil-OSS Working Group

I'll be presenting at the Mil-OSS Working Group in Atlanta, GA on 12 August. I'll be discussing how/why we open-sourced Opticks. For those of you unable to attend, I've posted my slides on the Opticks wiki, here. I'm might also be contributing to the "How to open source .MIL" panel discussion. The conference is shaping up to be pretty interesting. I'm especially looking forward to getting some chow at "The Varsity" while I'm down in Atlanta. For those of you interested in "Military Open Source", you should check out the Google Group.

Tuesday, August 4, 2009

Opticks 4.3.1 - It's Coming...

Coding for Opticks 4.3.1, just finished up. The first release candidate should up and available on the Opticks website by the end of the week (August 7th). From there, it's testing and then barring any problems the final build of 4.3.1 will release on August 25th. Ok, now that I've thrown all the important dates out, why should you care?

Because it's got some awesome stuff in it, that's why.

Here are my favorite features/fixes:
  • Mouse Panning - Ok, so I helped work on this feature, so I'm a little biased. But, seriously open an image and press and release the middle mouse button to activate the mouse pan mode (or you can press Ctrl+Shift+E while your mouse is over an image). Give a try, I think you'll end up liking it.
  • JPEG2000 Importer - more data importers is always a good thing right? This currently works on the Windows 32-bit version of Opticks and nothing else and will open .jp2 and .j2k files. Currently, this importer loads the entire image into memory.
  • Tiled Tiff Support for the GeoTiff Importer - again, loading more data is always a good thing in my book. If you had a GeoTiff that didn't load it before, give it a try in a 4.3.1.
  • Control the number of Most Recently Used Files - you can now set the number of most recently used files that are stored by editing the preference in "Tools\Options...". Anything from 0 to 16 is valid, 5 is the default.
  • Faster Start-up - who doesn't like faster start-up? I helped work on this one too, so I'm biased here as well. Opticks now does a better job of caching information about plug-ins, so that the start-up time can be improved.
  • Dynamic Texture Generation now supported on Linux - this feature has always been pretty cool, but you could only use it on Windows. Now, you can use it on Linux.
  • Fixed Import Options Dlg regression - There was a regression when selecting datasets from a file for import in the 4.3.0 release. This has now been fixed in 4.3.1, so that 4.3.1 will behave like 4.2.5. If this problem affected you, it was annoying, but no need to worry about that if you upgrade to 4.3.1.
Check out the list of all 63 issues that were fixed (there's a bunch of other really nice fixes in there) and find your favorite new features/fixes.

You can download a nightly build that has all the 4.3.1 fixes. You can find the nightly Windows installers here. And the Solaris installers here.

Mil-OSS Working Group

I'll be attending the Mil-OSS (Military Open Source) Working Group in Atlanta, GA next week (12th and 13th of August). You can find more details about the conference at http://mil-oss.org/. So, if you're in the Atlanta area and want to talk Opticks, drop me a line. I'm looking forward to the conference, it should be a really good melding of the minds.

Monday, June 29, 2009

Opticks 101: Mastering the Import Dialog

Now that we've covered the basics in Opticks 101: Loading Data, let's delve a little deeper into your loading options by looking at the Import dialog in more detail.

First, a quick reminder on how to bring up the Import dialog. You can click on the "Import Data..." menu item under the File menu. You can click on the "Import Data" icon that appears on the toolbar, see below for a screenshot. Or you can press "Ctrl+O" on your keyboard to bring up the Import dialog.


Looking at the import dialog, you will have the following options which I will be discussing further.


1. Importer Selection
This combo box is used to select the Importer that you like to use to load the data into Opticks. This is always defaulted to "Auto Importer". This is a special importer provided by Opticks that will query all of the other available importers in order to automatically determine the best importer to use. This combo box is provided in the rare circumstance that this auto detection logic is not sufficient and you would like to override it's importer selection.

2. Import Options

Clicking the "Options..." button will bring up the Import Options dialog. I'll be discussing this in more detail in a later Opticks 101 post. See below for an idea of what the Import Options will let you do:
  • Subset or chip the image to exclude rows, columns and bands from being loaded.
  • View and edit the metadata associated with image.
  • Change the interleave and processing location (these will be explained in a later post, but have a large impact on performance).
  • Select the datasets to load if a particular file contains more than one image.
  • Fill-in the load parameters required for the "generic importers" (i.e. those need to load data from any Hdf5 file, and those required to load raw formatted files).
3. Image Preview
Clicking this button will bring up a preview of the image. See below for an example.



This preview will only show the first band of the image. This preview will show a small rectangle. You can drag this rectangle out and that will only select those rows and columns for load and exclude those rows/columns outside the box. This allows you visually select the region of the image you want to load. See below for an screenshot showing a selected chip.



4. Quick access sidebar
This pane can be used to store your favorite directories for quicker access. See below for a screenshot.




You can drag and drop directories into this pane. If you want to remove an entry from this sidebar, select it and press the "delete" key. To persist the changes, you will need to load something from the Import dialog.

Other Tips & Tricks
  • Starting with 4.3.0, you can quickly load datasets or switch directories by typing directly into the "File name" field. You'll even get auto-complete as you type.
  • You can change the default directory that the Import dialog starts it. You just need to edit the "Import path" setting in the "Options..." dialog available under the "Tools" menu. See the screenshot below.


Why is this blog called Optick Illusions?

So, why did I call this blog Optick Illusions? Because I wanted to. Ok, there are some reasons besides that. When members of the Opticks project were trying to come up with the name for what is now called, Opticks Extras, a number of names were generated. One of the names I came up with was Optick Illusions, but we decided instead to go with Opticks Extras. I liked the name so much that I decided to use it name my blog about Opticks. So, now you know and knowing is half the battle.

Friday, June 26, 2009

Opticks 101: Loading Data

I thought I would start a series of posts that introduce some of the basics of how to use Opticks. I'll include some tips and tricks along the way. The first posting is this series deals with how to load remote sensing imagery into Opticks.

Approach 1: Use the Import dialog.
You first bring up the Import dialog by either clicking on the "Import Data..." menu item under the File menu or you can click on the "Import Data" icon that shows up on the Standard toolbar. This will bring up the Import dialog that is shown below.

You can the browse to the directory in question, click on any number of image files and click the "Open" button to load them. All of the selected images are loaded and you are off and running. You can click on "Options.." to change some of the options on how the image is imported (I'll be discussing this more in a future post). If an image cannot be loaded without user input, then the import options dialog will be shown (I'll be discussing this in a future post). Tip Alert: Opticks 4.3.0 and later allow you to select multiple files in this dialog, earlier versions only let you select a single file.

Approach 2: Drag and Drop
This is my personal favorite. It's easy. Grab the files from Windows Explorer and then drag and drop them onto the running application. You can drag and drop as many files as you like and they will immediately load into Opticks. If you want to bring up the Import options (equivalent to clicking "Options..." as shown above), you can hold the right mouse button as you drag and drop the image onto the application and you'll see a right-click menu show up when drop the files onto Opticks as shown in the screenshot below.

The bold item in the menu is what happens when you simply drag and drop the image onto the application using the left mouse button.

Keep your eye out for future posts in this Opticks 101 series.

Thursday, June 4, 2009

Hopes for this blog

I'm starting this blog as a way to share my thoughts about everything Opticks. Opticks is an open-source application (LGPL) to perform remote sensing and image analysis. I'm currently an active committer of the Opticks project, as well as the web guy. I'm hoping to share the ups and downs of the project and hopefully get some people interested in the project along the way.