July 3, 2010

How not to resolve online ordering problems

This afternoon, I received a call from an online vendor whose web site we recently used, attempting to make a purchase. He said that our recent order used a flag indicating that a 10% discount code was enabled, but we had no such discount authorized. I expected him to suggest an adjustment and/or ask exactly what we did, so that he could try to reproduce the problem.

       Continue reading "How not to resolve online ordering problems"

Posted by rdm at 5:01 PM | Comments (0) | TrackBack

April 27, 2010

"Automatic SketchUp: Creating 3-D Models in Ruby"

Although I've played with SketchUp Ruby from time to time over the past few years, my first real introduction occurred in the Fall of 2009. Igloo Studios, a well-known name in SketchUp modeling and training, brought me in to maintain some of their tools and create some others. Clearly, I had some homework to do. ...
       Continue reading ""Automatic SketchUp: Creating 3-D Models in Ruby""

Posted by rdm at 10:01 PM | Comments (1) | TrackBack

February 10, 2010

Configuration File Trickery

I tend to use a fairly minimal subset of YAML for configuration files. YAML supports my favorite data structures (lists and hashes) and is easy to read and edit (particularly if one ignores its syntax for declaring data types and such). However, in a recent project, I found myself using CSV (comma-separated value) files, instead. ...
       Continue reading "Configuration File Trickery"

Posted by rdm at 2:37 PM | Comments (0) | TrackBack

November 9, 2009

SketchUp MashUp HeadsUp

My recent post, Using Cucumber with SketchUp, discussed one possible way to combine Google SketchUp with other packages. However, there are lots of other possible mash-ups. This entry discusses some of these; other suggestions are welcome... ...
       Continue reading "SketchUp MashUp HeadsUp"

Posted by rdm at 4:40 PM | Comments (1) | TrackBack

November 1, 2009

Using Cucumber with SketchUp

Cucumber is a Ruby-based tool (technically, a domain-specific language) that helps programmers and their clients define and agree on tests of program behavior. These tests can be used to guide development, enforce acceptance criteria, and detect regressions.

Although it is popular in the larger Ruby community, Cucumber has not been used (as far as I can tell) to develop Ruby-based extensions for Google SketchUp. This seems like an unfortunate situation; perhaps it's time to see what can be done about it... ...
       Continue reading "Using Cucumber with SketchUp"

Posted by rdm at 9:27 PM | Comments (0) | TrackBack

October 20, 2009

Visualizing RDF and OWL data models

The data models for Resource Description Framework (RDF) and Web Ontology Language (OWL) can be a bit difficult to understand, even at the simplest level. Here are some visualizations (and explanations) I've found useful: I'd be delighted to hear about other ways of thinking about this. All comments and/or corrections are welcome... ...
       Continue reading "Visualizing RDF and OWL data models"

Posted by rdm at 1:52 PM | Comments (0) | TrackBack

October 19, 2009

Semantic Web Installfest - meeting notes

I recently organized an Installfest for the San Francisco Semantic Web Meetup. It was held at PariSoMa, a co-working venue in SoMa (South of Market Street in San Francisco). Given that this was my first attempt at pulling together this sort of "hands on" meeting for the group, I think it went pretty well.

I had several reasons for organizing the meeting, but the primary one was to bring together a group of SemWeb enthusiasts who want to learn about the technology, try things out, discuss alternatives, etc. I love hearing about successful Semantic Web projects, but I also want to "get my hands dirty" using the tools. ...
       Continue reading "Semantic Web Installfest - meeting notes"

Posted by rdm at 5:01 PM | Comments (0) | TrackBack

October 13, 2009

Improving the Conciseness of Turtle and SPARQL

RDF/XML, the "official" serialization format for RDF (Resource Description Framework) was never designed for use by humans. Turtle (Terse RDF Triple Language) is a great improvement, but it's still a bit verbose for my tastes. SPARQL, being largely modeled after Turtle, shares many of its limitations. ...
       Continue reading "Improving the Conciseness of Turtle and SPARQL"

Posted by rdm at 12:54 AM | Comments (0) | TrackBack

October 5, 2009

No Time for Docs at RubyConf 2009

I don't envy conference program committee members. They have a difficult and generally thankless job, made worse by occasional rants such as this one. However, I really have to say something about RubyConf 2009. ...
       Continue reading "No Time for Docs at RubyConf 2009"

Posted by rdm at 12:05 PM | Comments (4) | TrackBack

