<?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>I've made my mark</title>
	
	<link>http://www.edmundtse.com</link>
	<description>Edmund Tse :: specialist in technology generally</description>
	<lastBuildDate>Sat, 04 Sep 2010 08:47:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/EdmundTse" /><feedburner:info uri="edmundtse" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by/2.5/</creativeCommons:license><item>
		<title>Analysing pv’s attempt to work with CMS-5000</title>
		<link>http://feedproxy.google.com/~r/EdmundTse/~3/UkrRUviSaLY/</link>
		<comments>http://www.edmundtse.com/2010/09/04/analysing-pvs-attempt-to-work-with-cms-5000/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 08:47:27 +0000</pubDate>
		<dc:creator>Edmund Tse</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Mini-Projects]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[engineering]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[solar]]></category>

		<guid isPermaLink="false">http://www.edmundtse.com/2010/09/04/analysing-pvs-attempt-to-work-with-cms-5000/</guid>
		<description><![CDATA[There&#8217;s a library a wrote a little while ago that was designed to interact with some photovoltaic inverters via the serial port. It was written based on captured communication between the official ProControl software Reader contribution Simon&#8217;s tried out my code to see if it&#8217;ll work on a newer inverter, the CMS-5000. Unfortunately the library [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s <a href="http://www.edmundtse.com/2010/07/09/pv-a-python-library-to-monitorcontrol-pv-inverters/">a library a wrote</a> a little while ago that was designed to interact with some photovoltaic inverters via the serial port. It was written based on captured communication between the official ProControl software</p>
<h3>Reader contribution</h3>
<p>Simon&#8217;s <a href="http://www.edmundtse.com/2010/07/09/pv-a-python-library-to-monitorcontrol-pv-inverters/#comment-2129">tried out my code</a> to see if it&#8217;ll work on a newer inverter, the CMS-5000. Unfortunately the library as it stands doesn&#8217;t quite work. So let&#8217;s take a closer look at the packets:</p>
<p>First we reset the inverter:</p>
<p>SEND -&gt; aaaa 0100 0000 0004 00 0159</p>
<p>Discover inverters:</p>
<p>SEND -&gt; aaaa 0100 0000 0000 00 0155</p>
<p>RECV &lt;- aaaa fe00 0000 0080 0a 52353634363033303631 04fd OK</p>
<p>Mostly OK so far, but something that strikes me is that the first byte (0xFE) of what I assumed to be the source address seems to have some other significance (it’s not 0&#215;0000). Moving on&#8230;</p>
<p>Register the inverter with address “0001”:</p>
<p>SEND -&gt; aaaa 0100 0000 0001 0c 523536343630333036310001 0384</p>
<p>The inverter acknowledges</p>
<p>RECV &lt;- aaaa fe01 0000 0081 01 06 02db OK</p>
<p>So even though the first byte of the address 0xFE is incorrect, things still seem to be working.</p>
<p>Now we try to find what status fields the inverter gives:</p>
<p>SEND -&gt; aaaa 0100 0001 0101 00 0158</p>
<p>RECV &lt;- aaaa fe01 0000 0181 01 15 02eb OK</p>
<p>This bit here is the interesting bit. First, (if my assumptions about the comms protocol were correct), the inverter only gives 2 fields: 0&#215;01 and 0&#215;15. That’s really few compared with the ones I’ve seen before. Not only that, but we don’t yet know what the field 0&#215;15 is for. Basically I assumed that the reply I get is a listing of the status fields, but instead I get something else. </p>
<p>So let’s query the inverter for its status:</p>
<p>SEND -&gt; aaaa 0100 0001 0104 00 015b</p>
<p>RECV &lt;- aaaa fe01 0000 0184 12 05dc003c071c0abe1290139a009900e8034a 080f OK</p>
<p>So here we have the full status update from the inverter. We can’t decode what it’s saying, because it doesn’t quite match the status field query. This is why the pv library is failing to interpret this packet based on the received structure that was supposedly just 2 fields long.</p>
<h3>What does this mean?</h3>
<p>In the most basic level, there are a few assumptions + generalisations that I&#8217;ve made which turned out to be inaccurate, hence it&#8217;s not working for a different model inverter.</p>
<p>What we&#8217;d need now is a capture of the raw communication between the official monitoring software and the inverter to get a better understanding of what&#8217;s going on.</p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F09%2F04%2Fanalysing-pvs-attempt-to-work-with-cms-5000%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F09%2F04%2Fanalysing-pvs-attempt-to-work-with-cms-5000%2F&amp;source=EdmundTse&amp;style=normal&amp;service=bit.ly&amp;service_api=R_d69ba9a685adc250ec33f1c4f39657f8" height="61" width="50" /><br />
			</a>
		</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EdmundTse?a=UkrRUviSaLY:ONVtqy9TMwA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=UkrRUviSaLY:ONVtqy9TMwA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=UkrRUviSaLY:ONVtqy9TMwA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EdmundTse?i=UkrRUviSaLY:ONVtqy9TMwA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=UkrRUviSaLY:ONVtqy9TMwA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=UkrRUviSaLY:ONVtqy9TMwA:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EdmundTse/~4/UkrRUviSaLY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.edmundtse.com/2010/09/04/analysing-pvs-attempt-to-work-with-cms-5000/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.edmundtse.com/2010/09/04/analysing-pvs-attempt-to-work-with-cms-5000/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=analysing-pvs-attempt-to-work-with-cms-5000</feedburner:origLink></item>
		<item>
		<title>HP Mini 2140 Netbook gets aftermarket Bluetooth without breaking the bank</title>
		<link>http://feedproxy.google.com/~r/EdmundTse/~3/RYx-2-Fj66c/</link>
		<comments>http://www.edmundtse.com/2010/09/01/hp-mini-2140-netbook-gets-aftermarket-bluetooth-without-breaking-the-bank/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 13:40:02 +0000</pubDate>
		<dc:creator>Edmund Tse</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Mini-Projects]]></category>
		<category><![CDATA[Bluetooth]]></category>
		<category><![CDATA[HP]]></category>
		<category><![CDATA[netbook]]></category>

		<guid isPermaLink="false">http://www.edmundtse.com/2010/09/01/hp-mini-2140-netbook-gets-aftermarket-bluetooth-without-breaking-the-bank/</guid>
		<description><![CDATA[I’m quite satisfied with the netbook I’m using at the moment: HP Mini 2140, with a reasonable 2GB RAM and beautiful brushed aluminium chassis. Even though it has a screen people would call &#34;low resolution&#34;, I&#8217;d say it is very legible. The only thing missing &#8211; and one I&#8217;d come to love &#8211; is Bluetooth [...]]]></description>
			<content:encoded><![CDATA[<p>I’m quite satisfied with the netbook I’m using at the moment: HP Mini 2140, with a reasonable 2GB RAM and beautiful brushed aluminium chassis. Even though it has a screen people would call &quot;low resolution&quot;, I&#8217;d say it is very legible. The only thing missing &#8211; and one I&#8217;d come to love &#8211; is Bluetooth connectivity that I had with my Lenovo V100 laptop.</p>
<p>So, I went and bought the module, cracked the netbook open and added Bluetooth, all without spending truckloads of money.</p>
<h3>Why Bluetooth?</h3>
<p>Why do I like Bluetooth so much? I use it to connect my Microsoft Bluetooth Mobile Keyboard 6000 (it&#8217;s a fantastic piece of hardware), my Microsoft Bluetooth Notebook Mouse 5000 and my Microsoft IntelliMouse for Bluetooth. The best thing is, I don&#8217;t need to attach any dongles, and when I have everything paired, docking the netbook while working on a desk simply involves putting it down and connecting the external monitor. No USB cables to muck around with.</p>
<p>Bluetooth PAN is also great way to get wireless Internet tethering from my phone, and much more power efficient than using Wi-Fi tethering.</p>
<h3>Getting the parts</h3>
<p>The first step was to see what I needed to add Bluetooth to the netbook. <a href="http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?lang=en&amp;cc=au&amp;taskId=125&amp;prodSeriesId=3872994&amp;prodTypeId=321957&amp;objectID=c01664294">HP&#8217;s specifications</a> say Bluetooth v2.0 was indeed an option for this particular netbook. So it means all I needed to do was find the Bluetooth module&#8217;s part number, order it and install it. I love it when PC manufacturers publish the <a href="http://h20000.www2.hp.com/bizsupport/TechSupport/CoreRedirect.jsp?redirectReason=DocIndexPDF&amp;prodSeriesId=3872994&amp;targetPage=http%3A%2F%2Fbizsupport1.austin.hp.com%2Fbc%2Fdocs%2Fsupport%2FSupportManual%2Fc01658655%2Fc01658655.pdf">maintenance and service guides</a> for the laptops, because it just makes life much easier to perform DIY post-warranty service.</p>
<p><a title="IMG_8777.jpg" href="http://www.flickr.com/photos/11137865@N06/4948364906/"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="The bluetooth module with the cable" border="0" alt="The bluetooth module with the cable" src="http://farm5.static.flickr.com/4152/4948364906_fb4a7a67ff_m.jpg" /></a><a title="IMG_8779.jpg" href="http://www.flickr.com/photos/11137865@N06/4947777167/"><img title="Underside of the bluetooth module" border="0" alt="Underside of the bluetooth module" src="http://farm5.static.flickr.com/4110/4947777167_32559b01cf_m.jpg" /></a></p>
<p>To my horror, ordering HP&#8217;s official Bluetooth module costs an arm and a leg, and it doesn&#8217;t even include the connection cable between the system board and the module! So I looked for alternatives on eBay.</p>
<p>It was soon obvious that there are overwhelmingly many different Bluetooth modules for laptops. In general, manufacturers design their computers so that the parts are interchangeable between devices. So I searched for &quot;HP Bluetooth Module&quot; and went through the list. Eventually I found a listing for Broadcom BCM2046 Bluetooth 2.1 module plus the cable for roughly AUD$20. Sweet! What&#8217;s more, the listing claims that this part was compatible with the HP Mini 2133 and 2140 netbooks. The fact that it also came with 4 screws was rather curious, because the HP Mini 2140 only uses double-sided adhesives to attach the module.</p>
<p>Anyhow, I was willing to give that a try. The most important thing is that the module was compatible (that I didn&#8217;t know in advance; it just <strong>should </strong>work and looks about right), and that the cable had the correct adapters (I had to take the eBay seller&#8217;s word for it).</p>
<h3>Installing the module</h3>
<p>Receiving the goods after about a week and a half, it was time to perform the surgery and disassemble the netbook. First the keyboard came off, exposing the hard drive and the DDR2 memory.</p>
<p><a title="IMG_8780.jpg" href="http://www.flickr.com/photos/11137865@N06/4948368504/"><img title="Keyboard removed" border="0" alt="Keyboard removed" src="http://farm5.static.flickr.com/4106/4948368504_5700e635da_m.jpg" /></a></p>
<p>Unfortunately for the HP Mini 2140, the Bluetooth module was located under the palmrest and left of the touchpad. So it&#8217;ll take a little more effort to access it. It turns out that even though my netbook didn&#8217;t come with Bluetooth, the double-sided adhesive that holds the Bluetooth module in place actually came with the system board. Excellent. That makes my job so much easier.</p>
<p><a title="IMG_8782.jpg" href="http://www.flickr.com/photos/11137865@N06/4947781071/"><img title="Adhesive comes with the system board" border="0" alt="Adhesive comes with the system board" src="http://farm5.static.flickr.com/4149/4947781071_f3ee176b80_m.jpg" /></a><a title="IMG_8784.jpg" href="http://www.flickr.com/photos/11137865@N06/4947782519/"><img title="Plugging in the module" border="0" alt="Plugging in the module" src="http://farm5.static.flickr.com/4151/4947782519_c90ca8bb09_m.jpg" /></a><a title="IMG_8787.jpg" href="http://www.flickr.com/photos/11137865@N06/4948372898/"><img title="Sticking the module in place" border="0" alt="Sticking the module in place" src="http://farm5.static.flickr.com/4148/4948372898_efcd25ebc9_m.jpg" /></a><a title="IMG_8788.jpg" href="http://www.flickr.com/photos/11137865@N06/4947784625/"><img title="Test it while I still have the netbook opened" border="0" alt="Test it while I still have the netbook opened" src="http://farm5.static.flickr.com/4104/4947784625_77e09173a4_m.jpg" /></a></p>
<h3>Final thoughts</h3>
<p>For for a mere $20, my little HP Mini-Note 2140 netbook now has Bluetooth! What&#8217;s more, the particular module that I bought was Broadcom BCM2046, which is Bluetooth v2.1. Had I gone with official HP parts, not only would it have costed me more than 5x more money, it was only Bluetooth 2.0. Not that there&#8217;s very much difference, but 2.1 is meant to give higher data rates and use less power.</p>
<p><a title="IMG_8790.jpg" href="http://www.flickr.com/photos/11137865@N06/4947786771/"><img title="Windows now sees Bluetooth!" border="0" alt="Windows now sees Bluetooth!" src="http://farm5.static.flickr.com/4139/4947786771_bbddb4eff4_m.jpg" /></a></p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F09%2F01%2Fhp-mini-2140-netbook-gets-aftermarket-bluetooth-without-breaking-the-bank%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F09%2F01%2Fhp-mini-2140-netbook-gets-aftermarket-bluetooth-without-breaking-the-bank%2F&amp;source=EdmundTse&amp;style=normal&amp;service=bit.ly&amp;service_api=R_d69ba9a685adc250ec33f1c4f39657f8" height="61" width="50" /><br />
			</a>
		</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EdmundTse?a=RYx-2-Fj66c:cqX34UFkOrg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=RYx-2-Fj66c:cqX34UFkOrg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=RYx-2-Fj66c:cqX34UFkOrg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EdmundTse?i=RYx-2-Fj66c:cqX34UFkOrg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=RYx-2-Fj66c:cqX34UFkOrg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=RYx-2-Fj66c:cqX34UFkOrg:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EdmundTse/~4/RYx-2-Fj66c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.edmundtse.com/2010/09/01/hp-mini-2140-netbook-gets-aftermarket-bluetooth-without-breaking-the-bank/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.edmundtse.com/2010/09/01/hp-mini-2140-netbook-gets-aftermarket-bluetooth-without-breaking-the-bank/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=hp-mini-2140-netbook-gets-aftermarket-bluetooth-without-breaking-the-bank</feedburner:origLink></item>
		<item>
		<title>Tech entrepreneurial questions? Ask TVC!</title>
		<link>http://feedproxy.google.com/~r/EdmundTse/~3/cUzMQeKD_iM/</link>
		<comments>http://www.edmundtse.com/2010/08/12/tech-entrepreneurial-questions-ask-tvc/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 21:00:06 +0000</pubDate>
		<dc:creator>Edmund Tse</dc:creator>
				<category><![CDATA[USYD]]></category>
		<category><![CDATA[entrpreneur]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.edmundtse.com/?p=667</guid>
		<description><![CDATA[This semester, I&#8217;m doing a entrepreneurial course as a finale to my 5 years undergrad at uni. The course is run by Matt Barrie (CEO, Freelancer.com) and Bill Bartee (Managing Partner, Southern Cross Ventures). A feature of this course is that it is heavily industry-focused, and every week, we have successful real-world entrepreneurs (not just [...]]]></description>
			<content:encoded><![CDATA[<p>This semester, I&#8217;m doing a entrepreneurial course as a finale to my 5 years undergrad at uni. The course is run by Matt Barrie (CEO, Freelancer.com) and Bill Bartee (Managing Partner, Southern Cross Ventures).</p>
<p>A feature of this course is that it is heavily industry-focused, and every week, we have <strong>successful real-world entrepreneurs</strong> (not just a lecturer) as guest speakers to share their experience and expertise.</p>
<p><a href="http://asktvc.nfshost.com/">Ask TVC</a> is a site our group have launched to share this exclusive opportunity with the world. If you are running a business, or thinking about getting into the game, then fire your questions away. We&#8217;ll gather the <strong>top rated questions </strong>for each speaker and we&#8217;ll post the <strong>answers </strong>after the lecture.</p>
<p>The <a href="http://asktvc.nfshost.com/tjoos.html">answers to Tjoos.com</a> (Kim Chen and Bart Jallema) questions are now posted, and we still have <a href="http://asktvc.nfshost.com/viocorp.html">Viocorp (Ian Gardiner)</a>, <a href="http://asktvc.nfshost.com/omnisio.html">Omnisio (now YouTube; Ryan Junee)</a>, <a href="http://asktvc.nfshost.com/atlassian.html">Atlassian (Mike Cannon-Brookes)</a>, and many more to come!</p>
<p style="text-align: center;"><a href="http://asktvc.nfshost.com/tjoos.html"><img style="display: inline; border: 0px;" title="tjoos" src="http://www.edmundtse.com/wp-content/uploads/2010/08/tjoos.png" border="0" alt="tjoos" width="100" height="100" /></a> <a href="http://asktvc.nfshost.com/viocorp.html"><img style="display: inline; border: 0px;" title="viocorp" src="http://www.edmundtse.com/wp-content/uploads/2010/08/viocorp.png" border="0" alt="viocorp" width="100" height="100" /></a> <a href="http://asktvc.nfshost.com/omnisio.html"><img style="display: inline; border: 0px;" title="omnisio" src="http://www.edmundtse.com/wp-content/uploads/2010/08/omnisio.png" border="0" alt="omnisio" width="100" height="100" /></a> <a href="http://asktvc.nfshost.com/atlassian.html"><img style="display: inline; border: 0px;" title="atlassian" src="http://www.edmundtse.com/wp-content/uploads/2010/08/atlassian.png" border="0" alt="atlassian" width="100" height="100" /></a></p>
<p>So check us out at <a title="Ask TVC" href="http://asktvc.nfshost.com/">asktvc.nfshost.com</a> and let us know what you think.
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F08%2F12%2Ftech-entrepreneurial-questions-ask-tvc%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F08%2F12%2Ftech-entrepreneurial-questions-ask-tvc%2F&amp;source=EdmundTse&amp;style=normal&amp;service=bit.ly&amp;service_api=R_d69ba9a685adc250ec33f1c4f39657f8" height="61" width="50" /><br />
			</a>
		</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EdmundTse?a=cUzMQeKD_iM:muTcGbs2nM4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=cUzMQeKD_iM:muTcGbs2nM4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=cUzMQeKD_iM:muTcGbs2nM4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EdmundTse?i=cUzMQeKD_iM:muTcGbs2nM4:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=cUzMQeKD_iM:muTcGbs2nM4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=cUzMQeKD_iM:muTcGbs2nM4:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EdmundTse/~4/cUzMQeKD_iM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.edmundtse.com/2010/08/12/tech-entrepreneurial-questions-ask-tvc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.edmundtse.com/2010/08/12/tech-entrepreneurial-questions-ask-tvc/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=tech-entrepreneurial-questions-ask-tvc</feedburner:origLink></item>
		<item>
		<title>The story behind my website’s new look</title>
		<link>http://feedproxy.google.com/~r/EdmundTse/~3/X-E_nbAovzY/</link>
		<comments>http://www.edmundtse.com/2010/08/07/the-story-behind-my-websites-new-look/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 12:39:19 +0000</pubDate>
		<dc:creator>Edmund Tse</dc:creator>
				<category><![CDATA[Admin]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.edmundtse.com/?p=655</guid>
		<description><![CDATA[You might have noticed that my blog has a new theme! It’s wonderful that with WordPress, changing to a new theme only takes a few mouse clicks. However, there was a bit of drama behind why I made the change &#8211; unfortunate, but a valuable experience indeed. My website was hacked. On 3 Aug 10 [...]]]></description>
			<content:encoded><![CDATA[<p>You might have noticed that my blog has a new theme! It’s wonderful that with WordPress, changing to a new theme only takes a few mouse clicks.</p>
<p><a href="http://www.edmundtse.com/wp-content/uploads/2010/08/NewLook.png"><img style="display: inline; border-width: 0px;" title="New blog theme" src="http://www.edmundtse.com/wp-content/uploads/2010/08/NewLook_thumb.png" border="0" alt="New blog theme" width="500" height="342" /></a></p>
<p>However, there was a bit of drama behind why I made the change &#8211; unfortunate, but a valuable experience indeed. My website was hacked.</p>
<p><span id="more-655"></span></p>
<p>On 3 Aug 10 at 1532h, I received a notification email from my blog telling me that a password reset via forgotten password function has been actioned successfully. Knowing that I am the only registered blog user, this was one of two scenarios: either it was a hoax email, or my blog had been compromised (I&#8217;ve blurred the name of the hacker who claimed to be responsible, to protect his/her identity):</p>
<p><a href="http://www.edmundtse.com/wp-content/uploads/2010/08/hacked.png"><img style="display: inline; border: 0px;" title="Website hacked" src="http://www.edmundtse.com/wp-content/uploads/2010/08/hacked_thumb.png" border="0" alt="Website hacked" width="500" height="400" /></a></p>
<p>By the time I read the email, I was on my way home from uni, so the only thing I could do was to assess the situation to find out what has happened. Loading up my website from my phone, it was very clear that my website had been compromised. The immediate action for this security breach was to shut it down completely, but unfortunately I didn&#8217;t have access to my web host password then. It&#8217;ll have to wait until I get home. I seems that it was a website defacing attack, hopefully with minimal damage.</p>
<p>So, by 1730h, I&#8217;ve suspended the entire website first to stop the defacement from being accessible by the public, and then I proceeded to assess the damage. The database content was intact, WordPress itself was intact and functional, and the only damage I could find was to the WordPress theme. That black page really does not look like Sadish&#8217;s MistyLook theme. I&#8217;ve established what I needed to do fix the damages and recover from this incident. While I&#8217;m at it, why not choose a new theme for a makeover!</p>
<p>At 1945h, I reactivated my website, regained control over my WordPress account, but restricted it so no one else has access to the site while it was staging. By 2400h, and after a period of testing, my blog was good to go again. With a brand new theme to replace one that was hacked.</p>
<p>Now, what I still don&#8217;t understand is, how was it possible that my account email address was changed (so password reset could succeed). Was it through some kind of SQL injection? Have you had a similar experience, and what did you do?</p>
<p>All that I&#8217;m worrying about now is whether or not a backdoor was left somewhere I couldn&#8217;t find&#8230; Without knowing the mechanism of entry, how do I take steps to ensure that it doesn&#8217;t get exploited the same way again?
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F08%2F07%2Fthe-story-behind-my-websites-new-look%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F08%2F07%2Fthe-story-behind-my-websites-new-look%2F&amp;source=EdmundTse&amp;style=normal&amp;service=bit.ly&amp;service_api=R_d69ba9a685adc250ec33f1c4f39657f8" height="61" width="50" /><br />
			</a>
		</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EdmundTse?a=X-E_nbAovzY:8mkzGqa707c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=X-E_nbAovzY:8mkzGqa707c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=X-E_nbAovzY:8mkzGqa707c:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EdmundTse?i=X-E_nbAovzY:8mkzGqa707c:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=X-E_nbAovzY:8mkzGqa707c:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=X-E_nbAovzY:8mkzGqa707c:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EdmundTse/~4/X-E_nbAovzY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.edmundtse.com/2010/08/07/the-story-behind-my-websites-new-look/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.edmundtse.com/2010/08/07/the-story-behind-my-websites-new-look/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=the-story-behind-my-websites-new-look</feedburner:origLink></item>
		<item>
		<title>pv – a Python library to monitor/control PV Inverters</title>
		<link>http://feedproxy.google.com/~r/EdmundTse/~3/qSDSiWOOfYE/</link>
		<comments>http://www.edmundtse.com/2010/07/09/pv-a-python-library-to-monitorcontrol-pv-inverters/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 02:41:29 +0000</pubDate>
		<dc:creator>Edmund Tse</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Mini-Projects]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[electricity]]></category>
		<category><![CDATA[engineering]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[solar]]></category>

		<guid isPermaLink="false">http://www.edmundtse.com/?p=622</guid>
		<description><![CDATA[After having the solar electricity system installed, I can monitor the energy output of the inverter using Pro Control. However, because the software runs on Windows, I’d have to have a PC turned on just for that purpose wasting quite a bit of energy. So, my goal is to use a low-power embedded Debian box [...]]]></description>
			<content:encoded><![CDATA[<p>After having the solar electricity system installed, I can monitor the energy output of the inverter using Pro Control. However, because the software runs on Windows, I’d have to have a PC turned on just for that purpose wasting quite a bit of energy. So, my goal is to use a low-power embedded Debian box (which is usually on) to do the monitoring. Instead of just writing an application to do the job, I’ve decided to write a library others can use to write their own custom logging software.</p>
<p><strong>pv can be found at </strong><a title="http://pv.codeplex.com/" href="http://pv.codeplex.com/"><strong>http://pv.codeplex.com/</strong></a>, and should work for you if you have a Carbon Management Solutions CMS-2000 or Schneider Electric SunEzy 600E (judging from a sample protocol exchange).</p>
<p>I’ll have to give full credit to the folks at <a href="http://www.solarfreaks.com/cms2000-inverter-rs232-serial-port-hack-cms-2000-rs232-t271.html">http://www.solarfreaks.com/cms2000-inverter-rs232-serial-port-hack-cms-2000-rs232-t271.html</a> who did the initial work on reverse engineering the communication protocols. Building on what has already been done on working out the protocol, and doing a bit of reverse engineering myself, the library supports sending arbitrary data frames for further exploring, as well as the known protocols.</p>
<p> <span id="more-622"></span>
<p>JinbaIttai wrote a Perl script to poll the inverter, but unfortunately I don’t particular like Perl. So, I decided to write my own in my language of choice – Python. Also, a word of thanks to Ingmar for providing a sample of the protocol for the SunEzy 600E.</p>
<p>There are still quite a number of data fields that remains a mystery – getting a hold of the protocol from the CMS-10000 would really, really help.</p>
<p>Here’s a list of the features in the library:</p>
<ul>
<li>Craft custom frames to be sent to the serial port</li>
<li>Reads inverter parameters and status information</li>
<li>Verifies checksum for received frames</li>
<li>Enumerates all known messages for quick reference</li>
</ul>
<p>The module comes with a working example. Just run the package like so:</p>
<p><a href="http://www.edmundtse.com/wp-content/uploads/2010/07/pv.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="pv" border="0" alt="pv" src="http://www.edmundtse.com/wp-content/uploads/2010/07/pv_thumb.png" width="335" height="480" /></a> </p>
<p>The code for this sample can be found in <a href="http://pv.codeplex.com/SourceControl/changeset/view/05ac09873c48#__main__.py">__main__.py</a>.</p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F07%2F09%2Fpv-a-python-library-to-monitorcontrol-pv-inverters%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F07%2F09%2Fpv-a-python-library-to-monitorcontrol-pv-inverters%2F&amp;source=EdmundTse&amp;style=normal&amp;service=bit.ly&amp;service_api=R_d69ba9a685adc250ec33f1c4f39657f8" height="61" width="50" /><br />
			</a>
		</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EdmundTse?a=qSDSiWOOfYE:geomo_bx6UE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=qSDSiWOOfYE:geomo_bx6UE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=qSDSiWOOfYE:geomo_bx6UE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EdmundTse?i=qSDSiWOOfYE:geomo_bx6UE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=qSDSiWOOfYE:geomo_bx6UE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=qSDSiWOOfYE:geomo_bx6UE:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EdmundTse/~4/qSDSiWOOfYE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.edmundtse.com/2010/07/09/pv-a-python-library-to-monitorcontrol-pv-inverters/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.edmundtse.com/2010/07/09/pv-a-python-library-to-monitorcontrol-pv-inverters/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=pv-a-python-library-to-monitorcontrol-pv-inverters</feedburner:origLink></item>
		<item>
		<title>Installing Solar Panels to Generate Grid-fed Electricity</title>
		<link>http://feedproxy.google.com/~r/EdmundTse/~3/RhOx5bg1L-g/</link>
		<comments>http://www.edmundtse.com/2010/07/08/installing-solar-panels-to-generate-grid-fed-electricity/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 06:48:24 +0000</pubDate>
		<dc:creator>Edmund Tse</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[electricity]]></category>
		<category><![CDATA[solar]]></category>

		<guid isPermaLink="false">http://www.edmundtse.com/?p=617</guid>
		<description><![CDATA[Not long ago, we took advantage of the various NSW government rebates plus the massive 66c/kWh EnergyAustralia feed-in tariff, and had solar panels installed on the roof of our house by Andrew Hanna Electrical. The specs of our system are as follows: Carbon Management Solutions CMS-2000 grid interactive inverter 10x Solar Enertech SE185-72M 185W Monocrystalline [...]]]></description>
			<content:encoded><![CDATA[<p>Not long ago, we took advantage of the various <abbr title="New South Wales">NSW</abbr> government rebates plus the massive 66c/kWh <a href="http://www.energyaustralia.com.au/State/NSW/Residential/Products-and-services/Solar-power/Solar-tariffs.aspx">EnergyAustralia feed-in tariff</a>, and had solar panels installed on the roof of our house by <a href="http://www.hannaelectrical.com/">Andrew Hanna Electrical</a>. The specs of our system are as follows:</p>
<ul>
<li>Carbon Management Solutions <a href="http://www.solaraustralia.com.au/solar_grid_feed_inverter_orion.html">CMS-2000</a> grid interactive inverter</li>
<li>10x <a href="http://www.solare-power.com/">Solar Enertech</a> <a href="http://www.carbonmanagement.com.au/Panel_170w.pdf">SE185-72M</a> 185W Monocrystalline Silicon PV Modules</li>
</ul>
<p><a title="IMG_8714.jpg" href="http://www.flickr.com/photos/11137865@N06/4690322907/"><img style="display: inline; margin-left: 0px; margin-right: 0px;" title="CMS-2000 Inverter" src="http://farm5.static.flickr.com/4037/4690322907_be135e36a0_m.jpg" border="0" alt="CMS-2000 Inverter" align="left" /></a></p>
<p>During the installation, they’ve kindly put a Cat5 cable through the house for the RS-232 serial connection from the PV inverter to the computer. The CMS-2000 is basically a re-badged Solar Energy Australia “<a href="http://www.solaraustralia.com.au/solar_grid_feed_inverter_orion.html">Orion</a>” grid feed inverter, which comes with monitoring software “Pro Control” to log data from the inverter. Armed with this software, we can now pull some interesting data to see how much energy we generate at various times throughout the day.</p>
<p><a title="IMG_8741.jpg" href="http://www.flickr.com/photos/11137865@N06/4690372543/"><img title="Solar Panels" src="http://farm5.static.flickr.com/4057/4690372543_c352e448db.jpg" border="0" alt="Solar Panels" /></a></p>
<p>The only problem is, it doesn’t make sense to have a computer switched on 24&#215;7 just to monitor the inverter box – it’d be a massive waste of energy. So the fun begins when I want to monitor the solar inverter from a low-power, embedded computer which is actually a QNAP TS-109 <abbr title="Network Attached Storage">NAS</abbr> running my favourite Debian linux. More on this in upcoming posts.
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F07%2F08%2Finstalling-solar-panels-to-generate-grid-fed-electricity%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F07%2F08%2Finstalling-solar-panels-to-generate-grid-fed-electricity%2F&amp;source=EdmundTse&amp;style=normal&amp;service=bit.ly&amp;service_api=R_d69ba9a685adc250ec33f1c4f39657f8" height="61" width="50" /><br />
			</a>
		</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EdmundTse?a=RhOx5bg1L-g:GVGrLnh9FvY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=RhOx5bg1L-g:GVGrLnh9FvY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=RhOx5bg1L-g:GVGrLnh9FvY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EdmundTse?i=RhOx5bg1L-g:GVGrLnh9FvY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=RhOx5bg1L-g:GVGrLnh9FvY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=RhOx5bg1L-g:GVGrLnh9FvY:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EdmundTse/~4/RhOx5bg1L-g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.edmundtse.com/2010/07/08/installing-solar-panels-to-generate-grid-fed-electricity/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.edmundtse.com/2010/07/08/installing-solar-panels-to-generate-grid-fed-electricity/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=installing-solar-panels-to-generate-grid-fed-electricity</feedburner:origLink></item>
		<item>
		<title>Study notes for ELEC5616 Computer and Network Security</title>
		<link>http://feedproxy.google.com/~r/EdmundTse/~3/22aLENNa8ww/</link>
		<comments>http://www.edmundtse.com/2010/07/03/study-notes-for-elec5616-computer-and-network-security/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 02:07:00 +0000</pubDate>
		<dc:creator>Edmund Tse</dc:creator>
				<category><![CDATA[USYD]]></category>
		<category><![CDATA[engineering]]></category>
		<category><![CDATA[lecture]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.edmundtse.com/2010/07/03/study-notes-for-elec5616-computer-and-network-security/</guid>
		<description><![CDATA[After a bit of distraction, my study notes for ELEC5616 Computer and Network Security is finally finished and have been posted. As usual, it’s up my my Sydney Uni page.]]></description>
			<content:encoded><![CDATA[<p>After a bit of distraction, my study notes for ELEC5616 Computer and Network Security is finally finished and have been posted. As usual, it’s up my my <a href="http://www.edmundtse.com/usyd/">Sydney Uni</a> page.
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F07%2F03%2Fstudy-notes-for-elec5616-computer-and-network-security%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F07%2F03%2Fstudy-notes-for-elec5616-computer-and-network-security%2F&amp;source=EdmundTse&amp;style=normal&amp;service=bit.ly&amp;service_api=R_d69ba9a685adc250ec33f1c4f39657f8" height="61" width="50" /><br />
			</a>
		</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EdmundTse?a=22aLENNa8ww:nAk1BTN1Wmo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=22aLENNa8ww:nAk1BTN1Wmo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=22aLENNa8ww:nAk1BTN1Wmo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EdmundTse?i=22aLENNa8ww:nAk1BTN1Wmo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=22aLENNa8ww:nAk1BTN1Wmo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=22aLENNa8ww:nAk1BTN1Wmo:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EdmundTse/~4/22aLENNa8ww" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.edmundtse.com/2010/07/03/study-notes-for-elec5616-computer-and-network-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.edmundtse.com/2010/07/03/study-notes-for-elec5616-computer-and-network-security/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=study-notes-for-elec5616-computer-and-network-security</feedburner:origLink></item>
		<item>
		<title>Mini-Project: Command line speech synth tool for Windows</title>
		<link>http://feedproxy.google.com/~r/EdmundTse/~3/N94DeE3xllU/</link>
		<comments>http://www.edmundtse.com/2010/07/03/mini-project-command-line-speech-synth-tool-for-windows/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 00:15:44 +0000</pubDate>
		<dc:creator>Edmund Tse</dc:creator>
				<category><![CDATA[Mini-Projects]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[speech]]></category>
		<category><![CDATA[synth]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.edmundtse.com/?p=595</guid>
		<description><![CDATA[The story behind this mini-project is, a friend of mine mentioned how he would SSH into his Mac at home and use “say” to send a short message to his parents, just like in a past XKCD webcomic: Mac users, lucky you. You get a Terminal utility called “say” that converts text to speech. Windows [...]]]></description>
			<content:encoded><![CDATA[<p>The story behind this mini-project is, a friend of mine mentioned how he would SSH into his Mac at home and use “say” to send a short message to his parents, just like in a past XKCD webcomic:</p>
<p><a href="http://xkcd.com/530/"><img title="Sadly, this is a true story.  At least I learned about the OS X 'say' command." src="http://imgs.xkcd.com/comics/im_an_idiot.png" alt="" width="500" height="296alt=&quot;I'm" /></a></p>
<p>Mac users, lucky you. You get a Terminal utility called “say” that converts text to speech. Windows doesn’t come with this tool, so I thought, it couldn’t be that difficult to make my own command line speech synth tool for Windows.</p>
<p><span id="more-595"></span></p>
<p>After a bit of research, I found that it’s really quite easy to make thanks to the Speech libraries in the .NET framework. Yep – no more than 30 lines of spaced out C# code:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Speech.Synthesis</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">namespace</span> speech
<span style="color: #000000;">&#123;</span>
    <span style="color: #FF0000;">class</span> say
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">static</span> SpeechSynthesizer synth <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> SpeechSynthesizer<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> Main<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> args<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>args.<span style="color: #0000FF;">Length</span> <span style="color: #008000;">==</span> <span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                InteractiveMode<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                return<span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
&nbsp;
            synth.<span style="color: #0000FF;">Speak</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span>.<span style="color: #0000FF;">Join</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot; &quot;</span>, args<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> InteractiveMode<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #FF0000;">string</span> line<span style="color: #008000;">;</span>
            <span style="color: #0600FF;">while</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>line <span style="color: #008000;">=</span> Console.<span style="color: #0000FF;">ReadLine</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">!=</span> <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                synth.<span style="color: #0000FF;">Speak</span><span style="color: #000000;">&#40;</span>line<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>This application can either take its input as command line arguments, or from standard input if it is started without any arguments.</p>
<p>For example:</p>
<pre>say.exe foo
(computer says “foo”)
say.exe foo bar
(computer says “foo bar”)
say.exe “foo bar”
(computer says “foo bar”)
say.exe
(computer waits for further input)
foo bar
(computer says “foo bar” then waits for further input)
CTRL+Z then ENTER exits the application</pre>
<p><strong>Source code</strong>: <a href="http://www.edmundtse.com/wp-content/uploads/2010/07/speech.zip">Speech Synthesiser VS10 Project</a> (.zip, 38KB)<br />
<strong> Binary file</strong>: <a href="http://www.edmundtse.com/wp-content/uploads/2010/07/say.exe">say.exe</a> (.exe, 7KB) requires .NET Client Profile 4.0</p>
<p>Enjoy!
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F07%2F03%2Fmini-project-command-line-speech-synth-tool-for-windows%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F07%2F03%2Fmini-project-command-line-speech-synth-tool-for-windows%2F&amp;source=EdmundTse&amp;style=normal&amp;service=bit.ly&amp;service_api=R_d69ba9a685adc250ec33f1c4f39657f8" height="61" width="50" /><br />
			</a>
		</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EdmundTse?a=N94DeE3xllU:P0E0mn8goUk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=N94DeE3xllU:P0E0mn8goUk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=N94DeE3xllU:P0E0mn8goUk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EdmundTse?i=N94DeE3xllU:P0E0mn8goUk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=N94DeE3xllU:P0E0mn8goUk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=N94DeE3xllU:P0E0mn8goUk:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EdmundTse/~4/N94DeE3xllU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.edmundtse.com/2010/07/03/mini-project-command-line-speech-synth-tool-for-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.edmundtse.com/2010/07/03/mini-project-command-line-speech-synth-tool-for-windows/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=mini-project-command-line-speech-synth-tool-for-windows</feedburner:origLink></item>
		<item>
		<title>Study notes and a brief review of ELEC5509 Mobile Networks</title>
		<link>http://feedproxy.google.com/~r/EdmundTse/~3/_u4ssriG_HY/</link>
		<comments>http://www.edmundtse.com/2010/06/28/study-notes-and-a-brief-review-of-elec5509-mobile-networks/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 02:11:52 +0000</pubDate>
		<dc:creator>Edmund Tse</dc:creator>
				<category><![CDATA[USYD]]></category>
		<category><![CDATA[lecture]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[network]]></category>

		<guid isPermaLink="false">http://www.edmundtse.com/2010/06/28/study-notes-and-a-brief-review-of-elec5509-mobile-networks/</guid>
		<description><![CDATA[Exams for semester 1 this year are finally over. The first set of notes to go up is for ELEC5509 Mobile Networks taught by Abbas Jamalipour. As usual, you’ll be able to find it at my Sydney Uni section of the blog. I would have to say that this course is one of the least [...]]]></description>
			<content:encoded><![CDATA[<p>Exams for semester 1 this year are finally over. The first set of notes to go up is for ELEC5509 Mobile Networks taught by Abbas Jamalipour. As usual, you’ll be able to find it at my <a href="http://www.edmundtse.com/usyd/">Sydney Uni section of the blog</a>.</p>
<p>I would have to say that this course is one of the least enjoyable and least rewarding courses I’ve done over the years, and would strongly advise those doing Telecommunications Engineering at USYD to not take this course.</p>
<p>Read on for a brief review of the course.</p>
<p><span id="more-594"></span></p>
<p>This course was designed to give an insight into a range of mobile communication technologies, as well as some experience in research.</p>
<p>Even though it is a level 5 course, suitable for final year undergraduates or postgraduates, the course doesn’t go into the topics covered with enough detail to be satisfying. It turned out that much of the course is far too general – knowing that something exists and having a vague idea of what it’s used for would be enough to pass the course. I expected that to be assumed background knowledge so that we can dig into each of the topics in detail during the course. Instead, it was all that’s required.</p>
<p>Looking back having finished this course, it’s difficult to point identify much new knowledge I’ve gained from this course, because most of them have been touch on in the past in previous courses. Of the amount of knowledge actually gained, it really doesn’t seem to be all that useful for any intents and purposes.</p>
<p>I was impressed that teaching staff did personally solicit feedback from students to try and improve the course, but unfortunately in the process of giving feedback, I’ve been subjected to numerous reasons why I’m wrong about the quality of the course, and how I’m supposed to to like it. So much for actively listening to feedback. The stunning results are evident when you look at what’s actually been taught in this course. The latest and greatest in mobile technology (as at about 7 years ago). That’s why we’re still learning about AMPS as a mobile phone system, the reason why we apparently haven’t implemented E911 service, and what the lecturer believes we should expect to see in fourth generation (4G) mobiles and why it’s apparently still a fantasy. As I said, this course is overly outdated.</p>
<p>How about an introduction to research? Surely that can’t become outdated. After all, research is a skill. Things like writing a literature survey we still do today! Unfortunately this course’s idea of research was reflected in the assignment. Randomly allocated groups of 4 students were assigned a topic (no choice given!) and was tasked to “summarise” 5 IEEE academic papers in 3 pages of writing including abstract, intro, conclusion and references. That’s right – not a literature survey but just a 5 summaries of papers restricted to being IEEE published. So why are we not allowed to “summarise” possibly better written papers from a non-IEEE journal/conference? Maybe that’s what research is about.</p>
<p>For the course tutorials, what happens is that there is a tutor tasked to read out answers to a series of homework questions we were required to complete before class. Sounds marginally reasonable right? Think of it this way: You’ve just spent a number of hours interpreting poorly written questions and subsequently finding out the required information to write a response. We’re limited by the length of response so there’s no point in going into detail. Having done all that studying, you sit into the 1-2 hour long tutorial just to listen to sample answers read out to you, some of which are obviously inaccurate or incorrect based on the state of today’s technology.</p>
<p>All up, the combination of outdated, shallow content and poorly designed assessments make for an unenjoyable and unrewarding course. My study notes have now been uploaded and is available on my USYD page.</p>
<p>Meanwhile, I’m finalising my course notes for the ELEC5616 Computer and Network Security course, which is among the best courses I’ve done.
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F06%2F28%2Fstudy-notes-and-a-brief-review-of-elec5509-mobile-networks%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F06%2F28%2Fstudy-notes-and-a-brief-review-of-elec5509-mobile-networks%2F&amp;source=EdmundTse&amp;style=normal&amp;service=bit.ly&amp;service_api=R_d69ba9a685adc250ec33f1c4f39657f8" height="61" width="50" /><br />
			</a>
		</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EdmundTse?a=_u4ssriG_HY:gwYzGvwPWoU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=_u4ssriG_HY:gwYzGvwPWoU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=_u4ssriG_HY:gwYzGvwPWoU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EdmundTse?i=_u4ssriG_HY:gwYzGvwPWoU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=_u4ssriG_HY:gwYzGvwPWoU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=_u4ssriG_HY:gwYzGvwPWoU:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EdmundTse/~4/_u4ssriG_HY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.edmundtse.com/2010/06/28/study-notes-and-a-brief-review-of-elec5509-mobile-networks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.edmundtse.com/2010/06/28/study-notes-and-a-brief-review-of-elec5509-mobile-networks/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=study-notes-and-a-brief-review-of-elec5509-mobile-networks</feedburner:origLink></item>
		<item>
		<title>COM interop for applications on Windows Phone 7?</title>
		<link>http://feedproxy.google.com/~r/EdmundTse/~3/KH_gMZmoPu4/</link>
		<comments>http://www.edmundtse.com/2010/05/17/com-interop-for-applications-on-windows-phone-7/#comments</comments>
		<pubDate>Mon, 17 May 2010 07:10:03 +0000</pubDate>
		<dc:creator>Edmund Tse</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://www.edmundtse.com/2010/05/17/com-interop-for-applications-on-windows-phone-7/</guid>
		<description><![CDATA[So recently an image for the phantom phone “HTC Mondrian” was leaked and spattered across the internet. Catching a chunk  of the spatter, I dug in to see what was inside. I noticed something rather interesting, while digging through the “HTC Test Tool” package. There is apparently a “normal app” called BatteryTool: &#60;App xmlns=&#34;&#34; ProductID=&#34;{ae2781c8-7afb-4e16-a643-c9c0ff33fc15}&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>So recently an image for the phantom phone “HTC Mondrian” was leaked and spattered across the internet. Catching a chunk  of the spatter, I dug in to see what was inside.</p>
<p>I noticed something rather interesting, while digging through the “HTC Test Tool” package. There is apparently a “normal app” called BatteryTool:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;App</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">ProductID</span>=<span style="color: #ff0000;">&quot;{ae2781c8-7afb-4e16-a643-c9c0ff33fc15}&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">Title</span>=<span style="color: #ff0000;">&quot;BatteryTool&quot;</span> <span style="color: #000066;">RuntimeType</span>=<span style="color: #ff0000;">&quot;SilverLight&quot;</span> <span style="color: #000066;">Version</span>=<span style="color: #ff0000;">&quot;1.0.0.0&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">Genre</span>=<span style="color: #ff0000;">&quot;NormalApp&quot;</span>  <span style="color: #000066;">Author</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">Description</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">Publisher</span>=<span style="color: #ff0000;">&quot;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
...</pre></div></div>

<p>But yet when we take a look inside the Silverlight .xap file, there is a dll called “COMInterface.dll”. The guess is that HTC’s using COM interop from within the Silverlight application to get access to lower level OS resources.</p>
<p><a href="http://www.edmundtse.com/wp-content/uploads/2010/05/image.png"><img style="display: inline; border: 0px;" title="Inside BatteryTool.xap" src="http://www.edmundtse.com/wp-content/uploads/2010/05/image_thumb.png" border="0" alt="Inside BatteryTool.xap" width="320" height="226" /></a></p>
<p>So even though apps should be running inside its own tightly sealed container in Windows Phone 7, I think it’s quite possible to break out of it via COM. Unfortunately this (ARM?) dll won’t quite work in the x86 WP7 Emulator…
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F05%2F17%2Fcom-interop-for-applications-on-windows-phone-7%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.edmundtse.com%2F2010%2F05%2F17%2Fcom-interop-for-applications-on-windows-phone-7%2F&amp;source=EdmundTse&amp;style=normal&amp;service=bit.ly&amp;service_api=R_d69ba9a685adc250ec33f1c4f39657f8" height="61" width="50" /><br />
			</a>
		</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EdmundTse?a=KH_gMZmoPu4:-dEbSeclIHw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=KH_gMZmoPu4:-dEbSeclIHw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=KH_gMZmoPu4:-dEbSeclIHw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EdmundTse?i=KH_gMZmoPu4:-dEbSeclIHw:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=KH_gMZmoPu4:-dEbSeclIHw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EdmundTse?a=KH_gMZmoPu4:-dEbSeclIHw:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/EdmundTse?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EdmundTse/~4/KH_gMZmoPu4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.edmundtse.com/2010/05/17/com-interop-for-applications-on-windows-phone-7/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.edmundtse.com/2010/05/17/com-interop-for-applications-on-windows-phone-7/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=com-interop-for-applications-on-windows-phone-7</feedburner:origLink></item>
	</channel>
</rss>
