People

July 02, 2008

Gervase Markham

ORG E-Counting Report Published

The Open Rights Group has published its report on the e-counting of votes cast in the London Mayoral Elections in May. I was an Electoral Observer for ORG at these elections, at the Alexandra Palace count centre.

The report finds that:

...there is insufficient evidence available to allow independent observers to state reliably whether the results declared in the May 2008 elections for the Mayor of London and the London Assembly are an accurate representation of voters’ intentions.

by gerv at July 02, 2008 07:38 PM

July 01, 2008

Gervase Markham

Summer of Code 2007 - "Six Months" On

In the past, I have written a report about the fate of the Mozilla Summer of Code projects, six months after the projects closed. In this case, due to delays on my part, it's more like ten months, and the SoC 2008 is already up and running. Still, better late than never. For reference, here are the reports from the 2006 and 2005 SoCs.

In 2007, we had ten projects. I've spent some time looking into the current status of all of them, and thought I would share those results with you.

I should say before I start that the following assessment is just how I see it, sometimes based on limited information. People with better knowledge should feel free to post corrections.

Name Student Mentor Story Current Status Code useful to Mozilla? Student Continues?
Enable Roaming Support in Thunderbird Nick Kreeger David Bienvenu A seemingly-comprehensive patch was written and there were several rounds of review and discussion. Work continued until December, but then seems to have stalled at the review stage. Patch has been awaiting review since December 2007. Potentially Yes - making all sorts of mailnews fixes. (But was involved before.)
Implementing cross-session download resume Srirang G. Doddihal Dan Mosedale Written during SoC; completed just before deadline. Part of Firefox 3 since alpha 8 Yes Yes, odd bits and pieces.
Places: Indexing Visited Pages Kunal Kumar D. Jain Dietrich Alaya A patch has been created, but needs updating to take review comments into account. Patch has been awaiting update by student since December 2007. Potentially No
Link Fingerprints Edward Lee Gervase Markham Implementation written, but spec (RFC) received a chilly reception from the IETF; student ended up doing other work at MoCo HQ. Project dead. Probably not Yes - the power behind AwesomeBar, also working on Download Manager.
JPEG2000 Support for Firefox Benjamin Karel Stuart Parmenter Six platform-specific extension XPIs produced (3 platforms x FF2/3). Progress reports. No sign of the code getting checked in. Code is available as XPIs. Unknown Yes, odd bits and pieces.
Microsummary Generator Web Service etc. Ryan Flint Myk Melez Basic functionality implemented but it still needed a lot of polish and additional development at the end of the SoC No further development Probably not Yes - works for Mozilla Corporation
Camino : Tabosé Jeff Dlouhy Stuart Morgan Feature was implemented. Progress reports. Working, if unpolished, code on trunk Yes Yes
Integration of Thunderbird with Vista Desktop Search Damitha Pahan Fernando Scott MacGregor Some code was written but the project seems to have died at the end of the summer. Some code in the bug; no idea if it works. Probably not No
Make SeaMonkey Not Suck As A News Reader Markus Hossner Karsten Düsterloh Various patches were written and checked in. Communication over ICQ so no progress reports. Code in Seamonkey. Yes No
Firefox automation & Tinderbox integration K Harishankaran Nagappan Alagappan Testcases were written. Code used in tests. Yes No

So of the 10 projects from 2007, 8 or 9 had happy mentors at the end, 4 had code which was immediately and directly useful to the project, and several people are still part of either the Mozilla or another open source community. This is about the same proportion of happy mentors as 2006, but a smaller proportion of projects produced directly useful code. There could be several reasons for this. At least one project foundered on issues outside the control of student or mentor; a couple more got stuck at the review stage (one because of the student, another because of us). So a mixed bag - but I guess we can't have total success all the time :-)

by gerv at July 01, 2008 11:30 PM

June 30, 2008

Gervase Markham

Mailing List Descriptions

I just filled in descriptions for a load of mailing lists which didn't have them. Please check that the description of lists you care about matches reality. If not, let me know.

by gerv at June 30, 2008 10:01 AM

June 27, 2008

Gervase Markham

No Facebook Applications

One more reason for my "No Facebook Applications" rule...

Until Facebook suspended the Top Friends app, created by Slide, anyone could browse partial profiles of anyone else on Facebook who had added Top Friends to their page. CNET News.com confirmed that the security hole exposed the birthdays, gender, and relationship status of strangers, including Facebook executives, the wife of Google co-founder Larry Page, and one profile that seemed to belong to Paris Hilton that used her middle name "Whitney."

by gerv at June 27, 2008 09:41 AM

June 26, 2008

Gervase Markham

Stuff For Party Organizers

My stuff for people organizing Firefox parties now has its own page. Do drop by and pick up code and resources for livening up your party :-)

by gerv at June 26, 2008 08:22 AM

June 25, 2008

Matthew Nuzum

Microsoft's Free and Intriguing CMS

Microsoft has released a product called Microsoft Office Live Small Business which, when viewed from a technical perspective, is quite intriguing. I spent nearly 5 years writing a commercial content management system (aka CMS) called EliteCMS and I still frequently write web applications. I’m always looking for ways to make applications simpler to use and appreciate products who do this well. Office Live is a product with a lot of merit.

Microsoft is a company who has a chequered history. I think they have created several great products (some I particularly love are Visual Studio, MS Office and their keyboard/mice products) but they frequently use business tactics that I just can’t agree with. One popular technique is the “embrace and extend” where they appear open at first and then enhance their product making it incompatible and difficult to migrate from. Because of this I caution you to think carefully before building your business on any of their products.

Office Live is free to use. If you use your own domain (and who won’t?) you’ll have to pay $14.95 per year after the first year. Also there are some services that are enhancements, such as an online shop and advertising that incur a separate charge. However all of this is very reasonable, especially considering what you get for free (or $14.95 per year). However since there’s no cost to sign up I do suggest checking it out and playing with it - they do a lot of things right.

First, and my favourite, is the site designer. I love the way they allow you to edit your site’s look and feel. This is absolutely stellar and probably the best free tool I’ve used. Whenever you create something like this you have to make a compromise. You have to choose between making it fool proof, for example by locking out parts of the site the user shouldn’t mess with, and giving the user full editability. Microsoft chooses to give full editability but in a way that makes it easy to do what’s right and more difficult to do what’s wrong. The UI uses a ribbon-like interface with two tabs, one for formatting on the page (bold, italic, etc) and another for managing the site theme. When editing the site theme you get to choose the target width (default is 780px), colors, layout, header (from a bunch of stock images or your own) and font preferences.

The Page Editor provides the usual options such as formatting and inserting an image, but it goes further by providing a dead simple interface for inserting contact forms, newsletter subscription (more on this in a moment), maps, slide shows and other “modules”. It also allows you to edit the navigation which in a sense is wiki like - when you add an item to the navigation you essentially create a new page in the site which you then need to edit. Very clever and very logical from a user perspective (Elite CMS does this too).

Another useful feature of the Office Live product is that it includes a built in CRM system for managing your contacts and your email communication. You get 100 mailboxes and client software for MS Outlook. When people fill out your contact form it goes into your CRM system so you can track leads, contacts and sales. If people opt into your newsletter they go into a distribution list so you can send email newsletters. The system automatically deals with unsubscribes and tracks links from your newsletter so you can see how successful it is. I’ve written code like this (semi-successfully) and let me say that it is a challenge.

You also get the ability to add web applications such as blogs, wikis, project management tools, “team spaces,” meeting scheduler and more. There appears to be a way to create or upload custom applications but I haven’t looked at it yet. You can also add other services like ecommerce/ebay store that have additional costs.

There is a simple reporting system right on your start page that lets you see traffic to your site by week for the last three weeks. There are other, more detailed reports and there’s even a bit of code you can add to separate websites not hosted in Office Live so that you can track your web activity all in once place (like google analytics).

There is ample documentation, including a 54 page ebook called, “Creating a website that sells.” Also guides to help you understand your reports, how to plan your website, attracting customers and using the more advanced features of the system.

As you can tell from the above description (and the name), this product is targeted at small businesses. Interestingly, I used Firefox 3 on Ubuntu and didn’t have the slightest problem accessing the features of the site. After playing around with it for about an hour last night I can honestly say I’m inspired.

