Introducing… PHP DataMapper!

phpdatamapperPHP DataMapper is an open-source project I’ve been building and working on for a little while now.  It’s a lightweight Object-Relational Mapper based on the Data Mapper design pattern, setup using one mapper per table.  The primary goal is to make database access one of the easiest parts of building your application instead of the most tedious, and for PHP DataMapper itself to have no dependencies outside the default PHP5 installation so it can be used anywhere, in any application (no frameworks required!).

The project itself hasn’t changed too much recently, but I decided to finally formally introduce this project because I finally got some time to write some decent documentation on how to use PHP DataMapper in in your own application.  Head on over to the PHP DataMapper page to check it out, or just get right into the good stuff with the Getting Started tutorial or the
Usage – Finders example.

More updates and documentation will be coming soon.  If you’re interested in learning more about the project or contributing, please join the Google Group.

UPDATE: Links have been updated to the new home for the project –

In Oklahoma? Come to The OpenBeta “Unconference”

If you’re in or around the Oklahoma City, Oklahoma area, you need to schedule some time for the upcoming OpenBeta "Unconference".  From the event website:>OpenBeta is an un-conference — a participant-driven community event aimed at exposing ideas and creating opportunities by connecting smart, passionate and motivated people with different expertises.

The event will be held on Thursday, October 30, 2008 at the IAO Gallery in downtown Oklahoma City at 7:00pm.  It’s going to be a night of good fun and networking with like-minded technology-oriented individuals in Oklahoma.  I’ll be giving a quick 5-minute lightning talk presentation myself on my upcoming InvoiceMore project and what makes it different from competing online billing and involving services that already exist.

Please consider attending, and have those networking skills ready!

Early Performance Benchmarking is a Disease

Benchmarking and performance concerns should be one of the last things you address while building your application, but it seems as though, in the PHP community especially, it’s often one of the first things novice developers think about.

Any PHP developer who’s been in the community for a while has heard preposterous claims like “use single quotes (‘) for strings instead of double quotes (“), because it’s faster”. That is, faster over the 100,000 or so iterations it took the tester to generate a number sufficiently large enough to justify the claim, with a particular version of PHP, in a particular development environment in which it was tested.

Continue reading

Presentation Slides From Tulsa TechFest 2008

Well Tulsa TechFest is over, and it was a pretty good conference overall. Here are the slides of my presentations at the conference for those who are interested. I have voice recordings of both my presentations too, but unfortunately the digital recorder I bought has no way of directly accessing the files stored in memory to move or copy them to a computer. It just has a line in/out like the old cassette recorders. What’s the point in making a digital recorder if there’s no USB cable or anything to get directly to the files? Huh Sony? Anyways – I didn’t have the cable required to re-record the audio on my computer, so I’ll probably pick one up and make videos of these presentations a little while later. But for now, you can at least enjoy the slides. Continue reading

Reading a FeedBurner Feed with PHP and cURL

Just thought I’d post a quick HOW-TO article on how to get the contents of a FeedBurner feed with PHP, because it’s something I was attempting to do last night that really annoyed me. Since I started this blog here, I decided to narrow another website of mine – – to just distribute some PHP scripts I’ve made and take down the news that was there. I replaced it with a short paragraph explanation and a feed of the recent blog posts here. The problem was, the feed wasn’t displaying, and I couldn’t figure out why.

Continue reading

Speaking at TulsaTechFest 2008

ttf2008-logoAfter anxiously awaiting a response from David Walker, the TulsaTechFest conference Director about an open speaking spot, I just about fell out of my chair today when I finally got the email with a confirmation that I was going to be presenting.  I am very excited about this amazing opportunity, and have already begun putting my speech together.  Here the topic info:

Procedural to Object-Oriented: The Benefits of Using Object-Oriented PHP

Learn the power of object-oriented programming in PHP5 and the many benefits it offers over the more traditional PHP procedural programming style.  This session will include a light introduction to object-oriented concepts and will provide real-world concrete examples of the benefits it can offer you and the PHP projects you work on.

I will be speaking on October 9th at 2:30pm, and the presentation will last for roughly 75 minutes (60 minutes to speak, and 15 minutes for Q&A).  That’s a good chunk of time to fill, but there’s a lot on this topic that will need to be covered.  If you’re thinking about getting into object-oriented PHP programing or would like to learn more about it, please attend.  I will try my best to make sure there is at least something that everyone can learn.

