Search Results: "xam"

10 April 2010

Russell Coker: Web Server Performance

We Have to Make Our Servers Faster Google have just announced that they have made site speed part of their ranking criteria for search results [1]. This means that we now need to put a lot of effort into making our servers run faster. I ve just been using the Page Speed Firefox Plugin [2] (which incidentally requires the Firebug Firefox Plugin [3]) to test my blog. Image Size One thing that Page Speed recommends is to specify the width and height of images in the img tag so the browser doesn t have to change the layout of the window every time it loads a picture. The following script generates the HTML that I m now using for my blog posts. I run BASE=http://www.coker.com.au/blogpics/2010 jpeg.sh foo.jpg bar.jpg and it generates HTML code that merely needs the data for the alt tag to be added. Note that this script relies on a scheme where there are files like foo-big.jpg that have maximum resolution and foo.jpg which has the small version. Anyone with some shell coding skills can change this of course, but I expect that some people will change the naming scheme that they use for new pictures. #!/bin/bash
set -e
while [ "$1" != "" ]; do
RES=$(identify $1 cut -f3 -d\ )
WIDTH=$(echo $RES cut -f1 -dx)px
HEIGHT=$(echo $RES cut -f2 -dx)px
BIG=$(echo $1 sed -e s/.jpg/-big.jpg/)
echo "<a href=\"$BASE/$BIG\"><img src=\"$BASE/$1\" width=\"$WIDTH\" height=\"$HEIGHT\" alt=\"\" /></a>"
shift
done Thanks to Brett Pemberton for the tip about using identify from imagemagick to discover the resolution. Apache and Cache Expiry Page Speed complained that my static URLs didn t specify a cache expiry time, this didn t affect things for my own system as my Squid server forcibly caches some things without being told to but would be a problem for some others. I first ran the command a2enmod expires ; a2enmod headers to configure my web server to use the expires and headers Apache modules. Then I created a file named /etc/apache2/conf.d/expires with the following contents: ExpiresActive On
ExpiresDefault "access plus 1 day"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType text/css "access plus 1 day"
# Set up caching on media files for 1 year (forever?)
<FilesMatch "\.(flv ico pdf avi mov ppt doc mp3 wmv wav)$">
ExpiresDefault "access plus 1 year"
Header append Cache-Control "public"
</FilesMatch>

# Set up caching on media files for 1 month
<FilesMatch "\.(gif jpg jpeg png swf)$">
ExpiresDefault "access plus 1 month"
Header append Cache-Control "public"
</FilesMatch> DNS Lookups Page Speed complains about DNS names that are used for only one URL. One example of this was the Octofinder service [4], it s a service to find blogs based on tags, but I don t seem to get any traffic from it so I just turned it off. In this case it was the only sensible thing to do to have a single URL from their web site, but I had been considering removing the Octofinder link for a while anyway. As an aside I will be interested to see if there are comments from anyone who has found Octofinder to be useful. I ve also disabled the widget that used to display my score from Technorati.com, it wasn t doing what it used to do, the facility of allowing someone to list my blog as a favorite didn t seem to provide any benefit, and it was taking extra DNS lookups and data transfers. I might put something from Technorati on my blog again in future as they used to be useful. Cookies If you have static content (such as images) on a server that uses cookies then the cookie data is sent with every request. This requires transferring more data and breaks caching. So I modified the style-sheet for my theme to reference icons on a different web server, this will supposedly save about 4K of data transfer for a page load while also giving better caching. The down-side of this is that I have my static content on a different virtual server so now updating my Wordpress theme will require updating two servers, this isn t a problem for the theme (which doesn t get updated often) but will be a problem if I do it with plugins. Conclusion The end result is that my blog now gets a rating of 95% for Page Speed when previously it got a rating of 82%. Now most of the top references that are flagged by Page Speed come from Google, although there is still work for me to do. Also it seems that Australia is now generally unsuitable for hosting web sites for viewing in other countries. I will advise all my clients who do International business to consider hosting in the US or the EU.

Andrew Pollock: [tech/security] How not to do it

From http://www.symantec.com/connect/articles/active-directory-and-linux...
An alternative to allowing anonymous searches on your Active Directory is to allow the nss_ldap routines to bind as an administrator DN to your directory and perform searches in privileged mode. To do this, insert the following lines in your /etc/ldap.conf file: binddn cn=Administrator,cn=Users, bindpw You should be used to the "" thing by now. WARNING: The above example shows that the administrator user name and password have been coded in clear text in the /etc/ldap.conf file! Unfortunately, this file must always remain world-readable, because otherwise users logged on to the system will not be able to read data from the directory. You should not do this on a system where any user has shell access to your system, or can in any other way read this file.
If you've put the Administrator password in a world-readable file, you've already lost.

9 April 2010

Ingo Juergensmann: Syncing N97

We now have year 2010 but sometimes it still feels like living in the Stone Age of Computing. There's a smartphone, let's call it N97, with Symbian on it. Then there are a bunch of client computers such as a Debian workstation/homeserver running Sid, a Laptop running OS X with iCal and a Windows XP machine at work. Every machine itself (well, with the exception of the XP machine) is a nice piece of hard- and software offering a bunch of possibilities: you can manage your calendars, contacts and tasks.

The difficulty arise when you want to sync those calendars, contacts and tasks between all of the different machines.

There are several ways to address this task:

  1. WebDAV:
    Setting up a WebDAV is no rocket science and you can easily sync your calendars easily with Sunbird or Thunderbird/Lightning for example. But that leaves the N97 ouf of syncing. The N97 can be synced with iSync on OS X, but iCal is not able to work on a single calendar. You can either export a calendar to a remote WebDAV or subscribe it. iCal ignores changes done in other clients and will overwrite those.


  2. CalDAV 1:
    CalDAV (calendarserver) does require some more configuration before you can use it properly, but when done, it should be capable of syncing calendars, resources, tasks and such. Using CalDAV should work aorund the limitations of WebDAV as mentioned above. The calendars can be synced to CalDAV from iCal by creating a remote account and you can sync with iSync via Bluetooth. But you will need a local calendar in iCal, because you can't use iSync to sync your smartphone to your CalDAV remote calendar in iCal.

    iSync unable to use CalDAV for syncing


    Additionally there are problems when you delete an event from your CalDAV calendar on your smartphone. iSync will report an error like this:

    Freitag, 9. April 2010 21:45
    [Nokia N97]
    Changes of Events in writeprotected calendar on this phone are not permitted. These changes were ignored: test, 04/09/2010 23:00


    Deleting events in your local iCal calendar, however, is working well. In the end this result is not encouraging as I need the CalDAV calendars being in sync.
    Syncing with Sunbird on OS X doesn't work either. Maybe it would with DAViCal as server frontend?


  3. CalDAV 2:
    Because syncing via iSync doesn't work as expected it would be a decent solution if the N97 could sync directly to CalDAV. Unfortunately it can't, although there seems some progress with Symbian there. If that is already integrated into v21.0.102 of N97 firmware, it would nice if someone could point me to how configure the N97 properly.


  4. SyncML:
    Maybe another option would be to use some sort of SyncML server in order to sync calendars and stuff between those machines, but I don't know how OS X will work with that approach. Again, hints are welcome!


Syncing calendars and other stuff really seems to be painful. Using a third party webservice such as .Mac or Google Calendar is no option at all. I don't want to give private data out of my hands and control. So, a self hosted service is needed.
Dear lazyweb, is there a solution available for my problem? I hope so...

David Welton: US Exports: "The Cloud"?

An Economist special report in last week's print edition talks about how the US will need focus more on savings and exports:

