Becoming edumucated

Regular readers of this site may note (all none of you), that there have been a few Tinderbox notes posted recently, and not a lot about research or robotics. I have been in the process of trying to get a proposal (PhD dissertation) put together, and that is taking up a great deal of time. Besides that I don't really want to steal my own thunder too much.

It turns out that what I am looking at is meshing in rather nicely with quite a few topics that are "hot" on the internets. Some topics of interest:

How does it all fit together, you may ask? I gotta keep some secrets...

Filed under Robotics , Ontology , Research Notes .

So I ran across what I think is a bug in Tinderbox. I have a note that has a bunch of pictures and links. I set the links by selecting the appropriate text (usually inside [ ... ] ), then setting it to the web location I want. Normally no problem. In this particular note, the location seem to be getting messed up somehow. For example, the box around the linked text 13MB WMV in the note is correct. In the link browser, it is 3MB WMV] (not correct).

It gets worse, though. The intended link for 200KB WMV (toward the bottom) somehow now includes the image (and caused XHTML validation errors when I export).

Filed under Tinderbox .

This is very similar to the last Tinderbox + Automator experiment. Instead of purely Automator, though, I thought I'd try to work with some of the Finder tools.

First stab: Let's see if we do a Folder Action on the export directory. Can it run an Automator workflow? It turns out I can. I like running the Automator scripts -- they give good feedback in the status bar as to which portion of the script is executing.

So if all works well, we have a folder that will automatically upload its contents when I export HTML from Tinderbox.

Filed under Tinderbox .

I just made my life a little easier with Automator today.

My usual use of Tinderbox for the website involves the following:

1) Work in Tinderbox.

2) Export to HTML for upload.

3) Open Terminal if it is not open

4) rsync from my local machine to the website.

Not terribly hard, but a bit tedious. Automator just made this a little easier. I made a workflow that takes a directory and rsyncs it to the right spot. Check out the sample. You'll probably want to stick it in your ~/Library/Scripts directory

Pretty simple workflow -- it asks for the export directory first. In my case I select ~/Sites/robothor/export and hit OK. Then it POSIX encodes the path and quotes the result in case there is a space in the path somewhere. The third step is executing a small shell script to upload to the server. If you want to modify the script, you'll need to change this. I am running sshKeychain, which handles giving the correct password to rsync. The final step is just a simple Growl notification letting me know it is done. This is very simplistic, but it seems to work for me so far.

At some point it would be nice to see either Automator actions or Applescript support to Tinderbox. Imagine running a workflow that tells Tinderbox to export as HTML, then automatically uploading this to the server. Unfortunately TB won't accept Automator workflows as scripts, so I can't call the script from within TB. Oh well...

Filed under Tinderbox .

So I'm in a little bit of a quandary at the moment. My current laptop, a gigabit ethernet G4 Powerbook, is starting to have problems. The top case started to crack around one of the hinges and I believe damaged one of the cables for the display. Now it still works -- I did a jerry-rigged fix to repair the break, but after I close and open the lid I have to finesse the display to get it to work.

I know what I want to do:

1) Give this laptop to Hannah. We can set it up in a fixed location at home and it should be OK. We wanted to do some music work with Hannah singing, and Garage Band is ideal for starting out.

2) I'd get a new laptop. I'm leaning toward a Powerbook 12". Two doubts about this laptop at the moment. One is the eternal fear that an updated version will be released mere moments after it is too late to change an order. Not much I can do about this... The second is the size: will the 12" screen be too small for me? Workaround for this is a KVM and use the nice big screen at work when I am here.

The biggest problem right now is budget. In theory I have some loans for the next year that will be kicking in soon and I do need a laptop. I often find that changing my location is good for my thoughts and focus and I can't take advantage of a portable with a broken screen. I can also go the "Student Developer Discount", which will give a nice 20% discount (see here for details). This makes it a little more palatable, but still not cheap.

Well, I know which of these inner voices will win, but hopefully I can hold out a little longer and wait until we're in a slightly better financial spot. I don't suppose anyone wants to throw an equipment grant my way... :-)

Filed under Unfiled .

