<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xml:base="http://www.scaled-solutions.com/s2blog" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>S2 Blog</title>
    <link>http://www.scaled-solutions.com/s2blog</link>
    <description></description>
    <language>en</language>
          <item>
    <title>Rebuilding Theme Registry Nightmare</title>
    <link>http://www.scaled-solutions.com/blog/rebuilding-theme-registry-nightmare</link>
    <description>&lt;p&gt;I have had a couple of customer sites that display&lt;/p&gt;
&lt;blockquote&gt;The theme registry has been rebuilt. Turn off this feature on production websites.&lt;/blockquote&gt;
&lt;p&gt;And I couldn&#039;t seem to disable it. I tried every trick I found on the support pages and still couldn&#039;t solve the problem. I could click the checkbox and it wouldn&#039;t toggle, and updates to the Zen subtheme didn&#039;t make things better.&lt;/p&gt;
&lt;p&gt;Here is the real issue: There is a misalignment of the checkbox and enclosing div. Clicking below the checkbox toggles it and, voila, the theme registry is no longer rebuilt.&lt;/p&gt;
&lt;p&gt;I am going to try and find the solution to the misalignment, but for now I am just happy that my customers don&#039;t have to see that message.&lt;/p&gt;
&lt;p&gt;I hope you find this tip useful and that you can spend less time tracking this down than I did.&lt;/p&gt;
</description>
     <comments>http://www.scaled-solutions.com/blog/rebuilding-theme-registry-nightmare#comments</comments>
 <pubDate>Wed, 04 Apr 2012 01:27:57 +0000</pubDate>
 <dc:creator>qjensen</dc:creator>
 <guid isPermaLink="false">34 at http://www.scaled-solutions.com</guid>
  </item>
  <item>
    <title>Open Source CSV File Splitter</title>
    <link>http://www.scaled-solutions.com/blog/open-source-csv-file-splitter</link>
    <description>&lt;p&gt;Working with data conversion and data import projects means I am often faced with unmanageably large chunks of data. CSV files with 10,000+ entries are not uncommon, and many applications don&#039;t handle import files of that size very well. I got tired of breaking these files apart by hand over and over again, and surprisingly I only &lt;a href=&quot;http://www.fxfisherman.com/forums/forex-metatrader/tools-utilities/75-csv-splitter-divide-large-csv-files.html&quot;&gt;found one decent application&lt;/a&gt; in existence that reliably split csv files. It is a little out of date, and didn&#039;t meet all of my requirements. Since the requirements were simple and the time savings outweighed the time invested, I decided to create my own.&lt;/p&gt;
&lt;h3&gt;Requirements&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;Take an existing CSV file and break it into chunks of a defined size&lt;/li&gt;
	&lt;li&gt;Provide an option to include the header line from the input file in each chunk&lt;/li&gt;
	&lt;li&gt;Provide meaningful feedback on status using a progress bar&lt;/li&gt;
	&lt;li&gt;Communicate any problems to the user quickly&lt;/li&gt;
	&lt;li&gt;Allow the process to be cancelled&lt;/li&gt;
	&lt;li&gt;Manage files with 500K - 1M lines&lt;/li&gt;
	&lt;li&gt;Published as Open Source&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3&gt;Development&lt;/h3&gt;
