DOCTRINE ENTITY TESTING 2.0

About a month ago, I shared a method for testing doctrine entities. This came about after my push to get 100% code coverage on The Storehouse. I’ve already found a new and better way of doing this that gives you a bit more flexibility. This new method does the exact same thing: test getters and setters for doctrine entites. The difference here is that I used a trait rather than a class.

Read more

CHEAP EBAY SERVERS

One of the most challenging things about starting a business is figuring out how to setup your operations. With a tech company, this gets trickier because of the plethora of options on how to handle your business. When setting up a physical operation, sourcing hardware can become a challenge, especially when capital is limited. One of the things that can really help is used equipment, since for a small operation the latest and greatest can be overkill.

Read more

DOCTRINE ENTITY TESTING

One of the things I’m working towards with Storehouse is 100% code coverage. This really exposed the need to have a more streamlined way of testing Doctrine entities, since they have to have a lot of getProperty and setProperty functions. My solution was to write a simple test case that runs through properties of an object and checks each one. Update: It’s only been a month and I’ve already found a better way of doing things.

Read more

THIS IS WHY YOU NEED A UPS

LOAD BALANCING WITH PFSENSE

I’ve been using pfSense in production for a number of years. What started out as a casual exploration of alternative firewalls years ago has blossomed into a real love of pfSense and the power it offers. Being a software based firewall gives lots of features out of the box, including built in load balancing. Although load balancing in pfSense doesn’t get much hype, it probably should. It solves a unique problem in a very effective and reliable way.

Read more

GLUSTERFS CLIENT LOG FILES ARE HUGE

This is an issue I recently fixed on our GlusterFS installation, but I didn’t see anything directly on Google for lazy people like myself. The issue is that the log files in /var/log/glusterfs are HUGE. Ours ended up being > 30 GB after about a day and ended up causing issues since the filesystem of our container filled up. Our log files were lots of: [2016-08-24 13:51:20.776255] I [dict.c:370:dict_get] (–>/usr/lib/x86_64-linux-gnu/glusterfs/3.5.2/xlator/performance/md-cache.so(mdc_lookup+0x2ff) [0x7fd05c6e4c6f] (–>/usr/lib/x86_64-linux-gnu/glusterfs/3.

Read more

TROUBLESHOOTING WONKY ZABBIX REPORTS

I rely on Zabbix to keep tabs on all of my machines and to make sure all of The Storehouse is working perfectly. It’s always troubling to wake up to 30+ emails from Zabbix and is pretty good cause for alarm. Turns out, these things were fairly innocuous and the sign of a pretty simple issue and related to the backup of that VM. I’ll try to outline the steps I used to diagnose and lessons I learned along the way.

Read more

BUILDING A CUSTOM OPENVZ TEMPLATE

One of the things I’ve thought would be handy for much too long was setting up a custom template for my virtual machines. I don’t do anything too crazy, but I use LDAP and some other utilities that I continually have to setup and configure on every machine. The ultimate in convenience would be to create a new virtual machine and have all the environment specific config done, so I can get right into building it out.

Read more

ROBO AS A PHP TASK RUNNER

One of the things I ran into when developing The Storehouse was the need for a task runner that fit into my weird style of development. I’m not really a fan of having multiple tools that do the same thing, so consolidating all of my dependencies into Composer was a goal of mine once I started needing task runners. At first, I started off using Gulp and Node.js to do task running.

Read more