<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>sync;sync &#187; CMS</title>
	<atom:link href="http://andy.sinaptix.com/category/codes/cms/feed/" rel="self" type="application/rss+xml" />
	<link>http://andy.sinaptix.com</link>
	<description>flush the garbage</description>
	<lastBuildDate>Tue, 27 Oct 2009 09:44:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Social Network In Techno Tongue</title>
		<link>http://andy.sinaptix.com/2007/07/15/social-network-in-techno-tongue/</link>
		<comments>http://andy.sinaptix.com/2007/07/15/social-network-in-techno-tongue/#comments</comments>
		<pubDate>Sat, 14 Jul 2007 18:43:56 +0000</pubDate>
		<dc:creator>Andy Awidarto</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[On Codes]]></category>

		<guid isPermaLink="false">http://andy.sinaptix.com/2007/07/15/social-network-in-techno-tongue/</guid>
		<description><![CDATA[I&#8217;ve been working on a social networking site for a while now, and here&#8217;s some basic concept I&#8217;ve learn from he process ( warning : These are based on my experience, maybe different with you, but what do i care&#8230; ) :
Basic Entity of a Social Network Site :

User ( could be Person or anything [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on a social networking site for a while now, and here&#8217;s some basic concept I&#8217;ve learn from he process ( warning : These are based on my experience, maybe different with you, but what do i care&#8230; ) :</p>
<p>Basic Entity of a Social Network Site :</p>
<ol>
<li>User ( could be Person or anything else, think about social network for your pet )</li>
<li>Message</li>
<li>File</li>
</ol>
<p>Expecting something more ? well, I tell you, nothing more than these I can tell you about <img src='http://andy.sinaptix.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Anything else is built on top of those entities as extension, or simply connecting those three, in meaningful way of course.</p>
<p>Example :</p>
<ul>
<li>User connected to other User as friend</li>
<li>User send Message to other User, to her / his friends, or simply make it available to public</li>
<li>A File attached to a Message sent from one User to another.</li>
<li>User make a mark ( a tag , for you pundits ) to a File, then send Message to other user about it.</li>
<li>User make comment on other User&#8217;s Message with a File attached to it, a comment itself is another form of Message</li>
</ul>
<p>Think about it, we can create so many other kind of  relationship between those three objects, tangle it, twist it, of course it has to be in meaningful way, and then you got your social networking site, as simple as that, in a geek point of view.</p>
<p>So far, with all these basic knowledge about those three basic entities, I have abandon one CMS system ( Drupal, sorry for all you Drupal fans out there&#8230; ) because I then realize that generic CMS can only accomodate the relationship the way it want me to, not the way I want it to, well, maybe because I have insufficient knowledge for the CMS, or maybe I just mess around too much with it, I don&#8217;t know&#8230; All I know is that I can&#8217;t get scalability and speed by just plugging around all different add-on modules created by all different people and way of thinking and then try to configure smoothly as if it was all come from same people.  It was simply hard to imagine how to scale up, if early in development phase you already have at least 40 tables in the default database ( yaiksss&#8230; ), not to mention the way add-on, modules, and hooks works&#8230; with more than 20 modules installed, a simple process like saving a node will take significant time since the system will have to enquire which hook implementation should be triggered, and amny other part of the system need to be triggered to keep everything in sync.</p>
<p>I tell you, it was like fishing with a shot gun&#8230; really, you are on boat, aiming for a fish with your shot gun, fire up, and then &#8230; the thundering sound will drive away the fish , along with everything else that can move, and the shot gun kick back will send you off the boat on the other direction <img src='http://andy.sinaptix.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  &#8230; not good, not good&#8230;</p>
<p>I move on rewriting the whole thing, using CodeIgniter, a sleek simple MVC based PHP framework, and so far I get by with only 15 tables in my database to carry all the data required by those 3 basic entities, including all the relationships between them, not a bad setup, as I expect I will end up with less than 20 tables when the site will be launched.</p>
<p>Okay, I admit, I do a great deal of denormalization, because I need speed and less query, the wisdom came from my mobile content days&#8230; And I also feel sick about table joins, so I&#8217;d rather make the DBAs and business application programmers disappointed, than make my life less joyful, couldn&#8217;t care less about their feelings anyway, if you ask me&#8230; After all, theory is good, but when you have to face real world, all you can think of is how to get there in simplest, fastest way possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://andy.sinaptix.com/2007/07/15/social-network-in-techno-tongue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Joy ( and Horror ) of CMS</title>
		<link>http://andy.sinaptix.com/2007/07/06/the-joy-and-horror-of-cms/</link>
		<comments>http://andy.sinaptix.com/2007/07/06/the-joy-and-horror-of-cms/#comments</comments>
		<pubDate>Thu, 05 Jul 2007 18:32:22 +0000</pubDate>
		<dc:creator>Andy Awidarto</dc:creator>
				<category><![CDATA[CMS]]></category>

		<guid isPermaLink="false">http://andy.sinaptix.com/2007/07/06/the-joy-and-horror-of-cms/</guid>
		<description><![CDATA[After several times dealing with major open source CMS ( Mambo, Joomla, Drupal, WordPress ), I have developed certain wisdom over the matter in a holistic ( pvuwaah !!  ) ) approach.
Well, NOT&#8230;  haha
Okay, seriously&#8230; in my point of view now, a CMS is a rigid blob of code, needed to be hacked, [...]]]></description>
			<content:encoded><![CDATA[<p>After several times dealing with major open source CMS ( Mambo, Joomla, Drupal, WordPress ), I have developed certain wisdom over the matter in a holistic ( pvuwaah !! <img src='http://andy.sinaptix.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) ) approach.</p>
<p>Well, NOT&#8230;  haha</p>
<p>Okay, seriously&#8230; in my point of view now, a CMS is a rigid blob of code, needed to be hacked, tweaked, whipped hard like a mule, just to get it working the way you want it to, that is manage your content&#8230;</p>
<p>Yes, true that they are designed to ease the development process, especially when you don&#8217;t have that much resources around. A web designer could use Joomla for example , to have a dynamic website up and running in matter of days from scratch, but that&#8217;s just a plain good website taking its content from database, plus some some plugins and add on stuck all over it just to get client eat the eye candy happily&#8230;</p>
<p>The fact is, after the final payment, the designer going home happy, while the horror for the client has just began &#8230; CMS usually designed to be general purpose, therefore many things are just unnecessary bloat&#8230;  to make it flexible, the developer usually compromise on many thing, like deliberately unoptimized query&#8230; why it&#8217;s not optimized ? because it is necessary to be unoptimized&#8230; otherwise no way to get things done, not necessarily done gracefully, but just done. period.</p>
<p>My latest experience is with Drupal&#8230; a CMS with great review, popularity, and a horde of fanatical fans&#8230; how am I doing with it ? I tell you, my first impression is great, it&#8217;s slim ( just under 400kb of source script ) , easy install, no nonsense administrative panel, multiple site with one installation, possibility to make sigle sign on for multiple site, etc.</p>
<p>The &#8220;community plumbing&#8221; motto sounds good, the plug in architecture is nice, user management is just about everything you need&#8230; but then comes the horror&#8230; what i needed to for the site i developed is a full featured media management system, that is a system that is capable to handle video, audio, and image, plus i have to develop certain degree of social network and commerce function on top of it. I tried all available add on , plug &#8216;em in, configure, tweak&#8230; no use&#8230; everything just plain messy, disintegrated, and worst, it force user ( and me as developer ) to think the way Drupal ( or its developer ) think. The ugly magic showed up, weird stuff popping up here an there&#8230; just like you are on a boat in the middle of a lake, where the boat turn out to be a wreck because the shiny paint that looks great on shore , simply dissolve in the water, revealing horrific holes and ugly creaking patches.</p>
<p>okay, enough with the horror story, the thing is that after grinding my brain on moving things in Drupal molasses, I just fed up and swallow the fact that it&#8217;s just only good for prototype, a proof of concept. I wouldn&#8217;t even bother to imagine using it for real production site, which will handle thousands of concurrent user every second. It just won&#8217;t stand it.</p>
<p>Now, back to square one&#8230; well not entirely, i got the whole plan mapped out and all pitfalls and bewares noted from the proto site. All i need to do now is to rewrite the whole thing nearly from scratch, using lower level library and framework. that way I know what&#8217;s under the hood, as I&#8217;m the one writing it, i know the kinks and bends as i created them <img src='http://andy.sinaptix.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So&#8230; don&#8217;t get too excited with CMS, my good friend&#8230; it could only get you that far, but never beyond&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://andy.sinaptix.com/2007/07/06/the-joy-and-horror-of-cms/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
