Celebrating 20 Years of Using Linux & Switching to Devuan

Bloody hell, Murdoch!” has it really been that long? Well, the date on the the purple CD below confirms it…

Testing Devuan ASCII as a replacement for Mint 17.3. With a visit from the first Linux Distro CD I ever used!


Where does the time go, eh?!

For the past few days I have been running my desktop off of one the cute little 80GB Toshiba 5400RPM laptop drives that came inside one of the Dell Inspiron 1501 laptops we bought back in 2007. It was what I had on hand in SATA format and quite surprisingly, it’s actually not that bad – Devuan 2.0 boots faster on it than Slackware 14.2 did off my older SSD. Silly Slackware lol… Anyhow, after accidentally deleting the wrong partition or drive more than a couple of times over the years, I am playing it safe with my change of distros this time. Dotting the i’s, testing the drivers, software, and so on, before diving into the format/reinstall of my Linux SSD.

Having used and liked PCLinuxOS for a year or so a few years back, I gave an XFCE spin of it a whirl and was happy to see that the AMD drivers finally worked for my GCN 1.0 / Pitcarin based R9 270. However, the garbage that is PulseAudio was still there crapping up the system, screwing up recordings using Audacity, so I decided to move onto Devuan in my 20 year anniversary “distro hopping”.

Devuan = (Debian – SystemD) * DarkPurpy Goodness

Turns out, Devuan XFCE installs PulseAudio too and indeed it had the exact same issues as PCLinuxOS (binary signal drops and noise every 0.64 seconds while recording from my TV tuner RCA inputs and other PA related crap…), so out it and it’s stupid problems went! Ah, the sweet relief of GNU/Linux un-stupefied… As with any “plain Debian” installation, many things require manual configuration as compared to Mint, but that’s fine. With Devuan I don’t mind, because I’ll only need to do it once and forget about it until security updates cease in 2023, much as I have done with Mint 17.3, whose security updates will cease early next year.

I have very much enjoyed using Mint 17.3 XFCE! In fact, were it not for the need to keep up to date with security patches, I would be content to keep using it on my desktop until the hardware plumb stops working. With GNU/Linux, this system feels like a super computer and really, for the few games I play in Windows, it’s perfectly fine. So switching from the old software packages in the Ubuntu 14 repo that I enjoy using to slightly newer versions of those software packages in Debian 9 repos, is great. “Change for the sake of change” isn’t my thing.

Stability + Simplicity + Familiarity = Efficiency = Happiness

That’s what GNU/Linux means to me.

It wasn’t always that way, especially in the years between when I discovered Linux and when I started using Libranet Linux (a Debian based distro from North Vancouver, Canada). Prior to those days, the primary function Linux (and the BSDs) served in my life was to gobble up my Interwebs, blank CD/DVDs, and “free time”, while I installed and configured like, twelve bazillion distros. I liked to use the desktop for many things over doing those same thing in Windows, but given my habit of playing Windows based games, I was often too lazy to reboot just to browse the web with Opera in Linux. I could, after all, just browse the internet using Opera for Windows. Anyway, it wasn’t until about Ubuntu 8.04 that GNU/Linux really displaced Windows as my primary operating system. By then drivers and software had finally gotten to the point where everything I wanted to do (other than play Windows based games) actually worked properly. Before then… ggrrr there always something that pissed me off when I ran Linux. Still is when I use Slackware! lol…

All picking on Slackware aside, I really do owe a hell of a lot of “good times” in my life to Patrick and the Slackware gang. Being the second distro I used after trying RedHat on that purple CD (which I bought in a real brick and mortar store back in 1998 folks!), Slackware taught me how to install, configure, and use GNU/Linux in a way that was both fun and useful. I remember using Basic Linux, a floppy disk disto based on Slackware 7, to turn my 486 Compaq LTE/25 into a cool “electric paper machine” that I used to write on. I remember loving the KDE 3.5 desktop that I used with some version of Slackware for a year or so… I loved Slackware up until I got married, had kids, and decided that I wanted to spend more time using the system rather than dicking around with the system. Hence my use of Ubuntu and later Mint, with some Debian 7 and PCLinuxOS sprinkled in there for stability and delicious flavors. Anyway, as much as I do enjoy going “full nerd” with Slackware, at this point in my life Slackware requires more effort to build than I want to put into it. C’est live, n’es pas!

