2012-08-07

The truth about hardware support

Since the time I first started using Linux at home I know that one must be careful when choosing hardware to avoid pain when installing Linux.

When people say that Windows supports more hardware than Linux I always confirmed from my own experience.

But: Linux - out-of-the-box supports more hardware than Windows does (out-of-the-box)! Microsoft "outsourced" most hardware support to the vendors and when you buy new hardware with Windows preinstalled, vendors did the job in getting everything to work!

Lately I wanted to help out a new co-worker reinstalling Windows on his work laptop (HP Pavilion g6). There was an extra partition prepared by the vendor which probably contained possible required drivers. However, somehow it was inaccessible so we couldn't get drivers from there. After a clean Windows 7 installation: No WLAN, no sound and no ethernet either! After long search on the net (from another machine of course), my co-worker found the most important download (ethernet driver) on a separate site from HP for businesses (after finally also identifying the exact sub-model of the g6) - more than 100 MB download - for a freakin' ethernet card!

After that I was so frustrated loosing so much time just to get the normal ethernet to work (let alone WLAN and the rest), that I left the rest up to him. Later in the evening he called me about activating Windows and Office and I could not get to the Microsoft action pack site because somehow the login did not work any more.

The next day he arrived at the office with Ubuntu installed on the HP Pavilion g6 - everything worked out-of-the-box - no single extra driver required and of course fully usable (without the need of activating any software)!

But this is not always the case. There are plenty of vendors that do not write drivers for Linux and many even do not publish the specifications so that somebody else could write the driver. If there is an open source driver - or at least a free driver available, Linux already contains it, where on Windows you need to get separate driver setups or CDs from the appropriate box or vendor site.

There are currently software updates running on a Dell Latitude E6530 next to me. As usual, all I need to tell Dell: I need a laptop and I don't pay the Microsoft tax, I will install Ubuntu on it and the hardware must support it. I don't want and don't need to search forums for possible problems, I can rely on Dell shipping fully supported hardware - everything out-of-the-box - also no additional drivers required.

My recommendation: Even if you don't plan yet to use Linux, tell your vendor when buying a new PC or laptop that you want the hardware to be Windows AND Linux compatible. If you plan to use Windows: Hope that you don't need to reinstall yourself grabbing all the required drivers from the internet!

Related posts: Ubuntu compatible hardware, About Dell, The hardware.

2012-06-22

Ubuntu 12.04 LTS Precise Pangolin - Optimized


Preamble:
If you are a recent Linux convert, just new to Linux or only a casual computer user, you don't have to worry: Whatever of the main Linux desktop distributions you are choosing (be it Ubuntu, Zorin OS, Linux Mint, Fedora, ... - whatever flavor of those) to use or try out - you are ok. The following is for power users who want to save clicks and mouse-miles to the absolute minimum required.

This article partly applies also for other distributions that offer compiz.


Introduction:
Since Ubuntu 11.04 which first introduced the new Unity interface for the main desktop instead of Gnome, I was testing many different Linux desktop alternatives because I worried about the future of the Ubuntu desktop. After testing several distributions (see preamble above) and all the main desktop environments including XFCE, LXDE, KDE, Gnome3+AWN, Gnome3+Cairo Dock I came back and settled with Unity on the current Ubuntu 12.04 LTS (Precise Pangolin) production work desktop. I do consider myself as a Linux Desktop power user on a daily basis at home and work and I focus on usability, efficiency and stability. On 10.04 I was experimenting with Gnome 2 plus AWN or Cairo Dock finding a more efficient desktop configuration. Basically I ended up with something similar to Unity. Except: I was doing hard work on configuration ending up with several small but annoying problems (including crashes of particular applets now and then).

Honestly, I find Unity on Ubuntu 12.04 (not so in the versions before) very stable and useful out-of-the box. There are still a few very first actions, but anyway far less post-install-configuration work than everywhere else (not to talk about Windows which is the OS with the most-post-install work ever existed).

