Category Archives: Uncategorized

Hobby vs responsibility

One of my hobbies is video gaming. In my teen years, I would spend on average of 60-80 hours a week playing either Counter Strike, Team Fortress 2, or any other Valve software title. It was not until I went to college and got a job when my average went to 30-40 hours a week. After being married and having children, my average is now down to 8-12 hours a week. As my responsibilities increased, my hobby time decreased. I would consider myself addicted to video games (i.e. I cannot stop playing them); however, I do not feel like I am missing out from partaking in my hobby. Here is what I have done to lower my addiction to video games:

  1. I stopped playing multiplayer FPS
  2. I only buy video games that run on Linux
  3. I play during specific time frames only

My current favorite game is Factorio – you crash landed on a distant planet and have to build a rocket to escape.

Common problems with Web Developers configuring LAMP/LEMP

I am a SysAdmin who likes to code. I would say I know a fair amount of web developing, but do not understand it like a web developer uunderstands it. I think the reverse is true as well – web developers know how to set up a LAMP/LAMP stack, but they do not understand it as well as SysAdmin might understand it.

To be a successful SysAdmin, you need to relearn your field every 3-5 years. New versions of software come out, new OSes, new features, new methods, and new ideas come out every several months. It takes somebody dedicated to read news blogs, mailing lists, and following the appropriate people on social media to keep up with the rapid trends. Web developers do not have that time to dedicate to operations work. They only need infrastructure to work for their project and it doesn’t matter how well tuned the software is – if it works, that is all they need. Below are some common pitfalls I see with web developers. Continue reading Common problems with Web Developers configuring LAMP/LEMP

Refreshing Ruby Knowledge

I see a trend in system administration tasks moving toward the Ruby programming language. Yes, you can still code in Perl, Python, Shell, etc., but Ruby seems to be growing in popularity as a choice in scripting language. It should be – it is certainly easier to type and it has a big community to go with it. I was first introduced to Ruby in 2009 and immediately after learning Ruby, I learned Ruby on Rails. At the time, Rails and the MVC model was too advanced for me and so I never used my knowledge. Mostly because Rails had many “does this automatically so you do not need to include it in your code” so it was difficult for a beginner.

Now nearly 7 years later, I am taking Ruby off my virtual bookshelf and blowing the bugs off of it and refreshing my knowledge – this time leaving Rails out of the picture. So far I am liking plain Ruby. Below are some resources I have used to sharpen my Ruby skills.


Bonus: Setting up the exercism client on Fedora 24

The exercism client is written in Go. Go can fetch and install other Go programs as long as you have a Go workspace set up. To do that we will issue the following commands:

# To install go
sudo dnf install golang

# To set up the workspace
mkdir -p ~/gocode/{bin,src,pkg}
echo 'export GOPATH=$HOME/gocode' >> ~/.profile
echo 'export export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> ~/.profile
source ~/.profile

Those commands will set up the Go workspace and allow you to issue the next command: go get -u

5 Things to do after installing X

Congratulations, you have installed X! Here are 5 things to do right now:

1. Change your background
2. Install needless software
3. Customize your font size
4. Take a screenshot
5. Share about your experience on social media!

This post is mainly a response to all of those 10 things to do after installing Ubuntu 16.04 blog posts.

Post this week

I messed up on the post this week. It had a previous date when I clicked submit. I wrote an article on the next generation web stack (LEMP) with SSL.
Continue reading Post this week

The greatest story ever told

The greatest story ever told is how an Almighty God came down to earth, lived a perfect life, and offered Himself as a sacrifice for the sins of the whole world (past, present, and future). This is what the Easter weekend represents. There is a penalty for sin which must be paid. Jesus paid that penalty with his life. Those that confess that Jesus took their place and put their trust in Him will receive a pardon from sin, peace with God, and a prepared home in heaven.

Because God is so righteous, He cannot have unrighteousness near Him.

Because God is so holy, sin cannot come before Him.

Because I can be biased, I am unrighteous.

Because I am human, I have sinned.

Because God is so merciful, He provided a scapegoat to take my place.

Because God is loving, He placed my unrighteousness and sin upon Himself and died on the cross.

Because God is gracious, He offers a pardon to all those who trust in Him.