by matt at June 25, 2008 09:31 PM

Cheap Arm9 Embedded Linux Platform

I firmly believe that mobile devices are the future and many people will forgo a regular PC because their mobile hand-held thingy does everything they need. Embedded Linux is one of the major platforms enabling such devices, but how is a person supposed to experiment with it when the slick development boards are so expensive or, for most of us, literally impossible to legally get into our hands?

I asked David Mandala, who is the project manager of the Ubuntu Mobile and Embedded team and a good old fashioned tinkerer, for a suggested platform. It was an IRC conversation so I can’t be certain of his attitude, but I’m pretty confident he was excited to tell me about the tool he likes to play with - the Tin Can Tools Hammer - an Arm9 based embedded Linux development board that is the same size as a 40pin dip. Just drop it into your breadboard and away you go! Or better yet, pick up the Nail Board kit (see the same page linked above) which includes the hammer board and adds a built in jtag, usb ports and serial interface and only increases the board size and cost a little bit.

When plugged into your PC it will be detected as a USB ethernet card and you can ssh right into your new embedded linux computer. Because the nail board has onboard jtag you don’t have to worry about bricking your device (corrupting the firmware rendering the device unbootable until reflashed) so in theory you should have full reign to fiddle with the settings. It can be powered right from the USB port so no external power is needed! And my favourite part is that all of the connections are 0.1” spaced headers so it will work on a breadboard and its no problem to solder on.

It’s still about twice the cost of the AVR32 based NGW100 which goes for $80 - $90. Like the hammer, the ngw100 allows you to solder on the board making it hacker friendly. It can also appear as a usb ethernet, mass storage or HID device. Unlike the hammer it has two ethernet ports, an SD card slot, an onboard serial connection but does not have a USB host port. It’s also quite a bit bigger (but still quite small).

The real problem with the ngw100 though is that it’s a new platform (AVR32). Arm9 is so popular and so mature, it’s hard to resist. Intel’s atom platform has a lot of muscle behind it so I have no doubt it will get a foothold in the market (and I’d love a $150 eval board!) but is there room for avr32? Jury is out. I’m going to save up my money for the hammer + nail board.

by matt at June 25, 2008 08:29 PM

Gervase Markham

June 23, 2008

Gervase Markham

Bugzilla Reorg Soon

The long-awaited Bugzilla reorganization of classifications, products and components is going to happen... soon. We don't have an exact date yet, but it's going to be in the next couple of weeks (d.v.) and we want to give people as much warning as possible. There's no "good" time to do this, but just after a release and before things get into full flow again is a better time than most. Hence the immediacy.

We have a plan and an order of execution (yes, go on, laugh at my use of the "temp" directory).

It's been nine months since the plan has been updated. However, reopening the plan for yet another round of discussion may cause us to miss this window. So the idea is that we execute the plan as it is now, and then a week or two later, have a second round, which can incorporate both fixes to the original plan and new things people have thought of or which have come up since the last update, and which we can get agreed in that time.

So, if you have additions to the plan, hold your fire. If there are things we are going to do which we should now not do, let us know. In other words, the plan is open for removals but not additions.

Impact

We will do our best to fix up charts and saved searches with the new names, but because of the way Bugzilla works we can't guarantee this in all cases (e.g. complex searches with boolean charts). So once we're done, everyone will need to check that their searches still do what they think they do.

We will be updating the "last changed date" on affected bugs. This is required to avoid possible data corruption. If you think this will cause you a problem, please let us know - but please don't start doing mass bug changes to "mark old bugs" without checking with us first.

Currently, there is no plan to add a comment for each change.

by gerv at June 23, 2008 09:38 AM

June 19, 2008

Gervase Markham

Tigers and Foxes

It looks like we weren't the only people breaking the Interweb yesterday: a lot of people were watching Tiger Woods at the US Open. That can't have helped...

10,722,518 download as I write. Awesome.

by gerv at June 19, 2008 09:06 AM

June 17, 2008

Gervase Markham

Party Eye Candy

The venue for the Firefox 3 Launch Party, London has a big screen. I want to do some Mozilla-related eye candy which can run during the party. And perhaps other party hosts do too.

There was an early mozilla.party (this one?) where they did a cool super-fast green-screen scrolling syntax-highlighted code thing. I have written this script (Perl; requires enscript; run it in your top-level Mozilla directory), which produces a similar effect, and anyone is welcome to use it. I've also used Flickr Downloadr to download the T-Shirt photoset, and can make a slideshow out of those. But it would also be nice to have some Firefox-based cool web tech demos.

Anyone got any good ideas? Ideally, animated stuff that will run and run.

30 minutes to go until launch! :-)

Update: Anyone who wants to run the Download Counter full-screen on a 1024x768 machine (like my laptop) may appreciate this Greasemonkey userscript.

by gerv at June 17, 2008 04:08 PM

Stevey's Blog Rants

Done, and Gets Things Smart

Disclaimer: I do not speak for Google! These are my own views and opinions, and are not endorsed in any way by my employer, nor anyone else, for that matter. Everyone knows and quotes Joel's old chestnut, "Smart, and Gets Things Done." It was a blog, then a book, and now it's an aphorism. People quote Joel's Proverb all the time because it gives us all such a nice snuggly feeling. Why?

by Steve Yegge (noreply@blogger.com) at June 17, 2008 12:31 AM

June 16, 2008

Gervase Markham

Language Coverage - Version 1.1

I have released an updated version of my language coverage data - its home is now a web page rather than a blog post.

Among the new features are:

  • Several bug fixes and data improvements; the Firefox percentages have gone up but, sadly, so have the IE ones.

  • Information on Opera.
  • A new line showing how IE fares if you don't include LIPs.
  • A new line for "registered l10n teams"
  • A tab which shows that if a browser team were using this data to guide where to put l10n team effort, what languages they should be focussing on. This data is provided for Firefox, IE and Opera.

Thank you to everyone who gave me useful feedback. Please let me know of any further improvements I could make, within the general parameters of the method.

by gerv at June 16, 2008 05:26 PM

June 14, 2008

Stevey's Blog Rants

Rhinos and Tigers

I will once again plagiarize myself by transcribing a talk I gave. First: be warned! I offer this gesture of respect to you — yes, you! — when I say that this is at least 20 minutes of reading. This is long even for me. If you're surfing reddit, gobbling up little information snacks, then it's best to think of this entry as being more like a big downer cow. Unless you're really hungry, you

by Steve Yegge (noreply@blogger.com) at June 14, 2008 07:26 PM

Gervase Markham

Extension Idea: Last Textarea

Ever start composing an email, bug comment or something else in a web page, switch to another app or page to find something out, and then get lost and end up looking through loads of tabs to find the one you were typing in? (For me, this seems particularly a problem when using Bugzilla.)

How about an extension which enabled a key combo which immediately switched you to the last tab in which you typed in a <textarea>? When you've finished your research/other task, just press that button and bang, there you are.

by gerv at June 14, 2008 04:25 PM

June 13, 2008

Gervase Markham

London Firefox Launch Party: Venue

The Firefox 3 Launch Party, London will be in the function room of the Shooting Star pub near Liverpool Street station, from 7pm next Thursday the 19th of June. See the party page for details. There's a big screen to which computers can be attached, so bring your laptop with cool demos and other stuff. Please sign up if you are coming. See you then!

by gerv at June 13, 2008 03:02 PM

Download Day

For my non-Mozilla readers, given that Mozilla people will know about this already:

Firefox 3 is due for release next Tuesday, and we are attempting to set a Guiness World Record for most copies of a bit of software downloaded in 24 hours. Head over to the pledge site, pledge to download, and then, when Tuesday comes, do so! Firefox 3 rocks - here's a load of reasons why.

by gerv at June 13, 2008 10:41 AM

June 12, 2008

Gervase Markham

Firefox 3 Language Coverage

Note: this isn't the full picture; some people have been very helpful in pointing out stuff I've missed. Please continue to send in feedback, and I'll post an updated version in a couple of days.