First actions after install (applies to debian based distributions such as Ubuntu, Mint or Zorin OS):
  1. Click Settings/Power Icon in the right upper corner, then "System Settings"->"Appearance"->reduce "Launcher icon size" to 32. Default size is just too big to get most icons fully displayed that I need on a daily basis (ok this first one is only for Ubuntu users with Unity).
     
  2. Start Nautilus (Windows/Ubuntu/Super key + 1), move mouse to top of screen (new way to get to the active application's menu) and choose "Edit"->"Preferences" and change "default view" to "List View".
    And in tab "Display" I also change the date format to ISO (yyyy-mm-dd) - you might want to keep the default.
     
  3. Start Firefox and under "View"->"Toolbars" check "Bookmarks Toolbar".
     
  4. On the commandline (open a terminal):
    sudo apt-get install synaptic

    I now, there is a nice app store now - pretty fine for the normal user and even for me if I want to look around for interesting stuff. But I still like to see the original package names, have overview and full control about the repositories and the like. therefore I still like synaptic - in addition to what comes with Ubuntu.
     
  5. On the commandline (if on Ubuntu or other distribution with Desktop environment that offers/works with compiz):
    sudo apt-get install compizconfig-settings-manager compiz-plugins-extra

    That's for configuring my desktop to get the best usability and efficiency.
     
  6. Enable partner repositories:Press ALT+F2 and type synaptic then press Enter.
    In the menu select Settings->Repositories.
    Enable the partner and independent repositories.
    Close the sources dialog and on the synaptic main window click on the reload button (this is the same as the commandline "sudo apt-get update" - without the quotes).
     
  7. Managing passwords:
    It is always recommended to use different passwords on different sites where you register and login. After several registrations nobody can remember all the passwords. Therefore it is helpful to use a password manager. My current favorite is keepass2. It can be installed this way:
    sudo apt-add-repository -y ppa:jtaylor/keepass
    sudo apt-get update
    sudo apt-get install keepass2
     
  8. And then I install a lot of other tools - such as (on the commandline again - this is all one line):
    sudo apt-get install ubuntu-restricted-extras ubuntu-restricted-addons adobe-flashplugin ffmpeg vim cups-pdf gnome-utils thunderbird k3b p7zip-full gufw libdvdcss2 xdotool gthumb vlc shutter gtk-recordmydesktop openjdk-6-jre icedtea-plugin openjdk-7-jre grsync galternatives soundconverter winff asunder ogmrip thoggen k9copy google-talkplugin skype pidgin emesene mc htop traceroute secure-delete pdftk imagemagick rar unrar jhead what-utils ttf-linux-libertine ttf-isabella ttf-dejavu-extra ttf-inconsolata ttf-sil-gentium ttf-junicode ttf-rufscript ttf-radisnoir remmina remmina-plugin-gnome remmina-plugin-xdmcp remmina-plugin-nx freerdp-x11rem chmsee jxplorer mdbtools-gmdb nautilus-filename-repairer smbclient clamav clamav-freshclam clamtk libmotif4 curl network-manager-openconnect-gnome network-manager-openvpn-gnome network-manager-vpnc-gnome openconnect ttf-mscorefonts-installer acroread
    Note: You need to enable a few repositories before:
    #Adding medibuntu (all the next on one line)
    wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && apt-get --quiet update && apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring && apt-get --quiet update

    #For Google-Talk-Plugin (2 lines)
    wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -

    sudo sh -c 'echo "deb http://dl.google.com/linux/talkplugin/deb/ stable main" >> /etc/apt/sources.list.d/google.list'

     
  9. On Ubuntu with Unity? - Then these help:
    sudo apt-get install classicmenu-indicator lo-menubar unsettings myunity indicator-weather
     
  10. For the professional IT guys (continue on the commandline - again all one line):sudo apt-get install gparted dconf-tools gconf-editor gisomount bum vim-gnome gedit-plugins geany geany-plugins scite meld diffutils diffuse diffpdf gitg bless ghex build-essential xmlcopyeditor
     
  11. For the developers or server guys more might be highly relevant (on the commandline one line again):
    sudo apt-get install mysql-server mysql-client mysql-query-browser mysql-gui-tools-common mysql-admin pgadmin3 gsql
     
Enhanced usability:
Now - if you are on Unity or using a desktop environment with compiz - here are the tweaks to maximize usability:
  1. Start ccsm (e.g. Press ALT+F2 and type ccsm and press Enter). This is the compizconfig-settings-manager.
     
  2. Choose "Desktop Wall Plugin" under "Bindings" category and set "Move Left" to "Bottom Edge + Button 1" and "Move Right" to "Bottom Edge + Button 3. - That let you switch the desktop left and right easily with the mouse on the bottom edge.
     
  3. Still in "Desktop Wall Plugin" go to "Edge Flipping" and uncheck "Edge flip move" as well as "Edge Flip DND".
     
  4. Go back to main screen and select "Scale plugin". Go to "Bindings" and set the "Initiate Window picker" to "BottomRight" and/or "TopLeft".
     
  5. Go back and switch to "Application Switcher" plugin. Under "Bindings" choose for "Next Window" the TopEdge+Button 1.
     
  6. Set "Next Window (all Windows)" to "TopEdge+Button3".
Related posts: Locale configuration on Ubuntu, Firefox change default page format, OpenOffice and LibreOffice starts slow, Default paper size in Open Office, Normal.dot in OpenOffice or LibreOffice.

2012-04-15

New user experience

Yesterday I made an experiment which for me is difficult to do: I showed Ubuntu 12.04 to a person (about 70 years old) completely new to computers (only used the mouse to click through a set of photos so far but that's it). I only know a very few people of this type (most already have used computers).

I have seen a lot of funny and interesting behaviour (like hit the key with the pipe character written on it instead of i ;-) - never thought of things like this). Don't want to go into detail - just share the most relevant results in very short:

  1. Big icons are not only for people visually handicapped - also for people who are not familiar with a mouse (or relevant for touchscreens: have big fingers). A quadratic form is easier to click than a rectangular shape (text on websites is rectangular shape and more difficult to click than the Ubuntu Unity launchers for example).
     
  2. Without explanations - whatever Operating System - a complete newbie person cannot learn only on his/her own. There needs to be a person that explains. Not to talk about administration. A newbie with low experience level will never administrate the computer on his/her own. There must be a person with higher experience level helping out and doing this for everyone who just wants to do a few things (or must do). This draws a very important conclusion for me - confirming my belly feeling somehow: The operating system must try to minimize the annoyance for that guy behind everything. The person that needs to help out the core family and a dozen of friends! - That usually are IT people or at least the very technical interested guy/girl. So companies or communities building an operating system need to focus more on the technical person than on the new user! If the guy/girl that needs to administrate, hates the OS he/she will install something else and the user needs to adapt. For the unexercised user efficiency differences of one or the other operating system are irrelevant - not so for the power user or IT guy! So those driving an operating system forward with their experience and with their desires for improving efficiency are the key group - they are the experts others will trust. Who would you rather ask which new car to buy - the flower lady at the corner or the taxi driver?
     
  3. Most websites are far more complicated to use than the base operating system. Navigating those sites is far more hassle. Last but not least because they do not tend to look similar. Imagine, all websites would have a standardized menu so that whataver company site you are at, you find the link to the office hours at the same position.
Related post:  The truth about software.

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 ideaUser 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#.

2012-03-12

Efficient desktop environment

I consider myself as a power user. Every day (and sometimes also nights ;-) ) I make intensive use of computers to get things done. Of course I am not a farmer - I am working in IT business. - However, intensive use of computers is by far not limited to IT people.

