Proprietary vs Open Source vs Free Software

I recently had to think about the terminology problem around Free Software, Libre Software, Open Source, FOSS or FLOSS.

Whenever you do mean to imply the 4 Software Freedoms, Free Software seems to be the best option. Libre instead of Free might help to make it clear it’s not about price, but that term isn’t used that widespread, and it’s the Free Software Foundation, not the Libre Software Foundation.

FOSS may be bearable, but having 2 words for the same thing in one acronym like in FLOSS, while there’s already a huge overlap¬† involved … I have no nice word for it.

Open Source will in most cases also be Free Software, but it’s often used to emphasise the practical aspects and is preferred by those who want to distance themselves from a perceived Free Software fanaticism. What’s really impractical is that Open Source feels to me like a more handy term for stuff that doesn’t happen to be executable software, but this baggage is no help, there.

I really don’t like the idea of a divide between an Open Source pragmatism and Free Software idealism (or worse labels). While there may be FS nutcases, I think the determining aspect is the nutcase, not the FS part, then. So called idealism can often be thought of as long-term pragmatism. You don’t reach certain goals, if you give in, easily. The hard part is the balancing of the value one ascribes to what is desired, against the probability and cost. What seems pragmatic now, might show to have been short-sighted, later.

Now all in all, people will not agree on the weighting of values and of what is actually at stake, what the opportunities and risks are and the time span to think of. But if you see a continuum, instead of a hard split, it should be much easier to get along or even cooperate for mutual benefit.

Personally, I much prefer Free Software, but will use what I think I have to, to get a job done. I may forgo some comfort I could have with a closed solution, sometimes. It’s a case by case decision. But I would not stay out of an entire field for lack of an FS solution. As an example, have fun trying working as Industrial Designer without Solidworks or the like. And no, I simply can’t write a parametric solid-modelling application or fund it’s development, not in this life ;)

The Trouble with Explicit Loading and Saving

Much of today’s users experience with common software is still shaped by a bottom-up approach, starting from what has been possible within the constraints of hardware from long ago. It’s like most what we have resembles Assembler, C and C++, not Lisp, Smalltalk or Haskell.

Of course, some of the constraints are still there and won’t magically disappear because you take a bottom-down approach, starting from the user, not the hardware side.

Take the explicit loading and saving of Files. The reason for it is the lack of affordable memory that offers relatively high capacity, is fast enough to not be too much of a bottleneck, and that is persistent even without power. The usual workaround is using hard disc drives and RAM of rather limited capacity.

The need for loading and saving files, even when no removable media is involved, can’t be understood without this technical background. Actually, a naive user might not be aware or think of even the mere existence of a hard disc drive and RAM. It’s all just the computer. Without a sufficient mental model, no predictions can be made. Instead of confidence and flexibility, you will likely see clinging to rituals known to be safe, but that might contain unnecessary steps.

The split between a file on disc and a file in memory becomes interesting, if you open one file in several applications, or move or rename a file you have loaded somewhere. Instead of having one thing in one place with one current state, you get 2 or more things (or one thing with several states) in 2 or more places. If you want to rename a file you are currently working on (and exactly that work might be what leads to a better name), you either have to close, rename the file and load it again, or use Save As and later on remove the old version. Too complicated for a task that should be atomic.

Ideally files should just appear open. Progressive rendering, Caching and modularised applications where viewer components are loaded first, could help to approach the ideal.

Having to safe explicitly sucks. It’s not unreasonable, and I suspect common, for first-time computer users to expect changes to just persist, as that would be in line with real world experiences. If no revision control is involved, you might run into situations where you have to think about whether saving the current version might destroy a previous version you might want to keep. Saving shouldn’t be destructive.

Maybe one day we will have memory that combines all the desired characteristics, allowing real persistence and immediate access. Until then, it should be considered to mimic persistence without destroying data by automated commits to a revision system. Finding the right strategy regarding power consumption, noise and safety is tricky, of course. In the most simple case, such a system would permit you to just keep working, never interrupting your thought with repetitive management tasks like saving. More advanced use would include tagging states to return to them easily (resembling commits). Selected states could be collected in sets, resembling branches with a carefully crafted history, so they can be published. Thus instead of a hard break between simple use and the needs of software developers, there could be a progression.

Intelligent Design instead of Evolution

The Trouble with Evolution

A few years ago I decided to try Ubuntu’s default email client Evolution, as that seemed convenient. It was just there and I had no clear preference, after leaving mutt behind because my approach with it didn’t scale to the amount of email I burdened myself with.

Evolution worked reasonably well, but at some point started to fail at emptying the trash. A few mails would remain in there until a restart. Seeing emails that I moved between folders in the trash kept making feel uneasy, even after I understood that it are just copies. Deleting or renaming folders sometimes works and sometimes results in utter chaos that can only be fixed by restoring a backup.

Since the last update with Ubuntu 10.10, Evolution does not quote the content of HTML emails any more, unless I select the text beforehand (known issue). The way editing emails works with blocks of content often leads to situations where I fight with the program in a way that I only recall from MS Word (well, OO Writer, too). And now Evolution sometimes dies when I click Send.

Why I didn’t make sure there are bug reports for these issues? With one exception where I did do so, they are all random, so I can’t list steps to reproduce them. Not to forget that switching to another application takes less time …

After looking around for other options, I chose Thunderbird.

To be fair, I can’t yet know how it fares regarding reliability, but I already know it does account setup much nicer and feels less clunky. Also: hooray for incremental search!

How to migrate from Evolution to Thunderbird

