Sunday, March 16, 2014

Fedora 20 64bit Mate Review: Sacrificing a Virgin

Prologue

Once upon a time I gifted one of my friends a Fedora 10 LiveCD. Five years went by. I met him on facebook three days back. Asked him about his Linux experience. Got a funny reply:

I had so many problems on linux
finally I solved them all..............
............................................
............................................
.......... I installed Windows.

Any kind of review is intimidating. Reviewing an Open Source Operating System is more so. You need to have enough information and knowledge (the two are different) of OS basics and UX. Goes without saying, the reviewer must have flair for writing - should know how to put it all together. The readers expect some precision, grammatical rules and meaningful/practical information. For the reviewer it means pulling out his/her own intestines. In case of Microsoft Windows and Apple OS X any release is an epic event and any review on them is very much mercurial. But most of the Linux distribution reviews are trash - impractical, ego-laden surface-scratching. Sometimes it seems the reviewers are not qualified for the job, other times it feels the releases are non-event owing to their frequency and buggy character. Also changes between successive releases are not so ground-shaking.

Generally a linux desktop review starts with a nice picture of a desktop-cube effect or a pretty login screenshot. That's it. Then the rundown is predictable - the livecd experience, the looks, the install routine, the responsiveness and the resource usage. Plus personal bias thrown here and there. The reviewers have a different (may be distorted too) world-view. For them, every new feature is shinny. They almost always suggest their readers to update for any tiny change in version number. They are unaware of the vast non-Linux user base who update only when there is a real need, only when something is pressing. I've seen people happily using Windows XP even till date. Often the update to Windows 7 was forced up on them via new devices.

Having said that, I must add Linux desktops don't shun me. Because, perhaps I don't mind "working for" a system, whereas most users "work on" a system. I don't bother random annoyances, whereas 98% of users will flee away. Because I know Linux desktop is ridden with bigger and more serious perennial problems. That's why, in comparison, the random annoyances are kind of non-existent.


Let's start our Fedora 20 Mate Spin review. Shall we?

Touching 2014 CEntOS 6 started showing its age. Partly because I bought a new system, and partly because many of my favorite mainstream proprietary applications either did not work, or did very badly. Then some other applications required the latest glibc. I was damn sure such a critical package will never be pushed as an update. Of course, I was flirting with Debian Wheezy and a few other distributions. Sadly, none could offer that gnome2 "usability:performance" combination. Often, it was a trade off with one or the other. Now that Mate desktop has made way into Fedora official spins, I found it's a worthy candidate. Chances were pretty high that I'll be on the bleeding edge of gnu tool chains, latest kernel, glibc, and of course, the application software. On top of all these, there's Mate desktop.

The Test Machine

A Gigabyte H68 board, G2120 proc, Nvidia GTX graphics, Atheros Lan, Huawei modem, Logitech HD webcam, Samsung DVD RW drive, Western Digital 2TB green hard drive.

The Good

Downloading Fedora 20 64bit Mate spin took an hour. Installation was pretty fast. The freshly booted system looked familiar pre-fedora 14 like. The panels, the icon set, control-center and that ugly gnome effects were all there. Then I pulled in my usual application stack - a media player, a screen recorder, a voice recorder, ffmpeg, an offline dictionary, webcam recorder, disc burner, flash and other popular multimedia plugins. With rpmfusion repo configured, the installation of these apps was breezy. That's a good thing about Linux software management. You've a great package manager, centrally managed repo structure, and a fairly large base of software. Installation and removal of software is almost always clean, unlike Windows that leaves so much residues at places you can't sniff or suspect.

All my devices were recognized and configured well. By default the system was using onboard Intel graphics. That was just perfect for everyday purpose. But later I installed nvidia non-free drivers.

Yum in Fedora 20 is a great improvement over Centos 6 and earlier Fedora releases. It does the best use of delta management, and package cleaning. I am falling for systemd, another definite improvement over the traditional sysv. I am surprised by its speed and parallelization powers. It takes much of the process onto itself and does a great job at it. I'm fan of its masking and unmasking safe manageability.

The Bad