Of course, for people spending a major part of their time in front of a computer lousy software has a bigger impact on efficiency. While many people can live with the fact to reinstall their Windows PC every 6 months, I get angry when some of my most often used features take two clicks to much as it could be.

There are two major kinds of computer users: Those who are using one or two applications most of the time and those who use a larger set of applications. To the first group people belong who will respond to the question "Which operating system are you using?" with something like "Word - Microsoft Word". ;-) - While for the first group the underlying OS is of minor relevance, for the latter group of people using a bunch of applications, the underlying operating system can be a critical factor.

I am an Ubuntu user and in the Ubuntu world the last months were full of discussions about the new desktop environment developed by Canonical, namely Unity. Many argued about bad user experience. I myself did play around with a lot of additional components to bump up my desktop. I tested several dock components like Cairo-Dock, AWN and others. Although I finally did not use any of those due to other reasons (stability, performance or simply no time to tweak it to fit my needs perfectly), I had a quite nice configuration with Gnome 2 and AWN on my Ubuntu 10.04 machine. Surprisingly that configuration looked quite similar to Unity.

Many of my peers switched to Linux Mint which is Ubuntu-based but is going for a different strategy regarding desktop look and feel. If you like Ubuntu, but don't like Unity, you can either use "classic" Gnome3 or install Cairo-Dock which then offers an option to go with Classic Gnome + Cairo Dock right on login (at least starting with 12.04 beta 1) and I even managed to create an AWN session with the help of TuxGarage. (The example there is outdated - you need to look at your current ubuntu.session file and take this as a sample or look below in the comments on that post).

