• RSS
  • Email
  • Twitter

CakePHP Digest #18 - The CakeFest Edition

Posted by Matt on Tue, Jul 21 2009

CakeFest

Big News

The big news everyone is talking about from CakeFest is Cake3 - a completely overhauled version of CakePHP geared towards PHP5.3. Unfortunately I was stuck watching over little one (by that I mean my co-workers...I kid...you guys are the best) and didn't make it to Berlin. Plus, ustream.tv ate the keynote videos, so I probably have less details then anyone. Of course it didn't take much detective work to find the processed versions of the keynotes that will probably soon be seen on live.cakephp.org. In other news CakePHP2, a PHP5 version, was also announced, but was so overshadowed by Cake3 that it resorted to cutting itself for attention.

The Show

Nate Abele, Garrett Woodworth, and Jeff Loiselle did a podcast recently discussing what went down at CakeFest. Nothing too earth shattering was revealed, but it clocks in at a trim 27 mins, so it's worth a listen. Thankfully they didn't answer any questions from the IRC channel, so I didn't feel so bad that I didn't waste an hour figuring out how to use IRC.

Interviews

Also on live.cakephp.org are three interviews. I haven't had a chance to check any of these out yet, so I'll just throw out the links, with a description of what I think they are talking about based on the preview image:
Nate Abele and Jeff Loiselle discuss various leg crossing positions. Nate prefers the traditional over the top (The Orwellian), while Jeff tends towards the perpendicular tuck.
Gwoo and Jeff Loiselle don't actually talk in this one. They just flex for the camera for 13 mins.
Mariano Iglesias explains the dangers of hat head to Joël Perras

Recaps

Graham Weldon has recaps of each of the talks posted on CakeDC.com.

Cake Toppings has a short post, which includes the bit: "That saterday had a few interesting talks and also some not interesting ones." Unfortunately, no further details where given. DRAMA!

Kevin van Zonneveld has a pretty long post on some of the tips he picked up.

Felix Geisendörfer posted his summary on the newly re-designed debuggable.com.

@alkemann has a post covering some of the out of conference shenanigans, including Fork Master (co-created by gwoo), which is kind of like horseshoes but with less of a chance of breaking a toe and a greater risk of losing an eye.

Slides

A bunch of the slides for the talks are posted. Oddly the files are all exactly the same size (512.0 Byte). Really impressive that all the presenters could coordinate and pull that off.

Mind Map (whatever the heck that is)

Not really sure what the point of these things are...but here is one for CakeFest.

Random Video

I leave no stone unturned. No link unhyperlinked. Here is 49 seconds of dimly lit bowling that @pierremartin claims came from CakeFest, but could easily be a night at rock and bowl from three years ago.

Photos

There were a bunch of random single shots posted on twitter, but I'll stick to the galleries here.

A bunch of iPhone shots from @alkemann.

Graham Weldon also has a picasa gallery, which includes some moderately NSFW shots. Someone should do A/B testing on the NSFW tag. I bet click throughs jump like 100000% with it.

And finally @pierremartin has a picasa gallery as well.

That's It

Sorry if I missed your blog recap, photo set, drunken video, or whatever. Feel free to leave a link in the comments.

Posted in CakePHP | 11 Comments

CakePHP Digest #17 - Non-CakeFest Edition

Posted by Matt on Mon, Jul 13 2009

News

CakeFest...

...won't be mentioned in this digest. Look for a special CakeFest Edition later in the week once all the posts are in and ustream gets around to processing the keynotes.

CakeFest Conference Pass Winner

Congrats to Paul R. Zwiers on winning the free conference pass to CakeFest. I'm sure he had an awful time and wish he had just sold it on eBay.

In The Wild

Dead Michael Jackson Jokes

I think this site proves what I've been saying all along: If you need to quickly put up a site to capitalize on the death of celebrity, then CakePHP is your framework.

Dos Equis Academy

Part of Dos Equis "Most Interesting" marketing campaign, the academy site is a bunch of mini flash games. The games aren't what you would call "good" or "entertaining" or even "moving at an acceptable framerate." They were probably coded by the same guys who did ustream.tv's video processing program.

JumboTweet

jumbotweet.com allows you to post tweets longer then 140 characters to twitter. Basically you make your tweet through the site and the message will be shortened a link to the full message will be included.

Pixelglo

Pixelglo.com is a monthly photo competition. The theme of the first contest is "Wine". Surprisingly, the rules are fairly open: "Our first contest is about anything wine. Vineyards, bottles, taste or anything else that reminds you of wine." I think we have a winner right here.

unameen

unameen.com is a "community website which helps people to share and organize events." You can read more in the Bakery article.

In The Blogs

exclusive option

lecterror has a post about the exclusive option, which can be applied to hasMany relationships. Doing this can save a bunch of queries when doing a delete. I actually ran into this issue shortly before lecterror's post, so it was a very timely read for me.

Tutorials

Jamie Nay has a a couple roundups on useful CakePHP tutorials (here and here). He's trying to post at least 5 links every week, so check it out.