I have been attempting to figure out what percentage of the net population will get the upcoming Firefox 3 (June 17th!) in their native language ("heart language"). We're doing 48 different localizations. I've attempted this before, but I have been limited by the quality of data available. No-one seems to have good statistics on the language breakdown of the net population.

So, I've taken net population figures for each country (232 of them; that number seems high, but I guess they have a generous definition of 'country') from the CIA World Factbook, and split them up by the language split in that country. This assumes, therefore, that the distribution of the net population in a country is in the same proportion to the languages spoken there. I'm sure for some countries that's a bad assumption, but I still think the resulting data is better than what I had before.

Here's a snapshot of the spreadsheet (.ods). Headline figures:

CategoryCount% Coverage
Firefox 24487.7%
Firefox 34588.1%
Firefox 2 and 3 together4889.2%
L10n projects with CVS access6393.7%
All localizations found, including unofficial6192.6%
IE 77797.6%

Methodological notes: Many figures estimated. Unknown speakers allocated proportionally among the languages for which there is a figure. I don't mean to insult anyone - if I've overlooked your localization, I apologise. Void where prohibited. Blame Canada.

OK, now the questions:

Why does FF3 say 45 and not 48?
I only have one column in my spreadsheet for each of English, Portuguese and Spanish. IE has two Portugueses, but only one Spanish and one English. If we split them and said that IE didn't support British English or South American Spanish, we'd gain a large advantage which I don't think would be really reflective of the truth. But perhaps some Spanish speakers in Latin America want to argue with me there :-)

Why is FF2+FF3 more than either FF2 or FF3?

FF3 has Indonesian, Sinhala, Albanian and Serbian (welcome!), which FF2 doesn't have. FF2 has Bulgarian, Welsh and Persian, which FF3 doesn't have (yet).

How come "L10n with CVS access" is more than "Total localizations found"?

Because some teams with CVS access don't seem to have produced a localization yet, and that more than counterbalances the unofficial localizations I was able to find on addons and by searching the web.

Which language communities do we serve which IE does not?

Hello to native speakers of Belarusian, Frisian, Kurdish and Mongolian. We're meeting your needs :-)

Why is our percentage lower than IE's?

There are a couple of relatively big languages (as well as a dozen smaller ones) that we don't have official localizations for yet: Hindi (2.20%), Vietnamese (1.48%), Thai (0.70%), Malay (0.66%), Bengali (0.47%), Tagalog (0.39%), Marathi (0.37%), Urdu (0.32%), .... They have at least 77 localizations, we only do 48, and because we're a free software project, we don't work down the language popularity list from the top :-) If we ever managed to do all the localizations they have, our additional localizations for smaller languages would give us 0.75 percentage points on them.

If Microsoft were reading, which language should they do next?

Balochi (0.51%), an Asian language spoken in Iran, Pakistan and Afghanistan.

by gerv at June 12, 2008 03:10 PM

June 11, 2008

Gervase Markham

HTML5 Video - Codec Downloader

It looks like the implementation of HTML5 <video> in Firefox will use the native system media framework (DirectX, QuickTime, GStreamer) rather than come with any built-in codecs.

This decision has certain implications for cross-OS web video interoperability. There are very few or no formats that Windows, Mac and free Linux all can and do support.

So a Firefox codec downloader might be a good addition to core Firefox. Like the plugin finder, when it encountered media using a codec which it could not read, it would ask a codec finder service if a codec was available, but then instead of installing a browser-specific plugin it would install the codec at OS level.

So if a Windows user came across an Theora file, Firefox would (ideally) say something like "I can't play this - get codec?". If the user said yes, Firefox would go away, download DirectX Theora and Vorbis codecs, install them at OS level, and then start playing the video via DirectX as normal. As a side-effect, players like Windows Media Player would also gain the ability to play Theora, because it uses DirectX too.

Similarly, if a Linux user came across an MPEG4 file, a similar thing could happen (if the necessary licensing agreements were in place). There are trickier issues with binary compatibility here, but perhaps they could be overcome if the data in the codec finder service were well-maintained.

This would be a great aid to smoothing the user experience for all sorts of video on the web, and helping content authors publish without worrying too much that some people couldn't play their format. Chris Double (the <video> guy) told me he liked the idea, but didn't have time to code it. Do any of you? Or do you know anyone who cares about web video interoperability who does?

by gerv at June 11, 2008 08:22 AM

June 10, 2008

Matthew Nuzum

How do you syndicate navigation?

This is a “how to?” article, not to be confused with a “how to:” article. Instead of telling you how to do something I’m hoping you will tell me. :-) I’ve tried asking numerous times in various places and have either gotten ignored or received inadequate answers, likely because it was difficult to describe the problem. By posting here I hope to clearly describe my needs so that I can solicit advice.

I manage a website www.ubuntu.com that has two types of navigation that change periodically. The website is actually spread across several different domains and more than one content management system. This is done because the content is managed by different groups of users and/or by multiple applications. For example, www.ubuntu.com and the employment website at webapps.ubuntu.com/employment. The goal is for users to not notice when they switch from one site to the other. The transition should be seamless. It’s very difficult.

The problem is that when the navigation changes on one site it has to be changed on all the other sites too. The navigation I’m referring to is the drop down navigation atop the page, the left side-bar navigation that changes for each area of the site, and also there’s a “masthead” banner that differs for each section of the site. The banner changes periodically. For example, on the employment website it says, “Get Certified Ubuntu Training.”

The end result would look something like this:

  • User creates a new page on www.ubuntu.com
  • Page appears instantly in navigation on www.ubuntu.com
  • Soon (or immediately) the page also appears in the relevant navigation on the other sites

Here are some things I’ve experimented with and the problems:

  • Ajax - Since I control the source site doing a script include is a suitable workaround to cross domain limitations. <script src=”http://www.ubuntu.com/navigation.js”></script> for example. But the problem with this is two fold: the navigation would be invisible to search engines, and I firmly believe the Ubuntu sites should be easily searchable by whatever engine users like. Also loading inline javascript like this would either slow the page down because the js would have to load and excute before browser loading could continue (to get instant navigation) or the navigation would have to be loaded after page load/rendering (asynchronously) causing a delay before the navigation appears.
  • Iframes - I’d also be OK with this, too, but there’s a problem with iframes with unknown heights when the iframes exist on different domains (even subdomains). There’s no reliable way for a script on one site to determine the page height of a page from another domain loaded into an iframe. If the height of the iframe’s contents are unknown then the contents may scroll or leave a large gap after the content.

Here are further complications:

  • Servers are isolated from each other. For security reasons at least some of the servers hosting content are inaccessible to each other for security reasons. So server A can’t ping server B, nor can it grab an rss feed or other such thing. Generally speaking, the servers cannot see the world at large either.
  • The main site is drupal and is managed by a team of people, some of whom are not experienced webmasters. They want to simply create pages and have them show up in the site’s navigation in the normal drupal way.
  • Flash is not an option

I’m eager to hear any suggested solutions.

by matt at June 10, 2008 10:40 PM

Fixing Eclipse after the Firefox 3 rc1 update in Ubuntu 8.04

So you’re excited about the firefox 3 rc1 update in Ubuntu? It’s nice and speedy when using gmail but after updating eclipse stops working. It generates an error. The solution is easy, but here’s an example of the error message:

Exception in thread "Thread-1" org.eclipse.swt.SWTError: 
No more handles (java.lang.UnsatisfiedLinkError: no swt-mozilla-gtk-3349 or 
swt-mozilla-gtk in swt.library.path, java.library.path or the jar file)
    at org.eclipse.swt.SWT.error(SWT.java:3589)
    at org.eclipse.swt.SWT.error(SWT.java:3481)
    at org.eclipse.swt.browser.Mozilla.create(Mozilla.java:323)
        [a bunch trimmed]...

To solve it you simply

sudo apt-get install xulrunner

or

sudo apt-get install xulrunner-gnome-support

I found the solution at everflux but I don’t read German. The only part of the article I could make out was the error message and the apt-get command. :-)

by matt at June 10, 2008 09:01 PM

Gervase Markham

New Committer's Agreement

