Showing posts with label Windows. Show all posts
Showing posts with label Windows. Show all posts

2012-04-10

A few Linux related videos

Here are a few easy and overview videos related to Linux that might increase your interest:

Ubuntu spot:

How Linux is built:

Linux vs Windows (in brief):

Linus Torvalds: Why Linux is not successful on the Desktop:


Ubuntu TV:

Ubuntu for Android Demo:


Linux is better than Windows:

Unity technology overview:


Microsoft Office vs OpenOffice / LibreOffice:

Linux does what Windows does not:

10 reasons Windows 8 will fail:

Related posts: Why Linux?, Going Linux, The Open Source idea, User lock down, The community, Popular Ubuntu desktop myths, Why companies do not use Linux on the desktop, Distribution choice.

2012-04-05

Choosing a programming language

Currently - after a very long period I am again into the programming language decision which I was not expecting.

Changing programming language is a big deal and you shouldn't do that every 2 years. When you search the web you will find recommendations to learn many languages and learn a new each 2 or 3 years. I find this totally silly. To get really productive with a programming language, takes at least a year and of course you would like to get the most out of it regarding ROI (return on investment).

When I did evaluate programming languages the last time, it was a 3-step way:
  1. Collecting all options with the result of a hand full remaining for further analysis.
  2. Keep an eye on activity and evolution of the results from step 1.
  3. Detailed analysis of the remaining options and choose.
The time from beginning of step 1 until end of step 3 took about 2 years. During step 1 I already decided on a few parameters, which in my case were:
  • I prefer static typed languages over dynamic ones for several reasons (e.g. less error prone, YMMV).
  • I don't want to code user interface - I have coded GUI since I was an 8 year old boy and I was about 14 when I got GUI designers (those times still using MS DOS) so hand-coding GUI is for me like returning to stone-age and so that is a no-go for me if a GUI designer is missing.
  • I don't like language hopping and because of the very dynamic requirements of my software projects I need a programming language that can be used for quite all realms - so all the domain-specific languages are excluded for my needs.
  • My applications are usually plugin/addon enabled which means that a customer must be able to develop those for special needs on his own - without additional costs. That means, my favor goes to languages that are free (and open source) including the IDE used for development.
  • The language should not be tight to a particular operating system.
My decision - taken back in 2008 after many years of classic Visual Basic development on Windows was: Java together with NetBeans IDE, using Swing GUI for desktop applications (NetBeans itself uses Swing - however, there is another option for building GUI in Java: SWT). A short comparison Swing vs SWT can be found here. Back in those days I have already blogged about my decision, you might want to read back to "The programming language" and "The IDE and the libraries" maybe. The Swing GUI is - by the way - far superior to the .net WinForms or WPF - both do not adapt well to very different text lengths in labels (just to give one example - in Swing this works without additional work in full automatic). Another core advantage of Java in general is: You take the binary and it runs everywhere! - C++ and many other languages at least require the same code to be compiled on each platform. What if I want to develop for the Mac and I don't own one? - I have given Java apps that I have written to a friend for testing on his Mac and it worked - without me ever testing it on the Mac. Of course if you call system programs dealing with the output you may see differences in the behaviour on different operating systems that you have to deal with. The most annoying thing in Java is that you need to ensure that the Java runtime is installed on all the client PCs where you want to use the app. Of course no difference to Microsoft's .net here - although there is less version quirks than for .net...

Now, about 4 years later there is nothing wrong with my decision. My decision is still that. With the rising of alternative operating systems the importance of Java has gained (on the server side Windows definitely already lost for enterprise applications at least) and many server-applications go Java to be platform agnostic. Apart from that the Java world is huge. Microsoft's .net is growing also, but still far from that (regarding size and quality of libraries and community).

The trigger for my latest search for a programming language is that I have a few very small programs (running on the client) to write (they are not "real" applications, just tiny programs for particular small needs). I found Java - and .net or Mono as well just too big for such tiny stuff. In my particular case they are Windows specific needs. A few of those needs I already solved by just writing VBScripts. That was ok for the GUI less needs. Now I have a few little needs for small GUIs. And that again brought me to a brief look around.

And indeed that is the single parameter ("should fit for very tiny requirements also") I did not include in my former decision back in 2008. And good it was I think because finding the programming language that fits for really everything 100% is not realistic. It is even not realistic to think that a programmer nowadays can survive just knowing one language - but: It is important to keep in mind that no one can achieve the same level of expertise in all used languages.

So this post can be seen as an addition to my main pro-Java decision - the programming languages that are helpful in addition to Java.

For Windows development you should know VBScript and on Linux shell scripting or Python or Perl for the small scripting stuff.

But what to choose, if a little GUI is needed?

If you search for a platform independent development platform, you could look at Free Pascal and Lazarus IDE as it creates native code (so just take the executable and run it instead of writing packages or setups that manage plenty of dependencies) and is fast. There is one problem with this approach: On Windows (in my case) using COM components (not to talk about .net) is not well supported and possible only with quirks (not tried myself, I just read about that). That is the reason why this is not an option for me in my current situation. If your application does not need to tightly integrate into the Windows ecosystem Free Pascal gives you multi-platform development (same code, just need to be compiled for/on each platform).

After all, still core technology is C(++) and Code::Blocks is an IDE available for all major platforms (for wxWidgets projects the wxSmith seems to be the most capable GUI builder, you need separately install wxWidgets - at least on Windows). Or anyway you can either use NetBeans using external designers to build the GUI for Linux development. I have developed quite a lot C++, but maaany years ago and today I simply had problems getting Code::Blocks to work seamlessly with wxwidgets (design worked, but compilation finished with configuration errors). What I found on the net related to my errors was from about 2008 partly not matching my environment. I gave up on this but for those succeeding I want to mention this option.

Last but not least I still also see the option to use SharpDevelop with .net for the single reason of time-to-get-started and seemless integration into the Windows ecosystem - and this combination by the way is the only mentioned one that is bound to windows only. If you think of Mono and MonoDevelop then be warned about the differences! Creating platform independent applications with C# is not as seamless as you might think! Using  MonoDevelop on Windows (MonoDevelop can compile against .net or Mono) brings more platform independence but you loose the Windows integration (COM/activex support at minimum level - I find the Java-COM-interop even better; registry access and stuff like that). The very important point here is the Windows integration - it's the one and core argument for this option!

I was about to write a paragraph on speed but didn't want to write that without a single test after more than 3 years of not checking that. Surprisingly a minimum GUI test lead to the following result: Cold start on a virtual Windows 2008r2 machine is 5 seconds for both - .net as well as java. A second start is 1-2 seconds - either for both. I then tried a Java test application with a little more GUI to find out that (warm) start is 4 seconds - not bad either. Surprisingly Java 1.6 update 30 and .net runtime 4.0 seem to bring a similar user experience at least from startup behaviour. Many still say, Java is slow - far missed!

But I may not forget that I need to access activeX/COM components for my small work which makes it more feasible doing it with .net because .net simply integrates better here - as already mentioned. Of course there are options when using java - for example - my favorite com4j (which I tried for several COM components in the past where it worked well). Although I never tried to embed activex controls into a swing component - and that does not seem trivial in Java - see here.

