Your web-browser does not support CSS, or you have CSS switched off. For a better web experience, I recommend using a modern browser. Until then, an older version of this site will look better in your browser.

home :: computers :: internet :: web

Fri, 09 Feb 2007

Mario Meets Yahoo

TechCrunch has a gushing post about Yahoo! Pipes, which is some sort of graphical RSS-feed-editing service. You can drag little boxes around to combine news feeds, deleting posts that match certain criteria, keeping others, and publishing the result as a new RSS feed.

I can think of some uses for this, but I’m not quite as enthusiastic as Michael Arrington.It’s very slick, but I’m not sure who the intended audience is.

To Yahoo’s credit, the UI is so intuitive that in a few minutes, I’d whipped up a new feed for Guy Kawasaki’s blog that strips out his oh-so-cute minced oaths “bull-shitake” and “full of sushi.” Here’s what it looks like:

Unfortunately, I couldn’t figure out how to replace the phrases—I could only delete the offending posts in their entirety. Call it collateral damage in the war on preciousness.

Tue, 22 Aug 2006

A web service everyone can get behind

The Web 2.0 Logo Generator:

Mon, 10 Jul 2006

You know the market is saturated when…

I was reading a blog post when a button bar at the bottom caught my eye:

It’s a bunch of links to different social bookmarking systems. I counted 42 distinct sites.

Who knew that so many even existed?




On that note, don’t miss Targeting an audience of 53,651. Excerpt:

As more and more entrepreneurs start building what Fred Wilson referred to as second derivative companies, I think they run a big risk of designing a product/service that is targeted at too small of an audience. Too many companies are targeting an audience of 53,651. That’s how many people subscribe to Michael Arrington’s TechCrunch blog feed. I’m a big fan of Techcrunch – and read it every day. However, the Techcrunch audience is NOT a mainstream America audience.

Mon, 03 Jul 2006

davfs2 shenanigans

[Hardcore nerd post. Non-geeks, please ignore.]

WebDAV is a nice, lightweight, widely implemented network filesystem protocol. davfs2 is the client implementation for Linux, which lets you mount a remote WebDAV server.

Heaven forbid that you should confuse it, though. If you confuse davfs2 (as I did, by trying to unmount the same share twice), you might get this delightfully cryptic and mildly ungrammatical error message:

/sbin/mount.davfs: Process 5852 already uses device cfs0.
  Maybe it's only a stale pid-file left from unclean shutdown.
  Please clean up manually.

Notice the lack of any hint as to where that pidfile is. The phrase “Maybe it’s only a stale pid-file left from unclean shutdown.” doesn’t appear in a Google or a Yahoo search; I hope putting it here will fix that.

I thought I’d be smart about this. “I know!,” I said, “I’ll use strace!” (strace prints out all of the system calls that a program makes, so you can get an idea of what its inputs and outputs are.)

strace -o foo mount /path/to/mountpoint

Of course, strace revealed not a word about pidfiles, device cfs0, or the long-dead process 5824. Neither did ltrace.

Eventually I realized/remembered that mount was (fork/exec)ing mount.davfs, so strace wasn’t picking up anything that happened after the fork—which is when all of the interesting stuff happened.

Thankfully, strace has a switch that makes it hang on to all child processes: -f. So,

strace -f -o foo mount /path/to/mountpoint

…revealed the last few things that mount.davfs was doing:

6475  write(2, "\n", 1)                 = 1
6475  setresuid32(-1, 0, -1)            = 0
6475  access("/dev/cfs0", F_OK)         = 0
6475  open("/dev/cfs0", O_RDWR)         = 5
6475  chown32("/dev/cfs0", 0, 100)      = 0
6475  chmod("/dev/cfs0", 0660)          = 0
6475  getuid32()                        = 0
6475  setresuid32(-1, 0, -1)            = 0
6475  ioctl(5, CIOC_KERNEL_VERSION, 0xbffffc54) = 0
6475  open("/var/run/mount.davfs/cfs0.pid", O_RDONLY) = 6         <------ AHA!
6475  fstat64(6, {st_mode=S_IFREG|0644, st_size=5, ...}) = 0
6475  mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fe8000
6475  read(6, "5852\n", 4096)           = 5
6475  write(2, "/sbin/mount.davfs: ", 19) = 19
6475  write(2, "Process 5852 already uses device"..., 129) = 129
6475  write(2, "\n", 1)                 = 1
6475  exit_group(1)                     = ?
6474  <... wait4 resumed> [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0, NULL) = 6475
6474  --- SIGCHLD (Child exited) @ 0 (0) ---
6474  exit_group(1)                     = ?

Note the “AHA!” above. The pidfile was in /var/run.

I have no idea how /var/ is supposed to be arranged. Some things make sense – logfiles are in /var/log, mail boxes live in /var/spool/mail (depending on your setup). But some things make no sense: mysql databases live in /var/<b>lib</b>/mysql, as if that makes any sense. (They aren’t code libraries!) I suppose that /var/run makes sense for pidfiles but why couldn’t it be something obvious like /var/pids?

(I know. I know. That would be too easy.)

Update: The source of the problem that prompted me to mount and unmount davfs2 until it died and left behind a stray pidfile was also in /var/ – the /var/cache/davfs2 directory. As it turns out, if you remove files behind davfs2’s back, it can get confused, spewing errors like this:

/sbin/mount.davfs: Connection failed, mounting anyway.  File system will only be usable when connection comes up.

When I looked at the network dumps (using tethereal "tcp port $PORT" -i lo -d tcp.port==$PORT,http -x -w path-to-output, which I highly recommend), it turned out that davfs was requesting files that I’d long since nuked. Blowing away the contents of the /var/cache/davfs2 fixed the problem. (Why the heck do these hang around between mounts, anyway?)

Thu, 08 Jun 2006

The shark jumps me

I used to pride myself on coming up with awful ideas before they appeared on the Internet.

So, when I said to myself “hey, why hasn’t someone taken this mashup silliness to its logical conclusion and made a National Sex Offender Registry/Google Maps hybrid?”, I was disappointed to discover that someone had already done that.

I’m still waiting for the crimelibrary.com/Google Maps “Jeffrey Dahmer Walking Tour” mashup, though…

Sat, 22 Apr 2006

Advice for the friend of an obsessive webalizer-checker

Dear Mr. Mouthpiece,

I have a friend who obsessively checks her web site statistics and flips out if she doesn’t get enough visitors since her last look (typically every 5-10 minutes). I’m worried — what should I do about this?

Harried at HMS

Dear Harried,

If the site is a blog, which I suspect it is, the obsessive stat-checking is typically a manifestation of a condition called novel hypertext-specific spectrum disorder. It frequently occurs in bloggers who are new to the web and haven’t yet become disgusted with the whole business. It doesn’t appear in every blogger; my suspicion is that your friend wasn’t hugged enough as a child. That said, if she really wants website traffic, post a link to her site in a forum devoted to trolling blogs. She probably won’t thank you, but at least she won’t be concerned about the lack of traffic after that.

Best,

Mr. Mouthpiece

Sat, 21 Jan 2006

Yowch!

Ed Felten’s blog: “Privacy is for Google what security is for Microsoft.”

(In context, it looks like this translates to “Privacy disasters could hurt Google, just as security disasters could hurt Microsoft,” rather than “Google is as concerned about privacy as Microsoft is apparently concerned about security.” Before I read the context, though, the latter seemed more likely.)

Thu, 19 Jan 2006

Conspiracy of the week: subtle crypto-fascism at MSN

MSN Search has a neat little “quick facts” search service – if they know the exact answer to a query (e.g., “king of spain”, “babe ruth ERA”), it will display it just above the search results. A recent release announced the addition of 10^6 more facts:

It’s not perfect, of course:

First, there’s the obvious problem that he isn’t. Second, doesn’t “Leader of Germany” usually conjure up images, not of the prime ministership, but of a certain historical political office?

