Older blog entries for connolly (starting at number 36)

29 Sep 2005 (updated 30 Sep 2005 at 07:21 UTC) »

So I want to post a journal/blog entry about my recent trip to Edinburgh for a TAG meeting. How and where to post it?

  • advogato? It's not really about open source. Advogato doesn't support offline editing -- well, I suppose I could upload it via the XML-RPC control protocol. Advogato seems to mangle my text. I like to keep to XHTML.
  • w3.org? It's got product endorsements. I don't have an RSS feed there... though... hmm... I could use my XHTML site summary hack to make one out of my homepage pretty easily. Unlike most weblog systems, posting the content would be a separate transaction from making the RSS entry, but maybe that's OK... it would let me use mailng lists posts as entries, as well as advogato posts, flickr photos, etc. It's not ImmersiveHypertextEditing, but emacs with nxml-mode combined with CVS and ssh is a pretty nice way to edit the web.

So I'm thinking about adding blog-smarts to dm93.org. As I mentioned earlier, I'm disenchanted with ZopeDB as the back end. I liked Zope's ease of access control, but the cost of being different from apache is just too high. I'd sure like to see openid support integrated with apache .htaccess stuff. Maybe a fastcgi auth hack of some sort. Anyway... back to blogging... <"> I want to use the filesystem with hg. I see there's a debian package for pyblosxom. I'm also interested in flickr's support for weblogging APIs. I see there's a bloggerapi module for pyblosxom. I would prefer the Atom protocol. I am reading An Atom-Powered Wiki by Joe Gregorio April 14, 2004. I wonder if the protocol has changed much since then.

update on testing gnome blog etc.: While waiting in the Kansas City airport recently, I had just enought time to download xjournal, recommended by Pure Mac's list of web editors. The "mood" field is kinda cool, as is the "get music button". I tried to copy and paste fromTravelCheckList in my wiki, but it came across as plain text. Bzzt.

tags: python, scm

Ugh... debian glibc transition. I tried to install nvu, and it wanted to remove my win4lin kernel in order to do so.

Tags: debian, sysadmin

One-click dialing back in action

Aha! Ted and Dom showed me how to add a tel: URI scheme handler to firefox. It turns out that firefox consults the gnome configuration database, so this works:

$ gconftool-2 -t string -s /desktop/gnome/url-handlers/tel/command "echo %s"

In place of echo, I use a little script that Ted wrote that uses curl to drive Vonage Third Party Call Control. This works great with the hack to build an hCard version of my sidekick contacts!

tags: UriSchemes, sysadmin, hCard.

4 Sep 2005 (updated 4 Sep 2005 at 03:29 UTC) »

So I'm helping my wife do some office work for a counsellor. We started with a bunch of .xls files. We exported those as text and normalized the data with a little python program and put it back into one big spreadsheet where she enters new data as it comes. We export the data as tab-separated text to run reports on it, in python again.

I think I could do the reports in excell with VBA. I have started up the learning curve, though I really don't like investing development effort in anything other than open source technology.

Meanwhile, I wrote the python code on my laptop, but the spreadsheet is on her mac mini. I though I'd use mercurial to allow me to make changes on either side and keep in sync.

But her machine doesn't have the developer tools installed, so it doesn't have gcc, so I can't install mercurial.

tags: scm, mac, VBA, python

2 Aug 2005 (updated 5 Aug 2005 at 04:40 UTC) »
Adventures with Mono

I just wanted some background music for reading and maybe cleaning up my office a little...

But I'm not really willing to manage my own cache of popular music; the RIAA/ASCAP rules cramp my style, which is to store stuff in the web and point to it from whichever of my N machines I happen to be using.

podcasting sure sounds cool, though I'm not sure I grok. I searched for a gnome podcast tool and found monopod. No, there's no debian package for it, but I just got a copy of Edd's Mono: A Developer's Notebook, so I thought I'd try to build monopod from source.

untar it; blow past README and INSTALL and go straight to ./configure && make and so begins the game of hunt-the-build-deps...

checking for mono >= 1.1.6... Package mono was not found

so I counter with

$ sudo apt-get install mono-devel mono-gmcs

but that turns out to be a diversion; what I really needed was...

$ sudo apt-get install libmono-dev

Next hurdle:

checking for gtk-sharp-2.0 >= 1.9.5... Package gtk-sharp-2.0 was not found ...

Easy enough:

$ sudo apt-get install gtk-sharp2

And lo! the configure script wins, but make fails thusly:

./ChannelWindow.cs(144) error CS1501: No overload for method `SetSortFunc' takes `2' arguments

Unfortunately, C# is not like python and Modula-3; it fails the unambiguitiy requirement so I can't tell just by looking at ChannelWindow.cs where SetSortFunc comes from. I can see that it comes from ListStore. Maybe an IDE will teach me the tricks for navigating C# files...

$ sudo apt-get install monodevelop

