neilvandyke.org

Neil Van Dyke's (im)personal site

The weblog was updated on 28 Apr 2008.

Lately, I work in Internet application research and development, in areas running the gamut from concept and systems architecture, to software engineering and protocol implementation, to information architecture and human-computer interaction, to privacy and societal issues. I've had hands-on senior-level technical positions in several companies, involving computer-aided software engineering, systems analysis and design, Web rich-clients, and electronic publishing. I earned advanced degrees at Brown University and MIT, doing work in software agents, social software, new media, ontology, HCI, organizational knowledge management, and software engineering. I'm experienced in numerous languages and technologies, and leverage that background to rapidly picking up new tools as needed. I recently wrapped up some work involving airline datacommunication protocols in Common Lisp, and a small analysis project for an online identity startup, and am presently working on a (non-DHS) Web-based aircraft safety project in Scheme and Java. I'm normally available for consulting and permanent positions, as well as for weddings and bar mitzvahs.

In addition to my R&D work, I sometimes moonlight as a freelance photojournalist. I shoot news with a pair of Canon DSLRs and fast lenses. Separately, as a hobby, I shoot portraiture and dance with studio gear, and keep an ultracompact digicam handy for 24/7 capturing of serendipitous images. My new portfolio is in progress, although you can see some of my early digicam images sprinkled throughout my blog, including a few that have gotten national print publication in magazines and brochures. Want to be a model?

One of my current research interests is novel ways of leveraging large groups of people over the network to accomplish things that are otherwise impossible or impractical. I see this fusion of humans and digital mediation as a kind of artificial intelligence, and one that can be directed and adapted to solve many kinds of real problems. I think work in this area will involve fields such as HCI, AI, sociology, psychology, and sociotechnical systems. I also think there might be a new subfield that concerns models for treating people as partially-specified computational objects as part of larger formal system designs.

One small example of work in this area is MindShare (1998-1999), which is an attempt to carefully leverage the ordinary behaviors of many people over the network to cause a shared ontology of information resources to emerge. This project reflected a little of my earlier ideas on distributed ontology evolution for the Web as machine-accessible semantic knowledgebase (related to what now is called "Semantic Web").

Related to the interest in distributed human AI, I've been involved in online communities since early on, and want to apply some of the insights thus gained to develop new kinds of online interactions among large groups. Two small projects I did involving IRC real-time chat communities were Butterfly (1998), a software agent that inhabited IRC and used a keyword model for finding chat groups of interest (implemented using code from EdgeIRC(1996)), and Chat Threader (1997), an attempt to extract conversational thread structure from chat groups. Another class project, Building20 Memories (1998), was a collaborative hypertext approach to helping real-world communities tell their collective story without editors or reporters.

Software Agents came and went as a buzzword without much of the achievable promise of this topic being realized. I'm interested in unsolved problems of making large-scale software agent technology feasible, such as approaches for mediating the interaction between a user and thousands of his or her information agents. The information agents are themselves mediators of data sources such as Web pages, news wires, email, real-time messaging, corporate information systems, etc. I think the solution involves research in both HCI and AI, and also substantial systems design.

One of my current ideas began as the MyPaper project in 1997, although it has evolved to something much more generalized.

I've been interested in hypertext ever since I first read about Xanadu, and a lot of my recent work involves hypertext (or hypermedia) in one form or another.

Some hypertext and Web projects that don't fit elsewhere on this page: OMT Explainer (1996) demonstrated dynamic hypertext help for visual languages, Webephant (1997) did Web information retrieval from browsing history, and WebJump (1996) was an early programmable Web hotlist. Back when dynamically-generated Web pages seemed more fun, I wrote a bunch of site-specific Web CGI programs (1994-1997) for the Brown CS Dept. One of them inspired a more recent CGI program, Medialabber (1998).

erin.el (2007) is an Emacs add-on for editing TWiki pages.

I no longer study privacy and civil liberties implications of technology, but I do dabble occasionally in what I'll call unnoyance — responding to online annoyances, such as spammers.

I used to be strongly opposed to Web ad-blocking, but then cross-site tracking attempts became widespread. Now I maintain a Privoxy actions file that blocks numerous tracking attempts and also a bunch of ugly cruft images. If you still use Junkbuster, you can use my old Junkbuster blockfile and junkbust.el (2000-2002) Emacs package.

Users of Emacs-based mail readers can use sigbegone.el to exorcise advertisements from the bottoms of received emails, and gnushush.el to remove some unnecessary identifying information that the Gnus newsreader puts in headers of your messages. spamprod.el was previously used to help notify the ISPs that are being used as injection points for spam emails, but it's no longer effective.