We've just published version 2.0 of the Mozilla Committer's Agreement[0] (PDF), which used to be the CVS Contributor Form. This is the document everyone signs in order to get permission to check in to our repositories. There's a FAQ about the new version. Among the changes are:

  • Generalise to all SCMs and accounts;
  • Agreement is now with the Mozilla Foundation, a real legal entity;
  • Information on permitted licences has been updated;
  • ...and various other tweaks to match current practice.

We would like all existing Committers to sign a copy of the new agreement. Details of what to do are in the FAQ, but if you are coming to the Firefox Summit, there'll be an opportunity there and we'd actually prefer it if you wait. Less hassle all around.

If you aren't coming, there's no rush at the moment, so add it to your ToDo list. After the Summit (which is at the end of July) we'll be chasing people who haven't filled one in yet.

If people have questions, they can email me, or start a discussion in mozilla.governance.

[0] Yes, we had the apostrophe discussion. My current view is that it's each copy is an agreement for a single committer, and so the apostrophe goes before the S.

by gerv at June 10, 2008 03:22 PM

June 05, 2008

Matthew Nuzum

Amazon won't stop offering me watches

I get a lot of spam like everyone else. I noticed that I was getting a large amount of spam offering to sell me brietlig something or other. After about the 300th email I finally broke down and googled to figure out what this brietilg thing was.

It turns out it’s an expensive watch in the same class as Rolex. The first link was to Amazon.com so I clicked it to see what was so special about these things. Well, I was logged into Amazon when I did this, and now Amazon thinks I want to buy expensive watches.

Apparently there is a lot of profit margin in these things because Amazon really wants me to buy one. I know this because I also express a lot of interest in cameras, books and gadgets, yet Amazon isn’t pushing these things nearly as frequently as they’re pushing the watches.

I hate to tell you this guys but it is going to be a long time before I consider purchasing a > $1,000 watch. I’m not interested in looking at them, hearing about them, seeing pictures of them or knowing anything more about them. I wish there was a way to definitively tell Amazon to forget I clicked on a link to their site about watches.

Amazon, if you’re listening, I want you to send me ads about kindles and 50mm f1.4 lenses and books about web services and Christian rock CDs.

by matt at June 05, 2008 05:10 PM

Gervase Markham

New Licence Policy

After several months of development, version 2.0 of the mozilla.org Licence Policy has just been published. All code added to our repositories needs to comply with the policy. It also attempts to document the current licensing status of all the code that we maintain. There shouldn't be anything surprising in there, but if there is, or you see a mistake, let me know.

by gerv at June 05, 2008 09:51 AM

June 04, 2008

the new topyli standard

tales from the offtopic #23: worth it

Sometimes it’s good to give your friends some time to work on their ideas. mc44 totally appreciates wobblywu’s hard work. This is how communities work at best.

worth it

by topyli at June 04, 2008 09:03 PM

June 03, 2008

Gervase Markham

Root Key Store Weak Key Check

Recently, a flaw was discovered in the version of OpenSSL shipped with certain Debian and Ubuntu systems, such that they generated only a very limited number of different, and predictable, keys. This has the potential to affect both SSH and SSL keys.

It would therefore be rather a big problem if any root certificates in our root store were generated on systems with weak RNGs - because attackers could then forge certificates for any website, and Firefox would trust them. Fortunately, we have ascertained that this is not the case.

We are continuing to investigate other ways that this problem may impact Firefox and the secure web, and what can be done about it.

by gerv at June 03, 2008 08:48 AM

June 02, 2008

Gervase Markham

Firefox 3 / Mozilla 10th Anniversary Parties

The Mozilla project has a long and distinguished history of holding global distributed parties to celebrate major events in the project's life, including at the South Pole.

I'm pleased to say that we are doing this again - mozillaparty.com is now open for business, for booking parties to celebrate the release of Firefox 3 and also Mozilla's 10th anniversary. There are 183 at the time of writing; last time, we got up to 389, so it would be good to have even more than that.

When's a good day? shaver suggests July 1st, but then he's Canadian. The London party will be June 19th. Sign up now!

by gerv at June 02, 2008 08:41 PM

May 29, 2008

Gervase Markham

What's Wrong With This Picture?

NHS (National Health Service) budget for 2007-8: £105.6bn.

Cost of buying every single one of the 60 million people in the UK private health insurance with BUPA at a decent level of cover: 60 million x £100/month x 12 months = £72bn.