Moving on… Thus far the only issues I have found using Devuan 2.0.0 ASCII are…

  • MTP from my Galaxy S8 is slow as hell and required adding Caja (the MATE file manager) to XFCE to magically kick FUSE into action (works in Thunar now too, even though it didn’t add any MTP related deps…).
  • Mozilla are still jerks. Thanks, I’d rather use Chrome + ALSA than Firefox + PulseAudio.
  • RocketTux gets some funky screen tearing in the top row of tiles, even with compositing enabled. At least it’s not all web pages – screen tearing is a HUGE part of why I won’t use the open source AMD/Ati video drivers.

That’s all I have noticed so far in my pre-switch testing. I hesitate to call this switch away from Mint 17.3 an “upgrade”, because there just isn’t anything I feel I need to “upgrade” to. As far as desktop computing goes, Mint 17.3 XFCE (and the amazing world of GNU software!!) really nailed it. Devuan 2 with XFCE simply carries on hammering it home.

So, thank you – Thank you to everyone who has and who continues to give their time, their effort, their mind, to GNU/Linux.

Developing for ChromeOS/Android using a Chromebook

… is not something that is supported by Google, go figure. Heck, neither is using git, which is a bummer indeed!

That said, there are ways one can use their Chromebook hardware to set up a development environment and work flow, by way of installing a Linux distribution or by using “cloud based” development environments. However, neither of those solutions are ideal, nor are they particularly desirable due to their poor work flow compared to simply using a full Windows, Mac, or Linux desktop or laptop for developing Android or ChromeOS programs.

Chrome Dev Editor (By Google)
Google is famous for abandoning projects and unfortunately, much like the web-based App Inventor for Android that came before it, the native ChromeOS IDE (integrated development environment) for Chrome apps is one of those abandoned projects. While it does still work, there are major issues with its user interface that have not been fixed that can prevent it from functioning. Furthermore, it is still a “beta version” (last updated in March 2016) as well as being a hidden item on the Chrome App Store. Finally, this IDE is only capable of creating non-compiled Javascript and Dart based Chrome apps and extensions – Google doesn’t have any Chromebook based support for creating Android apps at all.

With Chromebooks having such a heavy focus on education, Google has dropped the ball by failing to provide a comprehensive, fully functional, and well documented development environment for ChromeOS and Android on Chromebooks. Yes, the hardware comes with a “Developer Mode”, but there are so many problems with using it, such as it being completely locked out on all Chromebooks that are managed by schools, that its existence should not even be a consideration. Even a guy like me who has been using Linux since 1998 and who is quite capable of using Linux on his Chromebook, doesn’t want to use the hack that is “Developer Mode”.

“Developer Mode”: That thing for Chromebooks that your kid can completely erase by opening your Chromebook and pressing the SPACEBAR when he’s prompted to…

Third Party Solutions
The following is a list of native ChromeOS apps, Android apps, and web based products that can be used to create programs (such as tools, games, and editors) for ChromeOS and Android. As a person who has been developing games and game mods using a Linux and Windows desktop for several years, I am going to go ahead and say that all of the following software and workflows are less efficient and more troublesome than simply using the Android Studio and your supporting asset creation software (Blender, GIMP, Audacity, etc.) in Linux or Windows.

If ChromeOS had a native version of Android Studio, the workflow on a Chromebook would be tolerable (when using a USB mouse – develop not with a trackpad, for thou dost not deserve such torture!).

ChromeOS Programming Apps
Caret – Programming oriented text editor
Drive Notepad – Programming oriented text editor
Secure Shell – Use the command line of another computer on your network