Mon, 12 Dec 2005

Another few hours of my all-too-short youth irretrievably lost

[Warning. Hardcore nerd post.]

In the process of writing a web application with mod_python, I had to restart my web server. A lot. Apparently, Apache 2 (the web server in question) doesn’t like this, and starts dying on boot with error messages along the lines of

[Mon Dec 12 02:23:17 2005] [emerg] (28)No space left on device: Couldn't create accept lock

…although the disk had plenty of free space and no shortage of inodes.

I Googled this quite a bit. A number of sites suggested looking for zombie semaphores with ipcs and deleting them with ipcrm. But when I ran ipcs, all I got was

$ ipcs

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      

------ Semaphore Arrays --------
key        semid      owner      perms      nsems     

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages    

It took me way too long to realize that ipcs was showing me the semaphores that I (user=jdb) owned, not the ones that the web server (user=www-data) owned. [Slaps forehead.]

Oh well. Live and learn.

So, to actually trash all of the unneeded semaphores (why is there a limit on these, anyway?), become root, stop apache, and type something along the lines of:

for i in `ipcs -s|grep www-data|tr ' ' '\t' |cut -f 2`; do ipcrm -s $i; done

Sun, 10 Jul 2005

Backlog finished

Finally finished processing all of the photos from the eutrip, plus some others from June and July. They’re posted here.

(Apologies for the server outage last month – I think it was a DHCP issue.)

Tue, 22 Mar 2005

How to score an above-the-title slot on the Drudge Report

By now, everyone’s heard of the website whose owner promises to butcher and eat Toby, his pet rabbit, unless he receives US$50,000 by the end of June. As with the infamous Bonsai Kitten, Snopes says that it’s a hoax.

Toby’s owner had the right idea, but he wasn’t exploitative enough: I’d like to see a website whose owner vows to have an abortion unless she receives some enormous amount of PayPal donations in the next nine (eight…seven…six..five…four…) months. (Bonus points if the “mother” fakes her photo the old-fashioned way using a balloon, rather than just stealing pictures from Google Images or launching Photoshop.)

Maybe Drudge will dust off his flashing-police-beacon animated GIF for this one.

Mon, 21 Jun 2004

Low Priced! Huge Selection!

No comment.

Sun, 02 May 2004

Necroterrorism

Third hit on Google for “necroterrorists” (I guess they’re funded by smuggling corpses instead of drugs, like their narco- cousins) is an index of “death metal” bands. I’ll file this in the “people who take themselves way too seriously” category:

INTERPRETTITELKATEGORIEMEMBER
Gardens of GehennaDead body musicsonstigesmeden
Genital GrinderGenital Grinderdeath metalmeden
GholgothSomnus Mortis ImagoBlack Metalmeden
GhoulunaticsKing of the undeaddeath metalmeden
GnosisAnother selfmade luminaryspeed thrashmeden
GnosticEvoking the demonBlack Metalmeden
God DethronedRavenousdeath metalmeden
GodlessLet there be darknessBlack Metalmeden
Godless NorthSummon the age of supremacyBlack Metalmeden
Godz at warPostmortemdeath metalmeden
Gold Fuer EisenHeimatheavy metalcyberbloodgoat
Golden PyreNecroterroristsdeath metalmeden
GolemDeath never diesdeath metalmeden
GomorrhaSexual perversity by autopsydeath metalmeden
GorathHaunting the december chordsBlack Metalmeden
Gore BlisterArt bleedsdeath metalmeden
GorelordZombie Suicicde Part 666death metalmeden
GoretradeRitual of fleshdeath metalmeden

Wed, 03 Mar 2004

Uncanny PageRanking

Blast it. Google’s on to me — I’m up to #20. (But only with Moderate SafeSearch on, which is the default.)

Tue, 17 Feb 2004

jigl wins the gallery generation wars

