Archive for March, 2007

Installing OpenSSL Support for Ruby on Ubuntu

Thursday, March 15th, 2007

The more I work with Ubuntu, the more I think it’s a very good desktop, but not a good development machine. For instance, you can install Ruby 1.8.4 from the package management system, but not 1.8.5 (or 1.8.6 which is now the latest). So you’re stuck compiling ruby on your own.

Usually that’s not too big of a deal. However, for some reason, the default way of compiling Ruby from source on Ubuntu leaves out the installation of OpenSSL support. I had the development openssl libraries package installed, so that wasn’t it. I didn’t see any errors in the configure process or during compilation.

Turns out, to get OpenSSL to compile and install with Ruby on Ubuntu, you need to follow these steps *after you’ve installed ruby*:

cd ruby_src_dir/ext/openssl
ruby extconf.rb
make
make install

Success!

That seems a bit harder than it should be, huh?

Here’s a Funny Riddle For Ya

Wednesday, March 14th, 2007

My friend Caty Cakes told me this on the way home today. Had a good laugh.

> Three women are sharing a hotel room, which is $30 a night. Each woman pays $10, and heads up to the room. Later that night, the manager of the hotel realizes he overcharged them by five dollars. He pulls $5 bill out from the drawer and hands it to the bellhop, instructing him to run it up to the ladies. The bellhop gives each woman $1 and pockets $2 for himself. Each woman has now paid $9. Nine times three is 27. 27 + 2 is 29. Where did the extra dollar go?

Enjoy!

links for 2007-03-14

Tuesday, March 13th, 2007

Twitter is Dumb

Monday, March 12th, 2007

> Of all the masturbatory ego-fluffers on the Web, nothing chafes me worse than Twitter.

Brilliant. In an age where style easily trumps content, Twitter has neither.

I’m Squinting… But No Agents So Far

Thursday, March 8th, 2007

Jim Hendler asks so where are the agents? More specifically, I’d like to ask What do we need before agents can be deployed?

Let me define what I believe an agent is by looking at what it would do for me. I think a software agent is a program that can be given a set of rules and able to seek out data that satisfies those rules. Agents are different from other sets of software that can answer queries in that Agents would be able to reason about the world and would be capable of acting towards its goal(s) over a long period of time. These agents would act without direct human control, which is especially import if the task would take some time to complete.

Given that definition of an Agent, I revisit the question: What do we need before agents can be deployed?

Because Agents are task focused, we need a way to define the task in such a way that the Agent understands it. I can imagine simple use cases like “Schedule my dentist appointment every six months. Of course, make sure my calendar and the doctor’s calendar match up. If I happen to schedule a very important event for the same day, kindly move my dentist appointment to a later date.” Many calendar and event related use cases come to mind. Calendaring seems to be a perfect use case for Agents, because the data can be relatively easy to encode and because all the events are in the future, it gives the Agents some time to finish their tasks.

As you can tell, my natural language description of my simple task was easy and quick to write down, but left out many specifics that a computer might demand. Two average adults would be able to understand the gist of the Task. However, the adults would probably need to ask one or more questions for clarification.

And this brings me to the second thing an Agent needs to do: Reason and clarify about the world. Let’s assume for a moment that I was able to instruct my agent about my need to maintain healthy teeth on a regular schedule. The real difficult part becomes how to have my Agent converse with the Dentist’s Scheduling Agent. (Not to mention, my Agent has to locate the Dentist’s Agent in the first place.) Once the two Agents are communicating (waiving arms in the air here), how do they begin to speak the same language? Did they agree on some standard Scheduling Ontology before hand? I hope so, because Ontology languages such as OWL would let the two Agents formally agree upon some semantics for their conversion.

There aren’t any Agents out there helping normal people with real life tasks because Real Life ™ is too vague, complex, dirty, abstract, and otherwise beautiful to be coded into a language that a computer program can understand. We’re just not able to give abstract and fuzzy task descriptions to a computer program yet.

I don’t need an agent that can continually run Google queries and let me know if something new was found. That’s not an agent, that’s a cron job, and that’s a simple task. I need an Agent that can begin to understand my world, my tastes, _my rules_, and handle the simple things like negotiating my calendar so I don’t have to. Let the Agent handle the 80% and let me handle the 20%. That’s more fun, challenging, and ultimately rewarding.

So where are the Agents? It’s better to ask, What’s preventing the Agents from appearing?

Is my definition of an Agent way off? Am I asking too much? What’s a good middle ground?

links for 2007-03-09

Thursday, March 8th, 2007

links for 2007-03-08

Wednesday, March 7th, 2007

baetle - Ontology for Software Bugs

Wednesday, March 7th, 2007

baetle is an ontology for software bugs and bug tracking systems. Henry Story has opened the baetle project on Google Code.

baetle is an effort to standardize a view into the software bug tracking world. There are a kazillion bug tracking systems out there. Heck, see for yourself.

So what’s a use case for being able to have a consistent view into bugs and issues across all thoses systems? For one, you could query one system just like another system. Another use case might be if your enterprise runs and maintains multiple different bug tracking systems, and you need to query across all of them.

Hmm, sounds like a Data Warehouse, doesn’t it? Multiple systems combined and filtered into one cohesive view for reporting and querying. Ontologies allowing for a way to combine and filter all those data sources. SPARQL for all that querying.

So is Ontologies and SPARQL the new ETL?

links for 2007-03-07

Tuesday, March 6th, 2007

links for 2007-03-06

Monday, March 5th, 2007