You can also view my page on the conference website to read a short biography and get more information on the event.  Hope to see at least a few friendly faces there!

P.S. – I plan on posting my presentation slides on this website after the event just in case anyone missed anything important or was unable to attend.

UPDATE: The conference is over, and I have posted the powerpoint slides in another post for those that are interested in the presentations I made.

Building a Better Woot! Checker: Comparison is Key

The famous “one item per day” e-commerce store Woot! periodically holds a “woot-off”, where multiple different items are sold in quick succession, each item appearing as soon as the previous one sells out completely. The quick succession of potentially interesting items selling for steep discounts has created a proliferation of scripts and programs called “Woot checkers”, and has even lead to the creation of an official list of Woot-off checkers. All of this because of the potential of missing out on the opportunity to buy something great and get a great deal on it.

Continue reading

Fixing IE7 Z-Index Issues with jQuery

For some reason, Internet Explorer 7 does some pretty funky things, and has several known bugs with it’s rendering engine that drive web developers like me crazy.  While most of the known bugs occur in relatively obscure situations and go largely unnoticed, there are a few that really stick out and cause web developers to waste many hours trying to fix them.  The way IE7 renders z-index stacking orders is one of them.

One way to fix many of the issues with IE7 is to dynamically reverse the default z-index stacking order of the elements on your page. This will ensure the elements higher in your HTML source will also have a higher z-index order on your page, solving most of the IE stacking issues. more If you’re using jQuery (the best Javascript library there is), here’s the quick fix:

$(function() {
     var zIndexNumber = 1000;
     $('div').each(function() {
         $(this).css('zIndex', zIndexNumber);
         zIndexNumber -= 10;

This code will start with a z-index of 1000, and decrement the z-index for each DIV element of the page by 10, giving the first DIV a z-index of 1000, the second, 990, the third 980, and so on. Notice that the selector will find all DIV elements with the code “$(‘div’)”, using the same syntax as CSS selectors. If your HTML code has different requirements, feel free to change the code or the selector to suit your needs by following jQuery’s documentation on selectors.

Update for MooTools


A generous commenter has posted the code for fixing z-index issues with MooTools 1.2:

if (Browser.Engine.trident){
     var zIndexNumber = 1000;
         zIndexNumber -= 10;

What’s In a Name – Does Your Domain Name Really Matter?

Last week while listing to the TechCrunch50 conference live broadcast, I noticed an interesting trend that seemed to concern VC’s on the judging panel that were asking questions and evaluating the presentations of the participating startups. Several times during the feedback and commentary the panel would give to the startups that just presented, concern about the chosen name for the company was raised. This was most evident when listing to the Yammer presentation, and highlighted at the end of TechCrunch’s post about Yammer with this quote from Salesforce CEO Marc Benioff: “The name is not very corporate. It reminded me of what I’m having for Thanksgiving. Maybe you could use a Yam for a logo.”

And during the presentation of FootNote, a sort of social network for remembering the lives of the deceased, panelist Jeff Weiner made the comment:

I don’t know if anyone wants to be remembered as a footnote.

But you have to ask yourself – does the name really matter? Would Google or Yahoo! really have been any more successful if they had launched with the name “Web Search” instead? moreDo you even know anyone who has ever been to the domain I can’t think of even one instance where I would type in the domain name of the service I want instead of a memorized company name that’s offering the service. Do you go to to find pizza in your area, or go to a useful service you know instead, like Google Maps or Yellowpages?

These panelists seem like they’re the type that would have also recommend that Flickr, now one of the most popular photo sharing sites in the world, change it’s name to something like “Photo Sharing” instead while it too was in the early startup stages. The idea that a more generic name can have any kind of profound impact on your startup is preposterous. The name or domain name of your business or startup generally doesn’t matter. The only cases I can think of where changing the company name would really matter is if the original name was offensive or incredibly hard for the average person to spell.

So in short, no – the name of your company or the domain name you choose to launch your products and/or services on doesn’t really matter at all. And the puzzling part about all of this is that you would think that Venture Capitalists and other investors in startups would understand this concept most. If your product and/or service is good, people will flock to it, no matter the name.