I’ve investigated a number of different web image-gallery generators for my site. My primary requirements are that the system generate static HTML and images (i.e., no CGI, no PHP, no MySQL, no SSI, none of that dynamic crap), that it scale large images and provide links to the unscaled versions, and that it not look like crap.

For a while, I used fgg, which, when hacked a bit, produced reasonable results. But it had some irritations: namely, it scaled images by a size ratio, rather than to a particular size. And, while I liked its minimalism, I was looking for something a bit less spartan.

igal is a nice tool, but it didn’t do scaling the way I liked, either. And none of the preset layouts really cried out to me. (I do use it when assembling sets of graphs for my independent work, however.)

Today, I stumbled on jigl, which is amazing. It’s a single perl script, the site supplies a wonderfully subtle background theme (the default isn’t as attractive), and it does image scaling almost the way I like it (it accepts a target Y value, rather than a target X value, for reasons I can’t quite fathom.)

I plan to use it for future collections—especially subsets of the photos in the photos section, like this one.

Fri, 13 Feb 2004

The Depsotism of the Check-Box

I recently came across a form that looked like this:

Regrettably, they neglected to include a checkbox titled “anything nuclear.”

Fri, 30 Jan 2004

Next thing you know, Red Hat manuals will come in .doc format

Google has a mailing list for media types – you can subscribe using the link in the lower-right corner of this page. Given that they’re girding up for war, I’m surprised they picked this mailing list hosting service:

Thu, 15 Jan 2004

An Open Letter to the Vice-President for Information Technology

From: Joseph Barillari <jbarilla at princeton dot edu>
Subject: Netscape, IE, and the future of campus standards
To: Betty Leydon <betty at Princeton dot EDU>
Date: Fri, 05 Sep 2003 20:39:44 -0400

Dear Vice President Leydon,

It was with reserved pleasure today that I read that OIT has retired
Netscape Communicator 4.7x. As your announcement indicated, that
browser was obsolete years ago, supported web standards spottily (if
at all), and was generally unfit for use on the modern Internet.

However, that pleasure was quickly quelled when I read that OIT would
not only be standardizing around Internet Explorer, but would not be
replacing the aging Netscape with one of its more modern successors.

I realize that the corporate organs of this University would prefer to
standardize around a well-supported browser. IE, with the vast
majority of the Web's market share, is a natural choice in this
regard.

However, the academic organs of the University (if I may speak as a
cell in the undergraduate organ) do not benefit from a homogeneous
computing environment to an extent that outweighs IE's many
well-documented flaws. The Web Standards Project documents several,
namely:
    * No support for attribute selectors (Windows/Mac)
    * Incomplete support for PNG (Windows)
    * No support for the W3C event model (Windows/Mac)
    * No support for adjacent selectors (Windows)
    * No support for border-spacing (Windows/Mac)
    * No support for position: fixed (Windows)
http://www.webstandards.org/opinion/archive/2003/06/27/

These flaws are not fatal to a browser used to access corporate
applications (PeopleSoft, for instance), because corporate
applications are designed around these flaws. They are, however, quite
injurious to academic users, who generally use their web browsers to
browse the /entire/ web, not just the subset designed around omissions
of Internet Explorer's engineers.

As free operating systems like Linux gain support in China, India,
Brazil, and other countries with low Microsoft market penetration, an
increasing set of web authors are coding to the published web
standards, rather than to the ad-hoc rules created by long-unfixed
bugs in Internet Explorer. Content authors in these states feel no
need to tiptoe around the mistakes made by Microsoft's engineers. Nor
could they -- they often have no access to Windows machines. Other Web
authors, disgusted that some of the best features invented by the W3C
are foreclosed to the entire Web audience because IE users cannot
utilize them, have chosen to employ those features anyway, as a means
to encourage web users to install standards-compliant web browsers.

Viewing web content as it was meant to be viewed requires a
fully-standards-compliant web browser. Internet Explorer does not fit
the bill. Microsoft recently announced that it will /never/ fit the
bill -- they have retired the stand-alone Internet Explorer. Until
their next-generation operating system is released, IE will not be
updated. And the new version that accompanies that OS will not be
back-ported to OIT's standard OS, Windows 2000.