Android Programming Apps
Note: Android apps are not supported on all Chromebooks, even when using the beta OS releases (mine included).
There aren’t any, but you can read about how Android apps are developed on desktop and laptop PCs here, here, and here.

Cloud Based Programming
These are subscription based services
Cloud 9 – C++/Python/Ruby/JavaScript
CodeAnywhere – C++/Python/Ruby/JavaScript

Asset Creation
List of Image Creation Tools (Reddit)
Sound: AudioSauna, Audiotool, Beatlab, SoundCloud, SoundTrap, Twisted Wave
3D Modeling: Openshape is the only tool, which happens to be a cloud based web app. Read this if you want to know how well it performs on the standard educational Chromebook.

While one can develop programs for Chromebooks on a Chromebook, in my personal experience with RocketTux, doing so is a lesson in frustration and disappointment for anyone who has access to even a crappy dual core laptop from 2006 that can run a full Linux distribution. The problem is not the specs of the machines, rather it’s the lack of proper software and the abysmal user experience and work flow of the available software that sullies the concept. The good part here is that this is something Google could fix 100% by simply throwing some talented employees at it, but the bad part is… Google probably won’t fix it, because I just don’t think they see it as a problem.

Ideally, Google should have an “Android Studio for Chromebooks” that would be a native ChromeOS app that did everything locally on the hardware (a boon to work flow), with the option to seamlessly compile C/C++ binaries using one of Google’s super computer servers. This tool should be well documented and completely open, such that students can easily use it to learn relevant programming languages, develop good programming habits, and create amazing new software, even on the Chromebooks that belong to their school.

“Android Studio for Chromebooks” would complete the “bigger picture” of Chromebooks, by allowing Chromebook users to create any piece of software they may want to use right there on the Chromebook itself! It’s a crying shame that one still needs a Mac, Windows, or Linux PC to get the job done.

Linux Can Look Like Anything!

My current PCLinuxOS desktop, looking sort of like Mac OS X.

My current PCLinuxOS desktop, looking sort of like Mac OS X.

One of the things I really love about using Linux is that I can customize every part of its appearance and interface functionality. One of the disappointing things about Windows 10 is that it’s ugly as hell, yet Microsoft didn’t even bother to add in the looks of previous Windows versions in the customization options. In Windows 10, people need to either buy third party UI themes or “hack” Windows to allow for homemade themes. By contrast, in Linux people can just download thousands of themes or make their own whenever they’d like.

I am using the Mate Desktop Environment, which is based on Gnome 2 and quite similar to XFCE when it comes to visual themes. There are many other Desktop Environments and Window Managers for Linux, such as KDE, Gnome 3, Unity, Fluxbox, and Enlightenment.

My personal preference of navigation is to have a full toolbar on the top of the screen. I don’t really use the desktop icons and I am not into the Mac OS style bottom toolbar, though something functionally identical is available for Linux. Here is a list of what I am using:

OS: PCLinuxOS 64Bit
Desktop: Mate
Theme: MacOS-X Aqua, by DannyWu
Icons: OSX Icon Theme by N00b-un-2
Web Browser: Mozilla Firefox with Classic Theme Restorer, by Aris

Things on my toolbar, from left to right:

  • Menu Bar – Three menus of links to programs, files/folders, and “control panel” stuff.
  • Quick Icons – File Explorer, Terminal, Firefox.
  • Window List – Open windows, similar to the Taskbar in Windows.
  • System Tray – Notifications, volume, etc.
  • Window Pager – Choose desktops and drag/drop windows between desktops (I LOVE THIS TOOL!).
  • Clock – Complete with calendar when you click it.
  • Show Desktop – Quick toggle to close or open all windows on a desktop.

This is just a quick look at one of the many ways one can personalize their computer when using a GNU/Linux based operating system. Enjoy!

With Cairo-Dock, using a Mac-like theme. So many options and themes for this amazing piece of software!

