Category Archives: Desktop Computing

Anything involving using my desktop computer

The Switch to Linux: Day 1

This post is not only going to be brief, but also rather uninformative. My brand new ASUS ux305 arrived in the mail today and I spent a majority of the day playing with it. The laptop is beautiful. It has a very high quality build and feels extremely similar to the Macbook Air. One of the things I loved about the two months I spent with a macbook air was the keyboard. Well, I must admit, ASUS has done a great job at matching the quality of that keyboard. The size, the battery life, the weight.. everything about this laptop is perfect.

The first thing I did was go ahead and install Linux on this machine. My distro of choice is Arch Linux, so naturally I decided to put the Arch install .iso onto a flashdrive using Rufus. I then stuck the USB drive in and rebooted into the BIOS (Which is the del key for the ux305). Once in the BIOS, I noticed that it did not immediately detect the flashdrive as a boot device. No worries, I added an entry to the BIOS boot menu and pointed it at launch.efi on the flash drive. Everything went smoothly from there.

I simply followed the beginner’s guide, noting that I was setting up things for a UEFI system. This meant that I needed to do a few special things such as use GPT for my partition tables instead of the MBR I used on all of my other machines to allow for dual-booting.

Everything went great until I was required to install a bootloader. For some reason, the first time I installed gummiboot, I could not boot into Arch Linux because I was missing the file varlinuz-linux. I then tried to install GRUB. Same issue. I went ahead and cleared the partitioning scheme and formatted the drive and started all over again. It worked after that. I’m not entirely sure what happened, but if you encounter the issue, it can be solved by clearning the drive and recreating the partitions.

Now that ArchLinux was installed, I had to choose my software. I decided to go with Xorg for my display (Using the open-source intel video drivers). I also tried lightDM as my display manager; however, I did not like the look/feel of it, so I decided to resort to SLiM and its archlinux-simplyblack theme. I also tried to use bspwm and awesome window managers; however, I failed to find them as suitable replacements for i3 and went ahead with my tried and true i3 setup. After that, everything has been going smoothly. I will post more details later about the specifics of my setup. I am too tired to post it now.

The major problem I encountered during this install was connecting to the internet. For whatever reason, during the install process, I could not connect to the university WiFi. I used the wpa-configsection example for netctl, but couldn’t get anything to work for my wireless adapter. I ended up just using the USB to Ethernet adapter that came with the laptop in order to get a stable wired connection to complete the install. Maybe this is what contributed to the missing linux kernel file during the first boot-manager install. After I finished installing, however, the netctl profile I created worked no-problem. I guess there were just issues while using the install USB. Again, I’m not really sure why.

So far, it looks like I will for sure be sticking with Linux this time. I hope.

I’m Going Full Linux

Running Linux on my machines is my own personal hobby. One of the first things I did with my first laptop was dualboot Ubuntu and Windows. Ever since then, I have installed Linux on every machine I’ve had. Usually, I install Linux thinking that I have no need for any other operating system. Then, a need comes along, and I end up dual-booting Windows and Linux. Currently, my ASUS K55N-DS81 laptop holds the record with about a year running only Linux. However, this streak was ended when I went out of town with only my laptop and needed to do some serious .NET editing in Visual Studio.

Needless to say, the dream still continues. I still want to have atleast a single machine that runs only Linux. One of the main problems I have with my current laptop is its abysmal battery life. I get about 2.5 hours per charge, which is not enough to make it through the day. Thus, I’ve been looking for a replacement laptop. Something powerful enough, but also lightweight and not lacking in the battery department. What I found was the ASUS UX305.

ux305After browsing several Arch Linux forums and webpages, it seems that this laptop is perfect for Linux. Everything works out of the box. This is more than I could ask for given its astonishingly low price of $699.

Laptop selection aside, the struggle comes when installing Linux. The problem isn’t getting everything to work, but rather finding alternatives to all the Windows software that I use on a daily basis. Time and time again, the troublesome piece of software proves to be Visual Studio. I do a lot of development for work in Visual Studio, so it is a relatively mandatory piece of software. Recently, however, I stumbled upon MonoDevelop and its fantastic GTK# Window Designer. After trying it out for a few hours, I have determined that it is a worthy alternative to Visual Studio’s Form Designer. I look forward to seeing how it compares when using it on a daily basis.

