<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://groups.drupal.org" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Enterprise</title>
 <link>http://groups.drupal.org/enterprise</link>
 <description>A place to discuss Drupal integration with other &quot;business like&quot; products (Asterisk, Hylafax, MailMan, etc.)</description>
 <language>en</language>
<item>
 <title>Drupal / PHP Developer | Vivakos, Inc.</title>
 <link>http://groups.drupal.org/node/13958</link>
 <description>&lt;p&gt;Vivakos, Inc., a leading integrator of open source and open standards based Web applications, is seeking talented and motivated PHP / Drupal developers with 3+ years experience.&lt;/p&gt;
&lt;p&gt;As a Developer, you will design and implement Web applications for our customers, usually involving content management platforms such as Drupal. In addition, Developers may also serve in a product development capacity building marketable, integrated, packaged best-of-breed open source applications. Developers will be responsible for the planning, designing, coding, testing, and support of Web-based business applications. Candidates must be able to work autonomously and in team environments.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Technical Skills&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Deep experience coding web applications in PHP is a must. &lt;/li&gt;
&lt;li&gt;Experience building modules for Drupal is a huge plus. (some coding experience with Drupal is required)&lt;/li&gt;
&lt;li&gt;Some experience with Java/J2EE is helpful but not required.&lt;/li&gt;
&lt;li&gt;Working knowledge of any object-oriented programming languages is a plus.&lt;/li&gt;
&lt;li&gt;Willingness to apply current coding knowledge to new programming languages. &lt;/li&gt;
&lt;li&gt;Must feel comfortable using various target Operating Systems such as Linux, Solaris, and Windows. &lt;/li&gt;
&lt;li&gt;A demonstrated understanding of SQL. &lt;/li&gt;
&lt;li&gt;Database experience with one or more of the following: MySQL, PostgreSQL, SQL Server, or Oracle.&lt;/li&gt;
&lt;li&gt;Experience installing, configuring, and customizing Alfresco (i.e., developing against the API) would be very valuable, though it is not required.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Other Skills&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Strong analytical and problem-solving skills are required. &lt;/li&gt;
&lt;li&gt;Fluency in English is critical (both oral and written). &lt;/li&gt;
&lt;li&gt;Ability to work independently or as a member of a larger team. &lt;/li&gt;
&lt;li&gt;Ability to document software specifications and write technical papers, reports, and client deliverables. &lt;/li&gt;
&lt;li&gt;Ability to manage and deliver on multiple concurrent project tasks. &lt;/li&gt;
&lt;li&gt;Willingness to learn and apply new software development tools, technologies, and methodologies. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;u&gt;Please note&lt;/u&gt;: This is a posting for a full-time hire, though temporary contracts directly with individuals will be considered. Corporate-to-corporate contracts, however, will not be considered.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/washington-dc-drupalers&quot;&gt;Washington, DC Drupalers&lt;/a&gt;&lt;/div&gt;</description>
 <category domain="http://groups.drupal.org/taxonomy/term/6086">alfresco</category>
 <category domain="http://groups.drupal.org/taxonomy/term/507">developers</category>
 <category domain="http://groups.drupal.org/taxonomy/term/3741">drupal programmer</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1815">full-time</category>
 <category domain="http://groups.drupal.org/taxonomy/term/85">job listing</category>
 <category domain="http://groups.drupal.org/taxonomy/term/2504">northern virginia</category>
 <category domain="http://groups.drupal.org/taxonomy/term/334">php</category>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/northern-va-users-group">Northern VA Users Group</group>
 <group domain="http://groups.drupal.org/washington-dc-drupalers">Washington, DC Drupalers</group>
 <pubDate>Wed, 13 Aug 2008 20:07:32 +0000</pubDate>
 <dc:creator>dpaolicelli</dc:creator>
 <guid isPermaLink="false">13958 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Various Drupal positions | Arizona State University</title>
 <link>http://groups.drupal.org/node/13394</link>
 <description>&lt;p&gt;Arizona State University&#039;s Applied Learning Technologies Institute (ASU alt^I) is seeking Drupal developers for immediate full-time, part-time and contract-based work.  We have a variety of needs including theme development and maintenance, module development and maintenance, site administration / build-out, and testing / quality assurance.  For all positions, contributors to the Drupal community are preferred, but not required.&lt;/p&gt;
&lt;p&gt;Please send Jeff Beeman (jrbeeman on Drupal.org or &lt;a href=&quot;mailto:jeff.beeman@asu.edu&quot;&gt;jeff.beeman@asu.edu&lt;/a&gt;) a private message or email with any questions you may have about the posting.&lt;/p&gt;
&lt;p&gt;Posting at: &lt;a href=&quot;http://snipr.com/33u8s&quot; title=&quot;http://snipr.com/33u8s&quot;&gt;http://snipr.com/33u8s&lt;/a&gt;&lt;br /&gt;
The description at the posting page is a general one for Drupal developers - please see the details on specific positions we are looking to fill below and apply based on the description(s) you see here.&lt;/p&gt;
&lt;p&gt;Details:&lt;/p&gt;
&lt;p&gt;Applicants for theme or module developer positions should have a solid foundation of PHP / MySQL skills.  Module developers that have at least passing familiarity with the APIs of a variety of contributed modules, including CCK, Views and Organic Groups and have experience writing modules that integrate or layer on top of existing modules are preferred.  Theme developers that have experience with the Zen theme and using templates to alter the display and structure of output content are preferred.&lt;/p&gt;
&lt;p&gt;Applicants for site administation / build-out positions with experience managing large amounts of content and user data, and familiarity with using CCK and Views to build out site sections are preferred.&lt;/p&gt;
&lt;p&gt;Applicants for testing / quality assurance positions with experience trying to break sites in any way imaginable - from finding security holes to exposing edge-case bugs, and applicants with some level of development experience and familiarity with the SimpleTest framework are preferred.&lt;/p&gt;
&lt;p&gt;Interested parties that are out-of-state or world-wide are encouraged to apply, as working remotely is an option.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/theme-development&quot;&gt;Theme development&lt;/a&gt;&lt;/div&gt;</description>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/phoenix-metro">Phoenix Metro</group>
 <group domain="http://groups.drupal.org/quality-assurance">Quality Assurance</group>
 <group domain="http://groups.drupal.org/theme-development">Theme development</group>
 <pubDate>Wed, 23 Jul 2008 20:57:51 +0000</pubDate>
 <dc:creator>jrbeeman</dc:creator>
 <guid isPermaLink="false">13394 at http://groups.drupal.org</guid>
</item>
<item>
 <title>3 Customers with more than 1000 users in production deployments needed for Gartner social software market assessment</title>
 <link>http://groups.drupal.org/node/13223</link>
 <description>&lt;p&gt;I am working on submitting the Drupal survey response for Gartner&#039;s latest research report.  We are looking for three customers with 1000 users in a production deployment.  Ideally these would be successful deployments and the customer would be willing to have a quick chat with myself to ensure we are providing the right customer reference.   &lt;strong&gt;Good customer references are the single biggest factor in impacting report recommendations.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;From the Gartner Social software market survey&lt;/p&gt;
&lt;p&gt;We got interviews from:&lt;br /&gt;
Justin C. Klein Keane University of Pennsylvania School of Arts and Sciences which is standardizing their department on Drupal as the default CMS courtesy Alex Urevick-Ackelsberg.&lt;br /&gt;
BestBuy&#039;s BlueShirtNation intranet which has 25 000 users. Steve Bendt responded to my public post in the marketing group.&lt;br /&gt;
Tracy Frauzel from Greenpeace UK courtesy Robert Castello&lt;br /&gt;
Jupiter Media&#039;s  Ivan Raszl for Adsoftheworld.com site, courtesy Khalid&lt;br /&gt;
SonyBMG Suzi Arnold courtesy Earl and recommended by Angie.&lt;br /&gt;
Morris Digital&#039;s Steve Yelvington regarding 20 sites and the largest with more than 175 000 users&lt;/p&gt;
&lt;p&gt;&quot;You must be able to name at least 3 customers with more than 1000 users (seats) in production deployments. You may optionally include two additional reference customers. If you meet the criteria for inclusion then some of your customer references will be contacted via email or phone. Otherwise we will let you know that we will not be contacting your references. Key points we will be looking for is large scale usage of  the products and degree of success.&quot;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/newspapers-on-drupal&quot;&gt;Newspapers on Drupal&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/13223#comments</comments>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/drupal-marketing">Marketing of Drupal</group>
 <group domain="http://groups.drupal.org/newspapers-on-drupal">Newspapers on Drupal</group>
 <pubDate>Wed, 16 Jul 2008 19:35:24 +0000</pubDate>
 <dc:creator>Amazon</dc:creator>
 <guid isPermaLink="false">13223 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Drupal For Enterprise</title>
 <link>http://groups.drupal.org/node/12918</link>
 <description>&lt;p&gt;
We are delighted to invite you to &lt;b&gt;Drupal For Enterprise&lt;/b&gt;, an event focusing on the common benefits and challenges of using Drupal in a business organisation. &lt;/p&gt;
&lt;p&gt;Whether you&#039;re evaluating Drupal or are already using it, this event is a great opportunity to learn from the experience of other organisations, put your questions to the experts, and connect with the Drupal community.
&lt;/p&gt;
&lt;h3&gt;Presentations&lt;/h3&gt;
&lt;p&gt;
We welcome suggestions for presentations - even better, do you have a talk you&#039;d like to give?&lt;/p&gt;
&lt;p&gt;These are the topics we plan to cover:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Feature Recipes (Intranet, KM, eCommerce)&lt;/li&gt;
&lt;li&gt;Licensing and Costs&lt;/li&gt;
&lt;li&gt;Scalability&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;li&gt;Interoperability (legacy systems)&lt;/li&gt;
&lt;li&gt;Support&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The presentation schedule will be finalised in the next two weeks, so keep watching this space....
&lt;/p&gt;
&lt;h3&gt;Thank You!&lt;br /&gt;
&lt;/h3&gt;
&lt;p&gt;
&lt;a href=&quot;http://uk.sun.com&quot;&gt;Sun&lt;/a&gt; is an active Drupal user, long term Drupal contributor, and has very kindly provided us with an excellent venue for this event,&lt;br /&gt;
which includes great presentation facilities, and will also be&lt;br /&gt;
supplying drinks and nibbles. There is also a pub below the venue where we can move to after the event.
&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://maps.google.com/maps?q=26+Red+Lion+Square,+London,++WC1R+4HQ+United+Kingdom&amp;amp;hl=en&amp;amp;ie=UTF8&amp;amp;z=16&amp;amp;iwloc=addr&quot;&gt;Sun Microsystems, Regis House, 45 King William Street, London, EC4R 9AN&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Note&lt;/h3&gt;
&lt;p&gt;
There are only 100 tickets, and event registration will close a day before the event, so don&#039;t wait too long to &lt;a href=&quot;http://drupalforenterprise.eventbrite.com&quot;&gt;book your place&lt;/a&gt;.  Registration for this event is though the Eventbrite system.
&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://drupalforenterprise.eventbrite.com&quot;&gt;&lt;img src=&quot;http://www.eventbrite.com/img/button/register_blue.gif&quot; border=&quot;0&quot; height=&quot;32&quot; width=&quot;210&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;strong&gt;Please ignore the registration button below&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/wales-uk&quot;&gt;Wales, UK&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/12918#comments</comments>
 <group domain="http://groups.drupal.org/consulting">Consulting and Business</group>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/london">London</group>
 <group domain="http://groups.drupal.org/north-west-uk">North West UK</group>
 <group domain="http://groups.drupal.org/united-kingdom">United Kingdom</group>
 <group domain="http://groups.drupal.org/wales-uk">Wales, UK</group>
 <pubDate>Fri, 04 Jul 2008 15:14:22 +0000</pubDate>
 <dc:creator>Robert Castelo</dc:creator>
 <guid isPermaLink="false">12918 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Sourceforge 2008 Community choice award finalists: Best project,for Enterprise, for Educators, Change the world, for Developers</title>
 <link>http://groups.drupal.org/node/12897</link>
 <description>&lt;p&gt;Drupal has been selected as a &lt;a href=&quot;http://sourceforge.net/community/cca08-finalists&quot;&gt;finalist for the SourceForge 2008 Community awards&lt;/a&gt; in 5 categories.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.sourceforge.net/community/cca08-vote&quot;&gt;&lt;img src=&quot;http://sourceforge.net/community/wp-content/uploads/2008/06/cca_vote.png&quot; alt=&quot;cca_vote.png&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Special thanks to Nicholas Thompson, Michelle, Rahul and others in who were involved in the nomination and promotion of this award: &lt;a href=&quot;http://drupal.org/node/267469&quot; title=&quot;http://drupal.org/node/267469&quot;&gt;http://drupal.org/node/267469&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-marketing&quot;&gt;Marketing of Drupal&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/12897#comments</comments>
 <group domain="http://groups.drupal.org/drupal-education">Drupal in Education</group>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/drupal-marketing">Marketing of Drupal</group>
 <pubDate>Thu, 03 Jul 2008 17:11:28 +0000</pubDate>
 <dc:creator>Amazon</dc:creator>
 <guid isPermaLink="false">12897 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Enterprise 2.0 Expo/ Enterprise2Open - Free to attend</title>
 <link>http://groups.drupal.org/node/11945</link>
 <description>&lt;p&gt;&lt;a href=&quot;http://www.enterprise2conf.com/&quot; title=&quot;http://www.enterprise2conf.com/&quot;&gt;http://www.enterprise2conf.com/&lt;/a&gt;&lt;br /&gt;
Demo pavilion pass are available for free here: &lt;a href=&quot;http://www.enterprise2conf.com/exhibition/demo-pavilion.php&quot; title=&quot;http://www.enterprise2conf.com/exhibition/demo-pavilion.php&quot;&gt;http://www.enterprise2conf.com/exhibition/demo-pavilion.php&lt;/a&gt;&lt;br /&gt;
Tuesday, June 10&lt;br /&gt;
   11:00 AM – 1:00 PM&lt;br /&gt;
     4:30 PM – 6:30 PM&lt;/p&gt;
&lt;p&gt;Wednesday, June 11&lt;br /&gt;
   12:00 PM – 2:00 PM&lt;br /&gt;
     4:30 PM – 6:30 PM&lt;/p&gt;
&lt;p&gt;Enterprise2Open unconference: &lt;a href=&quot;http://www.enterprise2conf.com/conference/e2open.php&quot; title=&quot;http://www.enterprise2conf.com/conference/e2open.php&quot;&gt;http://www.enterprise2conf.com/conference/e2open.php&lt;/a&gt;&lt;br /&gt;
If you are interested in presenting at Enterprise 2 Open you should be able to sign up at the event itself.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/enterprise&quot;&gt;Enterprise&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/11945#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/5092">Boston Proper</category>
 <enclosure url="http://groups.drupal.org/files/wordpress-widgets.png" length="58208" type="image/png" />
 <group domain="http://groups.drupal.org/boston">Boston</group>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <pubDate>Mon, 02 Jun 2008 16:46:24 +0000</pubDate>
 <dc:creator>Amazon</dc:creator>
 <guid isPermaLink="false">11945 at http://groups.drupal.org</guid>
</item>
<item>
 <title>PHP/MySQL Developer | CEMPER GmbH</title>
 <link>http://groups.drupal.org/node/11836</link>
 <description>&lt;p class=&quot;MsoNormal&quot;&gt;CEMPER.COM is seeking a &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;                 &lt;/b&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;br /&gt;
