Firefox 3.0 download record

Download Day

Please help set a world record of most downloads in 24 hours by downloading a copy of Firefox 3.0 in the next 24 hours starting at 18:00 GMT today. Download yourself and get all your friends to do so as well. Only one download per computer is counted towards the record. More info on the record attempt.

Firefox 3.0 Download record countdown timers.

P.S. The SpreadFirefox web page is down at the moment. Overloaded less than 2 hours before the go time.

Popularity: 25% [?]


More of a good thing?

There is one particular aspect of Microsoft’s document format going through ISO process that I had a hard time to find a counter-argument against: “Well it is better to have multiple open formats, isn’t it?”. Last night when I was presenting in a Document Freedom Day event, I finally got one. When multiple standards exist in the same area, two options can exist:

  1. Cooperative standards - providing similar functionality in different ways that can coexist in the same medium without a significant overhead. An example of this are the credit cards - they have multiple ways that the card information can be transferred to the bank: visual writing down of the data, imprint, magnetic strip and the chip. Any of these ways can be used and all of the are equally valid;
  2. Conflicting standards - providing the same functionality in incompatible ways. The example here is the power adaptors - the form of the power plug is an open and public standard (AFAIK), but so many of them exist in different places that it creates all sorts of problems both for companies producing electronic equipment and for frequent travellers.

What Microsoft proposes is much worse than the power plug mess, because the power plug standards are at least restricted by region. But imagine going to another country and having to be ready that you hotel could have any one of 8 power plug types at random. And while electricity is rather easy to convert looselesly, complex documents are far more .. complex. It is like having to buy 8 different power bricks for each of your electrical devices to be prepared for all possible voltages, frequencies, waveforms, polarities and whatnot.

Having more than one ISO document standard in a horrifying idea for any programmer that will have to ever work on software that will need to support both of them - twice the work for no etra benefit whatsoever.

If Microsoft can prove (in technical terms) that their file formats present capabilities that Open Document can not, then the only sane way to implement those in the ISO format is to add those capabilities as an extension of the existing Open Document format and not to reinvent the wheel.

Microsoft also has a habit of pointing to JPEG and PNG being “competing”. Well, they are not - those are complimentary standards, because JPEG is designed for compression of photographic details while PNG is designed for the compression of bitmapped vector images. Something like DejaVu could be seen as a superset of the two formats.

So, if you ever need an argument against more standards - remember about the power plugs.

Popularity: 19% [?]


Quoted

A person that I deeply respect and who is very know in Latvian IT society recently said that he often uses a quote of mine in his presentations. I completely forgot that I ever said that, but it sounds very much like what I would say, so I wanted to write it down so that I do not forget about it again:

90% of the people do not understand copyright, the other 10% simply ignore it.

Heh, I must have been optimistic. There is no way that so many people actually understand copyright. :)

Note: most Debian Developers and FLOSS developers in general are an exception to this rule, but sadly comprise such a small percentage of the population that it means very little from a public policy perspective.

Popularity: 20% [?]


Webmin alternatives

Everyone knows that Webmin is nasty - it does things in wrong way on a pure and nice Debian (and Ubuntu) systems and for some reason is not included in Debian (post-sarge) or Ubuntu. That does not inspire confidence in a root-running web based software to say the least.
I have a need to have a Linux server and give an administrator the ability to add/remove users, configure some LAMP settings, some email settings (SMTP, POP, IMAP, Spam/Virus protection), Samba and those kinds of everyday system administration tasks on a SOHO Linux server without having to know much about Linux.

Unfortunately I am very hard pressed to find anything that I could just set up and forget. Does anyone have any good experiences on this?

Popularity: 38% [?]


TurboGears widget errors

I am making a small project with TurboGears and I am just loving the widgets and the identity framework. There are some rough spots, like the documentation, but luckily for the most pars you can just launch an ipython interpreter and use tab completion to look at what functions are available. But then I got this error:
Traceback (most recent call last):
File "./start-foo.py", line 23, in
from foo.controllers import Root
File “…Foo/foo/controllers.py”, line 22, in

action=”save_settings”
File “/var/lib/python-support/python2.5/turbogears/widgets/meta.py”, line 169, in widget_init
validator = generate_schema(self.validator, widgets)
File “/var/lib/python-support/python2.5/turbogears/widgets/meta.py”, line 277, in generate_schema
if widget.is_named:
AttributeError: type object ‘SettingsFields’ has no attribute ‘is_named’

And I could not find any help on this. Luckily I found Lucas manual and by comparing the code I found that in this part of the code:
settings_form = widgets.TableForm(
fields=SettingsFields,
action="save_settings"
)

Instead of passing the whole SettingsFields class, an instance of it needs to be passed ( as in “fields=SettingsFields(),” ). Cann’t wait to see all the goodies they are making now in TG 2.0, but considering my experience, I will wait until they update the documentation for it before diving in.

Popularity: 21% [?]


FON not giving me my own Internet