However I found - after testing a while - that Unity fits best for me - at least with the least effort to put into getting it efficient. Important from my point of view is that with mouse OR keyboard everything can be reached quickly, that includes: Virtual desktops, Launchers, Open Application Windows, Menus, File system.

Out-of-the-box Unity offers a lot of cool hotkeys, besides ALT+TAB for switching between open applications you can use ALT+^ to switch between open windows/instances of the same application or after ALT+TAB you can collapse and expand application windows with the UP/DOWN keys. Pressing and releasing ALT offers the HUD menu (F10 still brings you to the normal menu). STRG+ALT+LEFT/RIGHT switches between virtual desktops. The only thing I immediately missed was a quick way to switch desktops with the mouse. My former way of configuring this was installing compizconfig-settings-manager and configuring desktop wall accordingly to switch to next and previous desktop doing a right-click on the left or right edge on the screen. That does not work any more when Unity is active on the left. I did not change that to now use left and right mouse button on the bottom edge and that works. In addition to that I reduced the icon size to 32 (can be done using compizconfig Unity plugin, installing MyUnity or also via commandline).

People who don't like Unity have different reasons but one might be the dock-style (which even Windows adopted later). The dock with launcher and window list in combination has one big advantage: The icons are always on the same position - no matter in what order you launch them. This is essential if you open a lot of applications during the day and end up in continously searching your app windows. Although I used to hate window grouping, Unity behaves differently whether you click on a different application launcher or not - which I found reduces necessary clicks.

These and a few other things I missed in all the other desktop environments - like e.g. configuring different times - not just one (I like to see New York or other time zones when clicking on the clock). Although other dock components have a lot more customizing options and features, I find Unity simpler and I found minor bugs in Cairo-Dock and AWN which resulted in my decision that I do not want to bother with finding my own fully customized X-Session and then probably experiencing more troubles. Would have tried longer if I would have found Unity unacceptable. But: After all my tests I still find Unity the best.

I definitely find that the time of a classic task bar (as known from Windows XP, KDE, XFCE or LXDE) is over - mostly because of the unsure icon position in a classical taskbar and the fact that the first thought always needed to be: "Did I already start this or not?" - depending on the answer a different icon had to be clicked. And even on larger screens it is annoying to waste screen space with additional panels (quickstart and windows). My attempts to get a combination of XFCE or LXDE with Cairo-Dock or AWN working well together failed because I either had some crashes, or too many panels remaining. BTW: XFCE comes with a bottom launcher which only is set to autohide by default.

There are still a few things I would like to see in Unity - like easier configuration of the unity launchers or including a classic Gnome menu launcher by default, but I think that Unity is on a good way - I got familiar with it quite fast and so new users will, I think. Of course many people find many things to tweak after a first installation of Ubuntu. I probably will come up with my one set of tweaks after the final Ubuntu 12.04 LTS came out...

Related posts: Popular Ubuntu desktop myths, Why companies do not use Linux on the desktop, Ubuntu 12.04 LTS Precise Pangolin optimized.

2012-02-14

Mobile world with Android

As I already wrote earlier, I was not one of the early adopters when it comes to smart phones. In fact, the first smart phone user in our family was my wife with an iPhone (which I am happy that it has been ditched in the meantime because my wife had some troubles with it from time to time and I could not do anything about them with this mega-locked block).