Code

Another CMS

This one's called Camiro. It's not yet at stable release, but there's some stuff there now if you want to check it out.

RSS Datasource

Another nice piece of code from the Loadsys team.

ClamAV Plugin

Not really a true CakePHP implementation, this code is more of a straight PHP class with a Cake shell. All the actual ClamAV stuff is implemented as a PHP class, rather then as a datasource. Still might be helpful to some people.

Uploader Plugin

Miles Johnson released his uploader component.

Named Routes

Mark Gandolfo released a named router class which makes it easier to create links in views.

//the normal way:
$html->link('Edit User', array('controller' => 'users', 'action' => 'edit', 5))

//with named routes
$html->link('Edit User', url('edit_user_path(5)'));

I'm Out!

And on that note don't forget to subscribe to my feed or follow me on twitter.

As always if you think I missed something leave a comment. Or if you do something interesting and want it included in the next digest, send me an email.

Posted in CakePHP | 2 Comments

CakePHP Status Dashboard - Everything You Need To Know About Your App On One Page

Posted by Matt on Mon, Jul 06 2009

Beta

First off this thing is still pretty rough. I don't have any unit tests at the moment and I'm likely to make huge, wholesale changes on a whim.

Download

Get it at GitHub

What The Heck Is This Thing?

You build a cool CakePHP app and now you have to maintain it. You go to Google to check your analytics; you SSH to your system to check log files; You log into your web admin to check affiliate clicks... Wouldn't it be cool if you could check all this (and more) from one page? That's what this status plugin does. Check out the screenshot:
CakePHP Status Dashboard

Or visit this live (but admittedly boring) example.

What Are The Different Panels Available?

Right now there are four "core" widgets, some of which have multiple options, so they can produce multiple panels.

Google Analytics

Multiple panels for quick info on your visits, referrers and search engine keywords using the Google Analytics API. Adjustable timeframes to get a recent or long range snapshot.

Shells

Add logging to your shells to capture info when they run - great for shells that run from cron. Clicking on the shell link in the panel pops open a window with detailed information. Requires integrating the log task in your shell.

System

Basic information about the system hardware, including disk space and uptime.

Logs

Show Cake's log files. Can be used on any log file in /app/tmp/logs, including custom ones. Just pass the log file name(s).

Extending For Custom Panels

It's pretty easy to write your own custom panels. Check out the click plugin, which tracks outbound clicks and displays the results via panels in the status dashboard. I'll write full post on how to code your own panels in bit.

Posted in Code | 17 Comments

CakePHP Digest #16

Posted by Matt on Thu, Jun 18 2009

News

Preface

I just wanted to say this is probably the highest quality of links I've ever put together for one of these digests. There have been some really good blog posts and code released over the last 2+ weeks.

Updated IBM Tutorial

I saw this link floating around, but ignored it for awhile since I thought it was just the old version of IBM's Cooking Up Websites Fast brought back to life. Turns out it's completely updated for 1.2 and covers everything from installation to security to caching.

@CakePHP

So what happened to the CakePHP twitter account? Did the devs lose the password? Don't get me wrong, it's great that I'm the last link tweeted, but it's been over a month now. Let's get this thing rolling again.

Tickets and Commits

Validation Rules

I'm sure the Cake team would be perfectly happy to go the rest of their lives without ever seeing this ticket again, but I'll bring it up one last time. It's #5145 - Cake should have a alphanumeric+whitespace validation rule. On the surface the need for this type of rule seems to make sense, but as Joel Perras points out in the Google Group it's a fairly uncommon scenario. Actually, I can't think of when I'd actually use this rule - post a comment if you have.

This also opens up an opportunity for someone in the community to make an awesome behavior (packaged as a plugin, of course) that encapsulates a bunch of random, bonus validation rules. Joel even gets you started by providing a "alnumWhitelist" rule. Whose gonna run with this?

In The Wild

F-E-E-D-Z.com

This one has actually been up for awhile, but I held of until the bakery article stabilized. F-E-E-D-Z is a feed directory.

Dropfood.com

Dropfood is a recipe aggregation site, at least that's what I'm inferring since there isn't a description anywhere. It seems to be moderated, so only select recipes are included. Clicking on one brings you to a framed site with the recipe and diggbar like bar for Dropfood.

Cyclingnews

I'm not 100% sure this one is Cake site, but @frodosghost heard that it is. Good enough for me.
Unlike the two sites mentioned above, Cyclyingnews.com has original content and focuses on...wait for it...cycling news! It's pics like this and this that make me wish I had spent less time trying to jump shit with my bike as a kid and instead just rode for a really long time. Plus, I could finally wear my shirt like this and people at work wouldn't give me funny looks.

In The Blogs

Vanity Routing

Let's say you have a site, we'll call it FaceSpace in this example, where you want to have "www.facespace.com/vanity" route to a particular controller. But you also want to make sure that your actual controller urls still route correctly. lecterror has a quick tip on how to accomplish this.

Two from Debuggable

