Computing

"Corporate Governance", Identity and Meat

At the risk of stating the obvious, democratic government is unlike running a business in a number of important ways. David Olive gives one of the similarities in his excellent blog at the Toronto Star:

It is the death of any commercial enterprise to starve itself of necessary expenditures on R&D, new-product development and marketing. I'll never understand how today's conservatives fail to make that connection, slavishly devoted as they claim to be to free-market principles. Maybe it's because so few of them have run a business. Or had to make their way in the private sector - as I do - without being subsidized by a Rupert Murdoch, the Fraser Institute or the Heritage Foundation.

Incompetence is universal. It should be evident that the architects of such spectacular failures as the overdue Boeing 787 project, the GM bankruptcy or the Wall Street meltdown would do no better in public office, where oversight is more open but less effective. However, even successful companies are usually inappropriate models for government.

Choose Apple, for example, whose innovation and focus on design has made it wildly successful and won it hordes of fans who might well vote for a President Steven P. Jobs. But the breath-taking, march-stealing nature of Apple's product launches depends on a rigid and well-documented culture of secrecy. As much as politicos might envy the impact of Apple announcements, they would be ill-advised to try and duplicate it. Funding announcements without stakeholder input will miss the mark and be ineffective; unannounced funding and/or cuts make the granting government look guilty when they are inevitably unearthed.

Yet governing parties at all levels, in Canada and elsewhere, continue think they can engineer positive surprises and suppress negative ones—and they continue to fail in doing so.

Identity

You can observe a number of common privacy tactics among your friend with an online presence:

  • Private or semi-private blogs or portions of blog posts.
  • Using partial names on social networking services ("Paul K").
  • The use of handles or pseudonyms.

I use none of the above. If identify theft is a concern, they will foil only casual (harmless) attempts. As for sharing details of one's personal life, it is mostly pretentious to expect they are consequential, or that large numbers of others will be interested in them. I—and certainly others—often neglect life proper, so why further the problem by spending time writing about it?

Alternate identities are another easy target. We spend entire phases of our lives struggling with identity, so maintaining a second (or third, or fourth) introduces needless complications. Where concerns about one's employer motivate anonymity, there is doubtless a value conflict that deserves close examination.

Having grown up before the advent of cyber-bulling and, being male, unlikely to be the target of sexual violence, I am no doubt privileged in being able to hold these views. Still, I firmly believe in consistency and honesty of online identity.

Meat!

Finally, the Walrus (after disappointing in May) redeems itself with this excellent short story by Zsuzsi Gartner in its September issue. Delicious! If the quality of writing remains so high for a full year, I can quit whining forever.

Software and the small organization

I have been involved in a number of small organizations in which I held either explicit or de facto roles as a director of communications or webmaster. These include the Iron Dragons, the University of Toronto Engineering Society, the Leaders of Tomorrow Working Group (WG) for Engineering Science and later the Graduate WG, as well as project groups for several courses.

As a web development tinker, I have been able to introduce a number of tools to these groups, including:

Some thought processes are useful when choosing and deploying such tools.

Identify the spanning set. I have written about this previously. Technology needs to be applied judiciously. For example, using MediaWiki for most small projects is a little bit like sandblasting a soup cracker. Ask yourself the following questions:

  • How computer-literate are my users? How much time and effort can they devote to learning new tools? How much can I devote to teaching them?
  • What communication is most important? Is it the communication between executives? Between regular members? From the executive to outsiders? Will the software I am considering obstruct the flow along these popular channels?
  • What computing capability is available to me?
  • How much time to I want to spend babysitting the configuration? Are my other responsibilities to the organization more important?
  • Do I want to write code that someone must later maintain?

The answers should help guide your selection of software tools for the organization. Further, once you have committed to a tool, they may govern how you use its features. Larger Drupal websites rely on interlocking contributed modules, configuration and theming. Often there are many ways to skin a cat; instead of using the first you come across, research and make a careful choice.

Question the need for control. Not every organization is committed to being an Open Organization, but many would do better to try. Consider information:

  1. Regular reports - Reported activities and future plans allow monitoring and participation.
  2. Information accessible - Even internal operational information is available by default.
  3. Explicit confidentiality - It is explained what areas are confidential, why and who access them.

The first is often a requirement; especially in representative (student) government, where reporting of minutes is a mechanism for accountability. Even in smaller groups, #3 can be useful. By acknowledging and delineating what information is shared, you defend the organization against the unpredictable actions of members who feel they are being shut out of decisions they care strongly about. Finally, #2 can serve two purposes; the first is recruiting. The casual visitor may be enticed if (s)he sees something intriguing; it would take considerable effort to replicate this effect through deliberate marketing. In groups whose activities include leadership development, internal operational information further serves as evidence of the development process, as well as fodder for reflection.

In using software, implementing access control to hide certain information is always extra work. With the above principles in mind, question why it is necessary to maintain separate and perhaps dissonant sets of information for internal and external audiences.

Use Free Software. Call this bias if you like, but it is more reasonable to point your successors to http://openoffice.org than to expect them to have access to a (questionably legal) "copy" of Word. If your organization is a business, the former practice does away with worries about software piracy.

Free software is not without its faults, however, one of which is that it develops in an ecosystem. Projects which fail to attract users stagnate and ultimately disappear. Balance the features of available alternatives against the apparent health of their community; as with proprietary software, avoid "vendor lock-in". If the community behind your current software seems to be dying, migrate out.

