All right, nofollow is officially gone from here, using the DoFollow plugin. Enjoy. -m
Archive for June, 2006
Wednesday, June 28th, 2006
Tuesday, June 27th, 2006
My earlier nofollow post is now officially the most-spammed blog posting I’ve ever written. All this despite a moderation system–the spammers are getting zero benefit from all this. Deterrent techniques are not working; there will always be some small percentage of “unprotected” sites that the bad guys are happy to exploit.
Adding insult, even after I moderate posts, the links still have nofollow applied (by default in WordPress). Later, I’m going to post some analysis on how and why nofollow fails. If you have any ideas, post them in comments below. -m
Monday, June 26th, 2006
Show up at my place Friday evening for the light stuff, Saturday morning for the heavy stuff. -m
Saturday, June 24th, 2006
I wonder, will this lead to better libraries for dealing with HTTP headers? Or at least better developer understanding of the benefits of not just taking whatever Apache or Tomcat or whatever yields by default? -m
Thursday, June 22nd, 2006
Hey Podcasters out there…post a picture of your mixer on your blog or favorite photo sharing site. As a bonus, you’ll have a “backup” of your settings for future reference. Give it the tag “mixerpic” so we can all find it later. -m
Tuesday, June 20th, 2006
Monday, June 19th, 2006
I don’t know if I hit a glitch in the system or what, but while I was making my periodic browser through the online Apple Store, I noticed a refurb iPod Shuffle for under fourty bucks. I was trying to wait for the next rev, but hey, I have more travel coming up.
I tend to lose (or have stolen, etc.) my portable devices. But if I lose this one, I’ll feel a whole lot less bad than if I lost a $400 one. :) -m
Sunday, June 18th, 2006
I spend a Pareto portion of my work day in three applications: jEdit, Firefox, and a terminal.
I hang around Emacs (and VI)-loving folks all day. Emacs. jEdit. Emacs. jEdit. The tension is palpable. :)
Maybe their influence is starting to rub off on me. Here’s what I want: Dear readers, can you provide comments on any tips to achieve any of these in Emacs?
- I keep about 20 files open at a time, in multiple “sessions”. With one dropdown in jEdit, I can switch to a different 20 files in a different session, all open and ready for editing. When I start the editor, I don’t need to individually open files.
- I use a plugin to show a bunch of tiny tabs at the bottom, so I can see what’s open at a glance.
- Text selection with shift+arrow keys, and copy and paste with Ctrl+C and Ctrl+V. PgUp and PgDn working. (Just like my web browser)
- Ctrl+W to close a tab or workspace. Ctrl+T to open a new tab. (Just like my web browser)
- Ctrl+S to save (Just like my…you get the picture)
- I’m not a heavy mouse user, but when I do use a mouse, I should at least be able to select text with it.
- Line numbers showing on each line.
- Nice fonts (no small feat on BSD).
- Here’s the kicker: I want to attach in from a remote computer (on a different OS) and have the same experience, same files already open, and so on. Here, jEdit isn’t helping (unless I go VNC, but that’s a big hammer…)
I’ve talked about this before, though my environment now is a little different. (For one, I am now making basic use of GNU Screen for my terminal sessions.) Basically, I want an editor that works like all the other software I use all day, instead of making me remember an entirely different set of key bindings. Every extra bit of my limited wetware storage claimed by my tools detratcts from the stuff I really need to be thinking about. Comments? -m
Friday, June 16th, 2006
Friday, June 16th, 2006
when building REST XML protocols. Kimbro Staken. Good stuff. -m
Thursday, June 15th, 2006
For a while, I’ve had an iGo Juice 70. They’ve really nailed the “universal” power adapter for notebooks. Input can be 120 volts, 240 volts, 12 volts (auto), or whatever you get on planes. Output is a series of pluggable tips that work well with 8 different models of notebooks, including everything I own.
The worst thing that can happen while travelling (well, not the worst, but up there) is having your notebook power adapter fail. On my recent trip, this happened…almost. The adapter would still light up, and the Mac would show as still charging, but the level of charge would in fact remain steady or even drop. Certain careful physical orientations seemed to help.
So I went on their web site, used their online support system, and got in touch with a helpful technician. He immediately shipped me out a new Mac adapter tip and cable. Problem solved. This is an example of how tech support should work. -m
Wednesday, June 14th, 2006
I originally wrote this in the comments, but it’s worth a full entry.
If phone companies thought they could get away with it, you’d have this: “I’m sorry, all circuits to Domino’s Pizza are currently busy. Would you like to be connected to our preferred pizza provider instead?” -m
Monday, June 12th, 2006
About a year ago, on this blog I started a series called “Patternalia”, examining various patterns in technology and life in the style of a popular Christopher Alexander series. Over the coming weeks and months, I’m going to revive the series, first of all by getting the old entries into WordPress. Everything will be under the patternalia tag for safe keeping.
Now a cynic might think this is a cheap way to keep my blog rolling during a particularly busy point in my career. But even cynics follow patterns. :) -m
Monday, June 12th, 2006
To me, the true power of the web is in mediating conversations between parties that have never met.
I consider it a success when a new name posts a comment–and comments have been picking up here. -m
Saturday, June 10th, 2006
A reader named Jeff asks:
are you aware of any way to render an XForm as Swing widgets (or heck, AWT for that matter) from within a Java thick app?
Anyone have pointers? Comment here. -m
Wednesday, June 7th, 2006
It’s no secret that Yahoo! has two different photo sites. And two different social bookmarking sites. Until pretty recently I thought this was craziness. But gradually I’ve realized the power of this approach.
You take a smaller, hipper embodiment of an idea alongside a mainstream site. The resulting double-threat can’t easily be matched be either fresh startups or entrenched players. The smaller site can keep innovating and experimenting away, while the larger site adopts the best ideas and keeps improving without freaking out their base. It’s effective. Car companies have known this for years.
Now, my second realization: The W3C is doing the exact same thing with XHTML 1.x and XHTML 2.x+XForms. -m
Wednesday, June 7th, 2006
Lots and lots of blog traffic on Google Spreadsheet, but I haven’t seen anyone make a key point:
The underlying message is: full-blown applications in the browser are now real.
Many smaller players have been doing things like this for years, just as many smaller player were using Ajax before it had a catchy name. But as soon as it had a name and a big player (again, Google) behind it, it left the launch pad in spectacular fashion.
The era of Web Applications has begun. Don’t think that Microsoft Office should be afraid–it’s even bigger. -m
Tuesday, June 6th, 2006
Python+XPath is a surprisingly powerful combination for doing all kinds of arbitrary validation tasks. I should know. I’ve recently figured out a few things that make it even better.
Line numbers in error messages. Libxml2 docs aren’t exactly forthcoming in this area. It’s pretty easy to register an error callback, but maddeningly it doesn’t include line numbers (except when piping errors directly to stdout, as several examples show). The C APIs have a whole notion of Structured Error Handling, which doesn’t seem to come across to the Python bindings. Getting the line number of a node is also straightforward, but I couldn’t figure out how to get the line of an error. Fortunately, the answer is simple:
e = libxml2.lastError() print e.line() # in contrast to node.lineNo()...
Checking for a class. Another common task in validating microformats is checking whether an element has a certain class applied to it. Since the class attribute takes a space-separated list of class values, this is harder than string search–you really need a tokenizer. Again, Python Libxml2 comes through. It’s reasonably simple to write an XPath extension function in Python:
def hasClass(ctx, content, cssclass): rc = "" if (isinstance(content, str): tokens = content.split() for token in tokens: if token==cssclass: rc = "1" return rc # register the function on an XPath context (ctx) ctx.registerXPathFunction("hasClass", "http://some.uri", hasClass)
Tuesday, June 6th, 2006
Monday, June 5th, 2006
For better or worse. In no particular order.
- Affordable unlimited data plans
- Google getting into the operator business
- Yahoo! getting into the operator business
- Affordable phones not tied to carriers
- The iPod phone
- Development of strong AI (yes I say this about everything)
- Development of decent agent software
- Affordable unlimited voice plans
- Collapse of network neutrality
- An active mobile WebStandards task force (ok, not overnight, but still important)
Monday, June 5th, 2006
Part of tech reviewing means dusting off a Windows machine again. I haven’t done more than check email or run Quickbooks online on a Windows machine since I was writing my book in 2003. Remarkably, Windows XP is still the latest desktop OS available. But it needs updates.
Checking my update history, I had 37 updates installed, with Windows Update insisting on installing three more things including “Genuine Advantage”. Reboot. Yay, now I’m advantaged. Apparently the main new feature in Windows Update is a five-minute “Checking for the latest updates for your computer…” screen. Next Service Pack 2, which has to be installed separately.
This is taking a while, so I have time to re-appreciate the nuances of the Windows UI. In the system tray, I see room for six icons, but only four present. (Clicking the little arrow, though, causes a wiggle, with six icons showing in the same space; after a second, another wiggle and back to four). All of the icons are blurry, two of them enough that I have no idea what they’re supposed to represent.
I couldn’t make stuff like this up, but it blue-screened 73 minutes into the ordeal. Unbelievable. On the bright side, it did recognize that the whole Service Pack didn’t need to be downloaded again.
As an aside, the crash tool suggested that I run the Windows Memory Diagnostic tool, so it’s possible the blue screen was hardware related. Amusingly, the Windows Memory Diagnostic tool is exactly 640kb. If you don’t get the tragic coincidence, post a comment and I’ll tell you. :)
The second run through installing Service Pack 2…blue screens again, this time with some USB error. Upon rebooting, a Windows Setup screen draws little dots for several minutes while “restoring previous configuration”, and the desktop warns me ominously that the system is in an “unstable state”, and that I need to go to Control Panel -> Add/Remove Programs and uninstall SP2. The uninstall program helpfully warns me that lots of programs, including “hearts” and “solitaire” toward the top of the list, might stop working, but I bravely press on.
Reboot again. 640×480 resolution, and all kinds of messages like “found new hardware — disk drive”. On the change resolution screen in Control Panel, the “OK” and “Cancel” buttons are off the screen. And another reboot to get networking set up again. At this point I’m three hours wasted, six reboots, and I have nothing to show but an even more unstable system and Genuine Advantage. Wheeeee! At what point does Microsoft throw the “rewrite from scratch” swich? The saga continues, check comments on this post. -m
Sunday, June 4th, 2006
Nokia has announced a port of Apache to Symbian, allowing a full web server to run on a phone, with the quote “there really is no reason anymore why webservers could not reside on mobile phones”. Well, there’s battery life…
Anyway, would you want to run a server on your phone? What would you use it for? Peer-to-peering ringtones? A true “local” area network? Let me know what you think about this prospect. Would you run a web server from your phone? -m
Friday, June 2nd, 2006
Still in development, but I have clearance to blog about a forthcoming Web 2.0 book. So far I haven’t seen a good book that covers all the technical angles of Web 2.0, from designing URL spaces to Ajax to proper use of HTTP. I’m tech reviewing this book, so I have high expectations for it.
Far more impressive than my meager contributions, however, is the list of authors (in no particular order):
- Eric van der Vlist
- Alessandro Vernet
- Danny Ayers
- Joe Fawcett
- Erik Bruchez
That’s a lot of XForms folks. Hmm. :) As you’d expect from a Web 2.0 book, we have tags.
I’ll have more details later–chapters are already rolling in and I have work to do. Keep your eyes open, it’s coming soon from Wiley. -m