Recent Posts

VPN Error 0x80072afc: The requested name is valid, but no data of the requested type was found.

I encountered this error while working on a SSL (SSTP) VPN setup. The distinctive characteristic was that we defined the VPN host in the computer's hosts file, although the same error could be encountered by an improperly configured DNS entry.

Supporting extremely large file uploads with PHP

Any time you think about "unlimited," you likely think about the cloud, and that is about the only way to do this. With PHP, any standard file upload must remain under the post_max_size and the upload_max_filesize. There are client-side solutions that can chunk a file to make it uploadable without increasing your limits, but even those require you to pay close attention to your disk space and to your temp directory space. Chunking the upload and storing the chunks on cloud-backed storage can address most concerns. However, the combination of Amazon S3, Amazon IAM and Plupload provide a compelling stack that allows for unlimited uploads to a secure cloud-based storage provider without any impact on your web server. Below are some of the keys steps that facilitate leveraging these exciting technologies.

SPLash

The Standard PHP Library (SPL) provides various utility classes and interfaces to address common problems. Some of the most visible solutions center around the SPL Iterators. The ability to iterate over a non-array collection and then to iterate over that iterator creates an interesting design pattern for building with PHP. However, the iterators deprioritize conciseness and therefore (to some degree) readability.

Technologies: 

Get Server's Local IP with PHP

There is an easy way to get the local IP of a server using PHP.

Technologies: 

APC Console

Our web site platform is highly efficient, primarily due to the aggressive caching we have implemented using APC. APC has performance advantages over other systems like Redis and Memcache because it avoids any kind of protocol overhead. It is tightly integrated and allows PHP to access the key-value pairs in memory. However, it comes with the drawback that any command-line PHP does not have access to the same cache because it is running in a different process. This becomes a major issue when there are intensive background processes that are run, and it can become a major source of database load in configuration-heavy systems like Drupal. So how do we leverage the online cache that has been built when working with console applications?

Technologies: 

YAML Editor for Eclipse

YAML files (text files that contain YAML data) are not facilitated very well by the default formatters in Eclipse. Fortunately, there is a nice plugin that handles standard beautification, indentation and validation for YAML structures. The appropriate links for the solution are below.

Technologies: 

3,000+ visits this month!

This web site serves as a portfolio, a blog about IT challenges, and a home for some small open source projects that I am developing. The web site serves a personal function more than anything else, and there are no aspirations for it to be a big hit on the Internet. Despite that, it turns out that other people are trying to solve many of the same challenges and develop many of the same solutions. It has been fun to watch the traffic grow slowly each month. Today, the site broke 3,000 visits for the month of February 2014!

Technologies: 

Loading an iTunes-optimized podcast in MediaMonkey

When tasked with the simple matter of subscribing to this podcast, I discovered that MediaMonkey is relatively limited (or at least picky) in terms of what it can handle. MediaMonkey 4 does not appear to handle the ITPC protocol, so I needed to find a way around it.

Technologies: 

Using Google CDN with Drupal 7

According to Royal Pingdom, approximately 54% of the top 10k sites use jQuery, and approximately 25% of sites that use jQuery rely on the Google CDN. Neither of those statistics are concrete metrics of the number of users with cached versions of jQuery as served by Google, but it is reasonable that a healthy number of active web users have a primed browser cache. Even if you were pessimistic and restricted your analysis to the top 100 web sites (25% use jQuery), the best information you have is that Google is still the most popular CDN. Of course, the analysis does not make that clear, but no alternatives are suggested. So how do you leverage this cache insight with your Drupal 7 web site?

Technologies: 

Installing PHP on Windows

Installing PHP on Linux is straightforward with apt-get or your preferred package management system. Although PHP.net does not provide that uber-simple solution, Microsoft provides a solution for us.

Technologies: 

Pages