Needless to say that I would prefer Java for 100% of the work if it would be easier to deal with COM components and if it would integrate nicely with the Windows stuff. Java with NetBeans is basically the only combination that I really love to develop with. Everything else lacks in IDE features, is difficult to set up or the community is small and tiny amount of available components.

And of course there is my general tendency to avoid Microsoft technologies whereever I encounter them. The classic Visual Basic was one of the longest continued stuff of Microsoft, even although there were signifficant changes between VB 3.0 and VB 4.0 (with switch to 32 bit). When I look at the last years there were unusable first attempts of .net with first Windows forms and then WPF (see a discussion here), Microsoft pushed a lot of newer GUI styles over the years with Ribbon interfaces or now the Metro GUI where you need to use a new GUI language and software companies continously need to adapt or rewrite parts of the application). Would I have used Java since the late ninetees I would have experienced a completely different continuity. Microsoft managed it very well, to drive developers .net without those getting aware that they are again caught in a one-way-street with a dead end. Just because industry follows Microsoft - at least on the client side - in most areas, I need to accept that I can't stay completely outside the windows specific (VBScript and .net) stuff. I will take care to keep it at a minimum. This means, that for my tiny programs I will most probably go with .net just because of the lack of other options.

For those who like dynamic languages, I want to mention Python. One of it's core advantages in my opinion is that it runs on many platforms but comes along with Windows extensions on Windows. This means: When you need to do Windows stuff you can continue to use Python - of course using the Windows stuff (COM and Windows API for example) means that (at least that part) of your program is then bound to Windows-only use. For platform agnostic programming there are bindings for wxWidgets for Python. However, the IDE's I tried were all poor in features or stability - I tried Eric, SPE and Idle back in 2008 - a short look tells me, that there is still a lack of GUI designers (e.g. Glade for Windows seems near to discontinued) - so I cannot really recommend a particular IDE - you can have a look yourself - here is a list of Python IDE's. Unfortunately deployment for Python programs on Windows is not as easy as for .net or Java.

To round up this post: For building setups for your Windows applications I can recommend the Innosetup application as a good mix of flexibility and ease-of-use. For creating Linux packages see official documentation for creating .deb packages (Debian, Ubuntu, Mint, ...) and here for creating .rpm packages (redhat, Fedora, ...).

Related posts: The programming language, The IDE and the libraries, Install NetBeans on Ubuntu 10.04, Java vs .net/C#.

2011-10-04

Failed user lock-down

Have been on a Citrix Windows 2008r2 server machine where the admins really tried to lock down everything.

The other side is: Some stuff is not working well and I do not wonder because I am pretty sure that a lot of features that have been disabled are required by several pieces of software.

And the funny thing is: You can't really lock out the user on Windows - just to show one simple way to open the command prompt if disabled:

  1. Start Microsoft Word
  2. Press ALT + F11
  3. Press CTRL+G
  4. Type: vba.shell "cmd.exe"
  5. Press Enter
  6. Voila here it is the commandline window.
In the particular case C: drive was disabled and command prompt -  now everything is at hand form the command prompt. You can either try:
vba.shell "explorer C:\Windows"
works either. :-)

2011-09-15

Outlook Calendar Meetings

When it comes to discussion about alternatives to MS Outlook, a common argument is the unique calendar and meeting request feature. So far I could understand people as it seemed quite comfortable to me (even although nothing beats the Google Calendar).

After working a lot with the Outlook Calendar (although mostly through the web or thank good, integrated with Lightning in Thunderbird), I can tell you: No, the Outlook Calendar is not so good, as you might think!

BTW: Outlook is not the only software supporting such features any more.

Here are a few things that are super-annoying (and I am talking about the 2010 version - so state-of-the-art version):
  • I cannot create an appointment over n hours with one click and drag (this works in Google Calendar and Ligthning for example). I always need to double-click and set the length by adjusting end-time.
  • When I accept a meeting request, in the Outlook Web-Access, the appointment is carved in stone - I cannot change it (apart from background color), however,
  • in the Outlook 2010 desktop application I can change the meeting details - usually I add relevant informations to a meeting, information that I need exactly for that appointment, like addresses, contact phone numbers, conference call numbers etc. So far so good, problem: When the initiator of the meeting makes changes to the event, mine gets updated without notice and my edits are gone! - This also means that if somebody is ill and I change a foreign appointment, I wipe out their notes either - that's crazy!
  • When viewing a shared calendar from another person in web client, the other calendar gets displayed next to mine and not in  an overlapping mode. Do this with 3 and everything gets too narrow to view on a normal laptop display.
Related posts: Outlook 2010 Meeting requests, Thunderbird & the Outlook Global Address book, Popular Ubuntu desktop myths, Maintaining multiple calendars.

2011-07-30

Implementing effective computer security

I am really surprised, how safe people feel in their daily computer work.