September 23, 2009

Modeling for Network Administration

Large-scale computer networks can involve hundreds of thousands of components (eg, computers, programs, routers) and an even larger number of connections. These systems are also highly interdependent: the loss of a single component or connection can have far-reaching effects.

       Continue reading "Modeling for Network Administration"

Posted by rdm at 2:59 PM | Comments (2) | TrackBack

September 8, 2009

Safety Nets for OWLs

I've been programming for several decades, but I'm relatively new to ontology development in general and OWL in particular. So, I'm certainly not an expert on the range of work in this area. However, I think I see some areas where programming best practices and tools could provide useful "safety nets" for OWL-based ontology developers. ...
       Continue reading "Safety Nets for OWLs"

Posted by rdm at 4:41 PM | Comments (2) | TrackBack

July 31, 2009

Apple Bug Report 7109559: UI problems in iTunes

Not everyone knows that Apple has a way to submit bug reports. Or, more to the point, that they actually read them. However, it turns out that Apple engineers interact continuously with a bug tracking system called RADAR and that there is a reliable way for "civilians" to submit reports to it. I've submitted quite a few reports (about one report a month, for several years) and the responses were always polite and generally clueful. ...
       Continue reading "Apple Bug Report 7109559: UI problems in iTunes"

Posted by rdm at 1:54 PM | Comments (0) | TrackBack

July 28, 2009

How to Chase Away Help

I'm currently looking at a wiki page for an (unnamed) Open Source project. The page has a number of minor errors; I'd be happy to help the developer(s) clean it up. Except... ...
       Continue reading "How to Chase Away Help"

Posted by rdm at 1:59 PM | Comments (0) | TrackBack

July 26, 2009

A Triple Smörgåsbord

I recently had the pleasure of attending OSCON 2009, O'Reilly's broad-spectrum Open Source conference. It was quite an event: really, a triple smörgåsbord. ...
       Continue reading "A Triple Smörgåsbord"

Posted by rdm at 10:56 PM | Comments (0) | TrackBack

July 18, 2009

Mechanizing the Path to Ruby 1.9

In What do we need to get on Ruby 1.9?, Yehuda Katz says he thinks it's time to get serious about migrating the Ruby community to Ruby 1.9. He then asks for specific information on show-stoppers: gems, plugins, tools, and such that don't yet work on Ruby 1.9. His request has already resulted in a lot of opinions and anecdotal evidence, but I think there is a fairly obvious way to get better information. ...
       Continue reading "Mechanizing the Path to Ruby 1.9"

Posted by rdm at 2:59 PM | Comments (0) | TrackBack

April 3, 2009

Continuous Integration Support for Wikis

Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible.

-- Continuous Integration, Martin Fowler

In a way, wikis have been using Continuous Integration (CI) since their inception: new content, configuration settings, and even plugins are always being added to wikis. Unfortunately, no wikis that I know of have any formal support for CI. In particular, I don't see any test suites that help wiki administrators and users detect and correct broken content, configuration problems, and/or dysfunctional plugin combinations. Perhaps it's time to resolve this deficiency. ...
       Continue reading "Continuous Integration Support for Wikis"

Posted by rdm at 11:18 PM | Comments (0) | TrackBack

March 19, 2009

Video Resources for Rubyists

There are a slew of video resources available on the web, including the fabulous offerings at sites such as www.ted.com, www.poptech.org/popcasts, gotocon.com, and mitworld.mit.edu/browse. I would strongly recommend taking a look at these, if you have a tuit or two...

However, these sites aren't focused on the interests of Ruby; so, here are some that are. Increasing the number of recorded talks is a win-win -- the community gets a record of the talks; the conference and presenter get publicity. ...
       Continue reading "Video Resources for Rubyists"

Posted by rdm at 11:47 AM | Comments (1) | TrackBack

December 12, 2008

TWiki and Foswiki: the road ahead

TWiki has been around for about a decade. It is an "Enterprise Wiki", offering a number of features that work well in corporate environments (eg, access controls, forms, scripting, skins, webs). It is a solid and mature piece of technology, with a substantial user base.

Recently, a rift in the TWiki developer community caused the project to fork. Peter Thoeny retains the TWiki trademark and web sites, but most of the developers have joined Foswiki. (For details, see the Foswiki and TWiki versions of the story.) This essay attempts to predict where things will go from here and suggest how developers and administrators can cope with the inevitable dislocations.

       Continue reading "TWiki and Foswiki: the road ahead"

