Thursday, November 24, 2011

US companies dominate in patent power, and software dominates in patent category

IEEE Spectrum has published its annual statistics on patents. They show the dominance of US companies, such as IBM and Microsoft, and the rapid growth of Apple. The overview article is here.

The ranking approach uses what they call 'patent power' and takes into account the growth, impact, generality and originality of patent portfolios using various methods. The 2006 article describing the methodology is here

Here are a few observations:

Top companies in terms of patent power in 2010: The companies with the most powerful patent portfolios, in all industries, are the following. These are those with patent power over 2500. Companies were listed in just one category, even thought they may have patents in several categories. In these numbers I have combined the numbers where one company has bought another (e.g. Oracle having bought Sun)
  1. IBM (8402 in Computer Systems)
  2. Microsoft (7146 in Computer Software; this does not include the Nortel patents they bought in a consortium led by Apple; note also that if Microsoft buys Yahoo, as news articles suggest they are considering, the combined company would top the list at 9910)
  3. Johnson and Johnson (6796 overall; 3610 in Biotechnology and Pharmaceuticals; plus 2810 through Ethicon Endo-Surgery and 376 through Depuy Spine)
  4. Medtronic (5540 in Medical Equipment)
  5. Covidien PLC (4544 overall, the top non-US company; 3333 in Medical Equipment; plus another 718 through Nelicor Puritan Bennett and 493 through Mallinckrodt)
  6. Oracle (4171 overall; 3129 in Computer Software, plus 558 through BEA, 362 though Siebel, and 122 through Sun)
  7. Samsung (4033 in Semiconductors; second-to-top non-US company)
  8. Cisco (3299 in Communications/Internet Equipment
  9. Qualcomm (3170 in Communications Equipment)
  10. Yahoo (2789 in Communications/Internet Services)
  11. Apple (2764 in Electronics; this does not include the Nortel patents they bought with Microsoft and others - with their share of these, they would likely be in 10th place)
  12. Hitachi (2669 overall; 2531 in Electronics; plus 138 through Hitachi Global Storage)
Software-related patents: I am particularly interested in software patents, since I in general think they are counterproductive although it is a necessary evil to keep patenting in this domain until changes I have suggested are made. The rankings show IBM dominating in the Computer Systems category; Microsoft and Oracle dominating the Computer Software category, and Samsung, Yahoo and Apple with high presences in other categories that also include software patents. Clearly software patenting is of dominant importance in the patent world, which is unfortunate. It also seems to be on the rapid increase, which bodes badly for ordinary software developers.

Categories with relatively low power patent presence: There are no companies with patent portfolios above 2500 in domains such as aerospace, automotive and chemicals. It is notable that General Motors (1030) is still doing well despite its troubles in the last recession; it is only just behind Toyota (1272) in the automotive category.

Canadian companies:  Top Canadian companies are RIM (1064, Communications/Internet Services) and Magna (553, Automotive).

Google: I thought it notable that Google (2165, Communication/Internet Services) was ranked well behind IBM, Samsung, Microsoft, Oracle, Yahoo and Apple, companies they compete with or have intimate relationships with (e.g. Samsung is the top seller of Android systems). Google seems to be losing its reputation as an innovator. See yesterday's post for related comments. However, this year, Google has bought some IBM patents so if the list was recreated with 2011 data it might look a bit different.

Absolute numbers: In absolute numbers of patents (not 'patent power'), IBM also dominates with 5905, but Samsung comes second with 4599. Other companies are far, far behind.

Wednesday, November 23, 2011

In fear of the great Google Shutdown train: What could be next?

Google has been in a frenzy of 'cleanup' activity over the last few months. It is beginning to make me feel positively uncomfortable.

Google's latest blog post announces the shutdown of a number of services that are not doing well, notably Google Wave and Knol.

I think it is the latter that alarms me the most. They point out that the proposed replacement for Knol is WordPress based. Yet they have their own Blogger service (which you are using right now to read this) that competes against WordPress. Does that mean that the writing will be on the wall some time in the future for Blogger? It certainly makes me think about moving this blog elsewhere.

In addition to Blogger, I am heavily invested in Google Code for the Umple project. Will Google Code be on the chopping block too at some point? After all, like Blogger it is a service that Google provides on a largely public-service basis. Google is already shutting down 'Code search' with no announced replacement, and has severely limited the usability of Google Groups, as I have previously commented.

I think that if I had read all these announcements a year ago when I was first starting blogging and open-source development, I would likely have chosen different platforms. I imagine many people just setting out to use such online services will think the same thing. I chose Google because it is a large company with a reputation for stability, innovation and beneficence. Two of my factors in choosing Blogger and Google Code over WordPress and GitHub were the integration with Google accounts and Google search. However long-term stability trumps all. Using Google services puts me at the mercy of Google Shutdown.

I will persist with Google for now, hoping their 'Do no evil' mantra wins out in the end. However, I am continuing to take steps to protect myself. These include making all links to the Umple project go through the domain, so I can relocate them if I had to, and regularly backing up my subversion repository and blog. I will be looking into mirroring my blog on a domain and server I have full control over.

I also hereby ask Google:

  • To make formal 10-year service guarantees for its services in which people invest huge amounts of personal time, like Google Code, Blogger and  Google Groups.
  • To extend these guarantees each year, so any potential shutdown would always be 10 years out
  • To publish usage statistics trends of its services so we can be confident that we are using services that are not dwindling in numbers of users.
  • To keep data in shut-down services visible in a read-only manner without limit  (e.g. keeping Knol URLs active for reading indefinitely, so links that point to them never go stale). There would be very little cost in doing this.

I think that unless Google does this, more and more people will migrate away, and fewer and fewer new users will adopt these services, resulting in a self-fulfilling prophesy of shutdown due to low usage.

And lest people think I am being unfair to Google, or risking having Google push me personally off its services for criticizing it, I have been just as critical of Apple, and have not even ventured near Microsoft's online services since they have historically been too closed. Google is still an excellent online service provider for blogging, open-source code hosting, and mailing lists, and is still probably a lower risk than smaller companies regarding potential shutdown. But overall, I now do not consider it a low risk in this regard.

Also in defense of Google, they do make their announcements in a reasonably friendly way and try to suggest alternatives. I do wish in their announcements they would tell us the number of users they estimate to be affected (both content providers and readers).

Wednesday, November 16, 2011

Give downloadable files more meaningful names

More and more websites give the option to download a files containing such things as bills, software installers (or source code), receipts, posters, brochures, e-books and reports. Once downloaded, people need to file these for extended periods.

Unfortunately it is common for the downloaded files to have meaningless names such as 'Document', 'Results', 'File', 'Report', 'Data', some arbitrary internal identifier, or other names that are not as helpful as they should be.

I propose the following general guidelines for downloadable files. Any downloaded file name should include:

  1. Some way to identify the file's origin, such as the company name or website
  2. Some succinct way to identify the type of content, such as 'bill', 'receipt', the software product etc.
  3. The date. Files stored on computers have a date created by the operating system. But this is not part of the filename  and is reset when you copy or edit a file. When the date is intrinsic to the data in a file, such as the date of issue of a report or receipt, the month of a bill, the release date of software or a press release, etc. then this information should be part of the filename on a permanent basis. Very few downloaded filenames have the date. The date should be in yyyy-mm-dd format to facilitate sorting by date. The date should be the date the date being sent was created, not the date of download. If it is a monthly report, always issued at the end of the month, then the day can be omitted.
  4. If appropriate, a version number. Many software downloads have this, but too many do not.
  5. If necessary, some way to ensure downloads of the same type but with different content are distinct. For example, if you are an avid sports fan and regularly download spreadsheets with sports statistics, you might want the time to which the data is valid, not just the date, as part of the filename.

For example:

  • SurveyMonkey's downloads appear as ''. When you unzip the file, the internal contents are a little nicer, for example 'SurveySummary_' followed by the date at which data was last updated. However, there is no way to distinguish among the various different surveys I am running, nor the filters or collectors I have applied when generating the data.
  • A recent download of Silverlight just said 'Silverlight.dmg'. There was no version number or release date.
  • The paystubs I receive from my employer say 'paystub' followed by a serial number, but do not identify the date of the pay in the filename.
  • A report I downloaded from the CRTC yesterday (subject of a future blog post probably) at URL resulted in a filename that just has the year and a serial number, and no identification of its source (CRTC) or content.
  • When I download my Rogers bill from EPost it says 'RogersBill', but does not include the month of the bill. RogersBill-2011-11-15 would be better. Adding the account number on the end, or perhaps the account-holder's name, might also be useful to account for situations where people have to manage the bills for several accounts. I would even go as far as to tack on the bottom-line total (dollars spent or owning) to bills, receipts and other forms of statements. When later reviewing a long list of receipts, for example, this can prove extremely useful.
  • When I download an investment report from my investment company, it just says 'ClientReport.pdf'. The company, date and content description are missing. Here, the name of the investor would also be useful, to handle situations where one is downloading reports for different family members.

And on and on. In all these cases, people are forced to edit the filename after download. I can't count how many times I have found a file in my downloads folder and had to open it to remember its contents before editing its filename and then putting it in the correct place in my disk.

This aspect of usability seems to be overlooked by a very high percentage of software engineers and web designers. All the designers seem to think about is the content of the files, and perhaps the URL and the location of the file on the server. They forget that the file will have a life of its own and need to be identifiable once it leaves the server and resides on a client's computer.

One can, of course, go to far. The filename must be kept to a manageable length; at one time the absolute maximum was 8 characters in DOS (not including the extension), then 32 characters, and now typically about 255 bytes (which means fewer than 255 characters if non-ASCII Unicode characters are used). A human-usable limit is, I think, about 60 characters. There is a useful Wikipedia page describing the absolute limits and the characters that can be used. The following are some fictitious examples of meaningful download filenames that are kept to a reasonable length, adhere to the guidelines above, and are hopefully self-explanatory.

  • TeledirectCableBill-2011-11--66.13--acct9876543.pdf
  • Supersoft-FuriousCowsInstaller-2011-11-16-v1.2.3.dmg
  • GovNY-TaxLaw-ProposedChgs-2011-11-16-rpt87924.pdf
I recommend not using spaces in names to make it easier for certain programs, and shell scripts to process files. CamelCase and hyphens are useful to separate elements.

Related situations

If the ability to download a pdf file is not available, it is common for people to save bills, receipts, and similar documents using various 'print to pdf' capabilities, such as those built into the MacOS X print function. In these situations, the created pdf file will have a name derived from the html page's title. All rules I described above should therefore also be applied to the html title for pages that are commonly printed (bills, receipts, etc). I would go so far as to use a filename convention without spaces in the title of such html pages, specifically to facilitate one-step printing to pdf.

When emailing files to people, many senders just grab a file from their filesystem and add it as an attachment. People should get in the habit of giving meaningful names to files when they store them in their filesystem, and not just rely on identifying the file by way of its location in the filesystem; that helps prevent sending attachments with meaningless names. All too often I have received and had to save attachments with names such as report.docx.

Even when sending JPEG or other media files, the naming convention comes into play. I love the Olympus style of naming jpegs that embeds the date of the picture and a serial number right in the filename, e.g. PB171234.JPG for a picture stored in the 11th month of the year (B), on day 17, and with serial-number 1234. Many other cameras use filename formats that are not nearly so useful, like IMG_9999.JPG (see this Wikipedia page for naming convention details). In fact, the file naming convention alone is enough to tilt me towards a certain brand of cameras. When sending or uploading images, people should also consider adding description of the contents to their filenames. All this metadata can be stored using EXIF attributes, but most people aren't sophisticated enough to browse using tool that is EXIF-savvy.

I note with interest that even my own projects are sometimes guilty of inadequate names for downloads. For example in UmpleOnline, you can download a directory of generated code. The download has a name like ''. The source is identified (Umple); the content is identified (Java), but neither the name of the model nor the date and time are currently identified. Both of the latter would be useful. We will work on this problem.

Thursday, November 10, 2011

Stop wasting researchers' time: Drastically simplify grant selection

Today, someone sent me this excellent blog post by UBC mathematics professor N. Ghoussoub discussing the immense waste of valuable time professors spend on applying for grants with a low acceptance rate

I have made the conscious decision to not even bother applying to grants with low acceptance rates. Even though I think my research is quite respectable, and I have over the years received a decent number of grants, simple economics tells me that it would be better to invest my time in doing actual research. 

What is the solution? Clearly professors need grants to hire graduate student, buy equipment and travel to conferences. Junior professors also need prestigious grants to boost their career. However, application processes for all grants should be streamlined.

There are excellent moves in this direction underway. The Canadian Common CV system will soon be in use by most granting agencies. Hopefully that will eliminate the need for researchers to spend any time in grant applications talking about their past research. Grant applications, at least for established researchers, should be primarily based on the CV (papers published, graduate students trained,. etc.). 

Let's take this three steps further:

  • There should be a 'common research proposal system'. A researcher would write a set of description in a standard format for pieces of research they want to accomplish -- a maximum of 2-3 pages each, with a maximum of one page devoted to literature review, and few or no budget details. The proposals would be open to public scrutiny and comment. A proposal could be as focused as presenting a specific experiment the researcher wishes to conduct, or could outline a general set of research objectives, with their rationale. Proposals could be enhanced or removed as time goes by. The professor might actually finish some units of work, or might improve their ideas, for example.
  • The common-CV system should be enhanced to automatically tag each publication with data regarding citations. It should also compute indexes like the H-Index (excluding self-citations), G-Index, and variants of these that weight more recent work more highly.
  • Have a common simplified grant-application system. A researcher would select the grants they want to apply for, indicate which of their research proposals they would like to work on with each applied-for grant, and the amount of time they would want to spend on each task. Except for expensive equipment that requires quotes, the budget would simply indicate the number of masters, PhD and postdoctoral students, plus technical and administrative assistants that would be needed. The system would compute the budget based on standard salary rates plus an allowance for conference travel and basic equipment and supplies per researcher (the amount for these would be standardized for each field). This point about budget is important: In current application processes, professors have to write detailed budgets, but then almost never get the amount of funds matching the budget; the current process just forces professors to write essentially-fictitious budgets.

The above would drastically shorten the time a professor wastes applying for grants they have a low probability of receiving. Professors would essentially make 'standing offers' or 'standing requests' to do certain research.

Much of the computation of criteria for grant selection should be automated: Selection committees would give high weight in their decisions to data such as the citation indexes mentioned above, and versions of the citation indexes computed for for publications relevant to the research field of the grant. They would factor in trends regarding graduate student training, and the professor's available time (a professor with many other grants would have less available time).

For established researchers, the peer review process would be limited to two things: 1) Brief comments on the extent to which the researcher is continuing on an established line of research, and 2) suggestions regarding how the research could be improved. If a professor is branching out in a new direction, or is a new researcher, then more detailed comments would be needed. But for researchers that are continuing in the same broad line of research, the track record should largely speak for itself. The suggestions for improvements should primarily be to help guide the researcher.

