<?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>Some Nerdy Stuff</title>
	<atom:link href="http://aaronls.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://aaronls.wordpress.com</link>
	<description>Programming and IT</description>
	<lastBuildDate>Thu, 08 Dec 2011 00:24:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='aaronls.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Some Nerdy Stuff</title>
		<link>http://aaronls.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://aaronls.wordpress.com/osd.xml" title="Some Nerdy Stuff" />
	<atom:link rel='hub' href='http://aaronls.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Dynamic MVC Indexes and Handling Lists: Plus Displaying Navigation Properties as Links</title>
		<link>http://aaronls.wordpress.com/2011/10/28/dynamic-mvc-indexes-and-handling-lists-plus-displaying-navigation-properties-as-links/</link>
		<comments>http://aaronls.wordpress.com/2011/10/28/dynamic-mvc-indexes-and-handling-lists-plus-displaying-navigation-properties-as-links/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 23:05:11 +0000</pubDate>
		<dc:creator>aaronls</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://aaronls.wordpress.com/?p=103</guid>
		<description><![CDATA[I wanted to make my Index pages more dynamic and not require me to touch/rescaffold them every time my model changed. To accomplish this I first Edit the Index page to display a template specialized for handling a list of items.  In this case, I am saying &#8220;Take the current model(which happens to be a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=103&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I wanted to make my Index pages more dynamic and not require me to touch/rescaffold them every time my model changed.</p>
<p>To accomplish this I first Edit the Index page to display a template specialized for handling a list of items.  In this case, I am saying &#8220;Take the current model(which happens to be a list of Employees) and display it, oh by the way, use the Summary.cshtml template to do so&#8221;</p>
<p><pre class="brush: plain;">@model IEnumerable&lt;MyApp.Models.Employees&gt;
@{
ViewBag.Title = &quot;Employees&quot;;
}
&lt;h2&gt;Employees&lt;/h2&gt;

@Html.DisplayForModel(&quot;Summary&quot;)</pre></p>
<p>The Summary template is similar in concept to what was fleshed out here:</p>
<p><a title="http://haacked.com/archive/2010/05/05/asp-net-mvc-tabular-display-template.aspx" href="http://haacked.com/archive/2010/05/05/asp-net-mvc-tabular-display-template.aspx">http://haacked.com/archive/2010/05/05/asp-net-mvc-tabular-display-template.aspx</a></p>
<p>However, I took a couple steps to simplify the code.  One issue others had was the m[0] code breaks if presented with an empty list.  Others addressed this differently, but trying their approaches I found that the metadata they retrieved was the DynamicProxy of the model in one case versus the model class itself.  For me, maybe because of my usage of Data annotations, I found that the header fields of the table were in a different order than the data rows, and thus mislabled the data.  So instead, I simply check for empty (Model.Count == 0) and don&#8217;t display anything.  I would recommend instead displaying a useful message for this case, such as &#8220;No Employees have been entered into the system.&#8221;</p>
<p>Rather than trying to pull the meta data out of the generic IList, I just created two more simple templates that handle the header and data rows.  This allows the engine to do its magic in creating the Metadata.</p>
<p>Please forgive the lack of formatting, as the leading spaces are being stripped by the code tags for some reason.  Just copy and paste then Ctrl+K Ctrl+F to format it in Visual studio.  All of these files go in Shared DisplayTemplates as mentioned in the linked article above.</p>
<p>Summary.cshtml:</p>
<p><pre class="brush: plain;">
@functions{
//this was copied from MVC framework source code
bool ShouldShow(ModelMetadata metadata)
{
return metadata.ShowForDisplay
&amp;&amp; metadata.ModelType != typeof(System.Data.EntityState)
//  &amp;&amp; !metadata.IsComplexType
&amp;&amp; !ViewData.TemplateInfo.Visited(metadata);
}
}

@model System.Collections.IList
@if (Model == null || Model.Count == 0)
{
&lt;text&gt;@ViewData.ModelMetadata.NullDisplayText&lt;/text&gt;
} else {
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; border=&quot;0&quot;&gt;
@Html.DisplayFor(m =&gt; m[0], &quot;SummaryHeader&quot;)

@foreach (var item in Model)
{
@Html.DisplayFor(m =&gt; item, &quot;SummaryItem&quot;)
}
&lt;/table&gt;
}</pre></p>
<p>SummaryHeader.cshtml:</p>
<p><pre class="brush: plain;">@functions{
//this was copied from MVC framework source code
bool ShouldShow(ModelMetadata metadata)
{
return metadata.ShowForDisplay
&amp;&amp; metadata.ModelType != typeof(System.Data.EntityState)
//  &amp;&amp; !metadata.IsComplexType
&amp;&amp; !ViewData.TemplateInfo.Visited(metadata);
}
}

@if (Model == null) {
&lt;text&gt;@ViewData.ModelMetadata.NullDisplayText&lt;/text&gt;
}
else {
&lt;tr&gt;
@foreach (var prop in ViewData.ModelMetadata.Properties.Where(pm =&gt; ShouldShow(pm)))
{
&lt;th&gt;
&lt;span&gt;@prop.GetDisplayName()&lt;/span&gt;
&lt;/th&gt;
}
&lt;/tr&gt;</pre></p>
<p>SummaryItem:</p>
<p><pre class="brush: plain;">
@functions{
//this was copied from MVC framework source code
bool ShouldShow(ModelMetadata metadata)
{
return metadata.ShowForDisplay
&amp;&amp; metadata.ModelType != typeof(System.Data.EntityState)
//  &amp;&amp; !metadata.IsComplexType
&amp;&amp; !ViewData.TemplateInfo.Visited(metadata);
}
}

@if (Model == null) {
&lt;text&gt;@ViewData.ModelMetadata.NullDisplayText&lt;/text&gt;
}
else {
&lt;tr&gt;
@foreach (var prop in ViewData.ModelMetadata.Properties.Where(pm =&gt; ShouldShow(pm)))
{
&lt;td&gt;
&lt;span&gt;
@Html.Display(prop.PropertyName)
&lt;/span&gt;
&lt;/td&gt;
}
&lt;/tr&gt;
}</pre></p>
<p>That function at the top could be factored out, but I&#8217;ve had limited success with the techniques I&#8217;ve seen suggested so far.</p>
<p>Notice that I do not exclude ComplexTypes(such as navigation properties) because the Object template will simply display the SimpleDisplayText for these, which is exactly what I want.  So if I had a Supervisor navigation property on Employee, then it would get displayed, and the value displayed would be the SimpleDisplayText value.  Usually this is a realy long string that is the name of the generated DynmicProxy class, but if you override ToString() in the referenced class, in this case whatever Supervisor is, such that it returns something meaningful, then you get a meaningful display of your navigation properties.</p>
<p><pre class="brush: plain;">public override string ToString()
 {
   return this.FirstName + &quot; &quot; + this.LastName;
 }</pre></p>
<p>If you want them displayed differently, you can always apply a UIHint data annotation attribute to the navigation property.  I like them to display them as links to the details page of the related entity.</p>
<p>FKLink.cshtml:</p>
<p><pre class="brush: plain;">@if (Model == null)
{
&lt;text&gt;@ViewData.ModelMetadata.NullDisplayText&lt;/text&gt;
}
else
{
@Html.ActionLink(
@ViewData.ModelMetadata.SimpleDisplayText,  //display text for link
&quot;Details&quot;,
@ViewData.ModelMetadata.ModelType.Name, //controller
new
{
id = Model.Key
},
null)
}</pre></p>
<p>This requires every model have property called Key which returns the value of its primary key such as in these two examples, depending on your preferred naming convention:</p>
<p><pre class="brush: plain;">    [ScaffoldColumn(false)]
public int Key { get { return EmployeeKey; } }
[Key]
public int EmployeeKey { get; set; }</pre></p>
<p>&nbsp;</p>
<p><pre class="brush: plain;">    [ScaffoldColumn(false)]
public int Key { get { return EmployeeId; } }
     public int EmployeeId { get; set; }</pre></p>
<p>To take advantage of the FKLink template, you could use some of the template helpers like DisplayForModel, but I just add a UIHint to the navigation property which basically says &#8220;Anytime you encounter this property, use the FKLink template to display it&#8221;:</p>
<p><pre class="brush: plain;">

class Employee{

.......

public int SupervisorKey { get; set; }
[ForeignKey(&quot;SupervisorKey &quot;)]
[UIHint(&quot;FKLink&quot;)]
public virtual Supervisor Supervisor { get; set; }&lt;/pre&gt;
}</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aaronls.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aaronls.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aaronls.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aaronls.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aaronls.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aaronls.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aaronls.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aaronls.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aaronls.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aaronls.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aaronls.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aaronls.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aaronls.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aaronls.wordpress.com/103/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=103&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aaronls.wordpress.com/2011/10/28/dynamic-mvc-indexes-and-handling-lists-plus-displaying-navigation-properties-as-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/144fd462785db33cf6665cafd54101c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aaronls</media:title>
		</media:content>
	</item>
		<item>
		<title>My Continued Obsession with SSD Prices</title>
		<link>http://aaronls.wordpress.com/2011/09/03/100/</link>
		<comments>http://aaronls.wordpress.com/2011/09/03/100/#comments</comments>
		<pubDate>Sun, 04 Sep 2011 01:59:21 +0000</pubDate>
		<dc:creator>aaronls</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://aaronls.wordpress.com/?p=100</guid>
		<description><![CDATA[Finally SSD prices have started dropping again.  A year ago prices were at $1.56 /GB, and expected to see 25nm production in place by the end of 2010.  Now some SSD&#8217;s can be seen at around $1.16/GB.  This is a mere 25% price drop, and I would have hoped that they would be closer to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=100&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Finally SSD prices have started dropping again.  A year ago prices were at $1.56 /GB, and expected to see 25nm production in place by the end of 2010.  Now some SSD&#8217;s can be seen at around $1.16/GB.  This is a mere 25% price drop, and I would have hoped that they would be closer to 40% price drop by now.  The fact that flash memory is used by mobile phones, tablets, and netbooks means that there is probably a greater demand for flash memory which may have been contributing to the slow decrease in SSD prices.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aaronls.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aaronls.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aaronls.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aaronls.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aaronls.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aaronls.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aaronls.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aaronls.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aaronls.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aaronls.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aaronls.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aaronls.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aaronls.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aaronls.wordpress.com/100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=100&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aaronls.wordpress.com/2011/09/03/100/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/144fd462785db33cf6665cafd54101c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aaronls</media:title>
		</media:content>
	</item>
		<item>
		<title>Bill Zeller</title>
		<link>http://aaronls.wordpress.com/2011/01/11/bill-zeller/</link>
		<comments>http://aaronls.wordpress.com/2011/01/11/bill-zeller/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 06:48:18 +0000</pubDate>
		<dc:creator>aaronls</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[suicide]]></category>

		<guid isPermaLink="false">http://aaronls.wordpress.com/?p=88</guid>
		<description><![CDATA[These words below are those of a man who fought to be a good and functioning person of this society, but ultimately lost a battle against memories that he could not forget and profoundly effected every aspect of his life. If you look around the net you will find lots of people with accounts of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=88&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>These words below are those of a man who fought to be a good and functioning person of this society, but ultimately lost a battle against memories that he could not forget and profoundly effected every aspect of his life.  If you look around the net you will find lots of people with accounts of him simply being a wonderful and outgoing person, you might see photos of him smiling with others, you might find the many photos he has taken himself(some of which are quite beautiful), and you might read about how he used his skills as a computer scientist to try and help as many people as he possibly could.  Ultimately though, you could be the strongest person in the world, but if you are dealt a weight heavier than any man could ever carry, then you will inevitably collapse.  Many might compare their own life to his and call him a wuss because you are still here and he is not, but they cannot fathom every minute of his life and be sure he had the same experiences and turning points in his life as he did theirs, such that they could make such judgements.   I post this because I think he would have wanted as many people to read this as possible, and I think there is some good in bringing some awareness about the burdens some people silently carry.  Although it is very long and I was tempted to skip paragraphs, I read every word of it.  For someone who clearly put such a huge effort into trying to make others happy and use his skills to the benefit of others, despite the sadness he carried, I felt the least I could do was read what he had to say.</p>
<p><a href="http://1000memories.com/billzeller/memories">http://1000memories.com/billzeller/memories</a></p>
<p><a title="Bill Zeller's Photos on Flickr" href="http://www.flickr.com/photos/bz/4107098331/in/photostream/#/photos/bz/4107098331/in/photostream/lightbox/" target="_blank">http://www.flickr.com/photos/bz/4107098331/in/photostream/#/photos/bz/4107098331/in/photostream/lightbox/</a></p>
<p>The following was written by Bill Zeller and taken from http://documents.from.bz/note.txt<br />
____________________________</p>
<p>I have the urge to declare my sanity and justify my actions, but I<br />
assume I&#8217;ll never be able to convince anyone that this was the right<br />
decision. Maybe it&#8217;s true that anyone who does this is insane by<br />
definition, but I can at least explain my reasoning. I considered not<br />
writing any of this because of how personal it is, but I like tying up<br />
loose ends and don&#8217;t want people to wonder why I did this. Since I&#8217;ve<br />
never spoken to anyone about what happened to me, people would likely<br />
draw the wrong conclusions.</p>
<p>My first memories as a child are of being raped, repeatedly. This has<br />
affected every aspect of my life. This darkness, which is the only way I<br />
can describe it, has followed me like a fog, but at times intensified<br />
and overwhelmed me, usually triggered by a distinct situation. In<br />
kindergarten I couldn&#8217;t use the bathroom and would stand petrified<br />
whenever I needed to, which started a trend of awkward and unexplained<br />
social behavior. The damage that was done to my body still prevents me<br />
from using the bathroom normally, but now it&#8217;s less of a physical<br />
impediment than a daily reminder of what was done to me.</p>
<p>This darkness followed me as I grew up. I remember spending hours<br />
playing with legos, having my world consist of me and a box of cold,<br />
plastic blocks. Just waiting for everything to end. It&#8217;s the same thing<br />
I do now, but instead of legos it&#8217;s surfing the web or reading or<br />
listening to a baseball game. Most of my life has been spent feeling<br />
dead inside, waiting for my body to catch up.</p>
<p>At times growing up I would feel inconsolable rage, but I never<br />
connected this to what happened until puberty. I was able to keep the<br />
darkness at bay for a few hours at a time by doing things that required<br />
intense concentration, but it would always come back. Programming<br />
appealed to me for this reason. I was never particularly fond of<br />
computers or mathematically inclined, but the temporary peace it would<br />
provide was like a drug. But the darkness always returned and built up<br />
something like a tolerance, because programming has become less and less<br />
of a refuge.</p>
<p>The darkness is with me nearly every time I wake up. I feel like a grime<br />
is covering me. I feel like I&#8217;m trapped in a contimated body that no<br />
amount of washing will clean. Whenever I think about what happened I<br />
feel manic and itchy and can&#8217;t concentrate on anything else. It<br />
manifests itself in hours of eating or staying up for days at a time or<br />
sleeping for sixteen hours straight or week long programming binges or<br />
constantly going to the gym. I&#8217;m exhausted from feeling like this every<br />
hour of every day.</p>
<p>Three to four nights a week I have nightmares about what happened. It<br />
makes me avoid sleep and constantly tired, because sleeping with what<br />
feels like hours of nightmares is not restful. I wake up sweaty and<br />
furious. I&#8217;m reminded every morning of what was done to me and the<br />
control it has over my life.</p>
<p>I&#8217;ve never been able to stop thinking about what happened to me and this<br />
hampered my social interactions. I would be angry and lost in thought<br />
and then be interrupted by someone saying &#8220;Hi&#8221; or making small talk,<br />
unable to understand why I seemed cold and distant. I walked around,<br />
viewing the outside world from a distant portal behind my eyes, unable<br />
to perform normal human niceties. I wondered what it would be like to<br />
take to other people without what happened constantly on my mind, and I<br />
wondered if other people had similar experiences that they were better<br />
able to mask.</p>
<p>Alcohol was also something that let me escape the darkness. It would<br />
always find me later, though, and it was always angry that I managed to<br />
escape and it made me pay. Many of the irresponsible things I did were<br />
the result of the darkness. Obviously I&#8217;m responsible for every decision<br />
and action, including this one, but there are reasons why things happen<br />
the way they do.</p>
<p>Alcohol and other drugs provided a way to ignore the realities of my<br />
situation. It was easy to spend the night drinking and forget that I had<br />
no future to look forward to. I never liked what alcohol did to me, but<br />
it was better than facing my existence honestly. I haven&#8217;t touched<br />
alcohol or any other drug in over seven months (and no drugs or alcohol<br />
will be involved when I do this) and this has forced me to evaluate my<br />
life in an honest and clear way. There&#8217;s no future here. The darkness<br />
will always be with me.</p>
<p>I used to think if I solved some problem or achieved some goal, maybe he<br />
would leave. It was comforting to identify tangible issues as the source<br />
of my problems instead of something that I&#8217;ll never be able to change. I<br />
thought that if I got into to a good college, or a good grad school, or<br />
lost weight, or went to the gym nearly every day for a year, or created<br />
programs that millions of people used, or spent a summer or California<br />
or New York or published papers that I was proud of, then maybe I would<br />
feel some peace and not be constantly haunted and unhappy. But nothing I<br />
did made a dent in how depressed I was on a daily basis and nothing was<br />
in any way fulfilling. I&#8217;m not sure why I ever thought that would change<br />
anything.</p>
<p>I didn&#8217;t realize how deep a hold he had on me and my life until my<br />
first relationship. I stupidly assumed that no matter how the darkness<br />
affected me personally, my romantic relationships would somehow be<br />
separated and protected. Growing up I viewed my future relationships as<br />
a possible escape from this thing that haunts me every day, but I began<br />
to realize how entangled it was with every aspect of my life and how it<br />
is never going to release me. Instead of being an escape, relationships<br />
and romantic contact with other people only intensified everything about<br />
him that I couldn&#8217;t stand. I will never be able to have a relationship<br />
in which he is not the focus, affecting every aspect of my romantic<br />
interactions.</p>
<p>Relationships always started out fine and I&#8217;d be able to ignore him for<br />
a few weeks. But as we got closer emotionally the darkness would return<br />
and every night it&#8217;d be me, her and the darkness in a black and gruesome<br />
threesome. He would surround me and penetrate me and the more we did the<br />
more intense it became. It made me hate being touched, because as long<br />
as we were separated I could view her like an outsider viewing something<br />
good and kind and untainted. Once we touched, the darkness would<br />
envelope her too and take her over and the evil inside me would surround<br />
her. I always felt like I was infecting anyone I was with.</p>
<p>Relationships didn&#8217;t work. No one I dated was the right match, and I<br />
thought that maybe if I found the right person it would overwhelm him.<br />
Part of me knew that finding the right person wouldn&#8217;t help, so I became<br />
interested in girls who obviously had no interest in me. For a while I<br />
thought I was gay. I convinced myself that it wasn&#8217;t the darkness at<br />
all, but rather my orientation, because this would give me control over<br />
why things didn&#8217;t feel &#8220;right&#8221;. The fact that the darkness affected<br />
sexual matters most intensely made this idea make some sense and I<br />
convinced myself of this for a number of years, starting in college<br />
after my first relationship ended. I told people I was gay (at Trinity,<br />
not at Princeton), even though I wasn&#8217;t attracted to men and kept<br />
finding myself interested in girls. Because if being gay wasn&#8217;t the<br />
answer, then what was? People thought I was avoiding my orientation, but<br />
I was actually avoiding the truth, which is that while I&#8217;m straight, I<br />
will never be content with anyone. I know now that the darkness will<br />
never leave.</p>
<p>Last spring I met someone who was unlike anyone else I&#8217;d ever met.<br />
Someone who showed me just how well two people could get along and how<br />
much I could care about another human being. Someone I know I could be<br />
with and love for the rest of my life, if I weren&#8217;t so fucked up.<br />
Amazingly, she liked me. She liked the shell of the man the darkness had<br />
left behind. But it didn&#8217;t matter because I couldn&#8217;t be alone with her.<br />
It was never just the two of us, it was always the three of us: her, me<br />
and the darkness. The closer we got, the more intensely I&#8217;d feel the<br />
darkness, like some evil mirror of my emotions. All the closeness we had<br />
and I loved was complemented by agony that I couldn&#8217;t stand, from him. I<br />
realized that I would never be able to give her, or anyone, all of me or<br />
only me. She could never have me without the darkness and evil inside<br />
me. I could never have just her, without the darkness being a part of<br />
all of our interactions. I will never be able to be at peace or content<br />
or in a healthy relationship. I realized the futility of the romantic<br />
part of my life. If I had never met her, I would have realized this as<br />
soon as I met someone else who I meshed similarly well with. It&#8217;s likely<br />
that things wouldn&#8217;t have worked out with her and we would have broken<br />
up (with our relationship ending, like the majority of relationships do)<br />
even if I didn&#8217;t have this problem, since we only dated for a short<br />
time. But I will face exactly the same problems with the darkness with<br />
anyone else. Despite my hopes, love and compatability is not enough.<br />
Nothing is enough. There&#8217;s no way I can fix this or even push the<br />
darkness down far enough to make a relationship or any type of intimacy<br />
feasible.</p>
<p>So I watched as things fell apart between us. I had put an explicit time<br />
limit on our relationship, since I knew it couldn&#8217;t last because of the<br />
darkness and didn&#8217;t want to hold her back, and this caused a variety of<br />
problems. She was put in an unnatural situation that she never should<br />
have been a part of. It must have been very hard for her, not knowing<br />
what was actually going on with me, but this is not something I&#8217;ve ever<br />
been able to talk about with anyone. Losing her was very hard for me as<br />
well. Not because of her (I got over our relationship relatively<br />
quickly), but because of the realization that I would never have another<br />
relationship and because it signified the last true, exclusive personal<br />
connection I could ever have. This wasn&#8217;t apparent to other people,<br />
because I could never talk about the real reasons for my sadness. I was<br />
very sad in the summer and fall, but it was not because of her, it was<br />
because I will never escape the darkness with anyone. She was so loving<br />
and kind to me and gave me everything I could have asked for under the<br />
circumstances. I&#8217;ll never forget how much happiness she brought me in<br />
those briefs moments when I could ignore the darkness. I had originally<br />
planned to kill myself last winter but never got around to it. (Parts of<br />
this letter were written over a year ago, other parts days before doing<br />
this.) It was wrong of me to involve myself in her life if this were a<br />
possibility and I should have just left her alone, even though we only<br />
dated for a few months and things ended a long time ago. She&#8217;s just one<br />
more person in a long list of people I&#8217;ve hurt.</p>
<p>I could spend pages talking about the other relationships I&#8217;ve had that<br />
were ruined because of my problems and my confusion related to the<br />
darkness. I&#8217;ve hurt so many great people because of who I am and my<br />
inability to experience what needs to be experienced. All I can say is<br />
that I tried to be honest with people about what I thought was true.</p>
<p>I&#8217;ve spent my life hurting people. Today will be the last time.</p>
<p>I&#8217;ve told different people a lot of things, but I&#8217;ve never told anyone<br />
about what happened to me, ever, for obvious reasons. It took me a while<br />
to realize that no matter how close you are to someone or how much they<br />
claim to love you, people simply cannot keep secrets. I learned this a<br />
few years ago when I thought I was gay and told people. The more harmful<br />
the secret, the juicier the gossip and the more likely you are to be<br />
betrayed. People don&#8217;t care about their word or what they&#8217;ve promised,<br />
they just do whatever the fuck they want and justify it later. It feels<br />
incredibly lonely to realize you can never share something with someone<br />
and have it be between just the two of you. I don&#8217;t blame anyone in<br />
particular, I guess it&#8217;s just how people are. Even if I felt like this<br />
is something I could have shared, I have no interest in being part of a<br />
friendship or relationship where the other person views me as the<br />
damaged and contaminated person that I am. So even if I were able to<br />
trust someone, I probably would not have told them about what happened<br />
to me. At this point I simply don&#8217;t care who knows.</p>
<p>I feel an evil inside me. An evil that makes me want to end life. I need<br />
to stop this. I need to make sure I don&#8217;t kill someone, which is not<br />
something that can be easily undone. I don&#8217;t know if this is related to<br />
what happened to me or something different. I recognize the irony of<br />
killing myself to prevent myself from killing someone else, but this<br />
decision should indicate what I&#8217;m capable of.</p>
<p>So I&#8217;ve realized I will never escape the darkness or misery associated<br />
with it and I have a responsibility to stop myself from physically<br />
harming others.</p>
<p>I&#8217;m just a broken, miserable shell of a human being. Being molested has<br />
defined me as a person and shaped me as a human being and it has made me<br />
the monster I am and there&#8217;s nothing I can do to escape it. I don&#8217;t know<br />
any other existence. I don&#8217;t know what life feels like where I&#8217;m apart<br />
from any of this. I actively despise the person I am. I just feel<br />
fundamentally broken, almost non-human. I feel like an animal that woke<br />
up one day in a human body, trying to make sense of a foreign world,<br />
living among creatures it doesn&#8217;t understand and can&#8217;t connect with.</p>
<p>I have accepted that the darkness will never allow me to be in a<br />
relationship. I will never go to sleep with someone in my arms, feeling<br />
the comfort of their hands around me. I will never know what<br />
uncontimated intimacy is like. I will never have an exclusive bond with<br />
someone, someone who can be the recipient of all the love I have to<br />
give. I will never have children, and I wanted to be a father so badly.<br />
I think I would have made a good dad. And even if I had fought through<br />
the darkness and married and had children all while being unable to feel<br />
intimacy, I could have never done that if suicide were a possibility. I<br />
did try to minimize pain, although I know that this decision will hurt<br />
many of you. If this hurts you, I hope that you can at least forget<br />
about me quickly.</p>
<p>There&#8217;s no point in identifying who molested me, so I&#8217;m just going to<br />
leave it at that. I doubt the word of a dead guy with no evidence about<br />
something that happened over twenty years ago would have much sway.</p>
<p>You may wonder why I didn&#8217;t just talk to a professional about this. I&#8217;ve<br />
seen a number of doctors since I was a teenager to talk about other<br />
issues and I&#8217;m positive that another doctor would not have helped. I was<br />
never given one piece of actionable advice, ever. More than a few spent<br />
a large part of the session reading their notes to remember who I was.<br />
And I have no interest in talking about being raped as a child, both<br />
because I know it wouldn&#8217;t help and because I have no confidence it<br />
would remain secret. I know the legal and practical limits of<br />
doctor/patient confidentiality, growing up in a house where we&#8217;d hear<br />
stories about the various mental illnesses of famous people, stories<br />
that were passed down through generations. All it takes is one doctor<br />
who thinks my story is interesting enough to share or a doctor who<br />
thinks it&#8217;s her right or responsibility to contact the authorities and<br />
have me identify the molestor (justifying her decision by telling<br />
herself that someone else might be in danger). All it takes is a single<br />
doctor who violates my trust, just like the &#8220;friends&#8221; who I told I was<br />
gay did, and everything would be made public and I&#8217;d be forced to live<br />
in a world where people would know how fucked up I am. And yes, I<br />
realize this indicates that I have severe trust issues, but they&#8217;re<br />
based on a large number of experiences with people who have shown a<br />
profound disrepect for their word and the privacy of others.</p>
<p>People say suicide is selfish. I think it&#8217;s selfish to ask people to<br />
continue living painful and miserable lives, just so you possibly won&#8217;t<br />
feel sad for a week or two. Suicide may be a permanent solution to a<br />
temporary problem, but it&#8217;s also a permanent solution to a ~23 year-old<br />
problem that grows more intense and overwhelming every day.</p>
<p>Some people are just dealt bad hands in this life. I know many people<br />
have it worse than I do, and maybe I&#8217;m just not a strong person, but I<br />
really did try to deal with this. I&#8217;ve tried to deal with this every day<br />
for the last 23 years and I just can&#8217;t fucking take it anymore.</p>
<p>I often wonder what life must be like for other people. People who<br />
can feel the love from others and give it back unadulterated, people who<br />
can experience sex as an intimate and joyous experience, people who can<br />
experience the colors and happenings of this world without constant<br />
misery. I wonder who I&#8217;d be if things had been different or if I were a<br />
stronger person. It sounds pretty great.</p>
<p>I&#8217;m prepared for death. I&#8217;m prepared for the pain and I am ready to no<br />
longer exist. Thanks to the strictness of New Jersey gun laws this will<br />
probably be much more painful than it needs to be, but what can you do.<br />
My only fear at this point is messing something up and surviving.</p>
<p>&#8212;</p>
<p>I&#8217;d also like to address my family, if you can call them that. I despise<br />
everything they stand for and I truly hate them, in a non-emotional,<br />
dispassionate and what I believe is a healthy way. The world will be a<br />
better place when they&#8217;re dead&#8211;one with less hatred and intolerance.</p>
<p>If you&#8217;re unfamiliar with the situation, my parents are fundamentalist<br />
Christians who kicked me out of their house and cut me off financially<br />
when I was 19 because I refused to attend seven hours of church a week.</p>
<p>They live in a black and white reality they&#8217;ve constructed for<br />
themselves. They partition the world into good and evil and survive<br />
by hating everything they fear or misunderstand and calling it love.<br />
They don&#8217;t understand that good and decent people exist all around us,<br />
&#8220;saved&#8221; or not, and that evil and cruel people occupy a large percentage<br />
of their church. They take advantage of people looking for hope by<br />
teaching them to practice the same hatred they practice.</p>
<p>A random example:</p>
<p>&#8220;I am personally convinced that if a Muslim truly believes and obeys the<br />
Koran, he will be a terrorist.&#8221; &#8211; George Zeller, August 24, 2010.</p>
<p>If you choose to follow a religion where, for example, devout Catholics<br />
who are trying to be good people are all going to Hell but child<br />
molestors go to Heaven (as long as they were &#8220;saved&#8221; at some point),<br />
that&#8217;s your choice, but it&#8217;s fucked up. Maybe a God who operates by<br />
those rules does exist. If so, fuck Him.</p>
<p>Their church was always more important than the members of their family<br />
and they happily sacrificed whatever necessary in order to satisfy<br />
their contrived beliefs about who they should be.</p>
<p>I grew up in a house where love was proxied through a God I could never<br />
believe in. A house where the love of music with any sort of a beat was<br />
literally beaten out of me. A house full of hatred and intolerance, run<br />
by two people who were experts at appearing kind and warm when others<br />
were around. Parents who tell an eight year old that his grandmother is<br />
going to Hell because she&#8217;s Catholic. Parents who claim not to be racist<br />
but then talk about the horrors of miscegenation. I could list hundreds<br />
of other examples, but it&#8217;s tiring.</p>
<p>Since being kicked out, I&#8217;ve interacted with them in relatively normal<br />
ways. I talk to them on the phone like nothing happened. I&#8217;m not sure<br />
why. Maybe because I like pretending I have a family. Maybe I like<br />
having people I can talk to about what&#8217;s been going on in my life.<br />
Whatever the reason, it&#8217;s not real and it feels like a sham. I should<br />
have never allowed this reconnection to happen.</p>
<p>I wrote the above a while ago, and I do feel like that much of the time.<br />
At other times, though, I feel less hateful. I know my parents honestly<br />
believe the crap they believe in. I know that my mom, at least, loved me<br />
very much and tried her best. One reason I put this off for so long is<br />
because I know how much pain it will cause her. She has been sad since<br />
she found out I wasn&#8217;t &#8220;saved&#8221;, since she believes I&#8217;m going to Hell,<br />
which is not a sadness for which I am responsible. That was never going<br />
to change, and presumably she believes the state of my physical body is<br />
much less important than the state of my soul. Still, I cannot<br />
intellectually justify this decision, knowing how much it will hurt her.<br />
Maybe my ability to take my own life, knowing how much pain it will<br />
cause, shows that I am a monster who doesn&#8217;t deserve to live. All I know<br />
is that I can&#8217;t deal with this pain any longer and I&#8217;m am truly sorry I<br />
couldn&#8217;t wait until my family and everyone I knew died so this could be<br />
done without hurting anyone. For years I&#8217;ve wished that I&#8217;d be hit by a<br />
bus or die while saving a baby from drowning so my death might be more<br />
acceptable, but I was never so lucky.</p>
<p>&#8212;</p>
<p>To those of you who have shown me love, thank you for putting up with<br />
all my shittiness and moodiness and arbitrariness. I was never the<br />
person I wanted to be. Maybe without the darkness I would have been a<br />
better person, maybe not. I did try to be a good person, but I realize I<br />
never got very far.</p>
<p>I&#8217;m sorry for the pain this causes. I really do wish I had another<br />
option. I hope this letter explains why I needed to do this. If you<br />
can&#8217;t understand this decision, I hope you can at least forgive me.</p>
<p>Bill Zeller</p>
<p>&#8212;</p>
<p>Please save this letter and repost it if gets deleted. I don&#8217;t want<br />
people to wonder why I did this. I disseminated it more widely than I<br />
might have otherwise because I&#8217;m worried that my family might try to<br />
restrict access to it. I don&#8217;t mind if this letter is made public. In<br />
fact, I&#8217;d prefer it be made public to people being unable to read it and<br />
drawing their own conclusions.</p>
<p>Feel free to republish this letter, but only if it is reproduced in its<br />
entirety.</p>
<p>___________________________</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aaronls.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aaronls.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aaronls.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aaronls.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aaronls.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aaronls.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aaronls.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aaronls.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aaronls.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aaronls.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aaronls.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aaronls.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aaronls.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aaronls.wordpress.com/88/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=88&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aaronls.wordpress.com/2011/01/11/bill-zeller/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/144fd462785db33cf6665cafd54101c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aaronls</media:title>
		</media:content>
	</item>
		<item>
		<title>Flash Triple Level Cell on 25nm Lithography Production This Year</title>
		<link>http://aaronls.wordpress.com/2010/08/17/flash-triple-level-cell-on-25nm-lithography-production-this-year/</link>
		<comments>http://aaronls.wordpress.com/2010/08/17/flash-triple-level-cell-on-25nm-lithography-production-this-year/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 23:48:46 +0000</pubDate>
		<dc:creator>aaronls</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://aaronls.wordpress.com/?p=85</guid>
		<description><![CDATA[Saw an article over at StorageReview.com today on an announcement indicating we will probably see a significant increase in Flash storage density by the end of the year due to the development of triple level cell technology (TLC) on 25nm Lithography.  This increases storage density by moving from 32nm to the smaller 25nm, and also [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=85&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Saw an article over at StorageReview.com today on an announcement indicating we will probably see a significant increase in Flash storage density by the end of the year due to the development of <a href="http://www.storagereview.com/intel_and_micron_announce_25nm_triple_level_cell_nand">triple level cell technology (TLC) on 25nm Lithography</a>.  This increases storage density by moving from 32nm to the smaller 25nm, and also increases the number of bits that can be stored from 2 to 3.  It is not clear whether TLC will be offered in SSD&#8217;s, as the TLC technology will decrease the write endurance of the flash.  It may only be suited for applications that are rarely written to but read from often, such as MP3 players.  Micron, Intel&#8217;s partner in this endeavor, has a <a href="http://www.youtube.com/watch?v=wOLkEfGT7XM&amp;feature=player_embedded">short video on the new 25nm TLC flash</a>.</p>
<p>On a side note I noticed there has been alot of dancing around of SSD prices on Newegg.  The WD SiliconEdge Blue 128GB drive was $200, then the price jumped up quite high and there was no other SSD&#8217;s priced anywhere close to that low.  Later a 128GB Plextor drive showed up at around $190 but then disappeared from that price point and the WD SiliconEdge Blue showed up again at around $200.</p>
<p>I also found something that is almost a joke to me.  A $30.00 Mail-In Rebate on a $9,000 drive!  Wow, what a deal <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   I guess if you were corrupt and had purchasing power at the company you worked for, then you might favor the hardware with a mail-in rebate and then pocket the rebate <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p><a href="http://aaronls.files.wordpress.com/2010/07/mailinrebate.jpg"><img class="alignnone size-full wp-image-86" title="MailInRebate" src="http://aaronls.files.wordpress.com/2010/07/mailinrebate.jpg" alt="" width="476" height="193" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aaronls.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aaronls.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aaronls.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aaronls.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aaronls.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aaronls.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aaronls.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aaronls.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aaronls.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aaronls.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aaronls.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aaronls.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aaronls.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aaronls.wordpress.com/85/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=85&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aaronls.wordpress.com/2010/08/17/flash-triple-level-cell-on-25nm-lithography-production-this-year/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/144fd462785db33cf6665cafd54101c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aaronls</media:title>
		</media:content>

		<media:content url="http://aaronls.files.wordpress.com/2010/07/mailinrebate.jpg" medium="image">
			<media:title type="html">MailInRebate</media:title>
		</media:content>
	</item>
		<item>
		<title>SSD Price Drop &#8211; July 2010</title>
		<link>http://aaronls.wordpress.com/2010/07/21/ssd-price-drop-july-2010/</link>
		<comments>http://aaronls.wordpress.com/2010/07/21/ssd-price-drop-july-2010/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 00:33:26 +0000</pubDate>
		<dc:creator>aaronls</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://aaronls.wordpress.com/?p=77</guid>
		<description><![CDATA[I noticed about a week ago on Newegg there was a 128 GB SSD that was available for about $220 with a rebate, which offered a cost per GB that was significantly lower than all the other SSDs at the time. I generally don&#8217;t take mail-in rebates into consideration though, because by the time you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=77&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I noticed about a week ago on Newegg there was a 128 GB SSD that was available for about $220 with a rebate, which offered a cost per GB that was significantly lower than all the other SSDs at the time.  I generally don&#8217;t take mail-in rebates into consideration though, because by the time you get done with the hassle of the rebate, and the potential lost/ignored rebates, it tends to not be worth it.  Additionally, the drive had mediocre write performance.  </p>
<p>However, this might have prompted Western Digital to undercut that price by offering the WD SiliconEdge Blue 128GB for $200!  Back in the beggining of April, all the SSDs I had looked at on Newegg were at least $1.95/GB and many climbed in price up to as much as $5/GB.  Now, just three months later, the WD SiliconEdge Blue 128GB model is $1.56/GB which represents a 20% drop in price.  Additionally, the WD SiliconEdge Blue has had pretty good reviews and benchmarks, yet still undercuts many of the other drives by a significant margin.</p>
<p>The price wars in the SSD market will be interesting to watch unfold.  HDD manufacturers are producing SSDs because SSDs could replace HDD&#8217;s, so they need to get into the SSD market, or else they might face potential face extinction or lose significant revenue if HDD sales drop as SSDs gain popularity and affordability.  Then we also have memory manufacturers like SanDisk and OCZ that have been making flash memory for awhile, and so it&#8217;s a pretty natural for them to be involved in the SSD game.  So now we have alot of manufacturers with an SSD product on the table all competing for the spotlight.  This is going to make for some chaotic price wars.  We can already see that some manufacturers are putting out drives with relatively lower performance, but for whatever reason they aren&#8217;t able to offer the product at a lower price point.  Perhaps their competitors are actually selling their better performing drives at a loss in order to get a good base of customers familiar with their product and try to stand out among the crowd.  Since SSDs will be new to most customers, the manufacturers may see this as an opportunity to solidify their place in the SSD marketplace by getting their products in the hands of as many customers as possible, even if it means taking a loss initially with the hope that the reputation they have built will mean more sales later. Especially since we will probably see SSD sales continue to pick up as they become more affordable and more consumers learn of the huge performance gains they offer above traditional HDDs.</p>
<p>Also, this competition is great because we are seeing manufacturers aggressively addressing issues with the product, because they don&#8217;t want to be that one manufacturer that everyone talks about as having &#8220;such and such&#8221; problem.  I believe this is helping the technology mature more quickly than it did when it was a niche product.</p>
<p>It will be really interesting to watch SSD price trends and see if any manufacturers try to develop unique features to make themselves stand out.  We&#8217;ve already seen some interesting products such as SSD&#8217;s mounted on PCI express cards.</p>
<p>Before I say good bye for now, I want to point out something you should consider when comparing drives based on $/GB.  Some manufacturers are doing something called over-provisioning.  An SSD that is over provisioned might only have 100 GB available for storage, but actually contains 128 GB of flash storage.  The purpose of over-provisioning is to improve the drive&#8217;s performance, reliability, and lifespan.  Combined with wear leveling techniques the SSD is able to make use of the extra space to spread out the wear caused by writes to the drive.  Additionally, as memory blocks go bad they can be replaced by blocks in the reserved space so that the drive continues to operate at the same capacity.  Lastly, the drive is able to improve performance because it has more available blocks that it can pre-erase to ensure they are ready and available.  There may be other benefits and storagesearch.com is a great resource if you are interested in the nitty gritty details.</p>
<p>Anyhow, my point being that you can&#8217;t always calculate an accurate $/GB simply by it&#8217;s advertised capacity, as the total amount of flash storage it contains may actually be more than what is available.  I think the reliability you get from over-provisioning is worth sacrificing a portion of your storage.  I have found so far that the only way to know how much over-provisioning a drive has is to go to the manufacturer&#8217;s website and look at the specifications for the drive.  Hopefully retailers like Newegg will start consistently advertising the over-provisioning in their listings.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aaronls.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aaronls.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aaronls.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aaronls.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aaronls.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aaronls.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aaronls.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aaronls.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aaronls.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aaronls.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aaronls.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aaronls.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aaronls.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aaronls.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=77&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aaronls.wordpress.com/2010/07/21/ssd-price-drop-july-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/144fd462785db33cf6665cafd54101c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aaronls</media:title>
		</media:content>
	</item>
		<item>
		<title>Fixing Blurry Text When Using Samsung DLP TV Connected Via HDMI and Obtaining 1920&#215;1080 Resolution</title>
		<link>http://aaronls.wordpress.com/2010/06/20/fixing-blurry-text-when-using-samsung-dlp-tv-connected-via-hdmi-and-obtaining-1920x1080-resolution/</link>
		<comments>http://aaronls.wordpress.com/2010/06/20/fixing-blurry-text-when-using-samsung-dlp-tv-connected-via-hdmi-and-obtaining-1920x1080-resolution/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 16:03:54 +0000</pubDate>
		<dc:creator>aaronls</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[1080i]]></category>
		<category><![CDATA[1080p]]></category>
		<category><![CDATA[1920x1080]]></category>
		<category><![CDATA[blurry text]]></category>
		<category><![CDATA[corrupted text]]></category>
		<category><![CDATA[HL50A650]]></category>
		<category><![CDATA[HL56A650]]></category>
		<category><![CDATA[HL61A650]]></category>
		<category><![CDATA[HL61A750]]></category>
		<category><![CDATA[HL67A750]]></category>
		<category><![CDATA[HL72A650]]></category>
		<category><![CDATA[jagged text]]></category>
		<category><![CDATA[resolution]]></category>
		<category><![CDATA[Samsung DLP TV]]></category>

		<guid isPermaLink="false">http://aaronls.wordpress.com/?p=78</guid>
		<description><![CDATA[I have a Samsung DLP TV (HL50A650) and I had a difficult time getting it to display 1920&#215;1080 resolution over the D-sub connector(VGA).  In Windows XP I was eventually able to accomplish this, but later when I upgraded to Windows 7 64bit I was no longer able to get the ATI driver to run my [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=78&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have a Samsung DLP TV (HL50A650) and I had a difficult time getting it to display 1920&#215;1080 resolution over the D-sub connector(VGA).  In Windows XP I was eventually able to accomplish this, but later when I upgraded to Windows 7 64bit I was no longer able to get the ATI driver to run my TV at a 1920&#215;1080 resolution at the required 60hz.  As a matter of fact the manual indicates that resolution is supported over HDMI, and not over D-sub.</p>
<p>I was able to get the resolution from my computer at 1920&#215;1080 with an HDMI cable, but the text was very blurry and jagged.  It was nearly unreadable and very hard on the eyes.  Other normally crisp graphics were also effected.  In actuality the problem was a Sharpness setting on the TV that needed to be turned down to around zero or close to it.  The extra sharpness post-processing was making the text and graphics jagged along the edge, and the mixing of adjacent colors made it appear blurry and jagged at the same time.  Note that this Sharpness setting is specific to the selected video source, so make sure you change your input source to the computer&#8217;s HDMI3/DVI input source(you did plug it into HDMI 3 right?) , and then hit Menu on your Samsung remote and turn the Sharpness all the way down.  Once I turned it down to 2, my image was perfect.  I actually first switched the Mode setting on that same first Menu screen to Movie, as I liked the colors there the most, but it will look really horrible until you turn the Sharpness setting down.  So it was really difficult to figure the problem out because there were multiple problems working against me when I first began.  I now sit about 5&#8242; from my 50&#8243; TV and enjoy a huge space for my applications, games, and movies at a 1920&#215;1080 HD resolution.</p>
<p>What everyone was saying on the forums regarding the Samsung DLP models was that it wasn&#8217;t producing the graphics in a one to one pixel mapping.  Thus some pixels were being interpolated between a straddled pixel causing poor graphics quality.  This is not true however, at least for my model.  What was happening actually was the DLP TV was doing image processing based on it&#8217;s settings, and one of those settings was the Sharpness setting was jacked way up by default.  Note, the settings you get when you press the Menu button on the Samsung remote are specific to the currently selected source.  So normally Sharpness might be way down, but when I switched to the HDMI source, I found the Sharpness setting was jacked half way up to 50.  Normally Sharpness should be all the way down or very close to zero.  You would think, &#8220;Oh sharpness would make the image sharper and better, so that&#8217;s not the problem.&#8221;  But it is the problem!  The sharpness setting determines how much post-processing takes place, and normally if you have a quality image, you need no post processing, which is the case with an incoming computer signal.  When you add more sharpness to an already sharp image, then it starts turning smooth curves into jagged steps and it messes up the colors to add contrast to adjacent colors.  <strong>In a nutshell, use the Tools or Menu buttons on your Samsung remote to access the TV&#8217;s sharpness setting, and turn it all the way down(from 50 down to 1) and hopefully that will fix your blurriness problem.</strong></p>
<p>Also see my article on <a title="Troubleshooting Windows 7 Display Resolutions" href="https://aaronls.wordpress.com/wp-admin/post.php?post=30&amp;action=edit" target="_blank">troubleshooting Windows 7 display resolutions</a> and the EDID setting, since it may be helpful if you have a similar TV hooked up to your computer.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aaronls.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aaronls.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aaronls.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aaronls.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aaronls.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aaronls.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aaronls.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aaronls.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aaronls.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aaronls.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aaronls.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aaronls.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aaronls.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aaronls.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=78&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aaronls.wordpress.com/2010/06/20/fixing-blurry-text-when-using-samsung-dlp-tv-connected-via-hdmi-and-obtaining-1920x1080-resolution/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/144fd462785db33cf6665cafd54101c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aaronls</media:title>
		</media:content>
	</item>
		<item>
		<title>Will External SSDs Bring Portable Applications to the Mainstream?</title>
		<link>http://aaronls.wordpress.com/2010/05/07/will-external-ssds-bring-portable-applications-to-the-mainstream/</link>
		<comments>http://aaronls.wordpress.com/2010/05/07/will-external-ssds-bring-portable-applications-to-the-mainstream/#comments</comments>
		<pubDate>Fri, 07 May 2010 16:52:16 +0000</pubDate>
		<dc:creator>aaronls</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://aaronls.wordpress.com/?p=71</guid>
		<description><![CDATA[As high-speed external SSDs become more affordable, I expect we will see portable applications becoming more mainstream. External SSDs can provide the portability, reliability, shock resistance, and speed that is needed to make portable applications more popular among the mainstream crowd. As of right now users have the choice of a flash drive or an [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=71&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As high-speed external SSDs become more affordable, I expect we will see portable applications becoming more mainstream.  External SSDs can provide the portability, reliability, shock resistance, and speed that is needed to make portable applications more popular among the mainstream crowd.</p>
<p>As of right now users have the choice of a flash drive or an external HDD.  Flash drives often have horrible write performance which results in sluggish portable application performance, and HDDs are more easily damaged by bumping or dropping.  Additionally some external HDDs have problems with overheating due to poorly ventilated enclosures.  These problems have prevented portable applications from becoming mainstream, and even for power users there are only a handful of must-have applications that they use.  Usually the poor performance makes the portable application a last resort where it is a must-have application that you just don&#8217;t want to do without, like a password manager, or a browser configured for optimum security.</p>
<p>External SSDs connected over USB 3.0 or eSATA don&#8217;t have the same problems.  SSDs produce almost no heat compared to HDDs, are extremely shock resistant, and often provide read/write performance that outpaces both HDDs and flash pen drives.  Drives like the<br />
<a title="OCZ Enyo Announced" href="http://www.storagereview.com/ocz_enyo_external_usb_30_ssd_announced">OCZ Enyo External USB 3.0 SSD</a> will provide these key features, and hopefully the 64GB models will be under $200.</p>
<p>There was a time when applications were heavily intertwined with the Operating System they were installed upon.  In Windows sometimes hundreds or thousands of registry settings would be written by a single application installation.  Over the years this has evolved and manifested itself in different ways as each newer version of an Operating System tightens security with new restrictions.  In Windows 7 various hacks are employed by the OS to allow legacy applications to continue to function, but the expected pattern is that the application installs to the Program Files folder, and only writes data to user folders such as Documents.</p>
<p>I expect the next logical step in this evolution will be driven by a demand for portable applications such that developers make applications portable by default.  This is in contrast to the current situation where most applications require a special build,  platform, or hacks to get it to function as a portable application.  A portable application would not interact with the OS in any way during installation, and the files it writes out during installation are confined to a single folder.  Additionally, program data read and written during program execution would be confined to a user defined folder.  Such an application could still be installed to Program Files and user files pointed to the Documents folder, but now users also have the option of placing the application and data on a portable drive.</p>
<p>I think the portable SSD will bring a new drive for portable applications, and probably prompt desktop applications to adapt to allow for more reliable and user-friendly installation processes that are portable friendly.</p>
<p>We might even see improvements in virtual machines or bootable OS packages that make them more accessible to the lay user who wants to maximize the portability of their applications by also including the OS on their external SSD.  Properly implemented, this would allow someone the means to plugin an SSD to any computer hardware that is capable of supporting the bootable OS, regardless of what OS is currently installed on that hardware.</p>
<p>Of course similar flexibility could be accomplished by using portable apps that are compiled into cross-platform intermediate languages such as how Java or Flash is implemented.  Such languages generally require a runtime engine such as the Java Virtual Machine or Adobe AIR to be installed on the hosting OS.  Perhaps the key to solving this roadblock is to make the runtime engine portable as well, so that it can be loaded on demand from the portable media without installing on the host OS.  In this scenario, the runtime engine would almost act like a cross-platform bridge.  Of course the portable version of the runtime engine would be large and bloated as it would need to contain redundant builds for each target OS that is supported.</p>
<p>Buying a high performance SSD and enjoying the performance benefit of  installing an application or game on that drive is one thing, but then  being able to take that drive from your desktop, to your laptop, to a friends machine,  etc. and have  access to that game or application on the road with the extra benefit of  a high performance SSD would be awesome.  Now the only roadblock is  when you plug that drive into a machine that doesn&#8217;t meet the system  requirements of the game you have on the SSD <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Regardless of what comes to light, I think we might see the availability of high performing reliable portable media in the form of portable SSDs become the driving force that brings portable applications to the mainstream.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aaronls.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aaronls.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aaronls.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aaronls.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aaronls.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aaronls.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aaronls.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aaronls.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aaronls.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aaronls.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aaronls.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aaronls.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aaronls.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aaronls.wordpress.com/71/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=71&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aaronls.wordpress.com/2010/05/07/will-external-ssds-bring-portable-applications-to-the-mainstream/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/144fd462785db33cf6665cafd54101c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aaronls</media:title>
		</media:content>
	</item>
		<item>
		<title>Why are SSD&#8217;s so expensive?</title>
		<link>http://aaronls.wordpress.com/2010/04/08/why-are-ssds-so-expensive/</link>
		<comments>http://aaronls.wordpress.com/2010/04/08/why-are-ssds-so-expensive/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 15:55:58 +0000</pubDate>
		<dc:creator>aaronls</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://aaronls.wordpress.com/2010/04/08/why-are-ssds-so-expensive/</guid>
		<description><![CDATA[Basically a SSD is just a bunch of flash chips, with each chip providing a specific amount of storage space. Larger SSDs require more of these chips. These flash memory chips are built using 32nm and 45nm manufacturing processes on silicon, similar to CPUs. However, flash memory isn&#8217;t as complicated as a CPU and there [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=67&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Basically a SSD is just a bunch of flash chips, with each chip providing a specific amount of storage space.  Larger SSDs require more of these chips.  These flash memory chips are built using 32nm and 45nm manufacturing processes on silicon, similar to CPUs.   However, flash memory isn&#8217;t as complicated as a CPU and there are things like multi-level cell storage that flash uses to fit more data into a smaller space, so the cost isn&#8217;t quite as much as a CPU.  Still, it takes several flash chips to provide the storage for an SSD.  Additionally SSDs have additional components that add to the cost.  For example chips that handle the flow of data to and from the flash memory.  Some SSDs have extra flash storage that you don&#8217;t know about, because it is there on standby in case some of the flash memory goes bad and can replace the bad memory, so that as a user of the drive you don&#8217;t know something has gone wrong.  The process of making these chips is expensive.  Even if a single chip can hold 16 GB of data, it will take 4 of these to make a 64 GB SSD, and if you use the price of a really cheap CPU as a benchmark, then you are talking about $30 at least per chip.  So that&#8217;s $120 just for the flash memory on the drive and that doesn&#8217;t include the extra components that comprise the drive.</p>
<p>So it is a matter of the process of making flash memory is expensive.  The other big factor is storage density.  HDD manufacturers have managed to continually evolve hard drives such that they can fit more data in the same space, and thus similar manufacturing processes can produce more storage.  For flash memory chips to get cheaper, manufacturers have to figure out how they can use the same/similar manufacturing processes but instead fit more storage space into the same flash memory chip.  Increasing the storage density of the chip will make the cost per gigabyte of storage lower, since you are producing a chip with more storage using the same manufacturing process.  So your manufacturing costs don&#8217;t go up significantly, but the amount of storage you&#8217;re producing does.  The issue here is that increasing the storage density on silicon involves significant technology challenges to make the components of the chip smaller.  The 45 nm and 32 nm processes currently used are named for the size of features on the chip, and making these features smaller so that more can be fit on the chip is a really difficult challenge.</p>
<p>Some recent research may improve storage density significantly in the next three years:<br />
<a title="Three dimensional memory arrays." href="http://www.nytimes.com/2010/04/08/science/08chips.html?hpw" target="_self"> http://www.nytimes.com/2010/04/08/science/08chips.html?hpw</a></p>
<p>Another article explaining SSD cost in greater detail:<br />
<a title="Why are SSDs still so expensive?" href="http://agigatech.com/blog/why-are-ssds-still-so-expensive/" target="_self">http://agigatech.com/blog/why-are-ssds-still-so-expensive/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aaronls.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aaronls.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aaronls.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aaronls.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aaronls.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aaronls.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aaronls.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aaronls.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aaronls.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aaronls.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aaronls.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aaronls.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aaronls.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aaronls.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=67&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aaronls.wordpress.com/2010/04/08/why-are-ssds-so-expensive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/144fd462785db33cf6665cafd54101c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aaronls</media:title>
		</media:content>
	</item>
		<item>
		<title>Potential Cost Savings of SSDs</title>
		<link>http://aaronls.wordpress.com/2010/04/05/potential-cost-savings-of-ssds/</link>
		<comments>http://aaronls.wordpress.com/2010/04/05/potential-cost-savings-of-ssds/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 14:36:52 +0000</pubDate>
		<dc:creator>aaronls</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://aaronls.wordpress.com/?p=52</guid>
		<description><![CDATA[Solid state disks (SSDs) are currently very expensive in terms of price per gigabyte, at $1.95/GB, when compared to hard disk drives (HDDs) at around $0.08/GB for a terabyte HDD, $0.18/GB for a 250GB HDD, or if you wanted a 146GB 2.5&#8243; 15K RPM server drive(henceforth enterprise HDD) it&#8217;d run you a whopping $3.63/GB.  So [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=52&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Solid state disks (SSDs) are currently very expensive in terms of price per gigabyte, at $1.95/GB, when compared to hard disk drives (HDDs) at around $0.08/GB for a terabyte HDD, $0.18/GB for a 250GB HDD, or if you wanted a 146GB 2.5&#8243; 15K RPM server drive(henceforth enterprise HDD) it&#8217;d run you a whopping $3.63/GB.  So already the SSD is looking great when compared to a high end server drive.  However, for the enthusiast/professional/gamer market, where a high performance drive is mouth watering, but the price of a SSD is not, we should take into consideration the fact that an SSD&#8217;s cost will be offset to some extent by it&#8217;s power and cooling costs savings.  An SSD uses a small fraction of the power that an HDD does, and this also translates to a significant decrease in heat dissipation.  This means lower power costs, lower cooling costs, and lower cost for infrastructure to support cooling.  Additionally, SSDs are touted as being significantly more reliable than HDDs.</p>
<p>What I want to do is calculate the cost of a mainstream HDD over a 5 year period that includes it&#8217;s cost to power, cool, and replace(in the event of a failure) the drive.  We will do this by taking it&#8217;s purchase price, adding to that the cost to power it, adding the estimated cost to cool it, and also consider the average failure rate and use that to estimate average replacement costs.  We might even add a premium on top of the replacement cost to account for the overhead of swapping the replacement.</p>
<p>Then we will calculate the same cost for an SSD of similar size, and we will do the same for a enterprise drive.  When we are done we can calculate a $/GB that represents a total cost of ownership.  To do this accurately, I feel we first need to target a specific drive size.  The sizes of SSDs and enterprise HDDs don&#8217;t come close to what is available in mainstream sizes, and since we are considering some fairly pricey drives, we probably can&#8217;t afford to splurge on massive amounts of storage.  Let&#8217;s say around 128 GB is the space we anticipate needing for most of our tasks.  With that space, we can install video/audio production tools, development tools, and/or several games and still have a significant amount of working space for the data we would produce with those tools.  Additionally, the 128 GB SSDs seem to be a sweet spot on the $/GB for SSDs and enterprise HDDs.  We could try to save some money by going for a 64 GB drive, but the $/GB is higher for both SSDs, mainstream HDDs, and enterprise HDDs when we start going for smaller drives.</p>
<p>First let&#8217;s spec out the stats of our drives in terms of power consumption.  I&#8217;m going off of StorageReview.com&#8217;s benchmark database for the HDD estimates, and for SSDs I am going to use some benchmarking articles that target a specific SSD in our 128 GB $250 price point category.</p>
<p>Estimated Active Consumption (Watts):</p>
<p>Mainstream HDDs = 10 W</p>
<p>Enterprise HDDs = 18 W</p>
<p>SSD = 5 W</p>
<p>Estimated Idle Consumption (Watts):</p>
<p>Mainstream HDDs = 7 W</p>
<p>Enterprise HDDs = 14 W</p>
<p>SSD = .7 W</p>
<p>Let&#8217;s assume that since we are considering a costly SSD, that we are considering putting the drive to use in a way that makes it worth the hefty price tag.  So I will assume 4 hours a day of active usage, and 20 hours of idle usage.  This assumes it will be on 24/7, and I think that is a fair balance since there will be scenarios where the drive has more active usage, and at the other end of the spectrum, scenarios where the drive will be idle all day or the system may be powered down.  Based on these assumptions, let&#8217;s calculate the daily watt/hour consumption of each drive:</p>
<p>Mainstream HDDs = 140 Wh idle per day + 40 Wh active per day = 180 Wh</p>
<p>Enterprise HDDs = 280 Wh idle per day + 72 Wh active per day = 352 Wh per day</p>
<p>SSD = 1.4 Wh idle per day + 20 Wh active per day = 21.4 Wh per day</p>
<p>To roughly estimate cooling cost we will assume the drive dissipates the same amount of heat energy that it consumes in electricity, and then also assume that it costs that amount of energy to provide air conditioning that removes the generated heat.  The result is that cooling cost is equal to the power consumption cost.  So we can essentially just double the power consumption calculated above to give us a combined consumption for power and cooling.  These assumptions are not necessarily accurate, but they provide a fair estimate.  It is likely that some energy supplied to the drive is not converted to heat, making the actual heat dissipation lower than we calculated, but this is offset by the fact that it is likely that the inefficiencies of air conditioners means it will cost more to cool that energy than we estimate.  My guess is that in real life the cost of cooling will be much higher than our estimates.</p>
<p>So now we will calculate a 5 year total cost of power and cooling, and assume that the cost of electricity is $0.13 per kilowatt:</p>
<p>Mainstream HDDs = 180 Wh/day x 365 days/year x 5 years x $.13/kW x 2 = $85.41/5 years</p>
<p>Enterprise HDDs = 352 Wh/day x 365 days/year x 5 years x $.13/kW x 2 = $167.02/5 years</p>
<p>SSDs = 21.4 Wh per day x 365 days/year x 5 years x $.13/kW x 2 = $10.15/5 years</p>
<p>Now we will also estimate the average failure rate (AFR) over a 5 year period.  For the HDDs we will use statistics from Google&#8217;s white paper on HDD reliability:</p>
<p>http://static.googleusercontent.com/external_content/untrusted_dlcp/labs.google.com/en/us/papers/disk_failures.pdf</p>
<p>Since SSDs haven&#8217;t been in wide usage as long or as much as HDDs, I doubt there are similar analysis available on the reliability of SSDs.  However, we can use manufacturer&#8217;s claimed AFRs as a guideline.  We can&#8217;t take the manufacturer&#8217;s reported AFR for face value however, as the above report and many others show that manufacturers can&#8217;t be trusted to report accurate AFR&#8217;s as HDDs have been shown to fail more often than manufacturers would like you to believe.  Seagate claims a 0.44% AFR on a particular SSD model, 0.55% AFR on a particular 15K RPM enterprise HDD, and 0.73% AFR on a particular 7200 RPM enterprise drive .  While these claims are likely inaccurate, we can hope that Seagate has kept them relative to each other in that one can estimate that SSDs have a one to two fifths lower AFR.  I couldn&#8217;t find any AFR claims for mainstream HDDs from Seagate for comparison, but one would expect the AFRs for these are slightly lower, so we will assume SSDs are 2/5ths more reliable than HDDs.</p>
<p>Based on Google&#8217;s yearly AFR statistics one can calculate the 5 year survival rate of an HDD like so:</p>
<p>.98 x .92 x .91 x .94 x .93 = .717 =&gt; 71.7% HDDs survive 5 years</p>
<p>This means there is a 28.3% chance an HDDs will need to be replaced in a 5 year period, and additionally there is a small chance that replacement will fail in the remaining years, that replacement&#8217;s replacement will fail, and so on.  However, calculating the probabilities for these subsequent failures involves going down several branches of conditional probabilities and will not amount to more than a few percentage points difference.</p>
<p>Based on the relative AFRs claimed by Seagate, we will estimate that SSDs have a 2/5ths lower 5 year failure probability than HDDs, putting an SSD&#8217;s at a 16.98% 5 year failure probability.  I don&#8217;t really know if Google used mainstream or enterprise HDDs, I have heard rumors that they just use lots of low end hardware and cluster it, but we will give enterprise HDDs the advantage by saying they are 1/4th more reliable than the HDDs Google tested putting them at a 21.225% 5 year failure probability.</p>
<p>If we wanted to be really accurate we would actually calculate the survival rate per year and calculate the cost to replace based on the depreciated retail prices of the same drive, however for the sake of simplicity we will assume the drives cost half as much to replace as it initially did to purchase.  On average this would mean a $100 drive that fails 25% of the time in a 5 year lifetime will cost an average of $12.5 (half of $25) to replace per drive for the first 5 years of it&#8217;s life.</p>
<p>Mainstream HDDs: .283 x $38 (160GB) / 2 = $5.38</p>
<p>Enterprise HDDs: .21225 x $260 (147 GB) / 2 = $27.59</p>
<p>SSDs: .1698 x $260 (128 GB) / 2 = $22.07</p>
<p>I find it interesting that the cheapest 147GB enterprise HDD and 128GB SSD are the same price on NewEgg, and additionally are both 2.5&#8243; form factor.  One might think these SSDs were priced to be competitive with the high performance enterprise HDDs, but on the other hand SSDs&#8217; prices are supposedly determined by flash prices.</p>
<p>Now we sum the purchase, power/cooling, and replacement costs to give us a 5 year cost and also a 5 year cost per gigabyte:</p>
<p>Mainstream HDDs: $38 + $5.38 + $85.41 = <strong>$128.79</strong> =&gt; $128.79 / 160GB = <strong>$.80/GB</strong></p>
<p>Enterprise HDDs: $260 + $27.59 + $167.02 = <strong>$454.61</strong> =&gt; $454.61 / 147GB = <strong>$3.09/GB</strong></p>
<p>SSDs: $260 + $22.07 + $10.15 = <strong>$292.22</strong> =&gt; $292.22 / 128GB = <strong>$2.28/GB</strong></p>
<p>We see that a HDD costs an estimated $75 more to power and cool.   What these $/GB calculations show is that when you take in to account the long term costs of each type of drive, the gap between mainstream and SSDs is closed significantly.  Rather than an SSD be 20 times the cost, it is now less than 3 times the cost of a mainstream HDD.  It would be even closer if we had considered some of the 10K drives, but on the other hand we didn&#8217;t consider the $/GB of mainstream terabyte HDDs that would probably be around a 5 year effective cost of $.20/GB.</p>
<p><strong>Conclusion:</strong></p>
<p>What I really wanted to glean from this cost analysis is how much of a premium I would be paying for a high performance 128GB SSD.  They roughly outperform HDDs by 10 times, require significanlty less cooling which translates to less infrastructure and space, are more reliable, and are completely silent.  However they cost 20 to 30 times as much as a mainstream HDD.  This seems a hefty premium to pay for performance.  However, when we considered the reduced heat and power consumption of the drive, then the SSD was less than 3 times as expensive as the mainstream HDD of similar size!  Now that factor of ten performance increase, quiet operation, and reduced cooling infrastructure doesn&#8217;t seem so expensive.  With SSDs getting cheaper they will find their place in the mainstream as laptops and desktops as at least a main OS and application drive.  As sales increase and storage density increases, we will hopefully see prices fall fairly quickly for SSDs.  However the flash thumbdrive market had a pretty good run and may have already sucked out the initial rapid price drops that we hope for, and we may only see the usual steady decline that we see with most other silicon based products.  My one fear is that SSD densities may already be close to a slow rising ceiling, since they already rely on 32nm processes, there are ever increasing challenges as chip developers work toward the smaller semiconductor processes.  A smaller process size means more transistors can fit in the same space, and generally this means you get more GB for your money.  This is what is loosely known as <a title="Moore's law" href="http://en.wikipedia.org/wiki/Moore%27s_law" target="_self">Moore&#8217;s law</a>, which some speculate is reaching a slowing point.  It may turn out that Moore&#8217;s Law is more logarithmic than linear.</p>
<p>Getting back to cost analysis, when compared to the enterprise HDDs the SSDs are cheaper as well, and from spot checking various benchmarks it seems the SSDs can outperform them on average, although I can imagine there are probably specific access patterns that the SSDs may fall behind on.  So the SSD seemingly wins on all fronts against the enterprise HDD.  Additionally, the comparison with the enterprise HDD is much fairer since the drive we compared against is in a $/GB sweet spot for 15K RPM drives.  With the hope for improved reliability with SSDs, we would hope for reduced costs in dealing with failed drives and the risks they pose.  Even when in a RAID 5 array, a failed drive leaves the array vulnerable, where an additional drive failure will compromise the array.  Additionally the potential for user error and other risks when swapping the failed drive pose additional risks to the array.  If I were a server administrator, I would seriously give SSDs a try.  There will probably be new challenges, but it&#8217;s worth working through the initial challenges.  Too often I see people incorrectly assess a challenge instead as a road block, and thus give up without looking for a solution to that challenge.  One issue I&#8217;ve not seen addressed yet is the lack of TRIM support by RAID controllers.  Additionally, there are alot going on in the firmware of enterprise HDDs and RAID controllers that manage error checking and error handling.  I don&#8217;t know all the details of these algorithms, but some of them seem very specialized to dealing with various nuances present only in spinning disk drives.  I expect it will take some time for software and firmware for SSDs to mature and bring out the full potential benefits that SSDs could bring to enterprise storage.  There will likely be rumors, gossip, and debate all along the way about what the best approach is.  In truth the people who have spent their whole lives writing these advanced algorithms will probably go off into a corner, reassess the situation, and do a far better job than any of us could.</p>
<p><strong>Notes:</strong></p>
<p>Yes I know it is unfair to refer to 15K RPM 2.5&#8243; enterprise drives generically as &#8220;enterprise HDDs&#8221; since there are cheaper enterprise drives, but for the sake of simplicity I just wanted to consider the high performance drives since we are considering SSDs for their high performance characteristics.  In retrospect I wish I had done the same for mainstream HDDs by considering one of the mainstream high performance 10K RPM drives.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aaronls.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aaronls.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aaronls.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aaronls.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aaronls.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aaronls.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aaronls.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aaronls.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aaronls.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aaronls.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aaronls.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aaronls.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aaronls.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aaronls.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=52&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aaronls.wordpress.com/2010/04/05/potential-cost-savings-of-ssds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/144fd462785db33cf6665cafd54101c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aaronls</media:title>
		</media:content>
	</item>
		<item>
		<title>Working Around Databases With Lower Compatibility Levels</title>
		<link>http://aaronls.wordpress.com/2010/03/31/working-around-databases-with-lower-compatibility-levels/</link>
		<comments>http://aaronls.wordpress.com/2010/03/31/working-around-databases-with-lower-compatibility-levels/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 20:21:26 +0000</pubDate>
		<dc:creator>aaronls</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://aaronls.wordpress.com/?p=55</guid>
		<description><![CDATA[I was attempting to write a PIVOT query in SQL Server 2005, when I received the following error: Incorrect syntax near &#8216;PIVOT&#8217;. You may need to set the compatibility level of the current database to a higher value to enable this feature. See help for the stored procedure sp_dbcmptlevel. The reason for this was that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=55&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was attempting to write a PIVOT query in SQL Server 2005, when I received the following error:</p>
<blockquote><p>Incorrect syntax near &#8216;PIVOT&#8217;. You may need to set the compatibility level of the current database to a higher value to enable this feature. See help for the stored procedure sp_dbcmptlevel.</p></blockquote>
<p>The reason for this was that the database I was querying against was set to SQL Server 2000 compatibility mode, which I verified by running this query and seeing the result of &#8217;80&#8242;:</p>
<blockquote><p>select compatibility_level from sys.databases where name=db_name()</p></blockquote>
<p>To work around this issue I used the database selection drop down menu in Management Studio to select a different database that was running in 2005 compatibility mode and ran the query from that database against the original database.  To accomplish this, I had to modify the query to use a three part naming convention such as:</p>
<blockquote><p>SELECT * FROM DatabaseNameHere.dbo.TableNameHere</p></blockquote>
<p>The fact that new language features work against old databases in this way implies that the database from which you run the query has some hand in translating and possibly executing the query against the database with the lower compatibility level.</p>
<p>There are probably many hangups to using this work around for many scenarios.  In my case I was just running some adhoc queries through Management Studio to perform some data profiling for an ETL project.  If I were creating views or stored procedures I&#8217;m not sure how you would implement this workaround.  Can you simply run the create statement from the 2005 database against the 2000 database such that it creates the stored procedure in the 2000 database, or would you need to create the stored procedure in the 2005 database?   If you find you actually have to partition out these stored procedures and views into their own database, then make sure you document it well, and really weigh the cons of the complexity this would add to your project.</p>
<p>It is a fairly simple process to upgrade a database to a newer compatibility level, and the only reason I didn&#8217;t go this route was it would have only been for one query, and would have introduced significant risks in terms of the need for testing and verification that the change didn&#8217;t adversely effect front end applications.</p>
<p>If worse comes to worse, there are probably alternative ways you can write a query such that it will be compatible to the 2000 database.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aaronls.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aaronls.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aaronls.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aaronls.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aaronls.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aaronls.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aaronls.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aaronls.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aaronls.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aaronls.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aaronls.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aaronls.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aaronls.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aaronls.wordpress.com/55/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aaronls.wordpress.com&amp;blog=6867671&amp;post=55&amp;subd=aaronls&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aaronls.wordpress.com/2010/03/31/working-around-databases-with-lower-compatibility-levels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/144fd462785db33cf6665cafd54101c7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aaronls</media:title>
		</media:content>
	</item>
	</channel>
</rss>