Unfortunately I will have to disconnect my FONera and buy a real WiFi router to replace it because that small box is a glitchy piece of crap compared to every other WiFi router out there.

The killer: if the LaFonera can not connect the FON authentication servers, then it thinks that there is no network available and does not let me use my Internet. There is even no way to force it to pass connections to outside which is required in many cases such as partial network failures (when you can not get to FON servers for some reason, but rest of the Internet works just fine) and for web signup pages that some ISP’s use to login users to their network. And you can not use another PC for that, because it records the MAC address.

The box frequently freezes and the DNS server stops responding. I can continue working by editing my local DNS server settings to the DNS of my ISP, but that is no way to work!

The damn thing has no idea about uPNP which is a must nowadays for peer-to-peer transactions.

And lastly there is absolutely no way for me to fix any of this because the FON keeps a tight lock on the firmware. In the time when all good software and community projects go to the open side, the FON moves further and further to the dark side and that is disturbing.

I consider this a permanent failure on FON’s part that negates my ability to hold my side of the Fonera promise.

It would be so much easier if I could ssh into the thing - ping stuff, traceroute stuff, put some kind of flag file to say that network in fact is there, release or refresh the DHCP lease or even restart the damn thing remotely. Nothing of this is available.

Popularity: 29% [?]


SBackup new beta - test and translate please!

With great help from Ouattara Oumar Aziz an new version of SBackup is shaping up in the svn repo and a day ago I created a public beta version - 0.10.4~beta10 which can be downloaded here.
Please report any bugs or regressions to Sourceforge bug tracker. Also an update for translations and new translations can be added. You can either translate in Launchpad or download the template file from the SVN. But beware that there are more translations in Launchpad then in the SVN at the moment, so check there first.
If no blocker bugs are found, we could see a new stable release of SBackup in a weeks time. I am sure that a lot of people will be happy to hear that :).

Edit: For some reason, the DEB on the Sourceforge site was cut to third of its size, I uploaded a new version, it should be fine now. And by popular request here is a screenshot, note that by using simple timing the /etc/cron.{daily,weekly,monthly} folders are used and thus anacron runs the backups if the computer was off at the scheduled time.
New screenshot

Popularity: 44% [?]


FHS extension for user home folders

Justification.

Currently there is a huge mess of files and folders that start with a “.” in any users home folder. There is no structure or policy on how applications should choose file and folder names for data that needs to be stored in users home directory. Additionally there is no established consistency between Gnome, KDE and most other applications. Gnome application have part of their configuration information in gconf folder and other part in a gnome subfolder. KDE applications have a complex structure under .kde/. And most other applications either have one file directly in users home folder or have their own dot-folder there.

Problems.

There are two major problems with current ad-hoc approach:

  1. Namespace pollution of users home space. In any desktop system “ls -al” in the home folder would be a very lengthy affair. Moreeven this namespace is folded - KDE and Gnome apps live in their own subfolders.
  2. Lack of structure in folders makes it much harder to properly understand their purpose. For example, if a user has misconfigured an application and would like to reset it to default settings, it currently could be hard to figure out how to do that. Especially without losing his data in that application.

Proposal.

I propose to implement a policy on where an application can store data and configuration information in users home folder. Such specification would be proposed as an extension for FHS, first implemented in Debian and then promoted for inclusion upstream and in other distributions.

Structure.

I propose a following structure for a users home folder:

  • data/appname/ - each application, that stores user data in application-specific format, will have to store this data into this folder. Only configuration information that is essential to load this data would be permitted into this folder (in hidden dot files). For example, Evolution could store emails and email access information here.
  • .conf/appname/ - each application that stores any configuration information whould have to store all of it in this folder. GConf will have to also store applications configuration info here. If this folder would be deleted, application must revert to default configuration, but still be able to fully access user data in data/appname/ or other, generic folders (below). For example, if .conf/evolution/ is erased, then on next start-up Evoution should still be able to access all email that is stored in data/evolution/ without any configuration wizards.
  • .tmp/appname/ - each application that would need to create temporary files that survive reboot, would put them here. These folders can be safely deleted at any time with no data or configuration loss. For example, Firefox cache information and Nautilus thumbnail cache would have to be here.
  • Desktop/ - the desktop folder, just like it is now
  • Media folders - (Documents/, Photos/, Videos/, Music/, …) a suggestion of basic document structure for user to use or ignore. Applications dealing with particular media types would default to use files from such folders, but should also cope with working with any other folders on users choice. For example, a screensaver with slideshow function would by default use photos from Photos/, but will have to have a configuration option for user to change that setting.
  • Additionally I would propose having a .mounts/ folder where applications could mount user specific media and other mounts, such as FUSE. For example, FUSE could be used for automatic archive introspection.

Benefits

The main benefit for such system for me is twofold:

  • SBackup can be configured to exclude .tmp/ and .mounts/ by default thus saving significant space in backups.
  • A tool can be made to restore settings and/or data for specific applications in an uniform fashion.

So, any suggestions on the idea and on where this should be best discussed?

