My Hardware: Mouse


I use the SteelSeries Rival 300 mouse as my daily driver. It’s simple, wired, and offers high DPI settings for those twitch gaming sessions. While SteelSeries doesn’t support GNU/Linux the great GNU/Linux community supports Steelseries products.

While this mouse will work out-of-the-box. In order to  access some of its features on GNU/Linux you’ll have to turn your attention to the rivalcfg project over on GitHub. Who says we can’t have nice things!

My Hardware: Keyboard

I thought I would start a small and short blog series covering my computing setup. Let’s start with my keyboard since it is the vital piece it which I write this post with!

Penguin Key Caps:

The “Das Keyboard Ultimate” is an amazing keyboard. Completely driver-less with mechanical Cherry MX  switches and media controls to boot! As you can see my keyboard has a bit of wear from those late night gaming sessions – WASD.

The keyboard is made out of quality materials and comes with a hefty price tag. However, if you can cough up the ducats it is well worth it.

A few added details:

  • Cherry MX mechanical key switches with gold contacts
  • Dedicated media control with oversized volume knob
  • Two-port USB 3.0 SuperSpeed hub – Up to 5Gb/s, 10x the speed of USB 2.0
  • Instant sleep button to save energy
  • Anodized aluminum top panel
  • Completely blank keyboard (no key cap inscriptions)

Mamba v1.0 Release!

Today I’ve release Mamba v1.0 into the wild! Here are some of the changes made to the code:

  • Mamba has been re-written to consolidate files & directories.
    • Functions have been moved to their respected .py files
      • i.e The window-widgets directory has be integrated into the file. One file to create the Gtk.Window & all of its Gtk.Widgets.
  • Generic Gtk.Window()’s created to satisfy the “set_transient_for()” warning. I know this isn’t the correct way. If you know the correct way, or a better workaround please let me know in the comments, via email, or on gitlab.
  • “set_modal(True)”  has been implemented to stop interaction with main window if Gtk.AboutDialog is showing.
  • Added .gitignore file. No need to upload personal files/directories to gitlab.
  • Added proper format spacing, PEP 8 spacing, and comments via docstrings.
  • Added website to Authors in Gtk.AboutDialog
  • Bumped version to 1.0

Theater Seating Program

This is a small C++ console application that I developed to track theater seat availability, ticket price, tickets sold, and more. The program allows for individual tickets to be sold & multiple tickets to be purchased at a single time. However, the multiple ticket function is limited to a single row at a time.

Microsoft Visual Studio

Get your tickets here!

Source code:

MS Visual Studio code:

Mamba v.03

Introducing Mamba v.03! Between my academic studies, family life, and work I have managed a rework of Mamba.

Changes include:

  • New Gtk.FileChooserDialog as been implemented.
    • This allows for a GUI when selecting your “steamapps” folder.
  • Underlying code structure changed.
    • Improved/implemented new object-oriented design.
  • Implemented new error handling & error checking.

NOTE: Currently, only GNU/Linux systems are supported.

Installing VirtualBox on Fedora 28

A quick how-to

Installing Oracle’s VirtualBox can be quite tricky on GNU/Linux base systems. Some distributions may or may not include the packages within their respected repositories. Here I will demonstrate how to install Oracle’s VirtualBox on Fedora 28:

*Note: Please make sure your system is up-to-date with the latest kernel*

Step 1: Change to root user

sudo -i

Step 2: Install Fedora’s repository files

cd /etc/yum.repos.d/

Step 3: Install dependencies

dnf install binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-devel dkms

Step 4: Install VirutalBox (Current version as of post: 5.2)

dnf install VirtualBox-5.2

And you’re done!

Meet Mamba!

As I hone my programming skills in Python and Gtk+. I figured I would do something fun for my first project. Meet Mamba!

Mamba is a random game generator. Completely programmed in Python with a Gtk+ user interface. It scans your ‘steamapps’ folder with a little fancy OI and string work to pinch a random game ID and launches the game.

At the moment Mamba is available for GNU/Linux systems, sorry Windows and Mac users. Check it out!

Enabling TRIM on Fedora 28

First off, you must be asking yourself: What is TRIM and why do I care?

The technical term for “trim” is “fstrim.” In short, fstrim is used to discard unused blocks on a mounted file system. This is useful for solid-state drives and thinly-provisioned storage devices.However, running fstrim frequently can negatively impact the life of your device(s).

So why do you care? Well, if you are a Fedora user its important to note that by default fstrim does not come enabled upon installation. In fact, you have to manually enable fstrim.

Do note that the default installation of Fedora 28 uses LVM (Logical Volume Manager). So if you opted out of using LVM during installation don’t worry, I will tell you how to enable fstrim both ways!

Of course this is GNU/Linux so you will need to use your favorite terminal application. Once your terminal is open and ready to go you’ll need to check whether or not your system uses LVM:

Type the following into your terminal and press Enter:

$ cat /etc/fstab 

Locate and identify the line with your root file system. There are several possibilities to look for:

  • If the line starts with:

    then its a physical partition and not an LVM partition.

  • If the line starts with:

    it is also a physical partition.

  • If the line starts with:

    then its is a LVM partition.

So, now that you know whether or not are root file system is LVM or not you can proceed to enable fstrim on your system.

For LVM:

Using your preferred method of text editing (Vim, nano, etc..) input the following and press enter (I will be using Vim for this example):

$ vim /etc/lvm/lvm.conf

Locate “issue_discards = 0” and simply change the value from false (0) to true (1), save and you’re done!

For Physical Partitions:

Simply input the following into your terminal and press Enter:

$ systemctl enable --now fstrim.timer

And done, its as simple as that!

Learn more!

If your encounter issues, or would like to learn more about what fstrim can do, refer to your man pages:

$ man fstrim