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.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. ...-- Continuous Integration, Martin Fowler
Continue reading "Continuous Integration Support for Wikis"
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, http://www.jaoo.dk, 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"
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.
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"
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"
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..."
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)"
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"
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"
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"
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!"
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: knowledge representation, model-based documentation, ontiki, ontology, semantic wiki, wiki
...Continue reading "Mechanically-augmented wikis"
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: DBI-Link, DBI-Link, DBMS, ontology, Perl DBI, PostgreSQL, RDBMS, semantic wiki, wiki
...Continue reading "Using DBMS tables for inter-application communication"
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"
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"
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..."
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"
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"
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: knowledge representation, model-based documentation, ontiki, ontology, semantic wiki, wiki
...Continue reading "Ontiki: an ontology-aware wiki"
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"
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"
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 (:-).
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"