With the above systems in place, the overhead of applying for and peer-reviewing grants could be drastically reduced.

Some would argue that citation indexes can be faulty. So can peer reviews. There would clearly be different biases in the above system, but I think there would be no major sources of unfairness introduced. The system would simply render the research process a whole lot more productive.

Ghoussoub's comments  about waste of research resources also can be applied to conferences and journals with low acceptance rates. For those, however, the solution is completely different: Simply increase acceptance rates so they are generally at least in the 40% range. Far too many decent papers are rejected in my field because of arbitrarily-imposed low acceptance rates.

Sunday, October 30, 2011

Preventing SIDS with breathing monitors: Nonsense from both sides

I read with interest this Globe and Mail article today about the marketing of devices that purportedly prevent SIDS. Almost everything in the article is an important read for parents of babies. I completely agree that marketing devices with specific medical claims should not be allowed unless there is scientific evidence backing up those claims. And certainly, there is a lot of hocus-pocus at the website

However, I take exception to a quote attributed to Irene Morgan of the  Canadian Foundation for the Study of Infant Deaths. She says that breathing monitors pose "a danger to infants" because "it provides them with a false sense of security".  "High-end baby monitors may lull parents into thinking they don’t have to be as strict with their baby’s sleeping arrangements".

Excuse me?  Is there scientific evidence that these devices have caused harm?