It is in light of these reasons that I ask, on behalf of my fellow
cells in the academic organs of this University, that OIT include, as
an alternative to IE, a modern, standards-compliant web browser on its
student cluster machines. Both Mozilla 1.4 and its corporate cousin,
Netscape 7, fit the bill admirably.

I would be more than happy to discuss this matter further at your
convenience.

Regards,

Joseph Barillari

-- 
Joseph Barillari -- http://barillari.org

Wed, 27 Aug 2003

ObReferer

One of the minor delights of running a web server is that once it gets picked up by the major search engines, your logs will start to look like they were written by a lexicographer on acid. Observe:

email contact of silent rich men
infrared imaging of penis
mri scanner penis sex
penis in vagina mri
seclusion and physical restraints in schools
blog male exhibitionist large penis
wow snacks
celery and abortion
fanny pic of the crusades
bison or gunny or rearranged or willful or inefficient
interact or drapers or statutory or cooks or microsoft
benab or mackintoshite or injunctive or taxed or outroyal
attaching or freshmen or dodecahedron or mailable or suggestion

I suspect that the last four lines are from WebCollage.

Tue, 08 Apr 2003

Anatomy of a Non-Slashdotting

The Slashdot story about my critique just dropped off the front page. My web server took a slashdotting with nary a whimper. Why? It’s only a single-processor Athlon with IDE disks on a 10MBps LAN – definitely not a studly machine.

I suspect four causes:

  • The article 55k of text, so it’s lightweight. It’s not a Linux ISO.
  • The story is static HTML. No Perl, PHP, or Python scripts are called to generate it. Had I still been running Plone, my server would probably be on its knees, begging for mercy.
  • The story was posted during off hours (it was up from about 20:20 last night to about 13:46 today.)
  • The material isn’t incredibly interesting. (It’s not the Matrix trailer, for instance). It racked up 299 comments as of this writing, which is low for Slashdot. But I’m not complaining. :)

In any event, answering the mail that came in was an entertaining way to avoid my COS 423 problem set – to which I now return.

The web server logs are analyzed here.

Flash crowd hits barillari.org. Film at eleven

Someone (thanks!) posted my critique of the Peng case on Slashdot. The web server is still holding out, fortunately.

In the mean time, I’ve been getting interesting email from random people. When they subside, I’m sure this will remind me of a Simpsons episode:

         Nelson: Haw, haha!  He's the greatest showman since that kid who 
                 eats worms.
Worm-Eating Kid: [worms in mouth] My fifteen minutes of fame are over!
-- ``Lisa's Sax''
Updated: Apr 8.

Sat, 05 Apr 2003

The Fall of Web Standards, Chapter XVII

The radicals at the w3c invented a tag for quotations: <q>. It’s a wonderful idea. Rather than deal with the smart/dumb-quotes issue, the client handles quote rendering. Better still, quotations now have semantic significance: browsers can tell that something is supposed to be formatted as a quotation, rather than merely enclosed in quotation marks. CSS can be used to change the markup of <q>-enclosed tags, thus separating formatting information from actual content (just like the W3C says we should!).

The CSS engines in both Internet Explorer and Galeon (Mozilla) recognize <q> as a valid tag. Unfortunately, only Galeon/Mozilla properly inserts quotation marks as required by the W3C:

Visual user agents must ensure that the content of the Q element is rendered with delimiting quotation marks. Authors should not put quotation marks at the beginning and end of the content of a Q element.

Arrrgh!

I sent a feature request to Microsoft. (I couldn’t find the bug-report form, so I filed it as a product suggestion.) Given their tendency to add features instead of fixing bugs, maybe the report will actually be read. (Riiight.)

Incidentally, I’m not the first to notice this.

Sun, 30 Mar 2003

Webalizer reactivated

I’ve activated webalizer once again. See /stats.