That being said, the laptop is arriving in two days. I plan to heavily document my Linux installation process and all other things in order to create a sort-of ongoing guide for anyone who wishes to pickup this laptop and install Linux on it. I will not give up on this Laptop. I will not dual-boot. I am going full Linux.

Segregation In Technology: A Short Rant

For the past few weeks, I have been running Arch Linux on both of my machines. This switch was made because I was hoping for a little more adventure with my machines and a little more understanding of how Linux is setup. I have been very pleased with the decision. Not only is there a constant feeling that I made the right choice, but every single problem that I have run into has been fixable and feels great to fix.

Now, I will give a more detailed explanation of how big of an Arch Linux fan I am sometime in the future. For now, I would like to travel about 3 weeks into the past and take a look at when I was first installing Arch Linux. I decided to dual boot Windows 8.1 and Arch Linux so that I am still able to use my new gaming machine to play all of the newest games on Windows. During this install, I ran into minimal problems.

After everything was setup on both my laptop and my desktop, I noticed a quite unfortunate problem. On my laptop, when I booted into Windows, the system time was incorrect. (It was 5 hours ahead of my local time). On my Desktop, there was the same problem except that my Arch time was 5 hours ahead of my local time. For the first few days, my thought process was something along the lines of “No big deal; I can manage.” But after switching back and forth between my desktop and laptop, I found that it was hard to keep track of what operating system had the incorrect timestamp on either machine.

After doing some Googling, it wasn’t hard to find that this problem was due to the fact that Linux requires the BIOS system time to be set to GMT while Windows requires the BIOS system time to be set to an accurate local time. In order to fix the problem, one has to use an unreliable method to make Windows or Linux convert the BIOS time into their required time formats. Personally, after experiencing some problems with getting Windows to recognize the BIOS time as GMT, I decided to set my BIOS time to my local time and force Linux to handle the conversion.

After this small delay, I spent a good amount of time thinking about how many of these type of problems exist: when two different, yet very similar, things decide to use different standards that cause problems when trying to get things setup in coordination. Even though all of these technologies share the same functionalities, they go about the architecture design choices in completely different ways.

I like to call this the “Segregation in Technology” problem. As technology evolves, every creator of the new technology will attempt to make things better by making new decisions; however, any decision they make may go against the already established standards, and any time this happens, confusion is undoubtedly going to happen.

Another example of this type of problem that comes to mind is filesystems. Several popular filesystems are in existence (FAT, NTFS, EXT4); however, no operating system can seem to agree on which file system to use. What does this mean? When switching between these systems, some type of conversion must occur in order to access the files from another type of system. This becomes incredibly annoying, for instance, when trying to do large file transfers from my Windows machine to my Android phone, which causes problems because of the incompatibility between Window’s NTFS system and the SD Card’s FAT file system.

This very same problem was about to occur recently when ChromeOS announced that they would drop support for the EXT4 file system (Which is essentially the standard in all UNIX-esque systems). Of course, there was a large uproar from the community because of this, and Google revoked their previous announcement. Although the problem never occurred, the consideration for the drop of filesystem support by Google shows how easily the “Segregation in Technology” problem can manifest itself.

As time goes on, take time to notice pieces of technology that do not share standards (Hint: Pre-Lolli Android). If I were an old man who didn’t have the time to learn the ins-and-outs of the many forms of technology that exist today, I would not even attempt to use these devices in my daily life. I can see why most elderly folks don’t. I think that this problem of segregation is one of the largest problems in modern technology and its recent boom in the “Internet of Things”. What do you think?

Using cmatrix to Test Graphics Drivers

cmatrix is a command-line utility that displays the famous terminal screen from the movie The Matrix that the characters stare at. A lot of people in IRC land mention that they like to have cmatrix running somewhere on their screen so when someone that doesn’t know much about computers walks by, they are set in awe and amazed at how the programmer is able to quickly decipher such sporadic information. They also suggest to have a cat of /dev/urandom on another terminal screen.