A special report on America's economy: Time to rebalance I've been thinking about that for a while too, especially after the dollar's recent weakness, although it has been strengthening some, lately, apparently due to the state of Greece's finances... I think that the computing industry is, in general, well poised to take advantage of that. For instance, what could be easier to export than computing power or "Software as a Service"? All it takes is a few minutes for someone in Europe to sign up to a US-based service with a credit card. For instance, compare Linode's prices and good service with most of their European competitors (gandi.net for instance, who are good people, and you have to love that they put "no bullshit" right on their front page). Not that they don't have good service in Europe, but it's very difficult to compete on price with the dollar being significantly cheaper. With the dollar where it is right now, gandi is almost, but not quite, competitive with Linode. If you don't include taxes. If the dollar weakens again, though, things could easily tilt far in Linode's favor. Besides a weak dollar, I think it will be important for companies in a position to do so in the US to focus on "the rest of the world". The US is a big, populous country where it's very easy to forget about far-off lands. Compare my home town of Eugene, Oregon to where I live in Padova. Google Maps says that it takes 7+ hours to drive to Vancouver, Canada (which, to tell the truth, isn't all that foreign in that they speak English with an accent much closer to mine than say, Alabama or Maine). Going south, Google says it's 15+ hours just to San Diego, although I think that's optimistic myself, given traffic in California. From Padova, I can be in France in 5 hours, according to Google, 3 hours to Switzerland, 4 to Innsbruck, in Austria, less than 3 hours to the capital of Slovenia, Ljubljana, and around 3 hours to Croatia, too. And if you wanted to throw in another country, the Republic of San Marino is also less than 3 hours away, according to Google's driving time estimates. You could probably live your entire life in a place like Eugene and never really deal much with foreigners, whereas here, nearby borders are both a historic and an ever-present fact. The outcome of this is that, to some degree, people in the US have traditionally focused their businesses "inwards" until they got to a certain size. Which is, of course, a natural thing to do when you have such a big, homogenous market to deal with before you even start thinking about foreign languages, different laws, exchange rates and all the hassle those things entail. However, if exchange rates hold steady or favor the US further, and internal spending remains weaker, it appears as if it may be sensible for companies to invest some time and energy to attract clients in "the rest of the world". "Cloud" (anyone got a better term? this one's awfully vague, but I want to encompass both "computing power" like Linode or Amazon's EC2, as well as "software as a service") companies likely will have a much easier time of things: for many services, it's easy to just keep running things in the US for a while, and worry about having physical or legal infrastructure abroad later. Your service might not be quite as snappy as it may be with a local server, but it'll do, if it performs a useful function. Compare that with a more traditional business where you might have to do something like open a factory abroad, or at the very least figure out the details of how to ship physical products abroad and sell them, and do so in a way that you're somewhat insured against the large array of things that could go wrong between sending your products on their merry way, and someone buying them in Oslo, Lisbon or Prague. Since this barrier to entry is lower, it makes more sense to climb over it earlier on. As an example, Linode recently did a deal to provide VPS services from a London data center, to make their service more attractive to European customers. However, they still don't appear have marketing materials translated into various languages, and presumably they don't have support staff capable of speaking languages like Chinese, German or Russian either (well, at least not in an official capacity). This isn't to pick on them; they may have considered those things and found them too much of an expense/distraction/hassle for the time being - they certainly know their business better than I do - and that they simply are content to make do with English. Other businesses, however, may decide that a local touch is important to attracting clients. What do you need to look at to make your service more attractive to people in other countries? In no particular order:

There's certainly no lack of work there, but on the other hand, it's possible to do almost all of it from wherever you happen to be located, rather than spending lots of money and time flying around to remote corners of the globe, as is still common practice in many industries.

7 April 2010

Biella Coleman: Nameless, Freak, Phreak

So I tend to focus on the cultural present but during grad school it was hammered into my brain that to understand the contemporary moment, history matters, a lot.. The problem with hacking and related activities is that the history is a bit sparse and fragmented. Recently I have been working on a piece that examines some of the aesthetics similarities between phrakers, underground hackers, and trollers and it sort of hit me that I had no idea when the term phreak or freak came into being. So I dropped a note to Phil Lapsely who is writing (finally) a proper history of phreaking and he was thoughtful enough to pen down a genealogy of the term.

Biella Coleman: Nameless, Freak, Phreak

So I tend to focus on the cultural present but during grad school it was hammered into my brain that to understand the contemporary moment, history matters, a lot.. The problem with hacking and related activities is that the history is a bit sparse and fragmented. Recently I have been working on a piece that examines some of the aesthetics similarities between phrakers, underground hackers, and trollers and it sort of hit me that I had no idea when the term phreak or freak came into being. So I dropped a note to Phil Lapsely who is writing (finally) a proper history of phreaking and he was thoughtful enough to pen down a genealogy of the term.

Jos? Parrella: Follow-up on Debian Sid on the Acer Aspire 1420P

Last year I got my hands on an Acer Aspire 1420P. It s now running Debian GNU/Linux unstable, and I m transitioning from my older Thinkpad T400. Of course, it won t install and work flawlessly out of the box, so here are my notes. Ethernet Use a recent kernel, say, 2.6.32 (2.6.32-3-686 in Debian, for example), since the Atheros GigaEthernet card won t work in older kernels without patching (e.g., you get a link but can t actually send packets). My lspci reports the Ethernet controller as Attansic Technology Corp. Device 1063 (1969:1063) which uses the atl1c kernel driver. Wi-Fi The Wi-Fi card, an Intel WiFi Link 100, which my pci-utils report as 8086:0083, needs a recent firmware-iwlwifi (or a recent firmware for that card, if you don t use the package) which I also took from sid. Tablet touchscreen It works with the evtouch driver, but you ll need to apply a patch to xf86-input-evtouch (0.8.8 is both in sid and lucid) and calibrate the tablet. It seems like the screen rotation does not generate an ACPI event, but if you attach a button with the xrandr rotation, you don t need nothing else for evtouch to catch up. Screen s multitouch, but software doesn t support it yet. Things that work Integrated Intel Mobile graphics chipset, Huawei integrated HSDPA modem (shows up as ttyUSBn), audio, wireless provided you have firmware, webcam, ACPI events for almost everything (lid rotation doesn t seem to work), function keys it s all working nicely. This model has a Core 2 Duo U2300 processor and 2 GB. RAM.

6 April 2010

Sylvestre Ledru: Update of the linear algebra libraries in Debian

In the numerical computing world, the cornerstones libraries are BLAS and LAPACK. They have been used in most of the numerical software for decades (like Scilab, R, numpy, OpenOffice with calc, etc). During that time, many implementations appeared to improve the performances taking advantages of clusters, multicore, SEE 1,2,3,4 , various levels of cache...
Between the reference BLAS (refblas) to an optimized one like ATLAS or MKL (Math Kernel Library by Intel - non-free), it is not rare to have a 15 factor. In Debian, we use by default the reference implementation of BLAS (168 reverse dependencies) and LAPACK (178 reverse dependencies). If the results are usually bad, they are pretty easy to use. What is hard to use, is switch between highly optimized libraries.
For now, the main one in the archive is ATLAS. ATLAS build process will launch many computations to know what will work best on the architecture. Results are usually excellent. 1) Upload of a refactoring of the ATLAS package.
I have been working on this for a while and after 19 uploads into Debian Experimental and I am happy (and kind of relief) to upload into debian unstable the release 3.8.3 of ATLAS. The new key elements in this release are: Note that, as before, all prebuilt binaries of ATLAS will be always slower than if you built them on the target architecture (but using Debian binary packages will save a few kilograms of Uranium). And one of most important feature is the capability to switch to any ATLAS implementation. 2) Switch between the different implementation
The problem in Debian (and Ubuntu) was that it was hard to switch between the ref BLAS/LAPACK and the optimized libraries. The user has to play with the LD_LIBRARY_PATH to use the various optimized packages and since there is no convention between the various distribution, the upstream developer has to develop crappy tricks to handle such things. It is why I implemented the following proposal: Handle different versions of BLAS and LAPACK. The main idea is to use the update-alternatives system to allow a quick and easy switch. For example:
# update-alternatives --config libblas.so.3gf 
There are 3 choices for the alternative libblas.so.3gf (providing /usr/lib/libblas.so.3gf).
  Selection    Path                                           Priority   Status