So far, so good. But I was not comfortable with the setup. Something was missing. The system was not as responsive as CEntOS 6. That much touted "Mate Desktop", I'm afraid, needed an alien army of other mates, mostly gnome 3 stuff, to keep working. Taming and managing Mate Desktop was tough. There were Gconf and DConf, metacity and marco, nautilus as well as mate file manager, and some other such redundancies. Especially network manager, network applet, login manager, and some application software needed a weird combination of toolkit packages, windows manager, file manager and some bits and pieces from other desktop environments. Not that coherent, unified and prestine like gnome 2. Mate seemed still in early alpha phases. Perhaps the whole environment is caught between gtk2 and gtk3, and gnome2 - mate -gnome3 package resolutions. Mate roadmap says it's work in progress for full wayland and systemd integration. So, expect Mate to be in transition for rather long.

In the broader sense it shows how the UX is badly affected by the plural culture in things as crucial as toolkits such as qt, gtk, wxWidgets, FLTK, AWT/Swing and Tk. An application may look totally different in the presence or absense of one or more of these stuff, as per the case. Quality of the outer layer of GNU/Linux (DEs, Windows Managers, Toolkits, Login Managers, Icon Set, Themes, etc.) shows that it's developed by unpaid volunteers. Because everyone is busy with the "sexy" features galore; and none gives a flying fuck to the usability, uniformity and cohesiveness.



As a workaround I removed all those alien mates of Mate desktop. The side effect - loss of some necessary applications such as brasero, network manager, lightdm, cheese. The next step in the process was to find the replacements of those applications that don't have any such weird dependencies. I went for gtk-recordmydesktop, audio-recorder, mpv, guvcview, xcdroast, artha, cdm. And I'm happy with what I did. Now I'm using the good old Bluecurve theme with Redhat "start here" startup menu. I curated it by adding some more icons, creating a theme file and customizing metacity window manager. The curation was a must as the new notification system, application menus and toolkits have changed a lot from what they were in good old Redhat days. Finally it's worth it.

The Ugly

I started experiencing some intolerable annoyances. Every time I booted the system my mobile broadband would refuse to connect. I had to plugout and plugin on successive boots, then it would connect. Later I came to know the culprit was systemd 208. After I enabled rawhide repo and updated to systemd 211, that problem was gone.

Among other problems, slow boot, high memory consumption and overall slow performance required immediate fixing. After masking unnecessary systemd units and removing unnecessary mate-session startup applications, the system became very fast and responsive. Fresh booted system consumed some 251mb memory. The average boot time from grub selection (mine is a Windows 7 / Fedora 20 dualboot mode) to fully active mate desktop was ~9 sec. Both the results are amazing. Here's some data.

memory consumption:

free -m

                   total    used    free     shared   buffers  cached
        Mem:  7902   418     7483   27         25         142
-/+ buffers/cache:  251      7651

that means, just 251mb for a 64bit OS with 8gb physical memory, amazing!



boot speed:

systemd-analyze
Startup finished in 2.004s (kernel) + 1.088s (initrd) + 6.190s (userspace) = 9.284s

systemd-analyze blame
          1.682s lightdm.service
          1.608s NetworkManager.service
          1.515s accounts-daemon.service
          1.411s systemd-fsck-root.service
          1.086s polkit.service
           730ms systemd-vconsole-setup.service
           729ms systemd-tmpfiles-setup.service
           716ms systemd-remount-fs.service
           481ms systemd-tmpfiles-setup-dev.service
           408ms udisks2.service
           387ms ModemManager.service
           374ms rtkit-daemon.service
           321ms kmod-static-nodes.service
           254ms systemd-readahead-replay.service
           239ms tmp.mount
           202ms systemd-udev-trigger.service
           152ms systemd-sysctl.service
           118ms systemd-tmpfiles-clean.service
           113ms systemd-readahead-collect.service
            83ms systemd-random-seed.service
            82ms user@1000.service
            73ms systemd-logind.service
            35ms fedora-import-state.service
             4ms systemd-journal-flush.service
             3ms sys-fs-fuse-connections.mount
             3ms sys-kernel-config.mount
             3ms systemd-update-utmp-runlevel.service
             2ms systemd-update-utmp.service
             2ms systemd-udevd.service
             1ms systemd-readahead-done.service
           941us systemd-user-sessions.service