but starting monodevelop loses with

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> System.IO.FileNotFoundException:
Could not find file "/usr/lib/monodoc/monodoc.xml". : /usr/lib/monodoc/monodoc.xml

but thanks to debian package search it's easy enough to find the relevant package:

$ sudo apt-get install monodoc-manual

and now I can open ChannelWindow.cs in monodevelop, but when I hover over ListStore, I don't get any lisp-machine-like context-sensitive help.

There are only a few imports at the top:

using System;
using Gtk;
using Mono.Posix;

So I'm willing to try a brute-force search. Aha... ListStore in the Gtk# docs.

SetSortFunc takes 4 args. How did this code ever compile? I check for version skew... apt-cache policy and the README agree: Gtk# version 1.9.5. I don't get it. postscript: Edd suspects ETOONEW; he uses mono 1.1.7 and I got 1.1.8

I try filling in 0s for the arguments, but C# is too strongly typed for that. I try to figure out what the C# equivalent of None or nil is for a delegate, but it doesn't jump out at me.

Then... duh.. there's a monopod 1.4 release. I grab that, but building it fails with:

Internal() warning CS8018: Could not find the symbol writer assembly (Mono.CSharp.Debugger.dll). This is normally an installation problem. Please make sure to compile and install the mcs/class/Mono.CSharp.Debugger directory.

OK, I give.

In some ways, the mono platform is coming along more quickly than Java, but the fact remains: it takes a long time to deploy a new platform. The MonoDebianPlan shows lots of scary packaging issues.

Tags: programming, debian, media,

See also: #swig notes from tonight's journey.

19 Jul 2005 (updated 20 Jul 2005 at 21:14 UTC) »
advobak.py -- advogato diary incremental backup; thanks to titus for some clues.

v1.2 start with the highest number and counts down; with -u, it stops when it finds one that's already up to date.

15 Jul 2005 (updated 15 Jul 2005 at 07:17 UTC) »

I finally got a copy of the contents of my personal wiki converted to clean XHTML, one of the few formats I trust. After fixing a bunch of low level escape markup problems with regex foo, I remembered that wiki rendering mixes up tag nesting. So I needed tidy. ElementTree and TidyHTMLTreeBuilder to the rescue! Now the hard part: migrating from the wiki genre to the journal/blog genre.

This work started in a CVS repository that I keep on a mac that goes to sleep at night. I usually etherwake it, but tonight I used hg and committed changes right on the machine I'm working on, and pushed them to another machine when I finished. I missed emacs integration, but not too badly.

I like the idea of all my machines acting as peers, but I wonder if I'll lose track of which changes are where. And I wonder when to add to an existing project/repository and when to make a new one. When it comes to moving files around, hg is less constrained than CVS but still has limitations. And moving things in the web involves redirects, if not broken links. If I want to publish the code, I doubt I'll use an hg server or even an hg CGI; I'd probably use a commit hook to update some static files, or not even bother with a repository on the server but just use rsync.

Tags: python scm

13 Jul 2005 (updated 15 Jul 2005 at 01:21 UTC) »
Bugs on top of bugs on top of paperwork: frustration on so many levels

So I'm trying to send an expense report.

The bane of my existence is doing things that I know the computer could do for me.*

Filling out shipping waybills is definitely one of them. I've tried the fedex online shipping interface, but it's pretty javascripty and klunky, and I've never made it past the form that asks for my credit card number, since my employer always pays to have these expense reports shipped.

But the last time I tried to send an expense report via fedex, I got a bill for $30 because I neglected to check exactly the right "bill to sender" box on the paper waybill. When I called fedex, they could see that I clearly meant to bill the recipient, since I wrote the account number right there, and they fixed the billing problem. So today I'm motivated to invest quite a bit more in getting online shipping working.

So I fill out the account application forms. One of them asks whether I want to create a new fedex account or use an existing one, but it doesn't accept the account number I have for my employer, so I create a new one, even though I don't want to. And there's this confusing stuff about a 10% discount.

I fought thru all that and got to a form that looked just like a paper waybill. Now we're getting somewhere. It has a "bill to recipient" option but when I submit the form, I get "invalid account". So I find the tech support number and get in the hold queue. While I'm waiting on hold, a friendly voice informs me that they have online chat support. I'm a pretty big fan of online chat, so I try it out.

It's java. I've had mixed luck with java applets, but thanks to a great article on installing Sun's java on debian, my Java installation is pretty shiny and I'm willing to give it a try. Just as I was starting to have a meaningful exchange with a fedex support guy, it started doing a peg-the-cpu-and-update-the-scrollbar-a-zillion-times thing. It recovered once, then did it again. I closed the window but the CPU stayed pegged. Uh-oh; I thought I'd have to restart firefox and lose days worth of state. But eventually the CPU load subsided.