&lt;h1&gt;Web Developer&lt;/h1&gt;
&lt;p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;with&lt;br /&gt;
strong software development skills &lt;/b&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;To join our growing team and help improve and expand the company&#039;s internal internet tools for &lt;a href=&quot;http://www.cemper.com/services/&quot;&gt;search engine optimization&lt;/a&gt;, &lt;a href=&quot;http://www.cemper.com/services/competitive-seo-analysis.html&quot;&gt;competitive seo analysis&lt;/a&gt; and &lt;a href=&quot;http://www.cemper.com/services/link-building-services.html&quot;&gt;link building tools&lt;/a&gt;. &lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;We are seeking a seasoned professional who is capable of consistent&lt;br /&gt;
production of quality software in a fast-paced but relaxed environment - be&lt;br /&gt;
ready to work hard, but enjoy yourself in the process.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;i&gt;The ideal candidate will have 3+ years of full-time&lt;br /&gt;
development experience with PHP, and a working knowledge of (X)HTML, CSS and&lt;br /&gt;
Javascript. An understanding of the Web 2.0 development standards, database&lt;br /&gt;
architecture and clean, maintainable code will be crucial to success on this.&lt;br /&gt;
PHP Development experience must include usage of version 5.x and its object&lt;br /&gt;
oriented features.  Serious experience on MySQL is required; candidates must&lt;br /&gt;
know how to both write, maintain and optimize queries with multi-table joins.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;The following core skills are sought:&lt;/p&gt;
&lt;p&gt;• PHP&lt;br /&gt;
• MySQL&lt;br /&gt;
• AJAX&lt;br /&gt;
• Web 2.0 concepts, dynamic user interfaces&lt;br /&gt;
• Version Control knowledge (CVS &amp;amp; Subversion)&lt;br /&gt;
• Great English skills&lt;br /&gt;
• Used to work with request trackers (i.e. Mantis, BugZilla)&lt;br /&gt;
• Used to work driven by english specification documents&lt;/p&gt;
&lt;p&gt;We offer:&lt;/p&gt;
&lt;p&gt;• Enjoy working in a growing team in a dynamic, fast-paced and exciting industry&lt;br /&gt;
• Work in a company like there’s no other in Austria – even among the EU and USA only very FEW do the things CEMPER.COM does (hence we have so many happy US and UK clients!)&lt;br /&gt;
• Super-Flextime&lt;br /&gt;
• Inspiring 17th floor water views of the wonderful nature of the Alte Donau and Gänsehäufel – it’s almost too nice to work here!&lt;/p&gt;
&lt;p&gt;Your Salary:&lt;/p&gt;
&lt;p&gt;Salary depends on experience but is highly competitive.&lt;/p&gt;
&lt;p&gt;More Details at &lt;a href=&quot;http://www.cemper.com/jobs/wd5.htm&quot; title=&quot;http://www.cemper.com/jobs/wd5.htm&quot;&gt;http://www.cemper.com/jobs/wd5.htm&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Find more about our company &lt;a href=&quot;http://www.cemper.com/&quot;&gt;CEMPER.COM Internet Marketing Services&lt;/a&gt;&lt;br /&gt;
and even more details of our online marketing efforts &lt;a href=&quot;http://www.marketingfan.com&quot;&gt;online marketing blog&lt;/a&gt;&lt;br /&gt;
which also has a &lt;a href=&quot;http://www.marketingfan.at&quot;&gt;german/austrian internet marketing weblog&lt;/a&gt; counterpart&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/enterprise&quot;&gt;Enterprise&lt;/a&gt;&lt;/div&gt;</description>
 <category domain="http://groups.drupal.org/taxonomy/term/234">ajax</category>
 <category domain="http://groups.drupal.org/taxonomy/term/86">Drupal</category>
 <category domain="http://groups.drupal.org/taxonomy/term/483">mysql</category>
 <category domain="http://groups.drupal.org/taxonomy/term/334">php</category>
 <category domain="http://groups.drupal.org/taxonomy/term/2969">vienna</category>
 <group domain="http://groups.drupal.org/austria">Austria</group>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <pubDate>Thu, 29 May 2008 14:49:10 +0000</pubDate>
 <dc:creator>Christoph C. Cemper@drupal.org</dc:creator>
 <guid isPermaLink="false">11836 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Vote in Enterprise 2.0 Launchpad contest: Round 2 with a new Drupal ecosystem section</title>
 <link>http://groups.drupal.org/node/11667</link>
 <description>&lt;p&gt;Acquia would like to thank everyone who voted for our 1 minute video submission for the Enterprise 2.0 contest.  We&#039;ve now made it to the second round and we&#039;ve added an important section to the video, the Drupal Ecosystem, with dozens of Drupal consulting company logo&#039;s.&lt;br /&gt;
&lt;img src=&quot;http://groups.drupal.org/files/drupal-ecosystem.001.png&quot; height=&quot;450&quot;&gt;&lt;/p&gt;
&lt;p&gt;How did we select these logo&#039;s to represent the Drupal ecosystem:&lt;br /&gt;
1) Looked for sponsors of Drupalcon Barcelona and Drupalcon Boston&lt;br /&gt;
2) Drupal Association Organization Members&lt;br /&gt;
3) Organizations that &lt;a href=&quot;http://acquia.com/partners&quot;&gt;registered on acquia.com&lt;/a&gt; as building sites for third parties.&lt;/p&gt;
&lt;p&gt;As you can see at 1:48 in the video, the slide is pretty full. &lt;a href=&quot;http://launchpad.enterprise2conf.com/node/37&quot;&gt;With your vote&lt;/a&gt;, we can make it to the Launchpad finals in Boston June 9th-12th and this will allow us to further expand on the vendors in the Drupal ecosystem with a longer live presentation.  Thanks to everyone who has giving us feedback on how Acquia can fairly promote Drupal and it&#039;s partners in these kinds of events, we are listening, learning, and adapting to your suggestions.&lt;/p&gt;
&lt;p&gt;Kieran Lal&lt;br /&gt;
Drupal community adventure guide&lt;br /&gt;
Acquia, Inc.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-marketing&quot;&gt;Marketing of Drupal&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/11667#comments</comments>
 <enclosure url="http://groups.drupal.org/files/drupal-ecosystem.001.png" length="436639" type="image/png" />
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/drupal-marketing">Marketing of Drupal</group>
 <pubDate>Thu, 22 May 2008 19:53:49 +0000</pubDate>
 <dc:creator>Amazon</dc:creator>
 <guid isPermaLink="false">11667 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Xapian Search for Drupal - Metrics and Benchmarks</title>
 <link>http://groups.drupal.org/node/11461</link>
 <description>&lt;p&gt;I posted some &lt;a href=&quot;http://www.trellon.com/blog/xapian-search-drupal&quot;&gt;internal benchmarks&lt;/a&gt; from the Xapian module we are working on in the Trellon.com blog. This post describes the performance gains using Xapian can have and does some benchmarking on a really, really slow server.&lt;/p&gt;
&lt;p&gt;Would love it if someone could verify those results. We are about to take the sample size of the data up to about 1mil nodes and repeat.&lt;/p&gt;
&lt;p&gt;M&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/node/4102&quot;&gt;Search&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/11461#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/165">scalability</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1480">search</category>
 <category domain="http://groups.drupal.org/taxonomy/term/5147">xapian</category>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/node/4102">Search</group>
 <pubDate>Wed, 14 May 2008 01:38:23 +0000</pubDate>
 <dc:creator>techsoldaten</dc:creator>
 <guid isPermaLink="false">11461 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Vote for Drupal in Enterprise 2.0 Launchpad contest</title>
 <link>http://groups.drupal.org/node/11363</link>
 <description>&lt;p&gt;Acquia has submitted a 1 minute video about Drupal to the Enterprise 2.0 Launchpad contest.  The video site, is actually a Drupal site.  If you get a chance to watch this one minute video and vote, it will help give Drupal some exposure at Enterprise 2.0.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://launchpad.enterprise2conf.com/node/14&quot; title=&quot;http://launchpad.enterprise2conf.com/node/14&quot;&gt;http://launchpad.enterprise2conf.com/node/14&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-marketing&quot;&gt;Marketing of Drupal&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/11363#comments</comments>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/drupal-marketing">Marketing of Drupal</group>
 <pubDate>Fri, 09 May 2008 19:46:08 +0000</pubDate>
 <dc:creator>Amazon</dc:creator>
 <guid isPermaLink="false">11363 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Selenium and Drupal</title>
 <link>http://groups.drupal.org/node/11186</link>
 <description>&lt;p&gt;First, for those that don&#039;t want to read the full post, here&#039;s the &quot;30-second elevator speech&quot;:&lt;br /&gt;
This post to to discuss using Seleinum with Drupal. Specifically using Maven to run the selenium tests and writing the Selenium tests in Java.&lt;br /&gt;
The example code be downloaded from the Workhabit Inc. public repository here: &lt;a href=&quot;https://svn.workhabit.com/svn/public/drupal/selenium/trunk&quot; title=&quot;https://svn.workhabit.com/svn/public/drupal/selenium/trunk&quot;&gt;https://svn.workhabit.com/svn/public/drupal/selenium/trunk&lt;/a&gt;&lt;br /&gt;
One must have the following installed to run:&lt;br /&gt;
1. Firefox&lt;br /&gt;
2. Java 1.5+&lt;br /&gt;
3. Maven&lt;br /&gt;
All 3 are easy to install and aquire. Once you download the code from the repository, you can just navigate to the directory and run:&lt;br /&gt;
&lt;code&gt;mvn -P drupal integration-test&lt;/code&gt;&lt;br /&gt;
Maven and writing tests are beyond the scope of this blog post.&lt;br /&gt;
&lt;em&gt;I&#039;m writing this up for comments, thoughts, and hopefully for others to use and/or contribute.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Ok, now the long winded version:&lt;/p&gt;
&lt;p&gt;I&#039;ve been in the Java world for a bit and I&#039;m now bringing my self back into the PHP/Drupal realm.&lt;br /&gt;
With that said on my last project we had to validate ALL code with unit tests, and then we did fully functional integration tests using Selenium.&lt;/p&gt;
&lt;p&gt;The Build management tool we used was Maven ( way past the scope of discussion here ). However, what I have done is GREATLY simplified down what we used into a very short, simple, and small file which allows one to run Selenium tests out of the box. It uses Maven/Java to do the tests...but, that&#039;s neither here nor there.&lt;br /&gt;
It is available here: &lt;a href=&quot;https://svn.workhabit.com/svn/public/drupal/selenium/trunk&quot; title=&quot;https://svn.workhabit.com/svn/public/drupal/selenium/trunk&quot;&gt;https://svn.workhabit.com/svn/public/drupal/selenium/trunk&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I know that there is a Selenium module for Drupal...however when I thought about this, I also felt that this was an inherit problem. This dawned on me when I read the link that there is a patch to port it to 5.x. There in lies the problem. As we move versions/etc., we&#039;re updating the testing frame-work instep with the item we&#039;re testing. E.g. PHPUnit may be at 2.3, and we can still use PHPUnit 2.3 for Drupal 4.7, 5.1, 6.x, etc. However, by tightly integrating the testing frame work into the item we are testing, I feel one is creating a cyclic-redundancy in which the end result is chaos.&lt;/p&gt;
&lt;h1&gt;Goals&lt;/h1&gt;
&lt;p&gt;My only goals of this project is 2 fold:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Give a solid base so that anyone can download the drupal-seleinum project and write tests for their drupal site.&lt;/li&gt;
&lt;li&gt;The community should have an entire suite of tests to test the Drupal installation as a base install ( I have currently started these in the com.workhabit.drupal.selenium.core package. Inside the package, it think they should be split into their subsystems, e.g. Authentication, Taxonomy, CCK, etc.).
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Why Java/Maven?&lt;/h2&gt;
&lt;p&gt;Well, there are a number of reasons; I will not list/discuss all of them here as they are not really part of this post. But on the short list; Java allows one to set break points where Selenium is running to see why a test may be failing ( it should be noted you can also do this with PHP; if you setup your IDE correct and get xdebug installed/setup correctly also).&lt;br /&gt;
Also, by using Maven, one doesn&#039;t have to worry about dependencies with the unit testing suite (versions, etc.) as Maven takes care of all of that. Java/Maven will also allow us to do more in terms of continuous-build integration. Further, writing tests in Java is not that much harder/different that writing them in PHP. The Selenium IDE gives code in many languages (HTML, PHP, Java, Ruby, etc.) so anyone should be able to create tests easily. I&#039;m hoping to write a post of how to write/add tests in Java. Most of the hard work has already been setup in the code, so all one has to do for a new test pretty much is create a new class and create an annotated java method, such as:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;@Test&lt;br /&gt;public void myDrupalTest() {&lt;br /&gt;&amp;nbsp; BROWSER.open(&amp;quot;/path/to/my/site&amp;quot;);&lt;br /&gt;&amp;nbsp; // ....other browser test code from Selenium IDE&lt;br /&gt;&amp;nbsp; // ...Assertions&lt;br /&gt;&amp;nbsp; return;&lt;br /&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Also, in the coming days, I shall be adding to this suite a &quot;MockSoapServer&quot;. This will allow you to hit a webservice in point (in this case the MockSoapServer), and it will return &quot;canned&quot; results. Maven will fire up both the Selenium server AND the MockSoapServer BEFORE running the test suites. It will then create a report and take down both after the tests are run.&lt;/p&gt;
&lt;h2&gt;Environment Setup&lt;/h2&gt;
&lt;p&gt;First things first, you will need to have Maven installed on your local machine in order to use the Drupal-Seleinum tests. Installing maven is very simple and straight forward. See the &lt;a href=&quot;http://maven.apache.org/download.html&quot;&gt;Apache Maven Site&lt;/a&gt; for more information on installing Maven.&lt;/p&gt;
&lt;h2&gt;Setup your Tests&lt;/h2&gt;
&lt;p&gt;So, lets be real; Usually when we are developing, we are changing some of the default workings of Drupal; So we will need to have a some-what custom test suite for each site we develop; or at least we will be extending the tests with more/new tests.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
*EXPORT* the base Selenium maven build from the Workhabit repository.&lt;br /&gt;
&lt;code&gt;svn export https://svn.workhabit.com/svn/public/sandbox/earnest/drupal/drupal-selenium&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Update the POM (If you are unfamiliar with Maven, ignore this step)&lt;br /&gt;
You can update the POM if you want to better describe you project.
&lt;/li&gt;
&lt;li&gt;
&lt;h3&gt;Modify the &quot;setup.xml&quot;&lt;/h3&gt;
&lt;p&gt;You will notice when you download the code that there is a file called &quot;setup-example.xml&quot; in the src/test/resources folder. This file is read by the test suite and contains some general settings regarding your site. The settings are pretty self explanatory. The main ones you will need to change out of the box are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;siteRootPath&lt;/li&gt;
&lt;li&gt;siteDomain&lt;/li&gt;
&lt;li&gt;testUsername&lt;/li&gt;
&lt;li&gt;testPassword&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I will hopefully be documenting the settings further, but for now, I apologize that the documentation is a bit sparse.
&lt;/li&gt;
&lt;li&gt;Test to see that you have everything setup correctly by running a maven integration test (Note: All tests are done with the drupal plugin)&lt;br /&gt;
&lt;code&gt;mvn -P drupal integration-test&lt;/code&gt;&lt;br /&gt;
This should run the DrupalLoginTest which will bring up your Drupal site, and login a user.
&lt;/li&gt;
&lt;li&gt;Add the package to your own repository.&lt;br /&gt;
&lt;code&gt;svn add drupal-selenium &amp;amp;&amp;amp; svn commit -m &amp;quot;Adding the drupal-selenium package to my site&amp;quot;&lt;/code&gt;&lt;br /&gt;
You now have a customized maven/Selenium test suite for the project that you are working on.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/usability&quot;&gt;Usability&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/11186#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/5036">selenium</category>
 <category domain="http://groups.drupal.org/taxonomy/term/356">testing</category>
 <group domain="http://groups.drupal.org/change-management-systems">Build Systems &amp;amp; Change Management</group>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/testing-qa">Testing and Quality Assurance</group>
 <group domain="http://groups.drupal.org/usability">Usability</group>
 <pubDate>Sat, 03 May 2008 16:03:04 +0000</pubDate>
 <dc:creator>Souvent22@drupal.org</dc:creator>
 <guid isPermaLink="false">11186 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Site architecture patterns, Install Profiles, &amp; automated site configuration</title>
 <link>http://groups.drupal.org/node/9379</link>
 <description>&lt;p&gt;EDIT: There will be a BOF discussion tomorrow, Wed morning at 9:00am here at Drupalcon. Please join the discussion and share your thoughts.&lt;/p&gt;