The first is a cool little shell that can be used to clear cache. If you're going to actually implement this though, I'd use the version that Joel Perras rolled into a plugin. Joel's version is also updated to use the CakePHP clearCache function.

The second post from Debuggable is a quick intro on unit tests in CakePHP and has some good links on getting started.

Sending Email with GMail

Marc Grabanski has a post on using the SwiftMailer component to send email via Gmail. Another way to do this, assuming you have control over your server, is to install msmtp and set your sendmail_path in php.ini to use it. I'll post about it if anyone's interested.

Simplifying Controller with Exceptions

Mark Story has a post of using PHP's try...catch() handling to clean up controllers and components.

Code

AutoLogin Component

I should have mentioned this one in the last digest, but completely wiffed. Miles Johnson released an AutoLogin component which allows you to add a checkbox to your login form, so that returning visitors can bypass the login.

Commentable Behavior

Jose Diaz-Gonzalez released a behavior to allow comments to be tied to any model.

Filter Component

Ever wanted to apply a filter to your paginated list? James Fairhurst makes it easy with his Filter Component. Unfortunately there's no download for this one, so be prepared to ctrl-c and ctrl-v.

CouchDB

If you're into non-relational databases you might want to check out this Couch DB datasource from Chris Hartjes. Or take a look at the improved version from Gwoo.

Interactive Plugin for the DebugKit and Console

This is one of mine. The Interactive Plugin lets you quickly run commands against your Cake app. I saved about 30 minutes of debugging using this to fix an issue today.

I'm Out!

Don't forget to subscribe to my feed or follow me on twitter.

As always if you think I missed something leave a comment. Or if you do something interesting and want it included in the next digest, send me an email.

Posted in CakePHP | 6 Comments

CakePHP Book and Code Updates

Posted by Matt on Fri, Jun 12 2009

The Book

For anyone who missed it, I released a free CakePHP book a month ago. Since then it's been downloaded over 2500 times. I've also received some great feedback and have made a bunch of corrections to the code and grammar. The biggest change is that the table of contents is now links and will jump you right to the section. That's reason enough alone to grab the updated version. The new permanent home page for the book is here.

Interactive Console and DebugKit Panel

Github Link

http://github.com/mcurry/interactive

Updates

I fixed a couple issues that were pointed out in the comments of the announcement post.

One of the suggestions was to have the up arrow cycle previous commands when using this in the console. It's a great idea and actually works magically on ForTheWindows. I checked it out and I didn't see a way to make it happen for all systems though. So, I did the next best thing. Hitting enter on a blank line re-runs the previous commands. Entering 'h' brings up a list of the last 20 commands and you can run one by just entering the number. Command history is also saved across sessions, so you can exit and go back in and still run old commands.

Custom Find

Github Link

http://github.com/mcurry/find

Pagination

I pulled in some of the ideas from Daniel Salazar's post and now the custom find types have built in pagination support. It's kind of scary how easy it is. Here's an example:

$this->paginate = am($this->paginate, $this->Post->find('published', array('paginate' => true)));
$this->set('posts', $this->paginate());

This only works if you are still using one of the default find types to run the actual query, as opposed to Model::query();

Extending Model

I struggled with how to make this plugin easy to install. I didn't want to force people to have to copy and paste a bunch of code into their AppModel. I felt like that would make updates harder and would just make AppModel too messy. So instead I recommend that you have your AppModel extend FindAppModel instead of Model. FindAppModel in turn extends Model. Multiple inheritance would come in handy here.

Ajax Chat

Github Link

http://github.com/mcurry/chat

Updates

A couple small changes here. The helper now handles cake installs that aren't running in webroot automatically, so you don't have to set it in the JavaScript manually. Also the posted chat message now appears instantly in the chat window. Before you'd have to wait for an update for the message to appear.

Asset

Github Link

http://github.com/mcurry/asset

Updates

The order that scripts and codeblocks is now maintained. The previous version always put codeblocks after scripts, but there are times when the codeblock needs to go before a script. The new version keeps everything in the order that it was entered. This means if you do script1, codeblock, script2 that the two scripts won't be merged because it is assumed that the codeblock is dependent on script1 and script2 is dependent on the codeblock.

JS Validate

Github Link

http://github.com/mcurry/js_validate

Updates

I merged a couple changes from javierm's fork. These include a fix for the numeric check, matching Cake's default error HTML and including the fieldName when calling custom rules, which should make doing Ajax validation much easier. I'll have a post showing some examples of this next week.

Posted in CakePHP | 5 Comments
4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12

Tags

  • Startup
  • Satire
  • Code
  • CakePHP

Popular Posts

My Sites

  • PlanbookEdu.com
  • RSStalker.com
  • Later.RSStalker.com

My CakePHP Plugins

  • Asset (JS/CSS) Packager
  • Custom Find Types
  • Html Cache
  • JavaScript Validation
  • Site Status Page
  • Static User
Copyright © 2012 PseudoCoder.com, All Rights Reserved.
Powered by Croogo, Built with CakePHP