A quick tip when getting up and running with Selenium on OS X

I was setting up a basic Selenium test setup and ran into a pretty immediate show stopper:

Cannot find firefox binary in PATH. Make sure firefox is installed. OS appears to be: MAC

I hadn’t yet installed Firefox. After I installed it, however, I still continued to get the error.

My googling lead me to this page, and while the advice is generally what needs to happen, I wanted to detail my exact fix, and make life a little simpler for everyone else.

As you can see, the solution is two fold:

  1. Create a file at ~/bin/firefox with the short script to run firefox. I got unclear errors w/ the source page’s suggestion, and this resolves it.
  2. Create a ~/.profile to add ~/bin/ to your path.
Restart your terminals, fire the Selenium server back up, and you’re good to go!

What is your dream job?

I was thinking about what my dream job would be today, and it occurred to me that I have already figured out my dream job, and how to get it. I have it, in fact. I just haven’t figured out how to actually get paid for it.

See, I have always liked to help people. Never doing well in school, though, ruled out a whole list of options. However, one thing I have always enjoyed is programming.

I wonder how I ended up helping out in #symfony? It seems I made up my own dream job.

So, having your dream job is great, but not being paid to do it, well, that’s not going to work. I have a family to take care of, and they have this unfortunate habit of eating.

So — it’s a work in progress. I suppose that’s pretty much like everything else we do, no?

On taking our jobs seriously

So, Myles Recny wrote a little conversation about why you should be nice to programmers.

There’s so much about programming that is incredibly satisfying and empowering. But it doesn’t change the fact that, for me, programming builds an acutely negative mindset over time. I’m always asking the question “what’s wrong with this?” Positive people are always focusing on “what’s good about this?”

As soon as I saw it, I immediately sent the following back to him:

We can’t spend our lives mired in depression by seeing everything we do as imperfect. Nothing is perfect. Especially with our “programmer’s eyes” for technical detail, we will almost never achieve a level of quality that we would consider perfect. In fact, I would be worried if we did achieve perfection with any regularity.

Instead, if you start to feel the same way as Myles did, take a step back, and a deep breath. Stop looking at your code base, and start looking at your usage metrics. Look at all of the people using your code. Deriving value from your code. Improving their lives because of your code. If you don’t have access to that information, ask for it! Validate that your “bug-riddled mess” is actually helping people do something they want (or need) to do. Seeing this will help fuel your creativity, and drive you to provide ever better solutions.

Take some time to connect to your users. They are your best defense against the negative subtext that we operate in. View your work through their eyes, and see how they derive value from it. It’s a powerful thing, knowing you are improving someone else’s life — and we get to do it every single day. How lucky are we?

Why developers outside of Symfony should care about Symfony Live

If you haven’t checked them out already, go to Symfony’s “Talks” section.

Now, this is great for all of us Symfony developers, but it’s also a good thing for php developers in general.

If you’re a Symfony developer already, you know what you’re interested in there, so I’m going to focus on what non-symfony developers can get out of this treasure trove. Also, these videos are also available in French through the talks section.

Talks that apply to everyone

Designing HTTP Interfaces and RESTful Web ServicesDavid Zuelke gives an excellent presentation on what restful web interfaces mean, and was actually the driving inspiration behind my dedicating my Symfony Live hack day project to the Accept Header Service Provider for Silex, as well as this pull request for the Symfony core.

Talks for programmers

Behat by example (Behat best practices)Konstantin Kudryashov walks you through how to do approach BDD in a way that makes sense. I haven’t watched it yet myself, but it is definitely on my list.

Symfony2 components to the rescue of your PHP projectsXavier Lacot goes over how you can use symfony components in your every-day php projects to make your life easier.

Using MongoDB responsiblyJeremy Mikola gives a talk about Mongo DB. Really, who’s surprised? I haven’t seen it, but it’s on my list, and I’m sure, knowing Jeremy, that it is “web scale.”

PHP developers, what can Postgresql do for you?Grégoire Hubert gives a talk about Postgresql, why you should use it, and what advantages it has in store for your next project.

ORMs don’t kill your database, developers do!Guilherme Blanco shows you some ways to optimize your setup when dealing with an ORM. I’ve heard there is some controversy on some suggestions within, but I think that just makes it juicer.

Dependency Management with Composer — If this is anything like his talk in San Francisco (and I’ll just go ahead and blindly assume so!), Jordi Boggiano gives an excellent overview of what you can do with Composer and how to take advantage of it right away.

Talks for frontend developers

How we built the new responsive BBC News site — Really. Need I say more?

twig.js: The Templating Engine for the Client-SideJohannes Schmitt gives a talk about the very interesting twig.js javascript templating library. I seriously need to look at this one as well.

Still need more?

Richard Miller gave a talk on what you get from a full stack framework. I haven’t watch this, as I have already drank that particular kool-aid, but if you haven’t made the leap yet, I’m sure he presents some compelling arguments. If, after it, you’re still not sold on full stack frameworks, just wait until Dustin Whittle’s Silex talk from San Francisco is up. It will blow. Your. Mind.

On continuing education – Podcasts

I wanted to write a quick note about one of the ways that I stay up to date with things: podcasts.

They’re great for anyone who commutes, and the rest of you can surely find some time to fit them in somewhere. Even if you can only track one or two.

A lot of the podcasts I listen to aren’t specifically web development or even PHP related, but that is on purpose. I have Twitter and RSS feeds, as well as IRC for keeping up with more directly related topics. I’ll detail those later.

For Development

For Education

  • The Critical Path — A podcast by Horace Dediu about the theory and practice of disruption, and jobs to be done theory. It has an Apple centric overture, but it uses Apple as an example to build a lesson from.
  • Freakonomics — Always interesting(ish) topics, to keep the brain going.

For Humor