Posted by rdm at 5:44 PM | Comments (1) | TrackBack

November 23, 2008

Merb: less magic, more engineering

As discussed in "How I arrived at Ruby", I've become a big fan of Ruby. As soon as I realized that I really, really wanted to work in Ruby (a couple of years ago, at this writing), I started looking for ways to use the language professionally. (Hobby programming is lots of fun, but it doesn't pay the bills. :-)

I found that Ruby is being used in a number of contexts (eg, administrative scripts, Cocoa and Google SketchUp programming). However, Ruby on Rails was clearly the high-order bit (or maybe byte :-), in terms of industry buzz, contract and job opportunities, etc. So, I got some books and dived in. ...
       Continue reading "Merb: less magic, more engineering"

Posted by rdm at 11:02 AM | Comments (2) | TrackBack

November 3, 2008

How I arrived at Ruby

I've used interpreted languages for several decades, starting with the Lisp and command language interpreters I found on Stanford's WYLBUR (really, ORVYL) system in the early 70's. Most of my early programming, however, was done in compiled languages (eg, Assembler, C, COBOL, Fortran). I didn't get into serious scripting until I started using Unix. ...
       Continue reading "How I arrived at Ruby"

Posted by rdm at 5:55 PM | Comments (0) | TrackBack

November 2, 2008

Using Ruby, Perl, Python, and PHP in concert...

About a year ago, I was tasked with "tidying up" the Protégé-Frames User's Guide. This consisted of a few hundred files of rather ugly machine-generated HTML. To reduce the effort of cleaning up and maintaining the files, as well as the chance of editing errors, I wanted to mechanize the process as much as possible. That is, eliminate the repetitive and voluminous header and footer blocks, auto-generate indexes and navigational links, etc.

After writing some support code, I was able to re-cast the HTML into RHTML (HTML with embedded Ruby). A two-pass generation process allowed me to collect page names and navigational information, then generate both index pages and nicely cross-linked content pages. However, that wasn't the end of the story...

       Continue reading "Using Ruby, Perl, Python, and PHP in concert..."

Posted by rdm at 11:20 PM | Comments (0) | TrackBack

Multiple sets of Terminal windows in Mac OS X (Leopard)

Back in May 2006, I wrote a blog entry about creating multiple sets of Terminal windows in Mac OS X. This weekend, I finally got around to upgrading my desktop machine to Mac OS X 10.5 (Leopard). Leopard's version of Terminal is a great improvement over the old one, but it still is only a single application. So, if I hide it, all of its windows go away.

Although my old blog entry explains how to create multiple Terminal instances, the part that dealt with editing the executable binary no longer worked. Because the solution involved Real Code (TM), I decided to create a new blog entry... ...
       Continue reading "Multiple sets of Terminal windows in Mac OS X (Leopard)"

Posted by rdm at 9:44 PM | Comments (0) | TrackBack

May 27, 2006

Multiple sets of Terminal windows in Mac OS X

Having three screens up 24/7, it's easy to accumulate windows. I typically have several dozen available on my Mac, spread across a few dozen apps. In general, this is quite convenient. When I'm not using an app, I hide it (via cmd-H) and all of its windows disappear. If I only want to get a few windows out of the way, I WindowShade them or send them to the Dock.

Unfortunately, these approaches don't work very well for applications that have lots of windows. Terminal programs, for example, may have dozens of windows, each presenting a different shell and/or application context. Mac OS X doesn't let me hide some of an app's windows, so that's out. The Dock and WindowShade are awkward ways to manage dozens of windows; simply dismissing and retrieving a set of several windows becomes quite a hassle. ...
       Continue reading "Multiple sets of Terminal windows in Mac OS X"

Posted by rdm at 7:09 PM | Comments (1) | TrackBack

April 17, 2006

Mechanical augmentation of Wikipedia

I'm a big fan of Wikipedia. I use it both as a personal reference tool and as an easy way to add depth to web-based documents. However, I think that its utility might be improved by a bit more mechanical augmentation. This augmentation could take (at least :-) three forms: generated pages, automatic content, and requested content. ...
       Continue reading "Mechanical augmentation of Wikipedia"

Posted by rdm at 3:13 PM | Comments (0) | TrackBack

April 13, 2006

Ontiki: first steps

Note: See the project wiki for current goals, status, etc.

