Ubuntu and I

Ubuntu and I go way back, starting in 2006. I had built my own PC a couple years before that was running Windows. I decided to finally start using Linux on the desktop full time. I had dabbled with it in college labs but nothing serious. A few years before I had even unsuccessfully attempted to install some Red Hat version from CDs provided in the back of books I got from the library. This time I was wiser and more determined.

The biggest obstacle I remember is getting my PCI WiFi card to work. Using some tutorials and NDISwrapper I got it working flawlessly. Thus began my journey with Ubuntu. If you read older posts on this blog you’ll see how I brought my love for Ubuntu to my workplace. There were a bunch of old unused servers lying in storage. Just about then the network file share device died and I got to add a few hard drives to one of the old servers for the purposes of a network file share. I tried Ubuntu and it installed easily. Just to experiment a bit more I also tried installing Debian and Fedora (even CentOS) but the experience wasn’t as smooth as Ubuntu.

Around the same time I was tasked with building a web-based project. I got the latest Ubuntu release installed in a VM and started developing. I deployed the application on the same version of Ubuntu on another repurposed server. I was on top of the world because Ubuntu was giving me opportunities to get work done.

When my MacBook started showing its age I tried to inject some life into it by installing Linux. Ubuntu was the only distro that worked best with the hardware out of the box. Some things like camera needed some extra work but I didn’t bother because I didn’t need it to work.

We needed a system at work to drive the monitoring screen in our NOC. I found an abandoned desktop with a bad hard drive. Debian wouldn’t install, Fedora balked and Ubuntu installed fine. To my knowledge that desktop with the bad hard drive is still performing 4+ years later.

More recently I have been using Fedora and openSUSE for getting my work done. These distros have improved a lot and even outpace Ubuntu in some areas. But one thing is for sure: I keep recommending Ubuntu to new users to Linux because it’s well-rounded. I also keep coming back to Ubuntu every now and then because it is built for power users, too.

Transform GNOME Shell to behave like Unity

You can make GNOME Shell 3.10 look and behave sort of like Unity (Ubuntu 14.04). It’s not difficult but requires you to gather things from a lot of places. This in turn means you have yo trust a lot of individuals or teams to have done their part well for the whole to function well.

Here’s a checklist of modifications you may need to make and how to do them in openSUSE 13.1.

GNOME Shell Extensions

You’ll want to install these GNOME Shell extensions.

AppKeys – Use Super+number to activate applications.

Alt Tab Workspace – Configure Alt+Tab to work only on the windows in the current desktop.

Dash to Dock – Show the dock you see in the overview screen (when you hit the Super key) on your desktop.

Font

To get fonts working better than they do out of the box in openSUSE you need to install Infinality. You’ll need to log out and log back in for it to start working for you.

You may also want to install the Ubuntu Fonts. I prefer it over other Monospace fonts, although DejaVu Sans Mono is a close second for me.

Terminal

You need to do two things: (1) use Ubuntu Mono font at size 13; (2) use #3D0029 as your background color (it’s dark aubergine).

I use this for my PS1.

PS1='\n\n\u @ \[33[01;32m\]\h\[33[00m\] \[33[01;34m\][\w]\[33[00m\] $ '

Tweak Tool

You should install Tweak Tool. It’ll help you to configure many things in GNOME Shell that you otherwise won’t be able to. I have used it to configure the system-wide fonts thusly.

  • Window Titles – Ubuntu Medium 11
  • Interface – Ubuntu Light 11
  • Documents – Ubuntu Light 11
  • Monospace – Ubuntu Mono 11
  • Hinting – None
  • Antialiasing – Grayscale
  • Scaling Factor – 1.0

Thanks, too, to these resources: Dark Aubergine, Comment on reddit by zman0900, How to quickly configure superb subpixel hinted smooth fonts for openSUSE 12.3.

Using Wireshark in Ubuntu

There are two aspects of using Wireshark in Ubuntu (or Debian for that matter): capturing packets and displaying packets. To display packets or view pcap files you don’t need to run Wireshark as root. You also don’t need to do anything extra other than installing it. However, to capture packets you need root privileges. If you don’t have root privileges or want to capture packets as your regular user then you need a few extra steps.

Install Wireshark: sudo apt-get install wireshark