With Cairo-Dock, using a Mac-like theme. So many options and themes for this amazing piece of software!

Macbook? Chromebook? Notebook? What’s best for me?

If you’re anything like me, you’re sitting there reading this on a 2007 era notebook running a dual boot of Windows Vista and a Linux distro of some kind. Maybe the hinge is loose, perhaps you’ve already upgraded the CPU and RAM, and I am willing to bet that the battery in your old notebook is as dead as the battery is in mine. So what do we do? It’s not like the old beast isn’t sufficient for browsing web, watching a video, and other notebook type tasks, but it sure would be nice to get back to having a truly portable computer, wouldn’t it?

In my case, I could pick up a replacement battery for my Dell Inspiron 1501 for around $40 or so, but the reality is that even when it was brand new and running only a single core processor, the battery life was terrible. $40 isn’t the end of the world and the o’l beast still works, so that’s a good way to go, right? Well… not really, no. Here’s why:

Issues with my old notebook:

  • It produces an uncomfortable amount of heat on the keyboard.
  • Battery life is poor.
  • The screen hinge is loose.
  • The ATi video adapter is no longer supported by the AMD drivers for Linux.
  • It’s heavy.

I actually really like this old “laptop”, mostly because it’s comfortable to type on and has proven to be easy to disassemble and work on. However, it’s 15″ screen on that loose hinge combined with the heat and necessity of being plugged in (all the time and frequently even with a new battery) make it less than enjoyable to use. So in a practical sense, it’s time to replace it. But… what should I replace it with?

Let’s get this out of the way upfront. There are only two reasons why I am not getting a 13″ MacBook Air:

1. It’s too expensive.
2. I couldn’t afford to replace it if got broken.

If those are not considerations for you, then by all means, buy a MacBook! They have a strong chassis, good battery, and good cpu/gpu. Even if you’re not an iPhone or iPad user, the Apple ecosystem is pretty nifty and given that MacBooks are built with standard PC hardware these days, one can still install Windows and Linux on them. When money is not an issue, it’s hard to turn one’s nose up at a solid chassis, nice screen, excellent battery, x86 cpu, and a polished *nix type operating system.

Moving on… there are plenty of affordable 15″ notebooks running Windows 10 these days, but finding the magic mixture of solid chassis, good keyboard, acceptable CPU / RAM / Video / Hard Drive, good battery life, and reasonable screen is a tougher than one would think. Compounding those issues, chassis quality and keyboard feel are, understandably, impossible to judge when shopping online. Issues one does not encounter when shopping for a MacBook! 🙂

Form my poking around, prices for Windows notebooks seem to range from $300 to $3,500, which should mean that there’s something in there for everyone. Indeed, HP, Dell, Lenovo, and Toshiba all offer notebooks in chassis that compete with the quality of the MacBook for similar price points and there are plenty of offerings in the low, mid, and insane price ranges as well.

When it comes to my portable computing needs, the performance of my current 1.8GHz AMD Turion64x2 with 3GB of DDR2 RAM is fine in Windows Vista (32Bit Home Basic) and Debian 8 (64Bit Linux). That being the case, the new “low power” CPUs from Intel, AMD, and various ARM-based manufacturers are attractive, because their performance is on par with my 2007 era dual core CPU, yet they are an order of magnitude more energy efficient. Power saving on a desktop isn’t a super compelling talking point, but in the portable space, the difference can mean 10 hours of use rather than only 2 hours! Not only that, but the low power processors end up achieving their longer up time while using batteries that are smaller and lighter than notebooks powered by traditional mobile CPUs. Given that the entire point of using a notebook is for it to be a portable, if not mobile, experience, then moving to something that is “good enough” while also having 10+ hours of portable up time is kind of a no brainer!

Maximizing one’s value for the dollar while purchasing a notebook with a low power CPU is a challenge! Spend too much and you may as well buy a notebook with a full mobile CPU/APU that will give you enough performance to play games, edit videos, and compile software in a timely manner. You can always buy an additional battery, right? But how much is “too much” to spend on a notebook with a low power CPU? See, even that question tough to answer, now that we have convertible devices!