Whereever I hear people speaking about viruses and computer security they are quite convinced that a virus scanner is sufficient for secure computing. I can say, that I have removed a lot of viruses from a lot of PCs. Whenever I found an infected PC and ran several antivirus tools in parallel, I got different opinions of the scanners about how many and which viruses were found. If you ask real experts, you will get the answer that
  • there are differences in quality of virus scanner software and that
  • no virus scanner finds all viruses - and last but not least
  • they cannot search for all ever known viruses all the time (because this would simply take too much time - so during normal scans they usually search for the currently most common found viruses.
Running multiple virus scanners at once is usually not really an option because already just having running one, reduces performance drastically.

Apart from that you do not only have viruses. You are surfing to sites in the web that may have got infected and run spying and malicious code in addition to the original website code. A co-worker of mine got infected by a virus by surfing to his online-banking software which got hijacked by a hacker. (Of course, it was a Windows virus...).

In addition to the viruses which come with no or very few action needed to be taken by the user, hackers and spammers try to convince users (by email for example) to take more action, like sending over money or adding malicious code even to their own web pages or browsers (e.g. https://www.facebook.com/topic.php?uid=31987371885&topic=14985).

I am the first one getting angry when I see too much security. The computer is an important and powerful tool. Whenever I need to work on a machine with limited permissions, I get easily angry if something does not work just because disabled. But: Everyone should implement a little security!

On Windows the easiest is to:
  • install A virus scanner like AVG, Avast, BitDefender or other.
     
  • use Firefox or Chrome instead of Internet Explorer to browse the internet.
     
  • get the Addons Adblock Plus and NoScript. The latter can be quite annoying because of many websites not displayed well by default. While not very liked by most end users, I find it being very effective in relation to the additional work necessary. It is a good tool to avoid effects of cross-site-scripting.
     
  • use an E-Mail client that allows text-only display of messages. Again this might make your emails not very nicely displayed but shows you the real link (in HTML-mails the displayed link can differ from the one called when you click it) and keeps you free from a lot of typical e-mail viruses. Outlook is not the right tool at this point (no version of it). One option is Thunderbird (which I personally love because of the many options and long list of plugins available).
This paired with caution (e.g. not clicking on every link even without reading). Of course, the next level of security would be to get Linux instead of Windows, but I can understand if this is not a realistic solution for you (which applies when you are too dependent from other Windows-only software pieces). I personally found it very effective to install Ubuntu Linux at end users using Firefox with Adblock Plus and NoScript (as mentioned above).

Related posts: Why companies do not use Linux on the desktop, Going Linux.

2011-07-15

Outlook 2010 Meeting requests

It's been months now that I (have to) deal more intensively with Windows world now. Although you might know that I prefer my Ubuntu desktop over Windows I am not one of the "fan boys" ignoring people's or business needs. Honestly, nobody can accuse me of being ignorant on any of both worlds. And honestly, I cannot recommend anybody to go with Microsoft and Windows as a long-term strategy.

One of the recent changes introduced with Outlook 2010 I want to share with you today:
Imagine, you are using Outlook and create a calendar entry. You want to invite a customer, partner, supplier etc - an external person at another company - to this event. You may further enter some agenda or other information before sending the meeting request. So far so good.


In the past it was known that not all e-mail clients or collaboration suites do support meeting requests. There has been an independent standard defined for sending and receiving meeting requests - it's the ICS format. Even Outlook learned to use that format!

Anyway, not every client is supporting this. Before Outlook 2010 Outlook always sent the meeting information as text also (as by the way all/most other mail-clients and collaboration do also).

With Outlook 2010 they removed the event information as text which might lead to the effect that your invited persons never notice that you wanted them to invite to a meeting. The meeting information is simply missing in the email!

I noticed that just because Thunderbird does not read .ics attachments if Lightning is not installed. Only after installing the addon you get the meeting information displayed. I really don't understand why one line of appointment information text is too much to expect...

Related posts: Outlook Calendar Meetings, Maintaining multiple calendars.

2011-06-27

Windows and the command line

If I remember correctly I was about 14 when I wrote my first MS DOS batch file. I can't say that I write many of them but from time to time I think a VB script is too much for just some little work.

On the other hand I began to really learn Linux shell scripting only about 6 months ago. After that I find the Windows batch file language a very poor thing. It has a poor feature set, a lousy documentation and it is buggy. And this still applies for Windows 2008r2 - so I am talking about the newest OS version.

Right now I lost about two hours investigating a problem to find out that the batch file I wrote, did not work. The problem was caused at a completely unexpected place where I had a few lines that I previously tested separately - on the command line.

Guess what: Behaviour may be different if I run a command on the commandline or from within a batch file!

Here is an example - try this on the command line:
set var1=fluffi
echo _%var1%_ _%var2%_
The result will be: _fluffi_ _%var2%_

And now put those two lines into a .bat or .cmd file and run it.
The result is: _fluffi_ __

A pretty difference, isn't it!

In my case I was passing a string like this "blablabla%muh%bla" as parameter to a called program and the parameter did not fully arrive in the batch file while it did when I tried on the commandline.

What's that?!?! - Is this the Microsoft logic? - I think so... one only has to look at the evolution of MS Word...

Oh - I guess you want a solution: In the batch file you have to escape % doubling it - %%.

Related Post: The Microsoft Logic 

2011-05-30

Microsoft & Skype

I guess you have not missed the news about Microsoft aquiring Skype. Although Microsoft told they will continue development on all versions of Skype I have my doubts - and so do others too.

Recently Digium, a company that develops an integration for Skype with Asterisk, had to give up because Skype/Microsoft is stopping the partnership - read here.

You are free with your own interpretations on this but I am already searching for a replacement for Skype.

The very sad thing these days is: As soon as a software got really good and really adds value and/or increases your productivity, it gets destroyed somehow - being prices getting too high or not being continued. This way we will never step out of the bronze age of IT...

What you can see here as an example: People often say that in Open Source world you don't have a guarantee that the software is supported and continued. As you see here, proprietary software is not different here. But in open source world there is always the option to fork (see OpenOffice->LibreOffice). This option is missing in proprietary world. So basically in Open Source world you are more safe!

Related post: The Open Source movement.

2011-05-03

IT fallout and buddhism

Today I had two thoughts about today's usual IT landscapes:

  1. Windows is like radioactive fallout on the IT level. People accept it and somehow knowing about the problems and then get killed (through stress and burnout for example) by the effects - slowly and without them either noticing.
     
  2. I need to take buddha as an example to accept the common IT flaws. Although he has seen the light, he returns in his free decision to this world to help people in their endless suffering. I somehow also feel to have seen the light because I see how things could be done better, but anyway I face Windows again and again at customers. I need to see this as an opportunity to assist people in their suffering. In most cases people are not able to finish their suffering and see the light... ;-)
Related post:  The truth about software.

2011-04-22

Thunderbird and the Outlook Global Address book

As I mentioned in an earlier post, I have switched job and while I initially had to use the Outlook Web Access (OWA) in the version of 2010 to access my mailbox. At this point I want to be fair and say: Microsoft really improved the web client. You can work with it. I prefer that interface over several others (Hotmail/Live). The other option was to use the real Outlook over a terminal server session or using a virtual machine. I tried both (in version 2007 and 2010) too so I have used all variants. The result is: Outlook still completely sucks! I talked to other people who ever used something different than Outlook in their work (e.g. Thunderbird or Notes) and everybody confirms, that Outlook sucks. People often wonder why I have problems with Outlook when "the whole rest of the world" is fine with it. The reason is: Most people don't know anything else and they got used to suffer. But enough, I want to help out everybody who is in the lucky situation that IMAP protocol got activated in their Exchange branded workplace (in my case they activated it just for me :-) - this is cool). I tried several alternatives for directly accessing the Exchange server without success and I could not occupy the internal IT for hours to figure out, what goes wrong. Opening up the IMAP protocol was the simplest and straight-forward-option.

So I can use the loved Thunderbird again!

But opening up the IMAP is only half the way. You also need to get access to the address book. And here I ran against brick walls in the first step:
  1. Trying to open an LDAP address book pointing to the Exchange server failed in getting no connection (neither port 389 nor 3268 worked).
  2. I figured out the AD (Active Directory) server of the Windows world and used that. It connected immediately to port 389, however then had problems loading the contacts. As I know now, it is a matter of filtering to the correct entry set. However, after failing continously during my first attempts I tried
  3. exporting the global address list from within Outlook into ... well ... anything, I was about to even accept any CSV file, however styled. Completely failed in that too - you can export contacts but not the global address list. You can imagine how happy I was...
Fast forward to my final solution which now supports
  • directly using the global address book via LDAP directly from the server or
  • use a local copy (export+import which you need to do manually from time to time to be up-to-date).
How it is done:
  1. Get the Apache Directory Studio or another LDAP browser tool of your choice that supports an LDIF export. In the Apache Studio case, just extract the package and start it (yes, it's that simple, it's a Java application that runs on Linux and Windows). You need this to first test your LDAP access, if you are not sure about the correct criteria.
  2. Now you need to find out where the AD is hosted. In my case I promised not to ask boring questions to IT (they were already nice enough to open up the IMAP just for me), so I had to find out on my own. I simply checked in to the Terminal Server Session and wrote a little batch file (directly going to the console is forbidden in the terminal server session due to security policies) of the content:
    set
    pause

    and just double-clicked it to find the entry "LogonServer", "UserDNSDomain" and "UserDomain".
  3. Now start the Apache Directory Studio and create a new LDAP connection. The connection parameters would be something like:
    hostname=fulldnsmachinename

    (using the information from LogonServer and UserDNSDomain, so e.g. "myserver.mycompany.com").
    Port = 389

    (default LDAP port).
    Logon with UserDomain\yourUserName and your password.
    Click on "Fetch base DNs" to find out the base DN to use - or guess it, it usually is:
    dc=yourCompany,dc=internetsuffixlikecomnetorgetc

    so for example dc=microsoft,dc=com.
  4. Now you would find a lot of stuff browsing through the AD (assuming you have enough read permissions). To find the entries that are displayed in the Outlook address book, you need to filter the information. To do so, create a new search using the base DN above and the following search filter (click on "Filter Editor..." for better formatting):
     (&
    (showInAddressBook=*)
    (mail=*)
    (mailNickname=*)
    (|
      (objectClass=person)
      (objectClass=group)
      (objectClass=groupOfNames)
    )
    )

    Here is the filter again as one-liner - this is how to use it in your Thunderbird:

    (&(showInAddressBook=*)(mail=*)(mailNickname=*)(|(objectClass=person)(objectClass=group)(objectClass=groupOfNames)))

    In the Apache Directory Studio you can now set the option to "Follow referrals manually" or ignore them completely. Leaving it to automatic can produce errors - especially if AD not well configured (in my case loops are generated when automatically following all referrals). Search scope should be the complete subtree. Check the results by executing the search.
  5. Start Thunderbird and create a new IMAP account (if you didn't already) and create a new LDAP address book (Tools-Address book; File-New-LDAP Directory). Enter Hostname, Port, Base DN as in step 3 and in the "Advanced" tab choose subtree and enter the one-liner version of the filter as in step 4.
    Now you have the direct access version. You now could change settings in Thunderbird (Edit-Preferences-Composition-Addressing) or even configure it for a single account (under Composition and Addressing) to use the LDAP directory for autocompletion, but I found that to be annoying because of the slow Exchange server in my particular case (YMMV). Hence I did not do this but pressed F9 in a new mail to show the contacts sidebar. There I switched to the LDAP address book and can now search and choose addresses if they are not already among my collected addresses. This is BTW the same you get, using Outlook - only those addresses, you already used get auto-completed and the others you need to search manually. A second annoyance is that Thunderbird takes a longer time to really disappear from memory when the LDAP search was used during runtime. So I was not really satisfied with that solution.
  6. Just for performance and to have all autocompleted, I wanted to have a local copy of the address book. I found that the Apache Directory Studio offers an LDIF export feature, which is really the best you can get. Even phone numbers and other properties from the LDAP directory finds the way into the imported address book in Thunderbird. Just right-click the search (it's in the tree on the left-hand side) and choose "Export-LDIF" from the context menu within the Studio and in Thunderbird you go to "Tools-Address Books" and choose "Tools-Import..." - done.
Now you have both - full autocompelete and you can actively search the current LDAP at the server for the case new employees joined the train without the need to export-import all the time. However from time-to-time it makes sense to do a re-import just to have the current entries in the local cache. Fortunately the search is saved in the Apache Directory Studio for later reuse. Thanks to the Apache team for this great piece of software!

Oh, BTW: The local download of the LDAP directory did not work for me (it started but never finished - maybe because of the internal loops).

Hope this helps!

Related posts: Ignorance of the different, Popular Ubuntu Desktop myths, Apple worse than Microsoft, Outlook Calendar meetings, Maintaining multiple calendars.

2011-03-02

Popular Ubuntu desktop myths

Some opinions around Ubuntu on the desktop - or Linux in general seem to be never dying although they should be really outdated. A few are:
  1. Linux/Ubuntu is only for PC freaks.
    This is simply not true. Ubuntu/Linux is at least easy to use as Windows. For the normal user it is less painful for sure: You are faster up and running (because after installation also many apps are already there), you don't need to search your shitty licence code you probably already thrown away accidently a year ago, you don't get penty annoying questions when first starting your browser, you can install easily whatever language you need for whatever family member or friend who might visit you and you want to share the computer with, you can buy Ubuntu already installed on a USB stick that you can carry around and use it on whatever computer you go, you can easily use any file as a template and many, many more.
  2. Installation of applications is difficult (need to be compiled).
    There are distributions that compile everything from source, but even there you don't need to do it on your own. Anyway, most distributions don't require compiling things on your own (however, this is always an option you have, even if mostly not recommended). - Installation of software is usually simpler than on Windows: You start a program (menu entry) which contains a list of available applications, you can search, scroll through the list, just tick the checkbox in front of the application(s) you like to install and click "Apply". Download and installation done automatically then. For uninstall - guess what: Just uncheck and apply again. If you are funny, you can search the internet for a more up-to-date installation package or other application not in the repositories and install it by double-clicking it after download just as you do it on Windows. What is so difficult then? Even a trained monkey can do it. ;-)
  3. Everything must be done on the command line.
    Most things nowadays can be done through a graphical user interface also. One reason why much is done on the commandline: It is far easier in a forum or blog post to respond to a question with a few commands that just need to be pasted to a terminal window than it is to explain it with plenty of clicks and menu items (with the ribbons situation is even worse). For the person that receives the help it is also easier. And other than on Windows, everything you can do on the graphical environment you can also do on the commandline. That does not mean you have to do it that way.
  4. Linux looks old-fashioned on the desktop.
    Look yourself and decide: http://www.ubuntu.com/desktop/why-use-ubuntu, http://www.kde.org/screenshots/, http://www.xfce.org/about/screenshots, http://lxde.org/image/tid/1, http://www.linuxmint.com/screenshots.php, http://www.gnome3.org/, http://www.enlightenment.org, - All this can be used in Ubuntu - you can choose!
    Oh, you want Mac-style toolbar on the bottom - or Windows 7 like - look here for example: http://www.omgubuntu.co.uk/2010/04/you-choose-the-best-dock-for-ubuntu-poll/ - again: You choose, what you find efficient and cool!
    What is true, that some older applications are looking ugly because they use old interfaces (sometimes when searching in the repository and try new apps I happen to get such an old-style thingy), but the major part looks very nice.
  5. There are so many variants (of Ubuntu itself and even more if you look at other Linux distributions) so there will be never be a standard.
    The core for Linux is the same for all and the most differences are not in the system but just in the desktop environment or GUI presentation. But this is for your freedom and you can anyway start multiple applications using different GUI frameworks. Keep in mind that all people like to work differently. Everybody has his own preferred way of doing things. Hence should be you computer: It should support you by doing the work they way you like!
  6. Ubuntu is not compatible with Windows.
    This can't be said so generally. It is applications that are not compatible, file formats or protocols and you have to look at those separately. For example: Many widely used file formats (as JPG, PNG, TIFF, PDF, RTF, MP3, AVI and many more) can be handled without problems on Ubuntu. Even the DOC, XLS, PPT Formats can be handled quite good in the meantime. It is Microsoft that continously invents new formats and changes existing formats (see the latest DOCX which is different in MS Office 2007 and 2010, so that you need to save it in a compatible form from within 2010 if you want it to be displayed in the same manner with 2007 - .docx is not .docx!). Ubuntu better supports more open standards than Windows does (e.g. look at the MIME-Format - this is the format used to send e-mails over the internet - and look what you get from Outlook)!
  7. Ubuntu is developed only by students in their spare time.
    Canonical is the company behind Ubuntu, but Ubuntu is based on Debian (look in particular at http://www.debian.org/partners/ for example) and that all is Linux. And many big companies are contributing to Linux! So, if this ever was true, it is not any more since quite a while (see http://www.techrepublic.com/article/linux-standard-gains-big-name-backers/5365462 for example).
  8. Ubuntu is free and hence must be very buggy.
    Wherever software is developed, bugs are introduced. There are not more or less bugs in Ubuntu than on Windows - IMHO. Windows is used by more people and companies and hence there is a higher probability that bugs get found but for Ubuntu it is extremely easy to get involved, report bugs and get in touch with the developers and hence get the bugs fixed. So I think we are pretty at the same level here and there although I think, Ubuntu is more stable (of course ;-) ). And why it is free is because of the Open Source idea where people pay for work being done (new features, bugfixes,...) and not for ... (yes for what?). See "The Open Source idea" for details.
These are just the first examples that come to my mind.

Related posts: Document file format, The community, Going Linux, The Open Source idea, Why companies do not use Linux on the desktop, Distribution choice, Outlook Calendar Meetings, The individual desktop, Efficient desktop environment, A few Linux related videos.

Ignorance of the different

I haven't written since a while. The reason is: I changed job and it has been a stressy time for me.

Fortunately I found a company that accepted that I work on Ubuntu on my desktop. Of course there is Windows stuff to do - which I will do from a virtual machine or via remote desktop.

During my job search and at other occasions I wondered about the big ignorance (it is not always plain unawareness) of people working in the Windows and Microsoft environment. The vast majority of users, IT staff and managers still cannot accept, that the era of the Microsoft-only IT environment will be history in a few years.

Many young people are using Macs (even if it is just because they want to be different or cooler than others in a few cases) for example. I have customers where users are using Macs in the office on their productive workstation - yes, today (I am not talking about a single case only).

And BTW: I don't know a single real person who really tried Mac or Linux and then switched back to Windows. The contrary is true, most I know, didn't look back after two weeks on Ubuntu for example. I am not talking about forum entries of people who tell they switched back to Windows - I don't give much on them after I have seen sooo many forum posts that are so evidently fakes (or paid comments - yes, there are companies where you can pay for manipulating the public opinion through forums, blog comments etc).

Oh, and I have seen people selling Android phones and when I mentioned Linux, they never heard of it - hey it runs on the thingis, you sell!

There are a few things, that are really super-annoying and I start to get angry, when:
  • people assume, that everything other than Windows must be crap (without either looking). How can somebody have such opinion about something they never heard of yet?

  • I report a problem with a website or a service and people ask me what OS I am using (or worse: "What Windows-Version are you using?") and then tell me automatically it must be a problem with my machine or client - even if that has nothing to do with the OS that I am using.

  • when I ask people for help (e.g. just tell me the proxy, I have to use, when I want to use the internet), they see my machine and they immediately tell me - hell, what is this - I cannot support this. - Hey, it's maybe just a DNS or PROXY ip address I want to know - is this really so difficult? I don't ask them to configure my machine for me - I can do it myself.

  • people treat me like a fanatic or fundamentalist, just because I have pretty good reasons to not like Windows and prefer something else. I do accept that other people do not have enough problems with Windows to seriously consider a switch (if you take care you can keep even a Windows system quite stable and performant over a longer period of time - so with good people maintaining the Windows in a company, work can be quite painless with Windows either).

  • especially Windows developers, who think, they know all, and in reality never looked around what is used outside their small world. The vast majority of big sites does not use neither Windows nor MS SQL Server nor .net. Some of the Windows(-only) developers I know seem to be really brainwashed.
These are a few examples. Sometimes I get really tired of trying to legitimate the use of something different.

In reality it would be sufficient to be just accepted, but if I look more deeply into it: I am working to improve customers IT experience since I was about fourteen. And from the deep of my heart, I want to serve the best for the customer. From the current view, it simply does not make sense to write new applications that only runs on Windows if there is a chance to write it in a platform agnostic way. If the application is available for other platforms also then the vendor and customer can be independent from future trends. Even very Windows centric companies nowadays allow iPhones attaching to their networks for example.

So, honestly, I must recommend using Linux, Java or any other open technology and open standard over any proprietary one. - TIFF or PDF for example has not just been adopted by accident. Documented and open standards win in the long run, such as SMTP, IMAP, SSL, MIME and plenty others, that are well established.

Related posts: IT investment, The Open Source movement, Document file format, Data file format.

2010-11-14

The future of Java

The last months (after Oracle has completed the merger with Sun) were full of insecurity and discussions within the Java developer communities about the future of Java. Many have blogged about their fears. I personally followed the discussions but I felt, the best thing is to wait. People are so fast with their interpretations and guesses how others will behave.

In parallel there were discussions about Apple stopping support for Java on the Mac etc etc.

Even although Oracle already told they are strongly commited to Java, NetBeans and other famous Sun products, discussions were going on.

Finally a few further commitments have come to public:

IBM joins OpenJDK
http://blogs.sun.com/mr/entry/ibm_to_join_openjdk

Oracle and Apple Announce OpenJDK Project for Mac OS X
http://www.apple.com/pr/library/2010/11/12openjdk.html

This means, that big players decided to go the Java and Open Source path. And it is important to unite the forces. Working together is far better than fighting each other.

When I decided to switch away from my Windows-only-development, one major reason was: There are many other operating systems gaining market share, like several flavors of Linux (Ubuntu, Mint, Redhat, Debian etc) and Apple - and I can't say for sure which ones will be there in the long run, but I want to provide security to my customers, that they can benefit from the software for a long time. - Java was a good choice in the past and now we can again be sure that it still is a good choice. The idea of Java - "write once, run everywhere" - has saved me from a lot of work in the past (compiling for different architectures not required, no building of different styled setup procedures etc). There are people mentioning that the write once, run anywhere phrase is not quite true, because not available for really all operating systems and often there have to be exceptions made for dealing with different operating systems. - Well, this is partly true, when it comes particular features, that might be even not available on all operating systems. Fortunately for such cases Java can be coupled with C(++). For availability: Java is available on more operating systems than most other languages (see http://www.java.com/en/download/manual.jsp).

BTW: C(++) is also a language, that is around and will be around for a long time and I hear nobody complaining that it is developing too slow for example. And I really prefer thinking carefully before putting new features into the language. There must be many things considered. It is important to do no harm to the language.

Oh, there is finally also an official podcast from Oracle for Java developers:
http://blogs.sun.com/javaspotlight/
Of course this is biased and the Javaposse (http://javaposse.com/) is still the first address when it comes to Java podcasts.

We have exact plans for the next versions of Java:
http://blogs.oracle.com/javaone/2010/09/plan_b_wins.html
http://openjdk.java.net/projects/jdk7/features/

And we get exactly what we need next for NetBeans (the first-class Java IDE):
http://netbeans.dzone.com/nb-generate-simpler-rest

Related posts: The dawn after sunset, The programming language, Popular Java myths, Java applications on the desktop, The community.

2010-10-25

User lock down

In many big companies it is quite normal to lock down most features at the desktop that would allow the user to adjust settings and install software. Basically there are strong limitations for the user.

I can understand the reason, why this is done: To reduce security risks and to avoid users accidently change something that they don't know how to change back.

So the overall lock-down is a way to reduce required end-user support.

The other side of the medal is:
  • Every person is different and hence works in a different way. Hence the same configuration can't be the optimum for all users.
  • Depending on the position different additional tools might be interesting for different users boosting their productivity.
  • For the most users it is simply demotivating when they are locked down.
  • Users will find workarounds for many lock-downs (e.g. using http://portableapps.com/ on a memory stick).

Because of the disadvantages I want to point out alternative options:
  • Lock down only where and when necessary.
    Some users - especially the beginners - either prefer a lock down. Those are the users who have some fear in front of a computer to mess something completely up. Other users have detailed know-how on how what operations to avoid and how to prevent themselves from viruses as good as possible. You could introduce a point-system or simply lock down a users PC only when a particular support time per month is exceeded.
  • Set a time limit before pushing default configuration.
    In some companies when a user calls for IT support, there is a maximum time of 15 or 30 minutes to solve the problem - otherwise the user gets a new image (with default configuration). That way it is ensured that your staff does not loose plenty of hours to solve end-user problems.
  • Train the users.
    Train them security and other basics (who to distinguish executable files from data files, where to never confirm approvals in popups, don't running executable attachments from emails, how to properly install and remove software etc etc etc). The user who is aware of the risks cautious and prudent.
  • Migrate to Linux on the desktop.
    Linux is more secure and less prone to break down after several software installations, uninstallations or upgrades. Also backup of local settings is easier. And it is a proven fact that Linux users require less support - even if they are no geeks! Everybody I talk to, who gives Windows and Linux support, tell me that and this is matching my own experience.

Related posts: Your holy machine, Why Linux?, Going Linux, The community.

2010-01-04

New Year's IT resolutions

As far as I read on forums it has been already a lot of times that people told that next year will be the year when Linux breaks through on the desktop. And the first discussions I found about being 2010 being the year of Linux already have been from 2007.

My opinion is: 2010 will not be the year's revolution that Linux will break through on the desktop.

The reason is: Most people do realize now, that many things sucks as they are evolving lately:
  • People need to buy the operating system for new (even if they were completely fine with the old one) when they buy a new PC (because hardware comes along with a OS license already included).
  • People can't reinstall their OS for new because the installation CD somewhere got lost or they notice that there was no CD shipped with their notebook only after the HD crashed.
  • People use more and more "standard software" which costs more and more money.
  • Installation of program B is corrupting installation of program A.
  • Computer getting slower and slower over time.
  • Computer getting unstable over time.
  • People notice that proprietary file formats force them to buy expensive software (upgrades) and that these formats are risky for long time archiving.
  • ...
There is basically one root issue: Vendor Lock-in! - Companies tend toward trying to bind the customer to their products and services.

During the last year I was asked more often than ever if it would be a good idea to switch from Windows to Mac. This is an indicator for me that that people's satisfaction with Windows is somehow fading away. But Apple is not the solution in my point of view. The only real alternative I do see is Linux. Why? Although there are (mostly) companies behind different flavors of Linux (the Linux distributions), the core is everywhere the same and the general philosophy is similar - e.g. to endorse Open Source, open standards and the GPL. With Linux you have the widest freedom and least vendor-lockin.

But why can't be 2010 be the year of success? - It's because of the vendor lock-in a switch usually can't be done easily and quickly. This has to be well planned and there must be a step-by-step implementation!

I started years before my switch to prefer open standards and open source software. So at the final switch I was already familiar with the most new applications, as I used Firefox, Thunderbird, Open Office, VLC, GIMP and many others already under Windows.

For a company that is considering a switch or either is just unsure about the IT future this means:
  • Save data in an open standard format (e.g. EML instead of MSG, ODT or RTF instead of DOC and so on).
  • Prefer to buy and/or use software that is available on different platforms (Open Office instead of Microsoft Office is a big candidate here).
  • When investing in new software development plan a platform independent solution.
These are considerations and policies that prepare you for a change and will bring you more long term safety of your investment (and hence higher ROI). However, all the changes that need to be implemented cannot be done over night!

The journey to the future happens on a road that you don't know yet. Will you rather buy a car that just runs fine on asphalt or one that works fine on a rocky road also? - So is with software. Using the platform independent solution you are better.

Related posts: Going Linux, Cross-platform solutions, Software on speed.

2009-12-20

Going Linux

It now has been more then four months ago that I have decided to completely switch to Linux (not only at home where I use Linux since already about 2006). And it is about three months now that I am running completely Linux (Ubuntu in my case) on my working place. This has been a little more a challenge than just using Linux at home because for work I have several more requirements than "just" doing E-Mail, Web-Surfing, writing some letters, scanning, storing and printing my photos.

One thing is that I need more applications like for Mind Mapping, Taking screenshots (with annotations), creating videos (showing bugs or how to configure particular software pieces), creating virtual machines (for Windows legacy development and testing software on different environments), software development, writing concepts, Investigation of files (diff viewing and hex editing), remote support and more.

A second thing is to integrate with the environment in the office and remote access to customers who use partially VPN and partially other applications like TeamViewer (for which unfortunately no Linux version is available yet).

I started with Ubuntu 9.04 Jaunty Jackalope and upgraded to 9.10 Karmic Koala right after release (so running that for nearly two months now). My notebook is a Dell Latitude E5500.

The installation and first impressions were much better than compared to Windows 7 for example (where already the first use of IE or first software updates were full of annoyances). Further, a lot of important things were already there. However, I am used to be not like a standard user and there have been several things I want to have different from a default installation...

Additional applications:
Many additional applications I wanted to have were just a few clicks away using the synaptic package manager (this is one of the first additional installs I do recommend). This is far more efficient than on Windows where you have to go first to Google and then to the appropriate websites searching for the place to download additional core tools (like a better zip tool). So to get up-and-running with the most important apps is much faster on Linux (or at least on Ubuntu in my case).

And last but not least, your software downloads are done from trusted sources automatically having all packages pgp-signed (a thing that a "normal" Windows user is neither thinking about and installing all kind of stuff from whatever source).

Regarding the applications the biggest issue is to know your options and to choose an application that fits your needs. For many needs there are at least two options (often more). But there are some realms where it is difficult to find either one single program that fits. For example I searched a long time to find a screenshot tool that fits my needs. I need to do a lot of screenshots with annotations for documentation or as part of user support. So a very efficient tool is essential for me. Finally I found Shutter fitting my needs. It was a longer search because it is not in the standard repositories - to get it you need to add an additional repository from Shutter-project.org. - So although many applications are already in the repositories, for some more special applications you might need to add other optional repositories. But once added the repositories, the applications are seamless integrated in your package management (and hence updated along with all other updates).

There is a rest of tools that you might want to manually install and update because you are contributing by testing or you need the really newest stuff. In my case NetBeans is an application, that is currently developed really fast and since I am on Ubuntu I already did the second upgrade - so I am on 6.8 now and the distribution version would be "still" 6.7.1. - For NetBeans I do it because I want to decide separately when to switch to a new version.


Reliability and stability:
I can work now the whole day (8 and many more hours) without noticing the system getting slower and slower. Even Firefox runs faster and more smoothly under Linux (I use quite the same plugin set as under Windows). Some software I do download/install does not run well but this happens usually just when I installed some older not well maintained software that does not seem to be widely used. In such cases uninstallation of software can be done without leaving clutter on your system. So in general I do not fear that my system gets slowly cluttered and broken as time passes. That makes it not a big deal trying out a lot of different applications while looking for a particular feature set.

Even although I already did a major distribution upgrade, I still have the impression of having a clean system. I would never ever upgrade a Windows PC on the other hand and always doing a clean install of the OS. That said, lately I read that many people also recommend doing a clean install for Linux too. I noticed that there has not been a migration to Ext4 in my case so I am still on ext3. Probably I am doing a clean install the next time also. But before doing this I will test how fast I can be then in transferring data, configuration and same set of applications.

Another big advantage is that under Linux there is no fragmentation happening slowly as time passes by - an issue that slows down every Windows PC after a while and one needs to defragment the machine over night (because a long process) from time to time.

But the most important thing is: In general things work or not. So far I did not experience issues as "sometimes it works, sometimes not" and the like.
There is either a bug or you are missing some library (which might not have been correctly added to dependencies). But applications do not interfere with each other in the way that an installation of one thing breaks another (as known from other so-called operating systems) - at least I never faced such an issue.

I had a single exception so far - experiencing an issue recently of the type "sometimes does not work" with my mobile Internet stick where I had to unplug and re-plugin it again sometimes. That happened on Ubuntu 9.04 Jaunty Jackalope. After upgrading it did only work when it was plugged in already when starting up the machine. And this is already the only thing I can really complain regarding reliability: This was/is a problem with some Huawei modems not working any more on Ubuntu 9.10 Karmic Koala - a Linux Kernel problem in general (see bugs #446146 and #449394). For me (for the E160G that shows up in lsusb as E220/E270 - at least in my case) the problem was solved with a firmware update of my Huawei-Modem which I found strange as it was working on Ubuntu 9.04 previously. But anyway, this is a serious problem that should not happen. There are many people for whom the mobile internet connection is the only they have and with braking it they even can't get their updates (and a probable fix for this problem) any more. That said, I have seen Windows machines where the mobile Internet wasn't working either.

But this and some other minor issues I had initially with Karmic Koala have been solved with the second update wave about two weeks after release. Never seen a first service pack on Windows within two weeks after a release!


General architecture:
I do consider the Linux operating system as simple and straightforward. Although there are plenty of modules, services and appropriate configuration files, there are rules of what is saved where and very most configuration files (if not all) is saved in human readable text format.

Also the driver system to me seems to be much better (from the little I do know about it) on Linux - but this might be just my personal impression.

On Linux there is less flexibility in the permission system, but it is clearer. I had so many permission issues on Windows where searching for the missing permissions was a painful work. However, this implies that for some requirements it might be a little more difficult to get the effects you want if you want high sophisticated permissions. There is the "acl" package with its commands getfacl and setfacl to manage enhanced permissions (if the core file permission features are not enough for you).

Linux was just or mostly commandline for a long time but what it means still today is: Everything can be done on the commandline. This means, that integration with the OS can be done by calling system commands - so not necessarily integration of system APIs required.


Hardware compatibility:
This is really the biggest issue. Not all hardware is supported. I tested Linux (different distributions) on machines where I got only a black screen. When you are thinking of moving to Linux then you should take care of buying compatible hardware (gadgets).
Before blaming Linux because of that think a moment: Microsoft is "outsourcing" most driver development to the vendors and Apple has a very reduced set of hardware pieces they need to support (what you get there is more vendor-lock-in). On Linux a big part of the drivers is developed by the community and a smaller set of vendors that have noticed the rising interest of people in Linux.


Software compatibility:
On Linux there is the focus on open standards and open formats. This is a big advantage if you think of long term archiving of your data or long term compatibility of software components. I have files created with applications that I cannot read any more with current software or the newer versions still running on recent Windows versions got too expensive for me. Only thing: There are several multimedia formats with some law glued on them to restrict usage. To make them work on Linux some additional packages must be installed manually for most distributions (Linux Mint, which is Ubuntu based, ships them by default).


Overall conclusion:
I am very happy of my decision and I cannot imagine to switch back.

Using Ubuntu at work is clearly a bigger challenge than just using at home, in particular, if the company infrastructure is not looking at compatibility either. I was lucky because at the company where I am working the used network printers are all HP and HP printers are generally quite supported under Linux - for your company you might be interested in having a look at linuxprinting.org.

The biggest issues that I had was with the different remote desktop support tools in use by our customers. I did not notice before that so many products for remote desktop support do not have a Linux version available. For me one of the most widely used - TeamViewer - didn't either work using Wine although people in forums claimed it should. I found Yuuguu (it's like Skype for screen sharing) being free and available under different operating systems and I use this now as far as possible.

There are a few apps left (like TeamViewer or some internally developed internal apps) that only run (well) on Windows. For those I have installed a VirtualBox running Windows (a license I got from the company).

A very important consideration is: If you would like to switch to Linux as a company or as an advanced Windows user then this is a long-term project. In my case I was keeping an eye onto alternatives to Windows since - let's say - about 2005. When I noticed how quickly Linux improved from release to release (in that time looking mostly at Fedora) I started to prefer applications that are available on Windows AND on Linux when I searched for new applications to fit my IT needs. So when I finally switched most applications I do now use on Linux I already used on Windows for a longer time (like Firefox, Thunderbird, Open Office, VLC, VirtualBox, Freemind, MySQL and so on). For a company that heavily relies on some applications that are chained to Windows an option is always to use one Windows Terminal Server and users do their Windows stuff that way (which is a usual practice for companies switching over). In general a company should favor applications that do work on both platforms because even if still favoring Windows under current conditions, it might be subject to change. So take the sure way and be platform independent.

BTW: The title of this post was borrowed from goinglinux.com - a podcast I can highly recommend for beginners and even more advanced users. I am a subscribed listener and enjoy every episode (only the computer America episodes do contain a lot of interruptions - even if the commercials are stripped - so I skip them often).

Related posts: Why Linux?, Why I switched to Ubuntu, Cross platform solutions, About Dell, The operating system, The Open Source idea, New year's IT resolutions, Software on speed, Ubuntu 10.04 experiences, Small Business Boom, Ubuntu compatible hardware, The Dell Latitude 2110 and Ubuntu 10.04.1, User lock down, The community, Popular Ubuntu desktop myths, Why companies do not use Linux on the desktop, Distribution choice.

2009-11-05

Cross-platform solutions

Recently when searching the internet for platform-independent solutions for particular requirements I got annoyed and angry about what people write on their websites. It seams that they mostly do not understand what cross-platform means.

In many cases software vendors who offer a tool or solution for Windows and Mac find that sufficient to call it a cross-platform thing. My opinion: This is pretty poor for labeling it "cross-platform". If you look at Wikipedia for instance you can see not only Windows and Mac, but also all kind of Linuxes (and there is really a lot - see distrowatch.com) including widely used Ubuntu/Debian, Redhat/Fedora or Solaris or BSD or ... (well we skip DOS, Amiga and the like here ;-) ).

So: Cross-platform is NOT just Windows and Mac! At least the major distributions of Linux should be also included in the list of supported platforms!

I simply cannot consider a software that is just running on Windows and Mac as being cross-platform... - Those vendors should write: "Blablabla - for Windows AND Mac!" instead of "Blablabla - cross-platform solution!".

Related posts: Why Linux?, Why I switched to Ubuntu, Going Linux, New year's IT resolutions.

2009-10-05

Why Linux?

I do not consider it a good way how FSF started bashing Windows with Windows7Sins. Besides the fact that this is bad behavior, they should have asked the people why they keep using Windows.
Here are some arguments, I get told by people who don't want to switch OS:
  1. "I don't want to invest time into learning a new system. Computers are already a big time waster."
    Learning something new is additional effort. Although it might be an investment with a short ROI, it depends how people are using the computer (and how much money they have to pay others for fixing their problems).
  2. "I heard that it is pretty common to experience incompatibilities with the hardware and I am worrying about my foto printer, scanner or mobile device not working with it."
    Yes, this is indeed true. There were made big steps forward in the last years but there are still plenty of gadgets not working well. If you are planning to buy new hardware, you should prefer those items that are known to be working with Linux over others - just for the case you might want to switch in the future. Anyway, with some manual work I was able to get my Canon foto printer and my Canon Scanner to work with Fedora already back in 2006. Nowadays it should work better.
  3. "I do need to share a lot of documents in Word, Photoshop and other proprietary formats with others I collaborate with. I worry about incompatibilities."
    This is indeed another thing to be taken into consideration. In the best case it is just some additional click but in the worst case you can't read or write the needed format any more. Although some Windows applications run fine under Wine (Windows-Emulator), many others do not. Although people should prefer open standards this is not always possible.
  4. "I am a gamer and the most cool games run on Windows."
    Also true, although there are many free games on Linux, vendors produce new games quite only for Windows. Dual boot is an option but means to maintain two systems - and you still pay for the Windows license.
  5. "I have plenty of friends around who can help me when I have troubles with my Windows-Machine, but I have no or very few options for the case I then have problems with the Linux box."
    This is also true for many as there are simply still more people around knowing Windows than knowing Linux. It does not really make sense trying to convince a person worrying about issues that are really there.
I think that most people who switched to Linux switched because of suffering and not because of philosophical or political reasons. - I personally suffered - and so here are my top reasons for switching to Linux:
  1. Stability & Reliability
    I had several key experiences with Windows in a short time frame like these: Machine began with strange behavior being slow and having hangups. Nothing in the event logs and no indicator whether it could be the hard drive, motherboard or "just" a software problem; Burned CDs that were not readable on a different Windows machine (but Linux could); Blue screens on startup turning out to be a problem with the CD drive (hell, I booted from HD so why can't go without the CD drive); files getting corrupted over time silently - I could continue further and not mentioning the plenty of issues I had trying to get reliable (restorable) backups/images of the OS.

    There are also some stability issues on Linux - I already had some sudden restarts of X - but I am simply less in panic mode on linux. In case of emergency, the OS switches to read-only mode to prevent from further corruption. Apart from that: Firefox runs more smoothly and stable on Linux, Memory usage of the complete system is less, ...
  2. All the important stuff is right there after install.
    After installing a Linux desktop distro, you can right away burn CDs and DVDs, write your documents (full open office suite included) and emails and more. With a few clicks you can start developing software, do mind mapping, manage databases, do sound and video editing and much much more. - Without paying a dime!
  3. You are legal without entering a single license key.
    I hate the annoying entering of serial numbers as well as the annoying registration over the internet. I have seen too many people not finding their original CDs any more (even in companies) and I have seen too much problems registering over the internet - even losing the only developer license of a product after setting up a new notebook after the old was rotten - just because vendor saved hardware information.
  4. Software management.
    On Linux there are managed repositories of software. That means basically, that you have a list of available software, can go through it or search and you can install a software by just putting a checkmark in front. Dependencies of files and packages are handled by the package manager. The result is that there is only very few chance to kill your machine with just installing some software. I only had a very few cases where two application were conflicting and that is already a longer time ago. Removing both an reinstalling the one you like more then works.
  5. Intention and business strategy.
    The intention of the makers of Linux is to create a reliable and helpful system that helps you getting things done - at least for me it feals that way. If features are missing then they are not ready yet, they are not missing because of business considerations. This makes a big difference in user experience. PDF is a good example. On Windows there is a huge market around PDF and there is no interest in integrating PDF features in the core OS. - Or on the other hand there are "features" like DRM in the multimedia area that would be better missing. In many cases it seems for me that I have just the "light version" and need to pay more for the final needed productivity improvement. Further business strategy of Microsoft and Apple for example shows that they do not miss a chance to drive the customer into a dependency and try to block out every attempt of communities to improve interoperability. Although Microsoft shows some cooperation, they put big rocks somewhere else. Microsoft did a better job than all the other vendors in the last about 20 years helping to improve productivity on the client. But currently I can only see that they fully exploit their market situation and customers are suffering from that. There are many messages in the news pointing out untrustworthy behavior of Microsoft and even Apple (e.g. Microsoft capturing ISO or common strategy on entering product categories; Apple removing Google voice).
    There is a saying: "Fool me once, shame on you. Fool me twice, shame on me."
However, I can understand people who stick with Windows as Windows has it's advantages - for instance the more options in the Explorer configuration offering many more columns to show in detailed view. The above list of pros and cons is not exhaustive and shows just some general thoughts over particular features. For me personally the Linux ln command for creating symbolic links is a really cool feature. It allows you to link a file or folder to a file/path somewhere else in your file system. This works really seamless (not as the lnk files in Windows). You can use this to link parts of your profile from a completely different location (e.g. external USB drive). But this is just one of the small nice things - as the default support for multiple desktops.

The more I see people litigating about what OS is best (Windows, Linux, Mac or even others), the more I come to the conclusion that those quarrels will not bring a winner - at least not nowadays. I think, everyone should accept, that there are different operating systems and sooner or later we will find ourselves within a multi-OS environment. We should improve interoperability and find ways living together in peace.

Related posts: Windows 7 RC, My application set on Windows, Installing your PC from scratch, Apple worse than Microsoft?, The operating system, The Open Source idea, Why I have chosen Fedora, Why I switched to Ubuntu, Going Linux, Ubuntu 10.04 experiences, Small Business Boom, Ubuntu compatible hardware, User lock down, A few Linux related videos.