Configure Wireshark to allow non-root users to capture packets: sudo dpkg-reconfigure wireshark-common

Add your user to the wireshark group to be able to capture packets: sudo usermod -a -G wireshark cguser

Logout and login again to finalize the addition to the group.

Now when you start Wireshark as a regular (non-root) user you’ll be able to capture and display packets.

Note: This was tested working in Ubuntu 14.04 LTS Trusty Tahr.

The Importance of a Pleasurable User Experience

I’ve been thinking of getting myself a Raspberry Pi and configuring it to be my home network wireless gateway. While researching all the hardware pieces to get I thought I should try to decide on a Linux distribution. That quest prompted this post.

I’ve been using Fedora 19 with KDE for a good while now in an ESX VM. It does all the things I need and then some. But beyond that it’s been a pleasure working with it. I love the organized output yum provides. Other features like delta rpms and yum ps are also useful and just nice. I find the systemd user experience to be fantastic. It’s easy and simple to use. SELinux hasn’t bothered me so far. I can’t wrap my head around firewalld just yet but it stays out of my way as well. Fedora’s policy of sticking to upstream defaults means I get a purer upstream experience in an integrated distro. This is not always a good thing because KDE really has cumbersome or missing default settings. But once set up properly, KDE just runs and runs. I am in a Windows environment at work and RDP is just natural to use. Fedora 19 with KDE runs well enough over RDP using the xrdp package. I do get some harmless(?) error messages when first logging in over RDP but my work continues unabated.

With the release of Fedora 20 Beta I decided to give GNOME a try. My first impression is that it has a really good design for the shell, albeit on the minimalist side, and has great keyboard shortcuts. Some default settings don’t make sense to me but exploring gsettings has fixed some of the ones I care about. For the kind of work I do I have found GNOME Shell 3.10 to be an absolute pleasure to work with. It stays out of my way and I can focus on the things that really matter. Unlike all the hoopla about “power users” disliking GNOME Shell’s minimalism I found it to be very refreshing.

Coming back to Raspberry Pi, I’m quite comfortable with Fedora these days. In fact, when I use CentOS 6.4 I miss a lot of the things I’ve gotten used to in Fedora. So my first choice for RPi is Fedora, or Pidora, the spin specially made for it. The downside is that Pidora is tracking Fedora 18 and I want something new. I had hoped Fedora 20 would support RPi out of the box but can’t find any information on it.

My second option for RPi is Raspbian, a spin of Debian. Having gotten used to yum and systemd I find apt-get/aptitude and /etc/init.d to be far less pleasurable to work with. They get the job done equally well but I don’t like using them all that much. It’s just a matter of preference. I tried to dabble with creating deb and rpm packages and my initial take was that rpm is easier to create and manage. I’ll keep Raspbian as a second option for my RPi because I have experience with Debian. But I’d also like the Debian project to focus a bit more on making their tools more “fun” to use. Adopting systemd will be a good first step.

Ubuntu isn’t an option for RPi since they don’t support it just yet. I installed Ubuntu 13.10 in a VM to see how much it has changed since 12.04. I have to say the first thing I did was disable online searches in Dash, remove the Amazon icon from the launcher, and enable workspaces. These three things mean that Unity is no longer the same pleasurable experience it was in 12.04. Having used GNOME Shell 3.10 I missed the HUD but Unity’s “feature” of hiding the menu items became annoying quickly. It wasn’t so when I used 12.04 but KDE and GNOME Shell have made me realize you don’t really need to hide menu items even if you have HUD.

Ubuntu also has the issue of Upstart. It’s great to be able to use start/stop commands but not all services recognize them. I have to use start/stop, /etc/init.d, or service to start or stop my services. There’s no single method to do so. Enabling and disabling services is also cumbersome. I also dislike the policy of starting services right after installing or upgrading. Given these issues I find Ubuntu to not be a pleasurable experience anymore.

openSUSE 13.1 released today and it has some great things going for it. I haven’t tried it out but it’s because of one main thing: YaST. At the core of my being I find YaST to be a redundant tool for a lot of things, especially networking, firewall, and package management. I’d be very happy to skip YaST and just use CLI tools to manage most core things. I find those tools to provide a better experience than YaST’s CLI. I asked Jos Poortvliet, openSUSE’s community manager, on Twitter whether YaST was necessary and he said it wasn’t. I’ll take his word and try out openSUSE again, especially since they have a special build for RPi. I’ll revise my stance and make openSUSE my first choice for RPi. Maybe YaST will be helpful in creating my wireless gateway.