When installing Arch Linux on my ASUS K55N-DS81 laptop, I noticed that when I installed and ran the cmatrix utility (which is available in the Pacman community repo), it would begin to lag after about 5 seconds of operation (when the screen got really crowded). At first, I thought that this was due to the fact that the window manager I use (i3-wm) does not support true double buffering, thus causing cmatrix to have trouble outputting its payload to the console. In order to remedy this, I went ahead and installed compton, which is a composite manager known for working well with i3. Unfortunately, this did not solve the problem.

Thus, There was only one other thing that was really affecting how things were displayed onto my screen, and that was the display drivers. I currently had the xf86-video-ati drivers installed, which are the open source drivers for ATI graphics cards supported by Arch Linux. Obviously, these were causing problems. I then went through the semi-painful process of getting ATI’s catalyst drivers installed on my laptop (the process is very well documented, so it’s actually not that big of a deal).

Well, after getting the drivers installed and restarting my system, cmatrix ran without a hitch. Buttery smooth. I was even able to launch many, many instances of it without problem. Thus, when installing Arch on a new system (or any linux distro), cmatrix serves as a simple way to make sure that the display settings are up-to-par (For basic CLI programs, at least). Be aware that this is not a test for actual graphics intensive things.

The Switch to Arch: Day 1

One of the things that I’ve wanted to do for as long as I’ve known about Linux is make the switch to Linux full time. I wanted to understand how the operating system functioned, how I could use it, how I could alter it, and how I could get it installed on all of my machines. I have taken many baby steps to get to that point. For instance, from 2013-2014, I only had Lubuntu installed on my laptop and forced myself to use Linux for every task that came to mind. Of course, I also had my trusty desktop with a Windows installation. Although I definitely learned about Linux this way, I found myself often coming back to my Windows machine in order to edit with Photoshop, play some video games, or even do things without trying to make them compatible with Linux.

Just recently I decided to really push for the conversion process by taking a dive into Arch Linux and putting it onto my laptop. After about 2 days of struggling to get it installed and working as I wanted, I felt super happy and super confident. If you are unfamiliar with using Arch Linux, I highly recommend it. It is a great way to learn about how Linux works and it is a great experience (and very rewarding).

Anywho, so I got ArchLinux running on my laptop. I decided to choose Slim as my display manager, X as my display server, and i3 as my window manager. I really enjoy the tiling nature of i3 and the simplicity of its dynamic windows. I have tried Awesome and bspwm, but I just cannot get away from i3 and its charm. I think my favorite part about running ArchLinux is its system resource usage. While idling, Arch on my laptop uses 150MB of its 8GB of RAM. This is definitely something that not even Windows nor Lubuntu could pull off. Maybe I am missing some precious functionality that existed in those operating systems, but I definitely don’t feel like I’m missing much.

Inspired by the switch on my laptop, I decided to do the same thing on my desktop. Of course, this is a little more risky because video games have a reputation of not working all that well on Linux, but I am confident that my beast of a machine can pull off at least 30fps on the latest games running under WiNE, so I decided to give it a shot.

After the hours it took to install Arch on my desktop (experience from my laptop install definitely came in handy), I am very pleased with the results. The thing I had most difficulty with was getting my internet to work. For whatever reason, my WiFi  card could see the network but wouldn’t complete the DHCP handshake. The same thing would happen with a wired connection. Thinking it may have been a problem with the WiFi card, I even bought a new card. After messing with this for a few days, it turns out that in order to get internet working for PCI and Mobo adapters in Linux with a GIGABYTE motherboard, you have to enable the IOMMU setting in the BIOS. What IOMMU stands for, I have no clue. For more details on this situation, you can take a look at the ArchLinux forum post I made regarding the issue:

In short, I am loving this so far. I intend on posting a more detailed guide to getting Arch perfectly setup on machines that have a similar setup to mine. For now, I will just say that I am a very happy man.

The ArchLinux setup on my desktop machine

The ArchLinux setup on my desktop machine