Previous weblog entries (Ontiki: an ontology-aware wiki, Mechanically-augmented wikis) have discussed the possibility of creating structured wikis, using mechanical (i.e., software) augmentation. This entry is a very early status report, discussing my initial experiments and early progress in this effort. ...
       Continue reading "Ontiki: first steps"

Posted by rdm at 9:35 PM | Comments (0) | TrackBack

March 12, 2006

Our Spotlight book is out!

Spotlight, introduced in Mac OS X 10.4 (Tiger), is Apple's new desktop search feature. Although it isn't perfect, it's quite a useful addition to other forms of file-system navigation. So, when SpiderWorks asked me to write a book on the topic, I jumped at the chance. Now, after a year of off-and-on effort, the book is available for purchase. ...
       Continue reading "Our Spotlight book is out!"

Posted by rdm at 5:21 PM | Comments (0) | TrackBack

March 6, 2006

Mechanically-augmented wikis

I've been thinking about ways to augment wikis with mechanically-harvested information, navigation aids, etc. The result would have the convenience and flexibility of wikis, but wouldn't depend on humans to provide all of the content, links, etc. As an example, let's consider the problem of generating detailed documentation for large collections of software.

Technorati Tags: , , , , ,

       Continue reading "Mechanically-augmented wikis"

Posted by rdm at 9:31 PM | Comments (5) | TrackBack

March 5, 2006

Using DBMS tables for inter-application communication

I have been thinking about ways to integrate some large applications and frameworks into an even larger system. In line with the Perl virtue of Laziness, I'd like to write as little code as possible, particularly if it means making changes to the apps themselves. At the same time, I'd like to avoid supporting a plethora of interfaces and protocols. Fortunately, I may have hit upon a useful approach.

Technorati Tags: , , , , , , , ,

       Continue reading "Using DBMS tables for inter-application communication"

Posted by rdm at 1:35 PM | Comments (1) | TrackBack

March 4, 2006

Polyglot Programming

Programmers who are facile with multiple languages frequently combine them, to great effect, in single projects. In Using PHP as a Macro Pre-processor, I only used two languages (HTML and PHP), but others (e.g., CSS, JavaScript) could easily have been added. ...
       Continue reading "Polyglot Programming"

Posted by rdm at 11:00 PM | Comments (0) | TrackBack

February 2, 2006

Graph-related notions about LinkedIn

LinkedIn bills itself as "an online network of more than 4.8 million experienced professionals from around the world, representing 130 industries". My spouse Vicki Brown has a weblog entry that gives a general introduction, but it says little about the graph-related aspects of the network. So, here are some initial observations, based on a day or two of my own explorations... ...
       Continue reading "Graph-related notions about LinkedIn"

Posted by rdm at 10:18 AM | Comments (0) | TrackBack

January 28, 2006

Checking out Benford's Law...

I spend far too much time following links on Boing Boing, Digg, and Slashdot, but they're really rather addictive (and make a nice break from my other activities :-). Anyway, after reading a fascinating article on Benford's Law (courtesy of Digg), I decided to check its assertions for myself... ...
       Continue reading "Checking out Benford's Law..."

Posted by rdm at 10:19 PM | Comments (0) | TrackBack

January 1, 2006

Using PHP as a Macro Pre-processor

I've been using macro pre-processors (e.g., cpp, m4) since I switched to Unix a couple of decades ago. I've also used assorted ad hoc processors. The shell makes a handy a runtime pre-processor for awk and sed scripts. "Little language" processors can be written using Perl, YAML, etc. In short, macro processing is not a new concept for me.

Nor, for that matter, is its application to document markup languages (e.g., Troff, HTML). In fact, I've written several special-purpose processors to generate and/or massage documents. Consequently, I'm a bit embarrassed to realize that I've been missing out on a nifty way to use macros in web pages. ...
       Continue reading "Using PHP as a Macro Pre-processor"

Posted by rdm at 10:44 PM | Comments (0) | TrackBack

December 28, 2005

Peirce's semeiotic as a foundation for ontology

John Sowa, an expert on knowledge representation systems, developed Conceptual Graphs (CGs) as a notation for First-Order Logic (a form of Predicate Calculus). CGs are "a system of logic based on the existential graphs of Charles Sanders Peirce and the semantic networks of artificial intelligence". The Conceptual Graphs Interchange Format (CGIF) is being proposed to ISO as part of Common Logic (CL), which seeks to define logic-based formats for knowledge interchange.

