I’m sure this situation has happened to you: you’re in a meeting with a group of people and it seems like no progress is being made on how to proceed until someone asks a really great question and everyone goes silent. That is the power of asking a great question. A great question gets at the underlying assumptions and aligns multiple perspectives on the problem. It’s also a great tool for effective leadership.
Do you remember the last time you were in an interview? Did you enjoy it? Did you tolerate it? Or did you secretly wish it wasn’t happening? Interviews are notoriously unpleasant for the interviewee and sometimes for the interviewer as well. In the last 13+ years I’ve conducted many interviews, from those that were incredibly awkward to those that were quite enjoyable. Leaning on my experience let’s dig into what makes an interview productive and what both parties can do to make the whole process a bit more pleasant.
Last week I wrapped up my employment at Policy Reporter. It was bittersweet to leave a company where I got to play such a big role. During my time we saw tremendous business growth, hired and formed a management team, and had a successful exit when Policy Reporter was acquired by TrailCard. I also had the privilege of hiring and growing an amazing Engineering team, working with a lot of incredible people, form new departments, re-building the technical foundations of the product, building new products, and creating a culture where everyone is respected, friendly, open to learning together, and always looking for ways to get better.
Remember when Subversion was the new tool that all the cool kids were flocking to? Well, Subversion is now the old and busted, and it’s time to move to Git. It’s time to upgrade your Subversion repo (if your still using it) to Git because of the benefits you will gain from moving to a more flexible tool. Distributed: When you checkout (or clone in the git world) a repository, you are checking out all the files in the repository, which means you can work independently of others.
I needed to write a simple web app to automatically cache a password protected tumblr admin account, so I wrote simple symfony app to do it. It was pretty simple to do because I could leverage the sfWebBrowserPlugin which provides most of the heavy work for simulating a browser and logging into the site. While this project is setup to cache tumblr, you can easily modify it to cache any website.
I find it curious that WordPress, one of the biggest and best blogging platforms currently around does not come default with a caching plugin. I think the WordPress developers should either include one of the excellent WordPress caching plugins, or build their own and then enable it by default. Users and blog hosts worldwide would have better page load performance and improved scalability. This blog is build with WordPress, and in my first year of blogging, one of my posts received a lot of hits.
The best way to sanitize any input from your user (in PHP) is to use the HTML Purifier library. HTML Purifier will remove any XSS from your code, produce valid HTML, and generally make you sleep just a bit safer at night. It doesn’t completely sanitize user input, and you still need to be careful with it before using it anywhere (such as an SQL statement), but it will remove all XSS attacks against your website.
The Yii Framework is very flexible and has a variety of way you can configure it. Here I will show you how you can customize parameters on a Command task. The default Yii Migration command asks the user for a confirmation before running if there are any tables that have been changed, this is quite a sensible default, but I don’t want to be asked if the command should be run after a deployment.
Often times you want to be able to specify configuration parameters or settings that only apply to a single environment. These local configuration don’t need to, and shouldn’t be entered into version control, and should over ride default values. I needed a solution for a project I was working on so I wrote one for Yii. The main configuration file protected/config/main.php returns an array of parameters. Edit this file to merge 2 arrays, 1 from main.
My last post explained the basics on how to add static pages in symfony, this post expands on that and shows you how to do it for a multilingual site. We split the template finding code out for code maintainability, and we enhance it on where to look for the file. First it tries to find the template in the language and country eg: en_CA, then it tries to find the template in the matching language, and if that is not found, it falls back to the default language.