Improve shell start-up time when using nvm

I was finding terminal sessions took a long time to start up on my machine, and eventually discovered that nvm was taking the majority of the start-up time.

In order to mitigate this, I came up with a way to only load nvm when it was really needed, but still keep access to my default node installation.

Read more…

Run All the PHPs

I have my development machines set up to be able to run sites in any version of PHP from 5.3 through the upcoming PHP 7.2 release, and easily switch between them. This solution uses Apache and real instances of PHP-FPM running on my machine, so there's no virtual machine overheads like with Vagrant. If you want something similar, read on…

Read more…

Phalcon MVC Framework and Website Speed

Previously, this blog was written atop the excellent Kohana HMVC framework, and worked perfectly well. Recently, a colleague directed me to Phalcon, which states it is “The fastest PHP Framework”. Bold claims indeed! Since I didn't have any new projects on the horizon, I decided to rewrite my (admittedly very simplistic) blog using Phalcon to see how fast it would run, and also to see how easy Phalcon was to pick up.

Read more…

PHP 5.5 New Feature Demos

PHP 5.5 was released the other day, and I had a little repo set up to test out some of the new features. I thought I might as well share it, since it didn't take long and might help a few people out. You can view it on GitHub.

Read more…

Sendmail on Development Machines

Lately, I've been working a lot with mail scripts, which may use PHP's mail() function, or in some cases may even talk directly to sendmail. In order to make sure I don't accidentally email any customers, I use Rob Allen's script to reformat emails so they always go to my mailbox, and nowhere else.

Read more…

Relative URLs in Javascript - A Solution

I've previously written about absolute and relative paths in web development, and this follow-up post is here to show the method I've been using to get around the problem.

The secret sauce is the old HTML <base> tag. Simply output this in the <head> section of your template, with the href attribute set to the full URL of your site's root, then you can use a simple helper function like the one below to build full URLs in your javascript!

Read more…

Relative and absolute paths in Web Development

I've been working on multiple computers for some time now, and there's one problem that keeps cropping up now and then, and sometimes when going from development to production, or when a folder changes name... Whatever.

The problem I'm talking about is relative/absolute paths in non-server-side processed files. For example, creating an AJAX loading image from a JavaScript file. What path should you use? /images/file.gif will point to the root, and file.gif will look in the current directory. The script doesn't always know the path relative to the current document, and it won't (easily) know what directory the images are in from the docroot. So what to do in this case?

What I've thought about doing today is creating the image in the server-side code, styling it to be invisible with CSS, and then using JavaScript to show/hide the image when I need it. Some basic jQuery-style psuedo-code follows.

var loader = $('img#loader_image').clone();

Does anyone have a better method for this type of thing? If so, get me on Twitter, at least until I enable comments on my blog.

Read more…