Securing Apache Sites With Saml

So I recently have fallen in love with single sign on. I really like centralized user management, and being able to adapt it into many different application is really sweet. Plus, it makes compliance people happy! One feature I like is the ability to secure arbitrary Apache websites with it using a plugin called Mellon. Basically this acts like the native apache authentication, but rather than present a window for a username and password, it redirects you to your SSO provider to login....

October 25, 2019 · Andrew

Using Foundation for Emails (Inky) in a Php Application

One framework that I instantly fell in love with was Inky. Having built a number of emails using pure HTML, having the shorthand syntax was amazing. Coupling it with the inliner and CSS in Foundation for Emails, it’s dead simple to write a good looking email. Just one problem: Foundation for Emails assumes you’re either writing emails as standalone units, or integrated into a Node.JS application. What are you to do if you’re, say, running a PHP Symfony application?...

September 13, 2019 · Andrew

Autowired Traits in Symfony

This is something that I think is pretty slick in Symfony. With 3.3, Symfony introduced the idea of autowired services. Basically, you just put a type hint for what you need and the container injects the correct service as if by magic. You can take advantage of this in some more unusual places that aren’t immediately apparent after reading the documentation. In my case, I had a controller trait that provides some common functions but it needs to interface with some services to do this....

October 7, 2017

Eliminating Cron Jobs in an Application

When you have an application, there’s inevitably some things that just need to be done periodically. These aren’t tied directly to user actions, so the quick answer is usually cron. It’s easy to setup, but when it breaks it can cause subtle issues that may impact your customers or application. It’s simple to setup a script that does whatever needs done, and it’s equally easy to tell cron to execute the script at regular intervals....

August 28, 2017

Staggering Chef Client Runs

One of the new tools I’ve discovered is Chef to manage the configuration and software on Storehouse’s fleet of virtual machines. Chef makes it really handy to update and track config changes, since everything can be tracked using Git or similar. One issue we ran into was having chef-client run at the same time for multiple machines. This issue is kinda subtle, but makes a lot of sense when you think about it....

July 20, 2017

My Thoughts on Googles Page Speed Insights

Google’s Page Speed measure is a tool to give developers feedback as to how their web page is performing. It rates the pages on a scale of 0 to 100, with 100 being “perfect.” In my opinion this system is very flawed and it creates an ambiguous number that encourages developers and clients to waste time and money chasing after unobtainable goals. Obligatory Disclaimer: These opinions don’t reflect my employer at all....

December 16, 2016

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....

October 21, 2016

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....

September 22, 2016