Steve Lee :: Blog :: Archives
A new[ish] blog is pointing out some of the problems that the Linux community need to address now that the Open Source operating system has matured enough to be taken seriously by the Windows masses (and MS have helped users look around by making Vista so different and buggy). With his tongue firmly in-cheek the Linux Hater's blogger (language warning) is killing quite a few sacred cows and makes some valid and uncomfortable observations about the way the Linux community often operate and areas of Linux design that could do with improvement in order to 'just work'. It's also often funny My view is this can only be good for users (including developers) and the uptake of Linux. Linux is now a useable desktop experience for a wide range of people. Lets make that even wider.
Keywords: Linux, Linux haters blog
Andrew Kirkpatrick has announced resources on Acrobat 9.0accessibility features. In particular features for making existing PDF documents more accessible for reading, using Reader and for creating accessible PDFs with Acrobat. PDF is now an open standard, as well as a defacto standard.
Coventry University have created the Health Design & Technology Institute (HDTI) to bring 'the University’s research expertise in community-based therapy into direct contact with businesses'. The courses look very interesting and should help develop understanding, provision and innovation around Assistive Technology and accessibilitywith a focus on Telecare for long term healthissues. On related topic, this year's RAatE conference is in association with the HDTI.
The Open a11y group of The Linux Foundation are requesting comments on the latest accessibility standard for Windows. The RFC (Request for Comments) provides an opportunity to contribute to the IAccessible2 (IA2) specification which is expected to become a full Linux Foundation standard later this year. IAccessible2 (IA2) defines the way that Assistive Technology (e.g screen readers) can monitor and control GUI applications (e.g Firefox). It is also useful for testing GUI programs. IA2 extends the Windows standard API, MSAA, filling significant gaps. It also brings Windows APIs closer to the Linux standard AT-SPI. Thus IA2 reduces the workload of developers in supporting multiple platforms and allows existing ATs to provide extend functionality, even without the need to rewrite existing features. Many programs and ATs are already using IA2 (e.g NVDA and Firefox 3, and the major proprietary screen readers). As this is an Open Standard you are encouraged to read the specification and documentation and provide feedback or comments before it gets released (and even after that). In particular the general documentation needs scrutiny. And yes that is correct, The Linux Foundation are looking after a Windows standard. This is largely as they already manage several Open Standards and their work on the Linux AT-SPI standard has given them much experience. The following is the text of the RFC: Request For Comments From the Open A11y Workgroup Linux Foundation June 5, 2008
The Open A11y Workgroup in the Linux Foundation works to develop free and open standards supporting comprehensive access to information and user interfaces for persons with disabilities. Our standards process is open to interested members of industry, developer, and consumer communities. Obtaining public comment on our proposed standards before they are finalized is one of the most important steps in our process. Public review helps ensure our standards are relevant and complete.
DETAILS:
We are now requesting comment on the following specification produced by our IAccessible2 team. This specification is expected to become a Linux Foundation standard this year.
IAccessible2 HTML - http://www.linux-foundation.org/~ptbrunet/ia2/docs/html/ IDL - http://www.linux-foundation.org/~ptbrunet/ia2/api/
Overview
IAccessible2 is a set of Windows accessibility interface definitions which complements Microsoft's earlier work on MSAA. The IAccessible2 interfaces fill critical accessibility gaps in the MSAA offering. IAccessible2 is an engineered accessibility interface allowing application developers to leverage their investment in MSAA while also providing an Assistive Technology (AT) access to content in rich document applications and web browsers. The additional function includes support for rich text, tables, spreadsheets, Web 2.0 applications, and other rich content often found in large, complex applications.
IAccessible2 is implemented by application developers to allow Assistive Technology, such as a screen reader used by someone who is blind, access to an application's components, e.g. a table in a word processor. IAccessible2 has been implemented in applications such as IBM Lotus Symphony and Mozilla Firefox 3. It has also been implemented in the leading Windows screen readers, e.g. JAWS from Freedom Scientific and Window-Eyes from GW Micro.
Developers of complex applications benefit because they can provide accessibility to complex components well beyond what is possible with MSAA. Application developers also benefit because screen readers already support applications that implement IAccessible2. IAccessible2 was a joint effort with the leading AT vendors. These vendors saw the need for an enhancement to MSAA and worked closely with IBM accessibility architects and engineers during the definition and implementation of the API.
Users benefit because they have full access to complex applications such spread sheets in IBM Lotus Symphony and ARIA (Accessible Rich Internet Applications) in Firefox 3.
It is also important to note that IAccessible2 has been harmonized with the UNIX accessibility APIs to allow for efficient multi-platform development. This was done through close collaboration with accessibility architects who have intimate knowledge of the UNIX accessibility APIs.
For more information please visit the IAccessible2 web site at http://www.linuxfoundation.org/en/Accessibility/IAccessible2 or equivalently http://a11y.org/ia2
HOW TO SEND FEEDBACK:
You may respond through Bugzilla using the URI below, or by sending email to the special RFC address below. Bugzilla is our preferred method for receiving feedback because it automatically logs your feedback in our tracking system without additional human intervention. If possible, only use the email method if you have difficulty using Bugzilla. When using Bugzilla be sure to select IAccessible2 from the list of components.
Bugzilla - http://bugs.linux-foundation.org/ email - accessibility-rfc<at>a11y.org
REVIEW TIME PERIOD:
Please provide your comments on these draft specifications no later than midnight, 24:00 UTC, Monday, June 30, 2008.
Please feel free to forward this announcement wherever you deem appropriate.
On behalf of Open A11y, and especially the IAccessible2 team, we thank you for your assistance.
Pete Brunet, IAccessible2 Team Chair brunet<at>us.ibm.com
Janina Sajka, Open A11y Chair janina<at>a11y.Org
I previously thought that the Linux Hater's blog could be doing Linux a good service by pointing out some of the least optimal features and attitudes that could be blocking its mass acceptance. However the last few posts have gone over the line as far as I'm concerned. I find the feigned wroth irritating and the profanity just plain puerile. Oh well.
At last the version of Firefox that I've been enjoying in the nightly builds will be publicly released next Tuesday 17th June, officially Download Day. And there's an attempt at a world record. There's a video showing the main new features from Beltzner. There are many new accessibility features and Marco the Accessibility QA Engineer has this to say. Well done everyone at Mozilla and all the community members, and have a great party. [Update 13 Jun] Here's a sneak peak at some of the features that might appear in Firefox 3.1.
Mock up of the Firefox Mobile project's ideas using touch. Some possible a11y applications here .
schoolforge.org.uk and The Learning Machine have been rejected by Becta in their application to develop a School Open Source project to grow community and encorage use in education. Sour grapes aside, there are some serious questions about the decision process that Becta used in selecting Alphaplus a company with unknown track record in OpenSource and rejecting 4 bids from a commuity with at least 5 years of using, promoting and supporting it. A huge 'thank you' to Ian Lynch for all his hard work in putting the tender together.
In fact Schoolforge were not the only experienced Open Source group who were rejected by Becta, the list includes OSS Watch Schoolforge UK Open Source Consortium member companies Sirius, backed by Red Hat, KDE and the Free Software Foundation Canonical, makers of Ubuntu INGOTS The Open Schools Alliance The OSS in education community are not taking this lightly, with an article in the Enquirer and MarkTaylor of the Open Source Consortium is putting on the gauntlets. We want the best deal for schools, children, parents and all tax payers.
Lucas Rocha writes a detailed view of many of the issues around the GNOME future strategy as part of the current debate leading up to GUADEC. I more than once thought that the accessibility community's work is both a strength and something that will contribute features of use to broader audiences. And I almost read it all...
Frank Hecker posted a thank you statement on the eve of the Firefox 3 download day which mentions the accessibility community. Frank also updated the list of grants made in 2007. A big thank you Frank for all the work you and the Foundation have made possible through the grants scheme. This has positively impacted many users ability to access the web.
...for the most times hitting F5 key in 1 hour.... Firefox 3 where are you.......
I recently resolved a chronic mySQL query performance problem which had a very simple cause which I should have spotted much sooner. The straight-street.com symbol search page has a reasonably complex query using sub queries. Without going into great detail the search looks for words entered in the search box in the symbol name and also any tags associated with it. The name is in the main media table and tags are rows in another table with the usual many-to-many linking table. The problem is that a search for say 'food' took several minutes and the data base is really small with only some 500 symbols and 20 odd tags. The problem occurred at some point after migrating to a new hoster with later version on PHP and mySQL and I had optimised performance on the old host by fixing the query and sorting out the index structure. Here's a simplified snapshot of the PHP generated code for a search for 'food' (it a bit of a mess as I inherited the code and have worked on fixing some areas of it. I just spotted the DISTINCT should go and a optimisation to remove redundancy) SELECT SQL_CALC_FOUND_ROWS DISTINCT REPLACE(m.name, '_', ' ') AS name, ... (SELECT GROUP_CONCAT(t.tag SEPARATOR ',') FROM media_tag mt INNER JOIN tag t ON t.id = mt.tid WHERE mt.mid = m.id GROUP BY mt.mid ) AS tags FROM media m ... INNER JOIN (SELECT mnt_m.id AS mid, CONCAT(REPLACE(mnt_m.name, '_', ','), ',', COALESCE(GROUP_CONCAT(DISTINCT mnt_t.tag SEPARATOR ','), '') ) AS name_tags FROM media AS mnt_m LEFT JOIN media_tag AS mnt_mt ON mnt_m.id = mnt_mt.mid LEFT JOIN tag AS mnt_t ON mnt_t.id = mnt_mt.tid GROUP BY mnt_m.id ) AS mnt ON (m.id = mnt.mid AND (FIND_IN_SET('food', ms.name_tags) > 0)) WHERE ... ORDER BY m.name LIMIT 0, 70 The problem turned out to be that the foreign key in one of the joined tables was actually CHAR(7) where as the primary key in the main table was INT(7). my guess is that this forced text to number conversions on every join performed by mySQL when the query ran. This took me quite a while to spot in phpMyAdmin even though it was staring me in the face. I have looked to check if it happened after migration but my bet is that the problem was there before and made worse when I changed the collation to unicode in preparation for internationalisation, this probably forces extra processing on the join (though as its a straight compare you do wonder why it should).
As an aside I found several pages on the site that spread the work between PHP and MySQL, something I often see. This works with a php loop doing something like calculating a running total across rows returned from a repeatedly called query. The problem is that the repeated invocation of queries is a performance issue and it's much better to do all the work in a single query. SQL is such a rich and powerful language that you can do so much with it. Once you make the mind set shift from procedural working to the data driven (venn) way needed along with grouping and aggregate functions, you can perform all sorts of operations that you would in PHP. The performance gains can be large. I tend to make the break of having SQL doing the data manipulation and PHP doing the presentation, but sometimes it easier to get SQL to do the presentation as well.
Keywords: MySQL, PHP, web
I just spotted the Firefox 3 download counter is on 5,055,749 and so may have exceeded the target but I'm not what it is exactly. I am pleased we (the Lee family ) did our bit with 3 Windows and 2 Linux downloads (OK say we could have copied between PCs but that would not have been so much fun). The children were pleased to do their bit and downloaded on to a PC each. Hopefully they're telling all their friends at school. I tried at 18:00 BST the due start but like everyone else failed to get to the pages due to the problems being experienced. Marco Zehe pointed out there was a server failure just before they went live which is very bad luck indeed. Anyway I managed 2 downloads about 90 minutes after the start from Mozilla Europe after Marco pointed out it was working. We did the others this morning just before going to school. [Update] Heh it looks like the IE Team sent the Firefox folks a cake again. I also responded to a comment on the ITCH Network mailing list where someone said that as people would find plugins don't work they would probably want to roll back to FF 2. I pointed out that Mozilla had done all they could to get 3rd party Plugin devs to upgrade to the new security features that protect users against bad plug-ins. If a plugin is not compatible my view is you should not run it but pester the develoepr to get it fixed. Mark Finkle produced copious notes on how to do it. The MetOffice here in the UK did their weather gadget a while back and I was pleased to offer some guidance. Oh and the Firefox 3 Package for Ubuntu landed this morning but I'm glad I downloaded it directly from Mozilla for my 2 Ubuntu machines as that helps the record attempt.
Keywords: download record, Firefox, Firefox 3
Jonathan Zittrain plugs his new book about his vision of internet doom on the hilarious Colbert Report and when he also plugs the Firefox 3 download as something we can all do the effect is five fold increased downloads.
Keywords: Colbert, Firefox, Zittrain
The final count, well roughly, as at such a fast rate of downloads it's hard to be sure. Here's the happy team. Congrats to all and a big thank you. I was pleased to see Leichtenstein managed 374, not bad as they are so small with a rough population of 35,000. The Lee family's contribution of 5 downloads work out at about 0.00006%.
There's been a flurry of media attention stirred up by the Mozilla download record attempt, as no doubt was the intention now Mozilla have an excellent marketing team. Of the articles I have read O'Brien: Mozilla's open-source model represents valley at its best really homes in on the effects beyond the product that I think are the reasons Mozilla are such a powerful and positive force; But the work of Mozilla to attract and lash together the contributions of so many people to perform a task as complex as developing a piece of software is even more impressive. It's a reminder that the Internet can be about more than the race to the next IPO. It can be used for new and perhaps even more powerful forms of innovation.
Of the points made in the article I will naturally emphasise the commitment to an open web with 'access for all', partially through accessibility. It's interesting to note that Frank Hecker played a crucial role in the decision to OpenSource Netscape and create Mozilla, and now as Executive Director of the Mozilla Foundation, is championing accessibility. It's exciting to see the Mozilla magic working for the benefit of those who can use computers and websites when extra effort is made to ensure their needs are considered and incorporated into designs.
This is the addon I've been waiting for as I often want to queue things for later reading. It sure beats saving shortcuts to the desktop. It seems Beltzner introduced it to the design team and it's already triggering some good usability ideas.
Keywords: bookmarks, Firefox, Read it Later
Looks like I had open comments disabled here so I've switched them on. And I thought it was coz no body luvved me.
In fixing some Ajax based client code I just discovered closures work in Javascript just as they do in Python which is rather neat (and I guess to be expected as both are modern dynamic languages). In case this is of use to anyone else I thought I'd quickly blog it. In case you are wondering what closures are, they are a way of binding data and functionality together using the fact that functions are first class objects and nested function definitions can access variables in the parent scope. A factory function creates function objects which use the values of variables in the factory. They act as as an alternative to classes in some circumstances but classes could be used to achieve the same results (even more so if classes can be called as they can in Python). So the code I'm working with is a bog standard Ajax with a Javascript function that creates a XMLHttpRequest object, uses it to call a PHP page that does a db query and returns some html, and stuffs the html in a target div's innerhtml psudo attribute. The problem was the function gets called from many places each updating a different div. Various other complications meant it was easiest to pass a function that gets called asyncronously when the XMLHttpRequest has a response code of 4 (got the php page output) which happens after the function main function has returned. Rather than create lots of almost identical functions which differ only in referenced div used to show the results, closures come in handy like so: function mkDivUpdateClosure(strTargetDiv) { f = function(strHTMLfromAjax) { var objDiv = document.getElementById(strTargetDiv); objDiv.innerHTML = strHTML; } return f; } // call ajax passing function to call with HTML on success ajaxCall(mkDivUpdateClosure('a_div')); ajaxCall(mkDivUpdateClosure('another_div'));
That's it' One thing I need to get to the bottom of is when I enable FireBug I get no results back from the AJAX call, just an empty string. Very strange.
Keywords: AJAX, closures, Javascript, Web
I've noticed these ' developer patterns' myself.
David Humphrey has released some info on his Mozilla Developer Toolkit which is based on his experience in teaching many students to work on Mozilla code and it should be a fantastic and much needed resource. Mozilla Firefox is a big hairy code base with many layers and dimensions. While some aspects are reassuringly close to web devleopment many complexities lurk in the depths along some more advanced software engineering concepts in the core like XPCOM and rdf. It can be hard to work out where to start or which concepts to focus on, even though MDC has some excellent documentation. David has put up a live demo of the Dehydra Cross Reference tool and it's a winner. Nice one David.
Keywords: Mozilla, Mozilla Developer Toolkit
A great post punts some ideas on how the Mozilla Foundation could really drive the Open web forward. However, there is also a critical piece missing: the ability to help large numbers (millions?) of people make the shift from being a consumer to being contributor. Not contributors to Mozilla Project code. Or even to documentation or marketing. Rather, imagine 170 million contributors to the project of making the open web stronger, better understood and more resilient. This would be very cool movement indeed.
This post really echos many of the reasons I think Open Source holds so much promise. The trick is in how to get people to move from being consumer to contributor. It something I often think about and we've tried with www.oastoft.org, schoolforge.org.uk and Ian Lynch is having some success with the INGOTS certificates with higher levels requiring contributions. However it not easy as I've found with several wikis I have been involved in. People seem to be very reticent to move on from being passive consumers and to give something. Perhaps it is the embarrassment over public exposure. Perhaps it is something to the way that at school we're told to do our own work and not to copy or share effort. Perhaps this is changing as we see in news gathering and other fields. If MoFO can energise such a movement I'll be right there contributing by encouraging everyone to join in. One of the things at the back of my mind as I provide introductory training course to people over 50 is how to encourage them to contribute to FOSS projects. They have much to gain, I'm sure would enjoy it and are a very large group indeed.
See Mark's blog for tools for creating extensions and more to come.
The Netgear ReadyNAS Duo works well with Linux and in a mixed network.Support of NFS, FTP and rsync and a web based console make this ethernet storage solution directly compatible with Linux, while SMB support plays well with Samba for mixed situations and other protocols support Windows and Mac machines.It also helps share printers and USB memory devices. I've been meaning to instate a proper backup strategy for some time but kept putting it off. I eventually bought a Seagate FreeAgent from Maplin who assured me it worked with Linux but soon found it did not work for me. The problem was, as was immediately evident from a search of the Ubuntu docs and fora, that it breaks the USB specification on power-save shutdown and this upsets Linux, though Windows somehow ignores the problem. So back it went and I thought about a WesternDigital MyBook even though there are mixed messages about how well it works with Linux. Worse there seem to be many reliability concerns which is absolutely a deal breaker for a backup device. Finally when friend popped round one day and tried to access his Ethernet myBook World it fell over. However that did finally persuade me to look at NAS devices rather that USB as they could be accessed remotely and shared from all the family PCs so I could backup photos, homework etc. So I now have a Netgear ReadyNAS Duo and I'm very happy with it thought it is more expensive that MyBook World it hasa very good build and control panel software quality. It is most definitely Linux friendly though that is not so obvious from all the promotional materials you first find on the web. The Duo is the home member of the ReadNAS clan and it comes with one disk though you can add a second for RAID mirroring (not extension). You get the usual GPL notice that NETGEAR provide and I suspect this has a Linux in as it takes some time to boot and shut down. There's a whole raft of features for streaming and sharing printers etc but I only want shared backup at the moment which works out of the box (via a Netgear ADSL modem/router/switch). Both my Ubuntu workhorse and Windows XP laptop boot could happily access the device via the network places. And once you enable NFS you can mount it as usual. It also supports rsync. As a bonus now I've plugged in my USB printer into the USB socket I am able to print from any PC. Accessing the ReadyNAS console stumped me for a while as the getting going leaflet only gives half the story. It recommends that you use the RAIDar utility but though there is a Linux version on the disc (not mentioned) the script was broken at the point it asks for a browser; even when I hacked it to use Firefox it gave an Java exception. The utility is just a convenience and all you really need to do as usual is point a browser at it and log in via HTTP security as with other Netgear products(and this is what makes it platform independent). However when I logged in all that happened was it redirected to <ip>/shares and gave a pretty useless shares page. The secret which is buried in the full User Guide documentation is to browse to <ip>/admin and login.With Firefox 3 you have to make an exception for the invalid certificate as it redirects to https, but that's not a real issue and hopefully this Firefox feature will help to encourage the more widespread use of proper certificates. [update 17 Jun 08] Now I've got to grips with it I set up the included backup scheduler to do full daily DB and weekly incremental code backups of various websites I manage. It's very basic but does the trick if you are happy to backup an entire directory tree. You can backup via any of the services offered and I'm using FTP and rsync. One oddity is that a full backup does nothing if no files have changed which is a bit disconcerting when manually testing.
Keywords: Backup, Linux, NAS, ReadyNAS
Linux without a compiler? What good is that? To me, that line seems to sum up a lot of what is good and bad about Linux.
hmmm... Me thinks many of the posters are mssing the point.
As a resource for the gentle Introduction to Computers course that I'm doing for Age Concern Exeter, I've put together a page of notes for 'next steps'. Suggestions welcome.
Nice post showing how Ubuntu is making the desktop accessible to older non techy users. I've just found out that a Ubuntu based LTSP PC network has been set up in a local community centre by a member of our area LUG and could be ideal to start the ball rolling. Udsing to to educate the over 50s in computer use. Then we can move on to encourgaing them to contribute to Open Source projects.
The new home for Jambu is live and I'm pretty pleased with how it turned out. I used Wordpress, having had the intendion to get to grips with it for a long time. And what joy, I'm most impressed by the quality of architecture, UI, features, code and docs. My only possible whinge is how slow organising pages can be but that's what you get when using an GUI app rather than editing a text file. I could think of a couple of ways to streamline the UI but it's basically very good. I chose the Beast Blog theme that claims to be accessible and it looks pretty good from inspection, including skip links, site map and good markup. I've tweaked it a bit and will do more but editing the theme PHP and CSS is very straight forward and Wordpress provides a pretty clean API that works well for both Blogs and page based sites. [Update] Marco Zehe kindly tested it and says it 'looks' good in Jaws and Orca. I'm hoping that as Jambu grows I can open up the site and use it as something of a CMS. Though I do prefer a wiki really.
Chris Heilmann is organising the Scripting Enabled conference and hackday to look at making web aplications with web APIs more accessible. The aim of the conference is to break down the barriers between disabled users and the social web as much as giving ethical hackers real world issues to solve. We talked about improving the accessibility of the web for a long time - let's not wait, let's make it happen. Chris Heilmann
Keywords: accessibility, We 2.0, Web
Henny has an excellent post on the RNIB website about making PDFs more accessible. It is a call to action to improve all those 'sucky' inaccessible PDFs that litter the web using a range of not-so-tecnical techniques including using other formats when appropriate. So this is really a call to action. It’s time to stop shaking the proverbial fist at PDFs the technology and start taking matters in our own hands. Adobe have worked hard to get accessibility support built into Acrobat (and very soon there may be more resources to help us publish accessible PDF - watch this space), so it’s down to us to start implemening the processes to support the creation of accessible PDF.
|
|