&lt;p&gt;Since my primary desktop is Windows, I decided to use Visual &amp;nbsp;Studio 2008 and C# for the development. This gave me a rapid development cycle, easy to use multi-threading and it is an environment I am familiar with from a previous job.&lt;/p&gt;
&lt;p&gt;The application has a simple Windows Forms interface with a progress bar and a small text box that reports any problems during the process. I used the basic &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx&quot;&gt;BackgroundWorker&lt;/a&gt;&amp;nbsp;class to kick the splitting process off to another thread while keeping the user interface responsive during updates.&lt;/p&gt;
&lt;h3&gt;Testing&lt;/h3&gt;
&lt;p&gt;I created test files of various sized using the data generation application at &lt;a href=&quot;http://www.generatedata.com&quot;&gt;generatedata.com&lt;/a&gt;. I downloaded and installed a local copy so I could generate sample data sets larger than the default of 200 records. This PHP based app lets you define columns and data types and then create sample data in HTML, XML, CSV, SQL and other formats that you can use for development and testing.&lt;/p&gt;
&lt;p&gt;I generated a number of test files with up to 500K lines. The 500K file processed in just a couple of seconds, so I am confident that I will be able to handle fairly large files in future projects.&lt;/p&gt;
&lt;h3&gt;Software Availability&lt;/h3&gt;
&lt;p&gt;I am making this software available to the public to download and modify as needed. Please feel free to grab it, test it, and let me know how it works for you. I would be happy to add features if they will be beneficial to the community at large. I am providing both source code as well as an executable in the attached zip file. No installation is required, just double click on the exe file and go.&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;/sites/default/files/CSV%20Chunker.zip&quot;&gt;Grab your copy of my CSV Chunker file splitter now.&lt;/a&gt;&lt;/h4&gt;
</description>
     <comments>http://www.scaled-solutions.com/blog/open-source-csv-file-splitter#comments</comments>
 <pubDate>Mon, 31 Jan 2011 15:16:36 +0000</pubDate>
 <dc:creator>qjensen</dc:creator>
 <guid isPermaLink="false">33 at http://www.scaled-solutions.com</guid>
  </item>
  <item>
    <title>Taking Control of Drupal Autocomplete Fields</title>
    <link>http://www.scaled-solutions.com/blog/taking-control-drupal-autocomplete-fields</link>
    <description>&lt;p&gt;
	I recently had a need to create linked autocomplete fields for one of my clients. The use case was pretty common; there was a list of companies and then a list of contacts, each one associated with a company. The goal was to have the customer service rep select the company, then have the list of contacts filtered by the company.&lt;/p&gt;
&lt;p&gt;
	Each contact was a user in the system. We used the Content Profile module to collect additional contact information and added a nodereference field to link the contact to the company. We also decided to use the Realname and Realname Userreference modules to make it easier to find contacts.&lt;/p&gt;
&lt;h3&gt;
	Autocomplete Adventure&lt;/h3&gt;
&lt;p&gt;
	Drupal has autocomplete functionality built in, and it is fairly simple to create an autocomplete field. It becomes a little more challenging when you need to modify an existing autocomplete field.&lt;/p&gt;
&lt;p&gt;
	I started by trying to use hook_form_alter to change the autocomplete path, but that property was not available to me in the form elements. My only option was to use javascript to modify the autocomplete path after the page loaded. Thanks to &lt;a href=&quot;http://digitalillusion.altervista.org/wordpress/2009/01/12/drupal-6-linked-autocomplete-fields/&quot;&gt;this article at Digital Illusion&lt;/a&gt; and &lt;a href=&quot;http://groups.drupal.org/node/3471&quot;&gt;a&lt;/a&gt;&lt;a href=&quot;http://groups.drupal.org/node/3471&quot;&gt;&amp;nbsp;slightly older tutorial from d.o&lt;/a&gt;&amp;nbsp;I was able to piece together my final solution.&lt;/p&gt;
&lt;p&gt;
	First, I needed to replace the built in autocomplete url with my own:&lt;/p&gt;