Sunday is awesome

Sunday is so awesome that cron repeats it! (0,7)

High performant chat application

In a fictitious world where I started my own company and developed a LEMP-stack chat application, this is how I would do it in 2016:

I would use WebSockets as the protocol in which data is being sent to and from the server. WebSockets has built-in support by nginx (since version 1.3). For caching, I would use the expires max; function of nginx for my static content (images, css, js, fonts, etc). I would also ensure static content was named in the scheme of name-md5hash.ext. This would allow the caching on the client side to shine.

I would ensure my php files are gzip compressed (with .gz extension) to allow fast transferring of data between client and server. Nginx finds the .gz files when gzip compression is turned on and uses them if they exist.  I would design small php-fpm servers that can support ~2,000 users at a time (basically, a dual core processor with 4gb of ram). This would allow ease of scaling at lower costs.

I would use GlusterFS for fault-tolerant storage. I would use the mount -t gluster option on the servers as it would allow distributed nfs capability for storage of uploaded content.

I would use MariaDB MaxScale as the database as it would allow for ease of scaling.

In short, it would look similar to the following diagram:


How to fix Error: Transaction check error with dnf/yum

When a dnf or yum process gets interrupted, you may get the below error:

Running transaction check
Transaction check succeeded.
Running transaction test
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: Transaction check error:
file /usr/share/doc/avahi-libs/README from install of avahi-libs-0.6.32-0.4.rc.fc23.i686 conflicts
with file from package avahi-libs-0.6.31-43.fc23.x86_64

When presented with Error: Transaction check error, you are unable to install, update, or upgrade your system. The solution is to attempt to install the program (or download the files), locate them on your system, and manually update them using rpm. In other words, do the following:

find /var/cache/dnf/ -iname avahi-libs-0.6.32* -type f
rpm -Uvh --replacefiles /path/to/avahi-libs-0.6.32-0.4.rc.fc23.i686.rpm

To-do for 2016

As an IT worker, I have to re-learn my position every 3 years. This is due to the fact that Microsoft releases a new version (of their Server software, Exchange, office suite, etc.), or there has been a technology shift from one Linux specialty to another.

To combat this change and to stay ahead of the technology bubble, I have to be self-motivated to be on the front-end. Here is what I have scheduled for 2016: Continue reading To-do for 2016

Read the Bible this year

Most Christians read the Bible every day. Bible reading schedules are either in paper form only or there is a charge in obtaining the digital copy of one. Such was the case for my wife. She liked the McCheyne reading schedule which takes you through the new testament twice and the old once. A digital copy of the schedule was not within easy reach (we searched Amazon books) and our Church switched to distributing a different reading schedule at the beginning of the new year. This is how my Bible-in-a-year github repository was expanded.

I already made a Bible reading schedule for myself to start from Genesis and end in Revelation for the kindle. It was easy to use this information I learned to create another kindle book for my wife – after all, kindle books are just compiled HTML.

You may download the McCheyne version or Genesis-to-Revelation version for free! Then start this year on the right foot by uploading them to your kindle or mobi reader.

Merry Christmas

For those who read my blog, I want to wish a Merry Christmas. It always gives me great joy to remember the virgin birth of Jesus Christ. Not only does Jesus’ life impact so many, but it was his death that payed the price of my sin. I am one of those who believe that he took my spot as a scapegoat for my sin. I have placed my trust in him alone for salvation from sin’s penalty, power, and preeminence in my life.

Why I can’t vote for Hillary Clinton

We live in the year 2016 – anyone who does not know how to use basic computer functionality (such as email, using a word processor, decyphering between a spreadsheet and database, etc.) should not be allowed to hold public office. Why? Here is my main reason:

Continue reading Why I can’t vote for Hillary Clinton

Switching to WordPress

I have completed the migration of my blog to WordPress. The reasons for the change are very simple:

  1. I was spending 45 minutes extra just to post 1 web page
  2. I wanted to post to Google+ for every post I make – the service I was using only allowed for twitter.
  3. I wanted an easier way to manage my RSS feed.
  4. I wanted to spend more time writing and less time coding my website



Andrew Wippler’s Sketchpad is where I express my interests. I love Jesus, my family, and technology. Continue reading About