Does using a children's car seat provide a false sense of security? Do parents drive more recklessly because they have installed a proper car seat?  Do people eat a worse diet if have an annual checkup and therefore are placated into thinking any problems caused by their diet will be detected?

I am not comparing car seats to breathing monitors. The former have been proven to save lives, the latter have not. The parallel I am drawing is the questionable assertion that people will be less careful when a safety device is in use. When making such a claim, evidence needs to be given. Perhaps some people will be less careful. But that doesn't mean that the safety device should be banned; it simply means that people using it should be warned that

The American Academic of Pediatrics has a policy that doctors should not prescribe breathing monitors, because research has shown that apnea (temporary cessation of breathing) does not seem to cause SIDS. And there is a small amount of research that says parents are under more stress when using a monitor (because they are talking about premature infants with lots of short periods of apnea, and hence lots of alarms). But there are non-sequiturs here: This research is primarily about premature infants, not normal infants whose parents might buy a regular baby monitor; it is talking about expensive medical monitors, and the research shows that even the stressed-out parents were happy, after the fact, to have used the expensive monitors. I can certainly see that it is important not to recommend an expensive therapy that seems to induce high stress and has no proven benefit. But this is not the same as saying that ordinary people shouldn't use an inexpensive variant in a non-stressful situation where there is no evidence of harm.

We have used an AngelCare monitor with a breathing detector for all three of our children. We love it. We even got a second since our first two children were relatively close in age. This is one of the devices that the Globe and Mail article and the Canadian Foundation for the Study of Infant Deaths is criticizing. To me there is absolutely no comparison between using such a device and using proven-dangerous positioning aids, that the article also criticizes, or following other hocus-pocus on various websites.

The AngelCare monitor has a device that goes under the mattress and seems to do a good job of detecting breathing, or lack thereof. If we remove the baby (so no breathing is present) the alarm sounds.

We had two false alarms early on with two of the children (due to short periods of shallow breathing). I supposed this may have caused us minor and very temporary stress for a couple of minutes. But it is reassuring to know that baby has not somehow smothered herself. And surely if she did suffer SIDS, she would stop breathing and the alarm would sound. It would surely be better to know that so one could call 911 and start CPR, no?

Are we going to do reckless things with our baby because she has a breathing monitor? No. Are other people likely to? If scientists think so, then they should do a large-scale study.

Note: The above is not medical advice. I have no medical training.

Tuesday, October 25, 2011

Nobody should use throwaway dryer sheets because there is an alternative

I don't usually plug products in this blog, however I am making an exception. Today I am going to recommend that everybody cease using traditional throw-away dryer sheets or any form of fabric softener, and instead use Static Eliminator reusable dryer sheets or a similar product.

We bought some five years ago, and they are simply brilliant; they utterly eliminate the need for fabric softener. You just leave two of them in your dryer at all times and you absolutely never get any static cling.The picture below shows them in our dryer. They seem to last forever (we wash them once every year or so). I estimate they have been through the dryer well over a thousand times doing all the wash for our family of five.

What is wrong with traditional dryer sheets with fabric softener?

  • They may contain hazardous chemicals (see this post and this post). I haven't independently verified that, but whether or not it is true, why take the risk when there is an alternative that works just as well. The comments about toxic ethanol in some posts are obviously absurd (alcohol will evaporate in any dryer), but the other ingredients seem to be legitimate things to avoid, especially for those with sensitivities.
  • Why pay the money when you don't have to?
  • Why buy throw-away products that add to landfills?

All you have to agree with is any one of the above three points, to make the decision to move to reusable dryer sheets.

Of course, the greenest of my friends will say, "if you care that much, just hang your laundry outside." Modern life in sometimes-wet and often-frigid Canada, with three kids, lots of hard work to do, and wood smoke and many outdoor allergens to avoid that get into clothes left to dry, makes that a non-starter unfortunately.

My point is this: there is a big industry out there promoting a product that is absolutely unnecessary. Just say no! Incidentally, we purchase ours online from a local Ottawa store.

One thing I find interesting is that most people who complain about dryer sheets don't seem to even know about the alternative. For example this post doesn't mention the Static Eliminator product or other reusable sheets. There is, however, a mention of reusable sheets in this article from How Stuff Works. Unfortunately they don't cite anyone testifying to their effectiveness.

If you want to encourage others to use reusable dryer sheets, refer them to this post: Five years and counting, with no static cling (except for the odd time when we forgot to put the reusable sheets in the dryer).

Wednesday, October 19, 2011

Occupy protest alternative: A public economic/political simulation everybody can use

I am all in favour of protesting when the objectives are clear, but the current 'occupy' protests will get nowhere, since their objectives are too fuzzy. Later in this post I will propose an alternative.

Essentially the protesters are saying:  "the world economy is in trouble and it's all because of evil corporate greed and evil lobbyist influence on politicians". But what concrete action could be taken to address these grievances? By not stating clear objectives they are saying "politicians (who we don't really trust), delver us from evil". They are protesting on a whim and a prayer.

The protesters are passing the buck to the politicians (and central bankers). But it is absolutely clear that 1) those politicians want to solve the problems so they can get re-elected; and 2) they either have no idea what to do, or vehemently disagree about what to do; and 3) the reality is ultra-complex, and any given solution will have adverse consequences that the politicians and the protesters alike either have no idea about or disagree about.

Let's look at what the protesters consider evil:

  • Corporate greed: What is this exactly? Paying too much money to executives? Solutions would be a) to cap salaries (consequence – the executives might leave for jurisdictions that didn't have caps, or might earn lots of money in other ways such as trading stocks, distracting them from focusing on running their companies); b) to punitively tax corporations that pay excess salaries (consequence – this would just drastically cut profits and crash the stock market, ruining pension plans, increasing unemployment and cutting government revenue); c) to tax the executives a lot more (consequence – they might move corporate headquarters to lower-tax jurisdictions).
  • Lobbyists: Most jurisdictions have already severely constrained corporate donations to politicians, so what further actions could be taken? Ban people representing business from discussing their opinions with politicians? (consequences – it would be ruled invalid by the courts as an infringement on freedom of speech, and would mean that politicians could not be informed of legitimate points of view)

In my opinion, the real problem that we are facing is a dysfunctional political system that favours a) short-term pandering to the electorate with goodies over scientifically analyzed solutions, b) rhetoric over education, and c) protest and ideology over sensible discourse.

This has led to unsustainable deficits, unsustainable energy policy, unsustainable environmental policy, and unsustainable increases in certain kinds of costs such as in health care. The unsustainable deficits are what are wreaking havoc in Europe and the US right now. The other unsustainabilities are waiting in the wings to wreak different kinds of havoc.

Here's my idea that could help lead to a solution:

Create a web tool with a comprehensive model of the world political system, economy and environment. It would have the following features:

  1. Everybody could specify the policies they prefer and see the short-term consequences of these policies on such factors as unemployment, inflation, levels of government service, poverty, crime, standard-of-living, environment, etc. Tea-partiers could chop taxes. Occupy protesters could apply any of the policies I discussed above. The results in the model would be graphically visible.
  2. The assumptions could be varied: Economists, sociologists, scientists and ideologists could all come up with sets of assumptions: To what extent would executives quit if they were taxed much more? To what extent would a carbon tax influence people to reduce their  carbon consumption, and to what extent would more expensive fuel shift investment? To what extent would people who find they have more money due to lower taxes put it into savings, or spend it? To what extent would reducing corporate taxes shift business from one jurisdiction to another, or result in corporations hiring people, raising salaries, or paying dividends? Essentially, the tool would allow members of the public to pick different sets of assumptions, posited by different think tanks, and see the consequences straight-forwardly. The sets of assumptions would be equations, hopefully with some research to back them up; those who wanted to could link to the research to see how believable they think it is. My hunch is that the simulator would give very similar results for most evidence-based sets of assumptions.
  3. The system would have a world-wide perspective. Policies could be adjusted just in one's home jurisdiction, or on a global scale, so people could see whether international agreements could help or not.
  4. The user interface would be very simple, akin to the Three Ontario Votes site or the Vote Compass site, although there would be an ability to turn on more complex capabilities for people with more background. For example, the equations of the assumptions would not be immediately visible, because most people would not understand them.
  5. People could, after exploring various sets of policies, settle on a set they are comfortable with. Perhaps they could even do this for different sets of assumptions (as in point 2 above). The accumulated preferences of people (and the consequences of those preferences) would be visible.

Such a tool would have the following benefits:

  • The tool would serve as a massively distributed way to creatively evolve policy alternatives that might actually work
  • People would see the folly of certain policies (e.g. why cutting taxes all-round is unlikely to have the benefit right-wingers expect); this might tone down the rhetoric of the right and the left a little, and result in more sensible, less dogmatic discourse
  • Ordinary people would learn about the real consequences of different policies and might be inclined to vote for politicians who propose the more sensible alternatives
  • People could protest for concrete policies that the simulator shows would give benefits they are interested in.
  • Lobbying could become part of the public discourse, with the lobbyists promoting certain sets of assumptions in the tool.
  • People might tend to tone down their expectations. They might realize that they can't have a cadillac health care system, and might be willing to settle for lower levels of certain kinds of services or higher taxes.

Those with axes to grind might  claim the simulator is nonsense when it doesn't give the results they wish. But since the simulator would be open, they could enter their own 'set of assumptions'. My expectation is that vacuous evidence-less assumptions would be clearly visible as such; in time people would gravitate to assumptions that are more reasonable. Furthermore, the performance of different sets of assumptions could be tracked over time.

Creating a good simulator would be complicated, but I think it could be done by an open-source consortium funded by a few philanthropists and with government funding through charitable tax deductions.

Sunday, October 16, 2011

Umple: status and recent progress

Here's a recap of what's going on in the development of Umple, as of mid-October 2011. This covers the most significant news from the last few months.

People on the Project:

We have had several fourth-year students from universities across Canada working on our project through the UCOSP program. Collectively they have banished several long-standing bugs in the compiler and are now working on some of the changes discussed below. The current three participants are Joshua Horacsek, Joel Hobson and Alvina Lee. We anticipate additional groups of students each semester.

Four graduate students are also very active in improving Umple: Omar Baddredin (state machines), Hamoud Aljamaan (tracing), Miguel Garzon (umplification), and Sultan Eid (C++). Andrew Forward, one of the long-term system architects, remains active and will be working on patterns and empirical studies with Umple.

User Manual and Wiki:

The user manual has been upgraded so most mature Umple features are now described, with examples. The examples can be made 'live' in UmpleOnline. Effort has also been put into improving the organization of the wiki, particularly pages to help people installing Umple and who want to develop Umple itself.


UmpleOnline has seen several important improvements. There are now a variety of ways to open Umple models directly as part of URL. You can open any .ump file on the Internet using the 'filename' argument. You can also open the built-in examples using the 'example' argument, or models you are collaboratively evolving with the 'model' argument. UmpleOnline now also allows you to generate zip files and JavaDoc documentation.

Taken together with the enhancements to the user manual, these features have significantly improved the ability to use Umple to teach UML in the classroom.

Future: UmpleOnline's graphics for drawing class diagrams have some glitches related largely to cross-browser compatibility. We are therefore planning to move towards using a toolkit that will render diagrams using html5. We hope to achieve this within a year, maybe sooner.

Outreach and publicity:

One of our key needs is to have more developers using Umple. This will result in improved quality (through detection and correction of bugs, and discovery of new features) and will hopefully result in more people understanding and adopting our overall philosophy and vision. Hopefully this will in turn improve software engineering more generally.

The Umple Facebook page has received a lot of traffic. We frequently post small news items here. Facebook says that many of these get 100 or more views. Please 'Like' this page. We currently have 21 likes; when we get 25 likes we will be eligible for a much nicer URL in Facebook.

Umple is listed on all the important open-source directories, specifically

  • Ohloh: We have 4 people who indicate they use Umple. Interestingly, they calculate that our code base must have resulted from over $4million of work, when in fact total funds paid have been on the order of $200k, since this has been largely developed by PhD and masters students. We are listed on the second page of their UML tools directory; if 7 more people indicate they use Umple, then we would be listed on the first page.
  • The Open Source Directory: We are currently rated as 4.5 stars.
  • Freshmeat: This is the standard place to post release notifications.

We encourage everybody to +1, 'Like', and indicate they 'use' Umple on all these sites.


We are going to make a new formal release of the compiler soon (1.15). This will incorporate a lot of bug fixes and enhancements that have been recently made. UmpleOnline always uses the 'bleeding edge' of the compiler, so is ahead of the formal release cycle; you can try out the forthcoming 1.15 there. With the formal 1.15 release, we will change Umple to compile itself using 1.15.

Recent changes to the compiler (available in UmpleOnline and will be available in 1.15):

Issue 221: isX methods now are generated by the compiler from Boolean attributes. This is consistent with Java conventions. Note that getX methods are also still generated for compatibility.

Issue 26: Singleton classes no longer generate constructors that require arguments. The 'lazy' keyword can now be applied to any attribute, if you don't want it to appear in the constructor; the fix to issue 229 is to default all attributes to lazy. In addition associations to other classes with a '1' end will instead be interpreted as 0..1.

Issue 229: The generate clause can now take an argument specifying a directory where the code will be output. This is useful for build scripts. You can have different generate clauses for each language (e.g. java and PhP). You can use the 'override' keyword to ignore any subsequent generate clauses.

Issue 146 and issue 227: Comments placed immediately before a class in Umple now appear in the generated code. In Java these are generated in such a manner that they will appear in generated JavaDoc documentation.

Issue 137: Use of depend after the isA keyword no longer fails.

Issue 172Tracing: You can now use the 'trace' keyword followed by an attribute name to output a record of changes. You can also do this conditionally. This is the first phase of large tracing capability being added to Umple. Tracing of associations will be added soon.

Issue 223: Developer debug mode: This will allow developers of Umple to determine the Jet template where generated code originated (this is actually not active yet, but when completed, it will be a key part of 1.15).

Plans for the compiler for the next few months:

1. Issues 238, 239 and 240History and final states: These enhancements to state machines are under development. Both are part of UML. They may make it into 1.15, or may be released later. Entering a final state would result in deletion of the object. If there are several concurrent regions in a state machine, the deletion would only occur when all regions reach the final state.

2. Issue 66Useful error messages. The biggest weakness in Umple currently is that its error messages just point to the point of failure of a parse. In UmpleOnline, even that is missing. UCOSP students are working now on building the infrastructure for comprehensive error reporting. This would include reporting parser errors as well as semantic errors in Umple (e.g. making a class a subclass of itself) and errors from the base-language compiler that is used to compile methods. Once this is all done, Umple should appear to any programmer just like any other compiler.

3. Issues 154155, 236 and others: Spacing issues in the parser. The parser is overly sensitive to the location of spaces. This is being addressed.

4. Issue 19: C++ generated from Umple. We have enabled 'generate cpp'; initially this is a clone of Java. Over the next few months we will adapt the code so it is proper C++.