A case of "why didn't I do this sooner" when I saw this post on the Tinderbox wiki about auto-generating a Google Sitemap. I modified the provided templates a bit because I wanted to fill in some of the optional attributes. As suggested, I use an agent to collect exported notes with the following templates:

<?xml version='1.0' encoding='UTF-8'?>

<urlset xmlns="http://www.google.com/schemas/sitemap/0.84"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation= "http://www.google.com/schemas/sitemap/0.84

http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">

^children(sitemap-item.xml)^

</urlset>

and

<url>

<loc>^urlEncode(^URL^)^</loc>

<lastmod>^Get(Modified, =)^</lastmod>

<priority>^Get(GoogleSitemapPriority)^</priority>

<changefreq>^Get(GoogleSitemapChangeFreq)^</changefreq>

</url>

The change I made to this is to suck out the priority and change frequency from attributes. One nifty aspect of Tinderbox is that I can apply some defaults (say GoogleSitemapPriority of .5) and then override this so certain pages have a higher priority. Works like a charm and now I don't have to worry about mucking around with one of those perl sitemap builders...

Kudos to the Tinderbox community for continually finding neat things to do with this program.

Filed under Tinderbox , Internet .

So the school library has started purchasing resources through an online library. While the USF library is otherwise excellent, I take issue with this decision for a number of reasons. Let me first state though, that I really don't have a problem with the concept of an "ebook", mostly just with this particular instantiation. Problems that should be fixed:

  • Each page of the book is a separate document. In the browser window, the embedded Adobe Reader will show one page at a time. The main problem with this is flipping pages -- with network lag and often-slow loads, by the time the next page has loaded, I've lost the thread of the sentence. If I want to go back page to re-read a passage, wait... wait... wait... what was I going to read again?
  • No apparent way to bookmark a passage -- or even a page. While not as draconian as it could be, even going so far as to allow the printing of a single page at a time, there is no online way to bookmark a page or otherwise save a location. This is especially troublesome because of the
  • Short timeout. Don't get distracted and let the system timeout -- you'll need to search for the book again, reopen it, and go to the page you were on. What's that? Didn't note the page number before the book auto-closed? Hope you're patient while you search.
  • Oh, and I can't get it to work right in Safari...
Filed under Unfiled .

I just heard from Lefteris that he just got back from presenting his paper (well, our paper technically, but he did all the writing) at the 2005 Mediterranean Conference on Control and Automation. I've updated the link to reflect the final version in the proceedings.

I think I need to start submitting to these fun overseas conferences. The AAAI Fall Symposium in Alexandria, VA will be fun and it will be good to see my Grandma, but there is something about going to Cyprus for a work conference...

Filed under Paper , Robotics .

I spent a little time today trying to get Spotlight to import Tinderbox files correctly. I was initially having problems and knew the latest Tinderbox (2.5) was supposed to be Spotlightable. So what do we know about Tinderbox files?

$ mdls Tinderbox\ release\ notes

Tinderbox release notes -------------

kMDItemAttributeChangeDate = 2005-06-30 11:20:26 -0400

kMDItemContentCreationDate = 2002-03-08 14:21:13 -0500

kMDItemContentModificationDate = 2005-06-27 13:49:50 -0400

kMDItemContentType = "dyn.ah62d4rv4gk8yg3pwqy"

kMDItemContentTypeTree = ("public.data", "public.item")

kMDItemDisplayName = "Tinderbox release notes"

kMDItemFSContentChangeDate = 2005-06-27 13:49:50 -0400

kMDItemFSCreationDate = 2002-03-08 14:21:13 -0500

kMDItemFSCreatorCode = 1130721893

kMDItemFSFinderFlags = 16

kMDItemFSInvisible = 0

kMDItemFSLabel = 0

kMDItemFSName = "Tinderbox release notes"

kMDItemFSNodeCount = 0

kMDItemFSOwnerGroupID = 80

kMDItemFSOwnerUserID = 501

kMDItemFSSize = 646376

kMDItemFSTypeCode = 1130721893

kMDItemID = 2251793

kMDItemKind = "Tinderbox document"

kMDItemLastUsedDate = 2005-06-30 11:19:26 -0400

kMDItemUsedDates = (2005-06-30 11:19:26 -0400, 2005-06-29 20:00:00 -0400)