Is it that simple, or have I missed something? (I guess Accident and Emergency must cost something; BUPA doesn't have to provide that service.)

by gerv at May 29, 2008 09:49 PM

May 28, 2008

Matthew Nuzum

Multiple django configurations for development and production

In Rails you automatically get different configurations for development, testing and production. In Django there’s no clear way to do this so here’s how Marc Tardif (a coworker) and I got it working.

Our use case is as follows: We work together on the same programming project but since we’re in different countries (and on different LANs) we have different development configurations. Our production server for the applications we co-develop is yet a different configuration. Furthermore, we use version control to keep track of each others’ work. When I’m not working on a team project I still often run a different configuration on my local pc than I do on the server where I publish my app.

Django’s manage.py allows you to pass the parameter —settings=something whenever you use it. This is nice but limiting because most of the configuration is the same for our three configurations. Only a few lines differ (mostly relating to database config).

Therefore there is a stock settings.py file where most of the configuration lives. Then for each developer (or each different configuration) there is a settings_[hostname].py file. So for me there is settings_matts-laptop.py. There is also a settings_production.py used for production.

The settings_[hostname].py file gets the customizations needed for me. At the top of this file is the line:

from settings import *

Then I run django like this:

./manage.py --setings_matts-laptop runserver

Here’s a complete example:

from settings import *

DATABASE_ENGINE = 'sqlite3'
DATABASE_NAME = '/home/matt/Projects/trainingwebsite/database.sqlite'

EMAIL_HOST = 'mail.mchsi.com'

TIME_ZONE = 'America/Chicago'

MEDIA_ROOT = '/home/matt/Projects/trainingwebsite/media/'
MEDIA_URL = 'http://localhost/files/'
TEMPLATE_DIRS = (
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    "/home/matt/Projects/trainingwebsite",
)

by matt at May 28, 2008 09:34 PM

May 26, 2008

Gervase Markham

Expensive Hardware Lob

Congratulations to Planet Earth, which has pulled back from being 20-13 behind at the start of the decade to tie the Earth vs. Mars Expensive Hardware Lob (EHL). See the NASA site for future play dates.

by gerv at May 26, 2008 07:23 AM

May 23, 2008

Ulrich Drepper

dual head xrandr configuration

ajax told me that extra wide screens now work with the latest Fedora 9 binaries for X11. So I had to try it out and after some experimenting I got it to work. So save others the work here is what I did.

Hardware:

  • AIT FireGL V3600
  • 2x Dell 3007FPW

I use the free driver, of course. No need for 3D here.

The old way to get a spanning desktop was to use Xinerama. This has been replaced by xrandr nowadays. xrandr is not just for external screens of laptops and to change the resolution. One can assign the origin of various screens and therefore display different parts of a bigger virtual desktop. This is the whole trick here. The /etc/X11/xorg.conf file I use is this:

Section "ServerLayout"
	Identifier     "dual head configuration"
	Screen      0  "Screen0" 0 0
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "kbd"
	Option	    "XkbModel" "pc105"
	Option	    "XkbLayout" "us+inet"
EndSection

Section "Device"
	Identifier  "Videocard0"
	Driver      "radeon"
	Option	    "monitor-DVI-0" "dvi0"
	Option	    "monitor-DVI-1" "dvi1"
EndSection

Section "Monitor"
	Identifier "dvi0"
	Option "Position" "2560 0"
EndSection

Section "Monitor"
	Identifier "dvi1"
	Option "LeftOf" "dvi0"
EndSection

Section "Screen"
	Identifier "Screen0"
	Device     "Videocard0"
	DefaultDepth     16
	SubSection "Display"
		Viewport   0 0
		Depth     16
		Modes	"2560x1600"
		Virtual	5120 1600
	EndSubSection
EndSection

Fortunately X11 configuration got much easier since I had to edit the file by hand. I started from the most basic setup for a single screen which the installer or config-system-display will be happy to create for you. The important changes on top of this initial version are these:

	Option	    "monitor-DVI-0" "dvi0"
	Option	    "monitor-DVI-1" "dvi1"

These lines in the Device section announce the two screens. It is unfortunately not well (at all?) documented that the first parameter strings are magic. If you ran xrandr -q on your system with two screens attached you'll see the identifiers assigned to the screens by the system. In my case:

$ xrandr -q
Screen 0: minimum 320 x 200, current 5120 x 1600, maximum 5120 x 1600
DVI-1 connected 2560x1600+0+0 (normal left inverted right x axis y axis) 646mm x 406mm
...
DVI-0 connected 2560x1600+2560+0 (normal left inverted right x axis y axis) 646mm x 406mm
...

Add to the names DVI-0 and DVI-1 the magic prefix monitor- and add as the second parameter string an arbitrary identifier. Do not drop or change the monitor- prefix, that's the main magic which seems to make all this work. Then create two monitor sections in the xorg.conf file, one for each screen:

Section "Monitor"
	Identifier "dvi0"
	Option "Position" "2560 0"
EndSection

Section "Monitor"
	Identifier "dvi1"
	Option "LeftOf" "dvi0"
EndSection

The Identifier lines must of course match the identifiers used in the Device section. The rest are options which determine what the screens show. Since the LCDs have a resolution of 2560x1600 and since I want to have a spanning desktop and the DVI-0 connector is used for the display on the right side, I'm using an x-offset of 2560 and an y-offset of 0 for that screen. Then just tell the server to place the second screen at the left of it and the server will figure out the rest.

What remains to be done is to tell the server how large the screen in total is. That's done using

		Virtual	5120 1600

The numbers should explain themselves. Now the two screens show non-overlapping regions of the total desktop with no area not displayed, all due to the correct arithmetic in the calculation of the total screen size and the offset.

Note: there is only one Screen section. That's something which is IIRC different from the last Xinerama setup I did years ago.

May 23, 2008 05:53 PM

May 22, 2008

Matthew Nuzum

pv shows the progress of any pipeline and more

Have you ever been gzipping a log file and wondered what the progress was? Or have you ever wanted to slow down a pipeline, for example throttling an SSH connection? I was reading at Tollef Fog Heen’s blog (a friend and former co-worker) about his backup solution. There, nestled inside sshconfig options, I learned about a beautiful gem called ‘pv.’

Tollef uses it in his ssh config like this (see the last line):

Host backup-$hostname
    Hostname $backupserver.err.no
    User backup-$hostname
    IdentityFile /root/.ssh/id_rsa_rdup
    ProxyCommand pv -L 40k -q | nc %h %p

This limits the speed of this ssh connection to 40k (according to the man page, this would be 40 kilobytes per second, not kbits)

I did a quick test to see it in action. To watch the progress of zipping a log file:

cat bandwidth_log | pv | gzip > ~/b.gz
 188MB 0:00:10 [18.5MB/s] [                <=>                                       ]

There are some command line options you can use to give it hints as to the amount of data to expect which gives it the ability to show an ETA and makes the progress bar a ratio of how much is done. Here’s an example of a large file:

$ size=`ls -sl full_log | cut -f 1 --delimiter=' '`k
$ echo $size
3210360k
$ cat full_log | pv -s $size | gzip > ~/full_log.gz
 712MB 0:00:47 [15.2MB/s] [============>                                                 ] 22% ETA 0:02:39

(note that $size has a k appended to it so that pv knows this value is in KB)
Therefore, something like this might be handy:

for logfile in *.log
    do 
    size=`ls -sl $logfile | cut -f 1 --delimiter=' '`k
    echo "Processing $logfile ($size)..."
    cat $logfile | pv -s $size | gzip > ~/$logfile.gz
done

Thanks for sharing your wisdom Tollef!

By the way, if you want to redirect the contents of a pipeline to a file and see what’s going on at the same time the command you want is tee (which I learned from Tom Pohl).

[some command] | tee output.txt

instead of

[some command] > output.txt

I don’t think this would work good combined with pv but I haven’t tried it.

by matt at May 22, 2008 07:40 PM

May 17, 2008

Gervase Markham

Re-Migrating to Firefox 3

Dear Lazyweb,

I've upgraded to Firefox 3 RC 1 and now Firefox gives me an old version of my bookmarks file. Clearly, migration ran when I tested an earlier version, and isn't rerunning. How can I persuade it to do so? I can't be the only person with this problem, surely?

cd ~/.mozilla/firefox/default.xxx/ ; rm -f *.sqlite

might work, but surely there's a cleaner way?

by gerv at May 17, 2008 08:27 PM

No JS/No CSS Browser Detection

[Browser detection removed as it broke the validation of my RSS feed. Check the author's site if you want to try it out.]

This browser detection uses pure HTML 2.0, without any JS or CSS. Here's how it's done. It even distinguishes Firefox 1.5 from Firefox 2. Can any parser hackers extend it to further distinguish Firefox 3?

by gerv at May 17, 2008 08:03 AM

May 14, 2008

Gervase Markham

Matthew Nuzum

How to make a baby sit still

Last week, around May 2nd or 3rd, my daughter learned to crawl. It’s been a week so now she’s officially at that stage referred to as, “no really, don’t take your eyes off of her!”

So now I’ve got this challenge that so many people before me have faced. How to get her to be stationary for a little bit. This is my brief and whimsical diary of a few experiments.

Attempt one
I’ll call this one, immobilize, I stumbled on it by accident and it worked for a good 30 or 40 seconds. It gave me the inspiration to do this investigation and try to find a technique that would work, possibly for even longer!

She crawls

As you can see this technique is quite simple because all you have to do is entangle the legs. Unfortunately it is simple but ineffective after the first time. You’ll notice the picture above is a bit blurry… I forgot to flip up the flash on the camera so it chose a slow shutter speed. Quicker than I was able to pop the flash and snap another picture she had escape the entanglement.

She crawls

Attempt two
Best called distraction, this technique works quite well in certain circumstances. Basically you lay cheerios on the floor in a path that leads nowhere.

She crawls

Unfortunately there are numerous ways this can go wrong. Also this technique means you will be vacuuming the floor more often than you will be washing your hair.

She crawls

Attempt three
This attempt was a miserable failure. Nothing more needs to be said - except that I had no idea a 10 month old could lift up a laptop.

Attempt four
The tried and true technique.

She stays still

It never fails.

by matt at May 14, 2008 02:29 AM

May 12, 2008

Stevey's Blog Rants

Dynamic Languages Strike Back

Some guys at Stanford invited me to speak at their EE Computer Systems Colloquium last week. Pretty cool, eh? It was quite an honor. I wound up giving a talk on dynamic languages: the tools, the performance, the history, the religion, everything. It was a lot of fun, and it went over surprisingly well, all things considered. They've uploaded the video of my talk, but since it's a full hour,

by Steve Yegge (noreply@blogger.com) at May 12, 2008 11:41 PM

Matthew Nuzum

My theory for speeding up web app development

I have a theory and so far it has worked out correctly. There are three ways to complete a web application project. The wrong way is to skip the planning step and just start designing and coding. This greatly decreases the chance of finishing your project. However there are two ways that I’ve used to complete projects:

  1. planning
  2. coding
  3. designing

In essence you write your code and then make it look pretty after you’re done.

  1. planning
  2. designing
  3. coding

With this you create the look of your application and then add the code afterwards.

My theory is that getting the application or website’s interface done first and then doing the code afterwards helps you get it done more quickly. So far it’s helping me.

by matt at May 12, 2008 01:44 AM

The designer failed

I was talking to a good friend of mine - one of the most elite graphic designers I know - and he made a simple comment that, as often happens when speaking to someone of great wisdom, communicated something with tremendous meaning in only a few words. It was something I knew but would have been hard pressed to describe or communicate to others.

It was about using graphics on websites but has a far broader scope than that. I’ll reword his statement somewhat to remove the context of the original conversation. He said that if you notice the drop shadows then the designer has failed.

The meaning here is that graphical effects such as drop shadows, glossy buttons and the such are there to help you communicate some information. The goal is not to show the world that you know how to make a drop shadow, the goal is to use a drop shadow to draw attention to an important element. Therefore if someone has noticed your drop shadow you’ve failed to draw attention to an important element, instead you’ve distracted your user.

The same goes true for desktop animations and effects in Ubuntu/Compiz. There are two reasons to use effects - you can use effects to make the desktop users more productive or you can use effects to create a nifty (or not nifty) animation.

Powerpoint users have been struggling with this same set of options for a decade. It may be fun to make your presentation use a lot of animations but it rarely helps your presentation at all. As a matter of fact, it usually distracts your viewers and hinders your presentation.

It’s a challenge to look at your design and scrutinize it to ensure you’re using design elements to draw attention to the proper parts and avoiding distracting with unneeded features. Yet it is necessary.

by matt at May 12, 2008 01:33 AM

May 09, 2008

Matthew Nuzum

GTK dialog could be far better

OK, I’ve been trying to think of a way to report this problem for a while. Who does it go to, GNOME HIG, Ubuntu, Usability, Art team? I’ll probably send it to all of them but in order to simplify my explanation, this blog post exists.

In brief: GTK dialogs are way too big and they tend to waste a lot of screen space. To demonstrate my point I’m comparing the File Save dialog from Gedit and Windows XP Notepad. You’ll see that the Windows XP dialog is far smaller and yet communicates significantly more useful information. This is accomplished because it makes more efficient use of the screen space. It does this without being any less usable, and actually, because of it communicates more useful information can be more usable under some circumstances.

two dialogs side by side

This image shows the two dialogs side by side. I’m using Virtual box’s seemless mode to show the two applications at the same resolution (1280x800, 96dpi) at the same time. In this view you can see that the Windows XP dialog communicates far more information - there is room for more files (14 files shown in XP, 9 in GNOME) and there are more data columns (XP includes the date, like GNOME, but also file type and size). Otherwise the dialogs are pretty similar as far as the capabilities.

But the Windows XP dialog is able to do this in about half the space (256k pixels vs 455k pixels). Here’s a picture showing the dimensions:

two dialogs overlaied

In the XP dialog there is no wasted space. Somehow they are able to use this space very efficiently without making the dialog crowded or feeling like parts of it are competing for your attention. The GTK dialog has massive amounts of wasted space. Huge expanses of just empty pixels, tons of padding around the file names in the list, and look at the gap between the end of the file name and the column where the date is shown.

I wish I could help fix this problem by actually coding, but I’ve looked at the code and frankly glib scares me.

If you have a comment for me or as a suggestion on the proper way to report this problem leave it below. Once I get a bug report I’ll paste a link to it and the best place to comment on the problem will be on the bug report.

by matt at May 09, 2008 02:15 PM

May 08, 2008

Matthew Nuzum

Adjusting the height of iframes to match the content across domains

My current task will be assisted by showing an iframe but without the distinctive scrolling of an iframe. So if the iframe content is 350px high the iframe should be 350px high so that it appears to be part of the content above and below it. I’ve seen people refer to this technique as “100% height iframes” but I think that’s a misnomer or at least confusing since some people want an iframe that fills the height of its parent container. I just want an iframe that looks and acts as if its content were part of the normal page content and not on a separate site.

This isn’t so hard to do when your content is all on the same domain but when you need to work across domains its far more difficult because of the same domain security policies all browsers enforce. But there are ways to do it and the way I’m using now is clever and not well documented on the web. As a matter of fact, if it is documented I couldn’t find it. It does not require an iframe within an iframe nor does it require that the iframe’s content be tailored to the site that will be embedding the iframe. I’d love to hear any advice or suggestions for making it better.

In a nutshell, you simply have the iframe detect its referrer, which should be the parent frame, and then change the parent frame’s URL to add a hash/fragment which includes the height of the inner iframe’s content. A script on the outer frame watches for the hash to change and then once it does, gets the height and resizes the frame. Code is below.

The problem with this is that in firefox the back button needs to be clicked twice to go back after the iframe’s content loads. In IE this doesn’t happen and I’m not sure which browser is doing things wrong. However Google may be using a similar technique for their custom search feature because they have the same problem. I seem to remember in olden days there was a way to remove items from the browser history… brief searching reveals no code though so I’m going to have to dig through some books to find out what I’m remembering (or mis-remembering maybe).

Remarkably, this is the exact opposite problem a lot of ajax applications are experiencing. I’m trying to remove items from the history and they try to add items. :-)

Anyway, here’s the code, please please please leave comments if you’re trying this. I’d really like to know if I’m on the right track.

In the iframe, you need this: (it uses mootools for the domready event but it could as easily be in the body’s onload event)

<script type="text/javascript" src="/scripts/mootools.v1.11.js"></script>
<script type="text/javascript">
window.addEvent('domready', function() {
ref = document.referrer;
h = document.body.offsetHeight;
if( top != self && ! (ref.indexOf('#') >= 0) ) {
    // create a url like #h312-6789 where 312 is the height
    top.location = ref+'#h'+h+'-'+parseInt(Math.random()*1000);
}
});
</script>

In the page that will embed the iframe you need this code: (this does not use mootools)

<iframe src="http://path/to/iframe.html" width="100%" frameborder="0" marginheight="0" marginwidth="0" id="downloadframe" style="height:350px"></iframe>
<script type="text/javascript">
    function checkFragment() {
        h = document.location.href.indexOf('#h');
        l = document.location.href.length;
        if( h > 0) {
            u = document.location.href.substring(h+2,l);
            // u will be like 312 or 312-123456 and we only want the 312
            height = parseInt(u.split('-')[0]);
            setFrameHeight(height);
            clearInterval(frameint);
        }
    }

    function setFrameHeight(height)
    {
        var frame = document.getElementById("downloadframe");
        frame.height = height + 20; // there's a bit of scroll without the 20
    }

    // our interval
    var frameint = self.setInterval('checkFragment()', 500);
</script>

In the first script you need to change the path to point to mootools or change it to use the body’s onload.

In the second script change the path in the iframe tag to point to the correct content then also change the height of the iframe to be something reasonably close (but a little long) to what you expect the height to be. Its better to be too long than too short since people read the pages from top down. If the iframe starts out too small you get a weird glitch where it shows up with scrollbars at first and then the the content suddenly grows so that the scroll bars disappear causing the content to also widen and reflow slightly. Its not a big deal but if you start out too long then the change in height is almost imperceptible.

by matt at May 08, 2008 03:07 PM

the new topyli standard

Ubuntu-fi is Finland’s Linux Contributor of 2008

Today, the Finnish Linux User Group[1] announced their yearly Linux Contributor Award. The Winner: Ubuntu Suomi! Translating from the press release (Finnish PDF).

The volunteer community has taken care of translations, arranged events around the country, promoted Linux and Free Software to legislators and, above all, provided user support through its web forum.

Decorated Timo

Mirv accepting the prize.
(Photo from the ubuntu-fi blog)

Congratulations to our most excellent LoCo Team!

Two honorable mentions were awarded as well. One was given to the Linux.fi wiki. The choice further emphasizes the great importance that peer-provided support and documentation has for the success of Free Software. The other one went to Monty Widenius, the founder of MySQL. Yes, in case you didn’t know, he is yet another Finn helping build the tools for our road to software freedom. :) Altough MySQL is not directly related to LInux, as one of the pillars of the near-ubiqutuous LAMP stack, its success is very much tied to that of Linux.

