David Golding



CakePHP 1.2 Stable Has Arrived

By David Golding | Print This Post Print This Post

Some of the best news came yesterday: CakePHP 1.2 Final has been released. First, I want to congratulate all the Cake devs out there that made this happen. We have a lot to look forward to with you guys having accomplished this important milestone.

What this means for the framework, I think in the short run, is some immediate attention. Big releases like these attract notice, and with Cake already having a sizable audience, I expect new users to give Cake a serious go. Which of course means some work for those of us that have contributed to the documentation efforts. I plan on overhauling the Beginning CakePHP book and updating the whole thing immediately for the new release. All of my adjustments will be posted on this site.

Now that we’ve got a solid Cake core to work with, it’s time to put together some killer apps and continue building up the community. I, for one, feel much more confident about advertising the framework, now that massive structural changes to the core have been decided upon and implemented.

Happy baking, all, and have a wonderful New Year!


Review of Practical CakePHP Projects Book

By David Golding | Print This Post Print This Post

In recent months, new documentation for CakePHP has been rolling off the press. I’m pleased to forward on to you the newest addition, Kai Chan and John Omokore’s Practical CakePHP Projects. In this post, I’ll give my review of the book, which I hope proves useful for you interested Cake users out there.

Contents

The chapters, in general, focus on one project at a time. In order, here are the projects you’ll build with the book:

  • Blog (of course… :) )
  • Shopping Cart
  • Message Forum Web Service
  • Google Maps App
  • Twitter and Google Translator Mashups
  • Unit and Web Tests
  • Control Panel
  • Translation
  • Custom Automagic Fields
  • Templates/Tags
  • Dynamic Data Fields
  • Captcha

These projects aren’t designed to be absolutely conclusive, in other words, when building the shopping cart, you won’t be building a complete cart solution like ZenCart or Magento (this would probably end up being a book all by itself). But, the tutorials do apply Cake principles to application development and will produce a working application that performs useful methods and tasks.

Pluses

Why I’d encourage you to buy the book… If you’re like me, you want to see code samples of live apps that you can tinker with. In fact, the best way I learn anything is to see working code and dissect it, and manipulate it until I know what’s going on and how I can use it to fit my needs. In theory, my Beginning CakePHP book wanted to ground the reader in the overall principles of Cake development, and though I was pleased with how much code samples I was able to include, it was a fine line between overloading the reader in early phases of learning Cake and giving just the right amount of working code. In other words, I feared putting out too much code that may not make sense to beginners without explaining what was happening.

Well, Practical CakePHP Projects takes on a different theory. In a way, it assumes you’ve read my book or an introduction like it, and goes from there. The chapter on “Cake Fundamentals” does explain some basics for getting a Cake app going, but it still presupposes some knowledge in the framework. Practical CakePHP Projects gives you lots of code, with explanations of what’s happening, but is not so nit-picky that you get drawn out definitions of every line. For the coder familiar with Cake but wanting to see it applied to various projects, this is your book, and it does this well.

Minuses

Though I worked as the technical reviewer on this book, I hope this post here isn’t overly biased. No book is perfect, and useful feedback will help us all as we try to use Cake and make it a better and more widely used platform. I will be upfront: I do have an interest in this book’s success, though I don’t get paid at all for its sales or anything. My interest is two-fold: I’ve had a great experience with Apress and I’ve been spared many an hour due to Cake’s awesomeness. I truly want to see Cake see wider acceptance and use, and the first step is that the platform be sweet (which it is) and the second step is to make the documentation understandable, easy, useful, accessible, etc. Like business gurus know all too well about location, for an emerging platform it’s all about “documentation, documentation, documentation.”

Practical CakePHP Projects adds to the repertoire of Cake docs that leads new users in the right path. But some code samples overly use the controller when a better paradigm would distribute code across the MVC. But let me fore-mention this, and I still believe you’ll have a good experience with the book. Super advanced readers might quibble over some of the code or concepts, but that’s unavoidable. What’s important is that those readers who currently are new to Cake or are looking for ways to improve their working knowledge of the framework get good documentation and useful examples to work with, which I believe this book will do for you. So my own issues with the book included the dependence on the controller to get things done, some naming conventions, and, really only the Captcha chapter. Aside from these concerns, which I believe are minimal, I’m excited about having in one book a nice assortment of applied Cake code.