In the beginning of the year (which is only a few weeks ago) it was time to choose a new mobile work phone. As I already have a smart phone now, I was searching for a very simple phone for doing just calls. Battery duration was the primary "feature" I was looking at when comparing models. Unfortunately I was not able to find something better than the Samsung Galaxy S II which is again a smart phone. It has one of the longest battery times, is slim, lightweight, very low SAR value. And one of the reasons why I again have chosen an Android smart-phone: It is simple to setup - just login to my Google Account and all the contact data is there - automagically.

First I had a few concerns with two phones running against the same Google account, but I find it very fine now. I have setup mail and calendar for both phones and so I can very easily check appointments or emails on the second phone while talking (it often happens that a customer calls me and wants to talk about an email he/she has sent a few minutes ago. Easily now with a second smartphone.

You may not believe, but there are cases, where I go out or going on vacation without my Laptop in the luggage and I might be on places without WLAN access. So happened a few weeks ago when a customer called with an issue which I solved using the great TeamViewer Android application on my phone while having the customer on loudspeakers.

While in train or bus going to work in the morning, I do read news with the Google Reader Android app or listen to podcasts, so if I do not travel for a longer time right now, I don't turn on my laptop any more.

Here is the list of applications I am using on my mobile phone - bold ones are my frequently used apps:

  • Advanced Task Manager (Saves battery power by killing apps that are not in use but otherwise remain started).
  • AlarmDroid (Alarm clock)
  • Apo-App (Austria)
  • BarClone (Get rid of customer/club cards by having the barcodes in your phone and display them instead of using the card - unfortunately a lot of barcode readers in shops are not capable of reading the barcode from the display although other smart phones can read them without problems).
  • Barcode Scanner (zxing)
  • barcoo (Barcode scanner)
  • BatteryTime (Display battery charge level more in detail or as icon on the Android-Desk)
  • BeyondPod (Podcast software - like Google Reader for Podcasts)
  • Bluetooth File Transfer (Phone-to-phone data exchange)
  • Bump (Handshake with other people to exchange contact data)
  • CamScanner (Scan documents with your phone)
  • Citrix Receiver (Remote access to company citrix server)
  • ConnectBot (Remote access to other Linux/SSH servers)
  • Contact Widget (Put Quickdials on your Android-Desk)
  • Dolphin Browser HD (Alternative Web browser)
  • Dropbox (Access to your cloud files - I use it on Android for saving ringtones and small files containing notes or scans/photos done during meetings to get them automatically on my work machine without requiring the use of bluetooth or USB).
  • ES Datei/File Explorer (File Manager)
  • Facebook (if not already there, but I use it less and less because it gets slower and slower with each update)
  • Financisto (Financial expenses tool)
  • Flash Player
  • Flashlight (several available)
  • Genial Writing (Handwriting tool)
  • K-9 Mail (Alternative E-Mail client - I tried several, that is probably the only one where you can configure IMAP folders to use in detail and probably the one with the most options).
  • Money Manager (Financial expenses tool)
  • MultiLing Tastatur/Keyboard (I tried several original keyboards of different phones and always finally downloaded MultiLink keyboard - it's simply the best with the most options.
  • Note Everything (Note taking tool)
  • (Opera Mini - as alternative for Dolphin Browser)
  • (PowerTutor - if you do not already know what consumes the most power
  • and consider appropriate settings)
  • QR Droid
  • QuickMark
  • QuickOffice (View office documents)
  • Reader (Google Reader)
  • RealCalc (Alternative calculator with more features than the usual default ones)
  • Schweizer Taschenmesser (several small tools)
  • Shazam or SoundHound (both are quite equal - record music from where you are and get the name and interpreter of the music title being played.
  • Stoppuhr (Timer)
  • SwiFTP (Access your phone via FTP - must be on the same WLAN-net - use that at home to bulk-download fotos).
  • Tasks To Do Free (Tasklist / todo manager)
  • TeamViewer (Remote Support and meeting tool)
  • TuneIn Radio
  • XING (Xing social networking Android app)
  • YoutTube (Video viewer - mostly already installed by default on Android phones)
  • Zeiterfassung (Timesheet, worktime recording)
Related posts: Mobile phone situation.