Cheers to these Honored Ones too!

[1] Yes, there is only one. It is a small country :)

by topyli at May 08, 2008 12:02 PM

May 06, 2008

Gervase Markham

Election Observing

I spent some of last Thursday and most of last Friday being an Election Observer for the Open Rights Group, observing the London Mayoral and Assembly elections. ORG's interest is particularly with the electronic vote counting, which happened at three locations around the city. I personally found it very interesting, and some exciting things happened. ORG will be publishing a report in mid-June, and you can then read all about it. :-)

by gerv at May 06, 2008 09:43 PM

May 03, 2008

the new topyli standard

Share your Ubuntu story!

This morning, I found an email from Karol in my inbox, telling me about a promotional Ubuntu website he designed. It is slick!

ubuntustory.com

The site is a place for Ubuntu users to share their story. Why do you use Ubuntu? Tell your story about security, stability, desktop sexiness and all the other reasons to choose our favorite Linux distribution for your daily business and pleasure use!

by topyli at May 03, 2008 08:34 AM

April 28, 2008

Stevey's Blog Rants

XEmacs is Dead. Long Live XEmacs!

"We're going to get lynched, aren't we?" — Phouchg And you thought I'd given up on controversial blogs. Hah! Preamble This must be said: Jamie Zawinski is a hero. A living legend. A major powerhouse programmer who, among his many other accomplishments, wrote the original Netscape Navigator and the original XEmacs. A guy who can use the term "downward funargs" and then glare at you just