------------------------------------------------------------
* 0            /usr/lib/atlas-core2sse3/atlas/libblas.so.3gf   55        auto mode
  1            /usr/lib/atlas-base/atlas/libblas.so.3gf        35        manual mode
  2            /usr/lib/atlas-core2sse3/atlas/libblas.so.3gf   55        manual mode
  3            /usr/lib/libblas/libblas.so.3gf                 10        manual mode
# update-alternatives --config liblapack.so.3gf
There are 3 choices for the alternative liblapack.so.3gf (providing /usr/lib/liblapack.so.3gf).
  Selection    Path                                             Priority   Status
------------------------------------------------------------
* 0            /usr/lib/atlas-core2sse3/atlas/liblapack.so.3gf   55        auto mode
  1            /usr/lib/atlas-base/atlas/liblapack.so.3gf        35        manual mode
  2            /usr/lib/atlas-core2sse3/atlas/liblapack.so.3gf   55        manual mode
  3            /usr/lib/lapack/liblapack.so.3gf                  10        manual mode
Thanks to this, it is just trivial to switch from one to the other... Conclusion:
I just pushed the changes into Debian unstable for blas, lapack and atlas.
I have been testing a lot these deep modifications and I fixed all the problems that I found. However, in case I missed something, please report a bug...

4 April 2010

Russell Coker: Health and Status Monitoring via Smart Phone

Health Monitoring Eric Topol gave an interesting TED talk about wireless medical monitoring devices [1]. The potential for helping diabetics and other people who need ongoing treatment is obvious as is the potential for helping pregnant women and other people who might suddenly need medical treatment at short notice. One significant positive potential for this is integration with multiple services. For example Eric s talk showed a graph of sleep levels on a mobile phone, the deep sleep (which is apparently the most restorative) was shown in sections that were significantly less than one hour in duration. I often receive SMS messages about network problems during the night, the vast majority of them aren t that important and can be delayed without any problem. If my phone could determine that I was in deep sleep and delay sending me a NAGIOS report for up to 30 minutes then it would help me sleep while not making any significant impact on my work in repairing server problems it s not as if I would be immediately productive if woken from deep sleep anyway. Status and Attention Monitoring Eric Horvitz, Carl Kadie, Tim Paek, and David Hovel of Microsoft Research wrote an interesting paper titled Models of Attention in Computing and Communication: From Principles to Applications [2]. In that paper they describe various methods for tracking user attention and filtering messages so that the user won t be needlessly distracted by unimportant messages when they are busy. The next logical step is to integrate that with a smart phone (maybe Android would be good for this) to screen calls, unknown callers could be automatically directed to voice-mail and known good callers could be given an automated prompt as to whether they think that their call is important enough to be worth the distraction. It seems to me that combining health and status monitoring would be the sensible thing to do. If a bio-sensor array indicates that someone is more stressed than usual then decreasing their availability for phone calls would make sense. It would also be trivial to analyse calls and determine which callers are likely to cause stress and block their calls at inconvenient times. What we Need Of course there are lots of security implications in this. Having multiple networked devices tracking and collating information on health and all activity (including video-monitoring in the Microsoft model) has a lot of potential for malicious use. This is one of many reasons that we need to generally improve computer security. We also need to have free software implementations of such things. We don t want Microsoft to get a monopoly on status monitoring. Also it seems that smart Nike shoes that can work with the iPhone [3] are the leading mass-market implementation of health monitoring, everything related to health-care should be as open as possible. I m happy for Nike to make their own special products, but we need to have them work with open systems and make the data available as widely as possible. There is the real potential for people to needlessly die if health data is not available in open formats! According to the Wikipedia page Nike has been shipping products using a proprietary 2.4GHz wireless network since 2006 [4], it would be a really good hardware project to devise a way of making compatible sensors and readers. We also need some free software for monitoring the user status to avoid interrupting them. Finally we need some software to integrate all the data. Canonical s Desktop Experience team are doing some interesting work on managing desktop notifications that will be in Ubuntu Lucid [5], they appear to have some basic support for masking notifications based on priority. Please keep up the great work Canonical people, and please consider working on advanced status monitoring next!

1 April 2010

Jo Shields: Introducing Larval Editor

In my last post, about GRUB2 theming, there were a few people who were unhappy at the perceived difficulty of creating GRUB2 themes, largely based on the lack of documentation. And to be honest, those people are right if the documentation were complete & correct when I started, then I wouldn t have ended up bumping into all the bugs I did. So, to help on that front and to help kick-start GRUB2 theming in general, I m announcing Larval. More GRUB2 themes means more awesome-looking systems in the wild. Hopefully the GRUB2 upstream will embrace it as a project to help raise the profile and potential of GRUB2. It didn t take me long to realise the most obvious way to develop such an editor: GRUB2 s canvas-based layout system has an awful lot in common with XAML, so the obvious choice was to develop using Silverlight (or, more specifically, Gtk.Moonlight). Larval s internal theme format is XAML files, which are then exported to (and imported from) GRUB2 s simple text based files. The biggest piece of work, to be honest, is the Managed implementation of a PF2 font reader/writer, so you can design a theme using the regular TrueType fonts of your choice, then have them automatically ported to PF2 format as required. I look forward to plenty of community input on Larval, once it reaches a point where I m sufficiently pleased with my (Ms-PL licensed) code to share it with the world. Until then, you ll have to make do with the above screenshot!

Alexander Reichle-Schmehl: Let's resurrect Debian Weekly News -- again

No, my recent mail to debian-devel-announce about resurrecting our newsletter is not an April fool joke. It is serious. As some readers of planet.debian.org might wonder, why we still need such an archaic thing as an newsletter send out via e-mail. Well, yes, we have planet, we have news.debian.net. We have developer news and the normal mails sent to the -devel-announce lists. So why do we still need a newsletter? Well, the answer is easy: To inform people and kind of mark our spot. Believe it or not, but there are still people out there, who don't use all these new Web 2.0 stuff and who prefer to just receive from time to time some news about their favourite project. It's very easy to subscribe to the news mailing list, while there are still people out there, unfamiliar with RSS feeds and the like, and the Project News are available as E-Mail, plain HTML on our website as well as RSS feed. And I do think, that it still covers things, which you might miss otherwise. For example no one can really monitor all our mailing lists and forums. But from time to time, something interesting happens there. So it would be nice to read about it in the Project News, isn't it? Another thing that comes to my mind is localisation. The Project News can be easily translated in various languages. Granted, we don't have a debian-news-language list for all languages, but at least the HTML and the RSS version can be translated. And maybe the e-mail can be send to existing debian-user-language lists instead, if the readers of that list don't get bothered by it... Why not? So, by now I have hopefully convinced you, that the Debian Project News are indeed worth to continue and to survive. And therefore you surely want to know how you can help us ;) Well, contributing is easy. Easiest way is to send us interesting things happening in the wider Debian Universe to the debian-publicity mailing list. Native English speaker may help us by proofreading our en_DE; non native English speakers can translate the Project News. Of course you can also edit your own articles (we also have some style guidelines). Debian Developers can commit their changes directly to our subversion repository. If you are not DD, you just need a account on alioth and can join our project. We already have quite some documentation available on how to contribute. I'm looking forward to read from you on our mailing list... See you there!

