Archive for April 2003

Larry Wall on Perl being postmodern:
While I'm thinking about the next thing to say in my talk, let me say a bit more about deconstructionism. I do not view deconstructionism as a form of postmodernism so much as I view deconstructionism as the bridge between Modernism and postmodernism. Modernism, as a form of Classicalism, was always striving for simplicity, and was therefore essentially reductionistic. That is, it tended to take things to pieces. That actually hasn't changed much. It's just that Modernism tended to take one of the pieces in isolation and glorify it, while postmodernism tries to show you all the pieces at once, and how they relate to each other.

For instance, this talk. If this were a Modern talk, I'd try to have one major point, and drive it into the ground with many arguments, all coherently arranged. Instead, however, I let you see that there's a progression in my own thought process as I'm writing. I would pause in my talk at the same point that I paused in my thought process. If I were a journalist, I'd spend as much time talking about my angst in covering the story as I'd spend covering the actual story. And if I were building a building instead of writing a talk, I'd let the girders and ductwork show. These are all forms of deconstructionism.

I'm still trying to think about how this relates to Perl, by the way.

Talk Slides

Slides from my talk are now online in HTML format.

Talk on XML-RPC and SOAP

My talk at Yahoo! Engineering Thursday afternoon on XML-RPC and SOAP went moderately well. I covered the technical details of what happens at the HTTP level in an XML-RPC transaction and gave a brief explanation of what SOAP is. The latter wasn't very well explained though, primarily because I still haven't figured out exactly what SOAP is supposed to achieve.

I learnt several things from this exercise that I think are worth sharing:

I put together the slides first then defined my talk around the slides. This was a totally wrong approach. It ended up looking like I was reading out of my slides. I should have defined my talk first using some generic outlining tool (I prefer paper but OmniOutliner looks good), then created slides to support the talk. But I'll excuse myself this time because this is only the second time ever I've made a slide based presentation.

I'm still far more comfortable using a board and a marker/chalk, having done that for several months at Mahiti last year. Using presentation software this time gave me one serious advantage — it forced me to prepare for my talk hours in advance while my previous talks have always been impromptu — and one serious disadvantage — I lost the freedom to hold an interactive session and let the audience take it wherever they wanted. I don't think it's impossible to use slides and still be interactive. I've seen it done. The trick is to limit the interactivity such that the presenter asks the questions and the answers always appear in the next slide. Full fledged interactivity can kick in after the slides are done with. It would be a major achievement though, to have slides work in a session where the audience asks questions.

Using a prepared presentation also meant I had to know in advance the aptitude levels of my audience, which I admit, I didn't. The last time I spent any significant time with the Yahooligans was at the St. Mark's Road office in late 2001, when they were an 18-people office, all fairly skilled at Web tech. I assumed that level and jumped into the technical explanation by examining the HTTP data stream in an XML-RPC request. That was a mistake. The Dickenson Road office this time was overflowing with fresh recruits. About 40 attended my talk and while some heads were nodding vigourously, others were nodding off. I should have taken a gentler curve to the protocol layer. I did have a slide for that, but it was in the wrong position and badly explained.

I think I also need to exercise more care over how I use my voice. [info]kalyan says he had no trouble understanding me, but I think I spoke in a monotonous drone and with a slight slur. Both these can only overcome in one way: by giving my vocal apparatus more exercise. I also noticed the slur in a recording I made walking on Wednesday evening.

[info]kalyan says the audience wanted more practical examples talking to real XML-RPC servers, which my presentation lacked. I completely agree. I had promised to demonstrate an XML-RPC server in Java and couldn't deliver. I simply didn't have time for that. [info]fus informed me that he had signed me up for this talk only on Monday afternoon, just as I was leaving Synapse in Goa, and the only time I got to put together the presentation was a couple of hours on Wednesday night and another three Thursday morning. The Java code that I wrote for Mahiti in 2002 depends on Mithi's Linux-only MCE libraries that I had forgotten about, and I didn't have any time left to replace the dependency with dummy functions for the demonstration. So I opened the file in a terminal window and pointed at the relevant lines, which was a pathetic substitute for a real working server.

My attempts at demonstrating an XML-RPC client in Python were also botched. I couldn't think of any public XML-RPC servers on my feet so attempted to perform a search query on HPRD, realised the search function was written in a way that made it incompatible with XML-RPC and nobody had noticed, diverted into adding another function that provided an XML-RPC friendly front to the search function (ugly! the original function should have handled this), then used the demonstration client to (successfully) search for a protein. Suffice to say, by the time I got to this stage, there were far lesser people in the room.