&lt;pre class=&quot;brush:jscript;&quot;&gt;
//globals
var $clientField;
var $contactField;
$(document).ready(function(){	
	$clientField = $(&amp;quot;#edit-field-ticket-client-0-nid-nid&amp;quot;);
	$contactField = $(&amp;#39;#edit-field-ticket-contact-0-uid-uid&amp;#39;);
	$contactAcField = $(&amp;quot;#edit-field-ticket-contact-0-uid-uid-autocomplete&amp;quot;);
	var url = $contactAcField.val();
	url = url.replace(&amp;#39;realname_userreference/autocomplete/field_ticket_contact&amp;#39;,&amp;#39;native_support_ticket/username/autocomplete/field_ticket_contact/&amp;#39;);
	var input = $contactField.attr(&amp;#39;autocomplete&amp;#39;, &amp;#39;OFF&amp;#39;)[0];
	recreateAutoComplete(input, url);
});

function recreateAutoComplete(input, url) {
	$(input).unbind();
	var acdb = new Drupal.ACDB(url);
	$(input.form).submit(Drupal.autocompleteSubmit);
	new Drupal.jsAC(input, acdb);
	
	//focus is used on the child field because contact field can be
	//entered while changing a node and never toucing the parent field.
	$(&amp;quot;#edit-field-ticket-contact-0-uid-uid&amp;quot;).focus(function() {
		clientSelected($clientField);
	});
}&lt;/pre&gt;
&lt;p&gt;
	And the javascript to update the contact field&amp;#39;s autocomplete url when the company field changes:&lt;/p&gt;
&lt;pre class=&quot;brush:jscript;&quot;&gt;
function clientSelected(parent) {
  // Get the url from the child autocomplete hidden form element
  var url = $contactAcField.val();
  // Alter it according to parent value parsing the node id from the nodereference field
  var regex = /\[nid:(.*)\]/;
  var regex_results = regex.exec(parent.val());
  url = url.replace(&amp;#39;realname_userreference/autocomplete/field_ticket_contact&amp;#39;,&amp;#39;native_support_ticket/username/autocomplete/field_ticket_contact/&amp;#39;);
  url += regex_results[1];
  var input = $contactField.attr(&amp;#39;autocomplete&amp;#39;, &amp;#39;OFF&amp;#39;)[0];
  // Recreate autocomplete behaviour for the child textfield
  var input = $(&amp;#39;#edit-field-ticket-contact-0-uid-uid&amp;#39;).attr(&amp;#39;autocomplete&amp;#39;, &amp;#39;OFF&amp;#39;)[0];
  recreateAutoComplete(input, url);
}&lt;/pre&gt;
&lt;p&gt;
	In my module, I created a new menu item in hook_menu:&lt;/p&gt;
&lt;pre class=&quot;brush:php;&quot;&gt;
   $items[&amp;#39;native_support_ticket/username/autocomplete&amp;#39;] = array(
    &amp;#39;title&amp;#39; =&amp;gt; &amp;#39;Native Support Userreference autocomplete&amp;#39;,
    &amp;#39;page callback&amp;#39; =&amp;gt; &amp;#39;native_support_userreference_auto&amp;#39;,
    &amp;#39;access arguments&amp;#39; =&amp;gt; array(&amp;#39;access content&amp;#39;),
    &amp;#39;type&amp;#39; =&amp;gt; MENU_CALLBACK
  );&lt;/pre&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
	The autocomplete function itself isn&amp;#39;t very interesting since it is essentially the same as the function from Realname Userreference. I just modified the SQL statement to filter the results by company node id.&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	The real surprise for me is that there isn&amp;#39;t an easier way to link fields like this in a parent child relationship. My next task will be to see if there is some way to generalize this out into a module to make the functionality more widely available. I am open to any suggestions, or easier methods of accompolishing this task if possible.&lt;/div&gt;
</description>
     <comments>http://www.scaled-solutions.com/blog/taking-control-drupal-autocomplete-fields#comments</comments>
 <pubDate>Thu, 16 Dec 2010 11:22:30 +0000</pubDate>
 <dc:creator>qjensen</dc:creator>
 <guid isPermaLink="false">29 at http://www.scaled-solutions.com</guid>
  </item>
  <item>
    <title>New Module for CiviCRM - Members Only Pricing</title>
    <link>http://www.scaled-solutions.com/blog/new-module-civicrm-members-only-pricing</link>
    <description>&lt;p&gt;Looking at the CiviCRM forums I saw that there was a real need for members only pricing for events in general, and the ability to manipulate price sets overall. I also have a customer who has made this a requirement in their proposal, and I wanted to take a stab at adding functionality to CiviCRM. The buildAmount hook works fine for regular pricing, but doesn&#039;t allow us to modify price sets.&lt;/p&gt;
&lt;p&gt;&lt;!--break--&gt;&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href=&quot;http://www.torenware.com/node/100&quot;&gt;this post&lt;/a&gt; from Torrenware, and plenty of help from Donald Lobo on IRC, I have been able to put together a buildPriceOptions hook and a module that handles members only pricing.&lt;/p&gt;
&lt;h3&gt;Background&lt;/h3&gt;
&lt;p&gt;In the attached file, you will find 2 patch files and a folder with the module. The patches are applied to two core files&amp;nbsp;CRM/Utils/Hook.php and CRM/Price/BAO/Field.php, and just adds support for the hook. I know that it is against all twelve commandments to modify core, but it was necessary for this project.&lt;/p&gt;
&lt;p&gt;What made this project challenging is that it was not readily apparent how it should work. I originally created a buildPriceSet hook that modified the price set in CRM/Price/BAO/Set.php. I ran through XDebug for hours trying to figure out why it wouldn&#039;t work. What I finally discovered is that, although there is a beautiful price set array structure, it is never used to build the final form. The price field id numbers are grabbed from the price set structure, then CRM/Price/BAO/Field::getOptions is called to grab the options right from the database. Based on this discovery, I decided to go back to the drawing board and recreate the hook.&lt;/p&gt;
&lt;h3&gt;How Does It Work&lt;/h3&gt;
&lt;p&gt;When you create a price set option, there will be a new select menu added to the form. This menu contains the groups in the system. You can select one or more groups to allow access to this price option, or select everyone to allow public access. When the registration form is generated, a custom table is queried to get the list of groups allowed to access each option, and if the current user does not have access that option is deleted.&lt;/p&gt;
&lt;p&gt;I haven&#039;t written the module installer yet, so you will have to create a new table in your CiviCRM database using the following SQL&lt;/p&gt;
&lt;pre&gt;--
-- Table structure for table `civicrm_memberprice`
--

CREATE TABLE IF NOT EXISTS `civicrm_memberprice` (
  `gid` int(11) NOT NULL COMMENT &#039;group id allowed to use this price&#039;,
  `oid` int(11) NOT NULL COMMENT &#039;option field id&#039;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;&lt;/pre&gt;
&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3&gt;Disclaimer&lt;/h3&gt;
&lt;p&gt;This module has been lightly tested and is definitely beta quality software. Two of my clients are using this in production, and I will be release updates as issues arise.&lt;/p&gt;
&lt;p&gt;You can download the module from &lt;a href=&quot;https://github.com/qjensen/CiviCRM-Member-Pricing&quot;&gt;Github&lt;/a&gt;.&lt;/p&gt;
</description>
     <comments>http://www.scaled-solutions.com/blog/new-module-civicrm-members-only-pricing#comments</comments>
 <category domain="http://www.scaled-solutions.com/category/tags/civicrm">CiviCRM</category>
 <category domain="http://www.scaled-solutions.com/category/tags/under-hood">Under the Hood</category>
 <pubDate>Fri, 17 Sep 2010 21:18:37 +0000</pubDate>
 <dc:creator>qjensen</dc:creator>
 <guid isPermaLink="false">28 at http://www.scaled-solutions.com</guid>
  </item>
  <item>
    <title>Witness the Power of Social Media</title>
    <link>http://www.scaled-solutions.com/blog/witness-power-social-media</link>
    <description>&lt;p&gt;Just today on Twitter I was alerted to &lt;a href=&quot;http://manueg.okkernoot.net/blog/201004/my-first-child-born&quot;&gt;this post&lt;/a&gt; from March where a proud daddy and Drupal module developer annonuced the birth of his first son. Go ahead and check out the cute baby picture, I will wait...&lt;!--break--&gt;&lt;/p&gt;
&lt;p&gt;	If you scroll down a little you will see a comment titled &amp;quot;instead of writing this&amp;quot;. The commenter states that Manuel should have been busy writing documentation for his FREE, open source image gallery module instead of writing such useless drivel. Obviously the commenters needs far outweigh the joy and pride of a new father;)&lt;/p&gt;
&lt;p&gt;	If the commenter had understood the open source ethic, instead of just expecting something for nothing, he would have written the documentation and submitted it with a note of gratitude and congratulations. Unfortunately, the posters true colors are revealed in his post, and we all get to learn a lesson.&lt;/p&gt;
&lt;p&gt;	The lesson for us is this: Even though the post and follow up comment were written in March, we are talking about it six months later. Someone, somewhere was looking for information on the gallery module, stumbled across the offensive post and shared it with his circle via Twitter. I shared it with my circle, and others shared as well. When we post online, it is there forever. Even if the site that we posted on disappears, our online activities live on in the Google cache and various archives around the web. Our misdeeds and missteps can be tracked down and brought back to life long after we have forgotten the incident.&lt;/p&gt;
&lt;p&gt;	My advice; watch your words, watch your attitude and watch your heart when you deal with other people, whether online or in person. No matter how much you try to cover up bad behavior, it will come back and bite you in the end.&lt;/p&gt;
</description>
     <comments>http://www.scaled-solutions.com/blog/witness-power-social-media#comments</comments>
 <category domain="http://www.scaled-solutions.com/category/tags/social-media">Social Media</category>
 <pubDate>Tue, 14 Sep 2010 21:19:36 +0000</pubDate>
 <dc:creator>qjensen</dc:creator>
 <guid isPermaLink="false">27 at http://www.scaled-solutions.com</guid>
  </item>
  <item>
    <title>Big Names Using Drupal</title>
    <link>http://www.scaled-solutions.com/blog/big-names-using-drupal</link>
    <description>&lt;p&gt;One of the first questions I am asked when I start talking about Drupal is &amp;quot;Who uses this system anyway&amp;quot;?&lt;/p&gt;
&lt;p&gt;	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;	It is an excellent question, and one that has an equally excellent answer.&lt;/p&gt;
&lt;p&gt;	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;	&lt;a href=&quot;http://www.whitehouse.gov&quot;&gt;White House&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;	&lt;a href=&quot;http://groups.drupal.org/node/90679&quot;&gt;NYSE/EuroNext&lt;/a&gt; --Coming Soon&lt;/p&gt;
&lt;p&gt;	&lt;a href=&quot;http://mcdonalds.com.au&quot;&gt;McDonalds of Australia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;	&lt;a href=&quot;http://commerce.gov&quot;&gt;US Department of Commerce&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;	&lt;a href=&quot;http://blogs.forrester.com&quot;&gt;Forrester Research&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;	A more in depth look at a large number of Druapl based sites can be found on the &lt;a href=&quot;http://buytaert.net/tag/drupal-sites&quot;&gt;website &lt;/a&gt;of Dries Buytaert, creator of Drupal.&lt;/p&gt;
&lt;p&gt;	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;	What&amp;#39;s great about Drupal is that it can scale to work for these large organizations while working just as well for &lt;a href=&quot;http://www.jacsdiningandtaphouse.com&quot;&gt;small local restaurants&lt;/a&gt; and &lt;a href=&quot;http://www.relationshiphelp.org&quot;&gt;regional membership associations&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;	With its powerful tools, huge selection of modules and proven track record, I believe that Drupal is a great fit for just about any website out there. It is no longer necessary to be satisfied with a static brochure site when a tool like Drupal enables you to communicate with your customers, sell products and build a community all from your website.&lt;/p&gt;
</description>
     <comments>http://www.scaled-solutions.com/blog/big-names-using-drupal#comments</comments>
 <category domain="http://www.scaled-solutions.com/category/tags/drupal">Drupal</category>
 <category domain="http://www.scaled-solutions.com/category/tags/evangelism">evangelism</category>
 <pubDate>Thu, 02 Sep 2010 18:36:09 +0000</pubDate>
 <dc:creator>qjensen</dc:creator>
 <guid isPermaLink="false">20 at http://www.scaled-solutions.com</guid>
  </item>
  <item>
    <title>Open Source Software For Your Business</title>
    <link>http://www.scaled-solutions.com/blog/open-source-software-your-business</link>
    <description>&lt;p&gt;
	Scaled Solutions is committed to the use of Open Source software. We believe in the immense value it can provide to small and medium organizations in terms of both features and costs.&lt;/p&gt;
&lt;p&gt;
	So what is open source software and why should you care?&lt;/p&gt;
&lt;!--break--&gt;
&lt;h2&gt;
	What is Open Source&lt;/h2&gt;
&lt;p&gt;
	You use a wide variety of open source software daily without knowing it. When you visit a website it is most likely being delivered by the &lt;a href=&quot;http://www.apache.org&quot;&gt;Apache&lt;/a&gt; web server. Your favorite blogs are most likely built on top of the popular &lt;a href=&quot;http://wordpress.org/&quot;&gt;Wordpress&lt;/a&gt; platform which is in turn built on the open source development language &lt;a href=&quot;http://www.php.net/&quot;&gt;PHP&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
	At its heart, Open Source is about freedom. Freedom to use, modify and redistribute software. Freedom to make the software do what you need it to do without hoping some large corporation will one day include a feature critical to your business. Most importantly, freedom to do what you want with whatever data is stored in the system.&lt;/p&gt;
&lt;p&gt;
	Many closed, propietary systems store your data in a closed, proprietary format. Others store your data in a relatively accessible format, but the way it is stored is deliberately obscured and undocumented. Your data is effectively help hostage making it difficult to access and virtually impossible to move to a competing platform.&lt;/p&gt;
&lt;p&gt;
	Open source software generally uses open, documented formats with fully documented systems that give you the freedom to reuse data in the system, or move to a competing system without additional costs artificially added to the process.&lt;/p&gt;
&lt;h2&gt;
	So Who Do I Call For Help?&lt;/h2&gt;
&lt;p&gt;
	This is probably the biggest stumbling block to small business use of open source software. Who do you call when there is a problem? How do you get support? How quickly can you get support?&lt;/p&gt;
&lt;p&gt;
	I can only speak anecdotally, but having worked with enterprise software for a number of years, the same questions really do apply to commercial, closed source software as well. It is becoming more common to have very low skilled people on the front line answering phones. Any questions that don&amp;#39;t fit the script must be escalated, and you may wait 24 hours or more for tier 2 support. More and more, user communities and Google are becoming the first level of support in many organizations. When is the last time you contacted Microsoft directly when something didn&amp;#39;t work in Office?&lt;/p&gt;
&lt;p&gt;
	Open source software takes this concept to the next level. Community forums and email are the most common types of support in the open source community. It isn&amp;#39;t unusual to have an answer to your problem in minutes. If you question has been answered sometime in the past, you can often find it in seconds with Google. You are even able to talk directly to developers and contriutors and get solid answers to difficult questions. It isn&amp;#39;t unusual to get patches and updates quickly if the problem is severe enough.&lt;/p&gt;
&lt;p&gt;
	If you absolutely have to have commercial support, you can get support contracts from a variety of consultants who would be happy to be there for you. I would suggest giving an open source app a try, test out the response of the community, and find out if it is a good fit for you.&lt;/p&gt;
&lt;h2&gt;
	What is the cost?&lt;/h2&gt;
&lt;p&gt;
	Another great feature is the cost of open source applications - FREE. Most of the web based applications are available in &amp;quot;Community Editions&amp;quot; at no cost with commercial support and additional features available for a price. This is great for small and medium organizations because you can start with the free version and upgrade to the commercially supported version if/when it makes sense.&lt;/p&gt;
&lt;p&gt;
	If you are a small business, not for profit or membership group, now is a great time to look at Open Source software. You will find many gems that let you take your business to the next level. From accounting and hr management to content management and groupware, open source software lets you access technology that will make you more competitive at a lower cost, and that is a great thing for your business.&lt;/p&gt;
</description>
     <comments>http://www.scaled-solutions.com/blog/open-source-software-your-business#comments</comments>
 <category domain="http://www.scaled-solutions.com/category/tags/open-source">Open Source</category>
 <pubDate>Tue, 06 Jul 2010 04:04:50 +0000</pubDate>
 <dc:creator>qjensen</dc:creator>
 <guid isPermaLink="false">8 at http://www.scaled-solutions.com</guid>
  </item>
  <item>
    <title>Why I Chose Drupal</title>
    <link>http://www.scaled-solutions.com/blog/why-i-chose-drupal</link>
    <description>&lt;p&gt;
	I started off as a web designer/developer creating websites and writing code to add functionality for my customers. As my clients became more sophisticated, they asked for more advanced functionality. Often the features they wanted added more than they expected to both the timeline and budget.&lt;/p&gt;
&lt;p&gt;
	Based on these requests from my customer I began researching various options and it quickly became obvious that a content management system would be the best tool to serve my customers.&lt;/p&gt;
&lt;p&gt;
	&lt;!--break--&gt;&lt;/p&gt;
&lt;h3&gt;
	&lt;u&gt;Criteria&lt;/u&gt;&lt;/h3&gt;
&lt;p&gt;
	Before I started shopping for a content management system, I put together a few criteria to guide the process.&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;Open Source: &lt;/strong&gt;I am a big believer in the value and power of open source software. If I was going to choose a content management platform it had to be open source.&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;Maturity:&lt;/strong&gt; Choosing this kind of platform is a long term commitment in learning and community involvement. I wanted to make sure the product I selected had real staying power and would continue to exist far into the future.&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;Scalability: &lt;/strong&gt;I knew that my customers would want to enhance their websites as they grew. I needed a platform that could scale to meet the needs of my clients both today and into the future.&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;Community: &lt;/strong&gt;Open source software is completely dependent upon its community. Support, features and knowledge of all kinds are gathered from the community. Because of this, I wanted to make sure the the platform I chose had a supportive, communicative and open group of supporters.&lt;/p&gt;
&lt;h3&gt;
	&lt;u&gt;Selection Process&lt;/u&gt;&lt;/h3&gt;
&lt;p&gt;
	I googled the term &amp;quot;Content Management System&amp;quot; and got 69 million hits. That alone should give you an idea of how hot the subject of content management is. Because of my commitment to Open Source Software I was able to limit the list, but there were still a number of contenders. I downloaded a few of them and put them through some basic tests. I read even more reviews and comparisons to get a feel for the communities and level of support for each product. Then I looked into the modules available for each system. Most of these CMS have a robust ecosystem of add-ons that extend the functionality of the core system, adding custom user interface tools, blogging facilities, calendaring, rss feeds, e-commerce and others. One module in particular, CiviCRM, caught my attention because of the projects I have worked on for professional membership associations (you can learn more about CiviCRM at &lt;a href=&quot;http://www.civicrm.org&quot;&gt;www.civicrm.org&lt;/a&gt;). Because of the uniqueness of this module and its fit to my target audience, I quickly narrowed my selection down to Drupal and Joomla.&lt;/p&gt;
&lt;p&gt;
	Ultimately, I believe either system would have worked well, but after reading the CiviCRM forums, it was obvious that there was a higher level of support for Drupal. After implementing a few sites with both Drupal and CiviCRM I can say confidently that I do not regret my decision. I have found the community to be very supportive. It seems that I discover some new module each day that adds value to what I do. Most importantly, my customers are happy with the final product.&lt;/p&gt;
</description>
     <comments>http://www.scaled-solutions.com/blog/why-i-chose-drupal#comments</comments>
 <category domain="http://www.scaled-solutions.com/category/tags/content-management">Content Management</category>
 <category domain="http://www.scaled-solutions.com/category/tags/drupal">Drupal</category>
 <pubDate>Wed, 21 Apr 2010 18:15:56 +0000</pubDate>
 <dc:creator>qjensen</dc:creator>
 <guid isPermaLink="false">3 at http://www.scaled-solutions.com</guid>
  </item>
  </channel>
</rss>