I have been following the discussions on the CG and CL mailing lists with great interest (if not always complete understanding :-). ...
       Continue reading "Peirce's semeiotic as a foundation for ontology"

Posted by rdm at 11:47 PM | Comments (0) | TrackBack

Ontiki: an ontology-aware wiki

Note: See the project wiki for current goals, status, etc.

As discussed in my notes on model-based documentation, I'm quite interested in tools that make it easier to combine human-edited and machine-generated content. Ontiki is a proposed design for one such tool, based on currently available Open Source software.

As an ontology-aware wiki, Ontiki would allow pages to represent classes and instances of entities and relationships. The hope is that it could combine a wiki's convenience and freedom with the strengths of ontology-based systems, allowing a graceful merging of human-edited and mechanically generated content.

Technorati Tags: , , , , ,

       Continue reading "Ontiki: an ontology-aware wiki"

Posted by rdm at 8:06 PM | Comments (3) | TrackBack

February 12, 2005

A PC/FreeBSD War Story

Cfcl's copy of FreeBSD 4.7 is starting to seem a bit dated. It doesn't have the latest Sendmail, never has supported DMA access on this mobo¹, etc. Also, I have some interest in playing with Kirk McKusick's latest file system hacks, etc. So, I decided to install FreeBSD 5.3 on a "spare" machine, so that I could (eventually) migrate cfcl to it.

The machine already had a 20 GB IDE drive, which is plenty big enough for the OS. I added a 200 GB drive for home directories, etc. This may have been a mistake, but it seemed reasonable at the time (where are we going and what are we doing in this hand basket?).

Then I went to the FreeBSD site, downloaded a bunch of CD images, put them on discs (using the Mac OS X Disk Utility's "burn" feature) and tried an install. Didn't work. Complained about the CD format. Sigh. ...
       Continue reading "A PC/FreeBSD War Story"

Posted by rdm at 12:00 PM | Comments (0) | TrackBack

November 21, 2004

A Truly Technoid Gear Shift Knob

Yesterday, I noticed that my right hand hurt when I tried to pick things up. I couldn't remember doing anything to it, so I started having disturbing thoughts about possible "creeping disabilities". I make my living typing and using a mouse, so this is not an inconsequential issue to me.

I mentioned this to Vicki, so today she asked me how my hand was. It seemed better and I said so. Then, a bit later, I was driving our Scion xB and I said "This is what's hurting my hand. The gear shift knob is pressing on the inside of the joint".

We both agreed that this wasn't good. Vicki suggested that we stop by Kragen Auto after breakfast, to see if they had replacement shift knobs or soft covers. We went; we looked. They didn't have much, but we did try a small ball-shaped replacement knob. I liked it; my hand held it differently, so it didn't cause the problem. But Vicki didn't like it, because it didn't fit her hand. ...
       Continue reading "A Truly Technoid Gear Shift Knob"

Posted by rdm at 10:48 PM | Comments (0) | TrackBack

March 3, 2004

Who Uses Macs?

There's a country dancing group I visited a while back that meets in an open-air dance pavilion in Oak Park in Santa Barbara. The sound is provided by a Macintosh (white 12" iBook), running iTunes. The callers wear FM-transmitting microphones, letting them call and dance at the same time.

At one point, when the group was having trouble with a dance, a caller went over to the Mac and adjusted the _tempo_ of the tune to 80% of normal (without lowering the pitch - a sampling trick I learned from AT&T and played with, 30+ years ago, on a PDP-15).

The caller told me that the software that does this is "real expensive, about $50". I restrained myself from commenting (:-).

Posted by rdm at 12:01 AM | Comments (0) | TrackBack

December 7, 2003

"exotic" features of Perl

A recent question on a Perl mailing list asked about "exotic" features of Perl. My Perl code tends to be pretty pedestrian, I'm afraid. My taste also runs toward explicit use of variables, use of strict and warnings, etc. Basically, I think that the data structures (and occasional algorithms) should be the only interesting parts; the syntax should be as boring as possible.

I've been having some fun with regular expressions and persistent data structures, less fun (but results!) with recursive crawling of XML. I use YAML as the default medium of exchange among my scripts, reading and writing other formats only when forced to (e.g, by existing input or output requirements). ...
       Continue reading ""exotic" features of Perl"

Posted by rdm at 6:30 PM | Comments (0) | TrackBack