by Steve Yegge (noreply@blogger.com) at April 28, 2008 06:53 AM

April 25, 2008

Stevey's Blog Rants

Settling the OS X focus-follows-mouse debate

I recently switched to using OS X full-time for all my client-side computing. Still using Linux on the backends, of course, at home and at work, but I now use Macs for my client machines. I'm not a Mac fanboy. I'm sort of a wannabe Mac fanboy, but I'm not familiar enough with the OS yet (either as a user or as a programmer) to really rave about it. I will say this: it was kinda fun turning

by Steve Yegge (noreply@blogger.com) at April 25, 2008 03:38 AM

April 21, 2008

Gervase Markham

Tracking Ubuntu Hardy

I update my Hardy beta installation on my laptop to the latest packages about once a week. The experience so far has been like blowing seeds off a dandelion and reciting "It boots... It boots not... It boots... It boots not..." Currently, I'm on "It boots not". I wonder which I'll be on when the last seed blows off on April 24th?

This sort of thing doesn't encourage one to be a beta tester. I'm glad they leave older kernels installed...

by gerv at April 21, 2008 07:39 PM

April 17, 2008

Gervase Markham

Verisign Wimpy Warnings

I was visiting some phishing sites (as you do) and came across this one. These things have short lifetimes; it may not be there when you check. It is/was an eBay spoof page, spam-advertised, which had a spiffy-looking Verisign Site Seal in the bottom corner, which was actually linked to the correct URL at Verisign! Perhaps this is a result of them just saving the eBay page to disk and whacking it up on the webserver. Anyway, I know no-one ever clicks on these things, but I thought I'd try it, to make sure I got a scary message from Verisign.

In fact, what I got was this:

Unable to validate this seal

We are unable to verify the status of this seal at this time. Please try again later.

Click here to learn more about SSL Certificates.

Wow, that has me scared. I'll be sure not to type my eBay credentials into the site now...

by gerv at April 17, 2008 03:37 PM

Matthew Nuzum

telnet for testing ssl/https websites

OK, here’s the problem… you want to test a website by sending custom headers, but the website uses https. Normally you’d just telnet to port 80 like so:

telnet www.somesite 80
GET /index.html HTTP/1.1
Host: www.somesite

(Note you need to press enter twice at the end)

This would be a valid HTTP GET request and you’d see the server’s response headers and response data. But with an SSL website this won’t work at all. What do you do?

Use openssl of course. The openssl s_client program works perfectly here:

openssl s_client -connect www.somesite:443
[watch the ssl certificate details scroll by]
GET /index.html HTTP/1.1
Host: www.somesite

(again you need to press enter twice)

VOILA! But one gotcha… when using telnet the webserver would patiently wait for me to type out the request completely. s_client does NOT. So type out your request in a text editor and have it ready to paste in right after the ssl cert details scroll by.

I’ve only tried it with Ubuntu Linux but it should work on any Linux and Mac OS if you have openssl installed. There is a version for Windows too.

Thanks Ng, one of the phenomenal Canonical sysadmins for this tip. Also, Steve Langasek, the Ubuntu release manager suggests gnutls. It works similarly:

gnutls www.somesite

No need to specify a port number or use any command line options. Note that like s_client you need to be ready to paste your request in. apt-get install gnutls-bin will take care of you here.

by matt at April 17, 2008 03:05 PM

April 16, 2008

Gervase Markham

Free Our Bills

For readers in the UK: the excellent TheyWorkForYou has just launched a campaign, "Free Our Bills", to persuade Parliament to provide bills in a well-marked-up format rather than the mangled HTML they use now (technical details). They need this to provide useful services like email alerts, details of what amendments your MP is asking for or voting on, and so on.

If you think this is a good idea, please lend your support to the campaign.

For readers in the US: no, "Free Our Bills" is not a campaign for a massive tax reduction. Although it would be a good name for one.

by gerv at April 16, 2008 09:55 AM

April 15, 2008

Matthew Nuzum

Upgrading from Ubuntu 6.06 server to 8.04 server worked perfectly

I have a few servers (virtual and physical) and all of them run Ubuntu 6.06 LTS (aka Dapper Drake). Until now. I did my first LTS to LTS upgrade and it went without a hitch. So now I’m running mostly 6.06 servers and one 8.04 server.

I was very brave, maybe foolish even. I didn’t create a snapshot of the server before I started. 8-) I just did the upgrade. Apache upgraded fine as did MySQL, Django, Python and Samba. There are some warnings about upgrading SSH in place but I did it and had no issues. There were numerous warnings about needing to upgrade grub that scrolled by but the installer handles these for you automatically so you can disregard the warnings.

I did this because I wanted to install couch db (via) which is an exciting distributed database project. My first impression is that it is an excellent and exciting project but I will do more investigation and report later. In the meantime, test the LTS to LTS upgrade!

by matt at April 15, 2008 03:13 PM

April 11, 2008

Gervase Markham

Male Interests

Imagine for a moment what a Martian student would think if he took a trip to earth to research an essay on 'Men - what are they and what makes them tick?' What do we look like from the outside? What conclusions might be reach about us as a whole?

He might drop in to a local newsagent before doing some observational field research to look at some of the things men are interested in reading about. A quick trawl through the shelves for men reveals a complex variety of subjects. Men, it would seem, are interested in sex, cars, sex, computers, sex, body building, more sex and clothes... and did I mention sex?

But dig a little deeper, and the magazines would tell him that the only reason that men are interested in cars, body building and clothes is so that they can have more... you guessed it... sex!

I'm not quite sure where computers fit in.

-- Tim Thornborough, in chapter 2 of Man to Man... about God.

by gerv at April 11, 2008 12:41 PM

April 10, 2008

the new topyli standard

tales from the offtopic #22: user-friendly breakage

We all know why GNOME is the most popular desktop in the enterprise. It does so much for users — they don’t have to do a thing while the GNOME daemons get things done. topyli and mc44 were trying to convince aubade of the benefits today.

user friendly breakage

I think it was a pretty noble effort anyway.

by topyli at April 10, 2008 11:44 PM

Gervase Markham

Upgrading to Hardy

I've just upgraded my desktop and laptop to the latest beta of Ubuntu Hardy Heron, 8.04. Not wanting to sound like a broken record, but this process is still confusing for the average user. I was asked a number of questions that most people would have no idea of the answers to.

msttcorefonts.png
cupsd.conf.png
smb.conf.png

The first popup I got was the this top one:

What is a user supposed to make of that? There's no "install x-ttcidfont-conf" button. Checking afterwards, it seems that the upgrade installs it anyway. So why bother telling me about it? Why not just do it?

The second popup told me it had to restart some services to use the new libSSL.

Then, I had a succession of five popups asking about replacing or keeping modified configuration files - smb.conf, bash_completion, cupsd.conf, ntp.conf and /etc/default/bluetooth. This bugs me for the following reasons:

  • These popups appeared at various points in the long upgrade process and, given that my screen went into standby, it was easy to not notice them. Disabling screen standby, or beeping, would have been sensible.
  • There were two different forms of popup (see pictures 2 and 3). Why?
  • These config files were changed because I changed something in the GUI. If I'd edited the file by hand I'd have less cause for complaint but why can't the system know how to merge changes made through the GUI with new options? Most packages seem to manage this fine.
  • Accepting the defaults on cupsd.conf disabled remote printer sharing, without telling me it had done so. Remote printing just stopped working. And ticking the "Shared" box next to the printer in the Printer Configuration applet isn't enough; you also need to tick "Share published printers connected to the system" in the Server Settings area. What's the difference between sharing and publishing? Why do I need to check two boxes? What's a print server anyway? Grr.
  • Accepting the defaults on ntp.conf removed my configured ntp server, again without telling me it had done so.
  • The bluetooth one was especially bizarre as my desktop doesn't have bluetooth.

