Categories
Photography

Shy globe of war

I tried to capture an image of Mars last night, but the fates weren’t with me and the globe seemed elusive. I could see it in the telescope but it was a dull yellow pink in color, not the vibrant rust-orange we’ve come to expect from Mars.

We’ve had no rain and St. Louis is one of the ten worst cities for air pollution though thanks to the cooler temperatures we haven’t had the problems we had last year. With the morning rain, I hoped the air would be clearer, and set the telescope up on the back deck.

I spotted Mars peeking out from behind the big tree on the corner and was turning the telescope around when bright flashes of light caught the corner of my eye. As fast as Mars was heading to the West, a storm was heading to the East. A beautiful and usual storm, too, and I was momentarily tempted to take photos of it, until I came to my senses and recalled exactly which event is the less frequent.

I have a good camera, a Nikon 995, but not a beauty like a D100 or even, in my dreams, a D1X. I have a good telescope, a Meade ETX70, but not a powerhouse like the 14″ Schmidt-Cassegrain. Added to the mix, I don’t have an attachment that will allow me to take photos through the special port on the telescope and I have to use the eye piece. This is my way of saying that my photos of Mars are properly orange, helped a bit by the haze and the 800 ISO camera setting, and I guess we’ll need to be content with that.

mars1.jpg

This photo was dead centered in the telescope. Notice that no real detail of the planet shows, including, unfortunately, the polar ice cap. No matter how I tweaked the telescope, and which lens I used, the ice cap wouldn’t come through.

I have found with the moon at least that sometimes taking a more oblique photo of the object can bring out details. I tried that with the next shot, and if nothing else, there’s more of a suggestion of roundness to the photo.

mars3.jpg

Finally, after 2 hours of taking photos and a storm quickly moving in, I managed to get the following. Now, whether the streak was something to do with my telescope, or a reflection of the major canyon system on the Red planet, I don’t know…and I don’t care. If I call it a Martian detail, it is, henceforth, a Martian detail.

Of course, Hubble photos blow away my own little attempts, but that’s not the point. The point is standing on your deck and taking a picture of another planet. All the wonderous photos from Hubble and all the major telescopes and all the detail combined won’t dim my satisfaction in these, my little orange balls of fuzz.

This photo I’ll leave for you all as I drag myself to bed after two nights up late, chasing a globe of war.

mars4.jpg

Categories
Connecting Internet

Fool you fool you

I never thought I would get to the point of welcoming emails offering to enlarge either my penis or breasts, to set me up with a single in my area, to show me girls with big boobies, or my friends from Nigeria with wonderous opportunities.

Email after email, alternating:

Thanks!
Details
My Details
Your Details
Your Application
Wicked Screensaver
That Movie
Thank You!

You access your account and you see that you have 10,50, 125, 600 emails waiting and you think of the notes from friends that might be included, or perhaps an interesting comment or two on your writing, but no, all you get is email after email with:

Thanks!
Details
My Details
Your Details
Your Application
Wicked Screensaver
That Movie
Thank You!

You hunt carefully among the dross but no glimmer of gold; or if it’s there, you can’t see it because your mind numbs from email after email with:

Thanks!
Details
My Details
Your Details
Your Application
Wicked Screensaver
That Movie
Thank You!

You hope, but the messages chant out “Fool you!” “Fool you!” At the end of the day, oddly, you feel more lonely than if you hadn’t received any email at all.

Categories
RDF

Jena Week: final examples

Recovered from the Wayback Machine.

I converted the rest of the Jena1 examples to Jena2 without any major reworking being necessary. At the end of this post is a zipped file of all of the Java source that you can download, use to start your own explorations.

In Example 7, reading in an RDF/XML file in is no different with Jena2 than it was with Jena1. The examples don’t change (other than class structure and creating the memory model using the factory object), except that iterating through statements using StmtIterator exhibits better Java behavior now. StmtIterator now returns an Object when you use next rather than a Statement, and you’ll need to cast it. Or you can use the new nextStatement function call:

// next statement in queue
Statement stmt = iter.nextStatement();

Examples 8 and 9 work against graphs/models persisted to a relational database. I used MySQL in Windows 2000 to test the examples, but you can also use Oracle or other supported database systems.

There have been some significant changes, for the better, with using a relational data model for persistence in Jena2. For instance, you don’t have to specify a storage type or preformat the storage as you did with Jena1; this is all automated in the new classes, by passing in the type of database when you create the model. Another change is that you don’t use the RDBModel.create method, which is deprecated – you can use a new class, ModelMaker, or you can call the static function, createModel.

In the following, the driver is loaded, a connection is established and a model created. Once created, a serialized RDF/XML graph is read.

// load driver class
Class.forName(“com.mysql.jdbc.Driver”).newInstance();

// establish connection – replace with your own conn info
Connection con = DriverManager.getConnection(sConn, sUser, sPass);
IDBConnection dbcon = new DBConnection(con, “MySQL”);

ModelRDB model = ModelRDB.createModel(dbcon, “one”);
model.read(sUri);

Check the documentation for Jena2, and in the DB directory, you’ll find a discussion on migrating Jena1 databases to Jena2, as well as a good description of these changes, and example code.

One interesting aspect of storing Jena within a relational database, especially as it relates to previous postings, is whether Jena2 maintains a reference to the actual source of the external data, and from what I can see, it does not.

Within Jena, you create a graph (termed a model in Jena) and can load many serialized sub-graphs (individual RDF/XML files) into it, or add statements directly using the API. I did so, loading in several FOAF files from people I know. I then looked through the data to see if the source of the sub-graph, the actual file, was maintained and couldn’t find anything.

Once the sub-graphs are merged into one graph, all blank nodes are resolved, and any traces of their separate natures are not maintained. This is proper behavior for RDF according to the RDF specifications, and this merging of sub-graphs is one of strengths of the RDF model.

Now, you can perform a little deductive work and find that a person’s properties have a specific blank node identifier, which is then the object of a “knows” predicate, which is then the property of another blank node identifier of another person with a given name – a bit of a fun challenge with RDQL – but there’s nothing I can see that identifies the source of the actual RDF/XML file, itself.

It could be among the information stored in the BLOB that makes up the graph’s name, but the only way to know this for sure is to examine the contents of BLOB itself, or to find a specific class that allows us to interrogate this data. However, that breaks into new territory not covered in the book examples, and best left for further essays.

Download file