<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Jawnsy's Journal on Life, Software and Engineering</title>
	<atom:link href="http://jawnsy.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jawnsy.wordpress.com</link>
	<description>An Electrical Engineering and Computer Science student documenting his challenges and experiences. Occasional philosophical rants too.</description>
	<lastBuildDate>Mon, 28 Dec 2009 18:10:37 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='jawnsy.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/d18423417a6f0d5f059fdb3bbf21a8dd?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Jawnsy's Journal on Life, Software and Engineering</title>
		<link>http://jawnsy.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://jawnsy.wordpress.com/osd.xml" title="Jawnsy&#8217;s Journal on Life, Software and Engineering" />
		<item>
		<title>Catalyst on Debian</title>
		<link>http://jawnsy.wordpress.com/2009/12/26/catalyst-on-debian/</link>
		<comments>http://jawnsy.wordpress.com/2009/12/26/catalyst-on-debian/#comments</comments>
		<pubDate>Sat, 26 Dec 2009 23:59:40 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Relationships]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Catalyst]]></category>
		<category><![CDATA[CPAN]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Debian Packaging]]></category>
		<category><![CDATA[MojoMojo]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=236</guid>
		<description><![CDATA[Earlier in the year, I wrote a similar article discussing the Catalyst Web Framework and the MojoMojo Wiki software. At the beginning of December 2009, I wrote an article which was published in the Catalyst Advent Calendar. I&#8217;m re-posting it here for posterity, and because it is still relevant to others today.
&#8211;
Introduction

Because Catalyst is a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=236&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Earlier in the year, I wrote a <a href="http://jawnsy.wordpress.com/2009/11/13/catalyst-and-mojomojo-on-debian/">similar article</a> discussing the <a href="http://www.catalystframework.org/" target="_blank">Catalyst Web Framework</a> and the <a href="http://mojomojo.org/" target="_blank">MojoMojo Wiki</a> software. At the beginning of December 2009, I wrote an article which was published in the <a href="http://www.catalystframework.org/calendar/2009/8" target="_blank">Catalyst Advent Calendar</a>. I&#8217;m re-posting it here for posterity, and because it is still relevant to others today.</p>
<p>&#8211;</p>
<h2 id="Introduction">Introduction</h2>
<div id="Introduction_CONTENT">
<p>Because Catalyst is a rapidly evolving project, packages supplied by operating system vendors like Debian, Fedora, Ubuntu, and many others have historically been outdated compared to the stable versions.  In effect, this limited users of Debian&#8217;s package management system to outdated versions of this software.</p>
<p>In 2009, thanks to the efforts of Matt S Trout and many others, Debian&#8217;s Catalyst packages have been improving.  The idea that Debian&#8217;s Perl packages are outdated is an idea that is itself becoming obsolete.  There are many situations where system-wide Debian packages (and similarly, Ubuntu packages) can be preferable to installing software manually via CPAN.</p>
<h2 id="Advantages">Advantages</h2>
<div id="Advantages_CONTENT">
<p>Here are some reasons why packages managed by Debian are preferable to installing packages manually:</p>
<ul>
<li>Unattended installation: the majority of our packages require absolutely no user interaction during installation, in contrast to installs via CPAN.</li>
<li>Quicker installs for binary packages: since binary packages are pre-built, installing the package is as simple as unpacking the package and installing the files to the appropriate locations.  When many modules need to be built (as with Catalyst and MojoMojo), this can result in a significant time savings, especially when one considers rebuilding due to upgrades.</li>
<li>No unnecessary updates: if an update only affects the Win32 platform, for example, it does not make sense to waste bandwidth downloading and installing it.  Our process separates packages with bugfixes and feature additions from those that have no functional difference to users, saving time, bandwidth, and administrative overhead.</li>
<li>Only packages offered by Debian are supported by Debian: if there are bugs in your Debian software, it is our responsibility to help identify and correct them.  Often this means coordinating with the upstream software developers (i.e. the Catalyst community) and working toward a solution together &#8211; but our team takes care of this on your behalf.</li>
<li>Updates occur with the rest of your system: while upgrading your system using aptitude, synaptic, or another package management tool, your Perl packages will be updated as well.  This prevents issues where a system administrator forgets to update CPAN packages periodically, leaving your systems vulnerable to potential security issues.</li>
<li>Important changes are always indicated during package upgrades: if there are changes to the API of a library which can potentially break applications, a supplied Debian.NEWS file will display a notice (either in a dialog box or on the command line) indicating these changes. You will need to install the &#8220;apt-listchanges&#8221; utility to see these.</li>
</ul>
<p>This year has seen greatly improved interaction between the Debian Perl Group and the Catalyst community, which is a trend we&#8217;d like to see continue for many years to come.  As with any open source project, communicating the needs of both communities and continuing to work together as partners will ultimately yield the greatest benefit for everyone.</p>
<h2 id="Disadvantages">Disadvantages</h2>
<div id="Disadvantages_CONTENT">
<p>As with all good things, there are naturally some situations where using Debian Perl packages (or, indeed, most operating-system managed packages) is either impossible, impractical, or undesirable.</p>
<ul>
<li>Inadequate granularity: due to some restrictions on the size of packages being uploaded into Debian, there are plenty of module &#8220;bundles&#8221;, including the main Catalyst module bundle (libcatalyst-modules-perl). Unfortunately, this means you may have more things installed than you need.</li>
<li>Not installable as non-root: if you don&#8217;t have root on the system, or a friendly system administrator, you simply cannot install Debian packages, let alone our Perl packages. This can add to complexity for shared hosting scenarios where using our packages would require some virtualization.</li>
<li>Multiple versions: with a solution like <a href="http://search.cpan.org/perldoc?local::lib">local::lib</a>, it&#8217;s possible to install multiple versions of the same package in different locations. This can be important for a number of reasons, including ease of testing and to support your legacy applications. With operating-system based packages, you will always have the most recent version available (and if you are using the stable release, you will always have the most recent serious bug/security fixes installed).</li>
<li>Less useful in a non-homogeneous environment: if you use different operating systems, it can be easier to maintain a single internal CPAN mirror (especially a mini-CPAN installation) than a Debian repository, Ubuntu repository, Fedora/RedHat repository, etc.</li>
</ul>
<p>For my purposes, I use Debian packages for everything because the benefits outweigh the perceived costs. However, this is not the case for everyone in all situations, so it is important to understand that Debian Perl packages are not a panacea.</p>
</div>
<h2 id="Quality_Assurance">Quality Assurance</h2>
<div id="Quality_Assurance_CONTENT">
<p>The Debian Perl Group uses several tools to provide quality assurance for our users.  Chief among them is the Package Entropy Tracker (PET), a dashboard that shows information like the newest upstream versions of modules.  Our bug reports are available in Debian&#8217;s open bug reporting system.</p>
<p>If you have any requests for Catalyst-related modules (or other Perl modules) that you&#8217;d like packaged for Debian, please either contact me directly (via IRC or email) or file a &#8220;Request For Package&#8221; (RFP) bug. If you have general questions or would like to chat with us, you&#8217;re welcome to visit us at any time &#8211; we hang around on irc.debian.org, #debian-perl.</p>
</div>
<h2 id="SEE_ALSO">See Also</h2>
<div id="SEE_ALSO_CONTENT">
<ul>
<li>Our IRC channel, irc.debian.org (OFTC), channel #debian-perl</li>
<li><a href="http://pkg-perl.alioth.debian.org/cgi-bin/pet.cgi" target="_blank">Package Entropy Tracker</a> is a dashboard where we can see what needs to be updated. It allows us (and others, if interested!) to easily monitor our workflow, and also contains links to our repository.</li>
<li>Our <a href="http://wiki.debian.org/Teams/DebianPerlGroup/Welcome" target="_blank">welcome page</a> talks about what we do and how you (yes you!) can join. You don&#8217;t need to be a Debian Developer to join the group (actually, I&#8217;m not yet a DD and yet I maintain 300+ packages through the group).</li>
<li>This guide explains <a href="http://pkg-perl.alioth.debian.org/howto/RFP.html" target="_blank">how to file a Request For Package (RFP) bug</a>, so that the modules you use can be added to the Debian archive. Note that Debian is subject to many restrictions, so issues like inadequate copyright information may prevent the package from entering the archive.</li>
</ul>
</div>
<h2 id="STATISTICS">Statistics</h2>
<div id="STATISTICS_CONTENT">
<p>Here are some statistics of note:</p>
<ul>
<li>We maintain over 1400+ packages as of today. For details, see our <a href="http://qa.debian.org/developer.php?login=pkg-perl-maintainers@lists.alioth.debian.org&amp;comaint=yes" target="_blank">Quality Assurance</a> report</li>
<li>We have quite a few active <a href="https://alioth.debian.org/project/memberlist.php?group_id=30274" target="_blank">members</a>; probably around 10 or 20</li>
</ul>
</div>
<h2>Acknowledgments</h2>
<div id="ACKNOWLEDGMENTS_CONTENT">
<p>Thanks to Matt S Trout (mst) for working so closely with the group to help both communities achieve our goal of increasing Catalyst&#8217;s profile. Also thanks to Bogdan Lucaciu (zamolxes) for inviting us to contribute this article, and Florian Ragwitz (rafl) for his review and feedback.</p>
<p>Everything that is good in nature comes from cooperation. Neither Catalyst, nor Perl, nor Debian Perl packages could exist without the contributions of countless others. We all stand on the shoulders of giants.</p>
</div>
</div>
</div>
Posted in Relationships, Software Engineering Tagged: Catalyst, CPAN, Debian, Debian Packaging, MojoMojo <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/236/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=236&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/12/26/catalyst-on-debian/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>
	</item>
		<item>
		<title>Modelling Distributed Generation using PowerWorld</title>
		<link>http://jawnsy.wordpress.com/2009/12/04/modelling-distributed-generation-using-powerworld/</link>
		<comments>http://jawnsy.wordpress.com/2009/12/04/modelling-distributed-generation-using-powerworld/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 15:00:59 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Electrical Engineering]]></category>
		<category><![CDATA[Power Systems]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Power System Stability]]></category>
		<category><![CDATA[Shunt Compensation]]></category>
		<category><![CDATA[Synchronous Machines]]></category>
		<category><![CDATA[Infinite Bus]]></category>
		<category><![CDATA[PowerWorld Simulator]]></category>
		<category><![CDATA[Distributed Generation]]></category>
		<category><![CDATA[Green Energy]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=226</guid>
		<description><![CDATA[My second &#8220;lab&#8221; for ECE4464: Power Systems II studied the effects of distributed generation (in particular, a large-scale wind turbine generation project) on the power system. Like ECE3333 (Power Systems I), this course is being taught by Prof. Rajiv Varma, Ph.D.
Using PowerWorld&#8217;s Simulator software, we connected a large four-reactor nuclear generation plant (750MW per reactor, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=226&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>My second &#8220;lab&#8221; for ECE4464: Power Systems II studied the effects of distributed generation (in particular, a large-scale wind turbine generation project) on the power system. Like ECE3333 (Power Systems I), this course is being taught by Prof. Rajiv Varma, Ph.D.</p>
<p>Using <a href="http://www.powerworld.com/" target="_blank">PowerWorld</a>&#8217;s Simulator software, we connected a large four-reactor nuclear generation plant (750MW per reactor, constant output) via two parallel transmission lines with a large city (modeled as an infinite bus). At the midline between the nuclear reactors and the large city, a transformer is installed at the midline bus to supply a different voltage to a nearby town. This town is near the proposed connection point of the Wind Turbine Generation (WTG) project; this project has a peak output of 85MW.</p>
<p>From the objectives:</p>
<blockquote><p>In this lab, our objective is to study the potential impact of integration of distributed generation (in particular, a wind farm) using the PowerWorld Simulator software.  We simulate a very large capacity plant (a nuclear plant consisting of four reactors producing 750 MW each).  Because these reactors are large, they will provide some voltage regulation by supplying or consuming MVARs.</p>
<p>The nuclear plant serves a large city via two parallel transmission circuits, as well as the smaller city at the mid-line of one of these lines.  To simplify this lab, we model the large city as an infinite bus, which consumes any excess power generated by the plant.</p>
<p>In this manner, we can explore various phenomena resulting from distributed generation systems like wind farms, including the effects on power transfer and power system stability.  This lab provides insight on two very important issues in power systems, notably, the addition of distributed generation and the challenges involved with electrifying remote communities.</p></blockquote>
<p>For my full report, see: <a href="http://jawnsy.files.wordpress.com/2009/11/ece4464-lab2-online.pdf">Power Systems 4464 Lab 2</a> (PDF). Note that the small town bus has a constant 20Mvar reactive power demand, with a 40Mvar (nominal) shunt capacitor installed initially. Some modifications are made to the compensation scheme as part of the study and report.</p>
Posted in Electrical Engineering Tagged: Distributed Generation, Green Energy, Infinite Bus, Infrastructure, Power System Stability, Power Systems, PowerWorld Simulator, Shunt Compensation, Synchronous Machines <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/226/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=226&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/12/04/modelling-distributed-generation-using-powerworld/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>
	</item>
		<item>
		<title>A Quick Primer on Power Factor</title>
		<link>http://jawnsy.wordpress.com/2009/11/27/a-quick-primer-on-power-factor/</link>
		<comments>http://jawnsy.wordpress.com/2009/11/27/a-quick-primer-on-power-factor/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 15:00:28 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Electrical Engineering]]></category>
		<category><![CDATA[Power Systems]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Synchronous Machines]]></category>
		<category><![CDATA[Power Factor]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=212</guid>
		<description><![CDATA[In the study of electrical engineering, power factor comes up quite often in terms of its various mathematical definitions, but people seem to overlook its real-world relevance. Though there are some regulations governing power factor, the way residential users are billed for electricity often leaves us in blissful ignorance of the importance of power factor. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=212&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In the study of electrical engineering, <em>p</em><em>ower factor</em> comes up quite often in terms of its various mathematical definitions, but people seem to overlook its real-world relevance. Though there are some regulations governing power factor, the way residential users are billed for electricity often leaves us in blissful ignorance of the importance of power factor. In fact, power factor is a measure of efficiency.</p>
<p>Starting from first principles, let&#8217;s look at the equation for instantaneous power in electrical systems:<a href="http://jawnsy.files.wordpress.com/2009/11/inst_power_eqn.png"><img class="aligncenter size-full wp-image-213" title="Instantaneous Power Equation" src="http://jawnsy.files.wordpress.com/2009/11/inst_power_eqn.png?w=165&#038;h=28" alt="P=IV" width="165" height="28" /></a></p>
<p>Of course, there are similar definitions for mechanical power (which involve torque and speed rather than voltage and current as above).</p>
<p>In the best case, the voltage and current waveforms will be identical, which means that they are both sinusoidal with crests and troughs occurring together. For passive devices like light bulbs (which are purely resistive loads), this is exactly what happens. However, some devices (such as capacitors and inductors) store energy for a short period of time, causing the waveform of the current to be <em>phase shifted</em> or <em>displaced</em>, relative to the voltage wave.</p>
<p>If we use the &#8220;average&#8221; values of voltage and current, we can determine what is known as <em>apparent power</em>. Even though I call them average, what we really use are the &#8220;root-mean-square&#8221; values &#8212; the reasons we use this measure are beyond the scope of this article, but suffice it to say that we can&#8217;t use a normal average for sine since it would simply be zero. For you statisticians out there, RMS is related to <em>standard deviation</em> (it&#8217;s a special case where your mean is zero).</p>
<p><a href="http://jawnsy.files.wordpress.com/2009/11/apparent-power-equation.png"><img class="aligncenter size-full wp-image-216" title="Apparent Power Equation" src="http://jawnsy.files.wordpress.com/2009/11/apparent-power-equation.png?w=122&#038;h=26" alt="" width="122" height="26" /></a>Though its units are identical to those of Power (Watts), we use a different unit convention for this value, the Apparent Power (Volt-Amps, or VA).</p>
<p>Power factor is simply the ratio of real power compared to apparent power:</p>
<p><a href="http://jawnsy.files.wordpress.com/2009/11/powerfactor.png"><img class="aligncenter size-full wp-image-217" title="Power Factor" src="http://jawnsy.files.wordpress.com/2009/11/powerfactor.png?w=64&#038;h=47" alt="Power factor is defined as the ratio of real power versus apparent power" width="64" height="47" /></a>For linear devices which do not store energy, real power and apparent power are the same, so the power factor is 1 (sometimes people call this &#8220;unity power factor&#8221;).</p>
<p>If, however, an energy storage device like an inductor or capacitor stores energy and simply return it back to the source, then the power factor will be reduced (since power is being transmitted over the line, stored temporarily and then sent back). Only real power contributes to work actually done &#8212; whether it be heating your room or turning a motor.</p>
<p>As mentioned earlier, inductors and capacitors cause the voltage and current to be shifted relative to each other. This results in what is called the Displacement Power Factor (the angle, φ, refers to the angular displacement between voltage and current):</p>
<p><a href="http://jawnsy.files.wordpress.com/2009/11/disp-pf.png"><img class="aligncenter size-full wp-image-218" title="Displacement Power Factor" src="http://jawnsy.files.wordpress.com/2009/11/disp-pf.png?w=195&#038;h=33" alt="Displacement power factor is equal to the cosine of the angle between current and voltage" width="195" height="33" /></a>However, as we are moving forward in semiconductor techologies, we are increasingly encountering more and more nonlinear devices which introduce something known as Harmonic Distortion. Basically, it makes the current waveform &#8220;noisy&#8221; compared to the voltage reference; usually this is because a device switches on and off (goes from periods of drawing some current to zero current) instead of merely being proportional to applied voltage.</p>
<p>Total harmonic distortion (THD) is a measure of how &#8220;noisy&#8221; the current waveform is; for example, if you draw lots of power in short-duration bursts, the current wave won&#8217;t look like a sinusoidal waveform at all. This is also known as a <em>shape factor</em> since it will be 1 (unity) for perfectly sinusoidal current, and smaller otherwise.</p>
<p><a href="http://jawnsy.files.wordpress.com/2009/11/dist-pf.png"><img class="aligncenter size-full wp-image-219" title="Distortion Power Factor" src="http://jawnsy.files.wordpress.com/2009/11/dist-pf.png?w=266&#038;h=79" alt="Distortion power factor is equal to one divided by the square root of one plus the square of the Total Harmonic Distortion" width="266" height="79" /></a>THD is measured as a percentage, so its value is somewhere between 0 and 1.</p>
<p>The overall power factor takes both distortion (current waveform shape) and displacement (current waveform phase difference, relative to the voltage) into account:</p>
<p><a href="http://jawnsy.files.wordpress.com/2009/11/overall-power-factor.png"><img class="aligncenter size-full wp-image-220" title="Power Factor in terms of distortion and displacement" src="http://jawnsy.files.wordpress.com/2009/11/overall-power-factor.png?w=335&#038;h=66" alt="Power factor is equal to the displacement power factor multiplied by the distortion power factor" width="335" height="66" /></a>So now we have identified an equation useful for determining the overall power factor of your equipment, especially for things like computers, cooking, heating, washing/drying of clothes, etc. But what does <em>power factor</em> have to do with <em>efficiency</em>?</p>
<p>To answer that question, let&#8217;s rearrange our power factor vs (real and apparent) power equation to look at what happens to current. We&#8217;ll be looking at RMS current, which is important because it is one of the primary factors that determines maximum loading of a given power line.</p>
<p style="text-align:left;"><a href="http://jawnsy.files.wordpress.com/2009/11/power-factor-and-rms-current.png"><img class="aligncenter size-full wp-image-222" title="Effect of Power Factor on RMS Current" src="http://jawnsy.files.wordpress.com/2009/11/power-factor-and-rms-current.png?w=198&#038;h=80" alt="RMS current is equal to load power consumption divided by RMS voltage and power factor" width="198" height="80" /></a></p>
<p style="text-align:left;">Since the amount of power we&#8217;ll need and the RMS voltage (line voltage) are effectively fixed, we can see that power factor and RMS current are inversely related. That is, with a lower power factor, we will require higher RMS current to deliver the same amount of power to our load; our RMS current is lowest when the power factor is 1 (unity).</p>
<p>Since power dissipated across a transmission line is:</p>
<p style="text-align:center;"><a href="http://jawnsy.files.wordpress.com/2009/11/thermal-heating-equation.png"><img class="aligncenter size-full wp-image-221" style="border:0 none;" title="Thermal Heating Equation" src="http://jawnsy.files.wordpress.com/2009/11/thermal-heating-equation.png?w=126&#038;h=39" alt="Power dissipated across a resistor (or transmission line) is determined by the square of RMS current multiplied by resistance" width="126" height="39" /></a></p>
<p style="text-align:left;">There are finite limits on the amount of current that can be transmitted (greater power dissipated results in more heating of the wires, which can cause them to expand significantly or to melt), a unity power factor means a more effectively utilized infrastructure.</p>
<p>If everything we connect to the power system has a low power factor, it will result in an inefficient use of existing infrastructure (since we are transmitting more current than necessary, which also increases total line losses). It also means we will need a greater investment in infrastructure sooner, which is a challenging issue facing electric power utilities responsible for distribution of power.</p>
Posted in Electrical Engineering Tagged: Economics, Electrical Engineering, Infrastructure, Power Factor, Power Systems, Synchronous Machines <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/212/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=212&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/11/27/a-quick-primer-on-power-factor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>

		<media:content url="http://jawnsy.files.wordpress.com/2009/11/inst_power_eqn.png" medium="image">
			<media:title type="html">Instantaneous Power Equation</media:title>
		</media:content>

		<media:content url="http://jawnsy.files.wordpress.com/2009/11/apparent-power-equation.png" medium="image">
			<media:title type="html">Apparent Power Equation</media:title>
		</media:content>

		<media:content url="http://jawnsy.files.wordpress.com/2009/11/powerfactor.png" medium="image">
			<media:title type="html">Power Factor</media:title>
		</media:content>

		<media:content url="http://jawnsy.files.wordpress.com/2009/11/disp-pf.png" medium="image">
			<media:title type="html">Displacement Power Factor</media:title>
		</media:content>

		<media:content url="http://jawnsy.files.wordpress.com/2009/11/dist-pf.png" medium="image">
			<media:title type="html">Distortion Power Factor</media:title>
		</media:content>

		<media:content url="http://jawnsy.files.wordpress.com/2009/11/overall-power-factor.png" medium="image">
			<media:title type="html">Power Factor in terms of distortion and displacement</media:title>
		</media:content>

		<media:content url="http://jawnsy.files.wordpress.com/2009/11/power-factor-and-rms-current.png" medium="image">
			<media:title type="html">Effect of Power Factor on RMS Current</media:title>
		</media:content>

		<media:content url="http://jawnsy.files.wordpress.com/2009/11/thermal-heating-equation.png" medium="image">
			<media:title type="html">Thermal Heating Equation</media:title>
		</media:content>
	</item>
		<item>
		<title>Catalyst and MojoMojo on Debian</title>
		<link>http://jawnsy.wordpress.com/2009/11/13/catalyst-and-mojomojo-on-debian/</link>
		<comments>http://jawnsy.wordpress.com/2009/11/13/catalyst-and-mojomojo-on-debian/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 00:39:05 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Catalyst]]></category>
		<category><![CDATA[CPAN]]></category>
		<category><![CDATA[Customer Experience]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Debian Packaging]]></category>
		<category><![CDATA[Licensing]]></category>
		<category><![CDATA[MojoMojo]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=208</guid>
		<description><![CDATA[I&#8217;ve recently been pushing for greater support for Catalyst and MojoMojo on Debian. For the uninitiated, Catalyst is a Model-View-Controller Framework designed for writing web applications. MojoMojo is a Wiki application based on Catalyst that provides a lot of neat features; while it seems less popular than Wikimedia&#8217;s MediaWiki software, it&#8217;s still got plenty of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=208&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve recently been pushing for greater support for Catalyst and MojoMojo on Debian. For the uninitiated, <a href="http://www.catalystframework.org/" target="_blank">Catalyst</a> is a Model-View-Controller Framework designed for writing web applications. <a href="http://mojomojo.org/" target="_blank">MojoMojo</a> is a Wiki application based on Catalyst that provides a lot of neat features; while it seems less popular than Wikimedia&#8217;s MediaWiki software, it&#8217;s still got plenty of features other wikis don&#8217;t.</p>
<p>Here&#8217;s a blurb about it from their homepage:</p>
<blockquote><p>We also have a bunch of features you won&#8217;t find in every wiki, like an attachment system that automatically makes a web gallery of your photos, live AJAX previews as you are editing your text, and a proper full text search engine built straight into the software.</p></blockquote>
<p>Unfortunately, such a rich feature set comes at a price &#8212; this shiny piece of software has a rather large dependency chain. As a result, building the module (after building its prerequisites) from <a href="http://cpan.org" target="_blank">CPAN</a> is both slow and prone to failure, since each module must be individually retrieved, extracted, built, tested and then installed.</p>
<p>To make matters worse, any failure anywhere in the chain (perhaps a new version of a module breaks things) will cause a complete failure to build the module &#8212; either Catalyst or MojoMojo &#8212; which has some serious implications for production applications.</p>
<p>In Debian, we mitigate this risk by having separate unstable and testing distributions, so if a newer version breaks things in unstable, we will catch it and have a chance to fix it before the package makes it into testing. By packaging these modules for Debian, we get the advantages of a faster installation process (since we&#8217;re installing pre-built binaries) combined with better Quality Assurance.</p>
<p>One of the big issues blocking both of these has been missing copyright information for a lot of modules. I&#8217;ve worked a lot with <a href="http://www.shadowcat.co.uk/blog/matt-s-trout/shifting-the-furniture/" target="_blank">Matt S. Trout</a>, one of the primary people behind coordinating the efforts of the Catalyst project, and gathered the necessary information for an upgrade and upload into Debian.</p>
<p>Recently, libcatalyst-modules-perl (<a href="http://packages.debian.org/changelogs/pool/main/libc/libcatalyst-modules-perl/libcatalyst-modules-perl_35/changelog" target="_blank">version 35</a>) and libcatalyst-modules-extra-perl (<a href="http://packages.debian.org/changelogs/pool/main/libc/libcatalyst-modules-extra-perl/libcatalyst-modules-extra-perl_4/changelog.html" target="_blank">version 4</a>) were uploaded to Debian, containing many necessary updates and fixes to improve the Catalyst experience on Debian. The next big push is to get MojoMojo&#8217;s dependencies packaged (currently only String::Diff is blocking it, due to missing copyright information).</p>
<p>A <a href="http://mojomojo.org/development/bounty" target="_blank">bounty of $150</a> is being offered by one of the MojoMojo developers to the first person who can re-implement the String::Diff functionality in a free/open source way.</p>
Posted in Computer Science, Software Engineering Tagged: Catalyst, CPAN, Customer Experience, Debian, Debian Packaging, Licensing, MojoMojo, Perl <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/208/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=208&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/11/13/catalyst-and-mojomojo-on-debian/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>
	</item>
		<item>
		<title>FACTS: Thyristor-Controlled Series Compensation</title>
		<link>http://jawnsy.wordpress.com/2009/11/06/facts-thyristor-controlled-series-compensation/</link>
		<comments>http://jawnsy.wordpress.com/2009/11/06/facts-thyristor-controlled-series-compensation/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 15:00:10 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Electrical Engineering]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[FACTS]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Power Systems]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=205</guid>
		<description><![CDATA[Thyristor-Controlled Series Compensation (TCSC) is used in power systems to dynamically control the reactance of a transmission line in order to provide sufficient load compensation.  The benefits of TCSC are seen in its ability to control the amount of compensation of a transmission line, and in its ability to operate in different modes. These traits [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=205&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Thyristor-Controlled Series Compensation (TCSC) is used in power systems to dynamically control the reactance of a transmission line in order to provide sufficient load compensation.  The benefits of TCSC are seen in its ability to control the amount of compensation of a transmission line, and in its ability to operate in different modes. These traits are very desirable  since loads are constantly changing and cannot always be predicted.</p>
<p>TCSC designs operate in the same way as <a href="http://jawnsy.wordpress.com/2009/10/30/facts-series-compensation/">Fixed Series Compensation</a>, but provide variable control of the reactance absorbed by the capacitor device. The basic structure of a TCSC can be seen below:</p>
<p><a href="http://jawnsy.files.wordpress.com/2009/11/tcsc-compensation.png"><img class="aligncenter size-medium wp-image-206" title="tcsc-compensation" src="http://jawnsy.files.wordpress.com/2009/11/tcsc-compensation.png?w=300&#038;h=249" alt="tcsc-compensation" width="300" height="249" /></a></p>
<p>A thyristor-controlled series compensator is composed of a series capacitance which has a parallel branch including a thyristor-controlled reactor.</p>
<p>TCSC operates in different modes depending on when the thyristors for the inductive branch are triggered.  The modes of operation are as listed:</p>
<ul>
<li>Blocking mode: Thyristor valve is always  off, opening inductive branch, and effectively causing the TCSC to operate as FSC</li>
<li>Bypass mode:  Thyristor valve is always on, causing TCSC to operate as capacitor and inductor in parallel, reducing current through TCSC</li>
<li>Capacitive boost mode: Forward voltage thyristor valve is triggered slightly before capacitor voltage crosses zero to allow current to flow through inductive branch, adding to capacitive current. This effectively increases the observed capacitance of the TCSC without requiring a larger capacitor within the TCSC.</li>
</ul>
<p>Because of TCSC allowing different operating modes depending on system requirements, TCSC is desired for several reasons. In addition to all of the benefits of FSC, TCSC allows for increased compensation simply by using a different mode of operation, as well as limitation of line current in the event of a fault. A benefit of using TCSC is the damping of sub synchronous resonance<br />
caused by torsional oscillations and inter-area oscillations.  The ability to dampen these oscillations is due to the control system controlling the compensator. This results in the ability to transfer more power, and the possibility of connecting the power systems of several areas over<br />
long distances.</p>
<p>–</p>
<p>This article was taken from the introduction of a report which was written by a partner and I, submitted to ECE3333: Power Systems I, taught by Professor Rajiv Varma at the University of Western Ontario.</p>
Posted in Electrical Engineering Tagged: Economics, Electrical Engineering, Engineering, FACTS, Infrastructure, Power Systems <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/205/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=205&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/11/06/facts-thyristor-controlled-series-compensation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>

		<media:content url="http://jawnsy.files.wordpress.com/2009/11/tcsc-compensation.png?w=300" medium="image">
			<media:title type="html">tcsc-compensation</media:title>
		</media:content>
	</item>
		<item>
		<title>FACTS: Series Compensation</title>
		<link>http://jawnsy.wordpress.com/2009/10/30/facts-series-compensation/</link>
		<comments>http://jawnsy.wordpress.com/2009/10/30/facts-series-compensation/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 15:00:07 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Electrical Engineering]]></category>
		<category><![CDATA[Power Systems]]></category>
		<category><![CDATA[FACTS]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Infrastructure]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=183</guid>
		<description><![CDATA[The main purpose of series compensation in power systems is to decrease the reactive impedance of the transmission line to reduce voltage drop over long distances and to reduce the Ferranti effect.  By adding series capacitors to the line, engineers can compensate for the physical inductance inherent in the transmission line.  The voltage drop across the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=183&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The main purpose of series compensation in power systems is to decrease the reactive impedance of the transmission line to reduce voltage drop over long distances and to reduce the <a href="http://en.wikipedia.org/wiki/Ferranti_effect" target="_blank">Ferranti effect</a>.  By adding series capacitors to the line, engineers can compensate for the physical inductance inherent in the transmission line.  The voltage drop across the line is reduced with more compensation, allowing more power to be received by the load for any given sending power.  Two main types of series compensation are fixed series compensation, and thyristor controlled series compensation, each with their own advantages.</p>
<h2>Fixed Series Compensation</h2>
<p>Fixed series compensation (FSC) of a line is desirable for power transmission due to the effects of line reactance modification.  By adding series capacitance, the reactive impedance of the line decreases, thus lowering the voltage drop across the transmission line.  This effect can be seen through the simplified power flow equation (see the post about <a href="http://jawnsy.wordpress.com/2009/10/16/facts-basic-concepts-power-transfer/">Power Transfer</a>) obtained by neglecting line resistance and line charging capacitance.</p>
<p>Line reactance is counteracted by a series capacitance, resulting in overall lower line impedance and a lower voltage drop across the line.</p>
<dl>
<dt><img class="aligncenter" title="seriescompensation" src="http://jawnsy.files.wordpress.com/2009/10/seriescompensation.png?w=363&#038;h=98" alt="Simple Series Compensation Diagram" width="363" height="98" /></dt>
</dl>
<p>By adding the series capacitance, it can be seen that the receiving line end voltage will be closer to the sending line end voltage.  This decrease in voltage drop across the line allows more power to be transferred over the line for any given sending line end voltage.</p>
<p>The advantage to using FSC compared to thyristor controlled series compensation is price.  Usually FSC allows for a majority of compensation for a lower cost when compared to thyristor controlled series compensation. The following phasor diagram demonstrates the effect of series compensation:</p>
<p><img title="fscphasor" src="http://jawnsy.files.wordpress.com/2009/10/tscphasor.png?w=411&#038;h=119" alt="Phasor Diagram of Fixed Series Compensation" width="411" height="119" /></p>
<p>–</p>
<p>This article was taken from the introduction of a report which was written by a partner and I, submitted to ECE3333: Power Systems I, taught by Professor Rajiv Varma at the University of Western Ontario.</p>
<p><img src="/Users/FREQUE%7E1/LOCALS%7E1/Temp/moz-screenshot.png" alt="" /></p>
Posted in Electrical Engineering Tagged: Economics, Electrical Engineering, Engineering, FACTS, Infrastructure, Power Systems <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/183/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=183&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/10/30/facts-series-compensation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>

		<media:content url="http://jawnsy.files.wordpress.com/2009/10/seriescompensation.png" medium="image">
			<media:title type="html">seriescompensation</media:title>
		</media:content>

		<media:content url="http://jawnsy.files.wordpress.com/2009/10/tscphasor.png" medium="image">
			<media:title type="html">fscphasor</media:title>
		</media:content>

		<media:content url="/Users/FREQUE%7E1/LOCALS%7E1/Temp/moz-screenshot.png" medium="image" />
	</item>
		<item>
		<title>Power Transfer Simulation using PowerWorld</title>
		<link>http://jawnsy.wordpress.com/2009/10/26/power-transfer-simulation-using-powerworld/</link>
		<comments>http://jawnsy.wordpress.com/2009/10/26/power-transfer-simulation-using-powerworld/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 00:07:00 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Electrical Engineering]]></category>
		<category><![CDATA[Power Systems]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Power System Stability]]></category>
		<category><![CDATA[Shunt Compensation]]></category>
		<category><![CDATA[Synchronous Machines]]></category>
		<category><![CDATA[Infinite Bus]]></category>
		<category><![CDATA[PowerWorld Simulator]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=196</guid>
		<description><![CDATA[Recently, I completed my first &#8220;lab&#8221; for ECE4464: Power Systems II. Like ECE3333 (Power Systems I), this course is being taught by one of the most inspiring professors I have ever had, Prof. Rajiv Varma, Ph.D.
Using PowerWorld&#8217;s Simulator software, we repeated one of our basic labs from ECE3333 as an introduction to computerized modelling of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=196&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Recently, I completed my first &#8220;lab&#8221; for ECE4464: Power Systems II. Like ECE3333 (Power Systems I), this course is being taught by one of the most inspiring professors I have ever had, Prof. Rajiv Varma, Ph.D.</p>
<p>Using <a href="http://www.powerworld.com/" target="_blank">PowerWorld</a>&#8217;s Simulator software, we repeated one of our basic labs from ECE3333 as an introduction to computerized modelling of power systems. We connected a single synchronous machine to an infinite bus across a 600km, 1000MW-SIL power line.</p>
<p>It is simplest for me to just lift the objectives from my lab report:</p>
<blockquote>
<p style="text-align:left;">In this lab, our objective is to simulate a simple single machine infinite-bus configuration using the PowerWorld Simulator software.  We design a local generator system (a synchronous generator) having a nominal generation capacity of 500MW and with no predefined peak generation (that is, the generator is modelled as having infinite generation capability).</p>
<p>In this manner, we can explore various phenomena like power transfer, power system stability and the effect of shunt compensation on the midline.  We model a 600km span of transmission line with a shunt compensation device installed at the midline (300km from both ends) and determine the stability limit with and without this compensation device enabled.</p></blockquote>
<p style="text-align:left;">Please see the following images, which show the simulation being run in PowerWorld:</p>
<p style="text-align:left;">
<div id="attachment_197" class="wp-caption aligncenter" style="width: 509px"><a href="http://jawnsy.files.wordpress.com/2009/10/500mw-normal.png"><img class="size-full wp-image-197 " title="500MW-normal" src="http://jawnsy.files.wordpress.com/2009/10/500mw-normal.png?w=499&#038;h=217" alt="500 MegaWatt generation, no compensation" width="499" height="217" /></a><p class="wp-caption-text">500 MegaWatt generation, no compensation</p></div>
<div id="attachment_198" class="wp-caption aligncenter" style="width: 509px"><a href="http://jawnsy.files.wordpress.com/2009/10/500mw-synccon.png"><img class="size-full wp-image-198 " title="500MW-synccon" src="http://jawnsy.files.wordpress.com/2009/10/500mw-synccon.png?w=499&#038;h=218" alt="500 MegaWatt generation with Synchronous Condenser Compensation" width="499" height="218" /></a><p class="wp-caption-text">500 MegaWatt generation with Synchronous Condenser Compensation</p></div>
<p>For my full report, see: <a href="http://jawnsy.files.wordpress.com/2009/11/ece4464-lab1-online.pdf">Power Systems 4464 Lab 1</a> (PDF). Note that the synchronous condenser installed at the midline is a Switched Shunt Compensation unit. I thought the standard inductor/capacitor schematic symbol looked a little boring, so I overlaid a synchronous condenser on top of it.</p>
Posted in Electrical Engineering Tagged: Infinite Bus, Infrastructure, Power System Stability, Power Systems, PowerWorld Simulator, Shunt Compensation, Synchronous Machines <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/196/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=196&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/10/26/power-transfer-simulation-using-powerworld/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>

		<media:content url="http://jawnsy.files.wordpress.com/2009/10/500mw-normal.png" medium="image">
			<media:title type="html">500MW-normal</media:title>
		</media:content>

		<media:content url="http://jawnsy.files.wordpress.com/2009/10/500mw-synccon.png" medium="image">
			<media:title type="html">500MW-synccon</media:title>
		</media:content>
	</item>
		<item>
		<title>FACTS: Basic Concepts &#8211; Thyristors</title>
		<link>http://jawnsy.wordpress.com/2009/10/23/facts-basic-concepts-thyristors/</link>
		<comments>http://jawnsy.wordpress.com/2009/10/23/facts-basic-concepts-thyristors/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 15:00:10 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Electrical Engineering]]></category>
		<category><![CDATA[Power Systems]]></category>
		<category><![CDATA[FACTS]]></category>
		<category><![CDATA[Engineering]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=180</guid>
		<description><![CDATA[The development of high-power thyristors and Insulated Gate Bipolar Transistors (IGBT) enabled the cost-effective provision of FACTS devices.  The actual behaviour of these devices is beyond the scope of this article, but on a basic conceptual level, they are simply fast acting switches, controlled by some external means (a trigger).  Triggers can be either electric [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=180&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The development of high-power <a href="http://en.wikipedia.org/wiki/Thyristor">thyristors</a> and <a href="http://en.wikipedia.org/wiki/Insulated-gate_bipolar_transistor">Insulated Gate Bipolar Transistors</a> (IGBT) enabled the cost-effective provision of FACTS devices.  The actual behaviour of these devices is beyond the scope of this article, but on a basic conceptual level, they are simply fast acting switches, controlled by some external means (a trigger).  Triggers can be either electric (a voltage applied at the gate terminal) or photonic (light), the latter of which is useful to isolate the control system electrically.</p>
<p>Thyristors can be conceptualized (and indeed, are drawn on schematic diagrams) as diodes with a switch (the gate voltage or photoelectric stimulus). In FACTS correction systems, whereby a thyristor should act as essentially a fast-acting switch, power needs to be transferred in both directions. Thyristors are also used in high-power rectifier circuits as well, particularly for <a href="http://en.wikipedia.org/wiki/High-voltage_direct_current" target="_blank">High-Voltage Direct Current</a> (HVDC) transmission.</p>
<p>How much faster is thyristor-based switching compared to mechanically-switched circuit breakers? Because thyristors are semiconductor devices, they can switch on the order of milliseconds. Conventional circuit breakers, on the other hand, take much longer to switch. They can switch in one or two cycles (of the 50-60Hz mains frequency), though for power system protection purposes, this is considered a rather slow switching speed.</p>
<p>The graph below illustrates the difference:</p>
<dl>
<dt><img title="thyristorspeed" src="http://jawnsy.files.wordpress.com/2009/10/thyristorspeed.png?w=378&#038;h=317" alt="Thyristor Switching vs Mechanical Switching" width="378" height="317" /></dt>
</dl>
<p>Additionally, mechanically-switched capacitors do not have sufficient switching speed to support extremely rapid switching nor can they be realistically switched more than a few times per day.</p>
<p>We can see that advanced communications and control systems play an important role in flexible transmission and distribution systems.</p>
<p>–</p>
<p>This article was taken from the introduction of a report which was written by a partner and I, submitted to ECE3333: Power Systems I, taught by Professor Rajiv Varma at the University of Western Ontario.</p>
Posted in Electrical Engineering Tagged: Electrical Engineering, Engineering, FACTS, Power Systems <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/180/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=180&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/10/23/facts-basic-concepts-thyristors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>

		<media:content url="http://jawnsy.files.wordpress.com/2009/10/thyristorspeed.png" medium="image">
			<media:title type="html">thyristorspeed</media:title>
		</media:content>
	</item>
		<item>
		<title>Software Licensing and Copyright</title>
		<link>http://jawnsy.wordpress.com/2009/10/20/software-licensing-and-copyright/</link>
		<comments>http://jawnsy.wordpress.com/2009/10/20/software-licensing-and-copyright/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 15:00:30 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Copyright]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Licensing]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=189</guid>
		<description><![CDATA[One of the most often overlooked&#8211;yet arguably most important&#8211;issues in software development is copyright and licensing of works. In particular, I will discuss how this affects the open source software community with relevance to the Debian project.
As with any artistic or creative works, software is protected by copyright and its use is often governed by [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=189&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>One of the most often overlooked&#8211;yet arguably most important&#8211;issues in software development is copyright and licensing of works. In particular, I will discuss how this affects the open source software community with relevance to the <a href="http://debian.org" target="_blank">Debian</a> project.</p>
<p>As with any artistic or creative works, software is protected by copyright and its use is often governed by some sort of license. Please note that I am not a lawyer and I am not qualified to give legal advice, so take my suggestions with a grain of salt and please do leave a comment if you know something that I don&#8217;t.</p>
<p>A license is a legal contract that permits end users use of software under agreed-upon guidelines. In the open source community, licenses protect the integrity of free software by ensuring that they continue to remain freely available. For example, the <a href="http://www.gnu.org/licenses/gpl.html" target="_blank">GNU General Public License</a> (GPL) stipulates that any derivative works of GPL-licensed code must distribute source code back to the community, which enables a two-way sharing of information between the originating software developers and the others who benefit from their work. Other licenses, such as the <a href="http://en.wikipedia.org/wiki/BSD_License" target="_blank">BSD License</a>, are more liberal and do not have this restriction, but do have a disclaimer of warranties which shields authors from unintended legal consequences of their work.</p>
<p>Though licensing is probably the most important document detailing the relationship of the supplier (software developer or team) and other users, it cannot mean anything without copyright. In general, it is most useful to provide a copyright statement somewhere in resulting packages. A copyright statement is what allows authors to assert a particular license in the first place.</p>
<p>Moreover, license terms can only be changed when all copyright holders agree to the change. Unless you are explicit in your copyright conditions in the beginning, this can lock your project in to an undesirable license.</p>
<p>To make matters even more complicated, the <a href="http://en.wikipedia.org/wiki/Berne_Convention_for_the_Protection_of_Literary_and_Artistic_Works" target="_blank">Berne Convention for the Protection of Literary and Artistic Works</a> (or simply Berne Convention as it&#8217;s most often called) describes a mechanism by which copyright is automatically in force upon creation of a work, even if the author does not explicitly assert it. For software, this effectively means that anyone who contributes any code is automatically the copyright holder on their contribution, which means that things quickly get complicated when there are many authors and contributors involved.</p>
<p>In Debian, we cannot and do not distribute software without knowing copyright information (including years of copyright, names, e-mail addresses where people can be reached, or a web site in the case of an incorporated entity). This is pursuant to the Debian Free Software Guidelines (DFSG), which require that we distribute only &#8220;free&#8221; software in our main repository&#8211;it&#8217;s part of our <a href="http://www.debian.org/social_contract" target="_blank">Social Contract</a>.</p>
<p>In this regard, I would make the following recommendations:</p>
<ol>
<li>When beginning any project (open source or not), include a copyright statement immediately. It will eventually become a force of habit; this is a very good thing, and will pay dividends in the future.</li>
<li>Establish a policy whereby contributors are asked to assign you copyright of their work; make a note of this somewhere in your documentation. Better yet, if you are part of an incorporated entity, assign copyright to that entity.</li>
<li>Be explicit about your licensing terms and make sure to include copies of the license with your software. This helps to resolve ambiguities where there are several derivatives of a license (occasionally, developers license software under the BSD License without specifying which version they mean)</li>
<li>Be wary of the &#8220;Public Domain&#8221; &#8212; this is an even more contentious issue than choosing an appropriate license. It is probably preferable to use a non-restrictive license such as the aforementioned BSD License (and its variants) or the MIT/X11 license, which is even more <a href="http://en.wikipedia.org/wiki/Free_software_licence#Permissive_versus_Copyleft_opinions" target="_blank">permissive</a>.</li>
</ol>
Posted in Computer Science, Software Engineering Tagged: Best Practices, Computer Science, Copyright, Debian, Licensing <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/189/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=189&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/10/20/software-licensing-and-copyright/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>
	</item>
		<item>
		<title>FACTS: Basic Concepts &#8211; Power Transfer</title>
		<link>http://jawnsy.wordpress.com/2009/10/16/facts-basic-concepts-power-transfer/</link>
		<comments>http://jawnsy.wordpress.com/2009/10/16/facts-basic-concepts-power-transfer/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 15:00:35 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Electrical Engineering]]></category>
		<category><![CDATA[Power Systems]]></category>
		<category><![CDATA[FACTS]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Infrastructure]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=173</guid>
		<description><![CDATA[The power flowing across an arbitrary power transmission line depends on the sending end voltage (V1), receiving end voltage (V2), line impedance (Z = R + jX) and the phase difference between the sending and receiving terminals.  Since the line resistance (R) is usually very small compared to its reactance (X), that term is negligible in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=173&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The power flowing across an arbitrary power transmission line depends on the sending end voltage (V<sub>1</sub>), receiving end voltage (V<sub>2</sub>), line impedance (Z = R + jX) and the phase difference between the sending and receiving terminals.  Since the line resistance (R) is usually very small compared to its reactance (X), that term is negligible in the Power Transfer Equation (Equation 1, below).</p>
<div>
<dl>
<dt><img title="powerequations" src="http://jawnsy.files.wordpress.com/2009/10/powerequations.png?w=228&#038;h=136" alt="Basic Power System Equations" width="228" height="136" /></dt>
</dl>
</div>
<p>The second equation indicates that the power factor (the cosine of the angle between current and voltage) has a direct impact on total power transfer. Power factor is somewhat like a measure of efficiency: it&#8217;s the ratio of real power delivered to your circuit compared to &#8220;apparent power&#8221;, which is temporarily absorbed by reactive elements like capacitors and inductors (also called reactors) and then returned to the generator.  This is because these are energy storage devices.</p>
<p>Lastly, equation 3 indicates the amount of thermal power lost dissipated to the resistance of the power line. It is converted to heat at a rate proportional to the apparent power flow, which is why a poor power factor is particularly bad for the grid &#8212; it means more power is lost due to heat in the transmission line. Since current results in heating of the line, excessive current will cause the line to physically droop. It becomes dangerous because it increases the likelihood that the line will contact another phase (line-to-line fault) or ground (via a tree or house, for example).</p>
<p>As a result, power factor (and subsequently, apparent power flow) affect the power system’s economic viability and profitability.</p>
<p>–</p>
<p>This article was taken from a report which I co-authored. It was submitted to ECE3333: Power Systems I, taught by Professor Rajiv Varma at the University of Western Ontario in Spring 2009.</p>
Posted in Electrical Engineering Tagged: Electrical Engineering, Engineering, FACTS, Infrastructure, Power Systems <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/173/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=173&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/10/16/facts-basic-concepts-power-transfer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>

		<media:content url="http://jawnsy.files.wordpress.com/2009/10/powerequations.png" medium="image">
			<media:title type="html">powerequations</media:title>
		</media:content>
	</item>
		<item>
		<title>FACTS: An Overview</title>
		<link>http://jawnsy.wordpress.com/2009/10/09/facts-an-overview/</link>
		<comments>http://jawnsy.wordpress.com/2009/10/09/facts-an-overview/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 14:11:26 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Electrical Engineering]]></category>
		<category><![CDATA[Power Systems]]></category>
		<category><![CDATA[FACTS]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Infrastructure]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=166</guid>
		<description><![CDATA[The acronym “FACTS” is a blanket term used to describe a family of power electronic devices that can improve power quality and transmission capability of existing power transmission systems, without significant investment in infrastructure.  Many of the most important issues in power engineering are simple to understand but complex to address, particularly since the system [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=166&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The acronym “FACTS” is a blanket term used to describe a family of power electronic devices that can improve power quality and transmission capability of existing power transmission systems, without significant investment in infrastructure.  Many of the most important issues in power engineering are simple to understand but complex to address, particularly since the system operates on a much larger scale than the simplified models studied in the classroom.</p>
<p>While initial investment in FACTS devices can number in the millions of US dollars due to their sheer size, the payback time is usually short due to the cost savings they can provide.  For the utility, installation of FACTS devices to increase utilization of existing transmission line assets is preferable to the planning and deployment of additional lines, since the cost of building a new transmission line can be in the range of millions of dollars per kilometre and take several years to complete.  Power utilities and consumers can realize the benefits of FACTS much more quickly, since planning through to deployment and testing only takes about a year.</p>
<p>In essence, FACTS devices can increase the efficiency of transmission lines up to their thermal limit, which can increase maximum power transfer from 50% to 100%.  Evidently, the time and cost benefits are substantial, however, once transmission lines reach their thermal limit, new lines must be constructed.  FACTS devices cannot offer any benefit once a line is operating at maximum efficiency and has reached the thermal limit.</p>
<p>–</p>
<p>This article was taken from a report which I co-authored. It was submitted to ECE3333: Power Systems I, taught by Professor Rajiv Varma at the University of Western Ontario in Spring 2009.</p>
Posted in Electrical Engineering Tagged: Economics, Electrical Engineering, Engineering, FACTS, Infrastructure, Power Systems <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/166/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=166&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/10/09/facts-an-overview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>
	</item>
		<item>
		<title>Debian Perl Packaging: Where I Lied</title>
		<link>http://jawnsy.wordpress.com/2009/07/15/debian-perl-packaging-where-i-lied/</link>
		<comments>http://jawnsy.wordpress.com/2009/07/15/debian-perl-packaging-where-i-lied/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 17:13:50 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[CPAN]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Debian Packaging]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Support]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=162</guid>
		<description><![CDATA[Okay, so this is a long-awaited follow-up to my first post on the topic of  Debian Perl Packaging. Some of you might note I was pretty extreme in the first post, which is partially because people only really ever respond to extremes when they&#8217;re new to things. When you first begin programming, the advice you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=162&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Okay, so this is a long-awaited follow-up to my first post on the topic of  <a href="http://jawnsy.wordpress.com/2009/06/12/debian-perl-packaging/">Debian Perl Packaging</a>. Some of you might note I was pretty extreme in the first post, which is partially because people only really ever respond to extremes when they&#8217;re new to things. When you first begin programming, the advice you get is <em>&#8220;hey, never use goto statements&#8221;</em> &#8212; but as your progress in your ability and your understanding of how it works, what it&#8217;s actually doing in the compiler &#8212; then it might not be so bad after all. In fact, I hear the Linux kernel uses it extensively to provide Exceptions in C. The Wikipedia page on <a href="http://http://en.wikipedia.org/wiki/Exception_handling_syntax">exception handling in various languages</a> shows how to implement exceptions in C using setjmp/longjmp (which is essentially a goto statement). But I digress.</p>
<p>Back to the main point of this writeup. Previously I couldn&#8217;t really think of cases where packaging your own modules is really all that useful, especially when packaging them for Debian means that you benefit many communities &#8212; Debian, Ubuntu, and all of the distributions that are based on those.</p>
<p>During a discussion with Hans Dieter Piercey after his article providing a nice comparison between <a href="http://www.opensourcery.com/blog/hans-dieter-pearcey/packaging-cpan-modules-debian">dh-make-perl and cpan2dist</a>. (<em>Aside: I feel like he was slightly biased toward cpan2dist in his writeup, but I&#8217;m myself biased toward dh-make-perl, so he might be right, even though I won&#8217;t admit it.</em>)</p>
<p>I&#8217;m really glad for that article and the ensuing dialog, because it really got people talking about what <em>they</em> use Debian Perl packages for, and where it is useful to make your own.</p>
<p>Firstly, if you&#8217;ve got an application that depends on some Perl module that isn&#8217;t managed by Debian, but you need it <em>yesterday</em>, then you can either install that module via CPAN or roll your own Debian package. The idea here is to make and install the package so you can use it, but also file a <em>Request For Package</em> bug at the same time &#8212; see the <strong>reportbug </strong>command in Debian, or use <strong>LaunchPad </strong>if you&#8217;re on Ubuntu. This way, when the package is officially released and supported, you can move to that instead, and thus <strong>get the benefits of automatic upgrades of those packages</strong>.</p>
<p>Secondly, if you&#8217;ve got an application that depends on some internally-developed modules, then they probably wouldn&#8217;t exist on CPAN (some call this Perl code part of the DarkPAN), except in the rare case that a company open sources their work. But corporations will never open source all of their work, even if they consider the implications of providing some of it to the open source community, so <strong>at some point or another you&#8217;ll need to deal with internal packages</strong>. Previously, the best way to handle this was to construct your own CPAN local mirror, and have other machines install and upgrade from it &#8212; thus your internal code is easily distributed via the usual mechanism.</p>
<p>One of the advantages of using CPAN to distribute things is that it&#8217;s available on most platforms, builds things and runs tests automatically on many platforms. CPANPLUS will even let you remove packages, which was one of the main reasons I am so pro-Debian packages anyway. However, it does mean <strong>you&#8217;ll need to rebuild the package</strong> on other systems, which is prone to failures that <strong>cost time and money</strong> to track down and fix. CPAN and CPANPLUS are the Perl tradition of distributing packages.</p>
<p><strong>If you are using an environment mostly with Debian systems</strong>, however, you may benefit from using a local Debian repository. This way, you only need to upgrade packages in your repository, and they&#8217;ll be automatically upgraded along with the rest of your operating system (you do run update and upgrade periodically right?). There is even the fantastic aptcron program to automate this, so there&#8217;s really no excuse not to automatically update.</p>
<p>In either case, creating a local package means you will be able to easily remove anything you no longer need via the normal package management tools. You can also distribute the binary packages between machines &#8212; though it sometimes depends on the platform (for modules that incorporate C or other platform-specific code that needs to be rebuilt). Generally, most Perl modules are Pure Perl, and thus you can compile and test it once, on one machine, and distribute it to other ones simply by installing the .deb package on other machines. You can copy packages to machines and use dpkg to install them, or better yet, create a local Debian mirror so it&#8217;s done automatically and via the usual mechanism (aptitude, etc.)</p>
<p>In conclusion: if you&#8217;re going to make your own Debian packages, <strong>do so with caution</strong>, and be aware of all the consequences (positive and negative) of what you&#8217;re doing. As always, a real understanding of everything is necessary.</p>
Posted in Computer Science, Software Engineering Tagged: Best Practices, Computer Science, CPAN, Debian, Debian Packaging, Perl, Standards, Support, System Administration, User Experience <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/162/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=162&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/07/15/debian-perl-packaging-where-i-lied/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>
	</item>
		<item>
		<title>Debian and A Graphical Environment</title>
		<link>http://jawnsy.wordpress.com/2009/07/09/debian-and-a-graphical-environment/</link>
		<comments>http://jawnsy.wordpress.com/2009/07/09/debian-and-a-graphical-environment/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 04:21:31 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[User Friendliness]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Google Summer of Code]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=159</guid>
		<description><![CDATA[It&#8217;s been some time since I re-installed Debian over my Kubuntu install, so I thought I&#8217;d discuss some reasons why I changed back to Debian, what my experience was like, and some learning opportunities.
One reason I made the switch was because there was a utility newly packaged for Debian, Frama-C, which was not available in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=159&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>It&#8217;s been some time since I re-installed Debian over my Kubuntu install, so I thought I&#8217;d discuss some reasons why I changed back to Debian, what my experience was like, and some learning opportunities.</p>
<p>One reason I made the switch was because there was a utility newly packaged for Debian, <a href="http://frama-c.cea.fr/">Frama-C</a>, which was not available in Kubuntu at the time. It also frustrated me that I was having <a href="http://jawnsy.wordpress.com/2009/06/16/experiences-with-debian-and-kubuntu/">various frustrations</a> with the installation, not the least of which was an unreliable and quite crashy KDE Plasma.</p>
<p>When I reinstalled this time, I picked the normal install but told it to install a graphical environment, which gave me a GNOME desktop environment. I actually rather like it, the setup didn&#8217;t ask too many questions and everything was set up perfectly. There was some minor tweaking, but it was all done by the easily accessible System menu and all the applets therein.</p>
<p>Now, I wanted to be able to use the server both as a virtual machine and as a physical dual-boot. This wasn&#8217;t working properly with GRUB-2, so I had to stay with version 1.96, which works rather well. I even spent some time making a pretty splashimage for it, which looks rather nice, even if I don&#8217;t see it all that often.</p>
<p>If I boot into the Virtual Machine, all the hardware is detected properly, and there aren&#8217;t even complaints about the fact that a bunch of hardware disappeared &#8212; certainly very good news if you decide to do something like move your hard drive to a different machine. Likewise, if I boot into the desktop, everything works well there too.</p>
<p>One issue I came across during the installation was having to teach Network-Manager how to configure my network interfaces. In my VMware NAT setup, there is no DHCP server, so the IP address, subnet and gateway information needs to be statically defined. Luckily, Network-Manager was able to do this based on the MAC address of the adapter &#8212; inside my virtual machine, it had a VMware-assigned static one. Through this, Network-Manager had an easy way to determine how to configure my network, and it works beautifully for Ethernet and Wireless (when Debian is running as the main operating system) and also for VMware NAT (when inside the virtual machine container).</p>
<p>Anyway, I have now been developing quite happily inside a Debian + GNOME desktop environment. The system runs fine even within a constrained environment, though I miss KDE&#8217;s setup with sudo; with GNOME, the option seems to be to have the root password entered every time privilege escalation is necessary. I don&#8217;t like using a root password &#8212; on my server system I don&#8217;t use the root password at all, and do everything I need to do via sudo. It&#8217;s okay for me because I log into the server with a private key and have disabled SSH password authentication for security reasons.</p>
<p>One thing that is still weird for me is that my system currently shows a time of 01:53 even though it is 23:57 in my timezone. Presumably the few minutes of difference is because the virtual machine clock and my system hardware clock aren&#8217;t synchronized perfectly, but more than that, I think it&#8217;s an issue with the Date applet somehow. I haven&#8217;t looked into this because the thing is running inside a virtual machine, so it doesn&#8217;t bother me much.</p>
<p>I have looked high and low to see where to change the time zone, and to my knowledge the system knows that it&#8217;s in the America/Toronto time zone. The house picture next to Timmins (the city I am in right now, though it doesn&#8217;t matter since the timezone is the same) seems to indicate to me that it&#8217;s set to the appropriate time zone.</p>
<p>I think it&#8217;s due to VMware synchronizing the virtual machine clock with my host machine clock. Windows (my host operating system) stores the time in the local format, which I believe Linux thinks is UTC. Still, it doesn&#8217;t explain the weird display it&#8217;s got going.</p>
<p>Someone noted last time that I didn&#8217;t make direct mention of which programs are only offered on Windows and not on Linux/etc, and that do not have reasonable replacement on these systems. <cite></cite><a rel="external nofollow" href="http://www.imsc.res.in/%7Ekapil/">Kapil Hari Paranjape</a> noted that I was sounding somewhat like a troll by simply saying that I don&#8217;t think Linux is yet ready to replace my environment. Here was my reply:</p>
<blockquote><p>Far from a troll, I’d really like Debian and Ubuntu, but moreso Linux in general, to improve at the pace it has been doing so. It’s made great progress since the last time I tried it out on my desktop, but I have to acknowledge that there are lots of rough edges right now that should be worked out.</p>
<p>One of the advantages of huge proprietary development organizations like Microsoft is that they have tons of developers and can implement new features at a relatively quick pace, even if they’re half-assed. Developers’ pride in the FOSS community prevents this overly quick pace of development in favour of more secure, more stable platforms. Which is a good thing, I think. But nonetheless it results in a “slower” development pace.</p>
<p>The applications I’m complaining about are things like:<br />
- SolidWorks (a CAD tool for designing parts and assemblies, used in manufacturing and mechanical engineering)<br />
- SpectrumSoft Micro-Cap (a version of software similar to PSpice used by my school)<br />
- AutoCAD (another CAD tool)</p>
<p>Luckily this is changing, but only for the large &amp; most popular distributions:<br />
- MathWorks MATLAB (runs on Linux and Solaris, etc.)<br />
- Wolfram Mathematica (which has versions for Linux and MacOS X)<br />
- FEKO (runs on Linux and Solaris among others)</p>
<p>Anyway, I still consider SolidWorks to be a rather big program not supported on Linux, which is a big issue for those working on Civil Engineering programs. There are most probably others which are very domain-specific that I don’t even know about.</p>
<p>There is a nice matrix comparing cross-platform capabilities of CAD software: <a rel="nofollow" href="http://en.wikipedia.org/wiki/Comparison_of_CAD_software">http://en.wikipedia.org/wiki/Comparison_of_CAD_software</a></p>
<p>Oh, one final thought: perhaps that KDE Recommends: should be moved to a Suggests: instead, on account of its heavy dependencies, requiring mysql-server installed on desktop machines.. WTF!</p>
<p>Oh, and on another note, I re-installed Debian using the non-expert Auto Install and it installed Gnome rather flawlessly, much like installing Ubuntu, which was pretty nice. So kudos to those who have been working on the main installer; it seems as though the advanced ones really give you some rope to hang yourself with, though :-)</p></blockquote>
<p>Oh, and k3ninho told me that there is an initiative from the Ubuntu community called &#8220;<a href="https://lists.ubuntu.com/archives/ubuntu-devel-discuss/2009-June/008655.html">100 Paper Cuts</a>&#8221; to help fix small bugs like those I was complaining about. I hope this leads to an improved user experience, and I&#8217;d really like to see some of those changes propagated both upstream to Debian and upstream to the KDE folk.</p>
<p>During my install of Kubuntu + KDE, I felt that plasma was crashing more than Windows Explorer &#8212; it felt like the days when I was running Windows ME, and the shell would crash, and the system would restart it. Repeatedly. It&#8217;s exactly what seemed to happen with plasma. I&#8217;m not sure if it was something I screwed up during configuration (presumably so), but KDE was far too complicated for me to try and debug. It might also have been a result of me running my system within a fairly constrained virtual machine environment &#8211; the system only gets 768MB of RAM and no access to the actual graphics processor unit (since it&#8217;s virtualized).</p>
Posted in Computer Science, Software Engineering, User Friendliness Tagged: Debian, GNOME, Google Summer of Code, KDE, System Administration, User Experience <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/159/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=159&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/07/09/debian-and-a-graphical-environment/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>
	</item>
		<item>
		<title>How You Define Yourself</title>
		<link>http://jawnsy.wordpress.com/2009/06/29/how-you-define-yourself/</link>
		<comments>http://jawnsy.wordpress.com/2009/06/29/how-you-define-yourself/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 00:05:53 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Peer Relationships]]></category>
		<category><![CDATA[Relationships]]></category>
		<category><![CDATA[Community Dynamics]]></category>
		<category><![CDATA[Equity]]></category>
		<category><![CDATA[Gender Discrimination]]></category>
		<category><![CDATA[Google Summer of Code]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=157</guid>
		<description><![CDATA[It was noted that many of the women on the list have blog addresses and other details that quickly self-identify the authors as female. There was discussion about whether this is a good thing or not, and the possible reasons behind it. Here is what I replied.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=157&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Recently there was a thread on the Google Summer of Code students&#8217; list discussing gender dynamics in open source, but more broadly, interactions between those of different genders (mainly the discussion was simplified to be a discussion of sexes, which I think demonstrates the lack of understanding of the difference between gender and sex. But I suppose that&#8217;s a blog post for another day).</p>
<p>It was noted that many of the women on the list have blog addresses and other details that quickly self-identify the authors as female. There was discussion about whether this is a good thing or not, and the possible reasons behind it.</p>
<p>Here is what I wrote:</p>
<p>I think what you mention about yourself shows the world what you think about yourself, and what you consider yourself.</p>
<p>If first and foremost you associate your identity with being female (or male) or straight (or not)&#8230; then I guess that&#8217;s your prerogative.</p>
<p>But I, for one, am not /just/ an Asian male. I&#8217;m not just a Computer Science student. I&#8217;m not just a coder. I&#8217;m not just an Engineering student. I&#8217;m not just 20-years old. I&#8217;m not just a blogger. I&#8217;m not just an Open Source contributor. I&#8217;m not just an advocate of strange and often unpopular ideas.</p>
<p>I am a human being, with many dimensions. And I don&#8217;t try to simplify it by putting myself in a box and categorizing myself as anything.</p>
<p>I think that the key is just to understand everyone for who they are, and part of that is being somewhat ambiguous. As Leslie [Hawthorne] somewhat alluded to, it&#8217;s about managing people&#8217;s preconceptions about you.</p>
<p>I do not actively try to hide that I am male, or that I am Asian (you might guess that from my last name). There are all sorts of preconceptions people might have about things, and there are lots of -isms we should seek to avoid. (I&#8217;m Asian &#8211; maybe that means I&#8217;m a bad driver, and that I can&#8217;t pronounce Rs. I&#8217;m male &#8211; maybe I&#8217;m violent. I&#8217;m in Computer Science, presumably that means I play Dungeons &amp; Dragons with my classmates on the weekends. I&#8217;m in Engineering, maybe that means I&#8217;m sexist.)</p>
<p>The reality is: none of these things should matter, nor should they define you.</p>
<p>Just be yourself. You show to the world what you consider relevant about yourself.</p>
<p>And for what it&#8217;s worth, I found out the other day that someone I respect and admire in the open source community is a teenager. Somewhere around 15 years old. It&#8217;s impressive, really. I look up to him, because he&#8217;s a really smart guy. But that wasn&#8217;t something he brought up right away; his nickname wasn&#8217;t &#8220;smartdude15&#8243; or anything<br />
like that. That&#8217;s the magic of open source, and the Internet &#8212; I judged him purely on his knowledge. And once I did find out, I thought to myself&#8230; Wow, would I have thought the same thing of him if I knew his age right away? Would I have even given him a chance, or would I just dismiss everything he said as something an immature teenager might say?</p>
<p>I think along with sexism there are tons of other issues to worry about, like racism (consider how difficult it is in some cultures, and even in Western culture, to be really accepted if you are gay, lesbian, transgender, bisexual, two-spirited, asexual, intersex&#8230;) In fact, being gay was considered a disease until relatively recently.</p>
<p>I&#8217;m glad for all the progress women have made in the past several decades. Not everyone has reached a point where they are accepted in mainstream society, and not everyone feels comfortable announcing certain details about themselves.</p>
<p>If *all* you are is a woman in a male-dominated world, then I feel sorry for you. I truly, truly do. Because none of the women I respect and admire are that. They are, first, talented Engineers, Scientists and Programmers, who are only incidentally female. Being female isn&#8217;t something that really identifies them any more than the colour of their skin, hair or eyes. No, no, they are talented, and that is, in the end, all I care about, and that is one reason I am grateful for Open Source &#8212; because you oftentimes don&#8217;t meet the people you are working with all the time in real life, so you cannot judge them on anything other than their ability.</p>
Posted in Computer Science, Engineering, Peer Relationships, Relationships Tagged: Community Dynamics, Equity, Gender Discrimination, Google Summer of Code <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/157/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=157&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/06/29/how-you-define-yourself/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>
	</item>
		<item>
		<title>Dual Booting Debian and VMware</title>
		<link>http://jawnsy.wordpress.com/2009/06/18/dual-booting-debian-and-vmware/</link>
		<comments>http://jawnsy.wordpress.com/2009/06/18/dual-booting-debian-and-vmware/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 12:13:47 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[User Friendliness]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[System Administration]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=155</guid>
		<description><![CDATA[Okay, so allow me to explain my personal development platform. I use Windows XP Professional as my primary operating system for various reasons, but I develop software for Linux (mostly because I like Linux, but also because I intend for a lot of my software to be used on my own servers, all of which [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=155&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Okay, so allow me to explain my personal development platform. I use Windows XP Professional as my primary operating system for various reasons, but I develop software for Linux (mostly because I like Linux, but also because I intend for a lot of my software to be used on my own servers, all of which can be considered Unix-like).</p>
<p>Because I prefer Windows for daily use, I&#8217;ve built various tools around the operating system and have become quite attached to them. I really like TortoiseSVN and Notepad++, for example. I&#8217;ve just gotten used to running Windows.</p>
<p>Anyway, I wanted to see if I could transition into using Linux for everything, and because I work in Debian and have servers running Debian, I installed Debian. I had some trouble at first, prompting me to change to Kubuntu, but later came back to Debian after realizing that the packages in unstable and testing that I&#8217;d come to love were under an entirely different process in Ubuntu, which is currently unknown to me.</p>
<p>So long Ubuntu, I&#8217;ve re-installed Debian and love it so far. One problem I&#8217;ve noticed is that Debian would not boot inside VMware Workstation under Windows, while Kubuntu was able to do so out-of-the-box. Instead, I got an error like this:</p>
<blockquote>
<pre>WARNING bootdevice may be renamed. Try root=/dev/hda2
Gave up waiting for root device. Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
   - Check root= (did the system wait for the right device?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/sda2 does not exist. Dropping to a shell!</pre>
</blockquote>
<p>Looking into it further, it turned out I could edit the command line options to use a different device name&#8211;the debug output was right, I had to use /dev/hda2 instead of /dev/sda2&#8211;and things would work. The system would boot up normally, and everything was good. I guess it had to do with my drives actually being SATA (which I suppose are treated like SCSI drives); whereas VMware Workstation (in my setup) presents them as simple IDE drives.</p>
<p>But then I got to wondering how Ubuntu totally got around this problem, and it turns out that Ubuntu uses UUID identifiers to point to a hard drive. After searching on Google, it turns out that using UUIDs is convenient because it can handle cases where drives are removed; especially with external drives, or even re-arranging the drives inside your computer for whatever reason.</p>
<p>Using the command &#8220;blkid&#8221; from Debian (do this as root), you can get the UUID of all the partitions. You can either reboot into Linux using your normal dual-boot method (selecting the option from GRUB, etc), or you can edit the boot options from GRUB explictly to use /dev/hda2 temporarily. Once you boot into your Debian installation, you can edit /boot/grub/menu.lst to use drive UUIDs instead of /dev names.</p>
<p>Instead of:</p>
<p># kopt=root=/dev/hda1 ro</p>
<p>or similar, you can change this to:</p>
<p># kopt=root=UUID=&lt;info from blkid for /dev/hda1&gt; ro</p>
<p>Then you can use &#8216;update grub&#8217; to update grub&#8217;s automagic menu.lst information, so that the new root is recognized. This way, however your disk is installed, the UUID will be detected and the appropriate drive mounted/booted. I haven&#8217;t tried this, but I suppose this would help if you have an operating system on a bootable USB drive or something, to help you select those partitions (though I don&#8217;t know if GRUB will even detect them on a boot. I&#8217;m hoping so since most BIOSes these days support booting from USB Mass Storage Media).</p>
<p>Good luck, I hope this helps somebody out there :-)</p>
Posted in Computer Science, User Friendliness Tagged: Computer Science, Debian, System Administration <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/155/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=155&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/06/18/dual-booting-debian-and-vmware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>
	</item>
		<item>
		<title>Experiences With Debian and Kubuntu</title>
		<link>http://jawnsy.wordpress.com/2009/06/16/experiences-with-debian-and-kubuntu/</link>
		<comments>http://jawnsy.wordpress.com/2009/06/16/experiences-with-debian-and-kubuntu/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 01:42:08 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Customer Relationships]]></category>
		<category><![CDATA[User Friendliness]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Google Summer of Code]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Support]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=153</guid>
		<description><![CDATA[For my Google Summer of Code project, I have been working with PerlQt4 bindings, which requires that I have Qt4 installed. While this is technically possible under a Win32 environment. Lots of people in the free software community vehemently oppose Windows, but while it has its flaws, I think overall the hardware support is still [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=153&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>For my Google Summer of Code project, I have been working with PerlQt4 bindings, which requires that I have Qt4 installed. While this is technically possible under a Win32 environment. Lots of people in the free software community vehemently oppose Windows, but while it has its flaws, I think overall the hardware support is still much better than Linux. True, this is because of Microsoft&#8217;s shady business practices, and because many companies keep their driver source code closed. I&#8217;m still using Windows XP Professional and quite happy with it, stability-wise and feature-wise.</p>
<p>As an Engineer, many applications we use on a regular basis are simply not available on Linux. They&#8217;re simply not replaceable with the current state of open source software, though there is some great stuff out there. Nonetheless, we&#8217;re still far from a point where engineers in general can switch to Linux &#8212; the application support is as important to an operating system as the kernel. Linux would be nothing without GNU&#8217;s binutils, for example.</p>
<p>I tried to install Debian first, as this is an environment I&#8217;m very familiar with. I use Debian on my development server, and it has worked wonders there. But everything I do on that server is command-line stuff. When trying to install a desktop environment, I followed the KDE Configuration Wizard, which isn&#8217;t too bad, but it expects an Internet connection throughout the process. The problem was that I didn&#8217;t have enough Ethernet cables to have both the desktop computer and my laptop plugged in at the same time, even though I had a wireless router set up, which meant I had to unplug the computer while updating packages, etc. Some of the updates took quite a bit of time, which was inconvenient for everyone else.</p>
<p>I eventually got the system to install, and told tasksel to set up a desktop environment. It was installing stuff, I typed &#8216;apt-get install kde&#8217; and assumed everything would Just Work. After installing a whole bunch of stuff (which included a local install of mysqld, on a desktop machine?! &#8212; turns out it was due to one of KDE&#8217;s recommended packages, it starts with an A, I forget which). Anyway, then the environment didn&#8217;t &#8220;just work&#8221; as I had expected. Upon booting up my system, it just dropped me to a command line prompt. Fine, I thought, I&#8217;ll just use startx. But that was broken too. So after another few hours of fiddling I just gave up altogether.</p>
<p>While trying Ubuntu (the last time I had done so was probably in version 7 or so), I downloaded a recent image of Kubuntu 9.04, the Ubuntu flavour using KDE as a default desktop environment. It&#8217;s surprising that there has been lots of progress in Ubuntu and Linux in general. I have found that driver support is much better than it used to be, as it now detects my network card &#8211; a Broadcom 43xx chip &#8211; and does everything it needs to do. For the most part, my operating system &#8220;Just Works.&#8221; Great. This looks like something I might be able to slowly transition toward, completely replacing Windows except inside WINE or a Virtual Machine container.</p>
<p>Has Debian and Ubuntu made lots of progress? Sure. I can definitely see that Ubuntu is geared a lot more to the average user, while Debian provides bleeding-edge features to the power user. Unfortunately, despite being involved in packaging Perl modules for Debian, I fall into the former category. I&#8217;d really just like my desktop system to just work. Oh, and dual monitor support out-of-the-box would be nice too &#8212; I hear the new KDE and Gnome support this.</p>
<p>One thing Windows handles rather well is changing hardware profiles &#8211; when my computer is connected to its docking station, a ton of peripherals are attached. When I undock, they&#8217;re gone. Windows handles this rather gracefully. In Kubuntu, I got lots of notification boxes repeatedly telling me that eth2 was disconnected, etc. This sort of thing is undecipherable for the average user, so I&#8217;d really just like for these operating systems to be more human-friendly before they are ready for prime time on the desktop.</p>
Posted in Computer Science, Customer Relationships, User Friendliness Tagged: Best Practices, Debian, Engineering, Google Summer of Code, KDE, Support, User Experience <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/153/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=153&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/06/16/experiences-with-debian-and-kubuntu/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>
	</item>
		<item>
		<title>Debian Perl Packaging</title>
		<link>http://jawnsy.wordpress.com/2009/06/12/debian-perl-packaging/</link>
		<comments>http://jawnsy.wordpress.com/2009/06/12/debian-perl-packaging/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 17:22:21 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[CPAN]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Debian Packaging]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Support]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=151</guid>
		<description><![CDATA[If you are a Debian user, or a user of its derivatives, there is absolutely no need for you to create your own packages. None. Just don't do it; it's bad. Avoid it like the goto statement, mmkay?<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=151&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>One thing that makes Perl different from many other languages is that it has a rather small collection of <a href="http://perldoc.perl.org/index-functions.html">core commands</a>. There are only a few hundred commands in Perl itself, so the rest of its functionality comes from its rich collection of modules,  many of which are distributed via the <a href="http://cpan.org">Comprehensive Perl Archive Network</a> (CPAN).</p>
<p>When CPAN first came on the scene, it preceded many modern package management systems, including Debian&#8217;s <a href="http://en.wikipedia.org/wiki/Advanced_Packaging_Tool">Advanced Packaging Tool</a> (APT) and <a href="http://en.wikipedia.org/wiki/RubyGems">Ruby&#8217;s gem system</a>, among others. As a consequence of its rich history, the CPAN Shell is relatively simplistic by today&#8217;s standards, yet still continues to get the job done quite well.</p>
<p>Unfortunately, there are two issues with CPAN:</p>
<ol>
<li>Packages are distributed as source code which is built on individual machines when installing or upgrading packages.
<ul>
<li>Since packages must be re-built on every machine that installs it, the system is prone to breaking and wastes CPU time and other resources. (The <a href="http://www.cpantesters.org/">CPAN Testers</a> system is a great way module authors can try to mitigate this risk, though.)</li>
<li>Due to wide variation in packages, many packages cause problems with the host operating system in terms of where they install files, or expect them to be installed. This is because CPAN does not (and cannot) know every environment that packages will be installed on.</li>
</ul>
</li>
<li>It does not integrate nicely with package managers
<ul>
<li>The standard CPAN Shell is not designed to remove modules, only install them. Removals need to be done manually, which is prone to human error such as forgetting to clean up certain files, or breaking other installs in the process.</li>
<li>It cannot possibly know the policies that govern the various Linux flavours or Unices. This means that packages might be installed where users do not expect, which violates the <a href="http://en.wikipedia.org/wiki/Principle_of_least_astonishment">Principle of Least Surprise</a>.</li>
<li>It is a separate ecosystem to maintain. When packages are updated via the normal means (eg, APT), packages installed via CPAN will be left alone (ie, not upgraded).</li>
</ul>
</li>
</ol>
<p><strong>Here is the real problem: packages installed via CPAN will be left alone</strong>. This means that if new releases come out, your system will retain an old copy of packages, until you get into the CPAN Shell and upgrade it manually. If you&#8217;re administrating your own system, this isn&#8217;t a big problem &#8212; but it has significant implications for collections of production systems. If you are managing thousands of servers, then you will need to run the upgrade on each server, and hope that the build doesn&#8217;t break (thus requiring your, or somebody else&#8217;s, intervention).</p>
<p>One of the biggest reasons to select Debian is because of one of its primary design goal: to be a Universal Operating System. What this means is that the operating system should run on as many different platforms and architectures as possible, while providing the same rich environment to each of them to the greatest extent possible. So, whether I&#8217;m using Debian GNU/Linux x86 or Debian GNU/kFreeBSD x64, I have access to the same applications, including the same Perl packages. Debian has automated tools to <a href="https://buildd.debian.org/pkg.cgi?maint=pkg-perl-maintainers%40lists.alioth.debian.org">build and test packages on every architecture</a> we support.</p>
<p>The first thing I&#8217;m going to say is: <em>if you are a Debian user, or a user of its derivatives, there is <strong>absolutely no need</strong> for you to create your own packages</em>. None. Just don&#8217;t do it; it&#8217;s bad. Avoid it like the goto statement, mmkay?</p>
<p>If you come across a great CPAN package that you&#8217;d really like to see packaged for Debian, then contact the <a href="http://pkg-perl.alioth.debian.org/">Debian Perl Packagers</a> (pkg-perl) team, and let us know that you&#8217;d like a package. We currently maintain well over a thousand Perl packages for Debian, though we are by no means the only maintainers of Perl packages in Debian. You can do this easily by filing a Request For Package (RFP) bug using the command: <kbd>reportbug wnpp</kbd>.</p>
<p>On-screen prompting will walk you through the rest, and we&#8217;ll try to package the module as quickly as possible. When we&#8217;re done, you&#8217;ll receive a nice e-mail letting you know that your package has been created, thus closing the bug. A few days of waiting, but you will have a package in perfect working condition as soon as we can create it for you. Moreover, you&#8217;re helping the next person that seeks such a module, since it will already be available in Debian (and in due time it will propagate to its derivatives, like Ubuntu).</p>
<p>All 25,000+ Debian packages meet the rigorous requirements of <a href="http://www.debian.org/doc/debian-policy/">Debian Policy</a>. The majority of them meet the <a href="http://en.wikipedia.org/wiki/Debian_Free_Software_Guidelines">Debian Free Software Guidelines</a> (DFSG), too; the ones which are not considered DFSG-free are placed in their own repository, separate from the rest of packages. A current work in progress is machine-parseable copyright control files, which will hopefully provide a way for administrators to quickly review licensing terms of all the software you install. This is especially important for small- and medium-sized businesses without their own intellectual property legal departments to review open source software, which is something that continues to drive many businesses away from using open source.</p>
<p>For the impatient, note this well: packages which are not maintained by Debian are not supported by Debian. This means that if you install something using a packaging tool (we&#8217;ll discuss these later) or via CPAN, then your package is necessarily your own responsibility. In the unlikely event that you totally break your system installing a custom package, it&#8217;s totally your fault, and it <em>may </em>mean you will have to restore an earlier backup or re-install your system completely. <strong>Be very careful</strong> if you decide to go this route. A few days waiting to ensure that your package will work on every platform you&#8217;re likely to encounter is worth the couple days of waiting for a package to be pushed through the normal channels.</p>
<p>The Debian Perl Packaging group offers its services freely to the public for the benefit of our users. It is much better to ask the volunteers (preferably politely) to get your package in Debian, so that it passes through the normal testing channels. You really should avoid making your own packages in a vacuum; the group is always open to new members, and it means your package will be reviewed (and hopefully uploaded into Debian) by our sponsors.</p>
<p>But the thing about all rules is that there are always exceptions. There are, in fact, some reasons when you might want to produce your own packages. I was discussing this with Hans Dieter Pearcey the other day, and he has written a great <a href="http://www.opensourcery.com/blog/hans-dieter-pearcey/packaging-cpan-modules-debian">follow-up blog post</a> about the primary differences between dh-make-perl and cpan2dist, two packaging tools with a similar purpose but very different design goals. Another article is to follow this one, where I will discuss the differences between the two.</p>
Posted in Computer Science, Software Engineering Tagged: Best Practices, Computer Science, CPAN, Debian, Debian Packaging, Perl, Standards, Support, System Administration, User Experience <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/151/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=151&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/06/12/debian-perl-packaging/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>
	</item>
		<item>
		<title>Performance of Math::Random::ISAAC</title>
		<link>http://jawnsy.wordpress.com/2009/06/04/performance-of-mathrandomisaac/</link>
		<comments>http://jawnsy.wordpress.com/2009/06/04/performance-of-mathrandomisaac/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 20:03:20 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[Foreign Function Interfaces]]></category>
		<category><![CDATA[ISAAC]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Random Numbers]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=127</guid>
		<description><![CDATA[When working on some code, I came across a random number generation algorithm (a pseudorandom number generator to be exact, since the numbers aren&#8217;t truly random but only designed to &#8220;look&#8221; like it to the casual observer) called ISAAC. The name stands for &#8220;Indirection, Shift, Accumulate, Add, and Count,&#8221; which is essentially what it does [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=127&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>When working on some code, I came across a random number generation algorithm (a pseudorandom number generator to be exact, since the numbers aren&#8217;t truly random but only designed to &#8220;look&#8221; like it to the casual observer) called <a href="http://burtleburtle.net/bob/rand/isaacafa.html">ISAAC</a>. The name stands for &#8220;Indirection, Shift, Accumulate, Add, and Count,&#8221; which is essentially what it does to a set of state variables, in that sequence.</p>
<p>The algorithm allows sequences of 32-bit numbers to be generated extremely quickly, since the operations it uses are relatively fast on modern processors; in fact, the author, Bob Jenkins, claims it only requires (on average) 18.75 machine processor cycles to generate each 32-bit value.</p>
<p>Even so, the algorithm is designed to be as uniformly distributed as possible.</p>
<p>I decided to test how fast this would be on a relatively modern multiprocessor system. The following is a benchmark on an amd64 machine with 2GB of memory. The benchmark script is available as part of the Math::Random::ISAAC package available via <a href="http://search.cpan.org/dist/Math-Random-ISAAC/">CPAN</a> or its <a href="http://svn.ali.as/cpan/trunk/Math-Random-ISAAC/examples/benchmark.pl">SVN Repository</a>.</p>
<table border="0" cellspacing="10">
<tbody>
<tr>
<th></th>
<th>Rate</th>
<th><a title="Math::Random::ISAAC Pure Perl implementation" href="http://search.cpan.org/dist/Math-Random-ISAAC/">ISAAC<br />
<abbr title="Pure Perl">PP</abbr></a></th>
<th><a title="Math::Random::MT XS implementation" href="http://search.cpan.org/dist/Math-Random-MT/">MT</a></th>
<th><a title="Math::Random::ISAAC XS implementation" href="http://search.cpan.org/dist/Math-Random-ISAAC-XS/">ISAAC<br />
<abbr title="eXternal Subroutines">XS</abbr></a></th>
<th><a href="http://search.cpan.org/dist/Math-Random/">Math::Random</a></th>
<th><a href="http://search.cpan.org/dist/Math-Random-TT800/">TT800</a></th>
<th>Core</th>
</tr>
<tr>
<th>ISAAC::PP</th>
<td>134/s</td>
<td>&#8211;</td>
<td>-54%</td>
<td>-79%</td>
<td>-82%</td>
<td>-90%</td>
<td>-98%</td>
</tr>
<tr>
<th>MT</th>
<td>292/s</td>
<td>118%</td>
<td>&#8211;</td>
<td>-53%</td>
<td>-61%</td>
<td>-78%</td>
<td>-95%</td>
</tr>
<tr>
<th>ISAAC::XS</th>
<td>626/s</td>
<td>367%</td>
<td>114%</td>
<td>&#8211;</td>
<td>-16%</td>
<td>-54%</td>
<td>-90%</td>
</tr>
<tr>
<th>Math::Random</th>
<td>748/s</td>
<td>458%</td>
<td>156%</td>
<td>19%</td>
<td>&#8211;</td>
<td>-45%</td>
<td>-88%</td>
</tr>
<tr>
<th>TT800</th>
<td>1350/s</td>
<td>907%</td>
<td>362%</td>
<td>116%</td>
<td>80%</td>
<td>&#8211;</td>
<td>-78%</td>
</tr>
<tr>
<th>Core</th>
<td>6211/s</td>
<td>4534%</td>
<td>2024%</td>
<td>892%</td>
<td>730%</td>
<td>360%</td>
<td>&#8211;</td>
</tr>
</tbody>
</table>
<p>So as we can see, Perl&#8217;s built in rand() function is evidently really, really fast; quicker than every other algorithm studied here by a few orders of magnitude. What remains to be seen, then, is whether the quality of random numbers actually generated is any good. Ideally, most random number generators are designed to produce distributions of numbers that are uniformly distributed &#8212; that is, every number is equally likely to occur.</p>
<p>Uniform distributions often do not occur in real-life &#8220;random&#8221; samples &#8211; for example, things like height or marks in a class tend to follow more of a normal distribution (or &#8220;bell curve&#8221;) &#8211; the majority of the sample population is near the mean, and it drops off as you go to higher or lower figures. Nonetheless, these types of random numbers are great for uses in computer science &#8212; where you want each number to be equally likely, thus ensuring that your sequence is as unpredictable as possible.</p>
<p>In this case, all of the algorithms produce relatively uniform distributions, though the <a href="http://jawnsy.files.wordpress.com/2009/06/tt800.png">TT800</a> and <a href="http://jawnsy.files.wordpress.com/2009/06/rand.png">Perl rand() core</a> function produce a somewhat jagged distribution. Less interesting distributions are those for <a href="http://jawnsy.files.wordpress.com/2009/06/isaac.png">ISAAC</a>, <a href="http://jawnsy.files.wordpress.com/2009/06/mathrandom.png">Math::Random</a> and the <a href="http://jawnsy.files.wordpress.com/2009/06/mt.png">Mersenne Twister</a>.</p>
Posted in Computer Science, Software Engineering Tagged: Algorithms, Foreign Function Interfaces, ISAAC, Perl, Random Numbers <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/127/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=127&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/06/04/performance-of-mathrandomisaac/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>
	</item>
		<item>
		<title>I Love Open Source</title>
		<link>http://jawnsy.wordpress.com/2009/05/26/i-love-open-source/</link>
		<comments>http://jawnsy.wordpress.com/2009/05/26/i-love-open-source/#comments</comments>
		<pubDate>Wed, 27 May 2009 04:21:53 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Code Reuse]]></category>
		<category><![CDATA[Google Summer of Code]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=121</guid>
		<description><![CDATA[While working on my Google Summer of Code project today, I came across a bug that pretty much halted my productivity for the day.
Early on in my project, I decided that working with Unicode is hard, among other things. Since I was restricted to using C, I had to find a way to easily manipulate [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=121&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>While working on my Google Summer of Code project today, I came across a bug that pretty much halted my productivity for the day.</p>
<p>Early on in my project, I decided that working with Unicode is hard, among other things. Since I was restricted to using C, I had to find a way to easily manipulate Unicode stuff, and I came across GLib (I&#8217;m not even entirely sure how, I think I just remember other projects using it, and decided to look it up.)</p>
<p>Not only did it have Unicode handling stuff, it also provides a bunch of convenient things like a linked list implementation, memory allocation, etc. All in a way intended to be cross-platform compatible, since this is the thing that&#8217;s used to power Gtk.</p>
<p>I&#8217;m not entirely sure how it differs from Apache&#8217;s Portable Runtime (APR); maybe it&#8217;s even a Not Invented Here syndrome. In any case, I, not suffering from that particular affliction, decided to be lazy and re-use existing code.</p>
<p>For some reason, GLib&#8217;s g_slice_alloc() call was failing. For those of you that don&#8217;t know what this does, it is similar to malloc() in standard C &#8211; it allocates a chunk of memory and returns it to you, so that you can make use of dynamic memory allocation, rather than everything just being auto variables. In particular, it means you can be flexible and allocate as much or as little memory as you need.</p>
<p>So I spent the entire day trying to figure out why my program was segfaulting. Looking at the output of gdb (the GNU Debugger), the backtrace showed that it was crashing at the allocation statement. No way, I thought, that test is so well-tested, it must be a problem with the way I&#8217;m using it.</p>
<p>I changed the code to use malloc() instead of g_slice_alloc(), and the program started crashing right away, rather than after four or five executions with g_slice_alloc(). Not exactly useful for debugging.</p>
<p>I mentioned my frustration with C on the Debian Perl Packager Group channel, and a friend from the group, Ryan Niebur took a look at the code (accessible via a public repository). After a bit of tinkering, he determined that the problem was that I was using g_slice_alloc instead of g_slice_alloc0, which automatically zeroes memory before returning it.</p>
<p>It stopped the crashing and my program works as intended. I&#8217;m still left totally puzzled as to why this bug was happening, and I&#8217;m not sure if malloc isn&#8217;t supposed to be used with structs, or some other limitation like that.</p>
<p>But thanks the magic of open source and social coding/debugging, the expertise of many contribute to the success of a single project. It&#8217;s such a beautiful thing.</p>
<p><strong>Update</strong>: There were a lot of questions and comments, mainly relating to the fact that malloc and friends return chunks of memory that may not have been zeroed.</p>
<p>Indeed, this was the first thing I considered, but the line it happened to be crashing on was a line that pretty much just did <em>g_slice_alloc</em>, rather than any of the statements after that.</p>
<p>For those that are curious, all of the code is visible in the <a href="http://svn.debian.org/viewsvn/libdebctrl/">public repository</a>.</p>
<p>I do realize that the fixes that have been made are pretty much temporary and that they are probably just masking a bigger problem. However, I&#8217;m at a loss for the issue is. Hopefully the magic of open source will work for me again, and one of the many people who have commented will discover the issue.</p>
Posted in Computer Science, Software Engineering Tagged: Algorithms, Best Practices, Code Reuse, Computer Science, Google Summer of Code <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/121/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=121&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/05/26/i-love-open-source/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>
	</item>
		<item>
		<title>Secret Questions Harmful</title>
		<link>http://jawnsy.wordpress.com/2009/05/22/secret-questions-harmful/</link>
		<comments>http://jawnsy.wordpress.com/2009/05/22/secret-questions-harmful/#comments</comments>
		<pubDate>Fri, 22 May 2009 16:42:33 +0000</pubDate>
		<dc:creator>Jonathan Yu</dc:creator>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://jawnsy.wordpress.com/?p=119</guid>
		<description><![CDATA[The problem with secret questions is that they&#8217;re not very secretive. Back in the 1990s, it might have been reasonable to assume that information like &#8220;What was your first school?&#8221; might be secret. However, now, in the days of MySpace and Facebook, and especially Google, it&#8217;s fairly easy to find information about people.
A problem with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=119&subd=jawnsy&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The problem with secret questions is that they&#8217;re not very secretive. Back in the 1990s, it might have been reasonable to assume that information like &#8220;What was your first school?&#8221; might be secret. However, now, in the days of MySpace and Facebook, and especially Google, it&#8217;s fairly easy to find information about people.</p>
<p>A problem with passwords is that people forget them. On the other hand, a problem with other methods of authentication like public key cryptography is that they are not portable. Moreover, the problem with solutions like RSA&#8217;s SecurID token is that they can be lost.</p>
<p>Generally, the wisdom for truly secure systems is to combine these various approaches, in what is called Multi-Factor Authentication. Wikipedia describes these as:</p>
<ul>
<li>the <strong>ownership factors</strong>: Something the user <strong>has</strong> (e.g., wrist band, ID card, <a title="Security token" href="http://en.wikipedia.org/wiki/Security_token">security token</a>, <a title="Software token" href="http://en.wikipedia.org/wiki/Software_token">software token</a>, <a class="mw-redirect" title="Phone" href="http://en.wikipedia.org/wiki/Phone">phone</a>, or <a class="mw-redirect" title="Cell phone" href="http://en.wikipedia.org/wiki/Cell_phone">cell phone</a>)</li>
<li>the <strong>knowledge factors</strong>: Something the user <strong>knows</strong> (e.g., a <a title="Password" href="http://en.wikipedia.org/wiki/Password">password</a>, <a class="mw-redirect" title="Pass phrase" href="http://en.wikipedia.org/wiki/Pass_phrase">pass phrase</a>, or <a title="Personal identification number" href="http://en.wikipedia.org/wiki/Personal_identification_number">personal identification number</a> (PIN))</li>
<li>the <strong>inherence factors</strong>: Something the user <strong>is</strong> or <strong>does</strong> (e.g., <a title="Fingerprint" href="http://en.wikipedia.org/wiki/Fingerprint">fingerprint</a> or <a title="Retina" href="http://en.wikipedia.org/wiki/Retina">retinal</a> pattern, <a title="DNA" href="http://en.wikipedia.org/wiki/DNA">DNA</a> sequence (there are assorted definitions of what is sufficient), <a title="Signature" href="http://en.wikipedia.org/wiki/Signature">signature</a> or <a class="mw-redirect" title="Voice recognition" href="http://en.wikipedia.org/wiki/Voice_recognition">voice recognition</a>, unique bio-electric signals, or another <a class="mw-redirect" title="Biometric" href="http://en.wikipedia.org/wiki/Biometric">biometric</a> identifier).</li>
</ul>
<p>However, usually a password is sufficient because, if well chosen, and if the rest of the system is secure, they can provide a reasonable balance between everything. Yes, they do require memorizing, but on the other hand, you&#8217;ll never lose it unless you forget it. They are also weak because you can&#8217;t know if somebody else shoulder-surfs and catches your password, or has a keylogger installed on a public workstation.</p>
<p>Worse, if you are using an unencrypted wireless network connection such as the one we have at Western, then your data (including your password) travels over-the-air in plaintext. I&#8217;ve actually tried sniffing packets using Wireshark over the wireless network, and captured quite a bit of stuff, all without having to log into the system. For those in the know, there is also a secure network, but it&#8217;s significantly harder to set up &#8211; it uses WPA2 Enterprise &#8211; and though Windows XP and Vista both support it, the added cost of setting it up doesn&#8217;t seem worthwhile to most people. But all this is the subject of another article.</p>
<p>Because secret questions are often used for password recovery in the event that your password is lost or your account is compromised (by an attacker who missed the option to change your secret question), they are essentially a second password on your account.</p>
<p>Why are two passwords bad? They effectively double the chances that one of them will be cracked; if attackers find that your actual password is too difficult to crack, they might look at your secret question instead. Worse, because the question is considered &#8220;public&#8221; information (how are you supposed to remember the answer, without being given a question, after all), then attackers have a context for your password.</p>
<p>Imagine having this as your real password. &#8220;Hint: It&#8217;s the name of your first son.&#8221; People then don&#8217;t need to know you very well at all in order to figure out your password. Worse, most people will pass this sort of information without knowing it in conversation. Find out what someone&#8217;s secret question is? Steer the conversation there. &#8220;Got any kids? What&#8217;s his name?&#8221; etc.</p>
<p>This social engineering is particularly dangerous because while people know their passwords are precious, they are less likely to even remember their secret question and wouldn&#8217;t protect that information too much anyway.</p>
<p>Some better systems have opted to verifying e-mail addresses, but then the e-mail account becomes the weakest link. If a user&#8217;s e-mail account gets hacked, then the attacker thus has access to all their other accounts through the &#8220;Send the password to my e-mail&#8221; feature.</p>
<p>There are lots of solutions to this, but I think the lesson learned is that human factors play the largest and most often overlooked part of software design, especially web applications. For software security to improve, programmers and designers need to be a lot more careful &#8211; validate all input from forms/parameters, sanitize output that goes to users&#8217; browsers to eliminate Cross Site Scripting (XSS) risks. It&#8217;s really just a reminder that a little bit of paranoia can go a long way to protecting the end-user.</p>
Posted in Software Engineering Tagged: Best Practices, Security, User Experience <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/119/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&blog=5968506&post=119&subd=jawnsy&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jawnsy.wordpress.com/2009/05/22/secret-questions-harmful/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/184b2d5902b4abc394f4c47c29b51fcf?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jawnsy</media:title>
		</media:content>
	</item>
	</channel>
</rss>