The important bits for our purpose are the kMDItemContentType and kMDItemContentTypeTree. These are set by the Spotlight importer and are what Spotlight "knows" about the filetype. Here the Tinderbox Release Notes is treated as just plain data and not indexed.

$ mdimport -d1 Tinderbox\ release\ notes

2005-07-01 16:46:21.470 mdimport[13845] Import '/Applications/Productivity/Tinderbox 2.5/Tinderbox release notes' type 'dyn.ah62d4rv4gk8yg3pwqy' no mdimporter

Now, I have a choice -- I can either let Spotlight not index the file, or I can finesse the RichText.mdimporter to handle this type. We'll ignore this for now.

So let's look at another Tinderbox. The original box for this web site was called RoboTHOR. I'd never added a file extension, since I hadn't needed it previously, but obviously raw Tinderboxes don't work ideally. What if I renamed it to RoboTHOR.xml ?

$ mdls RoboTHOR.xml

RoboTHOR.xml -------------

kMDItemAttributeChangeDate = 2005-07-01 16:28:00 -0400

kMDItemContentCreationDate = 2005-04-19 18:48:33 -0400

kMDItemContentModificationDate = 2005-07-01 14:39:31 -0400

kMDItemContentType = "public.xml"

kMDItemContentTypeTree = ("public.xml", "public.text", "public.data", "public.item", "public.content")

kMDItemDisplayName = "RoboTHOR"

...

Certainly better. Now mdimport's output will be a little more pleasant:

$ mdimport -d1 RoboTHOR.xml

2005-07-01 16:48:24.961 mdimport[13852] Import '/Users/mtlong/Sites/robothor/RoboTHOR.xml' type 'public.xml' using 'file://localhost/System/Library/Spotlight/ RichText.mdimporter/'

So now the final test. What about .tbx, the normal extension for Tinderbox documents?

$ mdls RoboTHOR.tbx

RoboTHOR.tbx -------------

kMDItemAttributeChangeDate = 2005-07-01 16:50:00 -0400

kMDItemContentCreationDate = 2005-04-19 18:48:33 -0400

kMDItemContentModificationDate = 2005-07-01 16:33:18 -0400

kMDItemContentType = "com.testgate.tinderbox"

kMDItemContentTypeTree = (

"com.testgate.tinderbox",

"public.xml",

"public.text",

"public.data",

"public.item",

"public.content"

)

...

But now we have stopped getting love from mdimport:

$ mdimport -d1 RoboTHOR.tbx

2005-07-01 16:50:48.586 mdimport[13872] Import '/Users/mtlong/Sites/robothor/RoboTHOR.tbx' type 'com.testgate.tinderbox' no mdimporter

Spotlight will no longer import this file, even though it still knows that it is XML. But there is a solution. We can modify the /System/Library/Spotlight/ RichText.mdimporter/Contents/Info.plist and alter the LSItemContentTypes array as follows:

<key>LSItemContentTypes</key>

<array>

<string>public.rtf</string>

<string>public.html</string>

<string>public.xml</string>

<string>public.plain-text</string>

<string>com.apple.traditional-mac-plain-text</string>

<string>com.apple.rtfd</string>

<string>com.apple.webarchive</string>

<string>com.testgate.tinderbox</string>

<string>dyn.ah62d4rv4gk8yg3pwqy</string>

</array>

We simply added com.testgate.tinderbox and dyn.ah62d4rv4gk8yg3pwqy. Now mdimport

$ mdimport -d2 RoboTHOR.tbx

2005-07-01 16:09:53.020 mdimport[13591] Import '/Users/mtlong/Sites/robothor/RoboTHOR.tbx' type 'com.testgate.tinderbox' using 'file://localhost/System/Library/Spotlight/ RichText.mdimporter/'

$ mdimport -d1 Tinderbox\ release\ notes

2005-07-01 17:35:27.905 mdimport[13901] Import '/Applications/Productivity/Tinderbox 2.5/Tinderbox release notes' type 'dyn.ah62d4rv4gk8yg3pwqy' using 'file://localhost/System/Library/Spotlight/ RichText.mdimporter/'

Now were sitting fat dumb and happy.

Filed under Tinderbox .