Here in 2015 we can buy a Microsoft Surface Tablet or an Asus Transformer (examples off the top of my head) that have low power ARM or x86 processors for tablets, yet they come with a keyboard sufficient enough to allow them to fit the role of a traditional notebook. However, such devices tend to come at premium price that conflicts with the raw performance one can get for the same price in a traditional notebook. Do you want to use your notebook as a tablet? Do you mind paying a premium for such a feature? Personally, I am not interested, but I think it is a valid consideration for many people, particularly those who are buying their first non-smartphone computing device. In theory, for folks who are primarily content consumers, creating little more themselves than documents and the occasional image, convertible tablets are certainly more convenient than desktops and definitely handy in terms of managing one’s data (it’s always on a device that can be used anywhere). This device paradigm may well be worth the price premium for some (if not most!) notebook users. Microsoft sure has put a lot eggs in this basket, if that means anything to ya!

Setting aside convertibles and notebooks with traditional CPUs and limiting the price range to what makes sense to spend on a CPU that is just “good enough”, puts us into Chromebook and low-end Windows 10 notebook territory. But what does that mean?

Hardware wise, when it comes to the standard Chromebook or low-end Windows 10, here’s what you’re likely to get for your $250 (give or take $50):

CPU: 2.16GHz Intel Celeron N2830 or 1.8GHz Quad Core Cortex-A17 ARM
RAM: 2GB DDR
Storage: 16GB or 32GB Solid State Drive
Screen: 11.6″ 1366×768 resolution of modest quality
Keyboard: Standard notebook size and design
Chassis: Quality varies, but most are sturdy.
Battery Life: 6 – 12 hours, depending on CPU, battery size, and operating system.

Honestly, that modest setup is fine for browsing the web, watching videos, writing, and most general desktop/notebook tasks. And if you use online storage or an SD card or USB stick, the small and speedy solid state drives are a boon rather than a problem. I guess the downside comes along when you buy one of these low end Windows 10 notebooks and try to use it for software that it’s just not designed for, such as video editing and big games. Would it be better to have a notebook that could do more? No, not if you’re not actually going to do any of those things with it!

So it turns out that biggest considerations are ChromeOS vs. Windows 10 and chassis quality.

Most of the world is already familiar with Windows in general, but what is this ChromeOS thing all about? Well, to put it simply, ChromeOS is a heavily customized Linux based environment created by Google that is centered around their Chrome web browser. The browser handles most of the tasks one needs, but there are other “apps” one can download and use off-line as well. So… ChromeOS isn’t Windows, but it’s not trying to be and… that’s OK!

Another interesting aspect of ChromeOS is that (when it is set to developer mode) one can use a script called Crouton to install a fully functional Linux desktop environment, such as XFCE, that one can toggle to and from at any time with a simple key combo! This is made possible due to the use of a full Linux environment that is essentially the same as any other Linux installation (unlike Android, which is a Java runtime environment running on top of the Linux kernel). This means that stuff like the full LibreOffice suit, GIMP, and various other open source software can run on a Chromebook without much fuss. This solution isn’t without its drawbacks, but I have to say that it’s actually a really elegant solution that is a step ahead of the standard dual boot setup.

Speaking of dual booting operating systems, it can be done on most Windows 10 and ChromeOS devices, but ALWAYS, ALWAYS, ALWAYS do your research on a device before making a purchase, because BIOS/Firmware for computers is not standardized and some products may actively prevent the user from dual booting. A Chromebook will usually allow you to dual boot when developer mode is enabled and a Windows 10 notebook may or may not let you dual boot operating systems. Keep in mind that storage space is at a premium and a dual boot on a Chromebook may require using a USB drive or SD card.

