Yesterday I spent 6 or 7 hours working with the symfony framework. After investigating several other frameworks available, like CakePHP and CodeIgniter, I settled down to work with symfony and I’m glad I did. It has a pretty big learning curve, but the free book is an invaluable resource (I’m actually thinking of buying the printed copy). The framework itself is great, and is built up of some excellent parts like Propel for ORM and Creole for database abstraction. Even if you don’t use symfony, check out those two open-source libraries, they are excellent.

Yesterday’s time was spent both learning the framework and creating the upcoming Outershift website. In 6 hours I learned much and completed a good chunk of the back-end. Considering I started from scratch, I am very pleased with how quickly the project has progressed. So, check out the symfony framework for yourself!

Example PaginationPagination refers to splitting up a large result set into multiple pages. Probably the most recognized use of pagination is that displayed by Google when you perform a search. As long as there have been applications, there has been a need to paginate. Everything from long documents to search results, it’s something almost every app you use has in common. Considering just how common pagination is, it’s the one thing that seems to trip up many amateur programmers. Today I’m going to go over how to create a simple pagination feature in PHP with data collected from a MySQL database. You can download the sources and example database at the end of the post. Read the rest of this entry »

Almost every website has some sort of members-only area. Anything from a profile system to something as simple as email subscriptions for articles. What every members area has in common is some way for a user to authenticate themselves. Most likely, this is through a username and a password. What I’m going to talk about today is the best practices for storing and handling passwords, since they should never be stored in plain text. Read the rest of this entry »

I wanted to make a quick post about how the end user interacts with our applications, and how we as developers sometimes get it completely wrong. Sometimes we are so engrossed with the code, the how, that we entirely forget how an end user would look at it. Read the rest of this entry »

After months of wanting to start a developers blog, and after months of putting it off, I’ve finally got around to setting everything up. So here it is.

I want to give a little background information on this little endeavor of mine. I first started playing around with the idea about a year ago. I had just solved a really annoying problem in a project I was working on. You know the kind: something that was supposed to be simple, but ends up taking entirely too much time. I remember thinking that in hindsight the solution was simple. That’s just how things work isn’t it?

Afterwards I thought, “I wonder how many people I could help if I were to write about what I’ve just learned.” This line of reasoning led me to the idea of Devlog. On the many topics I plan to cover in the coming months and (hopefully) years, I really want to add a few gems that you won’t find anywhere else.

There are an overabundance of tutorials online pertaining to web development, but there are some topics I don’t see covered much. There are lots of how-to’s ranging from rounded corners with CSS to CAPTCHA images with PHP. Out of the thousands and thousands of sites, there are some pretty key topics of discussion that really seem to be lacking. You might find a tutorial on how to connect to a database using PHP but it never goes into much detail about things like SQL injection or keeping stored information safe. It is these kinds of forgotten but important subjects I want to cover.

The first topic, unfortunately, will not be the aforementioned “annoying problem.” After all this time and after countless other “annoying problems,” I cannot seem to remember the exact one that ignited the cascade of thoughts that led me here. Good thing there are always more problems to be solved!

So that about wraps up this first introductory post on the brand new Devlog. I cannot guarantee any consistent posting time line, but I will do my best to try and provide some fresh content every once and while. With RSS readers so popular these days, no doubt you can just add the Devlog feed to your client and never worry about it until there’s something new and interesting to read.

Until next time, happy coding!