31 March 2010

Jordi Mallach: GNOME 2.30

Congratulations to everyone involved in what looks like a very good GNOME release! Interesting times are now ahead for the GNOME project, as on the plate is now a big release like 3.0. That will mean a lot of changes to the desktop we've got used to in the last decade, and I hope it ends up being successful, innovative and useful. Debian has packages for GNOME Shell, and a special gnome3-session which starts Mutter + Shell. I experimented with it last week at my work place, and had mixed feelings with the current status. I'm not a big fan of hard dependencies on Direct Rendering. My main computer is an Athlon 800MHz. Compiz crawls on it, and sadly Mutter is basically unusable on it. At the office, I have P4-based system with 1GB of RAM, which runs GNOME 2.28 OK. When I switched to the GNOME 3 session, it showed that it's getting old. I also experienced X crashes and kernel oopses, apparently a classic for ATI users using a composited window manager. This being said, I consider myself lucky because both systems have ATI cards and can do DRI using free software. If I was forced to use nVidia non-free drivers, it'd probably mean I'd stick with the Panel until that wasn't an option at all. I am aware we'll see improvements both in Xorg/kernel and GNOME before GNOME 3.0 is released next Autumn, and have high hopes for a release that is accepted by our users really fast (avoiding a KDE 4.0 situation). GNOME hackers have done good stuff for ages, and 3.0 will be a new example!

30 March 2010

David Welton: Where Tcl and Tk Went Wrong

I've been pondering this subject for a while, and I think I'm finally ready to write about it.
Tcl was, for many years, my go-to language of choice. It's still near and dear to me in many ways, and I even worked on a portion of a book about it ( http://journal.dedasys.com/2009/09/15/tcl-and-the-tk-toolkit-2nd-edition ). However, examining what "went wrong" is quite interesting, if one attempts, as much as possible, a dispassionate, analytical approach that aims to gain knowledge, rather than assign blame or paper over real defects with a rose-colored vision of things. It has made me consider, and learn, about a variety of aspects of the software industry, such as economics and marketing, that I had not previously been interested in. Indeed, my thesis is that Tcl and Tk's problems primarily stem from economic and marketing (human) factors, rather than any serious defects with the technology itself. Before we go further, I want to say that Tcl is not "dying". It is still a very widely used language, with a lot of code in production, and, importantly, a healthy, diverse, and highly talented core team that is dedicated to maintaining and improving the code. That said, since its "heyday" in the late 90ies, it has not ... "thrived", I guess we can say. I would also like to state that "hindsight is 20-20" - it's easy to criticize after the fact, and not nearly so easy to do the right thing in the right moment. This was one reason why I was reticent to write this article. Let me repeat that I am writing it not out of malice or frustration (I went through a "frustrated" phase, but that's in the past), but because at this point I think it's a genuinely interesting "case history" of a the rise and gentle decline of a widely used software system, and that there is a lot to be learned. At the height of its popularity, Tcl was up there with Perl, which was the scripting language in those days. Perl, Tcl, and Python were often mentioned together. Ruby existed, but was virtually unknown outside of Japan. PHP was on the rise, but still hadn't really come into its own. Lua hadn't really carved out a niche for itself yet, either. Tcl is no longer one of the popular languages, these days, so to say it hasn't had problems is to bury one's head in the sand: it has fallen in terms of popularity. To examine what went wrong, we should probably start off with what went right: These features led to Tcl being widely used, from Cisco routers to advanced television graphics generation programs to the AOLserver web server, which was busy serving out large quantities of dynamic web pages when many of us were still fiddling around with comparatively slow and clunky CGI programs in Perl. Note also that there have been a lot of cool things to have gone into Tcl in the mean time. It has a lot of impressive features; many more than most people realize, and has had a lot of them for a while. Check out http://www.tcl.tk to learn more about the "good stuff". But that's not the point of this article... There was a healthy, active community of developers producing lots of interesting add-ons for the language, and working on the language itself. This culminated in its adoption by Sun Microsystems, which hired the language's creator, Dr. John Ousterhout, and a team of people, who added a lot of great features to the language. Quoting from Ousterhout's history of Tcl page:

The additional resources provided by Sun allowed us to make major improvements to Tcl and Tk. Scott Stanton and Ray Johnson ported Tcl and Tk to Windows and the Macintosh, so that Tcl became an outstanding cross-platform development environment; Windows quickly came to be the most common platform. Jacob Levy and Scott Stanton overhauled the I/O system and added socket support, so that Tcl could easily be used for a variety of network applications. Brian Lewis built a bytecode compiler for Tcl scripts, which provided speedups of as much as a factor of 10x. Jacob Levy implemented Safe-Tcl, a powerful security model that allows untrusted scripts to be evaluated safely. Jacob Levy and Laurent Demailly built a Tcl plugin, so that Tcl scripts can be evaluated in a Web browser, and we created Jacl and TclBlend, which allow Tcl and Java to work closely together. We added many other smaller improvements, such as dynamic loading, namespaces, time and date support, binary I/O, additional file manipulation commands, and an improved font mechanism. Unfortunately, after several years, Sun decided that they wanted to promote one and only one language. And that language was Java. So Ousterhout and many people from his team decamped to a startup that Ousterhout founded, called Scriptics, where the Tcl and Tk innovations continued:

In 1998, Scriptics made several patch releases for Tcl 8.0 to fix bugs and add small new features, such as a better support for the [incr Tcl] extension. In April 1999, Scriptics made its first major open source release, Tcl/Tk 8.1. This release added Unicode support (for internationalization), thread safety (for multi-threaded server applications), and an all-new regular expression package by Henry Spencer that included many new features as well as Unicode support.
However, as many a company based around open source was to find later, it's a tough space to be in. Scriptics changed its name to Ajuba, and was eventually sold (at a healthy profit, apparently, making it a relative dot com success story, all in all) to Interwoven, for the "B2B" technology that Ajuba had developed. Interwoven was not interested in Tcl, particularly, so, to create a system for the ongoing development and governance of the language, the "Tcl Core Team" was created. This was something of a blow to Tcl, but certainly not fatal: Perl, Python, Ruby, PHP, Lua have all had some paid corporate support, but it has by no means been constant, or included large teams. At the same time in the late 90ies, open source was really starting to take off in general. Programmers were making all kinds of progress, and had begun to make Linux into what is today the world's most widely used server platform, and laying the groundwork for the KDE and Gnome desktops. While these may still not be widely used, they are for the most part very polished systems, and leaps and bounds better than what passed for the 'Unix desktop' experience in the 90ies. One of the key bits of work that was added to Tk was to make it look pretty good on Microsoft Windows systems. This was in an time when the "enterprisey" folks were turning away from Unix in the form of AIX, Solaris, HPUX, et al. and taking up NT as the platform of choice, so it was in some ways sensible to make Tk work well there, and in any case as a cross platform GUI toolkit, it ought to work well there in any case. And, on the Unix side, Tk emulated the expensive, professional Motif look and feel that serious Unix programmers used. What could go wrong? As Gnome and KDE continued to mature, though, what would become one of Tk's major (in my opinion) marketing blunders took root. I have it on good authority, from someone who was there in the office, that the Scriptics guys working on Tcl and Tk viewed Gnome and KDE (and the Gtk and Qt toolkits) as not really worth their while. To be fair, since Tk has always been under a liberal BSD style license, the Qt toolkit has always been "off limits". Still, though, the attitude was that Tk was a standalone system, and since it ran on pretty much any Unix system, it didn't need to bother with Gnome or KDE. Gradually, though, as more and more people used Gnome and KDE exclusively on Linux, the Tk look and feel began to look more and more antiquated, a relic from the 1990ies when Motif (which has since pretty much disappeared) was king. Tk applications started to really stand out by not looking at all like the rest of the operating system. And, while Linux may not be responsible for a vast portion of the world's desktops, it is widely used by developers, who were turned off by the increasingly creaky look of the Tk applications they saw. Tk is and was actually a fairly flexible system, and it would have been possible to tweak the look and feel to make it look a bit better on Linux, without even doing any major work. Maybe not perfect, but certainly better looking. Nothing happened, though. Another problem was that Tk and Tcl made it so easy to create GUIs that anyone could, and did, despite, in many cases, a complete lack of design skills. You can't particularly blame the tools for how they're used, but there was certainly a cultural problem: if you read most of the early Tcl and Tk books, and even many of the modern ones, there are hundreds of pages dedicated to exactly how to use Tk, but few to none explaining even basic user interface concepts, or even admonitions to the user to seek out that knowledge prior to attempting a serious GUI program. The end result is that a lot of Tk programs, besides just looking "old fashioned" had fairly poor user interfaces because they were made by programmers who did not have a UI/design culture. Contrast that with Gnome and KDE, which have made a point of focusing on how to make a good GUI for their systems, complete with guidelines about how applications should behave. It may have taken them some time to get things right, but they have done a lot to try and instill a culture of creating high quality, well-integrated GUI's that are consistent with the system where they run. Lately, there has been a lot of work to update the Tk look and feel, and it has finally started to bear fruit. However, in terms of marketing, the damage has already been done: the image of "old, crufty Tk" has been firmly planted in countless developers' minds, and no amount of facts are going to displace it in the near future. Another problem Tcl faced, as it grew, was the tug-of-war between those wishing to see it small, light, and easy to distribute embedded within some other program, and those wishing it to become a "full-fledged" programming language, with lots of tools for solving every day programs. Unfortunately, that tug of war seems to have left it somewhere in the middle. Lua is probably more popular these days as an embedded language, because it is very small, and very fast, and doesn't have as much "baggage" as Tcl. Meaning, of course, that it doesn't do as much as Tcl either, but for a system where one merely wishes to embed a scripting language, without much 'extra stuff', Tcl's extra functionality is perhaps a burden rather than a bonus. On the other hand, while Perl was happily chugging along with their CPAN system for distributing code, giving users easy access to a huge array of add-on functionality, and Python was building up a "batteries included" distribution, that included a lot of very useful software straight out of the box. Tcl, on the other hand, chose to keep the core distribution smallish, and only lately has got some semblance of a packaging and distribution system, that is, however, run by ActiveState, and is (at least according to a cursory glance at the Tcl'ers wiki), not even fully open source. The lack of a good distribution mechanism, and, in the meantime, eschewing a larger, batteries-included main distribution left Tcl users with a language that, out of the box, did significantly less than the competition. Technically, a Python style "big" distribution would not have been all that difficult, so once again, I think this is a marketing problem: a failure of the Tcl Core Team to observe the "market", assess what users needed, and act on it in a timely manner. Somewhat related to the large Tcl vs small Tcl issue was one particular extension, or extensions to the language that was noticeably absent: a system for writing "object oriented" code. Tcl, at heart, will never be an OO language through and through, like Ruby or Smalltalk, but that doesn't mean that an OO system for it is not a useful way of organizing larger Tcl systems. Indeed, Tcl's syntax is flexible enough that it's possible to write an OO system in Tcl itself, or, optimizing for speed, utilizing the extensive C API in order to create new commands. Over the years, a number of such systems have arisen, the most well-known being "Incr Tcl" (a play on the incr command, which is akin to += 1 in languages like C). However, none of these extensions was ever included with the standard Tcl distribution or somehow "blessed" as the official OO system for Tcl. This meant that a newcomer to Tcl wishing to organize their code according to OO principles had to pick a system to use from several competing options. And of course, newcomers are the least able to judge a complex feature like that in a language, making it a doubly stressful choice. Furthermore, even experienced Tcl programmers who wanted to share their code could not utilize an OO system if they wanted their code to work with just standard Tcl. Also, if their code had a dependancy on some OO system, it would require the user to download not only the extension in question, but the OO system it was built on, which, naturally, might conflict with whatever OO system the user had already selected! As of Tcl 8.6, thanks to the work of Donal Fellows, Tcl is finally integrating the building blocks of an OO system in the core itself, but this effort is probably something like 10 years too late. Some other more or less minor things that have taken too long to get integrated in the Tcl or Tk distributions include the PNG format (still not there in a production release of Tcl), a readline-based command line (Tkcon is nice, but not a replacement for simply being able to type "tclsh" and get a nice, functional shell like Python, Ruby and most other languages have. This could easily lead to a bad first experience for someone trying out Tcl). Tcl also took too long to integrate a first-class hash type (accessed with the 'dict' command), which only appeared in 8.5. Its "arrays" aren't bad, but don't quite have the full power of a hash table as dict implements them. Once again, the code to do these things was/is out there, it has just been a matter of integrating it into Tcl and Tk, which has been a slow process. One actual technical problem that Tcl faces is the concept that all values must be representable as a string. This is more or less ok for things like lists, hash tables or numbers, but is problematic when the user wishes to represent a value that simply isn't a string. A basic example is a file handle, which at the C API level is a FILE*. How does Tcl get around this? It keeps an internal hash table with a Tcl-script accessible string, such as "file5" that points to a FILE * value that is used internally by file commands. This works pretty well, but there is a big "but": since you can compose a string like "file5" at any time, that must be able to access the actual file pointer, you can't do any sort of "garbage collection" to determine when to clean things up automatically. Other languages have explicit references to resources, so the program "knows" when a resource is no longer referenced by the rest of the program, and can clean it up. Therefore, the programmer must explicity free any resources referenced this way. This explanation is simplifying things somewhat, but it is something I view as a technical problem with Tcl. If you've been following along, you've noticed a lot of "these days" and "recently". That's because Tcl is still very actively developed, with a lot of new ideas going into it. However, if you look at the release dates, it seems that after Ajuba was sold off, and Ousterhout pretty much abandoned an active role in the language for good, placing it in the hands of the Tcl Core Team, there was a lull in the momentum, with Tcl 8.5 taking 5 years to be released. This is actually, in my opinion, an interesting phenomenon in languages: you risk hitting some kind of local maximum when your language is popular enough to have a lot of users who will be angry if things are changed or accidentally broken in the course of big upheavals. So you have to slow down, go carefully, and not rock the boat too much. On the other hand, there is an opportunity cost in that newer languages with less to lose can race ahead of you, adding all kinds of cool and handy new things, or simply fix and remove "broken" features. Erlang is another system that has, in my opinion, suffered from this problem to some degree, but this article is long enough already! Once again, though, not really a technical issue, but a problem with how the code was managed (and not an easy one to solve, at that). A Tcl failure that I was personally involved with was the web infrastructure. What went on to become Apache Rivet was one of the first open source Apache/Tcl projects, and was actually quite a nice system: it was significantly faster than PHP, and of course made use of Tcl, which at the time had a large library of existing code, and could be easily repurposed for projects outside the web (or the other way around: non-web code could be brought in to a web-based project). One thing I ought to have done differently with the Apache Rivet project was listen to the wise advice of Damon Courtney, my "partner in crime" on the project, who wanted to see Apache Rivet have a fairly "fat" distribution with lots of useful goodies. Rails and Django, these days, have shown that that's a sensible approach, rather than relying on lots of little extensions that the user has to go around and collect. The code was out there, I should have helped make Rivet do more "out of the box". A problem that is and it isn't: the syntax. Tcl's syntax is amazingly flexible. Since everything is a command, you can write new commands in Tcl itself - and that goes for control structures, too! For instance, Tcl has a "while" command, but no "do ... while". It's very easy to implement that in Tcl itself. You simply can't do that in most "everyday" languages. However, this comes at something of a "cost". The syntax, for your average programmer who doesn't want to go too far out of their comfort zone, is perhaps a little bit further afield from the C family of languages than they would prefer. Still though, a "human" problem, rather than a technical one. Perhaps, sadly, the message is that you'd better not "scare" people when introducing a new language, by showing people something that doesn't look at least a little bit familiar. Conclusions? First and foremost, that, gradually, Tcl and Tk continue to be improved. However, if one visits developer forums, there are also a lot of negatives associated with the Tcl and Tk "brands", and I am not sure if it will be possible to rectify that. So what can we learn from the rise and subsequent "stagnation" of Tcl?

Russell Coker: Why Comments?

Russ Albery has described why he doesn t support comments on his blog [1]. I respect his opinion and I m not going to try and convince him to do otherwise. But I think it s worth describing why I want comments on my blog and feel that they are worth having for many (possibly most) other blogs. Types of Blog The first thing to consider is the type of post on the blog. Some blogs are not well suited to comments. I have considered turning off comments on my documents blog [2] because it gets a small number of readers and is designed as reference material rather than something you might add to a public Planet feed or read every week as it has a small number of posts that are updated. So conversations in the blog comments are unlikely to happen. One thing that has made me keep comments open on my documents blog is the fact that I am using blog posts as the main reference pages for some of my projects and some people are using the comments facility for bug reports. I may make this the main bug reporting facility I will delete the comments when I release a version of the software with the bugs fixed. One particular corner case is a blog which has comments as a large part of it s purpose. Some blogs have a regular open thread where anyone can comment about any topic, blogs which do such things have the owners act more like editors than writers. One example of this is the Making Light blog by Teresa and Patrick Nielsen Hayden [3] who are both professional editors. The next issue is the content of the post. If I was to create a separate blog for authoritative posts about SE Linux then there wouldn t be much point in allowing comments, there are very few people who could correct me when I make a mistake and they would probably be just as happy to use email. When I write about issues where there is no provably correct answer (such as in this post) the input of random people on the net is more useful. Another content issue is that of posts of a personal nature. Some people allow comments on most blog posts apart from when they announce some personal matter. I question the wisdom of blogging about any topic for which you would find comments intolerable, but if you are going to do so then turning off comments makes sense. Finally there is the scale of the blog. If you don t get enough readers to have a discussion in the comments then there is less benefit in having the facility turned on the ratio of effort required to deal with spam to the benefit in comments isn t good enough. In his FAQ about commenting [4] Russ claims that controlling spam can take a tremendous amount of time or involve weird hoop-jumping required for commenters . I have found the Block Spam by Math [5] Wordpress plugin to be very effective in dealing with the spam, so for this blog it s a clear benefit to allow comments. Since using that plugin my spam problem has decreased enough that I now allow comments on posts which are less than 1 year old previously comments were closed after 90 days. The plugin is a little annoying but I changed the code to give an error message that describes the situation and prevents a comment from being lost so the readers don t seem too unhappy. The Purpose of Comments Russ considers the purpose of comments to be meaningfully addressed to the original post author or show intent to participate in a discussion . That s a reasonable opinion, but I believe that in most cases it s best if comments are not addressed to the author of the post and are instead directed towards the general readers. I believe that participating in a discussion and helping random people who arrive as the result of a Google search are the main reasons for commenting. For my blog an average post will get viewed about 500 times a year and the popular posts get viewed more than 200 times per month, so when over the course of a year more than 1000 people read the comments on a post (which is probably common for one of my posts) then 99.9% of readers are not me and commentators might want to direct their comments accordingly. Of course a comment can be addressed at the blog author so the unknown audience can enjoy watching the discussion. For some of my technical posts I don t have time to respond to all comments. If I have developed a solution to a technical problem that is good enough I may not feel inclined to invest some extra work in developing an ideal solution. So when a reader suggests a better option I sometimes don t test that out and therefore can t respond to the comment. But the comment is still valuable to the 1000+ other people who read the comment section. So a commentator should not assume that I will always entirely read a comment on a technical matter. Comment threads can end up being a little like mailing lists. I don t think that general discussions really work well in comment threads and don t aim for such things. But if a conversation starts then I think you might as well continue as long as it s generally interesting. Generally for most blogs I think that providing background information, supporting evidence, and occasionally evidence of errors is a major part of the purpose of blog comments. But entertainment is always welcome. I would be happy to see some poems in the comments section of technical posts, sometimes a Limerick or haiku could really help make a technical point. Political blog posts can be a difficult area. Generally the people who feel inclined to write political blog posts or comment on them are not going to be convinced to entirely change course, but as there are many people who can t seem to understand this fact a significant portion of the comments on political blog posts consist of different ways of saying you re wrong . The solution to this is to moderate the comments aggressively, too many political blogs have comments sections that are all heat and no light. I m happy for people to go off on tangents when commenting on my political posts or to suggest a compromise between my position and their preferred option. But my tolerance of comments that simply disagree is quite small. Generally I think that blogs which directly advocate a certain political position should have the comments moderated accordingly, people will read a site in the expectation of certain content and I believe that the comments should also meet that expectation to some degree. Comments on political posts can provide insights into different points of view and help discover compromise positions if moderated well. How to provide Feedback Russ advocates commenting to the blog author via email it is now the only option he accepts. My observation is that the number of people who are prepared to comment via email (which generally involves giving away their identity) is vastly smaller than those who use Blog comment facilities. This means that you will miss some good comments. One of the most valuable commentators on my blog uses the name Anonymous and has not felt inclined to ever identify themself to me, I wouldn t want to miss the input of that person and some of the other people who have useful things to say but who don t want to identify themself. I have previously written about how not all opinions are equal and anonymous comments are given a lower weight [6]. That post inspired at least one blogger to configure their blog to refuse anonymous comments, it was not my intent to inspire such reactions (although they are logical actions based on a different opinion of the facts I presented). I believe that someone who is anonymous can gain authority by repeatedly producing quality work. Another option is for people to write their own blog posts referencing the post in question. I don t believe that my core reader base desires short posts so I won t write a blog post unless I have something significant to say. I expect that many other people believe that the majority of their blog comments would not meet the level of quality that their readers expect from their posts (posts are expected to be more detailed and better researched than comments). As an aside forcing people to comment via blog posts will tend to increase your Technorati rating. :-# A final option is for people to use services such as Twitter to provide short comments on posts. While Twitter is well designed for publishing short notes the problem with this is that it s a different medium. There are many people who like reading and discussing blog posts but who don t like Twitter and thus using a different service excludes them from the conversation. For my blog I prefer comments for short responses and blog posts for the longer ones. If you write a blog post that references one of my posts then please enter a comment to inform me and the readers of my blog. Email is not preferred but anyone who wants to send me some is welcome to do so. If this post inspires you to change your blog comment policy then please let me know. I would like to know whether I inspire people to allow or deny blog comments.

29 March 2010

Matt Brown: Initial Review of Xero Personal

I ve been eagerly looking forward to the release of Xero Personal which has been heavily promoted by Xero and BNZ (as MoneyMap) for the last few months. Unfortunately my first impressions of the product today are extremely underwhelming. Xero Personal is definitely not worth anywhere close to $5/month for me at this point in time and I m unlikely to even keep using the free trial. To set the context for that statement, Xero Business set the bar high. I first used the original version of Xero while it was still in beta and even then it was clear that it was an application that took accounting to a new level and would provide an order of magnitude improvement in how I maintained the accounts for our business. That promise held true once we started paying for it, even though the cost of Xero is more than 10% of our annual expenses, the time and hassle it saves makes it a worthwhile investment. By contrast today s release of Xero Personal offers nothing new above existing personal finance websites or desktop packages and would take me extra time to use as it fails to handle many of the basic transactions that a normal household will encounter. The way Xero Personal works is by having you manually upload your bank statements (the automatic import functionality that is so useful in the business version of Xero has been restricted to BNZ MoneyMap customers only). For each transaction you are asked to provide two pieces of information. The first is a category which serves as a basic form of account to track expenses and income. For each category you can set a spending or saving goal which Xero will help you track progress towards. The second is a name to identify the other party in the transaction. Xero Personal comes pre-loaded with some fairly generic categories. Annoyingly you re restricted to no more than 8 additional custom categories and the names associated with each transaction are are simple strings you can t link a transaction to another account or entity. To represent a transfer you need two separate transactions, one in each account, which you assign to the special category Transfer so that Xero knows to essentially ignore it. Nothing links the transactions together or ensures that the values balance. In addition to the basic categorisation functionality the application also attempts to track your assets and liabilities (bank accounts and credit cards show up automatically) so that it can compute your net worth. Unfortunately as soon as you try and use this you hit the problem that there is no way to link transactions from your accounts back to your assets and liabilities. This means unless you regularly and manually update your assets and liabilities the net worth calculation only takes into account changes in your cash position and becomes blatantly incorrect. As an example, take the common case of a household with a weekly mortgage (or other loan) repayment. You want the weekly payment to decrease the balance of your current account, increase the balance of your interest expense category and decrease the value of your mortgage liability. Your net worth should decrease by the value of the interest expense only, as the decrease in the value your mortgage liability offsets the remainder of the decrease in the value of your current account. Xero Personal doesn t come close to being able to handle this example today. The ability to split payments to different categories has also been left out (even though it s present in Xero Business and therefore presumably in the underlying engine) so your only option is to categorise the entire payment as a mortgage or housing expense, decreasing your net worth by the full value of the payment. Even if you could split the payment between two categories, one for the interest and one for the principal the inability to link the category for the principal to the liability account means the net worth calculation will still be incorrect. Maybe I m being to hard on this newly released product? It is a SaaS application after all and Xero has an excellent history of releasing regular updates to the business version of Xero. The reason I m so surprised and disappointed by this initial release is that it essentially lacks any double-entry accounting support many of the missing features are core functionality that is already implemented in the accounting platform that supports the business version. Assuming that Xero Personal is built on the same platform (and that would be the obvious choice wouldn t it?) the fact that Xero Personal has been released and is being heavily promoted without these features (compared to the initial version of Xero Business which was fully functional and obviously awesome even in beta) suggests to me that it s a conscious decision to significantly limit the scope and usefulness of the application rather than simply a limit on what could be implemented before the initial release. I sincerely hope that I m wrong and that the coming months bring significant improvements to the functionality of Xero Personal, but until it can support common transactions like mortgage repayments correctly I won t be using it or recommending it to anyone.

28 March 2010

Clint Adams: DPL Campaign Questions 008

Steve Langasek:
As a developer, how do you embody the spirit and culture that has made Debian a great operating system? If elected DPL, how will you inspire the same in others?
I do not believe that there is any one single spirit or culture that has made Debian great, never any truly united community. With contributors from various places around the globe, we have a melting pot of different cultural viewpoints. Furthermore we have people doing things for a variety of reasons, some more selfish than others. The interplay between these differences has led to tension, and it has also led to greatness. I am certain that some of the great things in Debian have come to pass borne out of anger and hatred. We have had shifts in cultural norms over the years. When I joined the project, it was considered highly controversial to use the word fuck . Many community members would scream at anyone who did that, rudely sending private emails to admonish them. Eventually, enough anti-censorship people joined that the political tide turned, and many of the people offended by the use of the word fuck quietly faded away. We effectively disenfranchised them. Now the pendulum may be swinging in the other direction, and if it does, we can expect the same sorts of tensions and the same sorts of attrition. Perhaps this is part of the natural cycle of things, perhaps not. So if I list what I do or what I try to do, I do not believe it adequately answers the question. I think that Debian is superior for technical excellence and cohesive policy, so I try to do my part to meet those standards. I think that Debian is great for being a good Free Software Citizen, so I try to forward relevant bugs and patches upstream. I think that Debian is great for not being fully beholden to corporations, other financial interests, or dictatorial personalities, so I try not to encourage that sort of thing. I think that Debian is greater because of a few team efforts, so when someone tries to set up a worthwhile endeavor, I feel some compulsion to join in or at least be supportive. I think that Debian is greater because of some commitment to transparency, so I try not to do anything important behind closed doors, and even when I assume that something is transparent enough because it has been discussed only in public channels, and someone yells at me for hypocrisy, I try to increase the distribution of that information to a level that people feel is appropriate. As DPL I would try to set a good example by not being a hypocrite about any of the things I think are important to Debian, and would try to inspire an atmosphere of more teamwork, cooperation, and empowerment. I think that this could be revitalizing. Alexander Reichle-Schmehl:
Suppose that you would not run for DPL: Who would you vote and why?
I am not sure of how I will be voting. Each of the candidates had said things that I like, and each of the candidates has said things that I dislike very much. I am choosing not to get into specifics here, because I do not consider it appropriate or ethical to try to affect other people's votes in that manner.

Clint Adams: DPL Campaign Questions 009

Serafeim Zanikolas:
With respect to attracting new contributors, please ponder the idea of a formal one-on-one mentoring scheme (as opposed to one-off interactions via d-mentors).
I see nothing particularly objectionable about this. A long time ago people were talking about replacing NM with a saner mentoring process, and I am certain that mentoring occurs unofficially. I see no reason that you could not set up a formal one-on-one mentoring infrastructure with or without the Project's blessing. Charles Plessy:
So my question to other candidates is simple: what is your opinion and program about membership?
I think that we have enough inequality in the project as it is. That is why I consider DM to be a bad thing, even though it has practical benefits. I think that NM is probably fundamentally broken, and I get a bit nervous when people are talking about increasing the amount of NM indoctrination or bureaucracy. I would be in favor of exploring the replacement of NM with some kind of mentorship-type process, though I would worry it would not scale. I would be in favor of exploring the replacement of NM with something like Lars's proposal a while back, though I would worry that it would encourage popularity contests and cliques and cabals. Raphael Hertzog:
1/ Do you believe that it's a good move to standardize our packaging tools? (example: debhelper is almost standard, quilt is gaining status of the standard patch system thanks to the new source format) 3/ Do you have any preference on the tools that we should try to standardize on (which source format/patch system, dh7/CDBS/yada/etc., VCS helper, etc.)? 4/ Organizing changes that have an impact on (a large part of all) the archive is very difficult: How can we change our processes so that doing/organizing such changes is less of a burden? 5/ I have the feeling that Debian is innovating less than it used to do. We are more often followers rather than leaders. Do you share that feeling? What shall we do to make that change?
1/ I think that we should standardize on dpkg-dev. If there are features which absolutely every package needs, it would seem the logical place to add them. 3/ Right now I wish everyone were using git, but I do not believe in forcing them. Of the available source formats, I like 3.0 (quilt) with no additional patch system, and no package helpers at all. I am not quite sure what a VCS helper is so I have no known preference to express. 4/ I am not sure whether or not what you are talking about should, in fact, be less of a burden, and why it should or should not, so I do not have a valid opinion on how to change the process. 5/ I do share that feeling. I think that sometimes we get bullied by Ubuntu when there are things we would do for our own benefit which would make their lives difficult. I think that people are generally resistant to change, even when it would be of little cost to them and great benefit to someone else. These problems are social and might be correctable with a better spirit of teamwork and cooperation. However, I do not think we should be innovating just for innovation's sake or to be known as the most innovative kid on the block. We should be making my favorite operating system.

Aigars Mahinovs: Ubuntu 10.04 and NTFS filesystems

subj. don t mix just upgraded a simple Ubuntu 9.10 to Ubuntu 10.04 and it failed to boot. After careful examination, it looks that something replaced the munt line of my NTFS partition in the /etc/fstab and claimed that it is a VFAT partition and mountall that is run during boot gets very, very confused if presented with such dillema, so mach in fact that it hangs and stops the whole boot sequence. The workaround is to boot from a livecd/usb and comment out all NTFS and VFAT lines in /etc/fstab. If that still does not help replace the large UUIDs with device names back. Still have not reported the bug as there look to be several regression in NTFS support, the upgrader corrupting the fstab file and mountall incorrectly handling a case of an unmountable file system. P.S. Also my Firefox would not start that was solved by removing the sessionstore* files in my profile.

Russell Coker: Autism vs Asperger Syndrome

Diagnostic Changes for Autism Spectrum Disorders Currently Asperger Syndrome (AS) is one of a group of conditions that are grouped into the category Autism Spectrum Disorders (ASD). The American Psychiatric Association plans to merge Asperger s Disorder into Autism Spectrum Disorder [1] in version 5 of their Diagnostic and Statistical Manual (DSM). Apparently a primary reason for the change is the difficulty in assessing people into the various categories (AS, Autism, and PDD-NOS) and some variation in diagnosis between regions. Professor Simon Baron-Cohen (a leading researcher on Autism and Asperger Syndrome) wrote an insightful article about this for the New York Times [2]. He suggests that while genetic research about the causes of Autism Spectrum Disorders (ASDs) is in progress there should be no change. If it turns out that AS and Autism have the same genetic cause then that would be good evidence to combine them into a single diagnostic category. If however they turn out to have different genetic causes then they would need different categories and he suggests that changes should be delayed until this issue is resolved. Simon also raises the issue of the status of people who have already been diagnosed, this is one of the social issues relating to a change in diagnostic criteria. Social Issues related to Diagnosis Unlike some disorders listed in the DSM, many (possibly most) people with AS really care about such things. I think that a common reaction to being diagnosed with Aspergers is to make the study of ASDs a Special Interest , which therefore makes it impossible to ignore what the psychologists are doing in this regard. The biggest problem with changing the diagnostic criteria in this regard is that AS has a good reputation. Some people even think that it s generally a good thing and seem to imagine that every child who is diagnosed with it will end up working for Google! This means that parents will be less likely to reject a diagnosis and therefore will be more likely to try and create a good environment for their child and seek appropriate therapies (such as social skills training and occupational therapy). I expect that a child who is diagnosed as Autistic but who doesn t obviously conform to the worst stereotypes will likely have their parents reject the diagnosis which will lead to a bad result for everyone concerned. The contrary view in this issue is that people who are on the spectrum but who insist that they aren t Autistic are prejudiced and they should embrace the Autism Spectrum label as a measure of solidarity [3], while that s a reasonable point it s not going to happen in the short term. Also there is the issue of adult diagnosis of AS, there are lots of adults who could benefit from being diagnosed and obstacles to such diagnosis (such as associating it with a label that is not well accepted such as Autism) are not going to do any good for anyone. Is Asperger Syndrome really that similar to Autism? Roy Richard Grinker (Professor of Anthropology) wrote a positive article for the New York Times about the diagnostic changes [4]. He seems to think that because in some cases it is difficult to distinguish the difference between Autism and AS they should be in a single diagnostic criteria. Based on that logic you could say that no-one should be diagnosed with an ASD because there is never a clear dividing line between the Neuro-Typical and those who are on the spectrum! Some people are clearly on the spectrum, some clearly aren t, and some are near the border. Roy cites his daughter and Temple Grandin as examples of Autistic people who have greater ability to relate to animals than someone who is Neuro-Typical (NT). I don t have any particular skills in terms of relating to animals. Animals have smaller brains than humans and have thoughts that are less complex and more related to short-term issues, this makes them easier to predict in some situations. I do have significantly better skills in figuring out how to operate machines than most NTs, and this doesn t appear to be uncommon among Aspies. I ve read some of the material that Temple Grandin has written and watched the video of her TED talk, and I get a strong impression that she isn t like me. Even the Aspies who are the least successful in terms of their career (IE quite unlike Temple Grandin) often seem to be like me, I can understand the way they think and recognise that the problems they face are similar to mine but merely more severe. It seems to me that there are significant personality differences between people who have an affinity for animals and those who have an affinity for machines, maths, and engineering. I wouldn t be surprised if it was discovered that Autism and AS had different genetic causes, and this might mean that someone could have both sets of genes. It is obvious that the dividing line between Autism and AS is not that clear. It also seems that part of the diagnosis as implemented by psychologists may be based on the ability to act like an NT and succeed by objective criteria IE earn a good salary in the case of adults. One thing that Roy does get right is that he notes that among people diagnosed with AS and Autism there are both high and low functioning individuals. One thing that Roy gets wrong is the implication that Autistic people can become Aspies. An adult who is assessed without background information on their childhood may get a different diagnosis. If someone was reassessed as an adult with the full facts about their childhood available then (barring DSM changes) the same diagnosis should be returned. Conclusion It appears that this DSM change is going through regardless of the opinion of the people who are affected. While there is a logical basis for giving more weight to researchers than to the research subjects (who are bound to be more biased) it seems that there are some things you can t properly understand unless you live them. When a good portion of the research subjects feel compelled to share their experiences with anyone who will listen it is disappointing that so few of the researchers appear to be listening.

26 March 2010

Benjamin Drung: How to get units consistent across all applications?

We have a units policy in Ubuntu, which we have to implement in lucid+1 (Ubuntu 10.10). Correcting all applications to conform to this policy is not an easy task. The first attempt to patch glib, which provides the g_format_size_for_display() function, failed. We need a library that can handle input and output formatted sizes. Take transmission as example: I want to set the bandwidth limit in the same unit as it displays me the limit. We have to introduce a set of new functions. Should I create a new library (named libbyteunits or similar) or add a bunch of new functions to glib (as replacement for g_format_size_for_display)? Is glib the right place for ten or more functions handling units? Pros for a separate library: Cons: I like to hear as many opinions as possible. Please let me also know, if you are glib developer, a g_format_size_for_display() using developer, a developer, or a user.

Next.

Previous.