Popularity: 100% [?]


Eternal unstable?

More and more early adopters choose to use Ubuntu instead of Debian. Ubuntu has newer versions of the software that matters (XOrg, FF, OOO, Gnome,…) than the stable Debian or, sometimes than even the unstable Debian. Early adopters are the users that are most eager to try new shiny things, do not scream too much if those things break and seem to make good bug reporters. They are the key second level - just below the developers and above most users in the pyramid of software development and use. They are also the people that have a tendency to become developers. That is why I have this feeling that capturing early adopters is essential to development of a thriving free software community. How can that be done? I do not know, but I have an idea that might just work.

What I envision is a merger of development processes of Debian, Ubuntu, Knoppix, Skolelinux and all other Debian derrived distributions. The base for this merger would be an eternal unstable line where all developers would be encouraged to put the newest and greatest software - THE place to be if you want to be on the bleeding edge. I see this unstable line being much newer then Debian unstable, but retaining similar level of quality (how? it is a good question). Then there would be a set of tools available to splice packages from this unstable line into a stabilisation and stable branches for each distribution. The tools would be the same for all distributions and the packages would be the same for all distributions, the difference between distributions would be achieved by the way that the packages and their specific versions are chosen, patches applied for a particular distribution and in some ways by the assembly of the final release media. The proper Debian releases in this context would be no different then Ubuntu releases but will be created using different criteria and at different times. The tools must be powerful enough so that release preparations of any distribution (including Debian proper) would not need to slow down the progress of the flow of new features into the eternal unstable line.

The infrastructure needed to operate such complex system would be immense. It would need to have some similarities to the systems Debian uses for distribution, release and bug management, it would need to have some similarities to Ubuntu’s Launchpad (just free, understandable, usable and well documented), and I think that it would also need to have some similarities to Gentoo’s Portage system (distros do want to recompile packages with different options and with their own library versions). It would also help if this unstable line could still hold few parallel versions of one package - like the latest release and the cvs version. (However I am pressed to even imagine all the complexities this would bring into apt and bug reporting/debugging.)

I think that such structure will not only concentrate the scarce resource that are the early adopters in a place that will benefit all distributions, but will also provide extra dimensionality for social and technical growth for The Debian Project. The Debian Project will turn from a single great distribution to a swarm of wonderful distributions with a strong central spine - the eternal unstable line.

An additional benefit to this will be that it will be possible to fork Debian if social pressures require that (like it happened with gcc vs. eggc) for the benefit of all free software users. Like, for example, the David’s steering commitee whould not disturb the Debian main line until it has been proven to work - it could be formed, it could set goals for a branch and feel in total control of their release goals and methods. After the steering commitee makes a successful release, it would be only a matter of a political decision of whether to call that release Debian proper or not.

Note: As always this is just an uniformed rant of a relatively passive DD who is blissfully ignorant of pretty much everything, so please tell me if and why it can or can not be done.

P.S. While I am in such writelly mood, I should probably write that free software advocacy article for a new journal that I promised them a month ago.

P.P.S. If the system is written with it in mind, then each user’s computer could theoretically be a separate distribution which keeps a splice of Debian unstable line (or any subline) with local modifications and possible local compilation options. If done right, this could also provide a ground for merging up with Gentoo.

P.P.P.S. After reading trough logs of several bugs on the Launchpad, I have a feeling that Ubuntu is being flooded by much more bugreports then Cannonical is designed to handle (especially for free). I am not pointing fingers here, I am just suggesting that it is another facet of the same problem and that this idea of mine could reduce this load and let Ubuntu developers concentrate on what they really want to do.

Popularity: 44% [?]


Die C

I am not a good coder. In my mind a coder is determined by how much he loves C (or, in clinical cases, assembler). I hate C and avoid it whenever I can, because I am always off-by-one, and often even in more then one place, which make debugging even more .. fun. :(

Currently I am coding an application that is centred around use of artificial neural networks (more precisely a multilayer perceptron). The NN part must be done in C for speed and memory usage (imagine adding and multiplying hundreds of millions of floating values just for one operation .. and having to do that for 10 000 times for training .. while holding the whole data set in RAM, because you access every single value of it every second). With that in mind I engineered my system in such a way that the C part can be reduced to a couple simple operations that I can adapt from examples of the NN library. And still I barely wrote those pieces. Working with MySQL in C is pure pain, for example.

The rest of the system is in Python and I must say that Python is a godsend by itself, without even comparing it to C. I am now so used to Python when I was debugging my C program, I automatically wrote a chunk of Python into it and was very surprised when it did not work.

With that in mind, to ease the pain for further generations of neural network researchers, I will (someday) find some time and write Python wrappers for the nice and cool Lightweight Neural Network C library that I am currently using here.

BTW: I found that SourceForge is packed full with great software projects, but it is very hard to find those projects in Google. Morale - seeking for good free software? wajig (or apt-get) it! then sourceforge it! then freshmeat it! and only then google it.

Popularity: 34% [?]