From Here…

Now, in this sense, I’m definitely biased: I’d love to see you read my book “Beginning CakePHP” (can’t get on my case for that, would you?). But if that’s not in your plans, at least give Practical CakePHP Projects a try. It does operate in a different mind-set, one of giving you lots of code samples to work with, and so getting your feet wet in Cake won’t take long at all with this book. If my book and this one are in your plans, I’d expect after reading these two that you’ll have a firm grounding in Cake and will be ready for as advanced methods as Cake can offer you.

If you’d like more specific reactions about the book, please catch me in Readers’ Forum or drop me line through my contact form. And, from one Cake baker to another, Happy Baking!


Future of Web Dev and the Perfect Skill Set

By David Golding | Print This Post Print This Post

As Microsoft tries to patch up its mutt of a web browser, some questions remain about the Internet Explorer behemoth and what may come of other technologies raising the ante on what’s possible with the web. I’m fairly convinced that with time, IE will be dethroned, thanks to open source projects like Firefox and WebKit. With Google Chrome entering the foray with WebKit as its rendering engine, it’s only a matter of time before IE will get pushed aside by the developers out there. And the rise of the iPhone… like Cameron Moll has been saying, the future of web dev is in mobile devices. How might a shift in the internet market further push IE to the side?

I only focus on IE because it’s really the only thing I see as holding back the progress of web technology. Across the board, it’s inferior in terms of the technical aspects of making things possible. Its JavaScript processing is terrible, it’s XHTML isn’t up to speed (it’s best to stick with XHTML 1.0 Transitional… wha? “Transitional” means not permanent, yet IE seems content to encourage holding to outdated methods), and I don’t even want to start in on how it handles CSS. To me, IE is the bottleneck.

However, this fact doesn’t seem to be slowing down real innovators out there. We’ve seen a rise in frameworks-based solutions in the last couple of years, until at this moment, some incredibly useful options exist for almost every major programming platform. In many ways, the days of writing individual scripts and classes are over.

Where I’m most impressed with what folks have been creating for web developers is with Cappuccino and SproutCore. These two projects work to abstract the JavaScript/AJAX aspect of web applications. Cappuccino appears to do a better job of abstracting entirely any JavaScript, HTML, and CSS, so all you have to do is immerse yourself in Objective-J and you’ve got yourself a stylish web app. If you want to be wowed, just go and see 280 Slides: a fully web-based Keynote-esque application. The whole thing was done in Cappuccino and (I’m fairly sure) Rails.

With the advent of such robust JavaScript frameworks, the web browser has all of a sudden become a bridge rather than a browser. The early “web-based OS” projects, I initially thought, seemed redundant and a little excessive (why build a web-based OS if, to access it, another OS must necessarily be running?). And I still hold to that opinion, though I do believe Cappuccino and SproutCore are moving in the right direction. They serve more like web application and UI frameworks, much like Cocoa on MacOS. You still need to know your programming language (Objective-C, C++, Java, or Python), but how the language interacts with the UI gets abstracted wonderfully, saving time and improving the user experience at the same time.

So, I suppose my rant here is simply to encourage developers to learn these new technologies and to use them well. I, for one, am excited about open source taking over web development. It at least helps to move us beyond waiting for the big companies to get it right. And the limits of our skills get pushed out as well.

My idea of the perfect skill set for web devs? (Just for fun :)

  • PHP 5 / Ruby 1.8
  • MySQL 5
  • CakePHP 1.2 / Rails 2.2
  • Cappuccino / Objective-J
  • jQuery 1.2.6
  • XHTML 1.0 Strict
  • CSS 3.0
  • Unix
  • Git
  • An eye for good UI

Notice how much of these are open source?


« Older Entries

Beginning CakePHP: From Novice to Professional by David Golding

David Golding

A blog about CakePHP, web design, and grad studies in religion. © 2008, D. Golding