I also tried out Arch for the first time. It took me about 3-4 hours to make a customized list of steps to do a UEFI install as well as a BIOS install in a VM. I can say with all honesty that it wasn’t hard to install Arch at all since the wiki is so helpful. The wiki could be better but it’s still very useful. I thought that Arch’s simplicity and DIY nature would be a perfect fit for my RPi. I can install only the things I need and nothing more. I was excited.

And as I configured my VM further I realized I really have to do everything myself. Even the useradd command needs all the flags, compared to Fedora where you just provide the username. This brought me to my first crossroads: do I really want to create my own distro (so to speak) or have fun with setting up a wireless gateway? I think I’ll choose the latter. I want a distro to work out of the box which I can then use to do things other than creat emy own version of a Linux distro. Arch is a pleasure to use if you want to learn Linux but a burden if you want to use Linux to build something. I also feel like I want to go beyond re-inventing the wheel every time I do a new install, instead I want to build on top of the thousands of hours volunteers have spent building a solid distro, be it Fedora, openSUSE, Ubuntu, Debian, or whatever. I want to build a solution not a distro. I’ll still keep Arch as a candidate for my RPi because its simplicity is a very compelling factor.

So there you have it. I have tried to describe a pleasurable user experience by intertwining reviews of different distros with my needs for a wireless gateway using RPi. I find Fedora to be the most pleasurable distro today. It represents the hard work of a lot of upstream contributors in a package that’s friendly. It may not be the distro for new users but if I’m setting up a system for someone new to Linux, and I had to provide support for it, I’d use Fedora. For my RPi I’ll use openSUSE, Pidora, Raspbian, and Arch in that order. I’ll stop when I find the most pleasurable distro for that use case.

The sorry state of services in Ubuntu

Read the post How do I choose which way to enable/disable, start/stop, or check the status of a service?. Compare that with systemctl enable/disable/start/stop/status service and tell me, for a user, which is easier?

Yes, with juju charms individual services don’t matter as much. But some of us are not running clouds. We still use a handful of computers, physical and virtual. I would rather let my computer handle services for me. I’d rather not sit there trying to determine which command to use to perform a simple function.

Ubuntu has invested a lot in Upstart and has every right to stick with it. But is it too much to ask for Canonical/Ubuntu to move all services to Upstart? That way at least we don’t have SysV and Upstart running alongside each other and causing this mess. Even Fedora hasn’t moved a lot of services, especially xinetd-based, to systemd but they are still much farther along in a couple years than Ubuntu has been so far. Where’s the inclination of the Ubuntu community and Canonical to not leave things half done?

If Upstart is the future then be done with the migration so you can move on to some other aspect of the system. Add the simple features we all need. So far it appears Ubuntu and Canonical start something innovative and then leave it unfinished to chase something else. They need to fix this culture so that technical users can use a great distribution with fewer headaches.

Good Luck, Ubuntu

I have been a huge fan, supporter, and promoter of Ubuntu since about 2006. All the things that attracted me initially were: gratis, free/libre, community, just one CD to install. As I used it more I liked the technical merits as well, things such as timely releases, hardware support, server version, application availability, and LTS. I used it at home and work whenever I could. But things were not always perfect. Things popped up here and there that made Canonical’s direction for Ubuntu more important than the community’s. Things such as CLA, proprietary Landscape, Launchpad, bzr, Unity (initial releases; I love it now), Upstart, Amazon-in-Dash, etc. There was a visible Not Invented Here (NIH) syndrome in Ubuntu, which was good to some extent but then became overwhelmingly powerful. In an effort to control all the things they cared about, Canonical started deviating from the wider Linux ecosystem.

Upstart was a great idea and executed well enough that it was included in other distributions. But then Red Hat’s NIH kicked in and they created an alternative, systemd, and convinced other distributions to adopt it. Debian and Ubuntu are the standouts in not having embraced systemd yet. I have used systemd and as a user I loved it. It makes it easier to manage my services without getting in my way. I don’t know how I would like it in a sysadmin role but I don’t think it’ll be awful. So now if the wider Linux community accepts systemd then why ignore it?

