<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Using less Drupal</title>
	<atom:link href="http://blog.allyearbooks.co.uk/2008/09/11/using-less-drupal/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.allyearbooks.co.uk/2008/09/11/using-less-drupal/</link>
	<description>Create your yearbook using our web-based yearbook system, with yearbooks printed in the UK</description>
	<lastBuildDate>Fri, 01 Apr 2011 05:46:08 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.2</generator>
	<item>
		<title>By: Doli</title>
		<link>http://blog.allyearbooks.co.uk/2008/09/11/using-less-drupal/comment-page-1/#comment-31</link>
		<dc:creator>Doli</dc:creator>
		<pubDate>Fri, 12 Sep 2008 09:59:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.allyearbooks.co.uk/?p=111#comment-31</guid>
		<description>I&#039;m preparing to start some social network, I&#039;m still working on graphics and functionality, but slowly starting to look for the technology to built my site. I&#039;m thinking mainly about drupal because of the issue dalin pointed out in his comment. I don&#039;t want to be so much depended on the programmer using his own framework, coding tricks etc. If I build something in Drupal there shouldn&#039;t be any problems in finding some other companies which could take over the coding when something goes wrong. This is very important thing for me. And in the case of updates when new release shows up. I think it can be good for the site, you can refresh it, rethink some ideas, remove the bad ones, work on the performance it&#039;s good time to do it.</description>
		<content:encoded><![CDATA[<p>I&#8217;m preparing to start some social network, I&#8217;m still working on graphics and functionality, but slowly starting to look for the technology to built my site. I&#8217;m thinking mainly about drupal because of the issue dalin pointed out in his comment. I don&#8217;t want to be so much depended on the programmer using his own framework, coding tricks etc. If I build something in Drupal there shouldn&#8217;t be any problems in finding some other companies which could take over the coding when something goes wrong. This is very important thing for me. And in the case of updates when new release shows up. I think it can be good for the site, you can refresh it, rethink some ideas, remove the bad ones, work on the performance it&#8217;s good time to do it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dalin</title>
		<link>http://blog.allyearbooks.co.uk/2008/09/11/using-less-drupal/comment-page-1/#comment-30</link>
		<dc:creator>dalin</dc:creator>
		<pubDate>Fri, 12 Sep 2008 05:56:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.allyearbooks.co.uk/?p=111#comment-30</guid>
		<description>&quot;The ‘programmer’ cares about the functionality of the form but not the visual design of the form. The ‘designer’ doesn’t care about the functionality and instead works on how it looks.&quot;

Actually the reason that things are separated is the MVC design pattern.  This call for separation between the model, view and controller (The data, how it&#039;s displayed, and how its manipulated).  You could toss everything together, but it would be really painful to maintain.  What amounts to a minor inconvenience of defining your form in one place, and theming it in another, makes for far more readable, and maintainable code.  

The importance of this and similar things should not be underestimated.  What if you disappear? Will the project be able to continue?  Or better yet, what if your organization grows?  Will someone be able to join the project and get working quickly?  You can&#039;t hire an expert in your custom framework.  Will it take six months of _your_ time for you to train a new hire on your custom framework that doesn&#039;t have a drupal.org to learn from?  

P.S. Your name fields appear on two lines in my browser.</description>
		<content:encoded><![CDATA[<p>&#8220;The ‘programmer’ cares about the functionality of the form but not the visual design of the form. The ‘designer’ doesn’t care about the functionality and instead works on how it looks.&#8221;</p>
<p>Actually the reason that things are separated is the MVC design pattern.  This call for separation between the model, view and controller (The data, how it&#8217;s displayed, and how its manipulated).  You could toss everything together, but it would be really painful to maintain.  What amounts to a minor inconvenience of defining your form in one place, and theming it in another, makes for far more readable, and maintainable code.  </p>
<p>The importance of this and similar things should not be underestimated.  What if you disappear? Will the project be able to continue?  Or better yet, what if your organization grows?  Will someone be able to join the project and get working quickly?  You can&#8217;t hire an expert in your custom framework.  Will it take six months of _your_ time for you to train a new hire on your custom framework that doesn&#8217;t have a drupal.org to learn from?  </p>
<p>P.S. Your name fields appear on two lines in my browser.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dalin</title>
		<link>http://blog.allyearbooks.co.uk/2008/09/11/using-less-drupal/comment-page-1/#comment-29</link>
		<dc:creator>dalin</dc:creator>
		<pubDate>Fri, 12 Sep 2008 05:34:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.allyearbooks.co.uk/?p=111#comment-29</guid>
		<description>re: theme functions: &quot;Then if in theory there was a security release which changes that function I’d have to make the same change in my function.&quot;

By definition there should not be any real logic in a theme function.  Theme functions add html tags to pre-constructed data, any logic should happen earlier in the flow.  Thus the only real opportunity for a security flaw would be a missing check_plain() on a title for example.  And these should be becoming all but extinct in major modules due to the new Drupal security scanner project.  

I have far less confidence in the security of my custom code than I do in Drupal or the major contributed modules since more eyes see the code, and more security tools are used to audit it.  

I see a custom framework having the same issue, only worse.</description>
		<content:encoded><![CDATA[<p>re: theme functions: &#8220;Then if in theory there was a security release which changes that function I’d have to make the same change in my function.&#8221;</p>
<p>By definition there should not be any real logic in a theme function.  Theme functions add html tags to pre-constructed data, any logic should happen earlier in the flow.  Thus the only real opportunity for a security flaw would be a missing check_plain() on a title for example.  And these should be becoming all but extinct in major modules due to the new Drupal security scanner project.  </p>
<p>I have far less confidence in the security of my custom code than I do in Drupal or the major contributed modules since more eyes see the code, and more security tools are used to audit it.  </p>
<p>I see a custom framework having the same issue, only worse.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Drupal User</title>
		<link>http://blog.allyearbooks.co.uk/2008/09/11/using-less-drupal/comment-page-1/#comment-28</link>
		<dc:creator>Drupal User</dc:creator>
		<pubDate>Fri, 12 Sep 2008 04:28:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.allyearbooks.co.uk/?p=111#comment-28</guid>
		<description>Why can&#039;t you just #theme the form, do whatever markup you want and drupal_render() the few form elements wherever you to place them?  After reading that portion I just had to stop...  Not a real fan of &quot;I had a bad day&quot; posts.</description>
		<content:encoded><![CDATA[<p>Why can&#8217;t you just #theme the form, do whatever markup you want and drupal_render() the few form elements wherever you to place them?  After reading that portion I just had to stop&#8230;  Not a real fan of &#8220;I had a bad day&#8221; posts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg Holsclaw</title>
		<link>http://blog.allyearbooks.co.uk/2008/09/11/using-less-drupal/comment-page-1/#comment-27</link>
		<dc:creator>Greg Holsclaw</dc:creator>
		<pubDate>Fri, 12 Sep 2008 00:31:47 +0000</pubDate>
		<guid isPermaLink="false">http://blog.allyearbooks.co.uk/?p=111#comment-27</guid>
		<description>The trouble with this comparison is that the costs of using Drupal are very much in front you as described in your headaches, extra theming loops you have to jump through and the FAPI you need to learn.

But the benefits to using Drupal are a bit hidden until you hit a development wall. As mentioned in the last post, is your security up to snuff on your forms. When you want to add a combat spam, can you drop in the Mollom or captcha modules for instant success. Are all your user permission and controls in place for your expanding user base, with profile fields and OpenID ready a the flick of a switch.

Once you go down the custom API, home spun framework, there is no coming back. The hundreds of devs who are creating new modules and improving current modules are useless to you, and you to them.

I have been working on custom frameworks and Drupal now for years. It is true that I have to jump some building to make Drupal do what I want at times, but when I have a complex one-to-many user permission problem and instantly is solved by plugging in the nodeaccess module, I thank myself again and again that I using Drupal.</description>
		<content:encoded><![CDATA[<p>The trouble with this comparison is that the costs of using Drupal are very much in front you as described in your headaches, extra theming loops you have to jump through and the FAPI you need to learn.</p>
<p>But the benefits to using Drupal are a bit hidden until you hit a development wall. As mentioned in the last post, is your security up to snuff on your forms. When you want to add a combat spam, can you drop in the Mollom or captcha modules for instant success. Are all your user permission and controls in place for your expanding user base, with profile fields and OpenID ready a the flick of a switch.</p>
<p>Once you go down the custom API, home spun framework, there is no coming back. The hundreds of devs who are creating new modules and improving current modules are useless to you, and you to them.</p>
<p>I have been working on custom frameworks and Drupal now for years. It is true that I have to jump some building to make Drupal do what I want at times, but when I have a complex one-to-many user permission problem and instantly is solved by plugging in the nodeaccess module, I thank myself again and again that I using Drupal.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dgtlmoon</title>
		<link>http://blog.allyearbooks.co.uk/2008/09/11/using-less-drupal/comment-page-1/#comment-26</link>
		<dc:creator>dgtlmoon</dc:creator>
		<pubDate>Fri, 12 Sep 2008 00:31:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.allyearbooks.co.uk/?p=111#comment-26</guid>
		<description>Give a guy a fish and he eats for a day
Teach a guy to fish and he&#039;ll hook himself in the finger :D</description>
		<content:encoded><![CDATA[<p>Give a guy a fish and he eats for a day<br />
Teach a guy to fish and he&#8217;ll hook himself in the finger <img src='http://blog.allyearbooks.co.uk/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jake</title>
		<link>http://blog.allyearbooks.co.uk/2008/09/11/using-less-drupal/comment-page-1/#comment-25</link>
		<dc:creator>jake</dc:creator>
		<pubDate>Thu, 11 Sep 2008 20:07:59 +0000</pubDate>
		<guid isPermaLink="false">http://blog.allyearbooks.co.uk/?p=111#comment-25</guid>
		<description>@Wim Mostrey

It has to be cached for the current request, not just generally in the database. If it was just generally cached in the database, that would still involve one db query per node, which is exactly what we&#039;re talking about here.

I don&#039;t want to use another module which does stuff in nodeapi. I simply want &quot;SELECT * FROM blah WHERE blah LIMIT blah&quot; and that&#039;s it. node_load() does not fit my purpose where I&#039;m showing multiple nodes on one page in a table.

Forms are one area where I really loved Drupal. FAPI comes with a lot of built in security. I want to keep that security, whilst having better control over ad-hoc changes to the HTML layout (not everything can be done in CSS, or at least in the most appropriate and clean way). Yes, Drupal enables me to have complete control, but in a really obscure and abstract way which is very time consuming to deal with for every custom form you have.</description>
		<content:encoded><![CDATA[<p>@Wim Mostrey</p>
<p>It has to be cached for the current request, not just generally in the database. If it was just generally cached in the database, that would still involve one db query per node, which is exactly what we&#8217;re talking about here.</p>
<p>I don&#8217;t want to use another module which does stuff in nodeapi. I simply want &#8220;SELECT * FROM blah WHERE blah LIMIT blah&#8221; and that&#8217;s it. node_load() does not fit my purpose where I&#8217;m showing multiple nodes on one page in a table.</p>
<p>Forms are one area where I really loved Drupal. FAPI comes with a lot of built in security. I want to keep that security, whilst having better control over ad-hoc changes to the HTML layout (not everything can be done in CSS, or at least in the most appropriate and clean way). Yes, Drupal enables me to have complete control, but in a really obscure and abstract way which is very time consuming to deal with for every custom form you have.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wim Mostrey</title>
		<link>http://blog.allyearbooks.co.uk/2008/09/11/using-less-drupal/comment-page-1/#comment-24</link>
		<dc:creator>Wim Mostrey</dc:creator>
		<pubDate>Thu, 11 Sep 2008 19:25:10 +0000</pubDate>
		<guid isPermaLink="false">http://blog.allyearbooks.co.uk/?p=111#comment-24</guid>
		<description>Hi Jessa,

Please note that node_load() fetches a cached result if it&#039;s available, so you&#039;re not sending 100 selects to display simple information. It&#039;s getting the information straight out of the cache. Other modules can hook into hook_nodeapi to alter information and, as you say, do access control for instance. By doing the selects straight on the database, you&#039;re bypassing those. This might seem like a good idea now, but if you install other modules later on, this might give you some headaches.

It&#039;s by doing these things manually (selecting node information straight from the db, writing your own forms, ...) that you&#039;re bypassing Drupal and that you&#039;re missing out on its strength. It takes a while to learn &quot;the Drupal way&quot; but as yaph mentions, once you know how the handle them, you control very powerful instruments. Once you control these tools you&#039;ll noticate that Drupal doesn&#039;t have a lot of ‘baggage’ but that it allows you to write custom code so much easier and more flexibel.</description>
		<content:encoded><![CDATA[<p>Hi Jessa,</p>
<p>Please note that node_load() fetches a cached result if it&#8217;s available, so you&#8217;re not sending 100 selects to display simple information. It&#8217;s getting the information straight out of the cache. Other modules can hook into hook_nodeapi to alter information and, as you say, do access control for instance. By doing the selects straight on the database, you&#8217;re bypassing those. This might seem like a good idea now, but if you install other modules later on, this might give you some headaches.</p>
<p>It&#8217;s by doing these things manually (selecting node information straight from the db, writing your own forms, &#8230;) that you&#8217;re bypassing Drupal and that you&#8217;re missing out on its strength. It takes a while to learn &#8220;the Drupal way&#8221; but as yaph mentions, once you know how the handle them, you control very powerful instruments. Once you control these tools you&#8217;ll noticate that Drupal doesn&#8217;t have a lot of ‘baggage’ but that it allows you to write custom code so much easier and more flexibel.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jake</title>
		<link>http://blog.allyearbooks.co.uk/2008/09/11/using-less-drupal/comment-page-1/#comment-23</link>
		<dc:creator>jake</dc:creator>
		<pubDate>Thu, 11 Sep 2008 19:15:13 +0000</pubDate>
		<guid isPermaLink="false">http://blog.allyearbooks.co.uk/?p=111#comment-23</guid>
		<description>Thanks for all the feedback so far. Lots of really well thought out replies.

@Pasqualle:

the super-basic FAPI is super super basic atm and definitely not ready to release on drupal.org. still need a lot more thought but for the job it was required for made things really nice and easy.

&lt;blockquote&gt;Drupal is absolutely different to any other framework, you need to learn it. But when you know how it is working and why it is working that way, you don’t want to use anything else.&lt;/blockquote&gt;

I used to think this exact same thing, and still do to some extent. But I&#039;m turning back to my own framework option. Not an all-purpose framework to be used on any new sites I do, but one specific for one particular framework. As an all-purpose swiss army knife Drupal does as well as it could, I don&#039;t want to reinvent that wheel.

&lt;blockquote&gt;I see one big problem with your development practices: you do not work with the community. You try to create everything on your own. That’s not working. Drupal development is faster than anything you can accomplish, you will be left behind.&lt;/blockquote&gt;

Don&#039;t completely agree with this. I&#039;ve contributed modules on drupal before (nice_menus, tasklist, and started the idea of hook_watchdog in core). I&#039;ve spent money on Drupal consultants. I&#039;ve helped and asked for help in IRC. I go to Drupal meetups. In short, I&#039;ve really tried.

@Ronald

&lt;blockquote&gt;Where Drupal shines, I think, is as a tool for a web agency that every month needs to deal with very different kinds of websites and can quickly put them together using Drupal’s flexibility rather than coming up with different versions of custom-made tools for each website.&lt;/blockquote&gt;

Completely agree. If I were making dozens of websites rather than just the one I work on full time at the moment, then Drupal would be a grand choice.

@Matt Farina

&lt;blockquote&gt;When if comes to your form issues I’m not exactly sure where your issue is. I took a look at your form and the same look is something that can be achieved with FAPI, a tweak in the template.php (to remove the :), and some css magic (no crazy theme functions required). A suggestion, no matter which way you choose to go, might be to invest more in CSS.&lt;/blockquote&gt;

Thanks for your suggestions. I can remove the : by overriding theme_form_elements() or something like that, but then it affects all forms rather than just one. And it involves copying and pasting the code from there to my own function, then changing it in my own function. Then if in theory there was a security release which changes that function I&#039;d have to make the same change in my function. A bit like forking the code, and potentially a real headache on upgrading to the next version of Drupal if things changed (oh... I&#039;ve spent a *lot* of time upgrading my modules to new Drupal versions before).

&lt;blockquote&gt;If things keep on pace, drupal 7 should (hopefully) be much better with data sources other than nodes.&lt;/blockquote&gt;

Again, the whole idea of another Drupal upgrade makes me feel sick knowing how much time I spent last time. Upgrading to Drupal 6 within 24 hours of its release was also a terrible idea... I discovered several major, major issues with regards to forms and race conditions.

@aka006

&lt;blockquote&gt;I nominate you for a position on the Drupal Association Board;)&lt;/blockquote&gt;

Haha... thanks. I&#039;d love to spend time doing such things but the reality is this. I have a business to run, money to make, and a baby to support. The idea of spending time on anything else is lovely but almost impossible at the moment at least :(

@jessa

spot on re. load_node. I really love node_load and node_save, bringing in my own stuff through hook_load and hook_update. But the content type I&#039;ve taken away from being a node is used a lot in big tables with load of them in. I&#039;m not going to do a node_load on each one and have dozens of database queries when one query will do just nicely thanks. Sometimes abstraction is really nice, but for performance abstraction can be terrible.</description>
		<content:encoded><![CDATA[<p>Thanks for all the feedback so far. Lots of really well thought out replies.</p>
<p>@Pasqualle:</p>
<p>the super-basic FAPI is super super basic atm and definitely not ready to release on drupal.org. still need a lot more thought but for the job it was required for made things really nice and easy.</p>
<blockquote><p>Drupal is absolutely different to any other framework, you need to learn it. But when you know how it is working and why it is working that way, you don’t want to use anything else.</p></blockquote>
<p>I used to think this exact same thing, and still do to some extent. But I&#8217;m turning back to my own framework option. Not an all-purpose framework to be used on any new sites I do, but one specific for one particular framework. As an all-purpose swiss army knife Drupal does as well as it could, I don&#8217;t want to reinvent that wheel.</p>
<blockquote><p>I see one big problem with your development practices: you do not work with the community. You try to create everything on your own. That’s not working. Drupal development is faster than anything you can accomplish, you will be left behind.</p></blockquote>
<p>Don&#8217;t completely agree with this. I&#8217;ve contributed modules on drupal before (nice_menus, tasklist, and started the idea of hook_watchdog in core). I&#8217;ve spent money on Drupal consultants. I&#8217;ve helped and asked for help in IRC. I go to Drupal meetups. In short, I&#8217;ve really tried.</p>
<p>@Ronald</p>
<blockquote><p>Where Drupal shines, I think, is as a tool for a web agency that every month needs to deal with very different kinds of websites and can quickly put them together using Drupal’s flexibility rather than coming up with different versions of custom-made tools for each website.</p></blockquote>
<p>Completely agree. If I were making dozens of websites rather than just the one I work on full time at the moment, then Drupal would be a grand choice.</p>
<p>@Matt Farina</p>
<blockquote><p>When if comes to your form issues I’m not exactly sure where your issue is. I took a look at your form and the same look is something that can be achieved with FAPI, a tweak in the template.php (to remove the <img src='http://blog.allyearbooks.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , and some css magic (no crazy theme functions required). A suggestion, no matter which way you choose to go, might be to invest more in CSS.</p></blockquote>
<p>Thanks for your suggestions. I can remove the : by overriding theme_form_elements() or something like that, but then it affects all forms rather than just one. And it involves copying and pasting the code from there to my own function, then changing it in my own function. Then if in theory there was a security release which changes that function I&#8217;d have to make the same change in my function. A bit like forking the code, and potentially a real headache on upgrading to the next version of Drupal if things changed (oh&#8230; I&#8217;ve spent a *lot* of time upgrading my modules to new Drupal versions before).</p>
<blockquote><p>If things keep on pace, drupal 7 should (hopefully) be much better with data sources other than nodes.</p></blockquote>
<p>Again, the whole idea of another Drupal upgrade makes me feel sick knowing how much time I spent last time. Upgrading to Drupal 6 within 24 hours of its release was also a terrible idea&#8230; I discovered several major, major issues with regards to forms and race conditions.</p>
<p>@aka006</p>
<blockquote><p>I nominate you for a position on the Drupal Association Board;)</p></blockquote>
<p>Haha&#8230; thanks. I&#8217;d love to spend time doing such things but the reality is this. I have a business to run, money to make, and a baby to support. The idea of spending time on anything else is lovely but almost impossible at the moment at least <img src='http://blog.allyearbooks.co.uk/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>@jessa</p>
<p>spot on re. load_node. I really love node_load and node_save, bringing in my own stuff through hook_load and hook_update. But the content type I&#8217;ve taken away from being a node is used a lot in big tables with load of them in. I&#8217;m not going to do a node_load on each one and have dozens of database queries when one query will do just nicely thanks. Sometimes abstraction is really nice, but for performance abstraction can be terrible.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jessa</title>
		<link>http://blog.allyearbooks.co.uk/2008/09/11/using-less-drupal/comment-page-1/#comment-22</link>
		<dc:creator>Jessa</dc:creator>
		<pubDate>Thu, 11 Sep 2008 18:43:45 +0000</pubDate>
		<guid isPermaLink="false">http://blog.allyearbooks.co.uk/?p=111#comment-22</guid>
		<description>@Wim

node_load() performs a query on the node table INNER JOINed with node_revisions and users to retrieve *a single node*.  If one is displaying any kind of large listing - like an index listing the title of 100 nodes - we&#039;re then talking about making a minimum of 100 SELECTs just to display a simple table of information.  

There&#039;s some overhead involved in sending a query to the database and getting back a result, regardless of how many records are returned.  Repeating that overhead dozens of times noticeably degrades performance versus running a single query to get multiple records.  If one has contrib modules that make a query when node_invoke_nodeapi() is called, then the situation gets even worse.

If you can make a single query to get a list of nids, you should strongly consider writing that query to retrieve all the fields you intend to display and leaving node_load() out of it.

I&#039;m not trying to bash node_load().  It&#039;s a great function that grabs everything you for a node while ensuring that access control and contributed modules all have their say on the output.  When you need to display lots of detail about a small number of nodes it&#039;s perfect.  But, it&#039;s the wrong tool for efficiently showing a couple fields from many nodes.</description>
		<content:encoded><![CDATA[<p>@Wim</p>
<p>node_load() performs a query on the node table INNER JOINed with node_revisions and users to retrieve *a single node*.  If one is displaying any kind of large listing &#8211; like an index listing the title of 100 nodes &#8211; we&#8217;re then talking about making a minimum of 100 SELECTs just to display a simple table of information.  </p>
<p>There&#8217;s some overhead involved in sending a query to the database and getting back a result, regardless of how many records are returned.  Repeating that overhead dozens of times noticeably degrades performance versus running a single query to get multiple records.  If one has contrib modules that make a query when node_invoke_nodeapi() is called, then the situation gets even worse.</p>
<p>If you can make a single query to get a list of nids, you should strongly consider writing that query to retrieve all the fields you intend to display and leaving node_load() out of it.</p>
<p>I&#8217;m not trying to bash node_load().  It&#8217;s a great function that grabs everything you for a node while ensuring that access control and contributed modules all have their say on the output.  When you need to display lots of detail about a small number of nodes it&#8217;s perfect.  But, it&#8217;s the wrong tool for efficiently showing a couple fields from many nodes.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