&lt;p&gt;Setting up Drupal sites requires a lot of time clicking through forms and redoing common tasks. This can be automated and reused to save time. Install profiles were built to help solve this problem, but there are limitations. We&#039;d like to discuss these limitations and figure out what can be done to address them and plan the next steps and evolution of automated site configuration? Also, what needs to be done or changed in Drupal core to facilitate this?&lt;/p&gt;
&lt;h2&gt;Defining site architecture and best practice patterns&lt;/h2&gt;
&lt;p&gt;It would be great to be able to define common and specific site architecture and best practice patterns in a format that is easy to read and work with and can easily be shared and collaborated on. Ideally the system would support different backends to allow site configuration documents in multiple languages.&lt;/p&gt;
&lt;h2&gt;Projects and implementations&lt;/h2&gt;
&lt;p&gt;Install Profiles (&lt;a href=&quot;http://drupal.org/project/Installation+profiles&quot; title=&quot;http://drupal.org/project/Installation+profiles&quot;&gt;http://drupal.org/project/Installation+profiles&lt;/a&gt;)&lt;br /&gt;
Install Profile API &amp;amp; Profile Wizard, CRUD (&lt;a href=&quot;http://drupal.org/project/install_profile_api&quot; title=&quot;http://drupal.org/project/install_profile_api&quot;&gt;http://drupal.org/project/install_profile_api&lt;/a&gt;)&lt;br /&gt;
Profile Generator (&lt;a href=&quot;http://drupal.org/project/profile_generator&quot; title=&quot;http://drupal.org/project/profile_generator&quot;&gt;http://drupal.org/project/profile_generator&lt;/a&gt;)&lt;br /&gt;
Civic Space APIs (&lt;a href=&quot;https://customprofiles.civicspaceondemand.org/api/file&quot; title=&quot;https://customprofiles.civicspaceondemand.org/api/file&quot;&gt;https://customprofiles.civicspaceondemand.org/api/file&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Related Projects and discussions&lt;/p&gt;
&lt;p&gt;Cocktail - CCK Type Language: (&lt;a href=&quot;http://raincitystudios.com/blog/cocktail-cck-type-language&quot; title=&quot;http://raincitystudios.com/blog/cocktail-cck-type-language&quot;&gt;http://raincitystudios.com/blog/cocktail-cck-type-language&lt;/a&gt;)&lt;br /&gt;
GHOP - Drupal automated staging toolkit project proposal: (&lt;a href=&quot;http://code.google.com/soc/2007/drupal/appinfo.html?csaid=AD069F51C0E75638&quot; title=&quot;http://code.google.com/soc/2007/drupal/appinfo.html?csaid=AD069F51C0E75638&quot;&gt;http://code.google.com/soc/2007/drupal/appinfo.html?csaid=AD069F51C0E756...&lt;/a&gt;)&lt;br /&gt;
Distributions Group: (&lt;a href=&quot;http://groups.drupal.org/distributions&quot; title=&quot;http://groups.drupal.org/distributions&quot;&gt;http://groups.drupal.org/distributions&lt;/a&gt;)&lt;br /&gt;
Effectiveness of install profiles?: (&lt;a href=&quot;http://groups.drupal.org/node/6820&quot; title=&quot;http://groups.drupal.org/node/6820&quot;&gt;http://groups.drupal.org/node/6820&lt;/a&gt;)&lt;br /&gt;
Drush: (&lt;a href=&quot;http://drupal.org/project/drush&quot; title=&quot;http://drupal.org/project/drush&quot;&gt;http://drupal.org/project/drush&lt;/a&gt;)&lt;br /&gt;
HostMaster2: (&lt;a href=&quot;http://drupal.org/project/hostmaster&quot; title=&quot;http://drupal.org/project/hostmaster&quot;&gt;http://drupal.org/project/hostmaster&lt;/a&gt;)&lt;br /&gt;
AutoPilot: (&lt;a href=&quot;http://drupal.org/project/autopilot&quot; title=&quot;http://drupal.org/project/autopilot&quot;&gt;http://drupal.org/project/autopilot&lt;/a&gt;)&lt;br /&gt;
Multisite Management Tools Review: (&lt;a href=&quot;http://drupal.org/files/issues/review_0.pdf&quot; title=&quot;http://drupal.org/files/issues/review_0.pdf&quot;&gt;http://drupal.org/files/issues/review_0.pdf&lt;/a&gt;)&lt;/p&gt;
&lt;h2&gt;Limitations in Install Profiles&lt;/h2&gt;
&lt;p&gt;Here are some of the limitations with install profiles that would be great to address:&lt;br /&gt;
It&#039;s a one time initial setup and can&#039;t change anything on the site after the initial configuration.&lt;br /&gt;
You can&#039;t create separate, smaller groups of features and configurations that can be combined together and mixed and matched individually or as a group.&lt;br /&gt;
It can be hard to read and work with since it&#039;s in PHP code and so there is a disconnect between site planners/architects.&lt;br /&gt;
It&#039;s not possible to setup all the desired settings/configurations (ie., API and additional module support.)&lt;br /&gt;
It&#039;s hard to manage changes to the profile or setup as requirements and best practices change (which they constantly do.)&lt;br /&gt;
Can&#039;t easily have slightly differing configurations (would need a separate install profile for each.)&lt;/p&gt;
&lt;h2&gt;Proof of concept solution&lt;/h2&gt;
&lt;p&gt;We started work on a project called Patterns that attempts to address and solve some of these points and limitations.  Our idea was to make a simple, flexible, powerful custom module/system to handle definitions of site configurations that was easy to change, update and manage. We decided to create a module that supports definitions of requirements (patterns of any type) and runs/enables them on an new or existing site. We also created a very simple install profile that&#039;s sole purpose is to set up the Patterns module.&lt;/p&gt;
&lt;p&gt;It&#039;s in an early proof of concept stage. You can find the project placeholder on Drupal here:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://drupal.org/project/patterns&quot; title=&quot;http://drupal.org/project/patterns&quot;&gt;http://drupal.org/project/patterns&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Here are some design ideas and implementation details:&lt;/h2&gt;
&lt;p&gt;Overview&lt;/p&gt;
&lt;p&gt;The patterns module will enable the setup of complex and detailed sites without actually doing any of the setup yourself. A pattern will be a collection of rules, definitions, and dependencies that will automatically setup and create simple or complex features for you. Patterns allow you to define features and functionality for a site in a standard text format (currently XML with planned support for other formats,) or directly on the site, and then apply them to an already running site. An administration page will let you enable (and possibly disable or remove) each pattern that has either been provided by default, contributed, or created specifically for the application at hand.&lt;/p&gt;
&lt;p&gt;A typical example would be to easily and simply setup a fully functional forum with user registration, authorization, avatars, comments, captchas, views and more without touching a single setting. Of course the unique, specific settings for the site at hand can be adjusted like usual, however basic settings can also be tweaked when turning on the pattern.&lt;/p&gt;
&lt;p&gt;For those that need more control over the setup of their desired features, patterns could possibly guide the user through all of the setting pages and settings that are available for a particular feature set. They could have stop points that prompt the user for a specific choice or input (similar to Photoshop actions.)&lt;/p&gt;
&lt;h2&gt;Patterns primary uses&lt;/h2&gt;
&lt;p&gt;Define reusable site architecture patterns and best practices that are easy to update and maintain.&lt;br /&gt;
Quickly setup and configure new (and existing!) sites based on site architecture documents/patterns. (Next evolution of Install Profiles)&lt;br /&gt;
Migrate changes, updates and new features from you local development environment to dev server to QA site to the final production environment. (Change Management)&lt;br /&gt;
Possibility of making a specific pattern to update/change a site(s) from some other known configuration (legacy best practice to current best practice for instance)&lt;/p&gt;
&lt;h2&gt;Architecture Overview&lt;/h2&gt;
&lt;p&gt;Base install profile (setup Patterns module)&lt;br /&gt;
Patterns Drupal module&lt;br /&gt;
Patterns component modules&lt;br /&gt;
Hooks/API&lt;br /&gt;
Pattern XML files&lt;br /&gt;
    Stop points for allowing the user to set/change a value&lt;br /&gt;
Pattern groups/subgroups&lt;/p&gt;
&lt;p&gt;Most patterns will be made up of a combination of any/all these components:&lt;/p&gt;
&lt;p&gt;Module(s)&lt;br /&gt;
    Module settings&lt;br /&gt;
CCK Content Type(s)&lt;br /&gt;
    Fields&lt;br /&gt;
    Field weights/order&lt;br /&gt;
Views&lt;br /&gt;
    Type&lt;br /&gt;
    Fields&lt;br /&gt;
Panels&lt;br /&gt;
Blocks&lt;br /&gt;
Permissions&lt;br /&gt;
Content/Nodes (not finished yet)&lt;br /&gt;
Files&lt;br /&gt;
Other patterns!&lt;/p&gt;
&lt;p&gt;Features:&lt;/p&gt;
&lt;p&gt;XML based. Keeps it open and flexible so you can possibly use other systems to process or work with the XML&lt;br /&gt;
Creation of content types and fields&lt;br /&gt;
Creation of views and settings&lt;br /&gt;
User and node creation&lt;br /&gt;
Setup of user roles and permissions&lt;br /&gt;
Automatic and assisted panel creation&lt;br /&gt;
Automatic and assisted menu setup&lt;br /&gt;
Basic conflict checking and resolution&lt;br /&gt;
A pattern can be a list of other patterns&lt;br /&gt;
Support for tokens from the Tokens module&lt;/p&gt;
&lt;h2&gt;Challenges&lt;/h2&gt;
&lt;p&gt;XML Based (other formats may be more readable or better to work with.)&lt;br /&gt;
Keeping component modules up to date&lt;br /&gt;
Resolving conflicts in patterns and pattern dependencies&lt;br /&gt;
Getting parts of this into Drupal core&lt;/p&gt;
&lt;h2&gt;Primary plans and ideas for the future&lt;/h2&gt;
&lt;p&gt;Nicely formatted view of the pattern live on the site (currently it just displays the raw XML)&lt;br /&gt;
Extensive pattern administration:&lt;br /&gt;
  Pattern builder: choose configuration components from an existing site to make a pattern out of specific parts (or the entire site)&lt;br /&gt;
  Import from another site/file&lt;br /&gt;
  Export to another site/file&lt;br /&gt;
  Record patterns when setting options or configuration&lt;br /&gt;
Stop points (to ask the user for an input or value)&lt;br /&gt;
Pattern versions and dependencies&lt;br /&gt;
Display and automatic downloading of patterns from a central repository&lt;br /&gt;
Run/control from the command line (Drush integration)&lt;br /&gt;
Add/Import by URL (with ability to choose from a list of available ones)&lt;br /&gt;
Publish/Export list of patterns to URLs, Master site (enable repository functionality) and individual patterns&lt;br /&gt;
Repository system (list of available sites to check for patterns)&lt;br /&gt;
  Ability to easily add your site automatically to the repository list&lt;br /&gt;
Version checking&lt;/p&gt;
&lt;h2&gt;Possible other side benefits and solutions&lt;/h2&gt;
&lt;p&gt;Central or distributed pattern repositories with community managed best practice patterns&lt;br /&gt;
Unified API for configuration import/export&lt;br /&gt;
Change Management solution&lt;br /&gt;
Development shops can share common configurations and work together to improve them.&lt;/p&gt;
&lt;p&gt;Sorry for the overload of information here. We&#039;d love to hear your thoughts and feedback and work together to create a solution is properly planned and can hopeful integrated with core for Drupal 7. What do you think?&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/enterprise&quot;&gt;Enterprise&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9379#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1988">information architecture</category>
 <category domain="http://groups.drupal.org/taxonomy/term/604">install profiles</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4266">patterns</category>
 <group domain="http://groups.drupal.org/bay-area">Bay Area</group>
 <group domain="http://groups.drupal.org/consulting">Consulting and Business</group>
 <group domain="http://groups.drupal.org/designers-and-information-architects">Designers and Information Architects</group>
 <group domain="http://groups.drupal.org/distributions">Distribution profiles</group>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <pubDate>Tue, 04 Mar 2008 20:15:47 +0000</pubDate>
 <dc:creator>ChrisB</dc:creator>
 <guid isPermaLink="false">9379 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Potential RDF use cases for Drupal</title>
 <link>http://groups.drupal.org/node/9010</link>
 <description>&lt;p&gt;Following up on my &lt;a href=&quot;http://groups.drupal.org/node/8930&quot;&gt;previous post&lt;/a&gt; introducing the in-progress &lt;a href=&quot;http://drupal.org/project/rdf&quot;&gt;RDF API&lt;/a&gt; for Drupal 6.x, I&#039;m going to be, bit by bit, posting some of the materials that I&#039;ve earlier put together internally for the project this is being developed for. Development of this project is supported through &lt;a href=&quot;http://www.mcdean.com/&quot;&gt;M.C. Dean&lt;/a&gt; and &lt;a href=&quot;http://www.makalumedia.com/&quot;&gt;MakaluMedia&lt;/a&gt; on behalf of their clients.&lt;/p&gt;
&lt;p&gt;First, some requisite background. Our use cases for &lt;a href=&quot;http://rdfabout.com/&quot;&gt;RDF&lt;/a&gt; evolved out of several years of building a communications and collaboration platform serving the needs of an international community of intergovernmental agencies and organizations. The project as well as the potential applications described below reflect &lt;a href=&quot;http://drupal.org/user/26292&quot;&gt;Ivan&#039;s&lt;/a&gt; and &lt;a href=&quot;http://www.exposur3.com/&quot;&gt;Chris&#039;s&lt;/a&gt; ideas and vision.&lt;/p&gt;
&lt;p&gt;This environment presented us with a variety of challenges, such as deploying the application across multiple discrete organizations that operate under little or no centralized authority, supporting a wide range of operational scenarios, and finally managing or brokering large volumes of context-sensitive information delivered via a variety of protocols from a multitude of sources, in formats ranging from web-native to rich media files to device specific data streams.&lt;/p&gt;
&lt;p&gt;Development of many well-known Drupal modules has been funded through this project while tackling these challenges; examples include &lt;a href=&quot;http://drupal.org/project/openid&quot;&gt;OpenID&lt;/a&gt;, &lt;a href=&quot;http://drupal.org/project/opensearch&quot;&gt;OpenSearch&lt;/a&gt;, &lt;a href=&quot;http://drupal.org/project/ldap_provisioning&quot;&gt;LDAP provisioning&lt;/a&gt;, &lt;a href=&quot;http://drupal.org/project/timeline&quot;&gt;Timeline&lt;/a&gt; and &lt;a href=&quot;http://drupal.org/project/boost&quot;&gt;Boost&lt;/a&gt;. Even more modules are yet to be released as open source, including e.g. a &lt;a href=&quot;http://drupal.org/project/dav&quot;&gt;WebDAV&lt;/a&gt; server module and embedded instant messaging and &lt;a href=&quot;http://drupal.org/project/webmail_plus&quot;&gt;webmail&lt;/a&gt; for Drupal.&lt;/p&gt;
&lt;p&gt;Our platform is currently based on Drupal 4.7.x, and is probably one of the most complex Drupal systems around: we&#039;re making use of over 130 contributed modules and have a total code base size of nearly 600 KLOC (&lt;a href=&quot;http://dangerousintersection.org/?p=84&quot;&gt;not&lt;/a&gt; a point of pride). Moving onwards to Drupal 6.x, our goal is to radically simplify the system by standardizing on RDF to allow for more precise expression and efficient sharing of information, and to utilize &lt;a href=&quot;http://drupal.org/project/exhibit&quot;&gt;Exhibit&lt;/a&gt; as the central technology driving the user interface.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/bendiken/2105325481/&quot; title=&quot;Drupal RDF use cases #1&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2345/2105325481_2ac7032094_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;Drupal RDF use cases #1&quot; align=&quot;right&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I mention all this to make clear the context of our use of and interest in Drupal and to illustrate why the use cases that follow are necessarily of an &quot;enterprisey&quot; nature, dealing with reducing the complexity of our system design, increasing its interoperability with external data sources, and improving the usability of our user interface for dealing with large quantities of multi-faceted information.&lt;/p&gt;
&lt;p&gt;Here to the right are two slides from a presentation at our recent &lt;a href=&quot;http://flickr.com/photos/tags/geekweek2/&quot;&gt;developer meeting&lt;/a&gt; (click on the images to see the full-sized version on Flickr).&lt;/p&gt;
&lt;p&gt;They depict (on a high level) a system architecture enabled by the RDF support for Drupal, tying several Drupal instances together into a federated system via &lt;a href=&quot;http://flickr.com/photos/bendiken/tags/rdfbus/&quot;&gt;RDFbus&lt;/a&gt; (publish/subscribe messaging for transmitting RDF payloads over various transports including XMPP and Stomp) and &lt;a href=&quot;http://en.wikipedia.org/wiki/SPARQL&quot;&gt;SPARQL&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Most significantly, this loosely-coupled architecture provides a measure of technology neutrality which allows individual system components (i.e. shards of the datagraph) to be replaced with other interoperable systems, ranging, for example, from high-productivity web frameworks such as &lt;a href=&quot;http://www.rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; or &lt;a href=&quot;http://www.djangoproject.com/&quot;&gt;Django&lt;/a&gt; to legacy J2EE systems. Because, frankly, Drupal isn&#039;t always the right answer regardless of the question.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/bendiken/2106122562/&quot; title=&quot;Drupal RDF use cases #2&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2066/2106122562_c210dcf9ed_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;Drupal RDF use cases #2&quot; align=&quot;right&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I will need to write up more public details on RDFbus, later, but here follow some initial quick thoughts on potential specific RDF API-based use cases for Drupal 6.x - the low-hanging fruit, if you will. The list ranges from the obvious to the speculative, in ascending order.&lt;/p&gt;
&lt;p&gt;(Note that if any of the preceding was all greek to you, there may be something more concrete in what follows; generally, though, I should warn that if you haven&#039;t previously heard of RDF, or know RDF only from the context of RSS, then reading at least this &lt;a href=&quot;http://rdfabout.com/quickintro.xpd&quot;&gt;10-minute introduction to RDF&lt;/a&gt; is pretty much a requirement for making any sense of this stuff... other introductory materials, including videos introducing these concepts, are linked to from the RDF API&#039;s &lt;a href=&quot;http://drupal.org/node/219862&quot;&gt;developer documentation&lt;/a&gt;.)&lt;/p&gt;
&lt;h3&gt;Generic metadata storage&lt;/h3&gt;
&lt;p&gt;Many (most?) Drupal modules need to store metadata in some form or another. Until now, each Drupal module has needed to implement its own metadata storage in an independent, redundant and incompatible manner.&lt;/p&gt;
&lt;p&gt;In practice, Drupal&#039;s configuration variables have also come under widespread abuse for purposes of storing metadata in situations where developers needed to describe information but felt that creating (and in the future supporting) a whole set of custom specific SQL table structures was too heavyweight a solution.&lt;/p&gt;
&lt;p&gt;Drupal clearly would benefit from a generic solution here, and indeed implementing unified metadata storage in Drupal &lt;a href=&quot;http://lists.drupal.org/pipermail/development/2006-November/020658.html&quot;&gt;has been discussed&lt;/a&gt; on the &lt;a href=&quot;http://lists.drupal.org/pipermail/development/&quot;&gt;development mailing list&lt;/a&gt; several times in the past. The RDF API provides a solution to this with sufficient generality to cover any specific use case.&lt;/p&gt;
&lt;h3&gt;Faceted browsing&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://simile.mit.edu/exhibit/&quot;&gt;Exhibit&lt;/a&gt; displays structured data in the form of rich visualizations that can be searched, filtered and sorted using faceted browsing. Exhibit is the perfect user interface complement to the flexibility that RDF brings to play on a systems level.&lt;/p&gt;
&lt;p&gt;While the possibilities are really endless, some of the more obvious applications of Exhibit may include navigating the user profiles by their organization membership, expertise, and social relationships; filtering event data by subject, audience, and timeframe, and graphically representing the events on both a map and a time grid; combining full-text search with taxonomy, group, and user- based filtering to locate content; and others. All the preceding using a common, consistent set of data manipulation and visualization tools.&lt;/p&gt;
&lt;p&gt;This is one of those cases where a demo speaks more than a thousand words. If you haven&#039;t seen &lt;a href=&quot;http://simile.mit.edu/exhibit/&quot;&gt;Exhibit&lt;/a&gt; or &lt;a href=&quot;http://simile.mit.edu/potluck/&quot;&gt;Potluck&lt;/a&gt; in action, go do so now. The &lt;a href=&quot;http://drupal.org/project/exhibit&quot;&gt;Exhibit module&lt;/a&gt; will bring these abilities to Drupal through the means of an Exhibit-SPARQL bridge.&lt;/p&gt;
&lt;p&gt;Some sneak peeks of the module performing its magic &lt;a href=&quot;http://flickr.com/photos/chrys/2234580714/&quot;&gt;are&lt;/a&gt; &lt;a href=&quot;http://flickr.com/photos/chrys/2233793397/&quot;&gt;available&lt;/a&gt; on Flickr.&lt;/p&gt;
&lt;h3&gt;Utilizing open, linked data&lt;/h3&gt;
&lt;p&gt;Utilizing the RDF API, the &lt;a href=&quot;http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData&quot;&gt;openly available big datasets&lt;/a&gt; can be used to enhance mashups built on top of Drupal.&lt;/p&gt;
&lt;p&gt;For instance, any factual information which Wikipedia has can be retrieved or copied from &lt;a href=&quot;http://dbpedia.org/&quot;&gt;DBpedia&lt;/a&gt;. As a trivial use case: instead of manually importing, say, the list of countries into a Drupal instance from a CSV or XML file, just pull the equivalent triples from DBpedia or the CIA World Fact Book using a single &lt;a href=&quot;http://en.wikipedia.org/wiki/SPARQL&quot;&gt;SPARQL&lt;/a&gt; query. Along similar lines, the GeoNames dataset has information on 6.5 million geographical location worldwide, including facts on every city and town; there are sure to be some intriguing possibilities here for spatial mashups.&lt;/p&gt;
&lt;h3&gt;From modules to widgets&lt;/h3&gt;
&lt;p&gt;The RDF API for Drupal will include a &lt;a href=&quot;http://jquery.com/&quot;&gt;jQuery&lt;/a&gt; API for querying and changing the metadata stored in the Drupal instance. This opens up a plethora of new possibilities.&lt;/p&gt;
&lt;p&gt;Even today, many UI-oriented Drupal modules live almost wholly on the browser side, maintaining only a tenuous, feeble server-side implementation responsible for taking care of persistent storage needed by the client-side functionality provided by the module. With the introduction of unified metadata storage for Drupal, it is conceivable to cut this server-side cord altogether; this is in line with post-Web-2.0 trends which are seeing more and more UI logic being transitioned from the server into the browser.&lt;/p&gt;
&lt;p&gt;A perfect case example is the &lt;a href=&quot;http://drupal.org/project/imagenotes&quot;&gt;Image Notes&lt;/a&gt; module. The sole purpose of this module is to dynamically attach an annotation widget to photos displayed on a Drupal site, allowing users to provide descriptive text for bounded regions of the image (e.g. marking up the names of the people depicted in the photo). Using the jQuery API for storing annotation metadata, this component needs no further customized server-side code, meaning that it can become either an extremely lightweight Drupal module, or perhaps even be directly incorporated into the Drupal site&#039;s theming layer without any need for an actual Drupal module per se.&lt;/p&gt;
&lt;p&gt;In general, widgets like this could conceivably be faster and quicker to develop than Drupal modules, be more amenable to quickly changing requirements, and not require any Drupal-specific expertise on the part of the developer - and many widgets could indeed work with any backend application as long as a compatible jQuery metadata API was provided.&lt;/p&gt;
&lt;h3&gt;RDF export functionality&lt;/h3&gt;
&lt;p&gt;With the introduction of the RDF API, every Drupal resource now has an associated machine-readable RDF description available via auto-discovery. If desired by the administrator, &lt;i&gt;all&lt;/i&gt; the data stored in a Drupal instance can be exposed this way. This supplants previous solutions such as the &lt;a href=&quot;http://drupal.org/project/importexportapi&quot;&gt;Import / Export API&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;(Implementing RESTful POST, PUT and DELETE semantics - perhaps interoperable with &lt;a href=&quot;http://en.wikipedia.org/wiki/Atom_%28standard%29&quot;&gt;AtomPub&lt;/a&gt; - for uploading changes in RDF format is beyond the current scope, though; RDFbus covers much the same ground, but using an asynchronous messaging paradigm.)&lt;/p&gt;
&lt;h3&gt;Publish/subscribe aggregation&lt;/h3&gt;
&lt;p&gt;RDFbus obsoletes the existing XML-RPC-based &lt;a href=&quot;http://drupal.org/project/publish&quot;&gt;Publish&lt;/a&gt;/&lt;a href=&quot;http://drupal.org/project/subscribe&quot;&gt;Subscribe&lt;/a&gt; solution for Drupal, goes one further by not being tied into specific content types or data, and potentially enables notification and synchronization with any client application or device which can talk &lt;a href=&quot;http://en.wikipedia.org/wiki/XMPP&quot;&gt;XMPP&lt;/a&gt; and understands triples.&lt;/p&gt;
&lt;p&gt;Drupal vocabularies, categories, user accounts, groups, pages, blog posts, events, files; RDFbus is content-agnostic and will transport anything which can be described in RDF.&lt;/p&gt;
&lt;h3&gt;Distributed identity and trust&lt;/h3&gt;
&lt;p&gt;On the one hand, RDF allows describing user/group equivalences between two Drupal instances; on the other, RDFbus allows the same physical user account to be synchronized between these instances for purposes of Drupal modules that aren&#039;t RDF-aware. In addition, &lt;a href=&quot;http://en.wikipedia.org/wiki/FOAF_%28software%29&quot;&gt;FOAF&lt;/a&gt; relationships between user accounts, groups and sites (user-to-user, user-to-group, group-to-site, and so on) provide the basis for a distributed network of trust.&lt;/p&gt;
&lt;p&gt;This might provide similar functionality as LDAP, but in a manner that is decentralized, happens over the cloud, and is FOAF-compatible. (Note that OpenID is orthogonal to this setup; each user merely needs a URI, and that can equally well be provided by OpenID or something else.)&lt;/p&gt;
&lt;h3&gt;Distributed search&lt;/h3&gt;
&lt;p&gt;RDF allows mashing up any information about anything. &lt;a href=&quot;http://en.wikipedia.org/wiki/SPARQL&quot;&gt;SPARQL&lt;/a&gt; has built-in support for federated queries over any number of RDF data sources. &lt;a href=&quot;http://dig.csail.mit.edu/breadcrumbs/node/206&quot;&gt;OpenID + FOAF&lt;/a&gt; provide a global URI-based identity with trust metrics for access control and personalization purposes.&lt;/p&gt;
&lt;p&gt;Something might perhaps be built on top of SPARQL that would not only obsolete &lt;a href=&quot;http://drupal.org/project/opensearch&quot;&gt;OpenSearch&lt;/a&gt;, but make it seem crude in comparison.&lt;/p&gt;
&lt;h3&gt;Aggregated views/visualizations&lt;/h3&gt;
&lt;p&gt;Think of the benefits that the &lt;a href=&quot;http://drupal.org/project/views&quot;&gt;Views&lt;/a&gt; module provided for individual Drupal instances, and imagine something that takes this concept and runs with it a little further: aggregated for any number of Drupal instances or other RDF-aware data sources, and based on SPARQL instead of SQL.&lt;/p&gt;
&lt;p&gt;Imagine what you&#039;d want to see, in a tabular format or otherwise, and if the source data for it exists on the local RDF cloud, a SPARQL query can be written to traverse the graph, transform the results, and pull up the data for visualization purposes.&lt;/p&gt;
&lt;p&gt;Given the aforementioned paradigm shift to widgets, this yet-to-be-named component (&lt;em&gt;Sparkling Views?&lt;/em&gt;) could support richer, higher-level output than what the Views module does. Timelines, sparklines, piecharts; you name it, and if a widget exists, it could be plugged in.&lt;/p&gt;
&lt;h3&gt;Global hub/dashboard&lt;/h3&gt;
&lt;p&gt;Given all the facilities detailed above, a next step would be building a dashboard-like central hub interface for monitoring real-time activity in all instances (over the RDFbus) and performing aggregate queries (using SPARQL) over the full datagraph for e.g. obtaining metrics and analytics while respecting local privacy concerns. This would be useful both for management and system administration purposes in an organization relying on a distributed Drupal platform.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/semantic-web&quot;&gt;Semantic Web&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9010#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/86">Drupal</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4158">MakaluMedia</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4159">MCDean</category>
 <category domain="http://groups.drupal.org/taxonomy/term/839">RDF</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4134">RDFbus</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4133">SPARQL</category>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/semantic-web">Semantic Web</group>
 <pubDate>Tue, 19 Feb 2008 04:50:56 +0000</pubDate>
 <dc:creator>arto@drupal.org</dc:creator>
 <guid isPermaLink="false">9010 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Some review and proposal about Drupal 7.x database stack</title>
 <link>http://groups.drupal.org/node/8907</link>
 <description>&lt;p&gt;I start my Drupal + Oracle research since the end of Drupal 4.7 life cycle (around Oct 2006), based on my client&#039;s request. The project is still running, but I am not satisfy about its progress. After keep trace in Drupal database stack implementation for more than years, it is time for focusing on Drupal 7.x development.&lt;/p&gt;
&lt;p&gt;So what are the changes since 4.7.x? And what will be happened for 7.x? I would like to share my research progress with you, and so let&#039;s brain storming for what&#039;s next :-)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://edin.no-ip.com/html/files/DrupalDBStack_title.png&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;drupal-4.7.x-5.x&quot;&gt;Drupal 4.7.x/5.x&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://edin.no-ip.com/html/files/DrupalDBStack_D5.png&quot;&gt;&lt;img src=&quot;http://edin.no-ip.com/html/files/DrupalDBStack_D5.png&quot;&gt;&lt;/a&gt;&lt;br /&gt;
Fig 1.1 Drupal 5.x database stack.&lt;/p&gt;
&lt;p&gt;The case of Drupal 4.7.x and 5.x is very similar: we support both MySQL and PostgreSQL backend, with specific database access API file (e.g. database.mysqli.inc), enclosed with database.inc, and that&#039;s all. We still have some extra abstraction build on top of this simple model, e.g. tablesort.inc and pager.inc, for some useful application layer abstraction.&lt;/p&gt;
&lt;p&gt;During this period, core and contribute developers need to understand the differences between MySQL and PostgreSQL, since database schema must handle manually. I would like to call this as the dark age of our history: we are asking every contribute developers as both MySQL and PostgreSQL expert (but most of us coming with MySQL-only skill set), or else code was not portable. This result in a complicated PostgreSQL support, and so most contribute modules are MySQL only.&lt;/p&gt;
&lt;h2 id=&quot;drupal-6.x&quot;&gt;Drupal 6.x&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://edin.no-ip.com/html/files/DrupalDBStack_D6.png&quot;&gt;&lt;img src=&quot;http://edin.no-ip.com/html/files/DrupalDBStack_D6.png&quot;&gt;&lt;/a&gt;&lt;br /&gt;
Fig 2.1 Drupal 6.x database stack.&lt;/p&gt;
&lt;p&gt;For our newest stable Drupal release - 6.x, Schema API is being introduced. We spend a lot of time for its development, during 6.x 1-year development life cycle. It is target to solve the schema problem as mentioned above. Contribute developers are no longer required as bi-expert nor multi-expert: we just need to know how to define our schema in a correct Schema API syntax, Schema API will handle the rest for us. IMHO, it is very powerful, and it is an important improvement for other database development.&lt;/p&gt;
&lt;p&gt;drupal_write_record() is being introduce, too. This handy function will grep out existing cached schema, and build INSERT/UPDATE queries for us automatically. It try to handle all column type binding for normal developers, which is usually very bulky in implementation.&lt;/p&gt;
&lt;p&gt;BTW, the work is not too elegant: all stuff are mixed into database.*.inc, and so files are even split as 2 section (groups &lt;code&gt;database&lt;/code&gt; and &lt;code&gt;schemaapi&lt;/code&gt;) internally. This may increase the difficulty for our core maintenance.&lt;/p&gt;
&lt;p&gt;Most likely, this design is very similar as &lt;a href=&quot;http://docs.moodle.org/en/XML_database_schema&quot;&gt;Moodle 1.7+ XMLDB&lt;/a&gt; implementation.&lt;/p&gt;
&lt;h2 id=&quot;drupal-7.x&quot;&gt;So what&#039;s coming next for Drupal 7.x?&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://edin.no-ip.com/html/files/DrupalDBStack_D7_hook.png&quot;&gt;&lt;img src=&quot;http://edin.no-ip.com/html/files/DrupalDBStack_D7_hook.png&quot;&gt;&lt;/a&gt;&lt;br /&gt;
Fig 3.1 Well... So what&#039;s coming next for Drupal 7.x?&lt;/p&gt;
&lt;p&gt;The truth is: I don&#039;t know the overall schedule up to this moment. &lt;a href=&quot;http://groups.drupal.org/data-architecture-design-sprint&quot;&gt;Data Architecture Design Sprint group&lt;/a&gt; is now hard working for this, and going to present their research progress in Boston DrupalCon 2008. Since we are going to use PHP PDO (instead of legacy PHP database connection drivers), people are also focusing on implement Data API or Active record model for a higher level of abstraction. Before they have their final decision, I would like to provide some successful case study as reference, and let&#039;s brain storming for the optimal solution :-)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://edin.no-ip.com/html/files/MoodleDBStack.png&quot;&gt;&lt;img src=&quot;http://edin.no-ip.com/html/files/MoodleDBStack.png&quot;&gt;&lt;/a&gt;&lt;br /&gt;
Fig 3.2 Moodle 1.7+ XMLDB stack. From &lt;a href=&quot;http://docs.moodle.org/en/Development:XMLDB_introduction#The_Stack&quot;&gt;doc.moodle.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When we are talking about improve our database abstraction as more powerful and universal, Moodle 1.7+ XMLDB stack should act as a perfect example (it since &lt;a href=&quot;http://docs.moodle.org/en/Release#Moodle_1.7&quot;&gt;Nov 2006&lt;/a&gt;). As Moodle core uses ADOdb internally, this possibility has been present since the beginning. Plus their XMLDB abstraction, Moodle 1.7+ is able to handle both MySQL, PostgreSQL, Oracle and MSSQL while maintaining everything working properly. I will not detail their implementation within this article, and you may refer to their &lt;a href=&quot;http://docs.moodle.org/en/Development:XMLDB_introduction&quot;&gt;introducetion&lt;/a&gt;, &lt;a href=&quot;http://docs.moodle.org/en/Development:XMLDB_roadmap&quot;&gt;roadmap&lt;/a&gt; and &lt;a href=&quot;http://docs.moodle.org/en/Development:XMLDB_problems&quot;&gt;problems&lt;/a&gt; document.&lt;/p&gt;
&lt;p&gt;The most important idea of Moodle&#039;s XMLDB stack is split-brain handling. They left every layer keep focus on their duty ONLY, and so the final approach is perfect and elegant. This is also similar as the well-known &lt;a href=&quot;http://en.wikipedia.org/wiki/OSI_model&quot;&gt;OSI model&lt;/a&gt;: A layer is a collection of related functions that provides services to the layer above it and receives service from the layer below it.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://edin.no-ip.com/html/files/DrupalDBStack_D7_draft.png&quot;&gt;&lt;img src=&quot;http://edin.no-ip.com/html/files/DrupalDBStack_D7_draft.png&quot;&gt;&lt;/a&gt;&lt;br /&gt;
Fig 3.3 Research progress of &lt;a href=&quot;http://edin.no-ip.com/project/siren&quot;&gt;Siren&lt;/a&gt; + personal suggestion.&lt;/p&gt;
&lt;p&gt;Well, &lt;a href=&quot;http://edin.no-ip.com/project/siren&quot;&gt;Siren&lt;/a&gt; is my personal research project besides Drupal 6.x, which target to explore the possibility of multiple database support as like as Moodle, Gallery2, and eGroupWare. Moreover, prepare research progress whenever Drupal 7.x is open for public development (and that&#039;s now). Within this project, we are able to support both 5 database + totally 9 PHP database access drivers, including mysql, mysqli, pgsql, oci8, pdo_mysql, pdo_pgsql, pdo_oci, pdo_sqlite and pdo_ibm.&lt;/p&gt;
&lt;p&gt;It sounds interesting, isn&#039;t it? So what changes I have been made in order to support this approach? Just some step forward improvement: split the handle of function calls into number of individual files, and each layer just keep focus on what they are needed for. E.g. split Schema API related functions into schema.&lt;em&gt;.inc, common DML into common.&lt;/em&gt;.inc, and so on. Surly I plug some extra update to our core queries syntax; but most likely, the idea is just very strict forward. The research progress should belongs to &lt;a href=&quot;http://en.wikipedia.org/wiki/Session_layer&quot;&gt;OSI session layer&lt;/a&gt; when compare with OSI model.&lt;/p&gt;
&lt;p&gt;IMHO, Data API is a must for our future, if Drupal is going to be a web service framework. Acting as a high level abstraction should be the best position for it. It should be similar as the idea of &lt;a href=&quot;http://en.wikipedia.org/wiki/Presentation_layer&quot;&gt;OSI presentation layer&lt;/a&gt;, which is one level below our core application APIs. It may implement as OOP or whatever; BTW, according to its duty and responsibility, it should be separated from PDO database access API (where PDO is much similar as &lt;a href=&quot;http://en.wikipedia.org/wiki/Transport_layer&quot;&gt;OSI transport layer&lt;/a&gt; implementation).&lt;/p&gt;
&lt;p&gt;One statement as conclusion: split-brain handling.&lt;/p&gt;
&lt;h2 id=&quot;other_suggestion&quot;&gt;Any else suggestion?&lt;/h2&gt;
&lt;p&gt;Database driver is something only need to be implement once and forever. Once the design of logic is completed, the rest is all about the style of implementation, e.g. using OOP as ADOdb or traditional function callback as Drupal.&lt;/p&gt;
&lt;p&gt;The design of abstraction layer is also similar, too. Once you get a complete study of the variation between each databases, and able to foresee ALL of the needs of their specific limitation, it is all done. There is no such idea of &quot;Contribute Supported Database&quot; within the above 2 layers, and it is what I call as &quot;No gray area, but only black and white&quot;. Whatever you support it, or else you don&#039;t.&lt;/p&gt;
&lt;p&gt;On the other hand, Data API is much different. It try to serve the need of our application, and so its requirement will keep on changing depend on time. Therefore a split-brain handle should be the most suitable implementation. Please correct me if you have some better idea :-)&lt;/p&gt;
&lt;p&gt;But the truth case is: we are lack of PostgreSQL/Oracle/DB2/SQLite/etc developers, and not enough task force nor union for a complete and perfect support for them. Up to this point, I would like to proposal the idea of &quot;Contribute Supported Database&quot; in this way:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Implement ALL possible database drivers into core, and build an abstraction that cover ALL the needs of them. This is a once forever task, and the base of the rest of discussion.&lt;/li&gt;
&lt;li&gt;ALL core libraries and essential modules for installation MUST implemented as universal, so basic installation MUST function for ALL databases. E.g. node, comment, users, block, etc. This is all the duty of our core developers which need to be ensure before stable release. On the other hand, if MySQL (and maybe SQLite, too) is our main focus, just keep its support as perfect as usual.
&lt;p&gt;&lt;i&gt;P.S. an additional pre-requirement for this point: try to implement ALL core module as SQL-99 compatible by default, and so save a lot of time for further more follow up handling.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Label the optional modules as &quot;Not supported&quot; or &quot;Not perfectly supported&quot; within modules selection page, if that is the case of specific database backend; give a different level of support status; or maybe even, disable its activation checkbox by default. Don&#039;t let our second/third priority database hold our stable release!&lt;/li&gt;
&lt;li&gt;left the issue open for contribute developers if they really hope to let that module function for database A/B/C/etc, and release subversions besides stable release for this purpose. E.g. if now search and forum module are not compatible with Oracle, just let it be as Oracle developers duty!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is my ideal proposal. So how about yours? &lt;a href=&quot;http://edin.no-ip.com/html/files/DrupalDBStack.odg&quot;&gt;Here&lt;/a&gt; is the raw file of above images, please feel free to utilize it if you hope to visualize your idea as above :-)&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/postgresql&quot;&gt;Postgresql&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/8907#comments</comments>
 <group domain="http://groups.drupal.org/database-schema-api">Database Schema API</group>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/postgresql">Postgresql</group>
 <pubDate>Fri, 15 Feb 2008 06:40:02 +0000</pubDate>
 <dc:creator>hswong3i</dc:creator>
 <guid isPermaLink="false">8907 at http://groups.drupal.org</guid>
</item>
<item>
 <title>DB support as contribute: is it a good idea?</title>
 <link>http://groups.drupal.org/node/8855</link>
 <description>&lt;h2 id=&quot;abstract&quot;&gt;Abstract&lt;/h2&gt;
&lt;p&gt;Drupal 6.0 is revamped with &lt;a href=&quot;http://api.drupal.org/api/group/schemaapi/6&quot;&gt;Schema API&lt;/a&gt;, so what&#039;s next for Drupal 7.x? &lt;a href=&quot;http://php.net/pdo&quot;&gt;PDO&lt;/a&gt; for sure! With this powerful &lt;b&gt;data-access&lt;/b&gt; abstraction layer, workload will much reduced for DB abstraction layer designers and developers, and finally benefit our contribute developers and end users.&lt;/p&gt;
&lt;p&gt;By the way, together with the decision of Drupal 7.x + PDO, there is also some voice about &lt;b&gt;moving PostgreSQL&lt;/b&gt; (and so other potential databases support, e.g. Oracle, DB2, MSSQL, etc) &lt;b&gt;support away from core, but contribute&lt;/b&gt;; on the other hand, &lt;b&gt;add official SQLite support&lt;/b&gt; into Drupal core, together with MySQL.&lt;/p&gt;
&lt;p&gt;Is this really a good idea? Or even if it is possible? As an existing Drupal + PostgreSQL users, what will this affect your daily work? As a potential customer of Drupal + Oracle/DB2/MSSQL/etc, is this a good new for you, or just an evil? I would like to provide some brief idea for you within this article.&lt;/p&gt;
&lt;h2 id=&quot;background&quot;&gt;Background&lt;/h2&gt;
&lt;p&gt;After &lt;a href=&quot;http://cvs.drupal.org/viewvc.py/drupal/drupal/database/database.pgsql?hideattic=0&amp;amp;view=log&quot;&gt;more than 6 years of PostgreSQL supporting in Drupal core&lt;/a&gt;, PostgreSQL users are going to have a revamped experience with Drupal 6.0. Drupal 6.0 will ship with &lt;a href=&quot;http://api.drupal.org/api/group/schemaapi/6&quot;&gt;Schema API&lt;/a&gt;, which simplify most of the variation between databases handling - &lt;a href=&quot;http://en.wikipedia.org/wiki/Data_Definition_Language&quot;&gt;DDL&lt;/a&gt;. This useful improvement will not only benefit our existing core and contribute developers, but also simplify most workload for other database driver development, besides MySQL and PostgreSQL. With Drupal 6.0, we can simply foresee the expand of existing market sharing, together with the explore of hidden customers.&lt;/p&gt;
&lt;p&gt;As Drupal 6.0 is ready to launch, it is also a good timing to plan for Drupal 7.x. As we will only support PHP 5.2.x or above in Drupal 7.x, it is for sure that we will revamp our existing DB abstraction layer with the help of &lt;a href=&quot;http://php.net/pdo&quot;&gt;PDO&lt;/a&gt;. It does simplify and standardize a lot of function call implementation, together with some useful new features. If you are a DB abstraction layer designer and developer, moving your work to PDO will save you a lot of time.&lt;/p&gt;
&lt;p&gt;On the other hand, some people also think it is a good timing for adding &lt;a href=&quot;http://drupal.org/node/39260&quot;&gt;Oracle&lt;/a&gt;, &lt;a href=&quot;http://drupal.org/node/67349&quot;&gt;SQLite&lt;/a&gt;, &lt;a href=&quot;http://drupal.org/node/165788&quot;&gt;DB2&lt;/a&gt; and &lt;a href=&quot;http://drupal.org/node/74308&quot;&gt;MSSQL&lt;/a&gt; support into Drupal core. Most of this request are halted for 2~3 years.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://groups.drupal.org/data-architecture-design-sprint&quot;&gt;Some of the developers&lt;/a&gt; are hard working with the future plan for how Drupal 7.x DB handling should looks like. BTW, the idea is most likely for expand Drupal usability and functionality, but not about maintain nor expand different databases supporting: some developers even think &lt;a href=&quot;http://lists.drupal.org/pipermail/development/2008-January/028343.html&quot;&gt;we should&lt;/a&gt; only official support MySQL and SQLite with Drupal 7.x + PDO, but move away PostgreSQL (nor other potential databases) supporting as contribute level.&lt;/p&gt;
&lt;h2 id=&quot;pdo_does_doesnt&quot;&gt;What PDO Does and Doesn&#039;t?&lt;/h2&gt;
&lt;p&gt;For finding out why this brain storming happen, we need to have some idea about what PDO does and doesn&#039;t:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;PDO is a data-access abstraction layer, but not provide a database abstraction.&lt;/b&gt; E.g., this means we can simply forget the function API differences between &lt;a href=&quot;http://php.net/mysql-connect&quot;&gt;mysql_connect()&lt;/a&gt;, &lt;a href=&quot;http://php.net/mysqli-connect&quot;&gt;mysqli_connect()&lt;/a&gt; and also &lt;a href=&quot;http://php.net/pg_connect&quot;&gt;pg_connect()&lt;/a&gt;: we just need to &lt;a href=&quot;http://www.php.net/manual/en/function.PDO-construct.php&quot;&gt;construct a new-standardized PDO object&lt;/a&gt; with different DSN (Data Source Name). Moreover, we can forget those complicated programming logic differences between &lt;a href=&quot;http://www.php.net/manual/en/function.pg-escape-bytea.php&quot;&gt;pg_escape_bytea()&lt;/a&gt;, &lt;a href=&quot;http://www.php.net/manual/en/function.oci-lob-load.php&quot;&gt;OCI-Lob-&amp;gt;load()&lt;/a&gt; and &lt;a href=&quot;http://www.php.net/db2_lob_read&quot;&gt;db2_lob_read()&lt;/a&gt;, but simply using standard &lt;a href=&quot;http://www.php.net/manual/en/ref.stream.php&quot;&gt;Stream API&lt;/a&gt; as &lt;a href=&quot;http://php.net/pdo#pdo.lobs&quot;&gt;PDO LOB (Large OBject) handling&lt;/a&gt;.
&lt;p&gt;BTW, these are most likely abstracted by Drupal 6.x DB API, e.g. &lt;a href=&quot;http://api.drupal.org/api/function/db_connect/6&quot;&gt;db_connect()&lt;/a&gt;, &lt;a href=&quot;http://api.drupal.org/api/function/db_query/6&quot;&gt;db_query()&lt;/a&gt;, &lt;a href=&quot;http://api.drupal.org/api/function/db_decode_blob/6&quot;&gt;db_decode_blob()&lt;/a&gt;, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PDO provide &lt;a href=&quot;http://php.net/pdo#pdo.prepared-statements&quot;&gt;prepared statements and variable binding&lt;/a&gt;, even it is not supported by database, e.g. MySQL.&lt;/b&gt; With PDO variable binding, we may use &lt;code&gt;?&lt;/code&gt; or named-variable (leading with &lt;code&gt;:&lt;/code&gt;, e.g. &lt;code&gt;:value&lt;/code&gt;) within prepare statement. This seems to be a good idea for replace our existing user-space printf-syntax (e.g. %d, %f, %s, %b and %%) as PDO&#039;s C/C++ implementation, and simply forget the relationship between data, data type and database column type. This also give a great hope to &lt;a href=&quot;http://groups.drupal.org/node/8001&quot;&gt;Drupal 7.x Data API&lt;/a&gt; research and development.
&lt;p&gt;So isn&#039;t it perfect? No, it is not... First of all, &lt;b&gt;most databases require special LOB handle during variable binding&lt;/b&gt; (specific PDO::PARAM_LOB manually), e.g. &lt;a href=&quot;http://edin.no-ip.com/viewvc/siren/includes/database.pdo_pgsql.inc?view=markup&quot;&gt;PostgreSQL&lt;/a&gt;, &lt;a href=&quot;http://edin.no-ip.com/viewvc/siren/includes/database.pdo_oci.inc?view=markup&quot;&gt;Oracle&lt;/a&gt;, &lt;a href=&quot;http://edin.no-ip.com/viewvc/siren/includes/database.pdo_ibm.inc?view=markup&quot;&gt;DB2&lt;/a&gt;, etc. Only MySQL and SQLite are able to handle variable binding without type specified. Also, &lt;b&gt;there is no spotlight performance different, even we swap queries variable binding from user-space printf-syntax to PDO&lt;/b&gt;, which is proved by &lt;a href=&quot;http://edin.no-ip.com/project/siren/siren-1.0-rc4#benchmarking_result&quot;&gt;benchmarking result&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PDO isn&#039;t a database abstraction layer, it doesn&#039;t abstract and standardize ANY database variation.&lt;/b&gt; E.g., PDO doesn&#039;t solve the problem of reserved words conflict&lt;/a&gt;, it don&#039;t &lt;a href=&quot;http://drupal.org/node/167335&quot;&gt;abstract any SQL function name variation&lt;/a&gt;, it also have not duty with &lt;a href=&quot;http://drupal.org/node/147947&quot;&gt;resolve the maximum string size limitation across most databases&lt;/a&gt;.
&lt;p&gt;Let&#039;s take Oracle LOB handling as an example: PDO give none of help to &lt;a href=&quot;http://php.net/pdo#pdo.lobs&quot;&gt;Oracle LOB INSERT/UPDATE handling&lt;/a&gt;, we still need to use RETURNING + Schema API. According to &lt;a href=&quot;http://edin.no-ip.com/project/siren&quot;&gt;my research progress&lt;/a&gt; and case of Oracle, using standardized function call is the only benefit of using PDO, but didn&#039;t help or simplify any programming logic or implementation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;IMHO, PDO is very useful for DB abstraction layer designer and developer: it do simplify most of the DB function call variation; BTW, when we are talking about &quot;PDO can improve database abstraction and so software with PDO can support more databases&quot;, it is not really truth. PDO don&#039;t have duty with this ;-(&lt;/p&gt;
&lt;h2 id=&quot;contribute_support&quot;&gt;How about Drupal + PostgreSQL (or other databases) support as contribute?&lt;/h2&gt;
&lt;p&gt;It is for sure that MySQL own around 90-95% of our existing market sharing; it is not question that SQLite is a &lt;a href=&quot;http://www.cliki.net/manifest%20type%20system&quot;&gt;manifest typing&lt;/a&gt; database engine; based on the above PDO stuff information, MySQL and SQLite are both very suitable with PDO lossy-form variable binding technology (able to use &lt;code&gt;?&lt;/code&gt; and named-variable binding without type specified). But when we are talking about &lt;b&gt;&quot;How many percentage of PDO technologies are utilized by MySQL and SQLite?&quot;&lt;/b&gt; and &lt;b&gt;&quot;How many percentage of technologies that PDO NOT covered are used by MySQL and SQLite?&quot;&lt;/b&gt;, I guess the answer may just below &lt;b&gt;70%&lt;/b&gt;...&lt;/p&gt;
&lt;p&gt;So what will happen if we seem MySQL and SQLite as our first priority core supported database, and ONLY focus with them? &lt;b&gt;For sure that we will miss out the rest of 30%, which means the basic elements needed by other databases, within Drupal database abstraction layer.&lt;/b&gt; This also means asking other database drivers implement as contribute is just a nonsense, if we only support a subset of requirement within core.&lt;/p&gt;
&lt;p&gt;On the other hand, writing MySQL-specific queries also generate a lot of incompatible issues for PostgreSQL during Drupal 6.x development life cycle. People also claim that &lt;a href=&quot;http://lists.drupal.org/pipermail/development/2008-January/028295.html&quot;&gt;PostgreSQL issues slow down our Drupal 6.x release&lt;/a&gt;. BTW, there is still a lot of incompatible issues even PostgreSQL is now seems as our &quot;Official Supported Database&quot; in Drupal 6.x, we can simply foresee about the case if we just seems it as contribute supported. It is better say that: &lt;b&gt;we are NOT going to support PostgreSQL anymore!&lt;/b&gt; And so the similar case for other databases driver development: &lt;b&gt;we will have NO WAY to implement other database drivers as contribute support!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;PDO + PostgreSQL + LOB handling should be a good example of this assumption. In case of pdo_pgsql, we need to specify PDO::PARAM_LOB manually during INSERT/UPDATE variable binding, and &lt;a href=&quot;http://bugs.php.net/bug.php?id=37124&quot;&gt;must use Stream API for BLOB decode&lt;/a&gt;. Both of these handling are NOT required by MySQL and SQLite. If our Drupal 7.x Data API design are target for MySQL and SQLite ONLY, it is for sure that NO WAY for PostgreSQL driver implement as contribute: we will have no hook for it!&lt;/p&gt;
&lt;p&gt;As a simple conclusion, &lt;b&gt;multiple database support MUST build inside core, with a complete research of what are they needed for.&lt;/b&gt; There is no shortcut, and no gray area. The support of database is just simply a TRUE/FALSE question. Please don&#039;t be faked by the beautiful wording of &quot;Contribute Supported Database&quot;: it is just a sweet poison candy, that is not the truth case, and I have NEVER seen a successful story about this :-p&lt;/p&gt;
&lt;h2 id=&quot;should_do&quot;&gt;Oh my god! So what should I do for it?&lt;/h2&gt;
&lt;p&gt;&lt;b&gt;If you are an existing Drupal + PostgreSQL user&lt;/b&gt;, it is strongly suggest to keep you eye focus on the &lt;a href=&quot;http://groups.drupal.org/data-architecture-design-sprint&quot;&gt;Data Architecture Design Sprint group&lt;/a&gt;, comment your needs and wish to them, or else you may be fired away without notice. You may also have a look about &lt;a href=&quot;http://drupal.org/project/issues?text=postgresql&amp;amp;states=1,16,8,13,14,15,2,4&amp;amp;projects=&amp;amp;priorities=&amp;amp;categories=&amp;amp;users=&quot;&gt;issues related to PostgreSQL&lt;/a&gt;, give a hand to it if possible, and &lt;a href=&quot;http://groups.drupal.org/node/6980&quot;&gt;comment them as a Wiki collection&lt;/a&gt;. IMHO, it is a critical timing for Drupal + PostgreSQL besides the past 6 years support period. It is time for &lt;b&gt;YOU&lt;/b&gt; to take &lt;b&gt;YOUR&lt;/b&gt; action, or else will be too late.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;If you are a potential customer or user of Drupal + Oracle/SQLite/DB2/MSSQL/etc&lt;/b&gt;, beside the above suggestion for PostgreSQL, I would also like to invite you to give a hand on some &lt;a href=&quot;http://drupal.org/project/issues?projects=3060&amp;amp;text=Siren&amp;amp;states=1,16,8,13,14,15,2,4&amp;amp;priorities=&amp;amp;categories=&amp;amp;users=&quot;&gt;existing issues&lt;/a&gt;, review and comment them, and finally record your work in another &lt;a href=&quot;http://groups.drupal.org/node/8663&quot;&gt;Wiki tasklist&lt;/a&gt;. According to &lt;a href=&quot;http://edin.no-ip.com/project/siren&quot;&gt;some research founding&lt;/a&gt;, we would able to enrich our database supporting without a critical pain of revamp, based on our existing Drupal 6.x DB API implementation. Most research are now completed, so issues review and comment your point of view should be your highest priority. Please remember that: &lt;b&gt;comment is power&lt;/b&gt;, and &lt;b&gt;YOUR&lt;/b&gt; review is very important for speeding up the core support of your target databases.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;My humble conclusion&lt;/h2&gt;
&lt;p&gt;Every developers have their own background, their own wish, their own needs, and also their own rose garden. I would not like to comment this &lt;b&gt;&quot;PostgreSQL as Contribute&quot;&lt;/b&gt; idea as silly; but at least, it is not my cup of tea.&lt;/p&gt;
&lt;p&gt;On the other hand, supporting more database won&#039;t be a conflict with the research and develop of Drupal&#039;s Schema API or Data API: they are target for a better developer and user experience, serving database abstraction should be one of their core duties. Asking for better abstraction and functionality but reduce the number of supported database, or even close the door for other database should be count as loss focus.&lt;/p&gt;
&lt;p&gt;From my point of view, more choice is always better than just giving me a single solution. The use and choose of database should depend on the needed of each individual case of clients and users, but not forced by developers. If we are already close to our target, there is no point for rollback our 6-years progress on tomorrow.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;A beautiful-sweet-poisoned candy? No thanks!&lt;/b&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/postgresql&quot;&gt;Postgresql&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/8855#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/2777">db2</category>
 <category domain="http://groups.drupal.org/taxonomy/term/844">mssql</category>
 <category domain="http://groups.drupal.org/taxonomy/term/748">oracle</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4089">PDO</category>
 <category domain="http://groups.drupal.org/taxonomy/term/758">PostgreSQL</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4090">SQLite</category>
 <group domain="http://groups.drupal.org/database-schema-api">Database Schema API</group>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/postgresql">Postgresql</group>
 <pubDate>Wed, 13 Feb 2008 08:45:44 +0000</pubDate>
 <dc:creator>hswong3i</dc:creator>
 <guid isPermaLink="false">8855 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Boston Drupalcon showcase and case study contest</title>
 <link>http://groups.drupal.org/node/8758</link>
 <description>&lt;p&gt;Cross posting from here: &lt;a href=&quot;http://drupal.org/node/219476&quot; title=&quot;http://drupal.org/node/219476&quot;&gt;http://drupal.org/node/219476&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There will be a Drupal site showcase and case study contest at the upcoming Boston Drupalcon.&lt;/p&gt;
&lt;p&gt;Submitted sites will be voted online and judged by a panel of community nominated judges and some great prizes will be awarded to the winners! This is a chance to have all your hard work creating amazing Drupal sites recognized.&lt;/p&gt;
&lt;p&gt;Go on over to the Drupalcon Boston site to &lt;a href=&quot;http://boston2008.drupalcon.org/node/add/showcase_site&quot;&gt;submit your favorite sites&lt;/a&gt; and &lt;a href=&quot;http://boston2008.drupalcon.org/showcase_contest_entries&quot;&gt;view and vote for the best ones&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We&#039;ll also be doing a session to discuss &lt;a href=&quot;http://boston2008.drupalcon.org/session/popular-high-traffic-and-enterprise-drupal-sites-showcase&quot;&gt;popular, high traffic and enterprise Drupal sites&lt;/a&gt; and why Drupal is often the platform of choice so please join us.&lt;/p&gt;
&lt;p&gt;Please post comments here to nominate judges you feel would be best suited to judging these high caliber sites.&lt;/p&gt;
&lt;p&gt;Thanks and see you in Boston!&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-marketing&quot;&gt;Marketing of Drupal&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/8758#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/799">contest</category>
 <category domain="http://groups.drupal.org/taxonomy/term/247">drupalcon</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1548">showcase</category>
 <group domain="http://groups.drupal.org/bay-area">Bay Area</group>
 <group domain="http://groups.drupal.org/boston2008">Boston2008</group>
 <group domain="http://groups.drupal.org/consulting">Consulting and Business</group>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/high-performance">High performance</group>
 <group domain="http://groups.drupal.org/drupal-marketing">Marketing of Drupal</group>
 <pubDate>Fri, 08 Feb 2008 22:08:28 +0000</pubDate>
 <dc:creator>ChrisB</dc:creator>
 <guid isPermaLink="false">8758 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Issues Need Review for Enhance Cross Database Compatibility</title>
 <link>http://groups.drupal.org/node/8663</link>
 <description>&lt;p&gt;Enhance cross database compatibility is important for our Drupal Core, especially when we are going to ship D7 with PHP5.2.x PDO implementation. BTW, this will require number of individual patches, so your help and review are required - add it to the top list with a brief description and an estimate of the time to review. Once reviewed, move the issues to the bottom &quot;reviewed&quot; list, perhaps with your name attached.&lt;/p&gt;
&lt;h3&gt;Need Review&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/371&quot; title=&quot;http://drupal.org/node/371&quot;&gt;http://drupal.org/node/371&lt;/a&gt; - Resolve ANSI SQL-92/99/2003 reserved words conflict. (just a few minute, but need a lot of follow up)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/199217&quot; title=&quot;http://drupal.org/node/199217&quot;&gt;http://drupal.org/node/199217&lt;/a&gt; - Split Schema API and shared functions from DB drivers. (just a few minute)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/167335&quot; title=&quot;http://drupal.org/node/167335&quot;&gt;http://drupal.org/node/167335&lt;/a&gt; - Handle database-specific SQL functions/operators by simple abstraction. (just a few minute)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/199101&quot; title=&quot;http://drupal.org/node/199101&quot;&gt;http://drupal.org/node/199101&lt;/a&gt; - Core queries coding style cleanup for PDO development (should be RTBC, but need a lot of follow up)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/218128&quot; title=&quot;http://drupal.org/node/218128&quot;&gt;http://drupal.org/node/218128&lt;/a&gt; - Enhance _db_query_callback() for PDO.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/183148&quot; title=&quot;http://drupal.org/node/183148&quot;&gt;http://drupal.org/node/183148&lt;/a&gt; - INSERT/UPDATE/DELETE API, drupal_drop_record() and enhance drupal_write_record().&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/147947&quot; title=&quot;http://drupal.org/node/147947&quot;&gt;http://drupal.org/node/147947&lt;/a&gt; - Replace some TEXT:BIG with BLOB, based on cross database compatibility concern.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Reviewed&lt;/h3&gt;
&lt;h3&gt;Committed without Thorough Review&lt;/h3&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/postgresql&quot;&gt;Postgresql&lt;/a&gt;&lt;/div&gt;</description>
 <group domain="http://groups.drupal.org/database-schema-api">Database Schema API</group>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/postgresql">Postgresql</group>
 <pubDate>Tue, 05 Feb 2008 08:48:16 +0000</pubDate>
 <dc:creator>hswong3i</dc:creator>
 <guid isPermaLink="false">8663 at http://groups.drupal.org</guid>
</item>
<item>
 <title>My personal battle target for Druapl 7.x</title>
 <link>http://groups.drupal.org/node/8586</link>
 <description>&lt;p&gt;My primary battle plan should be &lt;a href=&quot;http://drupal.org/node/172541&quot;&gt;enhance Drupal cross database compatibility&lt;/a&gt;. I have involved in this topic for around a year, and I would like to keep it on going. To accomplish this target, I would like to complete the following tasks before D7 code freeze:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Improve Database API for better abstraction&lt;/b&gt;
&lt;p&gt;Something should be done before any other targets, e.g. &lt;a href=&quot;http://drupal.org/node/371&quot;&gt;resolve reserved words conflict&lt;/a&gt;, &lt;a href=&quot;http://drupal.org/node/199217&quot;&gt;split drivers into individual files for better management&lt;/a&gt;, &lt;a href=&quot;http://drupal.org/node/167335&quot;&gt;indeed but simple abstraction for different database syntax&lt;/a&gt;, &lt;a href=&quot;http://drupal.org/node/183148&quot;&gt;add INSERT/UPDATE/DELETE abstraction and enhance drupal_write_record() abstraction&lt;/a&gt;, etc. With a better common base for multiple database development, we will need much less time to study the differences between databases than that of before.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Add PHP PDO supporting&lt;/b&gt;
&lt;p&gt;&lt;a href=&quot;http://drupal.org/node/134580&quot;&gt;Shipping D7 with PHP PDO&lt;/a&gt; should be a spotlight topic, since it is now official package for PHP5.2.x, and legacy drivers will soon be removed in PHP6.x. We may need &lt;a href=&quot;http://drupal.org/node/199101&quot;&gt;some cleanup in our core query syntax&lt;/a&gt;, in order to let PDO get works.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Introduce more database backend&lt;/b&gt;
&lt;p&gt;Up to this point, I would like to introduce some other database backend for D7, e.g. &lt;a&gt;Oracle&lt;/a&gt;, &lt;a href=&quot;http://drupal.org/node/67349&quot;&gt;SQLite&lt;/a&gt;, &lt;a href=&quot;http://drupal.org/node/165788&quot;&gt;IBM DB2&lt;/a&gt; and also &lt;a href=&quot;http://drupal.org/node/74308&quot;&gt;MSSQL&lt;/a&gt;. If we are able to support SQLite in D7, which also means we are going to standardize our core queries into SQL92 standard, the problem for maintain multiple database backend should no longer a critical problem; if we are able to support Oracle, the most complicated database I guess, this should no longer a problem for us to implement drivers for other databases.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I have summarize most of my personal battle targets in &lt;a href=&quot;http://drupal.org/project/issues?projects=3060&amp;amp;text=Siren&amp;amp;states=1,16,8,13,14,15,2,4&amp;amp;priorities=&amp;amp;categories=&amp;amp;users=&quot;&gt;here&lt;/a&gt;. Most logic are &lt;a href=&quot;http://edin.no-ip.com/project/siren&quot;&gt;proved as functioning&lt;/a&gt;, and they are all get set for the open of D7 public development. On the other hand, I would like to explore if this may integrate with &lt;a href=&quot;http://groups.drupal.org/node/8001&quot;&gt;other interest musings with Data API&lt;/a&gt;, so we will able get all stuff better in D7 ;-)&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/database-schema-api&quot;&gt;Database Schema API&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/8586#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/3319">Data API</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1240">database</category>
 <category domain="http://groups.drupal.org/taxonomy/term/347">database support</category>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/database-schema-api">Database Schema API</group>
 <pubDate>Fri, 01 Feb 2008 03:45:51 +0000</pubDate>
 <dc:creator>hswong3i</dc:creator>
 <guid isPermaLink="false">8586 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Time to Give Back: Become a Speaker at Drupalcon Boston 2008</title>
 <link>http://groups.drupal.org/node/8392</link>
 <description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;We are looking for speakers for the upcoming DrupalCon in Boston. Since you are subscribed to a business and marketing related group, you might be especially interested in the &quot;Business and Marketing&quot; track (see &lt;a href=&quot;http://boston2008.drupalcon.org/business-and-marketing-track-descriptions&quot; title=&quot;http://boston2008.drupalcon.org/business-and-marketing-track-descriptions&quot;&gt;http://boston2008.drupalcon.org/business-and-marketing-track-description...&lt;/a&gt; ).&lt;/p&gt;
&lt;p&gt;This track covers the following topics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Drupal ecosystem&lt;/li&gt;
&lt;li&gt;Businesses learning to use Drupal&lt;/li&gt;
&lt;li&gt;Case studies&lt;/li&gt;
&lt;li&gt;Showcases: NPO, Education, News, Media, Government, Healthcare&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can find a list of existing proposals at &lt;a href=&quot;http://boston2008.drupalcon.org/sessions&quot; title=&quot;http://boston2008.drupalcon.org/sessions&quot;&gt;http://boston2008.drupalcon.org/sessions&lt;/a&gt;, and submit your own proposal on &lt;a href=&quot;http://boston2008.drupalcon.org/node/add/session&quot; title=&quot;http://boston2008.drupalcon.org/node/add/session&quot;&gt;http://boston2008.drupalcon.org/node/add/session&lt;/a&gt;. Of course, it is at any time possible to submit custom session proposals which we did not yet cover on the list of suggestions.&lt;/p&gt;
&lt;p&gt;We are looking forward to create an great business and marketing track with lots of benefits for all participants.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;The Business and Marketing track co-chairs&lt;br /&gt;
Jeff Whatcott, Jim Edgett, Liza Kindred&lt;br /&gt;
&lt;a href=&quot;http://drupalcon.org&quot; title=&quot;http://drupalcon.org&quot;&gt;http://drupalcon.org&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/search-engine-optimization&quot;&gt;Search Engine Optimization&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/8392#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/594">business</category>
 <category domain="http://groups.drupal.org/taxonomy/term/871">Business of Drupal</category>
 <category domain="http://groups.drupal.org/taxonomy/term/3774">DrupalCon Boston 2008</category>
 <category domain="http://groups.drupal.org/taxonomy/term/87">Marketing</category>
 <group domain="http://groups.drupal.org/advertising">Advertising</group>
 <group domain="http://groups.drupal.org/analytics">Analytics</group>
 <group domain="http://groups.drupal.org/drupal-camp">Drupal Event Organization</group>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/marketplace">Marketplace</group>
 <group domain="http://groups.drupal.org/search-engine-optimization">Search Engine Optimization</group>
 <pubDate>Wed, 23 Jan 2008 12:49:57 +0000</pubDate>
 <dc:creator>jwhatcott</dc:creator>
 <guid isPermaLink="false">8392 at http://groups.drupal.org</guid>
</item>
<item>
 <title>PHP 5.2.5 breaks SQL Server support; Yet MSFT SQL Driver Works</title>
 <link>http://groups.drupal.org/node/7787</link>
 <description>&lt;p&gt;So, I&#039;ve had some free time latley, and I&#039;ve started back on the database API layers (DB2 and SQL Server currently).&lt;br /&gt;
However, I have found 2 disturbing issues.&lt;/p&gt;
&lt;p&gt;Overview&lt;br /&gt;
First, I&#039;m currently exploring the following 3 ways to connect to sql server:&lt;br /&gt;
1. FreeTDS&lt;br /&gt;
2. php_mssql driver&lt;br /&gt;
3. MSFT SQL Driver ( See pcorbetts posting for a link to the driver )&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;PHP 5.2.5 breaks support for SQL Server&lt;br /&gt;
I&#039;m running PHP 5.2.5. I&#039;ve had a perfectly good working SQL Server installtion, so I thought this was just a PHP upgrade and then I was going to continue to do some module dev. and bug fixing. Well, it seems that with PHP 5.2.5 neither the php_mssql extension OR the FreeTDS driver work with PHP any longer. I have submitted a bug report to PHP ( 43645 ). This has been verified by another developer also.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MSFT SQL Driver works in 5.2.5...but still alpha&lt;br /&gt;
The MSFT SQL Driver DOES work in 5.2.5. However, the driver is still in alpha quality, and will prob. be Spring before I would say it&#039;s a stable beta ( reference the IIS FastCGI module for a MSFT timeline :) ).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It should also be noted that the ntwlib client ( this is the library that allows FreeTDS and the php_mssql libs to connect nativley to SQL Server using TDS [Tabular Data Stream]) is no longer going to be distributed with SQL Server. It&#039;s been deprecated. This kind of  makes sense, given MSFT is prob. going to start branching it&#039;s product away from it&#039;s Sybase origins, so who knows what funky stuff they&#039;ll do with the TDS format. Anyway, I&#039;m still trying to get my head around what direction they&#039;re going to take at this juncture. They must know there&#039;s a need for PHP+MSSQL connectivity, thus the development of the SQL Driver. I know that it is beta ( and as I&#039;ve said before...definatly a TRUE beta, not a &quot;google&quot; beta :) ), but I&#039;m confident this driver will get finished and supported...but I just can&#039;t say when.&lt;/p&gt;
&lt;p&gt;With that said, I&#039;m going to try and continue development by downgrading my PHP, and keeping an eye on the but I opened at php.net.&lt;br /&gt;
That&#039;s all for now, but just thought I&#039;d give a heads up about PHP+MSSQL and esp. the 5.2.5 issue.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/enterprise&quot;&gt;Enterprise&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/7787#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/347">database support</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1029">microsoft</category>
 <category domain="http://groups.drupal.org/taxonomy/term/844">mssql</category>
 <group domain="http://groups.drupal.org/database-schema-api">Database Schema API</group>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <pubDate>Thu, 20 Dec 2007 18:32:32 +0000</pubDate>
 <dc:creator>Souvent22@drupal.org</dc:creator>
 <guid isPermaLink="false">7787 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Obstacles For Real SQL Server Support</title>
 <link>http://groups.drupal.org/node/7654</link>
 <description>&lt;p&gt;There are some major issues, in my opinion, that are preventing MSSQL from being fully supported in PHP and thus Drupal. Most, if not all, of these revolve around the terribly outdated DBLIB library - forcing some to use alternative libraries (FreeTDS or the recently released &lt;a href=&quot;http://groups.drupal.org/node/7456&quot;&gt;SQL Server Driver for PHP&lt;/a&gt;).  I want to get this out in the open so that we may address them appropriately. I have run into these myself and have had to do some creative work-arounds to get Drupal to behave the way I need it to while running on SQL Server. As far as I can tell, this applies to all versions of SQL Server and the latest PHP release.&lt;/p&gt;
&lt;p&gt;Once we can reach agreement that these issues exist, we can then work to address them. I looked at the new SQL Server Driver for PHP, but it has an entirely new set of functions that would require an entire re-write of database.mssql.inc, however, should we start developing for this driver since Microsoft has discontinued (to my knowledge) ntwdblib.dll??&lt;/p&gt;
&lt;p&gt;At the very least, we should develop a to-do list for all of this, perhaps a wiki page so that we can coordinate our efforts effectively. I also plan on creating a separate list for incompatibilities between MySQL / SQL Server 2000 / SQL Server 2005 / SQL Server 2008 so that module developers have a place to go to help guide them in supporting &#039;mssql&#039; in addition to &#039;pgsql&#039;, &#039;mysql&#039;, and &#039;mysqli&#039;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;VARCHAR Data Truncated at 255 Characters&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There is an issue where you can not pull more than 255 characters from a VARCHAR field. The fix is either to change this field to type TEXT (as I usually do) or, there is a suggestion to try: &quot;SELECT CAST(F AS TEXT) AS F FROM ...&quot;, which I have not tried yet.&lt;/p&gt;
&lt;p&gt;For Reference:&lt;br /&gt;
&lt;a href=&quot;http://bugs.php.net/bug.php?id=25544&amp;amp;edit=1&quot; title=&quot;http://bugs.php.net/bug.php?id=25544&amp;amp;edit=1&quot;&gt;http://bugs.php.net/bug.php?id=25544&amp;amp;edit=1&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fetch Column Name Truncated to 30 Characters&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This issue is apparent, but not limited to, CCK fields whose names in the database exceed 30 characters. This results in CCK field data not appearing in, for example, a view. Currently I have a really ugly patch that truncates the name of the field CCK is expecting to 30 chars so that it matches the truncated field name fetched from the DB. From php.net:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;quot;Note: In Windows, the DBLIB from Microsoft is used. Functions that&lt;br /&gt;return a column name are based on the dbcolname() function in DBLIB.&lt;br /&gt;DBLIB was developed for SQL Server 6.x where the max identifier length&lt;br /&gt;is 30. For this reason, the maximum column length is 30 characters. On&lt;br /&gt;platforms where FreeTDS is used (Linux), this is not a problem.&amp;quot;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;For Reference:&lt;br /&gt;
&lt;a href=&quot;http://bugs.php.net/bug.php?id=33060&amp;amp;edit=1&quot; title=&quot;http://bugs.php.net/bug.php?id=33060&amp;amp;edit=1&quot;&gt;http://bugs.php.net/bug.php?id=33060&amp;amp;edit=1&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extra Space Added When Pulling Empty Data&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When pulling &quot;&quot; (empty) data into a form field, for example, the field has an empty space entered into it. The suggestion is to use a trim() function to strip these. This only happens when the data stored in the DB is empty (no spaces). I am currently experiencing this with nodes that use CCK fields, for example, and the ones that are not required and that I don&#039;t fill out have a single space in them when I go to edit the node.&lt;/p&gt;
&lt;p&gt;For Reference:&lt;br /&gt;
&lt;a href=&quot;http://bugs.php.net/bug.php?id=36968&amp;amp;edit=1&quot; title=&quot;http://bugs.php.net/bug.php?id=36968&amp;amp;edit=1&quot;&gt;http://bugs.php.net/bug.php?id=36968&amp;amp;edit=1&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/enterprise&quot;&gt;Enterprise&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/7654#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/3673">sql server mssql</category>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <pubDate>Wed, 12 Dec 2007 21:12:24 +0000</pubDate>
 <dc:creator>pcorbett@drupal.org</dc:creator>
 <guid isPermaLink="false">7654 at http://groups.drupal.org</guid>
</item>
<item>
 <title>RFC: Best practices for managing indexes (particularly on cck tables)</title>
 <link>http://groups.drupal.org/node/7614</link>
 <description>&lt;p&gt;As a site goes live and we do performance tweaking and benchmarking one of the common results is adding database indexes.  I post this into the CCK group since one of the common sources of slow queries is for queries against the CCK tables.  For example, a site that has a block that queries a field table to look for information about that field for every page load can quickly make its way into the slow query log.  Adding an index to the field is likely to be the best solution.&lt;/p&gt;
&lt;p&gt;I&#039;m not criticizing the cck table structure, which I think is quite good, but instead asking for advice on how to manage indexes on database tables in general and on cck tables specifically. Assuming that the query is in custom code:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Add an index via a hook_update_n in the .install file for that module with a comment explaining why we added it&lt;/li&gt;
&lt;li&gt;Add a comment near the query that says &quot;If you change this query, check the index from hook_update_X to see if it still makes sense&quot;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If it&#039;s not in your code but in another module (e.g. views) then step 1 probably stays the same, but I&#039;m not sure where to document item 2.&lt;/p&gt;
&lt;p&gt;I want the index to be easy to migrate from the development environment to test/production and also to be documented in a way that future admins can easily know where to look to see if it is still necessary.&lt;/p&gt;
&lt;p&gt;Any feedback on this idea?  What do other people do to manage indexes - aside from &quot;just install them and forget them&quot; ;)&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
&lt;p&gt;PS yes, I know block cache is a decent solution to my original problem, but sometimes indexes are good too.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/high-performance&quot;&gt;High performance&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/7614#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/108">CCK</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1240">database</category>
 <category domain="http://groups.drupal.org/taxonomy/term/332">performance</category>
 <group domain="http://groups.drupal.org/content-construction-kit-cck">Content Construction Kit (CCK)</group>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/high-performance">High performance</group>
 <pubDate>Mon, 10 Dec 2007 21:21:43 +0000</pubDate>
 <dc:creator>greggles</dc:creator>
 <guid isPermaLink="false">7614 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Suggested Method For Choosing Between SQL Server 2000 and 2005/2008</title>
 <link>http://groups.drupal.org/node/7504</link>
 <description>&lt;p&gt;I have been working to get SQL Server 2000 to work with Drupal 5.3. Everything seems to be working except for a small pagination issue. As part of this, I have been prepping it for use with 2005/2008 as well, but wanted to share with the group to see if we should agree upon a common way to distinguish between different versions (since syntax and functions vary so much between them). I am assuming that there will be differences between 2005 and 2008 that we may have to account for, so this doesn&#039;t have to be 2000 vs. 2005-specific.&lt;/p&gt;
&lt;p&gt;Here is how I modified the db_version() function in database.mssql.inc:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;/**&lt;br /&gt; * Returns the version of the database server currently in use.&lt;br /&gt; *&lt;br /&gt; * @return Database server version&lt;br /&gt; */&lt;br /&gt;function db_version() {&lt;br /&gt;&amp;nbsp; $version = db_result(db_query(&amp;#039;SELECT @@version;&amp;#039;));&lt;br /&gt;&amp;nbsp; list($version) = explode(&amp;#039;-&amp;#039;, $version);&lt;br /&gt; (strpos($version, &amp;#039;2000&amp;#039;)) ? $version = 2000 : $version = 2005;   &lt;br /&gt;  return $version;&lt;br /&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;In practice, it looks something like this:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;switch ($GLOBALS[&amp;#039;db_type&amp;#039;]) {&lt;br /&gt;&amp;nbsp; case &amp;#039;mssql&amp;#039;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (db_version() == &amp;#039;2000&amp;#039;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Let me know what you think. I all for helping out with this as much as I can, but definitely don&#039;t want to have to back-pedal if the group decides to do this a different way.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/enterprise&quot;&gt;Enterprise&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/7504#comments</comments>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <pubDate>Tue, 04 Dec 2007 18:27:22 +0000</pubDate>
 <dc:creator>pcorbett@drupal.org</dc:creator>
 <guid isPermaLink="false">7504 at http://groups.drupal.org</guid>
</item>
<item>
 <title>New Windows SQL Server Driver for PHP</title>
 <link>http://groups.drupal.org/node/7456</link>
 <description>&lt;p&gt;A new SQL Server 2000/2005 driver (preview version) for PHP improves compatibility between the two: &lt;a href=&quot;http://www.microsoft.com/sql/technologies/php/default.mspx&quot; title=&quot;http://www.microsoft.com/sql/technologies/php/default.mspx&quot;&gt;http://www.microsoft.com/sql/technologies/php/default.mspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now there&#039;s native support for PHP that will save us from having to deal with freeTDS and other things. For example, the current limitation between PHP and SQL Server is that it truncates text pulled from a varchar to 255 characters. I currently have to change anything &amp;gt; varchar(255) to a TEXT datatype in SQL Server to avoid this issue.&lt;/p&gt;
&lt;p&gt;Has anyone else used this in their SQL Server setup?&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/enterprise&quot;&gt;Enterprise&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/7456#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/3569">mssql sql server</category>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <pubDate>Mon, 03 Dec 2007 22:01:11 +0000</pubDate>
 <dc:creator>pcorbett@drupal.org</dc:creator>
 <guid isPermaLink="false">7456 at http://groups.drupal.org</guid>
</item>
<item>
 <title>New FastCGI extension for IIS</title>
 <link>http://groups.drupal.org/node/7455</link>
 <description>&lt;p&gt;A new IIS 6/7 FastCGI extension was recently released: &lt;a href=&quot;http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1521&quot; title=&quot;http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1521&quot;&gt;http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1521&lt;/a&gt; It runs on top of ISAPI and generally makes PHP within IIS more stable. Has anyone tried installing this yet? Any noticeable performance boost? I&#039;ll be setting it up soon and will reply with my own opinion soon...&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/enterprise&quot;&gt;Enterprise&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/7455#comments</comments>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <pubDate>Mon, 03 Dec 2007 21:52:52 +0000</pubDate>
 <dc:creator>pcorbett@drupal.org</dc:creator>
 <guid isPermaLink="false">7455 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Popular, high profile, high traffic Drupal sites for BADCAMP and Drupal.org</title>
 <link>http://groups.drupal.org/node/6807</link>
 <description>&lt;p&gt;I&#039;m cross posting this from here in case anyone else has any information to share: &lt;a href=&quot;http://drupal.org/node/187464&quot; title=&quot;http://drupal.org/node/187464&quot;&gt;http://drupal.org/node/187464&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hi Fellow Drupalers,&lt;br /&gt;
I&#039;m working on a session for BADCAMP (&lt;a href=&quot;http://badcamp07.org&quot; title=&quot;http://badcamp07.org&quot;&gt;http://badcamp07.org&lt;/a&gt;) where we will walk through some cool, popular and high performance Drupal sites. The main focus here is high-profile, big companies, high traffic. What is the biggest and highest traffic Drupal site out there?&lt;/p&gt;
&lt;p&gt;I&#039;m gathering additional research and so if anyone is interested please fill out the below template with as much information as possible for a couple of the top sites you know about or have developed, ideally 3 or 4 sites? Possibly some nice rare ones people don&#039;t know about? Please fill out as much information as possible. If you can&#039;t fill out any info, at least the site URL would help and I can do more research from there.&lt;/p&gt;
&lt;p&gt;This once this research is complete, it will be put on Drupal.org as well and this will be great marketing material for the Drupal community.&lt;/p&gt;
&lt;p&gt;Website URL:&lt;/p&gt;
&lt;p&gt;Info:&lt;br /&gt;
Company:&lt;br /&gt;
Development firm/team:&lt;br /&gt;
Est. date launched:&lt;br /&gt;
If part of a multisite setup, how many total sites?:&lt;/p&gt;
&lt;p&gt;Stats:&lt;br /&gt;
Current number of nodes:&lt;br /&gt;
Current number of users:&lt;br /&gt;
Est. database size:&lt;/p&gt;
&lt;p&gt;Traffic:&lt;br /&gt;
Avg visits/day:&lt;br /&gt;
Avg page views/day:&lt;br /&gt;
Avg visitors per/day:&lt;br /&gt;
Avg visits/month:&lt;br /&gt;
Avg page views/month:&lt;br /&gt;
Avg visitors per/month:&lt;br /&gt;
Est % authenticated users:&lt;br /&gt;
Est GB transferred/month:&lt;/p&gt;
&lt;p&gt;Other:&lt;br /&gt;
Key Modules Used:&lt;br /&gt;
Any special challenges faced:&lt;br /&gt;
Additional Notes:&lt;/p&gt;
&lt;p&gt;The event is next weekend (the 3rd and 4th) so if at all possible, please reply by Tuesday or Wednesday.&lt;br /&gt;
Many thanks for your time!&lt;br /&gt;
Chris&lt;/p&gt;
&lt;p&gt;PS: Here is a list of some known large companies that use Drupal. Please add to it if you can, even if you don&#039;t know of any details about the site. If you know details about the site and can provide some, please do.&lt;/p&gt;
&lt;p&gt;IBM (internal)&lt;br /&gt;
Yahoo&lt;br /&gt;
Adobe&lt;br /&gt;
Sun Microsystems&lt;br /&gt;
Sony&lt;br /&gt;
MTV&lt;br /&gt;
Fox&lt;br /&gt;
Warner Brothers&lt;br /&gt;
Best Buy&lt;br /&gt;
New York Observer&lt;br /&gt;
Phizer&lt;br /&gt;
Lifetime Television&lt;/p&gt;
&lt;p&gt;Other:&lt;br /&gt;
The Onion&lt;br /&gt;
Morris Publishing Group (Savannah Now)&lt;br /&gt;
Sugar Publishing (Pop Sugar, Team Sugar)&lt;br /&gt;
Kernel Trap&lt;br /&gt;
Linux Journal&lt;br /&gt;
Wikimedia (Fundraising)&lt;br /&gt;
Mozilla Foundation (Spread Firefox)&lt;br /&gt;
Ubuntu&lt;br /&gt;
Kentucky Derby&lt;br /&gt;
PLUS MANY MORE...&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/social-networking-sites&quot;&gt;Social Networking Sites&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/6807#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/597">enterprise</category>
 <category domain="http://groups.drupal.org/taxonomy/term/574">multisite</category>
 <category domain="http://groups.drupal.org/taxonomy/term/332">performance</category>
 <group domain="http://groups.drupal.org/enterprise">Enterprise</group>
 <group domain="http://groups.drupal.org/high-performance">High performance</group>
 <group domain="http://groups.drupal.org/multisite">Multisite</group>
 <group domain="http://groups.drupal.org/social-networking-sites">Social Networking Sites</group>
 <pubDate>Mon, 29 Oct 2007 09:54:25 +0000</pubDate>
 <dc:creator>ChrisB</dc:creator>
 <guid isPermaLink="false">6807 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Examples of corporate sites for Case Studies</title>
 <link>http://groups.drupal.org/node/6715</link>
 <description>&lt;p&gt;Hello, here are some examples for corporate sites.  I am sure there are more.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.knaufinsulation.com&quot; title=&quot;http://www.knaufinsulation.com&quot;&gt;http://www.knaufinsulation.com&lt;/a&gt; - Knauf Insulation corporate Web portal&lt;br /&gt;
&lt;a href=&quot;http://pwcmecareers.com&quot; title=&quot;http://pwcmecareers.com&quot;&gt;http://pwcmecareers.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.hc-si.com&quot; title=&quot;http://www.hc-si.com&quot;&gt;http://www.hc-si.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://v-teches.com/&quot; title=&quot;http://v-teches.com/&quot;&gt;http://v-teches.com/&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.acnefree.com/af&quot; title=&quot;http://www.acnefree.com/af&quot;&gt;http://www.acnefree.com/af&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://projectstars.com&quot; title=&quot;http://projectstars.com&quot;&gt;http://projectstars.com&lt;/a&gt; - corporate blogging&lt;br /&gt;
&lt;a href=&quot;http://flex.org/showcase/&quot; title=&quot;http://flex.org/showcase/&quot;&gt;http://flex.org/showcase/&lt;/a&gt; - Adobe software technology&lt;br /&gt;
&lt;a href=&quot;http://genieknows.com/about&quot; title=&quot;http://genieknows.com/about&quot;&gt;http://genieknows.com/about&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://warnerbrosrecords.com/&quot; title=&quot;http://warnerbrosrecords.com/&quot;&gt;http://warnerbrosrecords.com/&lt;/a&gt; - &lt;a href=&quot;http://warnerbrosrecords.com/&quot;&gt;Warner Brothers rockin&#039; it with Drupal&lt;/a&gt;.&lt;br /&gt;
&lt;a href=&quot;http://research.yahoo.com/&quot; title=&quot;http://research.yahoo.com/&quot;&gt;http://research.yahoo.com/&lt;/a&gt; - &lt;a href=&quot;http://buytaert.net/yahoo-using-drupal&quot; title=&quot;http://buytaert.net/yahoo-using-drupal&quot;&gt;http://buytaert.net/yahoo-using-drupal&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Please help fill in this list.&lt;/p&gt;
&lt;p&gt;Cheers,&lt;br /&gt;
Kieran&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/enterprise&quot;&gt;Enterprise&lt;/a&gt;&lt;/div&gt;</description>
 <group domain="http://groups.drupal.org/drupal-marketing">Marketing of Drupal</group>
 <group domain="http://groups.drupal.org/enterp