<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Blog of Leonid Mamchenkov &#187; Sysadmin</title>
	<atom:link href="http://mamchenkov.net/wordpress/category/sysadmin/feed/" rel="self" type="application/rss+xml" />
	<link>http://mamchenkov.net/wordpress</link>
	<description>You just stepped in a pile of posts.</description>
	<pubDate>Thu, 02 Oct 2008 11:29:02 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>mp3 collection maintenance</title>
		<link>http://mamchenkov.net/wordpress/2008/08/27/convert-russian-mp3-id3-tags-from-koi8-cp1251-to-utf8/</link>
		<comments>http://mamchenkov.net/wordpress/2008/08/27/convert-russian-mp3-id3-tags-from-koi8-cp1251-to-utf8/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 20:51:09 +0000</pubDate>
		<dc:creator>Leonid Mamchenkov</dc:creator>
		
		<category><![CDATA[All]]></category>

		<category><![CDATA[Sysadmin]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[collecting]]></category>

		<category><![CDATA[collections]]></category>

		<category><![CDATA[encoding]]></category>

		<category><![CDATA[entertainment]]></category>

		<category><![CDATA[id3 tags]]></category>

		<category><![CDATA[maintenance]]></category>

		<category><![CDATA[mp3]]></category>

		<category><![CDATA[Music]]></category>

		<category><![CDATA[russian]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[tools]]></category>

		<category><![CDATA[utf8]]></category>

		<guid isPermaLink="false">http://mamchenkov.net/wordpress/?p=11351</guid>
		<description><![CDATA[I have a rather large MP3 collection.  The directories and files are named correctly more or less, but ID3 tags used to be a mess until very recently.  Two applications helped me to bring some order in that mess.
EasyTag, a GUI application, that helped me to fix lots of broken and add lots of missing [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>I have a rather large <acronym title="MPEG Layer 3 - a common audio codec for music files">MP3</acronym> collection.  The directories and files are named correctly more or less, but ID3 tags used to be a mess until very recently.  Two applications helped me to bring some order in that mess.</p>
<p><a href="http://easytag.sourceforge.net/" onclick="javascript:urchinTracker ('/outbound/article/easytag.sourceforge.net');">EasyTag</a>, a <acronym title="Graphical User Interface">GUI</acronym> application, that helped me to fix lots of broken and add lots of missing comments to my <acronym title="MPEG Layer 3 - a common audio codec for music files">MP3</acronym> files.  The smart thing about this program is that it can figure out a lot of data from the names of the files and directories, and that it can grab and replicate partial data from within the albums.</p>
<p>The second program that I wanted to mention, I just found out about today (thanks to <a href="http://delicious.com/nite_man" onclick="javascript:urchinTracker ('/outbound/article/delicious.com');">Michael Stepanov&#8217;s delicious bookmarks</a>).  It&#8217;s called <a href="http://sourceforge.net/projects/tag2utf" onclick="javascript:urchinTracker ('/outbound/article/sourceforge.net');">tag2utf</a>.  It&#8217;s a little Python script that converts the encoding of ID3 tags from koi8 or cp1251 (two most widely used Russian encodings) to utf8.  It&#8217;s very easy to install (the only requirement my system needed was python-eye3d library, which exists in Fedora repository) and use.  Just run it from the command line with no parameters and it will recursively look in the current directory for any files that have ID3 tags in non-utf8 encoding.  It will then give you a choice of two encodings to select from (koi8 or cp1251), a &#8220;skip&#8221; option, and a &#8220;manual&#8221; option.  All you will have to do is take a quick look at the files, and chose to either convert them from one of the two options, skip them or convert manually one by one.  You will have to make this choice for every directory with non-utf8 files.  Optionally, you can specify on the command line which directories to scan.  In case you need to convert from some other non-Russian encoding to utf8, the script is trivial to modify.</p>
<p>Both tools are excellent pieces of software.  It took me practically no time at all to fix my mp3 collection.  Now I can search it better, and all files display nicely in any mp3 player.  Brilliant stuff!</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://mamchenkov.net/wordpress/2008/08/27/convert-russian-mp3-id3-tags-from-koi8-cp1251-to-utf8/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SugarCRM deployment efforts</title>
		<link>http://mamchenkov.net/wordpress/2008/08/19/sugarcrm-deployment-efforts/</link>
		<comments>http://mamchenkov.net/wordpress/2008/08/19/sugarcrm-deployment-efforts/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 00:50:39 +0000</pubDate>
		<dc:creator>Leonid Mamchenkov</dc:creator>
		
		<category><![CDATA[All]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Sysadmin]]></category>

		<category><![CDATA[deployment]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[patching]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[sugarcrm]]></category>

		<category><![CDATA[tools]]></category>

		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://mamchenkov.net/wordpress/?p=11339</guid>
		<description><![CDATA[Since we started working on SugarCRM in the office, one of the hardest tasks that we had was solving the deployment issue.  On one hand, SugarCRM comes with some really nice GUI tools, such Studio and Module Builder.  On the other hand, the system is large and complex and should be developed and tested in [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Since we started <a href="http://mamchenkov.net/wordpress/2008/07/15/migrating-ms-dynamics-crm-to-sugarcrm/" >working on SugarCRM</a> in the office, one of the hardest tasks that we had was solving the deployment issue.  On one hand, SugarCRM comes with some really nice <acronym title="Graphical User Interface">GUI</acronym> tools, such <strong>Studio</strong> and <strong>Module Builder</strong>.  On the other hand, the system is large and complex and should be developed and tested in a separate, non-production environment.</p>
<p>We&#8217;ve spent a lot of effort over the last couple of month trying to solve the puzzle.  The problem is that there is a tricky combination of files updates and database changes, some of which can be just copied over while others have to be executed from the destination machine&#8217;s administration.</p>
<p>So, what we did first was complete separation of environments.  Each developer had his own machine on which he could install and configure as many instances of SugarCRM as he saw fit.  Also, each developer had a separate branch in the Subversion, so that he could work on his own stuff without being afraid to run into conflict with anyone.</p>
<p>After that, we created a development server with a checkout of common trunk.  For extra insurance, we did a checkout from a system user, who does not have any write permissions in the repository.  In this case, even if someone will accidentally try to commit from the development server, we would be sure that it fails.</p>
<p>Now, each developer had to merge his changes into trunk, and then test them on the development server.  This procedure is very similar to the production deployment and consisted of two parts.  Firts part was updating all the relevant files (a bit more on this in a moment) with <em>svn update</em>.  Second part was logging into SugarCRM and doing <em>Admin -&gt; Repair -&gt; Quick Repair and Rebuild</em>.</p>
<p>The graphical tools that come with SugarCRM are powerful, but a bit confusing.  The biggest confusion for me was (and maybe still is) between Module Builder and Studio.  Studio can be used to customize core modules that are shipped with SugarCRM.  The results of these customizations are stored in <em>custom/modules</em> directory, and when loaded into the database, can be observed in _cstm tables (for example, <em>accounts_cstm</em>).  This is where new custom fields and things like that are going.  Module Builder is a tool which can help you customize existing modules or build the new ones. The confusion here is because both of these tools can be used to do the same things.  But with Module Builder you&#8217;d be working closer to the core system and modifying &#8220;original&#8221; functionality.  You can build your own modules too, by the way.  The results of the Module Builder work with go into <em>modules/</em> directory, and changes in the database will take place in the original tables.  One thing to remember though, is that you&#8217;ll need to push <em>Save &amp; Deploy</em> button every time you are finished with changes in Module Builder.  This is like compiling and building a module.  If you forget this step, then your module will hang in its source somewhere around <em>custom/modulebuilder</em> directory.</p>
<p>Another thing to keep in mind is the sillyness of the machine trying to figure out another machine.  Meaning that Subversion will often have issues trying to figure out the changes from the last commit, and these issues would be often caused by a lot of automatically generated code by SugarCRM.  In most of these problematic cases, Subversion will just merge the changes, and this would often result in a broken system.  I&#8217;ve found at least two reasons behind these: small context size that Subversion uses (3 lines or so) confuses it sometimes, bringing it to a wrong place in the file to do the merging; and rather messy automatically generated stuff by SugarCRM - unnecessary reordering and mixed (DOS and UNIX) ends of lines in a single file.  These problems are mostly related to vardef files (vardef.php and anything *def.php) and language dictionaries (anything with *en_us*php, or whatever your locale is).  The solution we are using at the moment is simple, although a bit heavy on the manual work - instead of merging the changes and checking them every time we simply remove old versions of files and add the new ones in two separate commits.  These way Subversion treats the files as completely different ones and real removes and re-creates them instead of trying to merge.</p>
<p>We follow exactly the same procedure now to deploy to the production server.  We just merge code from <em>trunk/</em> to <em>branches/stable</em> , commit, then update the files on the production server, and then do the <em>Quick Repair and Rebuild</em>.</p>
<p>The thing about Quick Repair and Rebuild is that it takes the update definitions of your forms and layouts and rebuilds compiled templates.  It also compares the structure of the database with the update definitions in the files and, if needed, updates the database scheme too.  Sometimes you&#8217;d get an error of missing table (usually custom tables with _cstm suffix) - just create an empty table manually.  Put a couple of standard fields like id_c, date_modified, and date_entered.  After that, field modifications should be OK.  In case you run into a problem with updates to several fields at once, make sure that SugarCRM put a semicolon (;) at the end of each <acronym title="Structured Query Language (a database standard)">SQL</acronym> statement that it shows you in a popup window.  For some weird reason, sometimes it just works, and sometimes it tries to execute several queries without separating them one from another.</p>
<p>So far the setup seems to be working for us just fine, but I&#8217;m sure that we&#8217;ll have a few changes here and there.  I&#8217;ll let you know once we find any better way of doing things.  In the meantime, here are some links that might help your development efforts:</p>
<ul>
<li><a href="http://www.sugarcrm.com/wiki/index.php?title=Model-View-Controller_(MVC)" onclick="javascript:urchinTracker ('/outbound/article/www.sugarcrm.com');">SugarCRM Model-View-Controller (MVC)</a></li>
<li><a href="http://www.sugarcrm.com/wiki/index.php?title=SugarBean" onclick="javascript:urchinTracker ('/outbound/article/www.sugarcrm.com');">SugarCRM SugarBean</a></li>
<li><a href="http://www.sugarcrm.com/wiki/index.php?title=Vardefs" onclick="javascript:urchinTracker ('/outbound/article/www.sugarcrm.com');">SugarCRM Vardefs</a></li>
<li><a href="http://www.sugarcrm.com/wiki/index.php?title=Performance_Tweaks_for_Large_Systems" onclick="javascript:urchinTracker ('/outbound/article/www.sugarcrm.com');">SugarCRM Performance Tweaks for Large Systems</a></li>
</ul><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://mamchenkov.net/wordpress/2008/08/19/sugarcrm-deployment-efforts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>InnoDB is better for SugarCRM</title>
		<link>http://mamchenkov.net/wordpress/2008/08/03/innodb-is-better-for-sugarcrm/</link>
		<comments>http://mamchenkov.net/wordpress/2008/08/03/innodb-is-better-for-sugarcrm/#comments</comments>
		<pubDate>Sun, 03 Aug 2008 20:50:54 +0000</pubDate>
		<dc:creator>Leonid Mamchenkov</dc:creator>
		
		<category><![CDATA[All]]></category>

		<category><![CDATA[Sysadmin]]></category>

		<category><![CDATA[conversion]]></category>

		<category><![CDATA[databases]]></category>

		<category><![CDATA[innodb]]></category>

		<category><![CDATA[myisam]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[optimization]]></category>

		<category><![CDATA[performance]]></category>

		<category><![CDATA[sugarcrm]]></category>

		<guid isPermaLink="false">http://mamchenkov.net/wordpress/?p=11326</guid>
		<description><![CDATA[After SugarCRM was deployed, we were experiencing some lock ups.  Not frequent or dangerous, but annoying.  About once a week or every ten days or so, SugarCRM would lock up and won&#8217;t answer any queries at all.  Not even the login was possible.  A brief investigation showed that somehow it was locking up the MySQL [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>After <a href="http://mamchenkov.net/wordpress/2008/07/15/migrating-ms-dynamics-crm-to-sugarcrm/" >SugarCRM was deployed</a>, we were experiencing some lock ups.  Not frequent or dangerous, but annoying.  About once a week or every ten days or so, SugarCRM would lock up and won&#8217;t answer any queries at all.  Not even the login was possible.  A brief investigation showed that somehow it was locking up the MySQL database - about 15 processes (using &#8220;show full processlist&#8221;) in Locked state, with no data being sent back or forth.  All locked queries were rather complex, with several JOINs.  The load on the system was somewhat high, since we have about a few dozen operators working on it at the same time.</p>
<p>A similarly brief Google search suggested (see <a href="http://mysqldatabaseadministration.blogspot.com/2006/07/myisam-to-innodb.html" onclick="javascript:urchinTracker ('/outbound/article/mysqldatabaseadministration.blogspot.com');">here</a> and <a href="http://www.mysqlperformanceblog.com/2006/05/29/join-performance-of-myisam-and-innodb/" onclick="javascript:urchinTracker ('/outbound/article/www.mysqlperformanceblog.com');">here</a>) and explained <a href="http://dev.mysql.com/doc/refman/5.0/en/converting-tables-to-innodb.html" onclick="javascript:urchinTracker ('/outbound/article/dev.mysql.com');">converting MySQL tables from MyISAM to InnoDB</a>.  A test has been performed and everything went OK.  Our SugarCRM database is about 600 MBytes and it was converted <a href="http://www.sugarcrm.com/wiki/index.php?title=MySQL_-_convert_MyISAM_to_InnoDB" onclick="javascript:urchinTracker ('/outbound/article/www.sugarcrm.com');">from MyISAM to InnoDB in under 20 minutes</a>.  The best part is that it takes even less to <a href="http://www.sugarcrm.com/wiki/index.php?title=MySQL_-_convert_InnoDB_to_MyISAM" onclick="javascript:urchinTracker ('/outbound/article/www.sugarcrm.com');">convert back to MyISAM</a>, in case you change your mind.</p>
<p>It&#8217;s been a few days now since we did the conversion and it looks OK.  Also, the CRM itself feels a bit faster.</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://mamchenkov.net/wordpress/2008/08/03/innodb-is-better-for-sugarcrm/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Monitoring dynamic processes with Nagios</title>
		<link>http://mamchenkov.net/wordpress/2008/08/03/monitoring-dynamic-processes-with-nagios/</link>
		<comments>http://mamchenkov.net/wordpress/2008/08/03/monitoring-dynamic-processes-with-nagios/#comments</comments>
		<pubDate>Sun, 03 Aug 2008 20:04:18 +0000</pubDate>
		<dc:creator>Leonid Mamchenkov</dc:creator>
		
		<category><![CDATA[All]]></category>

		<category><![CDATA[Sysadmin]]></category>

		<category><![CDATA[alerts]]></category>

		<category><![CDATA[monitoring]]></category>

		<guid isPermaLink="false">http://mamchenkov.net/wordpress/?p=11324</guid>
		<description><![CDATA[We spent a couple of weeks now at work, setting up our Nagios installation.  This is one of those things that one can never finish.  Monitoring is like security - no matter how good it is, it can always be better.
One thing that I particularly enjoyed figuring out was how to monitor dynamic stuff.  Hosts [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>We spent a couple of weeks now at work, setting up our <a href="http://www.nagios.org/" onclick="javascript:urchinTracker ('/outbound/article/www.nagios.org');">Nagios</a> installation.  This is one of those things that one can never finish.  Monitoring is like security - no matter how good it is, it can always be better.</p>
<p>One thing that I particularly enjoyed figuring out was how to monitor dynamic stuff.  Hosts and services are the easy part - they are always there and should be there.  If they aren&#8217;t - let me know.  But how to monitor dynamic values, that change based on the time of day or day of week?  How to configure the monitoring so that we don&#8217;t need to update the limits every other week?</p>
<p>For example, consider the number of the user registrations through a web form.  If we are to measure this number over any sensible (monitoring-wise) period of time, such as one hour, we&#8217;d see that it fluctuates a lot during the day.  Furthermore, this number fluctuates differently depending on the day of the week.  We have three separate pick hours during the day, and we have a great decrease in numbers over the weekend.  Plus the amount of user registrations is linked to all the advertising that company does, so this week might different from the last week and from the next week.  How can we measure it so that a notiification is sent when the number is abnormal?  What is abnormal?</p>
<p>The solution turned out to be much simpler than I originally thought it would.  It is sufficient to get a few samples of the data in same hour last week and a week before.  <strong>If current value is more than twice the maximum or less than twice the minimum from the sample data, then we should be notified.</strong> This, in fact, works pretty well.  The only time when we get a lot of false positives is when the values in the sample data are small.  With values under 10, it&#8217;s very easy to jump over or under the limit.  When the sample values are higher, there is more space between the boundaries and the system works as expected.</p>
<p>We&#8217;ll get some more sample data now and we&#8217;ll be adjusting the formulat accordingly.  But as I said, even as it is, it&#8217;s pretty good.</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://mamchenkov.net/wordpress/2008/08/03/monitoring-dynamic-processes-with-nagios/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Vacancy for Python or C++ programmers and Linux sysadmins</title>
		<link>http://mamchenkov.net/wordpress/2008/07/24/vacancy-for-python-or-c-programmers-and-linux-sysadmins/</link>
		<comments>http://mamchenkov.net/wordpress/2008/07/24/vacancy-for-python-or-c-programmers-and-linux-sysadmins/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 08:56:51 +0000</pubDate>
		<dc:creator>Leonid Mamchenkov</dc:creator>
		
		<category><![CDATA[All]]></category>

		<category><![CDATA[Cyprus]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Sysadmin]]></category>

		<category><![CDATA[jobs]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[vacancy]]></category>

		<guid isPermaLink="false">http://mamchenkov.net/wordpress/?p=11316</guid>
		<description><![CDATA[Point Nine is looking for some talanted people.  They are working in the financial sector, and seeking Python and C++ programmers, as well as Linux system administrators.  They seem to be an interesting company, judging both by their technology stack and hiring techniques.   For example, I&#8217;ve spotted their job ad on The Daily WTF.  Cool [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p><a href="http://www.p9ft.com/" onclick="javascript:urchinTracker ('/outbound/article/www.p9ft.com');">Point Nine</a> is looking for some talanted people.  They are working in the financial sector, and seeking Python and C++ programmers, as well as Linux system administrators.  They seem to be an interesting company, judging both by their technology stack and hiring techniques.   For example, I&#8217;ve spotted their <a href="http://jobs.thedailywtf.com/1001/listing.aspx?JobId=1001379" onclick="javascript:urchinTracker ('/outbound/article/jobs.thedailywtf.com');">job ad on The Daily WTF</a>.  Cool stuff.  If I wasn&#8217;t working where I am working, I would have applied for the job already.</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://mamchenkov.net/wordpress/2008/07/24/vacancy-for-python-or-c-programmers-and-linux-sysadmins/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Migrating MS Dynamics CRM to SugarCRM</title>
		<link>http://mamchenkov.net/wordpress/2008/07/15/migrating-ms-dynamics-crm-to-sugarcrm/</link>
		<comments>http://mamchenkov.net/wordpress/2008/07/15/migrating-ms-dynamics-crm-to-sugarcrm/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 09:08:49 +0000</pubDate>
		<dc:creator>Leonid Mamchenkov</dc:creator>
		
		<category><![CDATA[All]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Sysadmin]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[crm]]></category>

		<category><![CDATA[experience]]></category>

		<category><![CDATA[management]]></category>

		<category><![CDATA[microsoft]]></category>

		<category><![CDATA[migration]]></category>

		<category><![CDATA[software development]]></category>

		<category><![CDATA[sugarcrm]]></category>

		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://mamchenkov.net/wordpress/?p=11313</guid>
		<description><![CDATA[I&#8217;ve been a bit quiet for the last couple of month.  That&#8217;s because I was leading an ambicious project at my new job - migration of a Microsoft Dynamics CRM version 3 to SugarCRM Community Edition version 5.0.0.  There were only three people involved, non of us could afford to work full time on the [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>I&#8217;ve been a bit quiet for the last couple of month.  That&#8217;s because I was leading an ambicious project at my new job - migration of a Microsoft Dynamics CRM version 3 to SugarCRM Community Edition version 5.0.0.  There were only three people involved, non of us could afford to work full time on the project, and we only had three weeks to do it.</p>
<p>Read on for a story on why it took us longer, how we did, and if it was a success at all.</p>
<p><span id="more-11313"></span></p>
<p>First of all, a little background.  The company that I work for now is in financial services sector.  CRM is one of the two vital systems, with trading platform being the second one.  All processes are tied into CRM - registrations of new clients, incoming and outgoing money, email tracking, and so on and so forth.  The system has been installed about a year ago and has accomodated data for a few thousands of clients.</p>
<p>Another important bit to know is that CRM is used quite a lot 24 hours a day, 5 days a week.  Some data is coming in over the weekends too, but there are no real users who access the system.  Also, since the company is working with global clientele, weekend is really between 23:00 of Friday and 23:00 of Sunday.</p>
<p>By now you probably have this question in your head: &#8220;Why migrate?&#8221;.  What is so wrong with the existing system that it needs to be replaced so fast and so furious?</p>
<p>The company was preparing for a huge expansion.  Firtst of all, there was a take over of another company scheduled later that month.  That meant an almost sudden expansion of a few thousands of clients to a few tens of thousands of clients.  Secondly, a huge marketing campaign was starting up.  Thirdly, a few key processes were about to be change (the way new clients were registered).  Fourthly, there was a huge need for automation and extended functionality.</p>
<p>With all that, there was a very limited in-house expertise for the existing system.   SugarCRM had this nice advantage of being implemented with LAMP stack (Linux, Apache, MySQL, <acronym title="Hypertext PreProcessing">PHP</acronym>), which was way more familiar to most of the IT people in the company.  And all the source code was there.</p>
<p>Another big reason for a change, was realization of how tied in the <acronym title="Microsoft">MS</acronym> CRM is into company&#8217;s network.   While considering the upgrade of the <acronym title="Microsoft">MS</acronym> Dynamics CRM to version 4, most of the people were horrified of the upgrade path.  In order to upgrade the CRM, we first had to upgrade our <acronym title="Microsoft">MS</acronym> Exchange server.  Which meant that we had to upgrade the operating system of the machine.  Which meant that we had to upgrade the hardware of the server.  And <acronym title="Microsoft">MS</acronym> Exchange upgrade was strongly suggesting upgrades of quite a few other bits and pieces of software and hardware.  Seemed like a really complicated and dangerous thing to do.</p>
<p>One thing I wanted to note separately, was how easy it was to sell SugarCRM to the management.  An open source stack meant that we were could be in full control of the system.  Independent software pieces meant that we could replace and upgrade them separately.  Fully web based technology aligned very well with many other company tools.  The brief demonstration of SugarCRM got them totally convinced that the system is mature enough and can handle everything the company needs, and more.  The fact that SugarCRM could be easily installed on a laptop in just a couple of minutes helped.  The nice look and selection of themes in default out of the box installation helped.  The selection of modules in out of the box installation helped.  And the possibility to install the system with plenty of sample data helped too.  Overall, it took me less than two hours to convince the management that the system is good enough.  And I wasn&#8217;t even trying hard.</p>
<p>So, what&#8217;s with the timing?  We were given three weeks.  In fact, it was two weeks for migration and one week for user training.  We had to create a full replica of the existing system.  Migrate all the data and implement all the functionality to support all the company processes.  It took us three weeks to do it.  Because we had no time to train the users, and because the company was on the doorstep of a large take over, we had to suspend the CRM migration efforts.</p>
<p>It took the company about three weeks to integrate all the new data.  Also, quite a few processes were changed.  And the company grew plenty of new staff in all departments.</p>
<p>When the question of the CRM migration was important once again, we had to face quite a few changes.  Much much much more data than we originally tested with.  A lot of changes in the ways things were handled.  More users.  And more automation was needed.  The replica of the old CRM was of no value anymore.</p>
<p>It took us about three more weeks to adjust our installation of SugarCRM to fit the new requirements.  Even now that the migration is officially over, we still have quite a few things to fix and improve.  But that&#8217;s going to be a live process from now on.</p>
<p>The project was very challanging for the company, the team, and me personally.  It was a complex thing technically, politically, and socially.  For me personally, it was also quite a new management experience.  I&#8217;ve been doing some project management before, but never had to deal with such magnitude, and especially in such tight deadlines.  The good thing though was that I had to pick my own team.</p>
<p>Here are a few things that I&#8217;ve learned and a few things that I think are important to share.</p>
<p>Technology-wise, thanks heavens for CSV (file format for comma separated values).  This was the backbone of the whole migration process.  Here is how it works.  <acronym title="Microsoft">MS</acronym> Dynamics CRM has a very limited exporting functionality.  Getting things directly out of the database don&#8217;t make sense at all.  For example, our specific installation had more than 220 tables, all linked to each other.  On top of that there were almost 400 views and something around 60 stored procedures.  There was no way that we could analyze these structures in any meaningful period of time.  So we did an export with entity by entity method.  Gladly, there weren&#8217;t that many entities.  There is a way to list all entities in tabular form, with columns upon columns of entity values.  The only sensible format to save that list was in <acronym title="HyperText Markup Language">HTML</acronym>.</p>
<p>Because we had huge sets of data, <acronym title="Microsoft">MS</acronym> CRM couldn&#8217;t handle the listing properly.  So we had to come up with search criterias to separate the listings into smaller chunks of about 10,000 records each.  Now, I&#8217;ll give you a second to imagine an <acronym title="HyperText Markup Language">HTML</acronym> file with a table, which has around 10,000 rows and anywhere from 100 to 500 columns.</p>
<p>The way to handle these <acronym title="HyperText Markup Language">HTML</acronym> files was to load them up in <acronym title="Microsoft">MS</acronym> Excel.  It should also better be a newer version of Excel, that can handle more than 256 columns.  <acronym title="Microsoft">MS</acronym> Excel is wonderful at pasing those <acronym title="HyperText Markup Language">HTML</acronym> tables, but it doesn&#8217;t offer much help in saving them in CSV.  CSV in <acronym title="Microsoft">MS</acronym> Excel is weird.  So, what we ended up doing was using <acronym title="Microsoft">MS</acronym> Excel to convert <acronym title="HyperText Markup Language">HTML</acronym> tables into older version of Excel, so that we could open them up in OpenOffice.  OpenOffice is wonderful at saving CSV.  You can pick and choose delimeters, quoting symbols, etc.  The point is to make CSV files which can be parsed by <acronym title="Hypertext PreProcessing">PHP</acronym>.</p>
<p>Here are two things to remember.  First, older Excel formats can&#8217;t work with more than 256 columns.  The trick we were using was the sheets.  Copy data of the extra columns into another sheet of the same file, and it will be much easier to process later.  Second, if you will do several exports of data from <acronym title="Microsoft">MS</acronym> CRM, remember that columsn won&#8217;t necessarily be in the same order.  In fact, chances are that columns won&#8217;t be in the same order.  The way go about it is to use hashes, or, sorry, associative arrays.  Take the first row, of data, which has the column titles, build an index array out of it, and then go through data rows, assigning values to appropriate keys.  Don&#8217;t use indexes for data, or you will have to inspect the order and adjust your SugarCRM importing scripts on every export.</p>
<p>Another technical issue is the deployment process of SugarCRM.  We are still in the mess with this and haven&#8217;t solved it properly.  We used Subversion for the version control of all the files.  But it&#8217;s not enough for SugarCRM, since some of the modules are bulit with its own Studio, and loaded with its own Module Loader.  When this happens, the database is modified, and a few local files are changed also.  We sort of have it working now, with plenty of magic and strict procedure involved, but it&#8217;s far from perfect, requires too much manual labour, and is very prone to problems still.  If you have any suggestions for this one, please let me know.</p>
<p>Something else worth noting, is a very unpleasant behavior of SugarCRM in terms of usage tracking.  Surely, there is an option to not send anything, but somehow I find it always sending way too much stuff out.  And the worst part is that these things are hidden, and written in a way that makes them hard to find.  have a look in <em>include/utils/mvc_utils.php</em> and in <em>include/utils/tracker_utils.hp</em> .  These are the two ugliest places.  There is another one which deals with update notifications, which I think I found, but didn&#8217;t have time to cut out yet.  I am really surprised to see these in an open source project.  And then again, I&#8217;m glad to have all the sources and being able to remove this stuff.  Who knows what goes on in closed source applications&#8230;</p>
<p>In terms of project management, I&#8217;ve learned to talk to people a lot.  Talking to all the people all the time was the bigger part of my participation in the project actually.  I think I&#8217;ve spent close to 80% of time just talking.  I was talking to the members of the team, trying to figure out the best ways to approach problems.  I was talking to people who were supporting <acronym title="Microsoft">MS</acronym> CRM installation, trying to get as much as possible from them regarding the details of the running system.  I was talking to each user and each user group trying to see what they were using, how they were using it, and what they wanted and needed from the new system.  I was talking to the management a lot, trying to figure out where the company was going and what would be the changes in the near, intermediate and far away future.  I was also talking to a lot of  people outside of the company, trying to see how similar problems were solved there, how they managed projects of this magnitude, how they were dealing with their users, developers, and managers.</p>
<p>I know that many projects take a lot of talking, but in this one we had practically no documentation of the existing system and process, and we had very tight deadlines, so talking ended up being a very effecient way of getting information.</p>
<p>Also, talking helped a lot in extending deadlines where needed, and in keeping users calm.  Somehow, people are taking delays and system limitations very much easier if they know why those limitations are in and when there are problems will be solved.  Sometimes I had to go into technical details explaining why certain things weren&#8217;t working or were working different from the previous system.  Sometimes I had do a totally non-technical talk showing to people which other departments exist in the company and how they interact, and how things are prioritiezed and why.</p>
<p>As I said, I did a lot of talking.  More than during any other project that I ever handled.  Of course, I was blessed with excellent teammates who were handling the technical parts of the project.  One person was doing everything and anything about SugarCRM.  Another one was working on all the exports, figuring out other systems and getting stuff off of them.  He also helped a lot with integration of SugarCRM with the other company tools.  Great guys both of them!</p>
<p>Now, this pretty much covers the migration process.  But since the SugarCRM saga in our company is just started, expect more stuff posted.  In the mean time, if you have any questions regarding any aspect of this migration, feel free to ask in the comments.</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://mamchenkov.net/wordpress/2008/07/15/migrating-ms-dynamics-crm-to-sugarcrm/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Longer video?  Maybe.</title>
		<link>http://mamchenkov.net/wordpress/2008/06/20/longer-video-maybe/</link>
		<comments>http://mamchenkov.net/wordpress/2008/06/20/longer-video-maybe/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 22:24:34 +0000</pubDate>
		<dc:creator>Leonid Mamchenkov</dc:creator>
		
		<category><![CDATA[All]]></category>

		<category><![CDATA[Sysadmin]]></category>

		<category><![CDATA[Web work]]></category>

		<category><![CDATA[entertainment]]></category>

		<category><![CDATA[google video]]></category>

		<category><![CDATA[mass media]]></category>

		<category><![CDATA[video]]></category>

		<category><![CDATA[web]]></category>

		<category><![CDATA[YouTube]]></category>

		<guid isPermaLink="false">http://mamchenkov.net/wordpress/?p=11307</guid>
		<description><![CDATA[Scobleizer believes in longer videos:
Advertisers also will pay a lot higher rates for those long-form ads.
Why?
Because someone who’ll watch a 30-minute video is HIGHLY ENGAGED. They are far more likely to become a customer than someone who just watches a two-minute entertaining video.
I think that &#8220;video&#8221; is too broad for this topic.  To consider only [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p><a href="http://scobleizer.com/2008/06/18/why-youtube-is-going-long-form/" onclick="javascript:urchinTracker ('/outbound/article/scobleizer.com');">Scobleizer believes in longer videos</a>:</p>
<blockquote><p>Advertisers also will pay a lot higher rates for those long-form ads.</p>
<p>Why?</p>
<p>Because someone who’ll watch a 30-minute video is HIGHLY ENGAGED. They are far more likely to become a customer than someone who just watches a two-minute entertaining video.</p></blockquote>
<p>I think that &#8220;video&#8221; is too broad for this topic.  To consider only educational and entertainment videos, I see a huge difference.  I don&#8217;t believe that entertainment videos will become longer.   Entertainment is a sort of thing that doesn&#8217;t have to go either deep or long.  Thus it doesn&#8217;t need large chunks of time.  Educational video is a totally other story.  While there are many &#8220;howto&#8221; type of videos, many topics require more than 5 minutes to explain.  Take Google Tech Talks for example.  They are pretty popular and each one takes about an hour.</p>
<p>There is also this factor of production costs.  It&#8217;s much harder to create 60 minutes of high quality (and I don&#8217;t mean pixels or bytes) video material, than 10 minutes.  Or 5.  Filmmakers know that.  And the audience knows that.   While less and less filmmakers will risk it, and more and more of those who do risk it will produce crapy long videos, the audience will learn the benefit of a short video and will be more inclined into choosing shorter formats.</p>
<p>However, since I am not at all involved in any video production or distrubtion, I might be totally wrong on this.  Judging purely from my own experience.  And my own experience mostly comes from YouTube and Google Video.</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://mamchenkov.net/wordpress/2008/06/20/longer-video-maybe/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Toolbox : WordPress, CakePHP, SugarCRM, RT</title>
		<link>http://mamchenkov.net/wordpress/2008/05/29/toolbox-wordpress-cakephp-sugarcrm-rt/</link>
		<comments>http://mamchenkov.net/wordpress/2008/05/29/toolbox-wordpress-cakephp-sugarcrm-rt/#comments</comments>
		<pubDate>Thu, 29 May 2008 06:38:00 +0000</pubDate>
		<dc:creator>Leonid Mamchenkov</dc:creator>
		
		<category><![CDATA[All]]></category>

		<category><![CDATA[Sysadmin]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Web work]]></category>

		<category><![CDATA[applications]]></category>

		<category><![CDATA[cakephp]]></category>

		<category><![CDATA[crm]]></category>

		<category><![CDATA[platforms]]></category>

		<category><![CDATA[rt]]></category>

		<category><![CDATA[rt3]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[sugarcrm]]></category>

		<category><![CDATA[ticketing system]]></category>

		<category><![CDATA[tools]]></category>

		<category><![CDATA[web]]></category>

		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://mamchenkov.net/wordpress/?p=11210</guid>
		<description><![CDATA[Over the last couple of years I&#8217;ve been working a lot with these four applications - WordPress, CakePHP, SugarCRM, and RT.  Each of these is beautiful in its own way.  Each of these tools is an Open Source Software. Each of these tools has a large community. Each of these tools has a free and [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Over the last couple of years I&#8217;ve been working a lot with these four applications - <a href="http://wordpress.org" onclick="javascript:urchinTracker ('/outbound/article/wordpress.org');">WordPress</a>, <a href="http://www.cakephp.org" onclick="javascript:urchinTracker ('/outbound/article/www.cakephp.org');">CakePHP</a>, <a href="http://www.sugarcrm.com" onclick="javascript:urchinTracker ('/outbound/article/www.sugarcrm.com');">SugarCRM</a>, and <a href="http://bestpractical.com/rt" onclick="javascript:urchinTracker ('/outbound/article/bestpractical.com');">RT</a>.  Each of these is beautiful in its own way.  Each of these tools is an Open Source Software. Each of these tools has a large community. Each of these tools has a free and commercial support and development. Each of these can be used in a number of ways to solve a whole range of problems.  Let me briefly introduce each one of them.</p>
<p><span id="more-11210"></span></p>
<p><strong>WordPress</strong></p>
<p>Most people who have heard of WordPress probably think that it is a blogging application.  It is indeed. But it is so much more.  I&#8217;ve argued before that it is a <a href="http://wpbits.wordpress.com/2007/06/18/wordpress-webapp-framework-more-than-a-blogging-engine-more-than-a-cms/" onclick="javascript:urchinTracker ('/outbound/article/wpbits.wordpress.com');">web application framework</a>.  It can be used to build things like classified directories, job sites, address books, booking systems, object management tools, forums, etc.</p>
<p>Just think about these features: database abstraction layer, <acronym title="Really Simple Syndication">RSS</acronym> feeds for everything (including custom objects), tags and taxonomies, themes and plugins support, administration area, user management.</p>
<p><strong>CakePHP</strong></p>
<p>This is one of my recent discoveries.  CakePHP is a web application framework, but on a lower level than WordPress.  With WordPress you get the tools, and you also get some logic in how things are related and how they work.  If that logic doesn&#8217;t fit the way you think or the way your application needs to work, than you&#8217;ll be better with CakePHP.</p>
<p>CakePHP helps in getting your application out of the way.  You can create prototypes really fast.  It helps you to focus on your main stuff - your application.</p>
<p><strong>SugarCRM</strong></p>
<p>As with WordPress, most people who have heard of SugarCRM probably think that it is Customer Relationship Management tool.  And it is.  But it&#8217;s so much more.  It is also a platform.</p>
<p>If you take the evolution of an average business web site, then it will go something like this.  First, we don&#8217;t even need a web site.  We&#8217;ll just pay for advertising or directory listings all over the web.  Then we&#8217;ll need a simple web site with contact information.  Then we want to expand it a bit to have information about the company, a list of products or services, and some other static information. A contact form appears somewhere around here too.  Then we start getting into more dynamic stuff with company news, online shops, etc.  Then web site becomes sort of a primary tool for a business.  It is content management, stock management, communication tool, and more.  At this stage, site&#8217;s database holds much more data than can be seen online.</p>
<p>Now if you think about that evolution in terms of software development, you&#8217;ll end up in hell.  You started with a clean and simple thing, which grew over the years and became a patched up monster that nobody wants to touch.   Most web sites would be rewritten a couple of times, but that won&#8217;t help them much.  Because most web design companies aren&#8217;t software development companies.  And though they are slowly turning into software development companies, they aren&#8217;t quite there.</p>
<p>SugarCRM helps a lot here.  It is a large and complex application that provides a solution from top to bottom.  So, instead of upgrading the web site and adding a few things here and there, you&#8217;ll be downgrading SugarCRM and removing things from here and there.  Depending on which level of evolution the web site is, SugarCRM might be a much better solution than a lot of inhouse development.</p>
<p><strong>RT</strong></p>
<p>Request Tracker is a tool that you&#8217;d want to have in any organization what-so-ever.  You&#8217;d also want to use it if you are running a project with more than three people.</p>
<p>Originally, RT was just a tool for technical support departments.  Clients raise issues, these issues get assigned and passed around, until they are resolved.  Something like that.</p>
<p>But more and more people use RT for all sorts of tracking.  Anything from managing software development process (together with version control software), to company document infrastructure, to mass mailings.  Flexibility, low system requirements, and excellent community make it a great tool for more things than anyone can imagine.</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://mamchenkov.net/wordpress/2008/05/29/toolbox-wordpress-cakephp-sugarcrm-rt/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How far is a desktop from a server?</title>
		<link>http://mamchenkov.net/wordpress/2008/05/20/how-far-is-a-desktop-from-a-server/</link>
		<comments>http://mamchenkov.net/wordpress/2008/05/20/how-far-is-a-desktop-from-a-server/#comments</comments>
		<pubDate>Mon, 19 May 2008 21:27:40 +0000</pubDate>
		<dc:creator>Leonid Mamchenkov</dc:creator>
		
		<category><![CDATA[All]]></category>

		<category><![CDATA[Sysadmin]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Desktop]]></category>

		<category><![CDATA[distributions]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[operating systems]]></category>

		<category><![CDATA[server]]></category>

		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://mamchenkov.net/wordpress/?p=11203</guid>
		<description><![CDATA[There is an interesting post at The Open Source Advocate blog - &#8220;Win the desktop, and you will win the server&#8220;.  Tristan Rhodes, the author of the blog, suggests that in order for an operating system to conquer the server market, it should first conquer (or fight reasonable well for) the desktop market.
I have to [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>There is an interesting post at The Open Source Advocate blog - &#8220;<a href="http://useopensource.blogspot.com/2008/02/win-desktop-and-you-will-win-server.html" onclick="javascript:urchinTracker ('/outbound/article/useopensource.blogspot.com');">Win the desktop, and you will win the server</a>&#8220;.  Tristan Rhodes, the author of the blog, suggests that in order for an operating system to conquer the server market, it should first conquer (or fight reasonable well for) the desktop market.</p>
<p>I have to admit that when I just read the article, I felt almost like agreeing.  But something kept buzzing me from the inside, so I kept that tab open for a few days.  Now that the post was processed at the back of my brain, I have to say that I don&#8217;t agree with that point.</p>
<p>There is, of course, a correlation.  Once sysadmins start using something they like on the desktop, it&#8217;s pretty soon that they try to see how well that thing handles server tasks.  So, of course, people using Windows on the desktop were checking out how to make a server out of it.</p>
<p>But.  I don&#8217;t think that conquering the desktop is the only way to the server.  Not at all. There are more ways, I somehow feel that those other ways are actually simpler.  For one thing, Linux has never been particularly good with desktops.  However, only the stubbornest and the most ignorant of sysadmins will argue against Linux server superpowers.</p>
<p>Furthermore, real sysadmins (which are, of course, in the minority) clearly understand the differences between a desktop computer and a server.  What&#8217;s good for one might not be so good for the other.</p>
<p>And then there is this whole &#8220;enterprise&#8221; issue.  Big companies (aka &#8220;enterprises&#8221;) aren&#8217;t about desktops.  They are about support services, customizations, and having someone to blame.  If there is someone on the other end of the twisted phone cord, they&#8217;ll grab him with both hands.</p>
<p>The historical examples in the Open Source Advocate&#8217;s blog post might be related or they might not.  The times were different anyway.  But even if these examples are related, they aren&#8217;t as heavy as they seem.  There are many factors to consider (prices, distrubution, documentation, hardware requirements, etc).</p>
<p>What do you guys think?</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://mamchenkov.net/wordpress/2008/05/20/how-far-is-a-desktop-from-a-server/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Fedora 9 : before and after</title>
		<link>http://mamchenkov.net/wordpress/2008/05/19/fedora-9-before-and-after/</link>
		<comments>http://mamchenkov.net/wordpress/2008/05/19/fedora-9-before-and-after/#comments</comments>
		<pubDate>Mon, 19 May 2008 16:52:21 +0000</pubDate>
		<dc:creator>Leonid Mamchenkov</dc:creator>
		
		<category><![CDATA[All]]></category>

		<category><![CDATA[Sysadmin]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[experiences]]></category>

		<category><![CDATA[fedora]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[open-source]]></category>

		<category><![CDATA[releases]]></category>

		<guid isPermaLink="false">http://mamchenkov.net/wordpress/?p=11199</guid>
		<description><![CDATA[I have recently upgraded my laptop to Fedora 9.  Those of you who come often to this blog or follow me on Twitter, know that I&#8217;ve been waiting for this release like for nothing else.  Two technologies in particular - KDE 4 and Firefox 3 - were the center of my focus.  Of course, I [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>I have recently upgraded my laptop to <a href="http://fedoraproject.org/" onclick="javascript:urchinTracker ('/outbound/article/fedoraproject.org');">Fedora 9</a>.  Those of you who come often to this blog or follow me on Twitter, know that I&#8217;ve been waiting for this release like for nothing else.  Two technologies in particular - <acronym title="K Desktop Environment">KDE</acronym> 4 and Firefox 3 - were the center of my focus.  Of course, I could updated them separately and tried them earlier, but I wanted to follow the path of the distribution.</p>
<p>The upgrade itself went fast and easy.  But starting with the first reboot, I was getting more and more negative towards the new release.  While booting for the first time, I got two messages, notifying me that wpa_suppclient service and CUPS daemon failed to start.  While I don&#8217;t care much about printers, wireless connectivity is vital for me, so that was a bit discouraging.</p>
<p>The login screen.  It was changed quite a bit, and I didn&#8217;t like it much.  Logging in.  Somehow I ended up in Gnome, even though my desktop environment was <acronym title="K Desktop Environment">KDE</acronym> for the last 7 years or so.  Logout.  Switch into long awaited <acronym title="K Desktop Environment">KDE</acronym> 4.  From the first look it was beautiful, even though not quite for my tastes.  Surely, I&#8217;d need to reconfigure and change a few things. Not a problem for me at all - even more fun so.</p>
<p><span id="more-11199"></span></p>
<p>But.  After about 5 minutes I started to realize that <acronym title="K Desktop Environment">KDE</acronym> 4 was very fresh.  Very unstable.  And very buggy.  As I said, I know my ways around it and I am pretty comfortable with using options, Kcontrol, and even configuration files.  But despite all my efforts, it was simply unusable.  The panel crashed a few times, finally in such a way that there was no way to bring it back even with logout.  Then, icons on my desktop kept loosing their order and locations.  I&#8217;d go through the boring process of sorting them around and then the would randomize themselves upon the next login.  Icon properties were weird, and quite a few features were missing, especially from my mostly used <acronym title="K Desktop Environment">KDE</acronym> application - konsole.</p>
<p>Still fighting with <acronym title="K Desktop Environment">KDE</acronym>, I was after some help, so I fired my next most awaited application - Firefox 3.  This was a better experience, but still not as shiny and dreamy as I expected it to be.  Out of all extensions that I have installed, more than a half didn&#8217;t work.  The ones that worked were mostly for bells and whistles, but I got really worried there for a bit when the tools that I am used to weren&#8217;t there any more.  In the meantime, the <acronym title="K Desktop Environment">KDE</acronym> still refused to pleasure me.</p>
<p>To cut a long story short, I decided to temporarily switch to Gnome.  I used to be a fan of Gnome back in the pre-<acronym title="K Desktop Environment">KDE</acronym> 3 age, but since then I haven&#8217;t used it much.  <acronym title="K Desktop Environment">KDE</acronym> was perfect for me.  I loved it.  I didn&#8217;t want to go back to Gnome.  I wanted <acronym title="K Desktop Environment">KDE</acronym> 4.  But I&#8217;ll have to wait.</p>
<p>Then, I started righting this really long post and I was so negative about everything that I decided to postpone it for a few days.  And now I am rewriting it, and I have to say that Fedora 9 upgrade was one of those things for me that happen for the better.</p>
<p>Gnome turned out to be a really nice desktop environment.  I really really like it now. It&#8217;s not love yet, but we&#8217;ll grow into each other.  That is if <acronym title="K Desktop Environment">KDE</acronym> 4 won&#8217;t get its act together fast.  Oh, and Gnome has a share of its, sometimes very weird, problems, but it is very usable, fast, and intuitive.   As for Firefox 3, I spent half a day going through available addons and I managed to find enough of substitutes to my old tools.  Some are better, some are not.  Some are my old tools, but in un-official alpha and beta versions.  But overall, it looks like I will survive.</p>
<p>Back to the Fedora 9 release.  I don&#8217;t remember what exactly went wrong back when Red Hat Linux 7 was released, but I remember that there were a lot of issues.  My memory has a strong association of Red Hat 7 and Linux distribution release gone wrong.  I think now that association is going to be updated with Fedora 9 experience.</p>
<p>Breaking the much used functionality is bad.  Taking away tools people use is bad.  Releasing unstable software without proper fall-back (and I don&#8217;t consider Gnome to be a proper fall-back for <acronym title="K Desktop Environment">KDE</acronym>) is bad.  I think that both <acronym title="K Desktop Environment">KDE</acronym> 4 and Firefox 3 should have been offered as options, not as defaults.</p>
<p>Then, only a day after Fedora 9 was released, I had to download 140 packages of updates.  That wasn&#8217;t a big problem, but it was yet another sign of how shaky things are.  The updates fixed the CUPS issue, but there was also a new kernel update, which broke GRUB and rendered my laptop unbootable.  Gladly, I had the <acronym title="Digital Video Disc">DVD</acronym> nearby and I still remember how to use the rescue mode.  But it&#8217;s not how things are supposed to be.</p>
<p>As I said, I am finally glad that I got a chance to give a look at other options and use different tools, but I am very disappointed with this release.  Things like this make advocating open source and Fedora Linux harder.  Things like this undermine users&#8217; trust in the distribution.  They should not happen again.</p>
<p>P.S.: I am by far not the only one having issues with this release.  Check comments to the <a href="http://news.slashdot.org/article.pl?sid=08/05/13/165239&amp;from=rss" onclick="javascript:urchinTracker ('/outbound/article/news.slashdot.org');">Slashdot announcements</a> or <a href="http://blogsearch.google.com/blogsearch?q=fedora%209" onclick="javascript:urchinTracker ('/outbound/article/blogsearch.google.com');">posts on the blogosphere</a>.</p>
<p>P.P.S:  If you are a Fedora user who were planning to upgrade, I suggest to wait until Fedora 10 or at least for a few weeks until updates will fix the most obvous issues.</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://mamchenkov.net/wordpress/2008/05/19/fedora-9-before-and-after/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
