Author Archives: brandonio21

The Interesting Side-Effects of Evolution: A Brief Discussion

As a huge Randall Munroe fan, I pre-ordered his book What If? Serious Scientific Answers to Absurd Hypothetical Questions. I have been reading it almost every night before bed, really trying to understand the science, math, and reasoning behind every one of Munroe’s responses. Although sometimes it is hard to decipher whether or not Munroe is being serious, all of his responses to submitted questions are both informative and entertaining.

One of the more interesting question-response pairs that I have read was entitled New York – Style Time Machine in which Munroe explores what New York would look like at various periods in time, including the distant past, past, future, and distant future. Although his explanations were very interesting, one line in particular stood out to me:

The modern pronghorn (American antelope) presents a puzzle. It’s a fast runner — in face, it’s much faster than it needs to be. It can run at 55 mph, and sustain that speed over long distances. Yet its fastest predators, wolves and coyotes, barely break 35 mph in a sprint. Why did the pronghorn evolve such speed?

When I first read this, I simply shrugged it off. “But of course! Everything evolves for a purpose.” It’s something we all learn in biology class. However, after reading it again, I realized that this quote demonstrates the true power of the analysis of evolutionary adaptations. For any trait that an organism possesses, there is a link to a need for that trait. This allows us to deduce what the organism’s world was, is, and will be like.

For instance, take a look at that hair on the arms of humans. It is present for a few reasons, but analyze it’s response to fear. As we are scared, the hair on our arms rises. Why is this? The commonly accepted answer is that it makes us appear bigger – making us more threatening to organisms who may want to prey on us or organisms that we may want to prey on. Currently, however, we are not common targets for predators. We have very little use of this evolutionary adaptation. So why does it exist? Its mere existence shows that in our past we were hunted. It shows that we have changed since then.

This kind of analysis does not only apply to us, but to every organism in existence. If there is a trait, there is a reason for its existence. Seemingly useless traits can provide powerful information into the organism’s past or present and how it has changed since then. Everything is constantly growing to handle the organism’s surroundings, and sometimes these changes give the organism such a large evolutionary advantage that it will outlast its original purpose and carry-on to be an “over-powered” advantage, just like the case with the Pronghorn mentioned by Munroe.

The world is constantly changing and it truly is a fascinating place.

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?

It’s Just Everlasting Negotiation.

There was a time in my life not to long ago when I made several very large mistakes. I betrayed the trust of everyone around me, thinking that I knew best for myself. Turns out, I was wrong. While I thought I was happy, everyone I knew constantly berated me for my decisions.

When I came to admit my mistakes, none were as quick to forgive me as she was. She was perfect. She smiled when I cried, she tended to my every need and always made sure that I was okay. She helped me grow. I came to rely on her to be happy, as she was the only one who supported me with everything I did and didn’t do.

She then went on to make some very bad decisions. She betrayed my trust in the worst ways imaginable. Returning the favor, I made sure that I was the one that was quickest to forgive her. What’s in the past is in the past, and I know she would never make those mistakes again.

At this time, I really wish I could sit down with her and tell her that I miss her and that only when she is around is everything at its happiest. She is far away, both physically and mentally, and I am often left alone for days while she goes on with her life. I really miss her.

Then, when she returns, she wants to negotiate. She wants to tell me to stop relying on her; yet, when she needs something, she is so quick to return to me. And so the cycle continues. It is just everlasting negotiation. I wish that we could just settle down and stick to what makes us both the happiest.

Again, I wish that I could tell her this, but I know that nothing good would come of it. It will always be just everlasting negotiation.

If you’re reading this, I love you.

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.

cmatrix

cmatrix

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: https://bbs.archlinux.org/viewtopic.php?pid=1459970#p1459970

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