In addition, further work on tracing will be accomplished, and the first public release of the umplificator tool might become available

Known bugs:

Several bugs have recently surfaced that warrant note:

Windows 7: Although Umple can be used in Windows 7, Umple itself seemingly can't be developed in Windows 7 due to bugs that remain unresolved at this time. Development of Umple can be performed on Mac, Linux or earlier versions of Windows.

Issue 235: Compiler generated in Mac OS adds escape characters to quotes. Although the compiler should be identical no matter where it is built, there is currently an issue with a compiler built on Mac OS when the ="initial value" notation used. A compiler generated on another platform will work fine on Mac OS.

Saturday, October 15, 2011

Top degrees: Computer Science PhD and Software Engineering Bachelors

An analysis by the website presents interesting data that should encourage high-school students to enter the computing profession.

They rank PhD in Computer Science as the second-best degree, and Bachelors in Software Engineering as the third-best degree. Bachelors in Computer Science is not far behind at 7th.

Their criteria combine job demand and salary, and are based on data from the US Bureau of Labor Statistics. This is not the only study to come to similar conclusions; every year fresh studies say the same thing. For example CareerCast rated software engineering the top career earlier this year, and another study used BLS data to draw interesting charts showing that software engineering is expected to dominate new job creation among all technology jobs.

I always tell people that software engineering and computer science degrees are among the few that essentially guarantee good jobs in the student's field of study. Note that most computer scientists end up practicing software engineering when they are actually hired (for my discussion of the differences, written a decade ago but still valid, see here) and I consider a CS graduate in an SE job to be, broadly speaking, practicing 'in their discipline'. Students who obtain most other degree types have a much higher chance of having to settle for a career outside the discipline of their degree. This includes degrees in the ever-popular biosciences or social sciences.

However a decade after the famous supposed tech-crash, a lot of members of the public remain incredulous when I tell them the above. They still have in their mind the total fallacy that computing is a field with high unemployment, largely because they have heard media reports of layoffs at prominent companies. But other hiring companies abound and there have been huge numbers of high-tech startups in many areas of the world.

At the University of Ottawa, where I am a professor, our first-year enrolments in these fields have only just this year begun to approach the levels of the mid-to-late 1990's, after being dramatically down for 7-8 years. Enrolments are still well behind their tech-boom peak of a decade ago. Meanwhile we are bombarded by companies desperately trying to hire people, but unable to find them. Co-op students complain of having too many interviews (which takes too much time away from their studies). By their fourth year, many of our top software engineering students have found jobs in at companies like Google, Adobe and Oracle at their head offices in the US – sucking fresh talent out of the local Ottawa market. A quick plug: UOttawa pioneered software engineering education in Canada and internationally; when our students go to these companies they report that colleagues from very prestigious US universities admire their abilities.

My message is this (and it is a message I have been telling people for 10 years): Tell anyone you know who is in high school or has kids of that age, and who has any interest in technology, to go into software engineering or computer science. There never was a crash of employment in the field, just minor blips that have long since passed. There are plenty of jobs as the above links show. In my own city, here are some links from job-posting aggregator Jooble to companies hiring now using 'software' and 'computer programmer' keywords.

As for doing your PhD in Computer Science (second-top job). I am glad to be one of those people! It is overall a great career. And most of my PhD graduates are doing well. However, new PhD's in Computer Science shouldn't count on becoming a professor any time soon, there are very few openings precisely because of the lack of undergraduate students over the last decade. This will hopeful rectify itself over the next decade, but consistent undergraduate enrolment increases are needed first. One of my five PhD graduates is a professor; two are independent consultants and two are working for high-tech startups. The challenge for those who are not actually professors is to maintain their research skills and publication record while waiting for the faculty-position job market to loosen up a bit.

Friday, October 14, 2011

Steve Jobs: A Personal Inspiration

Here's are my personal thoughts about what Steve Jobs has meant to me, and how I hope many aspects of his like will continue to serve as an inspiration to me for many years to come.

I have been an Apple user since the earliest days, and have exclusively used Macs as my personal computers since 1984.

It was partly the stark simplicity of the early Macs, and of many later Apple products, that led me to focus my career on usability and simplicity in software engineering.

But perhaps, above all, it is Steve Job's rejection of many technology dogmas, and his advice to not be afraid of changing course, and even quitting a job that one doesn't like, that I think it is most important to take as an inspiration.

Steve Jobs quit college to pursue his dreams. While I don't recommend that people quit their studies or jobs on a whim, I certainly believe that if somebody doesn't feel they are following a life path or career path that leads to fulfilment, then changing course is critical, even if it is risky and frowned upon by others.

This encourages me to question the norms of my profession, and to try new approaches, even in the face of discouragement by others. My career passions are writing, software design and teaching. Yet a professor of computer science is boxed in by narrow criteria of how they should publish. A former Dean even told me that I should not be developing software since, that did not constitute research.

I have spent a lot of time on educational research, even though that is looked at by many others as a second-tier research topic.

Recently I have made a decision change the way I do research, even though this means fewer papers and may cost me future grants. I have a passion for what I believe is the future of software development – model-oriented programming. And I want to develop Umple as an example of this and a vehicle for exploring ideas in that domain. To do that I have to put personal effort into actually doing software engineering (including model-oriented programming itself), which takes time away from writing papers. I also have to require the same of my graduate students and have to be fastidious about software qualities such as usability, and other matters that many researchers would say should not be my concern.

So may Jobs rest in peace, and may he serve as an inspiration to help people like me who don't want to have to slavishly follow the norms of their profession and instead to follow their passions.

Thursday, October 13, 2011

Tax fairness for citizens residing in other countries

I have been watching the situation wherein the US is threatening to tighten demands on its citizens to file a US tax return pay US taxes, even when they reside in other countries.

This morning, there is an interesting article in the Globe and Mail that proposes that the Canadian government retaliates and forces the millions of Canadians living in the US to do the same. That would hurt those Canadians, but the idea is that US banks, who would have to report income to Canada, would lobby against the whole silly situation.

This issue interests me for two reasons: The first is that I am a dual UK-Canadian citizen. I long ago filed relatively simple papers with the UK stating that I am a resident of Canada, allowing my small UK income (book royalties) not to be taxed at source. This required certification by the Canada Revenue Agency that I have been paying taxes to Canada that include my foreign income. I certainly don't have to file a tax return there and I don't have to repeat that non-residency filing – it was a one-time matter. I would be very concerned if even small aspects of the US model of citizen-taxation were to be adopted by the UK. The likelihood of this happening is small, but it gives me the shivers to think about it. Going through the paperwork of filing one country's complex tax return is a necessary chore; but doing two forms in order to actually be double-taxed would be horrendous. Even if a tax treaty allowed me to deduct the taxes paid in the country of residence, the multiplication of paperwork is just a nasty thought. To increase everybody's productivity, all countries should seek to minimize the amount of paperwork its residents or citizens have to file.

My second interest is that I have fastidiously avoided anything that will end up forcing me to file a US tax return or even get a US Social Security Number simply because situations like this make me ultra-wary of any involvement with the IRS. The Canada Revenue Agency and the Canadian tax system seem so much friendlier. I have on various occasions been offered small US contracts, or honoraria. Some of these would have resulted in tax deduction at source, or would have required a US Social Security Number. I want to maintain my privacy and only reveal data to the government in the country where I live and obtain services. I see the US's desire to have non-residents file complex forms to be excessive. Before accepting any US source of funds (e.g. being paid to review a book), I ensure that there will be no requirement for a SSN or taxation at source. As a result I have repeatedly turned down such offers. I have even turned down volunteer tasks because the agency in question has had a requirement for an SSN in its registration process. Two of my daughters were given a single share each in entertainment companies as gifts when they were born. The minuscule dividends are taxed at source, and I am threatened that unless I file IRS paperwork, I may be considered (as guardian) to have abandoned the shares; so be it (I am told the solution is to transfer the shares to a US brokerage account, something I intend to investigate).