Traditions are important but innovation and change are even more important. Canonical is driving that change in Ubuntu, especially with Mir. But it’s such as ill-advised change. When Wayland has been the community darling for a while, and Ubuntu kept saying they would replace X with it, why go the Mir route? Control; that’s what Canonical wants. It’ll allow them to compete with Google and Apple and make free software available to everyone in every form factor. Canonical is essentially changing its target audience from everyone (users, software developers, sysadmins, enterprises, etc.) to some (users, carriers, hardware manufacturers, enterprises, application developers, etc.). They don’t want Ubuntu developers anymore, they want developers building “apps” for Ubuntu. Which is fine if that’s their goal but they should realize that a lot of their original community members will leave as they don’t fit in anymore. But with Mir the real fear is that a lot of good work done recently with open source graphics drivers will be outdone by manufacturers targeting Mir to the detriment of the rest of the Linux world.

If all the secrecy around Ubuntu phone, Mir, QT-based Unity, etc. was because Canonical feared competition would take their ideas and build products faster than they could, they have missed the bazaar of free software where ideas are presented, discussed, and developed in collaboration for the benefit of all. So what if someone else takes your idea and builds a proprietary product? Our (your) goal is to create a free software product.

Unless you have the financial resources of Apple, Google, and Microsoft you can’t build an OS end-to-end on your own. You need a volunteer community to do that. Red Hat and SUSE understand that and try to build better community relations. Yes, they are not perfect and can be heavy handed when their goals are at stake but they haven’t discarded the community like Canonical has. If what Elizabeth Krumbach says has any weight in it (and I would agree it does), then the Ubuntu community will be less involved (if any) with code development as time goes by, and will be relegated to QA, documentation, support, etc. So the community will support whatever the Canonical cathedral code-dumps on the world without any input on the direction of the code.

Of course, Canonical and Shuttleworth have spent a lot of time, energy, and money to make Ubuntu what it is today. They do need to make money to continue Ubuntu. But at what cost? Is world dominance (with free software) a worthier goal than free software? Is free software meant to be dumped on users in “tada” moments? Free software performs two functions: gives rights to users as well as promotes collaboration. If Canonical doesn’t want collaboration on Ubuntu from a wider community then it’s their eventual loss. They’ll be hard pressed to continue their growth without a significant contribution from a diverse community. Red Hat is now a billion-dollar company but it also can’t create a complete OS and all its other offerings on its own. You need to be the size of Google and Apple to pull that off. Given this situation, can Canonical afford to disenfranchise its most ardent supporters?

Many like me will move away to other distributions. Debian is the obvious choice. But I would like people to give Fedora a chance as well. It’s not as easy as Ubuntu or stable as Debian but it strikes a good balance between innovation and breaking things. Once you get used to Fedora’s quirks and cadence you’ll find a truly free OS that makes community an essential part of its existence. Meanwhile, I wish Ubuntu good luck in Canonical’s endeavors. I hope by Ubuntu 14.04 we’ll see Canonical reach its goals and prove us all wrong.

Edit:

Do I care about the end product or the process of creating the product? If you’re a free software enthusiast you’ll most likely want to be involved in the process, from beginning to end. Yes, the end product is important but so is the process. And you can’t build a product if you don’t have enthusiasts willing to step in and do the hard work. Well, you can, but you’ll need huge financial resources to do so. Does Canonical have the money and willingness to take Ubuntu forward on its own?

Reaction to Ubuntu Phone Announcement

My first reaction is a very positive one. I welcome a new perspective to the mobile market. It’s a cool concept to have the same underlying OS on your phone, desktop, and server. The actual product is about a year from being in consumer hands. But the announcement now means that developers can create apps, handset manufacturers can build phones, carriers can make deals to bring them on their networks, etc. It’s good to have this discussion going.

I’m disappointed with all the negativity on reddit surrounding the announcement. Yes, the project’s not done yet. It’s not ready to ship. It might not be successful. It may not get enough compelling apps. Why be negative? It’s a new year, a new product, a new beginning. Let’s voice our support now. If it fails, it fails, and we can move on to another project. But let’s give this an honest effort and aim for success.

Ubuntu Phone, I’ll vocally support your development starting today. I may not be able to contribute apps but I may buy you when you’re released.