Someone has built some Python bindings for Turbovision. I asked for these six months ago, and that post of the top Google hit for ‘python turbovision’, so I shall go and update that post to point at the new library.
-----LugRadio eleven
LugRadio episode 11 is out. Go thou and download!
I’m quietly impressed that we’ve got to eleven episodes and stuck with it, and we’re still doing what we set out to do: talk about Linux, record it for public broadcast, and have fun doing it. Roll on episodes 12 and beyond.
Tribe.net and other online communities
A little while back, I swung over to tribe.net, in response to Rob Anabolic mentioning it by displaying a list of his assigned friends. I had a look around and clicked a few things, but wasn’t all that fascinated. Sparkes also signed up, and later, so did Matt. I wrote testimonials for the three of them and registered in a few of the “tribes“, which are basically message forums around a common theme. At that point, I would have lost interest entirely. Matt has done so: he remarks that’s he’s “spent the time since trying to work out what it’s for“, and that the links between people are cool, “but neither they nor the forums are enough for me to visit regularly“. I concur entirely. However, I did note that (a) you get emailed when something specifically about you happens (someone adds a new testimonial or sends you a private note), and (b) that each tribe forum has an RSS feed (see the nasty orange XML icon next to the “Public URL” atop each tribe’s homepage). So I just subscribed to each of the tribes’ RSS feeds in my RSS aggregator and forgot about it.
This is poisonous behaviour to the whole concept of tribe.net, though. They’re trying to build a community, and I’m a parasite on that community, by refusing to get involved. Instead, I expect other people to provide interesting stuff, and then I expect it to be served up to me steaming hot and ready for my perusal. Probably I should feel guilty about this, but I don’t. There’s nothing compelling there to warrant me getting involved. Part of this is its US-centric nature: as Matt mentions, the “Listings” feature, which finds things that people have listed within a given radius of your postcode, would be useful if it recognised anything other than American zip codes. Apparently Southern California is within five miles of my house, which, barring some kind of major-league tectonic shift which I could hardly have failed to notice in spite of being at work, it ain’t.
I think one of the primary reasons why I don’t get to grips with it, though, is its web-based nature. I don’t like web applications, or at least I don’t like traditional web applications where every damned click results in a ten second wait for a page to refresh. Bloglines is good because I can use it from home and work, but if there was a decent desktop-based RSS aggregator which worked on Windows and Linux, could share its status files between one invocation and another somehow, and let me trivially open clicked links in newly-created tabs in Firefox, I’d move to it like a shot. I have to keep going back to Bloglines and clicking “My Blogs” and waiting; yes, it refreshes itself, but I have no way of knowing how long ago it did that, so I end up clicking again because I want totally up-to-date feeds when I get the time to peruse them. We really, really need to start getting web apps that use the power of browsers to act like a rich-client app, and that means not having to wait. There’s a growing swell of activity in this area, but at the moment it’s marred by everyone wanting you to use their method so they can be seen as the architects of the new wave of World Wide Web 2. This is what everyone fears XAML will be, too, and I cna’t imagine they’re wrong. I’m peripherally involved with a couple of the efforts in this direction as well, but there’s not a lot of forward progress (and, yes, I should get more involved and try to rectify that rather than carping about it. However, see above.)
Maybe there’s a bright future ahead where we’ll basically not know the difference between an application running on the web and one running on the local machine. Maybe, as a nice side benefit, that’ll displace Microsoft’s stranglehold on the desktop, and we can all be happy about that. Maybe, on the other hand, we’ll all be bickering about one thing or another until the end of time. God, I hope not.
Penalties
On penalties? AGAIN?
Bugger.
IE's location field is the command line
John Gruber is talking about the web becoming the dominant application deployment platform over at Daring Fireball. He rightly points out the (severe) usability implications of web-based apps, and goes on to opine that these implications don’t matter—web applications are becoming dominant despite these implications—and that web apps are easier for an organisation to maintain. No rollout procedures. And he’s right. However, rarely for Gruber, he’s wrong further down:
Most email web apps (e.g. Gmail and Yahoo Mail) run on any computer with IE, Safari, or any Mozilla-derived browser. Most weblog web apps (e.g. Blogger, Movable Type, WordPress, and Textpattern) run in every browser I’ve ever tried. These apps are effectively usable from any Internet-connected computer in the world…There are certainly exceptions — banking sites come to mind — but for the most part, web apps are being built to run in any modern browser, not just IE.
That’s true for apps that are on the web, true. And those are the apps that home users will use—Gmail or Yahoo Mail to read their email, WordPress or Blogger to write their weblog. Even banking sites are getting better. The issue here is corporate apps; real bought software. A high proportion of enterprise-class applications now come with a web front end as well as or instead of a native client. And you know what? Damn nearly all the ones I’ve seen are IE-only. I rail against this every time we look at an application at my company. I always, always ask the sales team whether the front-end is cross-browser. And most of the time it isn’t. Corporate users don’t use Gmail (well, they do, but they do it in their lunch hour or while the boss isn’t looking). IE’s blatant incompatibility, and enterprise developers’ coding for that incompatibility, locks corporate desktops as surely into Windows as Microsoft Office does. I freely admit that there are some things that IE does which other browsers do not: I’ve been advocating switching to Firefox (or previous incarnations) at work for well over a year now, but we can’t do it until we get seamless authentication where the user isn’t asked for a username or password when accessing our intranet. Those things, however, while critical, won’t solve the problem if they are fixed.
I wonder if perhaps we need the opposite of Dean Edwards’ IE7, some JavaScript which emulates all things IE in Mozilla, implemented as a Firefox extension. Then you just install the extension and suddenly all IE sites work. It’s not as if IE is a moving target at the moment. It would be good if we could, in some way, detect whether the site you’re viewing is expecting IE—if they use JavaScript, we can look for accesses to
document.all, but we could also try and detect IE-style CSS or IE-style HTML —and switch in the extension’s changes if that’s the case. Still wouldn’t solve my seamless authentication problem, but it’d be a neat way of getting Firefox to support the sites that it doesn’t currently support without polluting the browser itself.
Gmail: initial impressions
So, after rejecting a couple of Gmail invites that were offered on grounds of principle, it occurred to me that I was slagging off the Gmail interface without having even seen it, based solely on other people’s statements about it. This is, not to put too fine a point on it, a bit unfair. So I took one on (thanks, Paul), and I’ll note down some thoughts as I log in for the first time.
I can’t have “sil” as a username. Damn. So “stuart.langridge” it is, as “aquarius” was taken (curses!). (Don’t send me mail to that gmail address if you want to be sure I’m reading it!)
After completing the login screen, I got to a page saying “Redirecting to http://gmail.google.com/gmail/help/intro.html“, which conspicuously did not redirect there. In fact, that content is all the page had; no HTML at all. Don’t know what that’s about. So I cut-and-pasted the URL into the address bar.
Oddness. I log in, and I have a message from Paul. I bring up the message, and below the text of his email there’s an empty text box. So I click on the text box…and it disappears, to be replaced by a whole “reply to this mail” widget, with a ‘To’ box, another box to edit the mail, send button, the works. Weird.
Works pretty fuckin’ quick, I’ll say that for it. Is it all switchable JavaScript, or is it just bloody fast servers?
The check spelling interface is pretty nice, although the little pop-up menu of suggestions takes a while to come up.
Bastard! I was signed up with a Google account so I could use it for posting to Usenet, because my ISPs newsserver doesn’t carry alt.fan.grrm), and it’s just sent me a mail saying that my Google account has been changed from sil-google*kryogenix.org to stuart.langridge*gmail.com. Bastards! Now all my saved logins won’t work, I bet. Dammit. And all mail in response to Google usenet postings will go to my bloody Gmail account! Arse!
Default cursor location for replies is above the mail. Thanks a fuckin’ lot for encouraging top-post replies, Google. I thought they had a clue?
It is really fast. Almost fast enough to not make it matter that it’s webmail.
Clickable stuff doesn’t always appear clickable. When viewing a threaded “conversation” (an exchange of emails between you and someone else), they are shown with a header for previous mails and the latest mail displayed in full. The headers for previous mails are clickable, but there’s no indication of that, so you have to click them to see if they do anything. The indicator shouldn’t necessarily be the hand cursor (it’s not a hyperlink, this is a web application) but there shold be something. A subtle shading on the background or something, perhaps. Otherwise you have to click random places to see if they do anything, which is like playing The Secret of Monkey Island again. It is not so intuitive an interface that everything that you think might be clickable is so.
I like this conversations feature, I do.
If you drop down the “Apply label” list, to try applying a label, you get an error saying “No conversations selected“. If the menu isn’t useful until I select a conversation, disable the menu! Moreover, the error message appears above the main page content; I didn’t know what had changed when I picked off the menu, I just knew that the screen had shifted down a bit. Took me about 10 seconds to work out that it had displayed an error message and that that message applied to what I just did.
Hm. Using the o keyboard shortcut for “open” opens the most recent message (or is it the most recently looked at message? or the top one in the list?) Why can’t the label thing work like that?
So far, it’s a very (very) fast and slightly confusing webmail application. More news if and when I get around to looking at it again.
Emulating IE in Mozilla: further thoughts
In my previous post, I suggested that an IE emulator extension for Firefox would be a good idea. On doing a bit of further research through the Mozilla Tech Evangelism bug list, it seems that sites that work in IE and don’t in Mozilla fall into one (or more) of the following categories:
- Use of DOM0 Mozilla-unsupported JavaScript, like
window.eventanddocument.all - Browser detects that prevent access to the page at all
- Coding for IE bugs like not applying
heightcorrectly in CSS or specifying sizes without units (“30” instead of “30px“) - MIME type bugs where pages are served as
text/plain
Point 1 can be, I would think, mostly fixed with the Firefox extension I mentioned. (In fact, WebFX’s Erik Arvidsson has already done most of this work with IEEmu, but I don’t know what the licencing requirements are on it).
Point 2 might be fixable and might not; we could search the in-page JS code for something that looks like a browser detect, but it would be bloody hard to know whether it correctly detected Mozilla and allowed it through, or whether it blocked it (or all non-IE browsers) even though it could render the content. This might require user interaction to say “pretend to be IE for this page only“, but that’s a bit against the proposed unobtrusive nature of this extension. It might be possible to DWIM it with some thought.
Point 3 might be fixable and might not; it could be fixed in stylesheets andstyleattributes, which might take care of a lot of the problems, but to have it fixed properly would require Mozilla to honour unitless dimensions aspx, which might not be easily doable from an extension.
Point 4 probably can’t be fixed; IE ignores the server-supplied Content-Type if it likes, and Moz doesn’t. If we fix the above cases, though, we’ll cover a large majority of “broken” sites.
The extension would probably want to hook a page’s load event and run before any in-page script. It would then scan for use of any of the stuff that it “fixes”: if it finds any, it changes the DOM by adding IE-specific features to it and overriding some (working) Mozilla features in favour of the IE versions, and it alters the page’s HTML to be compliant where it needs to. This wouldn’t cover inline script that isn’t event-driven, however. The extension’s actions should be overridable in both directions: you should be able to tell it “do the IE thing on this page even though you don’t think you need to” and “don’t do it even though you think you should“, but, critically, the user should not have to use these things. It needs to work invisibly and automatically, and then it stands a good chance of being a success.
A move to Evolution
So, I thought I’d try Evolution rather than Mozilla Thunderbird to read my mail. I start it up and it doesn’t show anything but errors: fortunately, that seemed to be a Debian bug, and was easily fixed. Once I got it configured with my IMAP server and started, I discovered that the pointless “Local folders” are there and are the default. Why? I’ve told you I’ve got a fucking IMAP server! Why would I want local folders? Disable them! Or make them not be the default. I set up my filters (to filter mailing list mail into certain folders), and then thought: I shall now read my mail. First thing I found is that the keybinding for “next unread message” was the rather random [ character. Ah well, that’s OK, I suppose. But that only means “next unread message in this folder“. It would appear that you can’t jump to the next unread message anywhere. That’s really, really annoying. So, looking further on, there’s no spam filtering, which Thunderbird has (rather successfully, too). When Evo starts up, I get a pointless “summary” page, like Outlook Today. So I thought: can I disable that? Looking around in the “Settings” (which is under the “Tools” menu; why is it not “Preferences” under “Edit“, like everything else? Could it be because Outlook has “Tools | Options“, I wonder?) I discover a “default folders” thing. So, set the default folder for Mail to the Inbox on my IMAP account; maybe that’ll make it the folder that Evo shows me. BAM! Crash. So I pick “inform developers” and get the Gnome “Bug Buddy” thing, which waits a bit while it gathers debugging information and then shows me a list of products, asking me to pick the one that caused the crash. How can you not know what it is? You’ve just stack traced the fucker! Anyway, I look for Evolution in the list: it’s not there. Look through the whole list, find “Ximian Evolution“. It’s called “Evolution“. It says so in the title bar. I don’t care who made it. If you want ego feeding, go to a vanity publisher. So I pick Ximian Evolution and I get “This Application has bug information, but Bug Buddy doesn’t know about it. Please choose another application.”
So I chose Mozilla Thunderbird again.
Free choice and constrained choices
Matt responded to my thoughts on Gnome’s approach with a discussion of the nature of choice:
Gnome is free to innovate and show the world that there are better ways of doing things, but at the same time, exercise some of their own community’s rhetoric and give people a choice. The idea that it’s okay for Gnome to deprive their users of choice over the way they use their computer, is another reason that the Linux world is annoying me at the moment…Why should it be an all or nothing decision, for a user to make? ... If Gnome is the best system for a person, corporation or whatever, except that the extra training required because of the spatial approach makes it unviable, why do people have to ditch an entire, very well developed desktop environment?
The notion of choice, that you can combine different bits into a desktop of your choice, custom-built by you for you, has been the war-cry of Linux since there first was a Linux desktop. I think, though, that it’s a pipe-dream, and the quest for this pipe-dream has hurt the development of the Linux desktop beyond measure. In an ideal world, a utopia of development, we’d have open and defined standards that everyone implemented, and those standards would define how individual components could slot together to form the perfect desktop. KDE applications would work on a Gnome desktop; Gnome applications would work on a KDE desktop. Currently, they do not—while you can run them, they use different UI guidelines, different configuration databases, different inter-application RPC methods. The pipe-dream is that organisations like freedesktop.org can define these interoperability standards and give us our utopia. But I can’t see how that’s going to happen. Let’s take the example of a KDE application which needs to interoperate perfectly with a Gnome desktop. It should, when a URL is clicked, start up the browser that the user has configured as their browser. Now, it can either ask the KDE configuration mechanism (as it currently does), it can ask the Gnome mechanism, it can ask the KDE mechanism which (under the covers) asks the Gnome mechanism, or it can ask some kind of abstraction layer which knows how to ask both the KDE and Gnome mechanisms. If the freedesktop people specify a One True Config Approach, and it’s gconf (which it looks to me like they’re gearing up to do), how likely is it that the KDE people will start using it? And that’s just “how to find a web browser“. This is why I suggested, in LugRadio episode five, that we should abandon KDE and concentrate our development work on Gnome. While the ideal of infinitely-pluggable desktop components would be great, I really can’t see it ever happening. To put it another way, if KDE applications and Gnome applications and non-desktop-integrated-applications all work the same way, to the same UI guidelines, using the same configuration databases and the same RPC technology, haven’t we then essentially created one desktop environment anyway?
Further, Jono has also weighed in on the debate with some ideas on Gnome’s status as a framework:
GNOME is not written to be installed by the regular Joe – it is intended as a framework that distributors assemble to target their audience. This may mean tweaking the magic GConf key and turning the spatial Nautilus off, but that is the choice of the distributor…This is an area where GNOME and KDE are distinctly different – the GNOME guys are pushing for real and different innovative features, whereas the KDE folks are simply taking any feature and providing an off switch in the Control Center. I would love to see KDE become more framework orientated such as GNOME…The greatest sound engineers never add more bass/mid/treble to a sound, they simply take the other frequencies out.
I’m not sure that I view Gnome as a framework in quite the way Jono is describing, but I’m in wholehearted agreement about Gnome’s innovative approach as opposed to (an apparent) stagnation in KDE.
I can’t imagine how a preference to turn on and turn off the spatial Nautilus, as an example, would be anything other than confusing. (I appreciate that Matt isn’t talking about this specific example but more the general problem, but the point still stands.) Where would such a preference be? It would be confusing if you don’t know what it means, and it would encourage people to turn it off without trying it. Jono himself has been complimentary about the spatial Nautilus, suggesting off-line that he didn’t think it would be a good idea but has since found it to be a better system. This all boils down to the problem: if you know better than the users, how much do you enforce that? If you enforce it too much, then you’re restricting choice, and god help you if you’re wrong. If you don’t enforce it enough, then you’re missing a chance to really help your users even though they don’t know that they need help. -----
Doing the right thing is boring
Matt is bored of the Linux community. In response to me quoting Jorge on Gnome’s approach, he responds that “Jorge seems to think that ‘OSS is not a democracy’ is a valid response“, going on to elaborate further:
“The truth is that, outside our little world, such a reply wouldn’t even be ridiculed; it’d simple be ignored. Why? Because democracy has nothing to do with it. In the real world, listening to your users and acommodating their needs is a simple matter of survival. Increasingly, Linux is operating in the real world. Gnome is often trumpeted as the corporate desktop of choice. If corporate IT managers want an easy way to switch off the spatial approach, then Gnome will have to offer such an option, or remain ghettoised, in the world where “XXX is not a democracy” is a valid answer to why a system doesn’t do something. If not, Jorge’s suggestion that people shouldn’t use Gnome, if they don’t like the way it works, will translate into less corporate money, meaning fewer developers and a poorer system.”
I don’t agree. You see, this argument is one that applies to the government. In this world, the best government is truly, perfectly representative: it does what the people want. Now, in the best of all possible worlds, I do not think that that’s the best government at all, and nor do I think it’s the best approach to take for software development. People do not know what they want, or they do know and are wrong, through laziness or lack of interest or lack of education as to better alternatives. The ideal software development team, as with the ideal government, should be people who take a stand on The Right Thing To Do, even if their users or their constituents don’t like it.
There is a problem here, I can hear you saying. If we allow that, if we voluntarily cede our power, what stops them doing what they consider to be the right thing when it actually isn’t?
Nothing.
That’s the flaw in this approach. I freely admit this. But if you asked most Windows users what they want out of their computer systems, I suspect they’d say “it should do what it does now, but always work“. There’s no space there for innovation, no space for giving people a better system than the one that they already have. Moreover, if all you can offer people is a slightly better version of what they already have, then where’s their motive to switch? I think that Gnome’s move to the spatial Nautlius, despite widespread criticism, is one of the bravest moves in a software project that I have ever seen. They genuinely believe that it will make users more productive, more efficient, and allow them to interact with their computers in better and easier ways, and so they did it, even though people didn’t want them to. The difference between Gnome and the government is that you are free to not use Gnome, and you are not free to not have the government, and that can allow for flexibility. If the Gnome project were to step away from what they sincerely believe to be the Right Thing then they would be doing themselves, their users, and the free software world a serious disservice. If there’s a better way to do things, then do it and educate people as to why it’s a better way. Don’t abandon it. I would be bitterly disappointed if their reason for not implementing a genuinely better approach was “it’s different to what currently exists“. Matt says that “If corporate IT managers want an easy way to switch off the spatial approach, then Gnome will have to offer such an option, or remain ghettoised.” There is a third way, which is that you show corporate IT managers that if they don’t switch it off, their users become more productive or their lives become easier. I would rather see Gnome ghettoised than selling out everything that it is for mere popularity. I use Linux because it’s better. If it becomes a slavish imitation of Windows because that’s what people say they want, or it stops forging its own path but instead panders to the lowest common denominator, it won’t be better. It’ll just be more of the same. -----
Bikesheds
Many on /. are complaining that GNOME developers are forcing their “view” of the desktop upon them. “Why can’t they put a preference?” and “They’re ignoring advanced users and dumbing things down.” ... Now I’m going to say something controversial. So? Tough. OSS is not a democracy. Live with it. ... There are a dozen real problems in GNOME and the “Linux Desktop” that need to be fixed. fam sucks, menu editing needs to be redone, coaster needs to get finished, we need zeroconf working throughout the desktop, the lockdown stuff needs to get finished, we desperately need Project Utopia and meanwhile the armchair critics are complaining about window colors. Window colors.
Sing it, brother.
iCapture
Now, I’ve seen BrowserCam before, a site which will visit a URL in one of many browsers and take a screenshot for you, enabling you to see if the site works in one of those browsers that you just don’t have the chance to test. But it costs money, and I don’t like paying money because I’m cheap. Enter iCapture, which takes shots in Safari on a Mac, and its sister site ieCapture which takes shots in Firefox, Opera, and various IE versions on a PC. Fantastic resource.
I need to think about getting IE running under Wine here on my Linux box, and installing Konqueror and Opera properly. Konqueror is supposedly close enough to Safari that you can test in one and that will count for the other, although I have my doubts as to how quickly the Safari changes to KHTML are merged back into Konq and made available in Debian. If anyone’s got any further information on that I’d be very interested to hear it.
Microsoft sue goverment for using Free Software
Microsoft are apparently suing the guy responsible for the deployment of Free Software in Brazil, because the Brazilian government’s decision is wrong for the country. The online petition they’ve set up is in Portuguese, but it’s already collected 1300 signatures The Babelfish translation of the petition into English isn’t great, as machine translations never are, but it does contain the glorious, glorious phrase “The salesman of the mega-company-monopolista“. Now, I wonder which company that could be referring to?
St Julian
Andy points me in the direction of a Guardian interview with Julian Cope, who was our muse and guide through the Men With Big Stones tour last year. (_Still_ haven’t done the field notes. I am so slack.) This year is “Men With Big Thrones”—we depart for Cornwall in the first week of August in order to discover the secrets of King Arthur, whence came Excalibur, the true location of Avalon, and whether Newquay Steam Beer tastes as good as I remember it. We have, currently, no guide, no muse, no canonical reference work from which to draw inspiration for this grand tour of Arthurian history. Any suggestions are gratefully accepted, as long as they acknowledge that Arthur was in Cornwall—recommendations for books that postulate a Camelot somewhere in the East Midlands will not be entertained. Perhaps our best course is to watch Excalibur repeatedly, although when Andy suggested that I thought he was talking about the film with the flying sword. That, of course, was Hawk the Slayer, which is nothing to do with Arthur at all.
Google definitions
Tom castigates a scholar (and rightly so), but, in doing so, links to definitions of the word “congeners” using a Google search for “define:congeners“. That’s really cool. Google as dictionary! I didn’t know about this. The last few weeks have been a series of minor discoveries of cool things.
LugRadio the tenth
The tenth episode of LugRadio is now out! It was good fun doing this one, and there’s some god segments in it, I think. Marvel as we descend into 80s arcade game nostalgia! Fear how we rip the piss out of one of our listeners for his choices of favourite software! Quiver at our stubborn refusal to put permalinks to individual episodes!
Can’t believe we’ve done ten episodes. Cool.
setTimeout, objects, and anonymous functions
In conversation with Dunstan last night, I was advised of the facility in JavaScript’s setTimeout to pass a function, rather than a string, and have that function executed after the timeout. Did everyone else already know about this? I’ve been fighting the “how do I get my object into a string? oh, I guess I’ll make it a damned global variable” thing for years! Why didn’t anyone tell me this? JavaScript FAQTS has more.
-----Walking around London
So, Saturday was Jon’s stag night. We were all due to meet up in All Bar One in Chicheley Street, near to the London Eye, at 3.30. I got to Waterloo, the nearest tube station, at 2.30pm. Deliberately. I don’t often go to London. When I do, it tends to be for meetings and things like that, so I’m caught for time. This time, I arrived an hour early so I could have a little wander around the South Bank, the bit of London with the Houses of Parliament and the world’s biggest Ferris wheel. I care not that the site there reckons that it is not technically a Ferris wheel. Perhaps we should just call it the London Folly and be done with it, but I fear that the Millennium Tent may hold that distinction unto eternity. Anyway, it was an impressively sunny day, so I got to walk around with my hands in my pockets and admire the area. It’s very clean. Pretty, too. It must be difficult to think of squalor and riots when you walk out of your place of work into this area of calm and niceness. I walked into the pub and a rather harried barmaid asked, in a rush of words, what I wanted to drink, apologising for keeping me waiting. “It’s Saturday,” I said. “It’s the weekend. I’m in no rush.” Sadly, she didn’t hear me the first time, but repeating it got me a smile.
Gnome-blog
The concept behind gnome-blog is cool. I just need to do a bit of work with it; it needs to not add HTML to my posts, because the textile parser does that for me. But I don’t want a daft preference to say “add HTML“, because that would just be annoying and pointless and Havoc would rightly beat me up. When clicking “add link“, after adding the link, focus should be returned to the main textarea. When clicking “add link” with text highlighted, that text should be entered into the “Text” bit of the link box, and the link should replace that text when you add it. Bold and italic should be toggles that can be toggled on, not just buttons that apply only to the highlighted text.
These aren’t random moans. I’m going to fix them. Just need to get some time…
Test driven development
”If you’re a Software Development Manager, ask your engineers if they’re using TDD, and if they’re not, make them start.” Is anyone actually doing this? I mean, lots of people, including me, think it’s a good idea, but who’s actually doing it? Hands up, now!
2004-06-14-development266512393049
CAD for normal people
Rob Annable notes the existence of LeoCAD, a CAD program that uses “bricks similar to those found in many toys (but they don’t represent any particular brand)” to let you build models. (Convoluted way of avoiding saying “Lego“, but the Lego people are not all that tolerant about use of their brand.) Anyway, it lets you build brick models. I was hoping that it was going to be “Oop!“, as described in Douglas Copeland’s MIcroserfs, but it’s not quite that cool. (See the Oop section a third of a way down this page.)
-----The web development best practice bible
Simon Willison is talking about web development best practice, of which standards are one part and information architecture another and design another and writing skills yet another. “Let’s move forward to the other pieces of the puzzle.” I’m pretty much in total agreement with this; I just have one thing to say. If and when we put together the bible of web development practice, the Wiki that defines all good techniques and methods, we should call it Principia Helvetica.
JavaScript and accessibility
Simon W alerts me to Matt May’s call for JavaScript hackers to build accessible scripts to be released alongside version 2.0 of the Web Content Accessibility Guidelines. He needs a couple of hours a week from people. I can’t decide whether I have a couple of hours a week :( But I’d really love to get involved in this, so maybe I’ll find the time somewhere…
One-image rounded corners
A clever new CSS demo over at 456 Berea Street: CSS Teaser Box (via Simon Willison). It gives you rounded corners on a CSS box using only one image. The flaw is that the box has to be fixed width, but it’s still a useful technique.
The reason that it’s cool, however, is that I couldn’t work out how it worked at first. After some discussions with Simon, we sussed it; it is clever! The P inside the box has a coloured background; this coloured background hides the extra bits of the background image (the bottom of the box on the h3’s background, and the top of the box on the div’s background). That’s smart, that.
XUL adding to JavaScript
Can a XUL extension in Firefox add extra JavaScript functions or objects that ordinary HTML pages can use? Say I wanted to add a getElementsByClassName method to the document object so my pages could use it directly as long as the extension was installed in my browser: is that possible?
Yes, I know it wouldn’t work for everyone else. There is a point here. :)
When your job is your hobby
Rob Annable extols the trials of being an architect, where “every city becomes a scale model to pick up and turn over in [one’s] hands“. Being a hacker is much the same. Every business process becomes, in your head, a program to do it for you. Every inefficiency, every piece of printed paper, every laborious checking procedure becomes a source for more anger that the world could be better and isn’t. Every computer that breaks, every bit of software that doesn’t work right, every person that feels alienated or frustrated when they have to use a computer and it doesn’t work right, all these things are a source of embarrassment. You feel ashamed that software isn’t better, that people can’t see the beauty and the elegance of a program that Just Works, and it’s all our fault for not getting it right.
Life and happiness
Mark has been assessing his life with the aid of the Clean Sweep Program. He’s retargeting his efforts to improve the things around him based on the list it gives you. He’s got a score of 77 out of 100—that means that out of the 100 targets, he’s already doing 77 of them—and the remaining 23 are “a lot to think about“. I’ve just run through the 100 points, and the thing that stands out the most is that, of the 25% of points in the “Physical Environment” section, I didn’t meet one of the criteria. Not one. While any distance from a perfect 100/100 is (according to the Clean Sweep people) a cause for concern, Mark may be doing better than he perhaps thinks. Naturally, being relatively good on this sort of scale is worthless compared to attaining a good absolute score, of course.
Blackout
Remember when I was allergic to work? It seems it wasn’t work. A few days ago it happened again. I think it’s some kind of heat rash thing. It is most disturbing.
And then last night it happened for a third time. So I went to have a cold shower, based on my new “it’s a heat rash” theory. Didn’t seem to help. Did I mention last time that it’s the most itchy thing imaginable? Anyway, it was amazingly hot and oppressive inside the house, so I took an antihistamine and sat in the back garden. Just wearing a towel around my waist, no less; I am glad my garden has high fences. I didn’t feel any better at all; I felt really, really, really hot, and my heart was racing, and the blood was roaring in my ears. “I am not well, am I?“, I thought. So I got up and stepped back inside.
And then I collapsed.
That wasn’t a very pleasant experience.
I knew I was doing it; I felt myself fall, but from a weird third-party perspective. It didn’t occur to me to, say, stop myself in any way.
So I got up again and staggered up the stairs to Sam. I stepped into our bedroom and said, “Sam? Help.”
And then I blacked out.
Well, I assume that that’s what happened. I remember speaking those words, and then—immediately afterwards—I heard Sam say “Stuart? Stuart? Are you alright?” and she was bent over me and I was lying on the floor, on the landing at the top of the stairs.
That’s never happened to me before. Can’t say I like it much, especially as I was bloody close to having fallen down the stairs.
That might have hurt a bit.
Anyway, I gashed my elbow rather seriously—apparently it hit the corner of the archetrave on the way down, ripping the phone off its wall mounting as well—and, like, I’d blacked out. I was somewhat amazed by this.
Oddly, I felt quite a bit better afterwards.
So I lay in bed and rang the doctor. While waiting for him to get back to me, I tried sitting up and had the lovely experience of feeling dizzy and having my vision go black at the edges. That was a nice experience. So I lay back down again, secure in the knowledge that this was clearly the better part of valour.
Apparently I have a strong reaction to antihistamines, according to the doctor on the phone. I certainly was knocked for six last time, and this time was worse, so I am off to see my doctor today to say: what’s going on? Can I now not walk around my own house without fearing loss of consciousness? I have work to do!
We shall see what he says.
Bewitch me any time you like
Nicole Kidman to star as Samantha in a a film version of Bewitched! I shall be watching that in the cinema, I think :)
Cool technologies
Jono has got Project Utopia working (the bastard!) One of these days I’m going to take one of these cool technologies I rave about and actually get it working before someone else does.
-----Pasting into a Windows 2000 cmd window
Did you know that if you right-click on a cmd.exe window in Windows 2000, it pastes the contents of the clipboard? If you didn’t, then this is dead useful—a lot easier than bringing up the menu and saying Edit | Paste. If you did know, why the hell didn’t you tell me? Would have probably saved me, like, a whole day over the last few years.
2004-06-05-tolerate988198988738
SSL
Does anyone actually really think that they need to use SSL? Or do they just add it because people who do not know will think “where’s my little lock icon? this is insecure!” if it’s not there?
Have there ever been any occasions when someone lifted a password or credit card number off the wire rather than just owning the end machine and nicking all its credit card numbers?
Update: topic covered eloquently and in better detail in ”What’s Your Threat Model?”
Not putting up with shit
Here’s a billion-dollar question: Why are Windows users besieged by security exploits, but Mac users are not?
John Gruber states that “Mac users don’t tolerate shit”: the reason that there is no adware or spyware for Macs is not that “Windows has a bigger market share“, but that “If some ‘freeware’ software for the Mac surreptitiously installed some sort of adware/spyware/crapware, there’d be reports all over the Mac web within days. Uninstallation instructions would be posted (and thus made available to all via Google), and the developer who shipped the app would be excoriated.”
I agree. Exactly the same arguments work for Linux, too, which doesn’t have any adware or spyware or crapware either.
The reason this works is because there is a Mac community, in the same way as there is a Linux community. There simply aren’t all that many Mac users who use their machine for everything that they do and don’t read Mac websites in some way. There are, I don’t doubt, plenty of people at work using Macs who don’t, but then using a machine at work is not the same at all as using one at home; for one, it’s considerably unlikely that you’d install a filesharing application on it.
Take a glance at my own personal home of the moron – a page which attracts posters who want to be rich and famous. How many of those people are using Macs or Linux? There’s a big class of people out there who I forget about, who see their computer as a thing with which they can talk to their friends with MSN, who read their email with Hotmail, who characterise problems as “My Windows is broken“. As Gruber says, “Many Windows users are simply resigned to the fact that their computers contain software that is not under their control…They’ll tolerate an annoying application that badgers them with pop-up ads“. People who have chosen to use a Mac are not like this, but they’ve made some kind of decision about their choice of technology, and that kind of choice is unknown to the people posting to my “how to be rich and famous” page. They don’t even know that there are choices. Since, by definition, anyone using a Mac has to have made a specific choice to do so (since Windows is the default, with its 90% market share) they are, also by definition, not part of a group who don’t know about choice in technology.
If the Mac and Linux had users like that, then I think that there would be crapware for the Mac and Linux. Currently, they do not, but I fear we are rather complacent. Gruber talks about how Windows crapware that wants to launch automatically can hide itself in a myriad places, and the Mac has no equivalent for most of those places. I’ll be honest, I doubt that that’s true; there are probably more places (Run and RunOnce in the Registry, win.ini, the Startup folder, autoexec.bat) but not that many more. Moreover, quite possibly most Mac users do not know about the places on the Mac where autostarting crapware can hide, but they would have enough nous to know that there was a place where it would be, even if they don’t know where that place is. To people without even that level of technical knowledge, trying to explain what a folder is is an exercise in complexity. Trying to explain what the Registry is is an exercise in futility.
What if crapware installed a link to itself in your own .bashrc? Does that only get run when you start the Terminal? How easy would it be to explain that to Mac users without Unix knowledge?
I think that both the Mac and Linux have a better setup than Windows, and that they are inherently less vulnerable to crapware in general. However, I also think people are mistaking “there isn’t any at the moment” for “they are totally invulnerable“, and that’s not the case, and if either had 90% market share (or even 50% market share; I’ll settle for splitting the market with Mac people, that’ll do) then we’d discover just how invulnerable they are.
Windows Media Player 10
Along with tight integration, Microsoft is looking to broaden the reach of its DRM technology. That means controlling access to subscription-based media and possibly the type of media that can be viewed or listened to on your digital media player. The key will be how Microsoft treads the thin line between Fair Use and DRM. On the other hand, if WMP 10 will let me sync my music library to my laptop and convert it to a lossy format on the fly, much can be forgiven.
That thin line is the interesting point. I suspect I would define that line as being a lot closer to “it’s my music, give it back” than MS and tbe RIAA would, especially given the RIAA’s approach to these things—as Ars Technica point out, “if someone finds they can’t make a copy for their kid so he can play it in the car, you’re going to have a lot of people returning broken CDs.”
On usability
EInk
EInk seems very cool.
The culminating dream of E Ink is to combine these attributes to create RadioPaperTM, a display with the readability of ink on paper but with the added benefit of digital technology to download newspaper headlines or a best-selling novel at the user’s command – providing information to anyone, anywhere. Their predictions are (unsurprisingly, for an essentially vaporous product) grandiose, but compelling.
It’s The Diamond Age coming true. -----
Photo management, again
I want a photo manager application for Linux, ideally in plain Gtk but for Gnome would be OK. (For KDE would even be OK if I was pushed.) It should:
- Let me add arbitrary metadata to a photo.
- Let me sort photos into albums either by explicit categorisation or by populating a “virtual album” with the results of a metadata query, like Evolution’s vFolders.
- Give me one-click publish-to-a-website for the album on screen, or the photos selected (if there are any selected).
- Start up automatically when I plug in my camera and drag all the photos off it into an album called “new photos” or something. While it’s doing this it should show a nice progress dialog, but it should not be modal; the application must still be usable while it’s adding new photos.
- If it’s downloaded a photo once, and I’ve moved it out of the new photos album, don’t do it again. Do not work out whether you’ve downloaded a photo based on its filename; some cameras reset the filenames. Check by md5 hashing the photos in the album or something.
- A few nice direct transforms on a photo, like rotations and red-eye reduction.
- That’s it. Importantly, that’s all I want, I think. It needs to not do loads of other crap I don’t want that just clutters the interface.
Does it exist?
New box, new danger
As Jono notes, we’ve moved our sites to a different machine, at Bytemark Hosting. So far it seems good; the move yesterday went well, despite us discovering that we know nothing about Exim and not all that much about what the options to tar actually mean.
Big weekend of drinking, this past weekend. Oof. Good fun, though; we had people round on Saturday and it was a real laugh.