Pleasant Surprises

While updating systemd from rawhide, I had a chance to read the "check-update" data. I could see updates to glibc (2.19.90), mesa (10.1), xorg (1.15) and mate desktop (1.8). Crossed both the fingers and updated these packs. Overall it was a good decision on my part. Full HD movies, and games like Torcs ran very smooth. There was barely any frame drop, if at all.

The problem with open-source graphics on Linux is that the driver stack is not self-contained. The components are scattered in the Linux kernel, DRM library, Mesa, the X.Org DDX and VA-API et al. That means updating to bleeding edge versions can be risky. May be I'm lucky this time around. And it's all playing very nice. DPI scaling, fonts antialiasing and windows shadowing were not that much of a pain. The defaults were good enough.

Current Software Galore

To achieve a pristine just-Mate desktop I had to do much rpm transaction, sometimes nitpicking a few packages from rawhide (Please don't do that!). Right now my install base is touching only 3gb with the following software:

Accessories
  - Artha dictionary
  - Engrampa archive manager
  - Mate calculator
  - Pluma text editor
  - Mate search tool
  - Mate screenshot
  - Caja file manager
  - Mate terminal
  - Bleachbit disk cleaner

Games (All for my son, Piyush)
  - Gcompris
  - Childsplay
  - Trigger (packages from OpenSuse)
  - Torcs race

Graphics
  - Eye of Mate image viewer
  - GIMP
  - ImageMagick

Internet
  - Firefox
  - Pidgin
  - Uget

Office Suite
  - OpenOffice 4.0.1 (I found it more responsive
                                    than Libreoffice 4.2.2)
Multimedia
  - Audio recorder
  - gtk-Recordmydesktop
  - Guvcview webcam utility
  - Ffmpeg + Winff media manipulation pack
  - Xcdroast disc burner
  - Flash and other popular multimedia plugins
  - Mpv media player (It's more refined, fast and
                   hassle-free than VLC and Mplayer)

Conclusion


So, what's the gain after so much pain? Immense. If you value the theory of freedom as proclaimed by GNU/Linux. In real world scenario, you'll also get some benefits in terms of pure computing. For example, on the other OS you can only dream of the scripting capabilities of bash in combination of linux utilities. I was looking for a practical solution to digitize my favorite VCDs gathering dust. Running a nice ffmpeg batch script I could enhance and convert yesteryears classics into modern h264/aac formats that can be readily playable using any standalone device, smart phones or your desktop computer. In init 3, on a dumb terminal, ffmpeg took some 8 hours (in the night) to process more than 20 vcds.

Among others, I am really surprised at the modularity of Linux, here Fedora 20 Mate. A great kernel, full bundle of productivity suite, multimedia suite, internet suite and some nice system utilities were accommodated in a sub-3gb drive space. The system booted in ~9 sec, and the initial memory foot print was just 251mb. The boot time could still be reduced had I installed it on an SSD. And the entire package base (system software and application software), manuals for each bit and piece and a vocal user/developer community are there on your fingertips. On top of it all, you are enjoying a very secure computing. All that for free, if time is not a premium for you. That's a great feat in any stretch of imagination. That you can never achieve on Windows or OSX.

But the point is, how much these so called goodies concern a lay-user who is addicted to commercial gloss on Android, Windows, iOS and OSX, and who never cares about knowing the system internals, or who never buys your libertarian theories? IMO, none. But the bad UX, bad integration and loose pieces are enough to ward them off. Linux developers should know that an average Joe uses applications, not the OS. There's less benefit in showing bones of an Oh-So-Great OS.

Plea

Those who don't agree with me on the "bad integration" of Linux Desktop please have a look at the design of linux graphics and audio stack, see the mess of multiple layers. Then take a fresh look at the incohesive approach to put together the toolkits, desktop environments and notification systems. For proof you may visit various bugzillas (gnome, kernel, xorg, pulseaudio, mesa, kde, the list is endless) and confirm for yourselves about the bugs that should not have occurred at the first place.

How about this