Plan for the future. What is your level of knowledge in web development and software administration? Can you expect your successors to reliably be as knowledgeable? Even if not, favour simpler configurations which are more easily maintained. Perhaps this entails (where it means no inefficiency elsewhere) changing practice in your organization to suit the stock behaviour of some software.

Documentation is invaluable. Even if your own knowledge was assembled from hours of schizophrenic Googling, save and share a collection of links. Spend a few hours recalling problems which at first had you stymied, and explain how you overcame them. Keep this documentation in the simplest possible form, to remove any barrier to your successors in updating it.

It is the organization, and not you, which learns lessons. Do what is necessary to ensure the organization's future behaviour reflects them. The alternative is that your successor, knowing no better, will repeat your rookie mistakes, undo your hard work, and—worst of all—potentially damage the organization's data.

Work hard. If you find yourself grappling with these issues, you have already decided that your organization can communicate more effectively and therefore work better with the use of technology. But you need to do more than simply mentioning as many Web 2.0 social networking sites as you can in one breath ("FacebookMySpaceTwitterYouTubeDigg..."). Indeed, shoddy work can mean an unintuitive setup that will create an aversion reaction in your peers, at which point you have immunized the organization against all technology. The only course is to do the hard work necessary to get a good suite of tools which are accepted and adopted.

LaTeX tools

Over the past few months, I have moved almost entirely to LaTeX for word processing. The transition started at the end of AER407 Space Systems Design, when OpenOffice (or my five-year-old desktop) choked on a 200-page document with over 120 figures. While it was too late to transfer that entire report to LaTeX, I now use it even for one- or two-page documents. Why?

  • I am accustomed to editing HTML and other source code files and so habitually abstract content from its appearance—exactly the purpose of LaTeX.
  • Gedit (a text editor) is much faster to start and even more responsive than OpenOffice. I can also have documents I am referring to (e.g. other LaTeX documents included in a master document, source code files) open in other tabs.
  • BibTeX. 'Nuff said.
  • The results are beautiful PDF files.
  • It's free!

Some tips and tricks to streamline LaTeX authoring:

  • Use the LaTeX plugin for gedit. This adds a handy toolbar for common commands, and the document can be compiled with a simple Ctrl+Alt+1. The plugin requires Emmanuel Beffara's excellent rubber compiler, which obviates the need to run pdflatex or other programs repeatedly (install).
  • Charter BT (PDF sample) a slightly chunky but still elegant serif font. This is in the texlive-fonts-recommended package (install).
  • Add a right-click menu item to folders in Nautilus using the nautilus-actions package (install). This item removes all the extra files (.aux, .bbl, .out, .blg) created as intermediate stages of compiling a LaTeX document.
    • System > Preferences > Nautilus Actions Configuration, click Add.
    • Label: Remove LaTeX byproducts
    • Tooltip: Remove temporary files created when rubber compiles *.tex documents.
    • Icon: gtk-clear
    • Path: find
    • Parameters: %M -name *.tex -execdir rubber --clean '{}' \;
    • Conditions: Appears if selection contains only folders.
  • Use \input{...} at the top of documents to include a header file like article-general.tex containing shortcuts and some common package includes.
  • texdoc packagename, which is like "man", only for LaTeX packages.

I also collect links at http://delicious.com/khaeru/latex.

Password strength

https://secure.pctools.com/guides/password/ is a useful tool. Many people use weak passwords, and further use the same password for many sites online. Knowing this was a bad idea, for a long time I used a system that involved choosing an obscure word with several vowels and applying a simple cypher to make it more secure:

aeiost
431057

...so that, for example, 'supercalifragilisticexpialidocious' became 5up3rc4l1fr4g1l1571c3xp14l1d0c10u5'. Occasionally I would also capitalize a non-leading letter. This is what is referred to as "leet speak", and the substitutions quickly feel natural, even if you use them for nothing but passwords.

However, these passwords are just as weak as the dictionary words they are based on, because it is as easy for a password-cracking program to perform these substitutions as it is for a human. If we use Firefox, we can do better with the help of smart keywords and the password storage feature. We can use a different password for each website, and rely on a master password (or a locked screen on our workstation) to prevent their use by someone with physical access to a machine.

Go to the password generator, click all the checkboxes, choose 50 from the Quantity drop-down, and finally click Generate Password(s). Presto! Pick one of the passwords and use it. Note that since the site was accessed via HTTPS, no one else is likely to have snooped the list you received. Even if the site is maliciously remembering passwords (which I doubt), it does not know which of the 50 you have chosen, or where you used it.

Finally, examine the URL:

https://secure.pctools.com/guides/password/?length=8&phonetic=on&alpha=on&mixedcase=on&numeric=on&punctuation=on&nosimilar=on&quantity=50&generate=true

Replace the length with a wildcard:

https://secure.pctools.com/guides/password/?length=%s&phonetic=on&alpha=on&mixedcase=on&numeric=on&punctuation=on&nosimilar=on&quantity=50&generate=true

Save this as a bookmark with the keyword pw, and you can generate passwords quickly by typing F6 (select the Address Bar), "pw 10", Alt+Enter (open in new tab). For important passwords, you can even write the phoenetics on a card and keep it in your wallet, relying on your own memory to associate the password with the place you use it; or send the phoenetics (never the actual password) over e-mail or (preferably) instant messaging.