Finally, I also used the chance to play with my week-old Bluetooth enabled Sony Ericsson T68i, using it to wirelessly control the slide show. The phone has a blue LED on the side that flashes every two seconds when Bluetooth is enabled. Hope nobody found it a distraction when trying to look at me. I can't figure out how to turn it off.

[jace@Jace python]$ python2.1
Python 2.1.3 (#1, Jan 13 2003, 17:34:23)
[GCC 3.1 20020420 (prerelease)] on darwin6
Type "copyright", "credits" or "license" for more information.
>>> from SimpleItem import Item
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ImportError: No module named SimpleItem
>>> from OFS.SimpleItem import Item
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/Users/jace/Zope/lib/python/OFS/SimpleItem.py", line 23, in ?
    import re, sys, Globals, App.Management, Acquisition, App.Undo
  File "/Users/jace/Zope/lib/python/App/Management.py", line 21, in ?
    from Dialogs import MessageDialog
  File "/Users/jace/Zope/lib/python/App/Dialogs.py", line 37, in ?
    from Globals import HTML
ImportError: cannot import name HTML
>>> import Acquisition
>>> from ExtensionClass import Base
>>> class foo(Base, Acquisition.Implicit)
  File "<stdin>", line 1
    class foo(Base, Acquisition.Implicit)
                                        ^
SyntaxError: invalid syntax
>>> class foo(Base, Acquisition.Implicit):
...   def foobar(self):
...     print "Foobar!"
...
>>> class bar:
...   def foobar(self):
...     print "Bar's Foobar!"
...
>>> class baz(bar, foo):
...   pass
...
>>> b = baz()
>>> b.foobar()
Bar's Foobar!
>>> foo.foobar(b)
Foobar!
>>> isinstance(b, foo)
1
>>> isinstance(b, bar)
0
>>> isinstance(b, baz)
1
>>> isinstance(b, bar)
0
>>> b.foobar()
Bar's Foobar!
>>> bar.foobar(b)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: unbound method foobar() must be called with instance as first argument
>>> isinstance(b, Base)
1
>>> isinstance(b, Acquisition.Implicit)
1
>>> isinstance(b, bar)
0
>>>

Why is that last isinstance test failing? I don't see what's wrong. The class baz is derived from both foo and bar, so any instance of baz should pass the isinstance test for both foo and bar. I'm stumped.

This page from W3C on when to use GET and when POST in HTML forms is excellent advice for anyone who builds Web sites.

Fast food joints are in the real estate business?

From Wired's report on Cometa's plans to set up 20,000 Wi-Fi nodes:
The b-school mantra that fast-food chains are actually in the real estate business applies to Cometa also; success depends on properly locating access points.
That bit deserves further rumination.

New Safari beta

Am I the only one who thinks the new Safari 0.73 public beta is flakier than the 0.64 private beta? None of the Preference panes work. I had to knock off my preferences file to get this release working and then tabbed browsing was gone. Because I couldn't access the Preferences again, I couldn't turn tabbed browsing back on (the option is not in the Debug menu anymore since it's officially supported now).

So to turn it back on, I fired up the old 0.64 release again, turned on tabs, and moved back to 0.73, and now tabs work. But I still can't access the Preferences.

I've filed a bug report.

Walking for productivity

Ever notice that when you're thinking hard about something, you tend to get up and start pacing around the room restlessly? That you wish you could walk faster and without the restrictions the room imposes on you?

I've figured out what to do about it: A one hour fast-paced walk around the dirt roads of J. P. Nagar's Sarakki layout, where neither street lights nor humanfolk are a disturbance. Does wonders to my enthusiasm and productivity.

I could do longer walks, but then I'd forget what I was thinking about by the time I got home again. I've tried carrying a PDA on the walk, but you have to stop and stand still to apply a stylus to a PDA, and it's so slow it's frustrating. I've messaged [info]urmila and asked her to rehash whatever I sent her, which works since I can message and walk at the same time, but the mobile keypad interface isn't exactly the fastest way to input text (even with T9) and the 160 character limit doesn't help either (BSNL providing free SMS sure does help though).

I'm next going to try carrying a digital voice recorder and speaking to myself. It'll draw stares from the few people I pass on the way and it'll feel very odd talking to myself, but given how much I forget by the time I get home, it's sure worth a try.

And oh yes, I never carry a portable music player. It's exactly the thing to kill the productivity of a walk.

Should I get a Sony Ericsson T68i?

Unsanity's Slava says he dumped his Sony Ericsson T68i because of several oddities in its user interface. And this is the phone I've been considering picking up for sometime now because of the rather nice feature set it sports.

Isn't there any such thing as a small tri-band phone that does GPRS and Bluetooth? The other phone in my watch list, the Nokia 6310, is from a company that knows how to build a user interface for a mobile device, but it's simply way too large for my pockets.

BGE reports that between Feb 28 and Mar 31, 44kWh of power was used in my apartment. I was in Bangalore for that entire period. I switched off everything before I left the apartment. I have an electricity bill for $114.49 for an apartment that has been unoccupied for over two months.

I've realised that Apple's decision to put the Command/Apple key to the right of the Control and Option/Alt keys (instead of between Control and Alt like on a Windows keyboard) is a very good idea after all. Apple uses the Command key for shortcuts the way Windows and GNOME/KDE use Control, and the key now falls under my left thumb instead of under the little finger, which means I can now press a modifier key with the same fingers and the same ease as when pressing the key normally.

To therefore fix the aberration on the Windows keyboard I use when not carrying the PowerBook around, I applied uControl (thanks [info]kingsly!), which gave me another very nice side benefit: scroll wheel support on the trackpad! What I really like is that uControl does not conflict with USB Overdrive X, which I use for other remappings.

The only major item left on my wishlist now is a Windows like taskbar for Mac OS X. The dock simply isn't a substitute for the taskbar.

My right arm has been hurting for two days now, at the shoulder joint and the wrist. Looks like RSI is visiting again.

The last time, I was restricted to six months with a trackball, at the end of which, my back was busted too. I couldn't sit on a chair for more than an hour at a time for the next one year.

What will it be this time?

I'm filling out my US tax papers and, let me just say this: I'm not having a very good time. I have here some 50 sheets of paper I need to read before I even know what to fill out where. Later this year, I'm going to have to file income tax papers in India, so yes, that's two countries in one financial year.

[info]chetan, my man, where are you? I need someone who knows how to fill out these papers.

Tim Bray finally has a plausible explanation for why companies have disclaimer attachments to their email. In his case, it's a requirement for insurance coverage.

Jon Udell opines, and I strongly agree, that software projects are closely connected to those who work on them. I quote:
One especially useful perspective was Brian Behlendorf's. As co-founder of both the Apache Software Foundation and then CollabNet, Brian observes the confluence of open source and outsourcing from a unique vantage point. He believes, and I agree, that we should embrace the reality that software projects are not separable from the people who work on them.

...

"What's the skillset to be able to jump into the codebase of something like Mozilla, read the architecture docs, and figure out the makefiles? Computer science classes don't teach you how to dive into foreign codebases."

Of course, that's increasingly becoming a social networking skill. I recently got interested in the new XML version of Sleepycat's Berkeley DB. If you go through the front door, on the Sleepycat Web site, you won't find out much about that project, which is still in beta. But John Merrells, who's working on the beta project, has a Weblog. You can get in touch with him, and he can help guide you.

A friend in J&K just said: "this is India Occupied Kashmir...still a disputed territorry"

BSNL redefines the standards for lousy service.

I need to get technology agnostic. That means I need to stop giving so much priority to technologies that I'm close to, and actively adopt technologies that I've previously ignored for reasons not related to the merit of the technology itself.

Switching to Mac OS X from Linux is a start. Now there's lots more to do.

Right to privacy

From today's Times of India, Bangalore edition (page 7):
Holding that right to privacy is not an absolute right, the Supreme Court in a landmark ruling has said a matrimonial court had the power to order medical examination of one of the spouses in cases where divorce is being sought on health grounds.
Brin's viewpoint is looking more and more like the only option left.

Recovering WordPerfect files

Does anyone know where I can get a program to read WordPerfect files?

I just discovered a bunch of my old articles from CHIP magazine in 1999, all saved using WordPerfect for Linux. I'd like to look at them again, but neither OpenOffice nor MS Office:mac will open WordPerfect files. I can't find a viewer anywhere online. All the links that Google throws up are dead.

The OpenOffice.org site says StarOffice 6.0 can open WP files but the filters are proprietary and therefore not in OOo. Does this mean they'll open with StarOffice 5.1? I have a copy of that lying around somewhere. And what about MS Office for Windows? Does it support WordPerfect import anymore?

Any pointers will be appreciated. I'd like to recover those articles before everything related to WordPerfect is lost to bit rot.