From what I have read, on the same type of hardware there isn’t much difference in battery life between Windows 10 and ChromeOS. Battery life is a little better in both operating systems on ARM based hardware rather than Intel or AMD x86 based hardware, but it’s no longer a huge deal thanks to the low power x86 CPUs. So with that in mind, I feel that the choice between a Windows or a ChromeOS device really boils down to personal preference based on these factors:

  • Do I need software that only runs in Windows?
  • Do I need software that requires an x86 processor? (Intel, AMD, VIA)
  • Do I mind the fuss of dual booting, etc?
  • Does the hardware meet my needs? (Screen, keyboard, ports, connectivity)

In my case, as a long time Linux enthusiast, I actually very much appreciate the setup of ChromeOS running a Crouton-installed Linux Desktop Environment. This is my kind of geekery! For many years I have dual booted Windows and Linux and if I have learned anything it’s that even if rebooting only takes a few seconds, it’s often too much of a pain in the arse to bother with. For instance, I wrote this in Windows Vista, because that’s what I booted up to use a particular program. Normally I would use Debian on this machine, but for managing the blog it really doesn’t matter what OS I use and I couldn’t be arsed to reboot.

Anyhow, another feather in Chomebook’s cap for me is its price. Without endorsing any particular brand or retailer, suffice it to say that I can pick up a new Intel based Chromebook with above average specs for about $100 less than a low end Windows 10 notebook with average specs. For a Linux user like me, the value built into some Chromebooks is as hard to ignore as a MacBook is for a person who has money to burn. However, you may find that the Windows or Mac ecosystems are more suitable for your needs and thus add significant value beyond what spec sheets, price tags, and good old physical prodding can determine.

For me, a Chromebook is more than “good enough” – it’s the portable Linux machine I have been waiting for. Now all I need to do is pick one… 🙂

Tutorial: Multithreaded Folder Compression for the XFCE Desktop

Have you ever made a “zip file” and wished it didn’t take so long? So have I! If you’re a fellow GNU/Linux user and your computer has a multi core CPU, here’s something you can do to dramatically speed up the creation of a basic zip file.

Most computers these days have multiple cores and are capable of doing many tasks simultaniously (unlike me!). This is typically refered to as multithreading or parallelization. Not all workloads can be parallelized, but things like compressing files and video transcoding are just stupidly awesome for it!

To make the most of my 8 core AMD FX-8320 CPU, which is an amazing (and inexpensive) CPU for multithreaded workloads, I learned how to use the multithreaded version of gzip to compress folders. The results were so great, I decided to make this tutorial!

Requirements:
– Linux Mint / Ubuntu / Debian (for apt-get)
– XFCE Desktop Environment
– Thunar File Manager
– pigz

1. Downloads pigz (Parallel Implimentation of Gzip).

sudo apt-get install pigz

2. Replace gzip with pigz.
A. Rename gzip.
B. Make a symbolic link from gzip to pigz.

sudo mv /bin/gzip gzip.original
sudo ln -s /bin/gzip /usr/bin/pigz

3. Create a new script file in your home folder (I put mine in a scripts folder).
A. Open Thunar, right click > Create Document > Empty File
B. Name the file thunarzip.sh
C. Right click the new file > Properties > Permissions Tab > Check “Allow this file to run as a program”
D. Open the file and paste the following into it:

#!/bin/bash
# Compress a folder using Thunar's right click menu
# and give it the date in the name.
now=`date +"%Y-%m-%d"`
tar -cvzf $1_$now.tar.zip $1

4. Open Thunar and go to Edit > Configure custom actions…
image1

5. Click the + (plus sign) to make a new action and enter the information below and click OK when you’re finished.
Name: Compress Folder
Description: Compress the folder here
Command: /Path/Where/You/Saved/File/./thunarzip.sh %n
Icon: Click the button and choose one you like!
image2

6. Now go compress something!
image3

7. Enjoy the results!
image4

For more information on Thunar custom actions, including many handy ones you might like to use as well, check this out:

http://docs.xfce.org/xfce/thunar/custom-actions