This is a presentation I recently gave to provide an overview of PostgreSQL and some of it's excellent features, including full-text search, multiple built in datatypes, data compression and extensions.
Also, Morgan Freeman is narrating. You're welcome.
I've always been a proponent of the "right tool for the job" approach to programming. Different languages are well suited for different situations. Over the past 2 years I've spent a great deal of time with Ruby on Rails after coming from a background of PHP, Java and Perl. Here's how I got started and some of the lessons I learned along the way.
Web frameworks are great, don't get me wrong here. They provide a structure and consistency across projects that will transcend developers over the life of a system while dramatically simplifying the code base amongst other wonderful side effects. But what's the downside?
I'm obsessed with performance tuning. It's an itch that can never fully be scratched. A sickness that can never be cured. Here's the story of how I caught the bug.
I had the opportunity to visit the class of one of my legendary former professors yesterday and got to share a classic story about him...the time he gave us an impossible assignment.
Asking people for payment for work is a touchy subject for everyone involved. We've had the luxury of experimenting a little bit over our first couple of years, and here's what we learned.
When we first started out, we listed the thorough quality assurance review as an optional piece of our estimates. We had this incredibly naive idea that if we gave people the option to save a little money up front that they'd fully understand if there was anything that needed to be tuned up, post-launch. We learned our lesson...hard.
Have you ever been working on a website and needed direct access to the database, but couldn't get access without using something like phpMyAdmin? SSH tunneling can solve this common problem and a whole lot more.
In the age of Twitter and Web 2.0, we've started to see a lot of websites drop the standard www from their domain names. This could simply be a product of people following trends or just trying to be a little different, but the real question is "What are the drawbacks?"
We're a bit obsessed with performance optimization around here. It's an itch that can never be fully satisfied because there's always something more that can be done. Brightball.com is powered by our web application development platform, The Intersect (we're also fans of NBC's Chuck). The Intersect is the same system we use as the basis for all of our client's projects and we decided to put it to the test at the hands of Yahoo! YSlow.
Cake has a wonderful shell script function built into it called extract that will run through your code and create a .po file full of all of the text contained within your __('My text here') calls. You can then pass these files onto to translators to modify them for your languages. When you want to add variables though, you have to break it up into pieces which may change the context of the phrase. Here's a way around that.
I couldn't find any resources on setting up WYSIWYGPro with Cake so I developed this helper along with instructions for total integration with your system. If you've never used WYSIWYGPro, you should check out the demos. I've tried every WYSIWYG editor out there and none of the other ones even come close as far as I'm concerned.
PublishableBehavior allows the use of datetime fields for start and end ranges on content. Included functionality allows for checking published status, toggling to published / unpublished status, and adding conditions to a find to properly filter those results.
While working with the date/time input fields in Cake I got tired of having to select 3/6 drop down boxes to choose all of the date/time information and specifically of having to select 3/6 drop down boxes if I decided to clear the date. A little bit of jQuery will clear this right up though.
If you've spent anytime wanting to use ACL on your applications, you know how tedious it can be to manually enter your entire controller and action structure. This Task will handle finding and loading or updating all of those for you whenever you run it from the command line.