Meanwhile, my turn in the hold queue came up, and in an IRC chat with our admin folks, I discover that I've been putting an extra digit in the account on my waybills. Also, I had used a "verify address" feature, which filled in the full 10 digit zip, but the account I was billing to only had the 5 digit zip. I don't know who thought that "invalid account" was a sufficient diagnostic for that failure mode. With those two problems addressed, I got as far as printing a waybill, only to see my phone number represented as (161)739-5555; their profile forms don't grok international +1-... syntax, so I had to put just the bare 10 digits in there. Finally, I got the computer to fill out the waybill for me.

The next hurdle was getting a priceline receipt printed. I have a .pdf file and a .ps file (derived from the .pdf via pdf2ps, I think). If I ask cups to print the .ps file to my networked HP printer, somewhere along the line it gets scaled up 4x, and I get only the top-left quarter of the receipt filling the whole page. The pdf file looks funny in evince. I check it with acroread and it works, so I try printing it and I win. But evince is otherwise such a nice piece of software that I want to help them fix this problem.

So I try, once again, to figure out how to report problems in debian. The gnome menus aren't much help, but it's pretty easy to find How to report a bug in Debian via the evince package page. I like the idea of an emacs interface, so I apt-get install debbugs-el and type M-x debian-bug. No joy. Since I haven't restarted emacs, it hasn't loaded the package. I have to find the .elc and M-x load-file it. Then it pleasantly guides me thru filling out a bug report. But I want to attach some files to the bug report, and I can't see how to do that in emacs mail mode. Oh well, I'll attach them to follow-up messages.

Emacs reports success when I hit ctrl-c ctrl-c to send the message; but I use an ssh tunnel to send my mail, and I haven't told emacs about it. So where did that message go? It's frozen in an exim4 queue. I don't really want to manage an MTA on this machine, but lots of debian packages that I use require one. There is a "don't do anything" configuration option, and I'm pretty sure I chose that one when I installed exim4. Now I'm trying to remember how to reconfigure it. I see several references to a debconf(7) man page that I can't find. I eventually figure out the magic incantation: sudo /usr/sbin/dpkg-reconfigure -plow exim4-config. But even after I configure it to send mail, the message stays frozen in the queue. I give up at this point and copy the contents of the message to a text file, and use EDITOR=gedit reportbug. I ask in the #debian channel about how to attach files to bug reports; somebody there confirms that attaching them to follow-up messages is a reasonable thing to do, but also suggests just composing the message that reportbug would send in my normal mailer and using it to attach them. "I don't usually bother with reportbug" he says.

argh! The primary interface for reporting debian bugs is so unusable that the developers (ok, one developer) don't even use it?

So I press on. I don't regularly use my ISP's SMTP server, but somehow reportbug knows its address and sends the bug report.

While I'm waiting for the acknowledgement, I try to figure out the relationship between reportbug and bug-buddy. I recall that bug-buddy feeds into the upstream gnome bug system, and I have a vague recollection that debian wants you to file bugs in the debian bug tracking system, not upstream. Plus, bug-buddy doesn't seem to have an interface for attaching files either.

Ah... the acknowledgement is here now: #318122.

@@tags: usability debian linux-printing-swamp

*yours truely, Oct '98

advogato still doesn't grok rss:title. I'm tring a class="title" microformat to that maybe I can recover/convert...

I reviewed my ISP bills and such over the weekend... went to check the mailbox that they provide... an address that I have never given to anyone; the 20MB quota was 99% used; all spam except monthly ISP newsletters.

It used to be that commercial or political spam was sent out by one type of miscreant, while worms and viruses were created and propagated by another type. These days, the two have merged. This is because spammers are using viruses to take control of thousands of people's computers, which the spammers then use to send out their crap. -- 2005 by Jef Poskanzer

I gather that some ISPs would like to automatically put their zombie customers into a sandbox where the only thing they can contact is an ISP web server (not running Windows I hope) where they can download repair tools and security updates, but Microsoft has, depressingly unsurprisingly, been uncooperative when ISPs have asked to redistribute updates on their own servers. -- Taughannock Networks Weblog 23 Jan 2005

Maybe there's hope: Slashdot | FTC Recommends ISPs Disconnect Spam Zombies May 24 2005.

Tags: spam.

29 Jun 2005 (updated 8 Jul 2005 at 04:08 UTC) »

The --xml-output option on darcs commands is something I hope hg picks up; let's not do much more microparsing than we have to.

OpenID looks kinda cool, but I don't quite see how it works; I hope they add a story/example showing what happens if a black hat puts my homepage URL in the field.

Some CVS (related) features I depend on that I wonder if/when hg has: emacs support (ctrl-x-v-v is burned into my medulla), keywords support.

Hmm... PHP is clearly the dominant server-side deployment vehicle these days. I wonder if its namespace management will catch up with Modula-3 and python... or if the .NET/mono CLR stuff has much chance; IronPython and the like look promising. I suppose JSP hosting is a commodity these days... and .Net... I wonder what the prices and trends are; and I wonder if there's mono hosting yet.

Hmm... a bunch more certs... ugh... they're all spam. How do I certify somebody as pest or fraud or leech?

Tags: scm

27 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!