I followed this guide for emails. The only issue was ending up with the content of the Junk folder in my new local Inbox folder, so either emptying Junk or the old Inbox beforehand would have been a good idea. Otherwise I just had to mark everything as read again (and switch to threaded view).

Evolution exports the addressbook in vCard .vcf format. This online tool allows to convert that to LDIF, a format that Thunderbird can import (found via their wiki).

Mailing lists

Unsubscribe

Once in a while, but frequent enough to be annoying, someone asks to be unsubscribed from a mailing list. Explaining how they have to and can unsubsribe themselves off-list means making it likely several such mails will be send. Doing it on list adds more junk to everyone’s inbox and the archive.

Perhaps subscribing to a mailing list is too simple, if it is that much simpler than unsubscribing? I wonder if there should be a quiz to make sure people understand how to unsubscribe, before they can subscribe.

BTW, are there special email addresses to get on and off Ubuntu’s mailman lists?

Digest mode

Replies to digest mode mails tend to be confusing, have no proper subject and often indicate that the sender does not have a good idea of what’s going on. For these reasons, I think digest mode is harmful and would be glad to see it removed. As to the recipients side of this: what’s the value of the same amount of text with less structure and a terrible interface if you want to reply?

Migration

Northern hemisphere summer 2017:

Ada walks into an electronics store to buy a new, larger pad, as she earned more than enough credits with her free-software contributions, recently. Instead of giving the old pad into a reuse-or-recycle program, she just handed it down to her little brother. Of course only after cleaning it of all her data and customizations with a single command (and a confirmation). The system automatically made sure there was a complete backup on her personal virtual server, first.

All the available devices, be it pads, laptops or wearables, have one thing in common: they come with a pre-installed system, but one that supports a common standard for installing an operating system environment of your choice. Or several in parallel. Ada chooses a pad to her liking and pays electronically, using a scheme that involves a one-time proxy account. This minimizes the information that the shop and her bank gain.

The new pad is ready for action on the push of a button. Plugging in here little key card—she tends to wear like jewelry—allows Ada to establish a secure connection to her server, despite using wireless.

2 touches later, her preferred system gets installed by pulling the base from the next public server and applying a patch-set that represents the changes she made while using the old pad. Differences in hardware are accounted for automatically, by use of a number of profiles and device-categories. She tests the configuration with an obscene gesture bound to a custom command … alright!

Both the software modules and her documents she accesses on the go are kept on the server and cached on the pad, though she can manage what is kept where and synced when in as much detail as she wants to. Downloading and installing has become just using it (almost) immediately. Ada recalls vague memories of how laborious migrating data and settings and keeping things in sync used to be and smiles :)

On Design Contests in FLOSS

It seems to be somewhat popular to hold a contest, if a FLOSS project needs a (new) logo or other seemingly singular asset.

Proponents may bring up that a contest would:

  1. lead to large range of choices thanks to the shear number of participants.
  2. generate publicity, as both the announcment and outcome of the contest may seem newsworthy.
  3. attract new contributors to the project.
  4. Demonstrate commitment to openness, community-building and meritocracy
  5. The community can vote on the result, democratically.
  6. At least the winner, if not other participants, too, gets a portfolio piece out of it.

But:

  1. Much of the increased quantity will go along with low quality. In the end, what you need is one great concept in one great execution
  2. You may get publicity, yes. But what message does it send?
  3. Attracting new contributors this way could work, but so far I only heard experiences to the contrary.
  4. You may demonstrate a commitment to openness, perhaps. A contest does not speak of, or encourage, collaboration, but rather of everyone against everyone else. Building on the work of others is discouraged. Trying to reach consensus is usually done away with, you vote.
  5. The outcome of a democratic voting process is (even looking past the shortcomings of every possible voting scheme) only as good as the insight the majority has into the topic at hand. Seeing how often people see no issue with throwing drafts around with no briefing in sight suggests to me that this is not very good, usually. Maybe I contributed a tiny bit to the problem with some drafts presented without much explanation, but I can assure you that I always think about what I’m trying to achieve with a work, first.
  6. Regarding a portfolio piece: does having won a contest beat having gained the trust of a client and having worked with them successfully? All other participants would have been as well off with a made-up client/project.

What does it say about you, if you are fine with the number of participants all investing the time and effort it takes them to come up with proposals, just on the chance of creating the winning entry? Think about participants * time spend,  a limited resource.

One issue that tends to appear with contests, but is not intrinsic: No briefing, no message, no strategy. Visual design associated with a project should always help, or at least not be in conflict, with the goals of the project. Based of a briefing, a mission statement for the project, you can work out a strategy regarding your communication. Because visual design is communication, if you treat it as such consciously, or not. This leads to the message you want to get across and the tone you want to hit.

The assistance of a trained designer makes working out such a briefing easier, but doesn’t fit into the picture of running a contest so well.

What to do instead of holding a contest

Developing a briefing, as well as technical and legal requirements, is a task best handled by a very small group.

You may then select a single or maybe 2 or 3 designers, based on their availability and past work.

Or have a concept/drafting phase open for all. But instead of turning it into a contest, it should be a designer’s job distributed on many shoulders. This means to encourage that participants pay attention to widening the range of concepts early on, avoiding to all cover the same ground. Later stages should be marked by providing feedback to each other and generating small variations on the search for the optimum.

All that said, I’m guilty of having participated in the countdown banner contests, but only because I was so confident (or arrogant) of making it every time. Not to forget that I really like the topic and constraints :}

Somewhat related: 28 talking points, about commercial crowd-sourcing.