One can imagine the motivations the US has to force its citizens to file a tax return: It is concerned about its wealthy citizens ostensibly living and earning income in tax havens like the Cayman Islands, yet 'visiting' the US for a large portion of the year. Maybe it also feels that even if they are non-residents, they still are entitled to such costly benefits as consular assistance, defence of their freedom, the right to vote and the maintenance of the US political system on their behalf, etc.

These are legitimate concerns. Offshore tax havens should, however, be tackled in other ways (diplomacy, banning domestic banks from dealing with banks in countries that don't reasonably tax their residents, taxing transfers of funds to those countries, etc.). I would be fine to require a citizen to file taxes to their home country if they live in a designated tax haven, and to make agreeing to this part of the process of obtaining a passport. A designated tax haven could be, for example, a country that has little or no personal income tax.

Consular services and the right to vote while a non-resident, if allowed, could be paid for by fees for passports or non-resident voter registration. Perhaps if people want to go to risky countries they should have to declare this in their passport application and pay a significantly higher fee (a form of insurance), or else agree in advance to lower-priority help if they run into trouble in such countries.

As a resident of Canada, I have to declare my foreign income, and would have to declare substantial foreign assets, if I had any. I am fine with this. I would also be fine filing a US tax return in any year I lived there, even for a couple of months. US citizens living abroad should essentially be treated the same way as I would be if I lived in the US, or the way I am treated by the UK. A simple declaration of non-residence (with evidence of paying foreign taxes) should be enough. I actually think that if the IRS were friendlier, they might in fact find that people are more willing to pay taxes to them.

Friday, September 30, 2011

Why I blog: Structured procrastination?

I just came across a marvellous essay called Structured Procrastination

The author just won an IgNobel award for it.

It is a humorous article, but it rang incredibly true for me.

Why did I start blogging about a 11 months ago, when as a professor an researcher I am always profoundly overloaded? Because it was a way to fill in time when I was sick of working on more important tasks that were causing me stress (writing papers, reviewing, preparing grants, preparing for courses, doing administrative tasks, etc.). It was a way, just like reading the paper, or going for a walk, to exercise my brain in different directions. 

After writing a blog post, I often feel motivated to get back to the grind. Overall I have found my productivity on those important tasks has gone up substantially in the last year. Furthermore the blogging process has caused me to think more deeply about some things, which has helped aspects of my research.

I have a nice blog post in preparation showing the vast number of types of tasks professors of Computer Science have to do ... but enough for now. This little bit of structured procrastination has motivated me to tackle by two important tasks for the afternoon: Writing up some minutes and preparing for an accreditation visit.

Thursday, September 29, 2011

Are the Ontario Green's really farther right than the federal Greens?

In the Canadian federal election earlier this year, I used the VoteCompass tool produced by the CBC to see where I stood politically. I wrote a blog post about that. I was middle-of-the-road, like the Liberals (according to the tool) on the economic spectrum, but more socially liberal than the liberals. 

Notably, I did not seem to be placed close to my favoured party, the Greens (favoured because of their environmental stance, coupled with good economics). At the time, I commented that the Greens seemed to be placed wrongly by the VoteCompass tool. I have always liked the Greens precisely because they are environmentalists who also have a good grasp of economics, and are not as left-wing as the NDP.

The new VoteCompass tool for next week's Ontario election has a fascinating contrast to the above: All the other parties appear right where they did in the Federal campaign ... except the Greens. The Greens have shifted right. Not beyond the centre, but they are no longer on the left economically. I think this new tools is placing them where they belong. See below for the output of the tool after I had used it.

The Ontario VoteCompass puts me right on top of the Liberals. I think, actually I ought to have been placed right where the Greens are: In the dead centre. 

I will likely vote for the Greens, but might consider the Liberals if my district was close. I think Dalton McGuinty has done a good job. His push for clean energy is on target, for the most part. I would hate to see the Conservatives reverse course, as they have indicated they will.

My only question to McGuinty is, if he lowers university tuition as he has promised is he going to make up difference to the universities? And more than that, is he going to reverse the decline in per-student funding?

Tuesday, September 27, 2011

The Keystone XL Pipeline or not? We must say no to protect the world for our descendants

I urge everybody to read an excellent post by Steve Easterbrook, in which he writes a letter to President Obama, asking him to consider carefully before approving the Keystone Pipeline.

Easterbrook's post says it all. Making it easier to bring massive new fossil fuel resources to market will put us further on the wrong track regarding climate change.

We are in an awful dilemma. Economically, Albertans, Canadians and US residents will be much better off in the next 10-15 years if we can increase access to the huge oil sands resources. Our current economic troubles are caused, in large part, by the fact that we are at or nearing Peak Oil (where supply of oil can't be raised to meet new demand, so prices rise). Making it easier to exploit the Alberta resources would buy us more time.

However, the devastation to be caused by climate change and higher C02 levels (desertification in some areas, flooding in others, increased weather disasters caused by more intense storms, shifts in food productivity, mass migrations and conflicts caused by these factors, mass species extinctions, acidification of oceans) are an even more critical issue.

We need high oil prices to force investment in alternative energy sources, and we need to resist bringing high-CO2 energy sources to market. The oil sands are extra-high CO2 resources because so much energy is required to extract the oil.

My guess is that Obama will approve the pipeline, since the votes from people without jobs and affected by the recession will likely be greater in number than the votes from people who understand the real issues at stake. I respect Obama, but he is in a tight spot politically. I think he will end up making the 'wrong' decision. Mind you, if he loses next year's election, I shudder to think what might happen if the US Republican's regain the ability to freely make decisions on issues like this.

The only possible way forward is to have everybody spread the work about the issues at stake, so more of the general voting populace can have an influence on their politicians.

Thursday, September 22, 2011

Palestinian UN vote: Let's hope statesmanship wins

This morning's article in the Globe and Mail says it all. The US, and even Israel, would be far better off supporting the Palestinian bid for UN membership.

The US and Israel would gain by finally showing Arabs that they can do what is right. Support would help quell radical tendencies and lend greater influence to moderates in the Middle East. That, in turn, would help boost security on all sides and lead to earlier and lasting peace.

Not supporting the Palestinians would fuel the fires of radicalism that have burned for decades. The potential setbacks and harm are unimaginable.

Israel clearly knows that the Palestinians will one day have their own state. Why not now? The Israelis clearly are concerned about security and want to maintain bargaining power: "You will get your state when you agree to terms that are more favourable to Israel". But that kind of heavy-clout bargaining just fosters anger in the weaker party.

Give the Palestinians their state now. There are plenty of nations that have disputed borders and other issues to resolve with their neighbours. The disputes can be resolved at a later date.

The Israelis claim that the Palestinians have not been willing to bargain, and shouldn't be allowed to do an end-run around the process. With some legitimacy, the Israelis say that Palestinians don't make enough effort to control their terrorists and hence support violence when they haven't got what they want. But Israel uses somewhat-heavy-handed military 'defensive' might when attacked by the terrorists, and then won't bargain because it fears more violence. Both sides refuse to bargain because they are being attacked in different ways. This will never stop unless moderates are given more influence, and the statehood bid is one way for that to happen.

It is easy to see why many in Israel, and Jewish people (and their friends) in other countries want to keep all the bargaining cards they can against the Palestinians. They are deeply emotionally tied up in the issue. But it is even easier to see why the 'underdog' Palestinians and their Arab supporters (and their friends) feel especially aggrieved. As a friend to many Arabs and Jews I really hope that the opportunity is now seized to get past at least some of the long-standing roadblocks.

It all really boils down to politics though: Obama needs votes from people who don't want the UN vote to pass. Let's hope statesmanship wins.

Saturday, September 10, 2011

Monarchy in Canada: Anachronism?

I have dual British and Canadian citizenship.

In Britain I think the monarchy is a wonderful thing: It brings many tourists, it helps provide cultural cohesion, it reminds people about the richness of their history.

But in Canada, things are not so clear. Prime Minister Harper brought back 'Royal' to the military and has asked embassies to display a picture of the Queen. However, this funny satire by Jeffrey Simpson points out how such changes probably look very odd to many in the country, and even odder to outsiders.

Canada's head of state is the Queen, who occasionally visits, and has her image on all our coins. We probably get some tourism and cultural cohesion value from the monarchy, like Britain. But I think that emphasizing the monarchy will do more harm than good. A great many Quebeckers will feel a little more alienated, and international observers will take Canada a little less seriously.

Do I think we should abolish the monarchy in Canada? Perhaps, but I would prefer to use some term other than 'abolish', and I think we should not do it while Elizabeth II is on the throne. Perhaps we could talk about 'evolving' the monarchy.

I would not like to see an elected president: That would just result in more divisive partisan politics. I would prefer to see the official head of state be the Governor-General, who would eventually become chosen from a group of elder statespersons from all parties, chosen both by the Federal and Provincial governments as well as the aboriginal people. A similar thing would happen with the Lieutenant-Governors of the provinces. Perhaps the elder states persons group could create a private shortlist from which the Prime Minister would finally pick, in consultation with the Leader of the Opposition.

But to preserve a link to the past, perhaps the reigning British monarch could then be given several honorary titles in Canada, such as Honourary Prince/Princess, or Honorary Commander of the Military.

The above would result in formal legal changes to the way government works, but in practice we would continue to be governed as we are now. It would also result in removing the need to have the monarch's image on every coin, and other things that irritate some people. And we could even keep the names 'Royal Canadian Navy' and 'Royal Canadian Air Force' as long as the rank and file members support that.

Friday, September 9, 2011

Mac OS Lion irritants that Apple should fix

When Mac OS X 10.7, otherwise known as Lion, first came out, I published a series of reviews.

Here is an update after about 45 days of using Lion.

Overall I still find Lion an improvement to snow Leopard, but only just.  I have found myself using the optional new features less and less. For example, I practically never use Mission Control and only occasionally use LaunchPad. The 'compulsory' new features, such as the change in scroll direction, and the new look of Calendar and Address Book, remain more negative to me than positive. I have continued my practice of turning off 'Natural' scrolling, for example.

Although in my earlier post I rated Autosave and Versions highly, in a months use I have actually found details of their current implementation to be very irritating. I will explain why below.

The thing that probably saves Lion, for me, and results in considering it a marginal improvement, is my confidence that backups are now being done when I am away from my backup machine.

Here is a list of what irritates me about Lion. All of these things could be fixed easily in a future update of Lion. Hopeful Apple will take notice:

1. Stability: It is normal in a new OS version to have stability problems, but Lion is worse than normal. I have had about four OS crashes, which is considerably more frequent than I experienced in the last few years with Mac OS. With Snow Leopard, I experienced about one OS crash every 8 months. I would leave my computer running (or in sleep) for months on end. I have also had nasty crashes in a few applications, most notably NetNewsWire, which now crashes over and over again every few days, probably when some malformed RSS item appears. This started occurring the day I installed Lion and has ever since.

2. Slowness due to firing up attached hard drives. If external drives are attached and sleeping, Lion and its apps now sometimes insist on spinning them up to speed, displaying the 'beach ball' while doing this. That delays one's ability to do work, and never happened in Snow Leopard.

3. Lion won't sleep when a second screen is attached: I usually work with two screens, my laptop screen and an attached larger screen. In Snow Leopard, closing the lid would cause sleep. Now, if the second screen is attached, closing the screen results in that second screen taking over as 'main screen'; sleep does not occur. This is highly irritating, and I haven't been able to find a way to deal with it in a satisfying way. The workaround is to remember to unplug the second screen before closing the laptop, but that should not be necessary. Apple should have a preferences option allowing users to choose which laptop-closing behaviour they like best.

4. Drag and drop in Finder is harder to do: Apple has made drag and drop more 'fancy' by adding graphics and animation to the set of items being dragged, however this makes it more difficult to position the cursor accurately over a small target, resulting in items being all-too-often dropped in the wrong place. The subdued colours in Lion also make it harder to see whether the target is selected. A good solution would be to animate the target, when selected, making it grow in size, like the dock does.

5. Sideways signatures: The 'signature' feature in Preview is cool. I like being able to sign documents electronically using the web cam. However it has one weakness. It won't allow you to rotate the signature. If someone sends you a scanned document sideways and the pdf file thinks that 'up' is one of the sides, then Preview will insert the signature sideways. There needs to be an option to rotate the signature when placed on the page. Rotating the pdf file doesn't solve the problem. The current workaround is to print the pdf file to pdf. You get an identical file, except that it now knows which way is up!

6. Restart/restore needs per-application control: One of Lion's key 'features' is that it restarts open applications and reloads open files upon restart. But the fact that there is no way to fine tune this is just plain annoying. It is possible to turn it on and off entirely. What is needed is an ability to turn resume and file reopening on and off for specific applications. Why? Applications like Word and Excel open a blank page when started. This just gets in the way when rebooting. With other applications, like Preview and BBedit, one way to clear out tons of open files was to quit.  With applications that do things like maintain a network connection, it makes no sense to start them until I am ready to connect to that network service. But I don't want to turn the feature off entirely since it is quite useful in a few apps.

7. Autosave and versions disrupts workflow and causes crashes: Although I gave autosave and versions an A+ in my earlier post, I have come to dislike the way one is forced to use them. Currently they are only available in Apple apps and certain third-party apps. My experience is with Preview. One of my main workflows in Preview is to work through a long list of JPEG files, adjusting them in rapid succession. Autosave has a hard time keeping up; in one case I was taking less than a second per file to reorient a whole load of files, and was working faster then autosave could keep up. Eventually Preview crashed. Another workflow I use extremely often is to take a document, modify it and then save the modified version with a different name. In Apple's new setup you have to 'export' a version and restore the original file, or remember to make a copy first then modify that copy. Sometimes you don't know until you have made a few edits whether you want to create a new file out of the old, or apply the edits to the original. There needs to be a 'Save as...' menu item that will make a new file with the changes, and by default, restore the original file to how it was.

8. Calendar event entering is subpar: I find that Calendar's method of interpreting free-form text to make a calendar entry doesn't work well, particularly since I always need to open the dialog to set other fields anyway.  How about popping up a non-modal dialog with all the available fields if you hit enter without typing anything.

9. File renaming is more awkward in Finder: When you rename a file, it momentarily flashes the old name. This is a visual annoyance more than a functional one, but gets in the way mentally when doing a lot of renames.

In addition to the above, I have started using Safari as my main browser. I used to use Firefox. The following are the irritants in Safari that Apple should fix:

10. Remembering passwords is modal: In Firefox, the 'remember password' feature works nicely. After you enter a userid and password into a website, Firefox transmits the information and you get logged in (or not if your credentials are wrong). Only then are you required to confirm that you want Firefox to remember the password. Safari, on the other hand, has a modal dialog shown below: You are forced to confirm remembering the password before you get to see whether you got it right. This is absurd. It also adds delay. I have well over 100 passwords, so password management to me is very critical, and my memory often gets it wrong. I really want to know that I got it right before confirming that to Safari.

11. No memory of larger font: I often use command-+ to make the font bigger, so I can read text more comfortably. Firefox remembers, on a site-by-site basis, when you have done this. That is an extremely nice feature. When I am reading a news site, each page appears with the font size I have selected in the past. Safari, however doesn't remember this information, so I have to command+ every page I visit. Incidentally, Internet Explorer on Windows seems even worse, often not remembering font size when using the back button.

Thursday, September 1, 2011

Hardware with usability problems: Dyson Airblade hand dryer

Most of my usability posts are about software, but from time to time I will comment about usability issues in other aspects of life, such as machines and buildings.

The picture below shows the Dyson Airblade. This is a new kind of hand dryer popping up more and more in public washrooms. I hate them. Please, if you are installing a washroom, don't choose this technology!

This technology uses high speed jets (blades of air) to rapidly push the water off your hands. You insert your hands from above. The water is 'pushed' rather than evaporated. It works, if you are an able-bodied adult with steady hands.

The big benefit of the device is lower energy consumption.

What are the problems:

  1. They are totally unusable by small children. You have to insert your hands from above. Small children simply cannot reach the slots. In many washrooms with these devices there is no alternative, so kids have to leave their hands wet. My four-year old cannot use these yet; she is short and likely will only be able to use them when she is 6 or 7. This is unacceptable.
  2. Disabled people in wheelchairs cannot use them. This is a critical accessibility problem.
  3. People with Parkinsons, or unsteady hands in general will always find that they end up touching the yellow borders of the device. This is unhygienic. Dryers should not require touching anything because not everybody washes their hands well.
  4. Even people like myself and my wife don't like them because of reason 3. I have steady hands, but it it requires attention to avoid touching the borders; not easy, for example, if you have little kids in tow.
I don't see an easy way to fix this without major redesign. They could somehow arrange for an additional set of hand slots much lower down, to solve problems 1 and 2. However that would increase the cost a lot. To solve problems 3 and 4, they would need to increase the openings a lot, but that would decrease the effectiveness. Perhaps some kind of mechanism could automatically move to avoid having the device touch people's hands, or perhaps it could be redesigned so people insert their hands up to their sleeves, so only their sleeves would touch. A moving element could then push the water with the blade of air. However, this all seems very difficult to achieve inexpensively from an engineering standpoint.

If you agree with the above, please forward to the company, to building supervisors and to your friends. The corporate website has a feedback form  Let's try to get a movement going against this device until it is redesigned to solve the above problems. Such unaccessible devices are totally unacceptable.

Wednesday, August 31, 2011

Helium: Of incredible value for the future, yet in short supply - Don't use for party balloons

One thing the public seems completely oblivious of is the situation regarding helium. Currently, we are experiencing a supply shortage, and although suppliers may be able to increase output somewhat, it is a rapidly depleting resource. Supplies will ratchet down rapidly over time.

Certainly, I suggest that everybody seriously consider not wasting helium on party balloons. As a matter of principle, my family have strictly avoided using helium in such a wasteful manner.

At one time Helium was produced as a byproduct of the nuclear weapons industry. Today it comes from certain natural gas deposits. However, they are projected to run dry in the coming decades.

We have all heard of shortages of resources that will in time cause problems for our civilization. Oil and other fossil fuels are one problem; we all hope renewable energy will replace them by the time they run out (i.e. the remaining supplies become excessively expensive).  Metals are another problem: Mines are running out. We all hope that recycling and advanced materials will solve that problem.

The trouble with helium though is that it is small and light. It leaks out of all but the most elaborate, and hence expensive, containers. And when it leaks, it goes up, to the top of the atmosphere, where recovery would seem essentially impossible. It can't be collected in recycling depots like junk metal or electronics, and can't be manufactured (since it is an element) other than through nuclear reactions. We have a small supply so it is absolutely critical not to squander it.

I was aware of the shortage from reading articles over the past decade, however it really hit home this past summer when we received a bulletin at the university telling us that our contractual supply of helium for scientific work likely could not be met.

Helium is needed in various industries. It used in extreme cooling, and hence in modern medical devices like MRI machines. It is hard to cool things as low as helium can. It is used in radiation detection, hence is important for nuclear securityIt is also used in other areas of medicine. And in the future it may extremely valuable as a fusion fuel. Our decedents will curse us if we have wasted it all. We should be thinking in terms of the supply needed for centuries or millennia. The current shortage is nothing compared to what is to come.

Here is a very interesting article at Wired on the Helium shortage. It points out that there is likely a plentiful supply on the moon.  However, sending spacecraft to retrieve it will be staggeringly expensive.

Tuesday, August 30, 2011

Stores should have apps to locate products on their shelves

Here's an idea I have wishing was implemented for many years:

How many times have you visited a grocery store or hardware store and had a hard time finding needed items? It may be because you are unfamiliar with the store's layout, or because the items you want are obscure, or can fit into multiple categories. I find the problem particularly pernicious in huge hardware stores, when you are looking for items you may only ever buy once, and have no idea how the store is arranged.

Therefore, in every grocery store or hardware store, you should be able to search to determine if the store stocks the product and exactly where it is located.

This would be an ideal mobile app. Your Android or iOS device could quickly lead you to where a needed product is located. Furthermore, you should be able to plan your shopping on your home computer even before leaving to go shopping.

The challenge for store owners would be indexing their shelves, assuming they don't already do this for inventory-management purposes.. However consider the following analysis. Imagine a typical grocery store: Shelves have to be stocked constantly, and staff have to be knowledgable about where items are located. A certain amount of staff time is dedicated to helping customers find items. Also, customers would be attracted to a store with a good index, since they would be able to more rapidly locate items. All this argues in favour of it being a net-postive investment to have staff index shelves.

How much time would staff need to index shelves? Imagine there was a device available that could scan bar codes and using enhanced GPS, automatically enter the location into the store's index. Imagine then that someone could scan one product type every 10 seconds, and there are 6 product types per meter of shelf space, five shelves high, and 250m of shelves in the store overall. That would result in the 7500 products being indexable in about 25 hours of work - only a little more than half a work week. If indexing were redone only every 3 months, then the overhead would be 1 20th of a full-time-equivalent person. The indexing overhead could be reduced even further if it was tied to the restocking process (whenever someone is restocking the shelves, they scan the item).

Interestingly Tesco in the UK is making it possible for people to plug their iPad's into grocery carts! Why to add search to this.

The possibilities for enhancing this service are endless:

  • People could create a customized list of the products they buy (perhaps by scanning barcodes), and then check off the items from this list that they have run out of. The system could then give customers an optimized route through the grocery or hardware store that would lead them to pick up each item in sequence, alerting them to when they have arrived at the location where needed items can be found on the shelf. This would make shopping significantly faster. I suppose it would also reduce impulse buying, which may be one reason such a system has not yet been deployed.
  • If this mechanism were standardized across the industry, and a database of current prices was also maintained, people could do zero-thought comparison shopping, create multiple customized lists, allowing them to visit the shelves of several stores to achieve the overall lowest combination of prices. Of course, this would increase competition, and result in downward pressure on prices, which may be another reason why such a system has not yet been widely deployed my merchants.
  • Even if a store itself doesn't maintain such a database. perhaps an external enterprise could do it for the stores in a given city. The cost would be low enough that a low subscription fee ought to pay for the service. I would be willing to pay, for example $20 per year for access to indexes of the 10 grocery and hardware stores near me. It would require 750 subscribers to break even if someone is employed at $30,000 per year and full indexing is every three months. However if indexing was done in full only yearly, with incremental indexing for seasonal items less frequently, then costs could be substantially reduced. Of course, stores may raise legal challenges, asking people to leave who are not buying. However, all it would take would be fore one or two stores to allow indexing before the others would have to permit it, lest they be left out.
  • And what about crowd-sourcing? If enough people sign up to index a few items using their smartphones, every time they go to a store, the indexing problem may be solvable at a very low cost.
The user interface for search in such a system would have to be well designed. Many products have near synonyms, or are hard to spell. For example a search for 'spaghetti sauce' should find pasta sauce as well, and a a search for 'spagety source' should also find it, since not everyone can spell.

Other challenges relate to creating usable shelf maps with precise-enough positioning information. However I strongly believe that these are technology challenges for which good software engineering can really provide the solutions, and for which the hardware embedded in today's mobile devices would be sufficient.

There are some people already working on this kind of application: For example this article talks about ongoing work at the University of Washington, outlining some of the challenges. This article talks about planograms, which are the shelf maps that are already in use in the industry to assist with product placement.