Upgrade Your Drupal Skills

We trained 1,000+ Drupal Developers over the last decade.

See Advanced Courses NAH, I know Enough
Jun 28 2011
Jun 28

I'm trying out changing the podcast over to a screencast to save time typing up notes and give more to the user (by actually seeing what I'm talking about.) Please note, this is far more "from the hip" than the podcast used to be so who knows what I'm going to say.

P.S. I'm still creating the audio podcast, it just comes from the screencast.

Dec 28 2010
Dec 28

A few months ago I had the privilege of speaking at DrupalCamp Atlanta.  The talk I gave covered the CMS selection process across multiple languages with Open and Closed source Content Management Systems.  While at first glance it might appear an easy choice to go to your usual CMS, it might not always be the right choice. Please watch the video and go through the slideshow to find out what points I measured against for multiple large clients.

Jan 18 2010
Jan 18

I am often presented with visions of poor and haggard open source enthusiasts walking the streets in disarray and varying degrees of sanity.  These programmers, artists and content managers could be working for upstanding corporations earning an honest dollar, instead they sit around working on projects with no monetary value.  It's bad enough that we have hordes of these people already but sadly they are training a new generation of open source zealots to tread in their meaningless empty footsteps.

It is commonly agreed upon that the only software worth producing is "enterprise" that is controlled by a single corporation.  The unguided masses swear that a large distributed developer base is an alternative and possibly better solution to proprietary software.  Why have thousands of people from various backgrounds work towards one goal when you can't fire them?  How can you trust the aim of an unguided group that isn't driven by fear or money?

It is with this proposal that I suggest a solution to these problems.  We need a comprehensive plan that will segment off the existing community along with those they wish to teach.  I propose we create a meeting intended to draw in the masses with promises of openness, education and networking.  Once these misguided souls are all corralled into one location we'll leave them there for a weekend.  A weekend together in their own chaos and squalor will surely show them the errors of their good natured ways as well as scare away potential followers.

This solution is not immaterial, it has a name, a time and a place.  It is called Florida DrupalCamp and it will be hosted at MindComet on Feb 20th and 21st.  If you know someone who needs to understand the dark and dangerous path they are heading down, please send them.  This is a problem we all need to help fix.  For more information: http://2010.fldrupalcamp.org


Just in case you took me seriously, this entire post is satire/sarcasm and based off of Jonathan Swift's "A Modest Proposal" in an effort to get people to pay attention to the FL Drupal Camp.

This is the second Florida DrupalCamp and it is shaping up to be bigger and better than the prior years.  This year we'll feature three separate tracks of learning, have speakers from all over country and did I mention it's catered?

In addition to us doing our standard *camp activities we'll be hosing a special second day that isn't in camp format.  Instead of covering topics we'll be building a website in one day for a Florida based nonprofit.  While we're building the site we'll be pairing up Drupal experts with people who are new to Drupal in an effort to help a charity as well as teach the next generation of Drupal Experts.  To find out more about Coding for a Cause please visit http://2010.fldrupalcamp.org/coding-cause-application

Nov 22 2009
Nov 22

How many times have you been coding something and it doesn't work even though you've used an api/function call hundreds of times before?  I ran into this the other day with node_load().  For those of you use the node_load function, can you tell me how many arguments it has and what those arguments do (without looking at api.drupal.org?  I know, some gurus can, but can the average module developer do it?)

In this instance, I created a module that was updating data from a MSSQL install on existing nodes.  After I did my node save I needed to do a node_load of the node I created/modified (some steps happened in between with other modules), modify some of the data and then save it again.  The only problem is, when I did my second node_save() my first save's data was wiped out.  After turning on debugging I found that my first (SQL) update worked properly but my second update was using data from before my first update.  How could that be, I did a second node_load (they were in different functions)?  It turns out that node_load was using a cached version of the node.

I'm not dogging the internals of node_load, it's a fine function and if I was a sailor on leave at a bar, I would ask it to dance.  In fact, I've had to employ it's caching abilities quite often so don't take this as some type of Drupal sucks post, I hate the core developers or cheesy link bait.

What I was doing isn't really the point of this post nor is how node_load works.  It's the argument order and the default argument that I'm against.  Yes, I'm writing a ~200 word post about three arguments in one function.  I don't like the fact that the third argument, "reset" is defaulted.  There, I've said it.  The entire problem I had (yes, it was my fault) would have been much easier to debug if the argument did not have a default value.  This way, when I called node_load(123) I would have received a PHP error stating that I was missing an argument for the function.  Think about it, if there is no default, you would have to put true or false there (in this case, it would have forced me to read the documents).

I am aware that having an API use sane defaults is SOP and this issue affects a fraction of a fraction of developers but I believe it's a bad practice that encourages programmers to not pay attention (I know, I know, I rush, I'm the king of this.  On the other hand don't most developers have some type of impending deadline?)

So what's the point of this rambling tirade?  In the small scope I want the order of node_load to be changed and one of the defaults to be removed (Drupal 8 perhaps).  For the big scope I would like to hear from the community about other functions that have defaults that might hide bugs.  I'm not just doing this because I'm too stupid to read the docs, I would like to move forward for D8 in reviewing the API for these types of gotchas that can seriously lower the frustration level of non-Drupal-guru developers.  Please let me know your thoughts.

Mar 26 2009
Mar 26

Just wanted to let you know that there's a new DrupalEasy podcast (#3) now out there.  If you haven't listened to  our podcast I'd highly recommend that you do if you do any work at all with Drupal (or if you're interested in working with Drupal).  We cover, Drupalcon, SXSW, Setting up a Drupal Theme with Artisteer, the 2009 Google Summer of Code and of course, our module picks of the week!