Most of my earlier professional and research interest was in better ways to develop software systems. This included such fields as analysis and design methodology, programming tools and CASE, programming languages, and software engineering process and project management. Though most of that work cannot be put on the Web, that background has influenced my subsequent work in other fields.

At Brown University in 1995, I took a seminar course on teaching OOP in CS, and, as part of arguing for the use of Smalltalk, I worked on a graphical front-end called SmallToons, which started as a variation on my Smalltalk brower, CHG (1992). SMORES (1997) was originally a small example for part of a modular design-view-oriented full-cycle CASE system I was designing for my first grad school thesis. Jomtool (1996-1997) was an interim tool to help bootstrap development of my system.

Although I'm expert in popular languages like Java and C/C++, I've moved most of my personal software development to the Lisp dialect Scheme. Some Scheme-related software and information I provide:

Quack enhances Emacs support for Scheme programming. It obsoletes giguile.el.

HtmlPrag: Pragmatic Parsing and Emitting of HTML using SXML and SHTML

uri.scm: Web Uniform Resource Identifiers (URI) in Scheme

WebScraperHelper: Simple Generation of SXPath Queries from SXML Examples

csv.scm: Comma-Separated Value (CSV) Utilities in Scheme

UrlSkip: Web URL Simplification in Scheme

Testeez: Lightweight Unit Test Mechanism for Scheme

rfc3339.scm: RFC3339 Date and Time Format in Scheme

bencode.scm: BitTorrent Bencode Decoding in Scheme

levenshtein.scm: Levenshtein Distance Metric in Scheme

soundex.scm: Soundex Index Keying in Scheme

ccnum.scm: Credit Card Number Utilities in Scheme

postnet.scm: USPS POSTNET Barcode Encoding in Scheme

numspell.scm: Spelling Numbers as English in Scheme

linux-proc-apm.scm: Linux /proc/apm APM Data Access in Scheme

Protobj: Prototype-Delegation Object Model in Scheme

tabexpand.scm: Tab Character Expansion in Scheme

Httper: Web HTTP Client in PLT Scheme

ASXT: Another Scheme XML Transformer [obsoleted]

UriFrame: Web Uniform Resource Identifier Framework for PLT Scheme [obsoleted by uri.scm]

srfi19.plt: Neil's Temporary SRFI-19 for PLT

Using OpenGL with PLT Scheme is a page with some notes and demos.

Also hosted here are Zhu Chongkai's MrMathematica and Lytha Ayth's SICP in Texinfo Format.

Kirill Lisovsky now maintains the port of Oleg Kiselyov's SSAX for PLT Scheme.

If you're a user of Scheme or another Lisp, and in the greater Boston area, you simply must join the boston-lisp-announce announcement-only email list.

gnu

I run GNU/Linux Free Software, for largely pragmatic reasons, and my distro of choice is Debian. If you use old-school Unix workstation tools like Tcsh and Fvwm, you may want debian-tcsh.csh and/or fvwm-wallpaper.

Emacs is an archaic but powerful magic. In addition to the Emacs packages mentioned elsewhere on this page, I've also hacked up: bbdb2tbird.el, perkymbf.el, jasmin.el, bbdbpalm.el, w3mnav.el, rfcview.el, padr.el, revbufs.el, noticeify.el, kbdraw.el. I also packaged Franz ELI Emacs Lisp Files.

I have some notes on GNU/Linux on the IBM ThinkPad X20, IBM ThinkPad 560E, and Toshiba Satellite 4005CDS, and a grossly outdated page on Building a PC from Components for Linux. If you're at the Media Lab, my Media Lab Linux Info page is now maintained by NeCSys.

Some misc. pages... I've started a RadioShack PRO-95 Radio Scanner page. T-Map is a palmtop subway map that does route-planning. Magellan Lego Robot mapped brick rooms. Coping With Vegetarians: A guide for omnivores. Cadroids are alumni of Cadre Technologies. Namesakes are other Neil Van Dykes.

You can reach me via email to neil@neilvandyke.org, optionally encrypted to my GnuPG/PGP key.

(Note: If I don't respond to you promptly, likely I didn't receive your email. I still receive over 200 spam emails a day, and have to use a very aggressive spam filter, but I check my spam folder at least once a day.)

(Note: If you use Hotmail, I strongly encourage you to switch to a different email service, such GMail or Yahoo Mail. Hotmail is infamous for accepting and then silently discarding emails, without putting them in the junk folder.)

Site © 1994-2008 Neil Van Dyke   neil@neilvandyke.org    XHTML 1.0 Strict  CSS2    Legal