<?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>SystemsThoughts</title>
	<atom:link href="http://www.systemsthoughts.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.systemsthoughts.com</link>
	<description>Lean Startup, Software Testing and Python</description>
	<lastBuildDate>Mon, 20 May 2013 08:09:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Why you should learn some JavaScript as a test developer</title>
		<link>http://www.systemsthoughts.com/2013/why-you-should-learn-some-angularjs-as-a-test-developer/</link>
		<comments>http://www.systemsthoughts.com/2013/why-you-should-learn-some-angularjs-as-a-test-developer/#comments</comments>
		<pubDate>Sun, 12 May 2013 12:47:56 +0000</pubDate>
		<dc:creator>Zhe</dc:creator>
				<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.systemsthoughts.com/?p=177</guid>
		<description><![CDATA[As a test developer, I love making tools, and I like to share my tools. It is always great to hear about how cool your tools are or how much their lives have been made easier. Most of my tools are written in Python. Simply because it is quick to prototype and there are lots of libraries around Internet.  But it has changed a bit after I started writing more JavaScript code in my current assignment. There are lots of [...]]]></description>
				<content:encoded><![CDATA[<p>As a test developer, I love making tools, and I like to share my tools. It is always great to hear about how cool your tools are or how much their lives have been made easier.</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/oWHUrv25BcE" frameborder="0" allowfullscreen></iframe></p>
<p>Most of my tools are written in Python. Simply because it is quick to prototype and there are lots of libraries around Internet.  But it has changed a bit after I started writing more JavaScript code in my current assignment. There are lots of new, exciting things happening around JS world now. As for me, I am really happy that I found AngularJS.</p>
<p>In the past it wasn&#8217;t easy to distribute my tools, one reason is that not everyone has Python on their machine. It is totally different with JS. If you have a browser, you can run my code. It can be remote on a server, it can also be in a local folder.</p>
<p><img class="alignleft" alt="" src="https://raw.github.com/zheli/web-csv-plotter/master/screenshot.PNG" width="320" />It is also super simple to have nice-looking UI in JS, because HTML/CSS is much easier to tweak. I am not saying I don&#8217;t like command-line interface, just sometimes it is more intuitive to have a cool graph. There are also many ready framework you can grab from the internet, including one of my favorite Twitter Bootstrap. Not to mention countless JS plugins to show off/manipulate your data.</p>
<p><a href="http://i1.wp.com/www.systemsthoughts.com/wp-content/uploads/2013/05/angularjs.png"><img src="http://i1.wp.com/www.systemsthoughts.com/wp-content/uploads/2013/05/angularjs.png?resize=300%2C207" alt="angularjs" class="alignright size-medium wp-image-189" data-recalc-dims="1" /></a>With all that being said, if you are a craftsman in heart like me, you should definitely try out some JS framework yourself too. You will not be disappointed:)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.systemsthoughts.com/2013/why-you-should-learn-some-angularjs-as-a-test-developer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setup Postgresql, Python2.7 and Django using virtualenv on CentOS 6.3</title>
		<link>http://www.systemsthoughts.com/2013/setup-postgresql-python2-7-and-django-using-virtualenv-on-centos-6-3/</link>
		<comments>http://www.systemsthoughts.com/2013/setup-postgresql-python2-7-and-django-using-virtualenv-on-centos-6-3/#comments</comments>
		<pubDate>Mon, 25 Mar 2013 14:52:29 +0000</pubDate>
		<dc:creator>Zhe</dc:creator>
				<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.systemsthoughts.com/?p=163</guid>
		<description><![CDATA[Setup server is always a pain in the ass (if you don&#8217;t know chef or other similar tools). It took me two days to get my django app running on the VPS. My problem is there are a lot of tutorials on the website, but few of them cover everything. Also the tutorials are not always working for me, there are many weird problems that are very difficult to Google. So I made some notes for myself, hope it can [...]]]></description>
				<content:encoded><![CDATA[<p>Setup server is always a pain in the ass (if you don&#8217;t know <a href="http://www.opscode.com/chef/">chef</a> or other similar tools). It took me two days to get my django app running on the VPS. My problem is there are a lot of tutorials on the website, but few of them cover everything. Also the tutorials are not always working for me, there are many weird problems that are very difficult to Google. So I made some notes for myself, hope it can help you as well.</p>
<h3>Postgresql 9.2 on CentOS 6.3</h3>
<ul>
<li>Order of entries in pg_hba.conf is important. Always add the new user to the top of the list (that means before host all all).</li>
<li>If localhost gives you ident error, try connect using -h 127.0.0.1. Might be your VPS is using ipv6 address for localhost.</li>
<li>initdb with UTF8 support when your database is still empty.</li>
</ul>
<h3>Deploy Django using Apache + WSGI + Virtualenv</h3>
<p>It seems simple from beginning because I have configured it with non-daemon mode before. This time I try to make it run in daemon mode. The tricky thing is there are many reasons for you to end up with a &#8220;ImportError: No module named django.core.wsgi&#8221; error. Here is a list you can go through to figure it out:</p>
<ul>
<li>did you install mod_wsgi.so using yum? The module in yum is only for Python 2.6 so you have to compile your own mod_wsgi.so file.</li>
<li>run &#8220;ldd mod_wsgi.so&#8221; to check if libpython.2.7.so.1 shows up. if not, you have to recompile python2.7 and mod_wsgi with &#8211;enable-shared option.</li>
<li>if it still gets that error, check the permission setting for your virtualenv folder, is the user running daemon has enough privilege?</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.systemsthoughts.com/2013/setup-postgresql-python2-7-and-django-using-virtualenv-on-centos-6-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Template tag &#8220;follow_all_url&#8221; failed to render unfollow links in django-activity-stream</title>
		<link>http://www.systemsthoughts.com/2012/template-tag-follow_all_url-failed-to-render-unfollow-links-in-django-activity-stream/</link>
		<comments>http://www.systemsthoughts.com/2012/template-tag-follow_all_url-failed-to-render-unfollow-links-in-django-activity-stream/#comments</comments>
		<pubDate>Sun, 23 Dec 2012 09:32:37 +0000</pubDate>
		<dc:creator>Zhe</dc:creator>
				<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.systemsthoughts.com/?p=143</guid>
		<description><![CDATA[I have been trying django-activity-stream for weeks now and it is a great Django app. Everything worked great until today, when the tag &#8220;follow_all_url&#8221; stops rendering unfollow urls. I tracked back the problem back to a function in class DisplayActivityFollowUrl in activity_tags.py file: def render(self, context): actor_instance = self.actor.resolve(context) content_type = ContentType.objects.get_for_model(actor_instance).pk if Follow.objects.is_following(context.get('user'), actor_instance): return reverse('actstream_unfollow', kwargs={ 'content_type_id': content_type, 'object_id': actor_instance.pk}) if self.actor_only: return reverse('actstream_follow', kwargs={ 'content_type_id': content_type, 'object_id': actor_instance.pk}) return reverse('actstream_follow_all', kwargs={ 'content_type_id': content_type, 'object_id': actor_instance.pk}) context.get(&#8216;user&#8217;) is supposed [...]]]></description>
				<content:encoded><![CDATA[<p>I have been trying django-activity-stream for weeks now and it is a great Django app. Everything worked great until today, when the tag &#8220;<strong>follow_all_url</strong>&#8221; stops rendering unfollow urls.</p>
<p>I tracked back the problem back to a function in class <strong>DisplayActivityFollowUrl</strong> in <strong>activity_tags</strong>.py file:</p>
<pre>
def render(self, context):
    actor_instance = self.actor.resolve(context)
    content_type = ContentType.objects.get_for_model(actor_instance).pk
    if Follow.objects.is_following(context.get('user'), actor_instance):
        return reverse('actstream_unfollow', kwargs={
            'content_type_id': content_type, 'object_id': actor_instance.pk})
    if self.actor_only:
        return reverse('actstream_follow', kwargs={
            'content_type_id': content_type, 'object_id': actor_instance.pk})
    return reverse('actstream_follow_all', kwargs={
        'content_type_id': content_type, 'object_id': actor_instance.pk})
</pre>
<p><strong>context.get(&#8216;user&#8217;)</strong> is supposed to get the request.user, but instead it gets nothing. A <a href="http://stackoverflow.com/questions/4086076/how-to-get-request-user-in-a-templatetag" target="_blank">similar question</a> on stackflow indicates that a setting might be missing, which is not the case but I think it is something wrong with how I created the view. I use class-based generic view and here is how my <strong>get_context_data</strong>() looks like:</p>
<pre>
def get_context_data(self, **kwargs):
	ctx = kwargs
	ctx['users'] = User.objects.all()
	return super(StreamView, self).get_context_data(**ctx)
</pre>
<p>Doesn&#8217;t look like it is the problem:(</p>
<p>I remember at first I used activity-stream with <strong>pinax-project-account</strong> project, and it worked with <strong>pinax-user-account</strong> app which also does something with the context_processing setting. In this new project I remove the user-account app and switched it with <strong>django-social-auth</strong>, maybe it missed something in my context?</p>
<p>I haven&#8217;t found a solution yet, but I will post the update to the problem here. For now, I think I can temporarily change that line to <strong>context.get(&#8216;request&#8217;).user</strong> instead.</p>
<p><font color="red"><br />
Update:<br />
It was quite stupid actually, I have an object list in the template called <strong>&#8220;users&#8221;</strong>, so in a for loop each iterated item is called <strong>&#8220;user&#8221;</strong>. Change that to <strong>&#8220;people&#8221;</strong> solved the problem.<br />
</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.systemsthoughts.com/2012/template-tag-follow_all_url-failed-to-render-unfollow-links-in-django-activity-stream/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bad UX from Prismatic</title>
		<link>http://www.systemsthoughts.com/2012/bad-ux-from-prismatic/</link>
		<comments>http://www.systemsthoughts.com/2012/bad-ux-from-prismatic/#comments</comments>
		<pubDate>Mon, 10 Dec 2012 13:16:51 +0000</pubDate>
		<dc:creator>Zhe</dc:creator>
				<category><![CDATA[Complaints]]></category>

		<guid isPermaLink="false">http://www.systemsthoughts.com/?p=138</guid>
		<description><![CDATA[I was just like many others who signed up on Prismatic last week after read this post on TechCrunch. While I enjoyed some of the articles from it (I guess AI is still learning about my interests), there is one thing disturbs me when I checked my twitter today. All of the articles I checked on Prismatic app were shared on my Twitter (and probably also could be on Facebook, but I didn&#8217;t grant them:)), instead of what I wanted [...]]]></description>
				<content:encoded><![CDATA[<p><img class="size-medium wp-image-139 alignleft" title="twitter" src="http://i0.wp.com/www.systemsthoughts.com/wp-content/uploads/2012/12/twitter.png?resize=277%2C300" alt="" data-recalc-dims="1" /></p>
<p>I was just like many others who signed up on Prismatic last week after read <a href="http://techcrunch.com/2012/12/05/prismatic/" target="_blank">this post on TechCrunch</a>. While I enjoyed some of the articles from it (I guess AI is still learning about my interests), there is one thing disturbs me when I checked my twitter today.</p>
<p>All of the articles I checked on Prismatic app were shared on my Twitter (and probably also could be on Facebook, but I didn&#8217;t grant them:)), instead of what I wanted to share. Unfortunately later I figured out how to turn off sharing on Prismatic&#8217;s website, but it is still very annoying. My friends must think my account was hijacked and turned into a spamming machine&#8230;</p>
<p>P.S. I will remove all those tweets later so you probably will not see them now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.systemsthoughts.com/2012/bad-ux-from-prismatic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Better Logging Support in TestComplete</title>
		<link>http://www.systemsthoughts.com/2012/better-logging-support-in-testcomplete/</link>
		<comments>http://www.systemsthoughts.com/2012/better-logging-support-in-testcomplete/#comments</comments>
		<pubDate>Thu, 08 Nov 2012 14:29:11 +0000</pubDate>
		<dc:creator>Zhe</dc:creator>
				<category><![CDATA[Automated Test]]></category>

		<guid isPermaLink="false">http://www.systemsthoughts.com/?p=119</guid>
		<description><![CDATA[I have been using TestComplete since May. The test suite has been running since June. Not sure if I used TC in the right way. Now it just acts as a giant Java interpreter to execute all the code in JScript  (a fairly slow one in my opinion). I haven&#8217;t used too many of TC&#8217;s functions. Anyway if you have to use script test case, you need to deal with logging. TestComplete offers four different levels: event, info, warning, error. Here [...]]]></description>
				<content:encoded><![CDATA[<p>I have been using TestComplete since May. The test suite has been running since June. Not sure if I used TC in the right way. Now it just acts as a giant Java interpreter to execute all the code in JScript  (a fairly slow one in my opinion). I haven&#8217;t used too many of TC&#8217;s functions.</p>
<p>Anyway if you have to use script test case, you need to deal with logging. TestComplete offers four different levels: event, info, warning, error. Here is my code in my common_function.js file, which stores most of the generic functions:</p>
<pre>
function log_msg()
{
var msg = join_log_args(arguments);
Indicator.PushText("[msg]: " + msg);
Log.Message(msg);
}

function log_event()
{
var msg = join_log_args(arguments);
Indicator.PushText("[event]: " + msg);
Log.Event(msg);
}

function log_warn()
{
var msg = join_log_args(arguments);
Indicator.PushText("[warn]: " + msg);
Log.Warning(msg);
}

function log_error()
{
var msg = join_log_args(arguments);
Indicator.PushText("[error]: " + msg);
Log.Error(msg);
}

function log_debug()
{
  if(vg_debug) //if debug is on
  {  
    var msg = join_log_args(arguments); 
    var cl_priority = 200; //low priority
    Indicator.PushText("[debug]: " + msg);
    Log.Message(msg, "", cl_priority);
  }
}

function join_log_args(args)
{
  var log_string = "";
  for (var i=0; i &lt; args.length; i++)
  {
    log_string = log_string + args[i] + " ";
  }
  return log_string;
}
</pre>
<p>So if you want to log something, you just need to use:</p>
<pre>log_error(log_prefix, "this is an error, error code:", error_code);</pre>
<p>and it will automatically join all the input parameters together.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.systemsthoughts.com/2012/better-logging-support-in-testcomplete/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Project: Bring Umbrella</title>
		<link>http://www.systemsthoughts.com/2012/new-project-bring-umbrella/</link>
		<comments>http://www.systemsthoughts.com/2012/new-project-bring-umbrella/#comments</comments>
		<pubDate>Mon, 05 Nov 2012 12:31:48 +0000</pubDate>
		<dc:creator>Zhe</dc:creator>
				<category><![CDATA[New Project]]></category>

		<guid isPermaLink="false">http://www.systemsthoughts.com/?p=111</guid>
		<description><![CDATA[Just started a new project called Bring Umbrella. One reason is that I want to polish my Django skills, another reason is that I want to practice lean startup concepts  with a small project. The Idea I got the idea when I was caught in the rain without an umbrella. For many times I wish there could be a service to remind me bringing the umbrella before I go out in the morning. If I ask myself the same questions I posted in [...]]]></description>
				<content:encoded><![CDATA[<p>Just started a new project called Bring Umbrella. One reason is that I want to polish my Django skills, another reason is that I want to practice lean startup concepts  with a small project.</p>
<h3>The Idea</h3>
<p>I got the idea when I was caught in the rain without an umbrella. For many times I wish there could be a service to remind me bringing the umbrella before I go out in the morning.</p>
<p>If I ask myself the same questions I posted in <a href="https://www.facebook.com/groups/itstartupclub/" target="_blank">Göteborg IT Startup Club</a> group, my answer would be:</p>
<ol>
<li>Do you use umbrella on a raining day? <span style="color: #ff0000;">Yes.</span></li>
<li>Do you check the weather report before going out/to work? <span style="color: #ff0000;">Sometimes.</span></li>
<li>Do you use your phone to check weather report or reading emails right after getting up in the morning? <span style="color: #ff0000;">Yes.</span></li>
</ol>
<p><span id="more-111"></span></p>
<p>Sometimes it just not enough to look out from the window, especially in a coast city: it can be sunny and rainy on the same day.</p>
<h3>The Goal</h3>
<p>I would like my service to show up in your daily life as less as possible. Weather has nothing to do with me unless it&#8217;s affecting my personal life. I don&#8217;t care if it is sunny or gloomy, as long as the temperature doesn&#8217;t change dramatically. However, I really would like to know if it is going to rain in the afternoon when I am on my way back home from work.</p>
<p>Another thing is that the weather information should be pushed to users, not pulled by users. One should never check the weather like checking your stock prices.</p>
<h3>Interested?</h3>
<p>I have built a MVP for this concept (absolute MVP, you will know when you start to use it) and you can leave a message if you would like to try it.</p>
<div class="wp-caption aligncenter" style="width: 250px"><a title="It was a sunny rainy day... by Joostem, on Flickr" href="http://www.flickr.com/photos/joostem/5038506989/"><img src="http://i1.wp.com/farm5.staticflickr.com/4088/5038506989_6956c669d1.jpg?resize=240%2C240" alt="" data-recalc-dims="1" /></a><p class="wp-caption-text">From Joostem CC BY-ND 2.0</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.systemsthoughts.com/2012/new-project-bring-umbrella/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Why you should never build your own test framework at work</title>
		<link>http://www.systemsthoughts.com/2011/why-you-should-never-build-your-own-test-framework-at-work/</link>
		<comments>http://www.systemsthoughts.com/2011/why-you-should-never-build-your-own-test-framework-at-work/#comments</comments>
		<pubDate>Sat, 09 Jul 2011 10:54:43 +0000</pubDate>
		<dc:creator>Zhe</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[experience]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://www.systemsthoughts.com/?p=30</guid>
		<description><![CDATA[Last week I moved parts of home-brewed automated test framework to the robot framework. It went smoother than I thought and the new framework offered more functionalities that I was hoping to implement but didn’t for the sake of time. I wonder why I chose to write my own framework in the first place, since Robot framework came out few years ago. (probably because that test framework started as an experiment at work and was in “trial” ever since) It reminds me [...]]]></description>
				<content:encoded><![CDATA[<p>Last week I moved parts of home-brewed automated test framework to <a href="http://code.google.com/p/robotframework/">the robot framework</a>. It went smoother than I thought and the new framework offered more functionalities that I was hoping to implement but didn’t for the sake of time. I wonder why I chose to write my own framework in the first place, since Robot framework came out few years ago. (probably because that test framework started as an experiment at work and was in “trial” ever since)</p>
<p><a href="http://i2.wp.com/www.systemsthoughts.com/wp-content/uploads/2011/07/Homebrew_System_2_Open.jpg"><img class="alignleft size-medium wp-image-63" title="Homebrew_System_2_Open" src="http://i2.wp.com/www.systemsthoughts.com/wp-content/uploads/2011/07/Homebrew_System_2_Open.jpg?resize=300%2C250" alt="" data-recalc-dims="1" /></a>It reminds me a tip in <a href="http://pragprog.com/book/prj/ship-it" target="_blank">&#8220;Ship It! A Practical Guide to Successful Software Projects&#8221;</a>: using an “off the shelf” test framework. To most of the people (including me), it seems unnecessary in the beginning to learn to use a new framework just for a simple task. If I can finish it in a few lines of code, why bother spending days pick up something from start? But what people fail to see is automated test grows. A test suite will stay with the project forever and be executed after every change (that’s why you automated it, right?). As software changes, new functionalities need to be added. A few lines become hundreds or thousands lines of code. If you are lucky like me who created their own framework, you will find most of time you spend are not adding new test cases or data into the suite, but maintaining the framework. Since the framework runs as much as the test cases, or even more, there will be plenty of bugs and issues rising up to the surface. But this wouldn’t happen if you implement your tests with well-known test framework, since there are more people maintaining and it comes far more comprehensive from start.</p>
<p>What if there is currently no frameworks that fit your requirement? The best solution is to, still, choose a popular framework and start adding the missing function to it. There are possibly other people on the planet who would like to have the same function and will use or even improve it. So you spend the same amount of time implementing, but much less time maintaining. The employer should also support this because it saves resource and money.</p>
<p>The best example is Google chromium project. As a company famous of their re-inventing wheels, they are also adopting numbers of open-source tools and frameworks. In chromium they use buildbot for automated build and test instead of making their own framework. So next time think about if you can beat the whole chromium QA team before choosing your own framework over the “off the shelf” stuff:P</p>
]]></content:encoded>
			<wfw:commentRss>http://www.systemsthoughts.com/2011/why-you-should-never-build-your-own-test-framework-at-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A simple SOAP mockup service in Python</title>
		<link>http://www.systemsthoughts.com/2011/a-simple-soap-mockup-service-in-python/</link>
		<comments>http://www.systemsthoughts.com/2011/a-simple-soap-mockup-service-in-python/#comments</comments>
		<pubDate>Tue, 31 May 2011 10:37:16 +0000</pubDate>
		<dc:creator>Zhe</dc:creator>
				<category><![CDATA[Automated Test]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://www.systemsthoughts.com/index2.php/?p=12</guid>
		<description><![CDATA[I was dealing with SOAP tests a lot last month, and WireShark is little too much for simply checking a SOAP request. So I made a little script to show (not capture) the package content. It might be helpful if one needs automated SOAP testing as well. It&#8217;s very tiny (26 lines if use without Gzip) and doesn&#8217;t depend on any other modules. Source code can be found at https://bitbucket.org/zheli/soap_echo_server/. Comments are welcome here:)]]></description>
				<content:encoded><![CDATA[<p>I was dealing with SOAP tests a lot last month, and WireShark is little too much for simply checking a SOAP request. So I made a little script to show (not capture) the package content. It might be helpful if one needs automated SOAP testing as well. It&#8217;s very tiny (26 lines if use without Gzip) and doesn&#8217;t depend on any other modules.</p>
<p>Source code can be found at <a href="https://bitbucket.org/zheli/soap_echo_server/">https://bitbucket.org/zheli/soap_echo_server/</a>. Comments are welcome here:)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.systemsthoughts.com/2011/a-simple-soap-mockup-service-in-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello world!</title>
		<link>http://www.systemsthoughts.com/2011/hello-world/</link>
		<comments>http://www.systemsthoughts.com/2011/hello-world/#comments</comments>
		<pubDate>Tue, 31 May 2011 08:51:05 +0000</pubDate>
		<dc:creator>Zhe</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.systemsthoughts.com/?p=1</guid>
		<description><![CDATA[This my first post. All English articles will be moved from http://blog.systemsthoughts.com to here in the future.]]></description>
				<content:encoded><![CDATA[<p>This my first post. All English articles will be moved from <a href="http://blog.systemsthoughts.com">http://blog.systemsthoughts.com</a> to here in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.systemsthoughts.com/2011/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  www.systemsthoughts.com/feed/ ) in 0.61184 seconds, on May 25th, 2013 at 8:41 pm UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on May 25th, 2013 at 9:41 pm UTC -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Quick Cache Is Fully Functional :-) ... A Quick Cache file was just served for (  www.systemsthoughts.com/feed/ ) in 0.00027 seconds, on May 25th, 2013 at 8:44 pm UTC. -->