Mar 03 2009
Mar 03

I'll be leaving for a few days to attend this years US Drupalcon with both the Mindcomet crew and DrupalEasy crew!

If you happen to see me and you follow my blog, twitter or podcast say "hi" (I'll be the guy wearing some type of funny hat with glasses and a soul patch). 

Feb 22 2009
Feb 22

So you want to create a DrupalCamp by where you live eh?  Great, running a camp isn't actually as hard or crazy as you might think.  Here are my lessons learned from my experience in co-running the first Florida Drupal Camp for the Florida Drupal Group (I get a nickel every time I mention Florida or Drupal).These lessons are what I took away but please remember to read the Drupal Camp Organization Guide since it has tons of helpful information. 

  • Chicken and the Egg - It's hard to get sponsors without a location/date chosen.  It's hard to get a location without sponsors.
  • Properly label your tracks and make it painfully obvious
  • Sound systems can be very helpful if you sit down to do a demo
  • Doing live demos are much more stressful then just presenting
  • What can go wrong in a tech demo, will
  • Twittercamp  or a similar program is really fun to have projected on a wall
  • You can plan for everything but something will always slip by, have backup people to run and get things or fix it.
  • Cheap chairs aren't fun to sit in for hours on end.  Slightly more expensive chairs don't really make it easier.
  • Breaks between sessions are good, make people get up and walk around.
  • Don't overextend yourself.  Choose one thing to do and let others do the stuff.
  • Being a presenter and janitor at the same time makes for some interesting conflicts (literally having the bathroom run out of toilet paper while I was presenting)
  • Having a camp/conference that appeals to everybody is close to impossible, pick your target and go for it.

Overall, working on the first Florida Drupal Camp was a blast and believe it or not I will do it again... next year.  It is a lot of hard work but well worth it in the long run both for you and the community.  I can't stress how important community is to Drupal, even if you can't code, design or do other technical things, you can always start up a local Drupal group or help somebody out with Drupal or other open source software. The point of all my ramblings, go out there, do something and make a difference even if its little, it's worth it.    

Feb 20 2009
Feb 20

I'm proud to announce that the first DrupalEasy podcast has been released.

Mike, Ryan and myself end up talking about the Drupal Association election, Drupalcon Europe 2009, Drupal + Mobile, Plug in Manager and Fields in core among other things.   I think it's worth a listen even if you aren't a hardcore Drupal person since we try to keep the content at a mid-level but I'm obviously biased.

Also, if your going to be at DrupalCon DC and you develop Drupal or Drupal modules and you want to be interviewed for the podcast please contact me so I can setup a time.

Jan 13 2009
Jan 13

Florida Drupal Users Group is happy to invite you and your Drupal interested friends to the first Florida Drupal Camp on Saturday February 7th from 9AM to 5PM yes a full day of Drupal love. What could be better than enjoying a day of Drupal in sunny Florida in the winter time?

This event is open to everybody from novices all the way up to experts.  Even if you've never heard of Drupal, you're welcome to come.

Register now. Seating is limited and the price is right (free!!!) go to: http://drupalflorida.eventbrite.com/

Jan 07 2009
Jan 07

Why would you as professional web developer ever want to make it easier for your clients to leave you?  Some of you might have thought of this when Acquia announced their Drupal service lineup and it might be somewhat true but that's not the entire story.

As a professional web developer I make money off of creating websites, upgrading existing websites and yes, sometimes fixing my mistakes as well as others.  Why would I ever want to make it easier for clients to leave me, costing me money in lost updates/fixes?  In truth, I don't want to lose clients, nobody does.

I would wager to say that nobody is going to lose a client just because Acquia now supports all Drupal modules.  Yep, I said it.  Acquia might be the new foreign exchange student that draws all of the chicks in the lunch room but lets face it, if you are delivering a good service and you have a good relationship with your client, they won't be running to Acquia.  They will stick with their tried and true hero.  Now don't go too far with this analogy, I'm not saying you should ignore Acquia's services all together.  In fact, you should be using Acqua's services to enhance your own offerings (those of you who thought threesome, get your mind out of the gutter).

I now propose using the Acquia Drupal distribution with or without the service offerings from Acquia to all of my clients in order to provide them options and assurances.  By giving the client options I'm saying to the client "I'll create the website for you with all of my expertise and at the end of the project, you can stay with me or if for some reason that doesn't work for you, there is a large corporation that has your back".  The assurances that there is a large corporation of Drupal experts that are only a phone call away is a huge benefit for most of my clients (even if they don't use it) regardless if they stay with me or leave.  Most of my clients see Acquia as an isurance plan, if there's a problem and the generalist (me) can't solve it, they can go directly to the experts.

I now also use Acquia as an exit strategy for troublesome clients.  In the past, if I chose not to continue the relationship after developing their site, I pretty much left them high and dry by saying I would do no more work for them.  Now with Acquia, I just refer the client and let them know that I won't be working with them any longer.  While the end result for is the same for me I generally feel much better of at least giving the client an option.

Did you notice that none of the reasons I listed involved my clients running off to Acquia to create their Drupal site leaving you in the lunchroom crying?   I know, I know, I went back to the metaphor.  That's because it's not Acquia's focus, they are there to support Drupal, it's clients and it's developers.

In summary, treat your clients right and build a good relationship with them while using Acquia to supplement your own offerings and both of you (the developer and the client) will be much better off.  Best of all you can now tell the annoying Microsoft IT guy at your client that Drupal does have "Enterprise" support.

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web