<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Roland Li</title>
	
	<link>http://www.rolandli.com</link>
	<description>Designer + Coder</description>
	<lastBuildDate>Wed, 30 Sep 2009 17:28:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/RolandLi" type="application/rss+xml" /><feedburner:emailServiceId>RolandLi</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Portfolio Updated</title>
		<link>http://feedproxy.google.com/~r/RolandLi/~3/J5dX7HNGKkQ/portfolio-updated</link>
		<comments>http://www.rolandli.com/2009/09/30/portfolio-updated#comments</comments>
		<pubDate>Wed, 30 Sep 2009 17:28:10 +0000</pubDate>
		<dc:creator>rolandli</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.rolandli.com/?p=566</guid>
		<description><![CDATA[It&#8217;s been a couple busy months. I just added two slides into the Portfolio section. They are from the projects I have been working on recently.  SugarCRM customization and a crawler for SEO purposes.

]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/XZgbJ0t1zOYQ-UjTVkLzgKujeRU/0/da"><img src="http://feedads.g.doubleclick.net/~a/XZgbJ0t1zOYQ-UjTVkLzgKujeRU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/XZgbJ0t1zOYQ-UjTVkLzgKujeRU/1/da"><img src="http://feedads.g.doubleclick.net/~a/XZgbJ0t1zOYQ-UjTVkLzgKujeRU/1/di" border="0" ismap="true"></img></a></p><p>It&#8217;s been a couple busy months. I just added two slides into the <a title="Portfolio" href="http://www.rolandli.com/portfolio">Portfolio</a> section. They are from the projects I have been working on recently.  SugarCRM customization and a crawler for SEO purposes.</p>
<p style="text-align: center;"><a href="http://www.rolandli.com/portfolio"><img class="img_border aligncenter" title="Portfolio Page" src="http://www.rolandli.com/wp-content/uploads/2009/09/portfolio_page.png" alt="Portfolio Page" width="600" height="406" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RolandLi?a=J5dX7HNGKkQ:-PGCTV5UuJU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=J5dX7HNGKkQ:-PGCTV5UuJU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=J5dX7HNGKkQ:-PGCTV5UuJU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=J5dX7HNGKkQ:-PGCTV5UuJU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=J5dX7HNGKkQ:-PGCTV5UuJU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=J5dX7HNGKkQ:-PGCTV5UuJU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=J5dX7HNGKkQ:-PGCTV5UuJU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=J5dX7HNGKkQ:-PGCTV5UuJU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=J5dX7HNGKkQ:-PGCTV5UuJU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=J5dX7HNGKkQ:-PGCTV5UuJU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=J5dX7HNGKkQ:-PGCTV5UuJU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RolandLi/~4/J5dX7HNGKkQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rolandli.com/2009/09/30/portfolio-updated/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.rolandli.com/2009/09/30/portfolio-updated</feedburner:origLink></item>
		<item>
		<title>Fix ZuckerReports Non-Admin Cannot Run Reports</title>
		<link>http://feedproxy.google.com/~r/RolandLi/~3/J4tTX7wahTM/fix-zuckerreports-non-admin-cannot-run-reports</link>
		<comments>http://www.rolandli.com/2009/09/29/fix-zuckerreports-non-admin-cannot-run-reports#comments</comments>
		<pubDate>Wed, 30 Sep 2009 00:20:51 +0000</pubDate>
		<dc:creator>rolandli</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[zuckerreports zucker reports sugarcrm custome fields non-admin non-administrator empty blank results problem]]></category>

		<guid isPermaLink="false">http://www.rolandli.com/?p=551</guid>
		<description><![CDATA[Here is a fix to another problem in ZuckerReports. The symptom is when a non-admin user is trying to run an on-demand report under ZuckerReports, the page just redirect back to the list of available templates without showing any result. But admin users can run them just fine. It turns out the problem is a [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/8QnfzSt_ygL9YgBvTCUCbFDqOSQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/8QnfzSt_ygL9YgBvTCUCbFDqOSQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/8QnfzSt_ygL9YgBvTCUCbFDqOSQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/8QnfzSt_ygL9YgBvTCUCbFDqOSQ/1/di" border="0" ismap="true"></img></a></p><p>Here is a fix to another problem in ZuckerReports. The symptom is when a non-admin user is trying to run an on-demand report under ZuckerReports, the page just redirect back to the list of available templates without showing any result. But admin users can run them just fine. It turns out the problem is a conflict between <a href="http://www.sugarforge.org/projects/zuckerreports/">ZuckerReports</a> and <a href="http://www.sugarforge.org/projects/ce-teams">CE Teams</a>. CE Teams is another nice module that enable simple team-based management of users. You can read more about it on their page.</p>
<p>I haven&#8217;t have time to dig into the codes yet, so the fix is rather primitive and simple, but it works. The problem is that both ZuckerReports and CE Teams have a field called &#8220;team_id&#8221; in the database but they have totally different meanings. So when CE Teams read the info from &#8220;team_id&#8221; in Zucker&#8217;s database table, it acts weird. Admins are not affected since they are above CE Teams&#8217; rules.</p>
<p>The fix:<br />
<span id="more-551"></span></p>
<ol>
<li> Make sure in CE Teams you keep the team &#8220;Everyone&#8221; and add all the users to that group.</li>
<li>Fire up your favorite MySQL management software, most likely phpMyAdmin, and go to your SugarCRM database</li>
<li>Go to table &#8220;<strong>team</strong>&#8221; and record the id for team &#8220;<strong>Everyone</strong>&#8220;. (If you didn&#8217;t delete the default team, the id is &#8220;1&#8243;)</li>
<li>Go to table &#8220;<strong>zucker_listingtemplates</strong>&#8221; and update all their id to team &#8220;<strong>Everyone</strong>&#8217;s&#8221; id.</li>
<li>In order you don&#8217;t have to modify future new templates by hand, change the default value of &#8220;team_id&#8221; to match &#8220;<strong>Everyone&#8217;s</strong>&#8221; id.</li>
<li>Repeat step 4 and 5 for the tables &#8220;<strong>zucker_querytemplates</strong>&#8220;, &#8220;<strong>zucker_reporttemplates</strong>&#8220;, and &#8220;<strong>zucker_wordtemplates</strong>&#8220;.</li>
</ol>
<p>Now everyone in team &#8220;Everyone&#8221; should be able to run all the reports.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RolandLi?a=J4tTX7wahTM:sHLHk9W3iNg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=J4tTX7wahTM:sHLHk9W3iNg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=J4tTX7wahTM:sHLHk9W3iNg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=J4tTX7wahTM:sHLHk9W3iNg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=J4tTX7wahTM:sHLHk9W3iNg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=J4tTX7wahTM:sHLHk9W3iNg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=J4tTX7wahTM:sHLHk9W3iNg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=J4tTX7wahTM:sHLHk9W3iNg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=J4tTX7wahTM:sHLHk9W3iNg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=J4tTX7wahTM:sHLHk9W3iNg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=J4tTX7wahTM:sHLHk9W3iNg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RolandLi/~4/J4tTX7wahTM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rolandli.com/2009/09/29/fix-zuckerreports-non-admin-cannot-run-reports/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.rolandli.com/2009/09/29/fix-zuckerreports-non-admin-cannot-run-reports</feedburner:origLink></item>
		<item>
		<title>Fix ZuckerReport Not Reporting Custom Fields</title>
		<link>http://feedproxy.google.com/~r/RolandLi/~3/1NdgY13OZcQ/fix-zuckerreport-not-reporting-custom-fields</link>
		<comments>http://www.rolandli.com/2009/09/28/fix-zuckerreport-not-reporting-custom-fields#comments</comments>
		<pubDate>Mon, 28 Sep 2009 23:59:58 +0000</pubDate>
		<dc:creator>rolandli</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[sugarcrm zuckerreports bug fix custom fields problem empty]]></category>

		<guid isPermaLink="false">http://www.rolandli.com/?p=540</guid>
		<description><![CDATA[One of my clients had me setup SugarCRM Community Edition for him. SugarCRM Community Edition is quite nice, it&#8217;s open source and free it helps my client to save quite some moeny. However it lacks some advance features such as generating reports. ZuckerReports fills that hole by providing user a way to create multiple types [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/3Z_vfwfYQWo8duGmHygJ-3h29Zc/0/da"><img src="http://feedads.g.doubleclick.net/~a/3Z_vfwfYQWo8duGmHygJ-3h29Zc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/3Z_vfwfYQWo8duGmHygJ-3h29Zc/1/da"><img src="http://feedads.g.doubleclick.net/~a/3Z_vfwfYQWo8duGmHygJ-3h29Zc/1/di" border="0" ismap="true"></img></a></p><p>One of my clients had me setup SugarCRM Community Edition for him. SugarCRM Community Edition is quite nice, it&#8217;s open source and free it helps my client to save quite some moeny. However it lacks some advance features such as generating reports. ZuckerReports fills that hole by providing user a way to create multiple types of reports, kudos to the developers behind it. </p>
<p>But after installing it, I noticed there is a bug while creating a Listing Template, whenever there is a custom field (user-defined field) involved in filtering, the returning result is empty. So I dug into the code and found out that the bugs were simple to fix. Just modify one function in each of these two files:<br />
<span id="more-540"></span></p>
<p><strong>modules/ZuckerListingTemplateOrder/ListingTemplateFilter.php</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> create_where_clause<span style="color: #009900;">&#40;</span><span style="color: #000088;">$parameter_values</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$beanList</span><span style="color: #339933;">,</span> <span style="color: #000088;">$beanFiles</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$beanName</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$beanList</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">module_name</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$beanFile</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$beanFiles</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$beanName</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$beanName</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$beanFile</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$beanFile</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$seed</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000088;">$beanName</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$field_def</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$seed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">field_defs</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">field_name</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$field_def</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;type&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;relate&quot;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$field_def</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;source&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;non-db&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$result</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$field_def</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;table&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$field_def</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;rname&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">field_name</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;_c&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$result</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$seed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">table_name</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;_cstm.&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">field_name</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$result</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$seed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">table_name</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">field_name</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000088;">$result</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comparator</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">value_type</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;parameter&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
			<span style="color: #000088;">$rpl</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ReportParameterLink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$rpl</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">retrieve</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">value</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$result</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$parameter_values</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$rpl</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">name</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$result</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">value</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$result</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p><strong>modules/ZuckerListingTemplateOrder/ListingTemplateOrder.php</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> create_order_clause<span style="color: #009900;">&#40;</span><span style="color: #000088;">$parameter_values</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$beanList</span><span style="color: #339933;">,</span> <span style="color: #000088;">$beanFiles</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$beanName</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$beanList</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">module_name</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$beanFile</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$beanFiles</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$beanName</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$beanName</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$beanFile</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$beanFile</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$seed</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000088;">$beanName</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$field_def</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$seed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">field_defs</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">field_name</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$field_def</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;type&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;relate&quot;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$field_def</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;source&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;non-db&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$result</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$field_def</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;table&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$field_def</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;rname&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">field_name</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;_c&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$result</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$seed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">table_name</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;_cstm.&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">field_name</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$result</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$seed</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">table_name</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">field_name</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">order_type</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;asc&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$result</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot; asc &quot;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$result</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot; desc &quot;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$result</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Basically what it does is checking if a field ends with &#8220;_c&#8221;, if so meaning it&#8217;s a custom field so loads it from the correct custom table. Hope this helps with those who have problem listing custom fields from ZuckerReports.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RolandLi?a=1NdgY13OZcQ:BR-9pHkhmdQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=1NdgY13OZcQ:BR-9pHkhmdQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=1NdgY13OZcQ:BR-9pHkhmdQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=1NdgY13OZcQ:BR-9pHkhmdQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=1NdgY13OZcQ:BR-9pHkhmdQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=1NdgY13OZcQ:BR-9pHkhmdQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=1NdgY13OZcQ:BR-9pHkhmdQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=1NdgY13OZcQ:BR-9pHkhmdQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=1NdgY13OZcQ:BR-9pHkhmdQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=1NdgY13OZcQ:BR-9pHkhmdQ:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=1NdgY13OZcQ:BR-9pHkhmdQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RolandLi/~4/1NdgY13OZcQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rolandli.com/2009/09/28/fix-zuckerreport-not-reporting-custom-fields/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.rolandli.com/2009/09/28/fix-zuckerreport-not-reporting-custom-fields</feedburner:origLink></item>
		<item>
		<title>New Old Cameras</title>
		<link>http://feedproxy.google.com/~r/RolandLi/~3/fkI9b4iVlQA/new-old-cameras</link>
		<comments>http://www.rolandli.com/2009/08/11/new-old-cameras#comments</comments>
		<pubDate>Tue, 11 Aug 2009 22:23:00 +0000</pubDate>
		<dc:creator>rolandli</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[sony r1 camera minolta maxxum7000]]></category>

		<guid isPermaLink="false">http://www.rolandli.com/?p=534</guid>
		<description><![CDATA[My dad gave me his old Sony DSC-R1 and I we got a Minolta Maxxum 7000. Very nice upgrade from my Point-And-Shoot. We spent half of July traveling around and took tons of pictures. Check out my Flickr stream for more pictures.

]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/WYfhTQ7D7EUzhjr6VbhaBZz4_Lo/0/da"><img src="http://feedads.g.doubleclick.net/~a/WYfhTQ7D7EUzhjr6VbhaBZz4_Lo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/WYfhTQ7D7EUzhjr6VbhaBZz4_Lo/1/da"><img src="http://feedads.g.doubleclick.net/~a/WYfhTQ7D7EUzhjr6VbhaBZz4_Lo/1/di" border="0" ismap="true"></img></a></p><p>My dad gave me his old Sony DSC-R1 and I we got a Minolta Maxxum 7000. Very nice upgrade from my Point-And-Shoot. We spent half of July traveling around and took tons of pictures. Check out my <a href="http://www.flickr.com/photos/rolandli/" target="_blank">Flickr stream</a> for more pictures.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/rolandli/3812245587/"><img class="img_border" title="New Old Cameras" src="http://farm3.static.flickr.com/2593/3812245587_401b877568.jpg" alt="Minolta Maxxum 7000 and Sony DSC-R1" width="500" height="375" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RolandLi?a=fkI9b4iVlQA:MAzXrDTWrNQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=fkI9b4iVlQA:MAzXrDTWrNQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=fkI9b4iVlQA:MAzXrDTWrNQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=fkI9b4iVlQA:MAzXrDTWrNQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=fkI9b4iVlQA:MAzXrDTWrNQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=fkI9b4iVlQA:MAzXrDTWrNQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=fkI9b4iVlQA:MAzXrDTWrNQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=fkI9b4iVlQA:MAzXrDTWrNQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=fkI9b4iVlQA:MAzXrDTWrNQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=fkI9b4iVlQA:MAzXrDTWrNQ:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=fkI9b4iVlQA:MAzXrDTWrNQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RolandLi/~4/fkI9b4iVlQA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rolandli.com/2009/08/11/new-old-cameras/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.rolandli.com/2009/08/11/new-old-cameras</feedburner:origLink></item>
		<item>
		<title>Building Qt with OpenSSL</title>
		<link>http://feedproxy.google.com/~r/RolandLi/~3/zPzk8yYfULk/building-qt-with-openssl</link>
		<comments>http://www.rolandli.com/2009/05/22/building-qt-with-openssl#comments</comments>
		<pubDate>Fri, 22 May 2009 17:28:53 +0000</pubDate>
		<dc:creator>rolandli</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[OpenSSL]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://www.rolandli.com/?p=527</guid>
		<description><![CDATA[A project I&#8217;ve been working on requires the ability to visit SSL sites (sites with https in the URL). So I had to rebuild Qt with OpenSSL support since by default Qt does not have SSL.
After a few failure, here are the steps. Please not this is for Qt 4.5 only:
1. If you don&#8217;t have [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/jVvMrmEge_s1zNRkpMnkiZnPftg/0/da"><img src="http://feedads.g.doubleclick.net/~a/jVvMrmEge_s1zNRkpMnkiZnPftg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/jVvMrmEge_s1zNRkpMnkiZnPftg/1/da"><img src="http://feedads.g.doubleclick.net/~a/jVvMrmEge_s1zNRkpMnkiZnPftg/1/di" border="0" ismap="true"></img></a></p><p>A project I&#8217;ve been working on requires the ability to visit SSL sites (sites with https in the URL). So I had to rebuild Qt with OpenSSL support since by default Qt does not have SSL.</p>
<p>After a few failure, here are the steps. Please not this is for Qt 4.5 only:</p>
<p>1. If you don&#8217;t have Qt already, go download it at http://www.qtsoftware.com/downloads</p>
<p>2. Download OpenSSL here http://www.openssl.org/source/You can build it by following the instructions or get the binaries.</p>
<p>3. In command line, go to your Qt folder, configure the build with</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">configure -openssl -I:path_to_openssl_include_folder -L:path_to_openssl_library_folder</pre></div></div>

<p>If you want the OpelSSL libraries linked, use &#8220;-openssl-link&#8221; instead.</p>
<p>4. Then you can start compiling with &#8220;make&#8221; or &#8220;nmake&#8221; depending on your OS.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RolandLi?a=zPzk8yYfULk:LxxcjdBYaW8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=zPzk8yYfULk:LxxcjdBYaW8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=zPzk8yYfULk:LxxcjdBYaW8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=zPzk8yYfULk:LxxcjdBYaW8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=zPzk8yYfULk:LxxcjdBYaW8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=zPzk8yYfULk:LxxcjdBYaW8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=zPzk8yYfULk:LxxcjdBYaW8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=zPzk8yYfULk:LxxcjdBYaW8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=zPzk8yYfULk:LxxcjdBYaW8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=zPzk8yYfULk:LxxcjdBYaW8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=zPzk8yYfULk:LxxcjdBYaW8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RolandLi/~4/zPzk8yYfULk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rolandli.com/2009/05/22/building-qt-with-openssl/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.rolandli.com/2009/05/22/building-qt-with-openssl</feedburner:origLink></item>
		<item>
		<title>Public Service Announcement</title>
		<link>http://feedproxy.google.com/~r/RolandLi/~3/OpPwcL_tq44/public-service-announcement</link>
		<comments>http://www.rolandli.com/2009/05/04/public-service-announcement#comments</comments>
		<pubDate>Mon, 04 May 2009 17:49:14 +0000</pubDate>
		<dc:creator>rolandli</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[swine flu poster]]></category>

		<guid isPermaLink="false">http://www.rolandli.com/?p=521</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/itkLNjSFbj8cNipTTj1gCNAexJ8/0/da"><img src="http://feedads.g.doubleclick.net/~a/itkLNjSFbj8cNipTTj1gCNAexJ8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/itkLNjSFbj8cNipTTj1gCNAexJ8/1/da"><img src="http://feedads.g.doubleclick.net/~a/itkLNjSFbj8cNipTTj1gCNAexJ8/1/di" border="0" ismap="true"></img></a></p><p style="text-align: center;"><a href="http://kaptain-karmel.deviantart.com/art/Swine-Flu-poster-121197955"><img class="img_border" title="Swine Flu" src="http://fc09.deviantart.com/fs43/i/2009/122/5/4/Swine_Flu_poster_by_Kaptain_Karmel.jpg" alt="Wash your hands!" width="450" height="291" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RolandLi?a=OpPwcL_tq44:uP_0U9J60ok:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=OpPwcL_tq44:uP_0U9J60ok:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=OpPwcL_tq44:uP_0U9J60ok:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=OpPwcL_tq44:uP_0U9J60ok:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=OpPwcL_tq44:uP_0U9J60ok:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=OpPwcL_tq44:uP_0U9J60ok:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=OpPwcL_tq44:uP_0U9J60ok:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=OpPwcL_tq44:uP_0U9J60ok:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=OpPwcL_tq44:uP_0U9J60ok:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=OpPwcL_tq44:uP_0U9J60ok:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=OpPwcL_tq44:uP_0U9J60ok:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RolandLi/~4/OpPwcL_tq44" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rolandli.com/2009/05/04/public-service-announcement/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.rolandli.com/2009/05/04/public-service-announcement</feedburner:origLink></item>
		<item>
		<title>Schmacked by Schmap</title>
		<link>http://feedproxy.google.com/~r/RolandLi/~3/90ejHf-Sx_A/schmacked-by-schmap</link>
		<comments>http://www.rolandli.com/2009/05/02/schmacked-by-schmap#comments</comments>
		<pubDate>Sat, 02 May 2009 09:04:23 +0000</pubDate>
		<dc:creator>rolandli</dc:creator>
				<category><![CDATA[Media]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[schmap]]></category>

		<guid isPermaLink="false">http://www.rolandli.com/?p=514</guid>
		<description><![CDATA[

The other day I received a Flickr mail from Emma at Schmap telling me my picture was chosen to be used in their latest version of Schmap Salt Lake City Guide. I demand some advertising fee, Grand America Hotel!
]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/SBx5_iO1HhldzoL6bPEEQtEeCaQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/SBx5_iO1HhldzoL6bPEEQtEeCaQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/SBx5_iO1HhldzoL6bPEEQtEeCaQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/SBx5_iO1HhldzoL6bPEEQtEeCaQ/1/di" border="0" ismap="true"></img></a></p><p style="text-align: center;"><a title="Grand America Hotel" href="http://www.flickr.com/photos/rolandli/3199863268/in/set-72157612558936699/" target="_blank"><img class="img_border aligncenter" src="http://farm4.static.flickr.com/3358/3199863268_77376d276a.jpg?v=0" alt="Grand America Hotel" width="375" height="500" /></a></p>
<p style="text-align: center;">
<p>The other day I received a Flickr mail from Emma at Schmap telling me my picture was chosen to be used in their latest version of <a title="Schmap SLC Guide" href="http://www.schmap.com/saltlakecity/toppicks_hotels/#r=none&amp;mapview=Map&amp;tab=Places&amp;p=317513&amp;topleft=40.84758,-111.94124&amp;bottomright=40.67699,-111.84477&amp;i=317513_8.jpg" target="_blank">Schmap Salt Lake City Guide</a>. I demand some advertising fee, Grand America Hotel!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RolandLi?a=90ejHf-Sx_A:634FzQp85EA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=90ejHf-Sx_A:634FzQp85EA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=90ejHf-Sx_A:634FzQp85EA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=90ejHf-Sx_A:634FzQp85EA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=90ejHf-Sx_A:634FzQp85EA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=90ejHf-Sx_A:634FzQp85EA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=90ejHf-Sx_A:634FzQp85EA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=90ejHf-Sx_A:634FzQp85EA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=90ejHf-Sx_A:634FzQp85EA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=90ejHf-Sx_A:634FzQp85EA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=90ejHf-Sx_A:634FzQp85EA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RolandLi/~4/90ejHf-Sx_A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rolandli.com/2009/05/02/schmacked-by-schmap/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.rolandli.com/2009/05/02/schmacked-by-schmap</feedburner:origLink></item>
		<item>
		<title>Ridiculous Software Licensing</title>
		<link>http://feedproxy.google.com/~r/RolandLi/~3/a2yv-ylhc-s/ridiculous-software-licensing</link>
		<comments>http://www.rolandli.com/2009/04/20/ridiculous-software-licensing#comments</comments>
		<pubDate>Mon, 20 Apr 2009 22:38:00 +0000</pubDate>
		<dc:creator>rolandli</dc:creator>
				<category><![CDATA[Legal]]></category>
		<category><![CDATA[copyright]]></category>
		<category><![CDATA[DMCA]]></category>
		<category><![CDATA[EULA]]></category>
		<category><![CDATA[Gutenberg]]></category>
		<category><![CDATA[license]]></category>
		<category><![CDATA[licensing]]></category>
		<category><![CDATA[Rapture for the Geeks]]></category>

		<guid isPermaLink="false">http://www.rolandli.com/2009/04/21/the-ridiculous-software-licensing</guid>
		<description><![CDATA[One co-worker of mine recently bought a new bare-bone laptop. Since it’s a bare-bone, there was no operating system pre-installed. He came to me with a simple question “Can I install the Windows Vista I have from my old laptop onto this one?” I then told him he could but he has to call Microsoft [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/3CGCkYPVZuDRCaPOxOkJtyuaKRs/0/da"><img src="http://feedads.g.doubleclick.net/~a/3CGCkYPVZuDRCaPOxOkJtyuaKRs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/3CGCkYPVZuDRCaPOxOkJtyuaKRs/1/da"><img src="http://feedads.g.doubleclick.net/~a/3CGCkYPVZuDRCaPOxOkJtyuaKRs/1/di" border="0" ismap="true"></img></a></p><p><img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="copyleft" border="0" alt="copyleft" align="right" src="http://www.rolandli.com/wp-content/uploads/2009/04/copyleft.jpg" width="260" height="249" />One co-worker of mine recently bought a new bare-bone laptop. Since it’s a bare-bone, there was no operating system pre-installed. He came to me with a simple question “Can I install the Windows Vista I have from my old laptop onto this one?” I then told him he could but he has to call Microsoft to activate Vista on the new computer and the installation on the old one would no longer work since the license agreement for Vista only permits one machine to be activated at a time. And it’s enforced by giving a unique identification number to each computer and registering the number with Microsoft’s server. </p>
<p>We are no stranger to software licenses, they are everywhere. Even for Open Source, they have their open source license. We are so used to it we never read it while installing a program; we never give much thoughts about it; we accept it as a fact.</p>
<p> <span id="more-453"></span>
<p>But imagine there is a license on the new DVD you bought, here it says “<em>You are only allowed to watch this DVD on a single DVD player</em>.” You must think it’s ridiculous, indeed it is. No studio limits their DVD to be played on a single player or TV set. But why aren’t we mad when we were told the software we paid for can only be installed and run on a single computer? We have to thank the legal geniuses in the commercial software companies.</p>
<p><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="225px-Gutenberg" border="0" alt="225px-Gutenberg" align="left" src="http://www.rolandli.com/wp-content/uploads/2009/04/225pxgutenberg.jpg" width="207" height="260" /> Once upon a time there was only hand written copy. Then came Mr. Gutenberg invented something called mechanical printing press. Since mass printing became a reality, people could start making money by selling books. That’s when copyright first emerge as a legal statue to protect the ownership of intellectual properties. So people can’t just grab an existing book and start printing and selling as their own without permission. Well, that’s fair.</p>
<p>Then came the digital age. The spread of computers made it exponentially easier to create and duplicate (flawlessly) text, video, audio, and programs. But the copyright law did not change much. </p>
<p>In the old days, you bought a book, you own that book. Since you are the owner, you a free to do whatever you want with it. You can re-sell it to a second hand bookstore (First-sale); you can lend it to your friends, as many of them as there are; you can read it in your bedroom, dinning room, on the roof, on your toilet, all up to you.</p>
<p>But the software companies were not happy about that. They don’t want you to buy a program then share with all your friends, install it on all your computers, install it then sell it to someone else. How would they make money then? Their legal geniuses thought of a brilliant idea “we are not selling the programs, we are selling the <em>rights to use these programs</em>”. </p>
<p>Great, now when a customer buys a program, she is not the owner of the program, the software company is. Instead, she is a licensee who is bound by the license came with the software. All she can or cannot do is clearly defined in the license. And it’s legally binding like a contract. Brilliant idea indeed, but came with it are many problems such as my co-worker’s situation.</p>
<p><a href="http://www.amazon.com/gp/product/0307405257?ie=UTF8&amp;tag=rolli-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0307405257" target="_blank"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="41gCz60IjjL._SL500_AA240_" border="0" alt="41gCz60IjjL._SL500_AA240_" align="right" src="http://www.rolandli.com/wp-content/uploads/2009/04/41gcz60ijjl-sl500-aa240.jpg" width="142" height="208" /></a> To entertain you, I present you the End User License Agreement (EULA) from the book <a href="http://www.amazon.com/gp/product/0307405257?ie=UTF8&amp;tag=rolli-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0307405257">Rapture for the Geeks: When AI Outsmarts IQ</a><img style="border-bottom-style: none !important; border-right-style: none !important; margin: 0px; border-top-style: none !important; border-left-style: none !important" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=rolli-20&amp;l=as2&amp;o=1&amp;a=0307405257" width="1" height="1" /> by Richard Dooling (a very interesting read, recommended for geeks and non-geeks alike). It’s a clever mockery of software licenses. Compare it to the EULA with the one came with your operating system. You will be really glad that there is no such license for books.</p>
<blockquote><p><strong>RAPTURE FOR THE GEEKS (RETAIL):</strong>      <br /><strong>END-USER LICENSE AGREEMENT (EULA) </strong>      <br /><strong>PUBLISHED: SEPTEMBER 30, 2008</strong></p>
<p><strong>1. GRANT OF LICENSE. </strong>Richard Dooling grants you the following rights provided that you comply with all terms and conditions of this EULA:</p>
<p><strong>2. INSTALLATION AND USE. </strong>You may install, use, access, display, and read ONE COPY OF THIS BOOK on a SINGLE PERSON, such as an adult, man, woman, teenager, or other human person. This book may NOT be read by more than one person.</p>
<p><strong>3. MANDATORY ACTICATION. </strong>The license rights granted under the EULA are limited to the first thirty (30) minutes after you install the book by opening it, unless you supply information required to activate your licensed copy of the book in the manner described on this page. You may also need to reactivate the book if you modify yourself or alter your personality. For instance, if you grow older and more mature, develop a mental illness, change your diet, or receive any artificial limbs or joints, pacemakers, implants, or organ transplants, then you may need to reactivate your license before you will be allowed to reaccess the book.</p>
<p><strong>4. UNLICENSED USE. </strong>This book contains technological measures designed to prevent unlicensed use of the book. For instance, an embedded microchip allows the publisher to scan your retinas from time to time and make sure that it’s really YOU and ONLY YOU reading this book and not some random book pirate. Rest assured that Richard Dooling will not collect any personally identifiable information from you during this process, just blood, tissue, and bone-marrow samples, which may be taken (forcefully if necessary) to determine DNA. If you are not using a licensed copy of the book, you are not allowed to read the book or read subsequent updates of the book.</p>
<p><strong>5. BOOK TRANSFER. </strong>You may make a one-time permanent transfer of the book to another end user. But after the transfer you must completely remove all knowledge about the book from the brain of the former person who read the book. If the book was so memorable that knowledge cannot be completely removed from the former person, then execute the former person using the most humane measures listed in Appendix A and mail the enclosed proof-of-execution and a notarized certificate of death (with a raised seal) to Richard Dooling at the address below.</p>
<p><strong>6. TERMINATION. </strong>Without prejudice to any other rights, Richard Dooling may terminate this EULA if you fail to comply with the terms and conditions of this EULA. In such event, you must destroy all copies of the book and all of its component parts, destroy any notes you made about the book, and forget any parts of the book that you may be tempted to remember. If you find the book simply unforgettable, then decapitate yourself and mail your head to Richard Dooling for a $20 rebate. Be sure to enclose your original sales receipt (no copies!), the bar code from the book jacket, and the enclosed rebate form, which you should take care to complete before detaching and mailing your head.</p>
<p><strong>7. PROTECT YOURSELF! </strong>Read only genuine books purchased from an authorized reseller. Do not download pirated books. Anytime you read counterfeit books, you are at serious risk. In a recent study, an organization hired by Richard Dooling found that 25 percent of the websites offering pirated copies of books also attempted to install spyware and Trojan horse programs that can compromise your operating system and make it impossible for you to properly view pornography on your computer.</p>
<p>Make sure your copy of <em><strong>Rapture for the Geeks is GENUINE!</strong></em> Ensure that you have easy access to book updates, sequels, second and third editions, book downloads, technical support, and special offers. Validate your copy of <strong><em>Rapture for the Geeks</em></strong> NOW with Richard Dolling’s Genuine Advantage!</p>
</blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RolandLi?a=a2yv-ylhc-s:1KEywWompMo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=a2yv-ylhc-s:1KEywWompMo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=a2yv-ylhc-s:1KEywWompMo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=a2yv-ylhc-s:1KEywWompMo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=a2yv-ylhc-s:1KEywWompMo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=a2yv-ylhc-s:1KEywWompMo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=a2yv-ylhc-s:1KEywWompMo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=a2yv-ylhc-s:1KEywWompMo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=a2yv-ylhc-s:1KEywWompMo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=a2yv-ylhc-s:1KEywWompMo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=a2yv-ylhc-s:1KEywWompMo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RolandLi/~4/a2yv-ylhc-s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rolandli.com/2009/04/20/ridiculous-software-licensing/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.rolandli.com/2009/04/20/ridiculous-software-licensing</feedburner:origLink></item>
		<item>
		<title>Implement an auto update system</title>
		<link>http://feedproxy.google.com/~r/RolandLi/~3/rynAbrchMis/implement-an-auto-update-system</link>
		<comments>http://www.rolandli.com/2009/04/19/implement-an-auto-update-system#comments</comments>
		<pubDate>Sun, 19 Apr 2009 21:32:39 +0000</pubDate>
		<dc:creator>rolandli</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[auto]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.rolandli.com/?p=396</guid>
		<description><![CDATA[Auto update is widely used in modern software development. It simplifies and speeds up product upgrade to enhance features and fix problems. I have been working on an application which is still in alpha version and testers need to update it incrementally and frequently. The testers are not computer professionals, so I have to make [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/5tj9PYvz2RMHhOTpZMODatMNZqg/0/da"><img src="http://feedads.g.doubleclick.net/~a/5tj9PYvz2RMHhOTpZMODatMNZqg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/5tj9PYvz2RMHhOTpZMODatMNZqg/1/da"><img src="http://feedads.g.doubleclick.net/~a/5tj9PYvz2RMHhOTpZMODatMNZqg/1/di" border="0" ismap="true"></img></a></p><p>Auto update is widely used in modern software development. It simplifies and speeds up product upgrade to enhance features and fix problems. I have been working on an application which is still in alpha version and testers need to update it incrementally and frequently. The testers are not computer professionals, so I have to make the update process as easy as possible. Below is the basic design and code. The toolkit that&#8217;s being used is QT 4.5. But the concept is universal.</p>
<p>To design such system, the following steps are considered:</p>
<ol>
<li>A server that contains the latest version and a list of updated files.</li>
<li>The application should connect to the server to retrieve the list and compare the versions.</li>
<li>If there is a new version, download the updated files to replace the new ones.</li>
<li>Clean up.</li>
</ol>
<p>Let&#8217;s work on it step-by-step. To save space, I will only post relevant code:<br />
<span id="more-396"></span></p>
<h3>1. Server Side</h3>
<p>The directory set up is as the following:<br />
<img src="http://www.rolandli.com/wp-content/uploads/2009/04/dir-structure-thumb.jpg" alt="dir_structure" title="dir_structure" width="375" height="182" class="size-full wp-image-418" /><br />
I used an XML file <em>latest.xml</em> to store the version and file list. It&#8217;s pretty self-explanatory.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #00bbdd;">&lt;!DOCTYPE XML&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;appname<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0.5.1&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;files<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;file</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;app.exe&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;file</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;some.dll&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;file</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;another.dll&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/files<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/appname<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RolandLi?a=rynAbrchMis:AwvRf0tAAf8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=rynAbrchMis:AwvRf0tAAf8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=rynAbrchMis:AwvRf0tAAf8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=rynAbrchMis:AwvRf0tAAf8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=rynAbrchMis:AwvRf0tAAf8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=rynAbrchMis:AwvRf0tAAf8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=rynAbrchMis:AwvRf0tAAf8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=rynAbrchMis:AwvRf0tAAf8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=rynAbrchMis:AwvRf0tAAf8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=rynAbrchMis:AwvRf0tAAf8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=rynAbrchMis:AwvRf0tAAf8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RolandLi/~4/rynAbrchMis" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rolandli.com/2009/04/19/implement-an-auto-update-system/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.rolandli.com/2009/04/19/implement-an-auto-update-system</feedburner:origLink></item>
		<item>
		<title>Argus C3 “The Brick”</title>
		<link>http://feedproxy.google.com/~r/RolandLi/~3/ucaMoTk1Dc4/argus-c3-the-brick</link>
		<comments>http://www.rolandli.com/2009/03/11/argus-c3-the-brick#comments</comments>
		<pubDate>Wed, 11 Mar 2009 15:05:40 +0000</pubDate>
		<dc:creator>rolandli</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[argus c3]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[vintage]]></category>

		<guid isPermaLink="false">http://www.rolandli.com/2009/03/11/argus-c3-the-brick</guid>
		<description><![CDATA[I got this guy on eBay for 99¢. But it was really dirty. I had to spend couple hours taking it apart and cleaning it. The good thing was that the design of this camera is really simple, that&#8217;s what made it durable.


Here is the manual for Argus C3. Also check out Argus C3 on [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/vTdQ3fFFr1KbluJGu3YV9JFdy48/0/da"><img src="http://feedads.g.doubleclick.net/~a/vTdQ3fFFr1KbluJGu3YV9JFdy48/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/vTdQ3fFFr1KbluJGu3YV9JFdy48/1/da"><img src="http://feedads.g.doubleclick.net/~a/vTdQ3fFFr1KbluJGu3YV9JFdy48/1/di" border="0" ismap="true"></img></a></p><p>I got this guy on eBay for 99¢. But it was really dirty. I had to spend couple hours taking it apart and cleaning it. The good thing was that the design of this camera is really simple, that&#8217;s what made it durable.</p>
<p><a href="http://www.flickr.com/photos/rolandli/sets/72157615035269751/" target="_blank"><img style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" title="IMG_0365" src="http://www.rolandli.com/wp-content/uploads/2009/03/img-0365.jpg" border="0" alt="IMG_0365" width="415" height="316" /></a><br />
<span id="more-312"></span><br />
<a href="http://www.rolandli.com/wp-content/uploads/2009/03/argus_c-3.pdf">Here is the manual for Argus C3.</a> Also check out Argus C3 on Wikipedia.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RolandLi?a=ucaMoTk1Dc4:c-S37O-7RL0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=ucaMoTk1Dc4:c-S37O-7RL0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=ucaMoTk1Dc4:c-S37O-7RL0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=ucaMoTk1Dc4:c-S37O-7RL0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=ucaMoTk1Dc4:c-S37O-7RL0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=ucaMoTk1Dc4:c-S37O-7RL0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=ucaMoTk1Dc4:c-S37O-7RL0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=ucaMoTk1Dc4:c-S37O-7RL0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=ucaMoTk1Dc4:c-S37O-7RL0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=ucaMoTk1Dc4:c-S37O-7RL0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=ucaMoTk1Dc4:c-S37O-7RL0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RolandLi/~4/ucaMoTk1Dc4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rolandli.com/2009/03/11/argus-c3-the-brick/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.rolandli.com/2009/03/11/argus-c3-the-brick</feedburner:origLink></item>
		<item>
		<title>Pentax Spotmatic SP II</title>
		<link>http://feedproxy.google.com/~r/RolandLi/~3/rwoiM_8J-Eo/pentax-spotmatic-sp-ii</link>
		<comments>http://www.rolandli.com/2009/03/02/pentax-spotmatic-sp-ii#comments</comments>
		<pubDate>Mon, 02 Mar 2009 19:15:00 +0000</pubDate>
		<dc:creator>rolandli</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[pentax]]></category>
		<category><![CDATA[spotmatic]]></category>
		<category><![CDATA[vintage]]></category>

		<guid isPermaLink="false">http://www.rolandli.com/2009/03/02/pentax-spotmatic-sp-ii</guid>
		<description><![CDATA[I found this fella on a local classified, $75. What a steal! The body is Pentax Spotmatic SPII with Super-Multi-Coated Takumar 50mm f1.4. The lens itself is worth more than $75.


Pentax Spotmatic is a classic camera. It&#8217;s the first camera that has Through-The-Lens (TTL) exposure metering, a technique that&#8217;s still unchanged and in use today.
]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/-wZm6pi_SeREX_3_BJCCLJhACwo/0/da"><img src="http://feedads.g.doubleclick.net/~a/-wZm6pi_SeREX_3_BJCCLJhACwo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/-wZm6pi_SeREX_3_BJCCLJhACwo/1/da"><img src="http://feedads.g.doubleclick.net/~a/-wZm6pi_SeREX_3_BJCCLJhACwo/1/di" border="0" ismap="true"></img></a></p><p>I found this fella on a local classified, $75. What a steal! The body is Pentax Spotmatic SPII with Super-Multi-Coated Takumar 50mm f1.4. The lens itself is worth more than $75.</p>
<p><a href="http://www.flickr.com/photos/rolandli/sets/72157614625644313/" target="_blank"><img style="border: 0px none; display: block; float: none; margin-left: auto; width: 420px; margin-right: auto;" title="IMG_0343" src="http://www.rolandli.com/wp-content/uploads/2009/03/img-0343.jpg" border="0" alt="IMG_0343" width="436" height="304" /></a><br />
<span id="more-299"></span><br />
Pentax Spotmatic is a classic camera. It&#8217;s the first camera that has Through-The-Lens (TTL) exposure metering, a technique that&#8217;s still unchanged and in use today.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RolandLi?a=rwoiM_8J-Eo:GaarKxjWiUU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=rwoiM_8J-Eo:GaarKxjWiUU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=rwoiM_8J-Eo:GaarKxjWiUU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=rwoiM_8J-Eo:GaarKxjWiUU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=rwoiM_8J-Eo:GaarKxjWiUU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=rwoiM_8J-Eo:GaarKxjWiUU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=rwoiM_8J-Eo:GaarKxjWiUU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=rwoiM_8J-Eo:GaarKxjWiUU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=rwoiM_8J-Eo:GaarKxjWiUU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=rwoiM_8J-Eo:GaarKxjWiUU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=rwoiM_8J-Eo:GaarKxjWiUU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RolandLi/~4/rwoiM_8J-Eo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rolandli.com/2009/03/02/pentax-spotmatic-sp-ii/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.rolandli.com/2009/03/02/pentax-spotmatic-sp-ii</feedburner:origLink></item>
		<item>
		<title>Free Greeting Cards</title>
		<link>http://feedproxy.google.com/~r/RolandLi/~3/EkSoAi9TCfY/free-greeting-cards</link>
		<comments>http://www.rolandli.com/2008/12/22/free-greeting-cards#comments</comments>
		<pubDate>Mon, 22 Dec 2008 10:52:00 +0000</pubDate>
		<dc:creator>rolandli</dc:creator>
				<category><![CDATA[Download]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[cards]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[free]]></category>

		<guid isPermaLink="false">http://www.rolandli.com/2008/12/22/free-greeting-card-templates</guid>
		<description><![CDATA[I&#8217;ve uploaded some greeting cards I have designed to flickr. You are welcome to use them for non-commercial purposes.
  
]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/_FxkxBO29rbVMX1YbxdcpVn149o/0/da"><img src="http://feedads.g.doubleclick.net/~a/_FxkxBO29rbVMX1YbxdcpVn149o/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_FxkxBO29rbVMX1YbxdcpVn149o/1/da"><img src="http://feedads.g.doubleclick.net/~a/_FxkxBO29rbVMX1YbxdcpVn149o/1/di" border="0" ismap="true"></img></a></p><p>I&#8217;ve uploaded some greeting cards I have designed to <a href="http://www.flickr.com/photos/rolandli/sets/72157612611732728/">flickr</a>. You are welcome to use them for non-commercial purposes.</p>
<p align="center"><img style="border: 0px none; display: inline; width: 126px;" title="Bokeh Greeting Card 2008 black" src="http://www.rolandli.com/wp-content/uploads/2008/12/bokehgreetingcard2008black1.png" border="0" alt="Bokeh Greeting Card 2008 black" width="126" height="160" /> <img style="border: 0px none; display: inline; width: 122px;" title="Bokeh Greeting Card 2008 White" src="http://www.rolandli.com/wp-content/uploads/2008/12/bokehgreetingcard2008white1.png" border="0" alt="Bokeh Greeting Card 2008 White" width="122" height="160" /> <img style="border: 0px none; display: inline; width: 123px;" title="Thank You Card 2008" src="http://www.rolandli.com/wp-content/uploads/2008/12/thankyoucard20081.png" border="0" alt="Thank You Card 2008" width="123" height="160" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RolandLi?a=EkSoAi9TCfY:Q24NGRSpETA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=EkSoAi9TCfY:Q24NGRSpETA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=EkSoAi9TCfY:Q24NGRSpETA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=EkSoAi9TCfY:Q24NGRSpETA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=EkSoAi9TCfY:Q24NGRSpETA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=EkSoAi9TCfY:Q24NGRSpETA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=EkSoAi9TCfY:Q24NGRSpETA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=EkSoAi9TCfY:Q24NGRSpETA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=EkSoAi9TCfY:Q24NGRSpETA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=EkSoAi9TCfY:Q24NGRSpETA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=EkSoAi9TCfY:Q24NGRSpETA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RolandLi/~4/EkSoAi9TCfY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rolandli.com/2008/12/22/free-greeting-cards/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.rolandli.com/2008/12/22/free-greeting-cards</feedburner:origLink></item>
		<item>
		<title>Machinima – Venison Curry</title>
		<link>http://feedproxy.google.com/~r/RolandLi/~3/AS4GDuNOGI4/machinima-venison-curry</link>
		<comments>http://www.rolandli.com/2008/04/25/machinima-venison-curry#comments</comments>
		<pubDate>Fri, 25 Apr 2008 08:35:22 +0000</pubDate>
		<dc:creator>rolandli</dc:creator>
				<category><![CDATA[Media]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[half life]]></category>
		<category><![CDATA[machinima]]></category>

		<guid isPermaLink="false">http://www.rolandli.com/?p=177</guid>
		<description><![CDATA[Here is the final project we did for our Machinima class. Click on the image to download the file. (QuickTime Mov, 195MB)

And here is a group photo of the crew, photoshoped in the actors =P:

From left to right (human only):
- Chris Diller
- Kendal Gifford
- Me
- Jason Williams
- Derrick Birkes
- Kenneth Williams
- Jason Scott
- Shawn Hall
- [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/G4OvQCDPuH6wzIaM9KNN6--TTPc/0/da"><img src="http://feedads.g.doubleclick.net/~a/G4OvQCDPuH6wzIaM9KNN6--TTPc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/G4OvQCDPuH6wzIaM9KNN6--TTPc/1/da"><img src="http://feedads.g.doubleclick.net/~a/G4OvQCDPuH6wzIaM9KNN6--TTPc/1/di" border="0" ismap="true"></img></a></p><p>Here is the final project we did for our Machinima class. Click on the image to download the file. (QuickTime Mov, 195MB)</p>
<p style="text-align: center;"><a href="http://www.rolandli.com/secret_server/video/VenisonCurry.mov" target="_blank"><img class="aligncenter" style="border-width: 0px; width: 420px;" src="http://www.rolandli.com/wp-content/uploads/2008/04/image.png" border="0" alt="image" width="420" height="244" /></a></p>
<p><span id="more-177"></span>And here is a group photo of the crew, photoshoped in the actors =P:</p>
<p style="text-align: center;"><a href="http://www.rolandli.com/wp-content/uploads/2008/04/group-photo2.jpg"><img class="aligncenter" style="border: 0px none; width: 420px;" src="http://www.rolandli.com/wp-content/uploads/2008/04/group-photo-thumb.jpg" border="0" alt="" width="436" height="274" /></a></p>
<p>From left to right (human only):</p>
<p>- Chris Diller<br />
- Kendal Gifford<br />
- Me<br />
- Jason Williams<br />
- Derrick Birkes<br />
- Kenneth Williams<br />
- Jason Scott<br />
- Shawn Hall<br />
- Alexander Johnstone</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RolandLi?a=AS4GDuNOGI4:32Yi6smk_7k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=AS4GDuNOGI4:32Yi6smk_7k:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=AS4GDuNOGI4:32Yi6smk_7k:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=AS4GDuNOGI4:32Yi6smk_7k:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=AS4GDuNOGI4:32Yi6smk_7k:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=AS4GDuNOGI4:32Yi6smk_7k:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=AS4GDuNOGI4:32Yi6smk_7k:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=AS4GDuNOGI4:32Yi6smk_7k:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=AS4GDuNOGI4:32Yi6smk_7k:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=AS4GDuNOGI4:32Yi6smk_7k:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=AS4GDuNOGI4:32Yi6smk_7k:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RolandLi/~4/AS4GDuNOGI4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rolandli.com/2008/04/25/machinima-venison-curry/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.rolandli.com/secret_server/video/VenisonCurry.mov" length="169749720" type="video/quicktime" />
		<feedburner:origLink>http://www.rolandli.com/2008/04/25/machinima-venison-curry</feedburner:origLink></item>
		<item>
		<title>Drop Clock Screen Saver</title>
		<link>http://feedproxy.google.com/~r/RolandLi/~3/Npv9NP50ZrA/drop-clock-screen-saver</link>
		<comments>http://www.rolandli.com/2008/04/17/drop-clock-screen-saver#comments</comments>
		<pubDate>Thu, 17 Apr 2008 22:12:08 +0000</pubDate>
		<dc:creator>rolandli</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[clock]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[screensaver]]></category>

		<guid isPermaLink="false">http://www.rolandli.com/?p=170</guid>
		<description><![CDATA[
Stumbled upon a very nice screen saver, even better, it&#8217;s free. Download it here.
]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/GFAt0tjLOLcGrZG13ocEv8GdQps/0/da"><img src="http://feedads.g.doubleclick.net/~a/GFAt0tjLOLcGrZG13ocEv8GdQps/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/GFAt0tjLOLcGrZG13ocEv8GdQps/1/da"><img src="http://feedads.g.doubleclick.net/~a/GFAt0tjLOLcGrZG13ocEv8GdQps/1/di" border="0" ismap="true"></img></a></p><p style="text-align: center;"><a href="http://www.rolandli.com/wp-content/uploads/2008/04/dropclock.png"><img class="aligncenter" style="border: 0px none; width: 436px;" src="http://www.rolandli.com/wp-content/uploads/2008/04/dropclock-thumb.png" border="0" alt="dropclock" width="435" height="256" /></a></p>
<p>Stumbled upon a very nice screen saver, even better, it&#8217;s free. Download it <a href="http://scr.sc/products/dropclock/" target="_blank">here</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RolandLi?a=Npv9NP50ZrA:PBcJdL3uOJI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=Npv9NP50ZrA:PBcJdL3uOJI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=Npv9NP50ZrA:PBcJdL3uOJI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=Npv9NP50ZrA:PBcJdL3uOJI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=Npv9NP50ZrA:PBcJdL3uOJI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=Npv9NP50ZrA:PBcJdL3uOJI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=Npv9NP50ZrA:PBcJdL3uOJI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=Npv9NP50ZrA:PBcJdL3uOJI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=Npv9NP50ZrA:PBcJdL3uOJI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=Npv9NP50ZrA:PBcJdL3uOJI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=Npv9NP50ZrA:PBcJdL3uOJI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RolandLi/~4/Npv9NP50ZrA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rolandli.com/2008/04/17/drop-clock-screen-saver/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.rolandli.com/2008/04/17/drop-clock-screen-saver</feedburner:origLink></item>
		<item>
		<title>Darn Virus!</title>
		<link>http://feedproxy.google.com/~r/RolandLi/~3/39h24T__a6c/darn-virus</link>
		<comments>http://www.rolandli.com/2007/12/01/darn-virus#comments</comments>
		<pubDate>Sat, 01 Dec 2007 11:20:02 +0000</pubDate>
		<dc:creator>rolandli</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[virus]]></category>

		<guid isPermaLink="false">http://www.rolandli.com/?p=42</guid>
		<description><![CDATA[I haven&#8217;t had to deal with computer virus for a while. Today I had to spend hours just trying to delete two DLL files injected into my system by some ad-ware/spyware. Here are steps I took to removed them. Hopefully they will be helpful to you in removing those particular files or just in general [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/H5rsYiJ7JWVJjXxYDIUaIlt-E9g/0/da"><img src="http://feedads.g.doubleclick.net/~a/H5rsYiJ7JWVJjXxYDIUaIlt-E9g/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/H5rsYiJ7JWVJjXxYDIUaIlt-E9g/1/da"><img src="http://feedads.g.doubleclick.net/~a/H5rsYiJ7JWVJjXxYDIUaIlt-E9g/1/di" border="0" ismap="true"></img></a></p><p>I haven&#8217;t had to deal with computer virus for a while. Today I had to spend hours just trying to delete two DLL files injected into my system by some ad-ware/spyware. Here are steps I took to removed them. Hopefully they will be helpful to you in removing those particular files or just in general removing malicious files:</p>
<p>The two files are <strong>ddccy.dll</strong> and <strong>opnnljj.dll. </strong>You can Google them to see what they do. I made use of Windows XP Professional CD.</p>
<ol>
<li>I booted the system with the XP CD. </li>
<li>(Then inserted my RAID driver since I&#8217;m using RAID. You can skip this step if you are using IDE drives). </li>
<li>Choose &quot;Repair&quot; mode. Then choose an installation and log in. </li>
<li>Navigate to the folder where the files are located, use &quot;del&quot; command to remove them. </li>
<li>Reboot back into Windows XP and run <a href="http://www.spywareinfo.com/~merijn/programs.php#hijackthis" target="_blank">HijackThis</a>. </li>
<li>Choose &quot;Scan&quot; and check the result </li>
<li>Select the items that are related to the files you deleted, and click &quot;Fix Checked&quot; </li>
<li>Done. </li>
</ol>
<p>Good luck and be careful next time.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RolandLi?a=39h24T__a6c:Grm8lcV4nzY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=39h24T__a6c:Grm8lcV4nzY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=39h24T__a6c:Grm8lcV4nzY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=39h24T__a6c:Grm8lcV4nzY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=39h24T__a6c:Grm8lcV4nzY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=39h24T__a6c:Grm8lcV4nzY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=39h24T__a6c:Grm8lcV4nzY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=39h24T__a6c:Grm8lcV4nzY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=39h24T__a6c:Grm8lcV4nzY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=39h24T__a6c:Grm8lcV4nzY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=39h24T__a6c:Grm8lcV4nzY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RolandLi/~4/39h24T__a6c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rolandli.com/2007/12/01/darn-virus/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.rolandli.com/2007/12/01/darn-virus</feedburner:origLink></item>
		<item>
		<title>Fortran 77’s Line Length Limit…</title>
		<link>http://feedproxy.google.com/~r/RolandLi/~3/hzP915AhrnU/fortran-77s-line-length-limit</link>
		<comments>http://www.rolandli.com/2007/11/12/fortran-77s-line-length-limit#comments</comments>
		<pubDate>Tue, 13 Nov 2007 04:27:20 +0000</pubDate>
		<dc:creator>rolandli</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[fortran]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[limit]]></category>
		<category><![CDATA[old]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[punch card]]></category>

		<guid isPermaLink="false">http://www.rolandli.com/?p=34</guid>
		<description><![CDATA[At work I have to modified a huge Fortran 77 program which simulates some geo-chemical stuff in order to make it run on a cluster to accommodate our large model. I have never dealt with Fortran before, only heard of it. It&#8217;s kind of old, I mean, 77, doesn&#8217;t that suppose to mean it came [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/sGryHjn8ADXPKijfKqSL8aZLfwI/0/da"><img src="http://feedads.g.doubleclick.net/~a/sGryHjn8ADXPKijfKqSL8aZLfwI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/sGryHjn8ADXPKijfKqSL8aZLfwI/1/da"><img src="http://feedads.g.doubleclick.net/~a/sGryHjn8ADXPKijfKqSL8aZLfwI/1/di" border="0" ismap="true"></img></a></p><p>At work I have to modified a huge Fortran 77 program which simulates some geo-chemical stuff in order to make it run on a cluster to accommodate our large model. I have never dealt with Fortran before, only heard of it. It&#8217;s kind of old, I mean, 77, doesn&#8217;t that suppose to mean it came out in the year of 77?</p>
<p>I heard of some good things about Fortran in the old days: lots of programs in engineering fields, more efficient than C, wide spread, etc. But that&#8217;s not the case anymore. Things have changed greatly after, er, 1/3 of a century.</p>
<p><span id="more-34"></span></p>
<p>Although there is a lot to complains against Fortran 77, what I hate the most is the line length limit and the fields in a line. Let me explain what it means:</p>
<ul>
<li>A line in Fortran 77 has fixed length of 80 characters, anything over that the compiler will report error</li>
<li>Column 1-5 is for descriptor number, yep, that&#8217;s for &#8220;GOTO&#8221; statements&#8230;</li>
<li>Column 6 is for continuation character, that&#8217;s to indicate this line is continued from last line</li>
<li>Column 7-72 is for actual coding</li>
<li>Column 73-80 is for whatever that will be ignored by the compiler</li>
</ul>
<p style="text-align: center"><a href="http://www.rolandli.com/wp-content/uploads/2007/11/fortrancardproj039.agr.jpg"><img class="aligncenter" style="border-width: 0px; width: 420px;" src="http://www.rolandli.com/wp-content/uploads/2007/11/fortrancardproj039.agr-thumb.jpg" border="0" alt="FortranCardPROJ039.agr" width="303" height="147" /></a></p>
<p>That&#8217;s where the idea came from, yes, <a href="http://en.wikipedia.org/wiki/Punch_card" target="_blank">PUNCH CARD</a>! Now you know why some older Fortran 77 programs&#8217; variable always have horribly short names.</p>
<p>This limit really gave me a lot of problems while I was writing the program. Especially I can only write my code from column 7 to 72. Sometimes I get weird bugs because of this. I guess this will train my attention to detail, heh!</p>
<p><a href="http://www.amazon.com/gp/product/013363003X?ie=UTF8&#038;tag=rolli-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=013363003X"><img style="border-width: 0px; margin: 0px 0px 10px 10px; width: 134px; display: inline;" title="9780133630039" src="http://www.rolandli.com/wp-content/uploads/2009/04/9780133630039-thumb.gif" border="0" alt="9780133630039" width="134" height="178" align="right" /></a><br />
Here is a book I bought that helped me quite a bit. I&#8217;m not sure if it&#8217;s DI best Fortran 77 book, but I think it&#8217;s at least one of the best for those who are relatively new to the language. If you already have programming background in other language, you can pick Fortran up really quick just by speed reading this book. Get a used one for a reasonable price on <a href="http://www.amazon.com/gp/product/013363003X?ie=UTF8&amp;tag=rolli-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=013363003X">Amazon</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=rolli-20&amp;l=as2&amp;o=1&amp;a=013363003X" border="0" alt="" width="1" height="1" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RolandLi?a=hzP915AhrnU:3xYWMYJupQI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=hzP915AhrnU:3xYWMYJupQI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=hzP915AhrnU:3xYWMYJupQI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=hzP915AhrnU:3xYWMYJupQI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=hzP915AhrnU:3xYWMYJupQI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=hzP915AhrnU:3xYWMYJupQI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=hzP915AhrnU:3xYWMYJupQI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=hzP915AhrnU:3xYWMYJupQI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=hzP915AhrnU:3xYWMYJupQI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RolandLi?i=hzP915AhrnU:3xYWMYJupQI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RolandLi?a=hzP915AhrnU:3xYWMYJupQI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RolandLi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RolandLi/~4/hzP915AhrnU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rolandli.com/2007/11/12/fortran-77s-line-length-limit/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.rolandli.com/2007/11/12/fortran-77s-line-length-limit</feedburner:origLink></item>
	</channel>
</rss>