Lastly, it asked me if I wanted to remove obsolete packages. If they are obsolete, remove them. If they aren't, keep them. How am I supposed to know?

When I'd finished, Gimp no longer had the useful "Gutenprint" print capability. No idea why. The package had just gone. This was standard in the last release, I think - I certainly don't remember installing it manually. I knew where to find it and reinstall it - but would an ordinary user know what was wrong?

The Ubuntu team needs to work on making packages which know how to merge in updates to their own configuration files - particularly updates made through the official configuration GUI for those packages.


by gerv at April 10, 2008 02:24 PM

April 07, 2008

Matthew Nuzum

If you can't hear me, come a little closer

My class last night seemed to enjoy an illustration I gave so I decided to share it here. The class is the first of 5 I will teach called “Getting a better spouse,” which is a poor name, but the goal is to make our families stronger by improving the husband and wife relationship. The common denominator of all the people in the class is that we all have kids and as any parent knows, sometimes life seems incredibly busy. Also at times it can feel like our kids are the center of our families and all life revolves around them.

As parents its critical to admit that one of our most important job is to raise our children properly (cf Proverbs 22:6, Deuteronomy 6:6-7). But that doesn’t mean the children become the center of the family. They need to learn that the world does not revolve around them. Therefore the class’s goal will hopefully help draw the mom and dad together. Doing this helps the whole family.

But… the husband/wife relationship is not the most important relationship in the family. The most important is the parent/God relationship. God invented the family and He knows how to make it work best. Not only that, but He knows our temperament, gifts and needs better than even we do ourselves. He also knows what’s coming down the road. When we draw close to God we benefit in too many ways to describe, but the most relevant to this topic is that it helps us as parents make wise decisions for our families. So here’s the illustration:

I have a two story house with a finished basement. If I’m on the top floor and my son is in the basement and I want to give him instructions, what do I do? Do I try and yell detailed instructions across the house? Picture it, “Son, I need you to make your bed and clean your room, also, take your dirty clothes to the laundry and brush your teeth.” The son can’t hear me well so he yells back, “What?” So you try again and he yells back, “What?” Wouldn’t it work much better if you just said, “Son, come closer, I need to tell you something.”

When we get too busy to spend time with God daily we start to distance ourselves from Him. And admit it, its easy to go far longer than a couple days. If you’ve gone weeks or months without opening your bible or praying seriously it’s like you’re on different ends of the house. You have no clue what God’s trying to tell you, you need to get closer.

So the point of the class was to encourage people to work on the relationship with God. If you’ve gotten away from doing it you’re probably discouraged and if you’re a normal parent the thought of setting a substantial amount of time aside from your already hectic day sounds impossible. Therefore I taught the class my technique for getting back on track, “7 minutes with God.” I’ve found that finding half an hour is hard but I can find 7 minutes.

This topic warrants another blog post but in a nutshell it works like this, and its utterly simple - about two minutes goes to prayer, but not your normal prayer. Do nothing but praise God. You have no problem making time during the day for prayers like, “God help me with xxxxx!” so this prayer time is for remembering who God is and how great He is. “God, thank you for the rain, I can’t wait to see the flowers bloom and the green grass…” Then the remaining minutes go for a mini bible study.

If the need to lug a bible around will make it difficult for you to do your 7 minutes then you can print out a chapter of the bible from www.biblegateway.com and stash it in your pocket so that you have it. Note that five minutes of reading time is probably not enough to get through a whole chapter - don’t rush it, it’s ok if you just get a third of chapter in. As Henry Blackaby so rightly said, “God can speak to you on any page of this book.” And the goal of the 7 min is to encourage you to get closer to God, not speed through the pages. I’ve found that once I get back on track the thirst for the word grows and I’m better able to find time for more in-depth study.

I’d love to hear your comments.

by matt at April 07, 2008 05:42 PM

Gervase Markham

Summer of Code Deadline (Again)

The Summer of Code application deadline (really, this time) is midnight tonight UTC/GMT, 5pm PST. Don't get left out :-) It is possible to update applications after you've filed them and before the deadline (and possible to add comments even after that) so, if in doubt, get something in.

Extending the deadline has, for us, only resulted in six or seven more applications, and the number of applications is about 50% of what it was last year. I'm not sure why that is - persuading people to apply is not really within my power, at least. In the next few days, I guess I'll find out whether we have quality rather than quantity :-)

by gerv at April 07, 2008 06:22 AM

April 03, 2008

Gervase Markham

Highly Hairy Heron

Ubuntu Hardy Heron is to be released soon. Last week, I upgraded my X40 laptop to the beta and found it wouldn't boot (at least, not the default kernel). I duly filed a bug with diagnostics, which has now been untouched for almost a week.

The low level of attention to "your OS hosed my machine" bugs, right before a release, is rather concerning...

by gerv at April 03, 2008 09:20 PM

April 01, 2008

Gervase Markham

SoC Application Deadline Extended

I'm clearly not on the right mailing lists. It seems that the SoC application deadline has been extended to the 7th of April.

by gerv at April 01, 2008 10:03 PM

the new topyli standard

tales from to offtopic #21: design for topylies!

OpenOffice.org has released version 2.4 with many improvements. Congratulations to both developers and users of OO.o! I personally am in no capacity to evaluate it. I’m pretty sure it has about as many buttons and check boxes and sliders as the previous one. I still like Abiword.

The new OpenOffice.org website looks awesome though, double cheers for the clean and usable design!

Inspired by this, and also probably about my previous post, my friends nickspoon and mc44 on #ubuntu-offtopic defined a topyli-friendly design for OpenOffice.org 3.0. There’s still time to make a difference before they feature freeze!

But as mc44 says, don’t get your hopes too high :(

by topyli at April 01, 2008 08:07 PM

Matthew Nuzum

Netbeans 6.1 spanks Eclipse and challenges Visual Studio

Strong words, I know, and there are definitely some qualifying statements. I am not throwing out Eclipse just yet because it can still do some things that Netbeans doesn’t. But first, let me say that I’m excited by Netbeans 6.1, which is currently in Beta. I’m excited because I see in it a product that will challenge Microsoft’s Visual Studio, especially for new users and those doing development without a computer science background.

Netbeans has a simple but powerful GUI designer. Create your application window, drag buttons onto it and then double click them to add code and events. If you’ve used the GUI builder in VBA applications, it looks and works a lot like that. And it is extremely easy to learn while at the same time providing powerful layout helpers.

GUI Builder

Netbeans is also tightly integrated with a web application server which enables you to quickly write and debug web applications. Create your JSPs and servlets, hit run and voila!

The Netbeans website and documentation is readable by people who don’t yet know Java. I can’t tell you how important this is. The biggest barrier to Java adoption is all the acronyms. The tutorials are easy to follow and don’t assume you’re a CS expert. This is glorious! In 20m you can build a graphical calculator program and in 45m you’ll be building CRUD style graphical database applications.

And the best part is, unlike with Visual Studio, your applications will run on Windows, Mac OS, Solaris and Linux.

One more esoteric feature I like is that there is already a plugin for a distributed version control system. It’s mercurial, which is not the dvcs I use (I use bazaar) but that a plugin already exists implies it will be easy to integrate other dvcs systems. It also integrates SVN and CVS support.

So besides the above, why do I think Netbeans beats Eclipse?

  • Netbeans is an IDE first, and a platform second. Through and through, Netbeans is a tool for writing code. Contrast this with eclipse, which, quoting from their homepage, is an “open development platform comprised of extensible frameworks”
  • Netbeans is moving quickly. New features are being added and they’re being added in a way that makes them useful and mature. I’m not sure why eclipse lacks SVN and DVCS support, I’m not sure why there’s no GUI builder and I have no clue why you need a plugin to debug web applications.
  • The features - SVN, application server, built in database access, web services support

With every line of code I write I start to like it more.

So where does Eclipse beat Netbeans?

  • More programming languages supported. PHP is a biggie. There are at least 10x more PHP developers than Ruby on Rails developers, yet Rails is tightly integrated and PHP is derelict. For the record, I’d enjoy Python/Django support too.
  • For RCP type appl