As per request, I am linking to the videos that I used during the presentation. They are Windows Media, for the most part; I typically use Quicktime, but these had already been converted. YMMV

techknowledge:

[13MB WMV]

Medical Triage Sensor:

[52MB AVI]

Night Vision Sensor:

[200KB WMV, 53KB WMV, 40KB WMV]

More information, especially pictures and context, on the CRASAR Hurricane Charley page.

Other exciting clips include Aaron's work on Affective Recruitment. I did not have time to discuss it in the presentation, but it was a good exercise stressing the distributed architecture and is an interesting view:

[54MB WMV]

And finally, I touched on our use of VTOLs. We have a news clip that shows a little of our work in that area:

[4.3MB WMV]

A note on the videos: Windows Media Player will try to stream these files and most likely complain. If this happens, just download the file and it should play correctly.

Filed under Professional , Robotics .

I gave a presentation this morning to the Florida West Coast section. As you can see, I was primarily talking about the search and rescue group at USF, CRASAR. As per request, I am posting some copies of slides in [PDF] and [Flash]. I did this presentation in Keynote, which most people don't use, so hopefully these versions will work.

I thought the presentation went reasonably well -- no one actually fell asleep on me and I had a good question and answer session at the end. I have a few things I would like to change the next time I do this talk, which will likely be in a few months at the IEEE Sections Congress here in Tampa. I think a better approach for that venue will be a "Day in the Life of a Rescue Robot", and using this I can build a better framework for the presentation. Should be fun -- especially since the audience there will be more on the order of a thousand...

Oh, the videos that I used in the presentation were pretty massive. If anyone is interested in the media clips I used, please email me and I will see if I can dig up smaller / more compressed versions.

Filed under Professional , Robotics .

After Andrew's wedding, Hannah and I took a day or so of personal time before seeing all the family. We drove from Laramie to the Springs, taking the scenic route through the mountains. We stopped a few times for some fun. I wonder how long "Melty the Snowman" lasted?

Then we spent the night in Manitou Springs, and wandered around the town the following day. Manitou has the highest Bed and Breakfast per capita ratio of any town I've ever been in, but besides that is filled with little parks (most around the springs for which it gets its name).

Hannah hadn't seen much of this part of Colorado, so we did some touristy things like the Cliff Dwellings (we took the Cog Railway to the top of Pike's Peak the last time we were there together).

Filed under Unfiled .

Andrew's wedding was first:

Very lovely ceremony. It was outdoors at an old, historic building in Laramie. We lucked out and ended up staying a mere block away from the wedding site. There was lots of singing (by friends of Andrew and Brennae), and during the reception, Hannah sang "Look to the Rainbow" a capella to the bride and groom. She said they were misting up:

And there was lots of dancing. Unfortunately for me, it was (almost) all folk dancing that they had been doing for years. So they would put a song on and everyone would form some complex shape and do some complicated footwork. I tried once or twice to follow along before I sat down. Hannah, being much more coordinated than I had no problem learning the steps.

Congratulations!

Filed under Unfiled .

Man what a week... Hannah and I just got back from ten days in Colorado and Wyoming for Andrew and Brennae's wedding (Laramie), followed by my sister Karen's graduation from the US Air Force Academy and marriage (Colorado Springs).

I'll post some pictures, but all events were wonderful and I couldn't be happier for Andrew, Brennae, Karen (x2) and Frank.

Filed under Unfiled .

I'm attempting to write an extended abstract for Roles '05. Every so often I have to remind myself of a very useful tool that help me keep focused on the main points of the paper. These are from George Heilmeyer when he was the director of ARPA and are good to answer for any research project:

• What is the problem, why is it hard?

• How is it solved today?

• What is the new technical idea; why can we succeed now?

• What is the impact if successful?

• How will the program be organized?

• How will intermediate results be generated.

• How will you measure progress?

• What will it cost?

Filed under Paper , Heilmeyer's Catechism .

Now this is obviously something that I need to work on, although the chances of fixing my handwriting are pretty slim. Apparently I write with my fingers instead of my whole arm. Of course, if you follow any martial art, this doesn't go far enough. I'd imagine I should really figure out how to write from my hara. Actually this might not be a bad idea, especially for teaching in front of a class and writing on the board.

Filed under Unfiled .