<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sankofa &#187; Job</title>
	<atom:link href="http://blog.ianuy.com/tag/job/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ianuy.com</link>
	<description>From Script Kiddie to Professional Software Developer</description>
	<lastBuildDate>Tue, 18 May 2010 16:09:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>High Salary is Killing the Software Industry</title>
		<link>http://blog.ianuy.com/2009/09/14/high-salary-is-killing-the-software-industry/</link>
		<comments>http://blog.ianuy.com/2009/09/14/high-salary-is-killing-the-software-industry/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 16:20:10 +0000</pubDate>
		<dc:creator>Ian Uy</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Job]]></category>
		<category><![CDATA[Passion]]></category>
		<category><![CDATA[Salary]]></category>

		<guid isPermaLink="false">http://blog.ianuy.com/?p=503</guid>
		<description><![CDATA[If there is someone that I hate more than Ms. Judy Ann Santos, that someone would have to be a person who has a job that he or she is not passionate about.
I don&#8217;t know if it&#8217;s the Philippine economy or just the Filipino culture that makes it &#8220;okay&#8221; for someone to live a life [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_504" class="wp-caption aligncenter" style="width: 281px"><a href="http://blog.ianuy.com/wp-content/uploads/2009/09/Judy-Ann-Santos-Ploning.jpg"><img class="size-medium wp-image-504" title="Judy-Ann-Santos" src="http://blog.ianuy.com/wp-content/uploads/2009/09/Judy-Ann-Santos-Ploning-271x300.jpg" alt="Judy Ann Santos - Philippine Superstar" width="271" height="300" /></a><p class="wp-caption-text">Judy Ann Santos - Philippine Superstar</p></div>
<p>If there is someone that I hate more than Ms. <a title="http://en.wikipedia.org/wiki/Judy_Ann_Santos" href="http://en.wikipedia.org/wiki/Judy_Ann_Santos" target="_blank">Judy Ann Santos</a>, that someone would have to be a person who has a job that he or she is not passionate about.</p>
<p>I don&#8217;t know if it&#8217;s the Philippine economy or just the Filipino culture that makes it &#8220;okay&#8221; for someone to live a life of suffering; enduring a job he or she hates for exchange of a comfortable life and a prestigious career. I&#8217;ve heard countless stories of teenagers being forced by their parents to take a course like Medicine, Law or Engineering (Courses which will attach fancy-sounding, age-old, titles to their child&#8217;s name) against their child&#8217;s will. I&#8217;ve <em>accidentally </em>watched countless Pinoy movies with the same theme. (Kid wants to major in Fine Arts, MOM aka Mrs. Attorney wants the kid to major in Law and be a lawyer. Sounds familiar?)</p>
<p>Five years ago, Nursing became a popular course for High School graduates to take in college. I know that because that was the year when I graduated from High School. During that time, some of my classmates took Nursing courses not because they want to be nurses but just because being a nurse would almost guarantee a free-work pass to the US and a chance of snatching that American dream. And you know what? I think majority of the newly graduated nurses thinks the same too.</p>
<p><span id="more-503"></span></p>
<div id="attachment_507" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.ianuy.com/wp-content/uploads/2009/09/Nurses.jpg"><img class="size-medium wp-image-507" title="Nurses" src="http://blog.ianuy.com/wp-content/uploads/2009/09/Nurses-300x225.jpg" alt="Nursing school in the Philippines" width="300" height="225" /></a><p class="wp-caption-text">Nursing school in the Philippines</p></div>
<p><strong>Is this already a deeply-ingrained practice in our society? Seems so.</strong></p>
<p>In College, I have met a lot of people who did not know the exact reason why they took <strong>Computer Science</strong>. Most of them did not even know what Computer Science is when they took it. Some of them took the course because they heard from their Uncle&#8217;s Friend&#8217;s Cousin&#8217;s who is the Executive Vice President of a multinational company that being a programmer pays well. <strong>True Story</strong>. Some of them took computer science because they thought computer science is EASY and because they thought computer-related jobs are easy to get.</p>
<p>For me, the only reason that you should take a course is because <strong>you absolutely love it.</strong> No other reason should override that. Your course will more-or-less dictate your life long profession. It will define you. You will breathe it, you will think about it, most of your waking hours will be used to deal with it. <strong>IT WILL DEFINE YOU.</strong> Why waste it in something you don&#8217;t really want? That&#8217;s stupid.</p>
<p>This pattern is not limited to Nursing or Computer Science. Look around you&#8230; Technical support staff, Call center agents, etc. I bet you that majority of them are there not because they love their job but because of the money. And you wonder why you are getting crappy customer service when you call your DSL support hotline? The moment they pickup the phone, they are already thinking of the best and fastest way to put it down. The more calls they get, the more money they&#8217;ll receive. This should stop. (One could argue that the system is to be blamed, but who can change the system?)</p>
<p><a href="http://blog.ianuy.com/wp-content/uploads/2009/09/call-center-2-web.jpg"><img class="aligncenter size-medium wp-image-510" title="call-center-2-web" src="http://blog.ianuy.com/wp-content/uploads/2009/09/call-center-2-web-243x300.jpg" alt="call-center-2-web" width="243" height="300" /></a></p>
<p>When I was in college, I really believed that everyone working in the software industry are <strong>passionate, nerdy, geeky programmers</strong>. But reality begs to disagree. I have met my share of software developers who are just here for the money, for the career.</p>
<p>So what is wrong with having a job that you are not passionate about? Well,<strong> I believe that if one is not passionate about his or her job one will always produce average and mediocre result.</strong> The Filipino culture of &#8220;Puwede na yan&#8221; (That&#8217;s good enough) fits the image perfectly. Maybe this is why you can see this pattern everywhere?</p>
<p>If you don&#8217;t really like what you are doing and if you are only after the rewards of finishing the job, you would never go the extra mile to rise above mediocrity. Well, if there is an additional reward for doing so, then you just might. But you would never work unpaid on an overtime just because you want to add that last &#8220;touch&#8221; that will make your result or product a little more perfect, because there is no additional reward for doing so.</p>
<p>I really admire the Japanese work ethics&#8230; they always aim to perfect something. I call that the Samurai Mindset, the art of the samurai. On the other hand, the <strong>unpassionate</strong> Filipino worker would outright claim that &#8220;nothing is perfect&#8221;, &#8220;perfection is impossible&#8221; then give up trying.</p>
<p>During my college days, I&#8217;ve met my fair share of these unpassionate programmers. Some of them are even dean&#8217;s listers and cumlaudes. Its just sad. You can see it on their projects (Computer Systems)&#8230; Since projects only accounts for 15% of the total grade, they would submit these mediocre systems that just meet the requirements. They would argue that its pointless to make your project perfect since its only a portion of the grade. <strong>Never trust the grades</strong>. <img src='http://blog.ianuy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>It is a well known fact that the local IT industry gives one of the highest salary and that is making the situation a lot worse. Just like in Nursing, teenagers and their parents are most likely to choose IT courses because of the eventual monetary payoff and that is attracting more potential unpassionate programmers.</p>
<p>And Software companies hiring non-technical graduates for a programming job isn&#8217;t helping either.</p>
<p>Without passionate programmers, the local Software Industry would never be able to produce really innovative products. We will just be stuck as a source for cheap software &#8220;labor&#8221;. Making and remaking the same boring &#8220;business&#8221; systems. Producing average products, for average people.</p>



Share and Enjoy:


	<a rel="nofollow" href="mailto:?subject=High%20Salary%20is%20Killing%20the%20Software%20Industry&amp;body=http%3A%2F%2Fblog.ianuy.com%2F2009%2F09%2F14%2Fhigh-salary-is-killing-the-software-industry%2F" title="E-mail this story to a friend!"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F09%2F14%2Fhigh-salary-is-killing-the-software-industry%2F&amp;title=High%20Salary%20is%20Killing%20the%20Software%20Industry&amp;bodytext=%0A%0D%0AIf%20there%20is%20someone%20that%20I%20hate%20more%20than%20Ms.%20Judy%20Ann%20Santos%2C%20that%20someone%20would%20have%20to%20be%20a%20person%20who%20has%20a%20job%20that%20he%20or%20she%20is%20not%20passionate%20about.%0D%0A%0D%0AI%20don%27t%20know%20if%20it%27s%20the%20Philippine%20economy%20or%20just%20the%20Filipino%20culture%20that%20makes%20it%20%22" title="Digg"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F09%2F14%2Fhigh-salary-is-killing-the-software-industry%2F&amp;title=High%20Salary%20is%20Killing%20the%20Software%20Industry" title="Reddit"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F09%2F14%2Fhigh-salary-is-killing-the-software-industry%2F&amp;title=High%20Salary%20is%20Killing%20the%20Software%20Industry&amp;notes=%0A%0D%0AIf%20there%20is%20someone%20that%20I%20hate%20more%20than%20Ms.%20Judy%20Ann%20Santos%2C%20that%20someone%20would%20have%20to%20be%20a%20person%20who%20has%20a%20job%20that%20he%20or%20she%20is%20not%20passionate%20about.%0D%0A%0D%0AI%20don%27t%20know%20if%20it%27s%20the%20Philippine%20economy%20or%20just%20the%20Filipino%20culture%20that%20makes%20it%20%22" title="del.icio.us"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://twitter.com/home?status=High%20Salary%20is%20Killing%20the%20Software%20Industry%20-%20http%3A%2F%2Fblog.ianuy.com%2F2009%2F09%2F14%2Fhigh-salary-is-killing-the-software-industry%2F" title="Twitter"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://slashdot.org/bookmark.pl?title=High%20Salary%20is%20Killing%20the%20Software%20Industry&amp;url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F09%2F14%2Fhigh-salary-is-killing-the-software-industry%2F" title="Slashdot"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.ianuy.com%2F2009%2F09%2F14%2Fhigh-salary-is-killing-the-software-industry%2F&amp;t=High%20Salary%20is%20Killing%20the%20Software%20Industry" title="Facebook"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.ianuy.com%2F2009%2F09%2F14%2Fhigh-salary-is-killing-the-software-industry%2F&amp;t=High%20Salary%20is%20Killing%20the%20Software%20Industry" title="MySpace"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.ianuy.com%2F2009%2F09%2F14%2Fhigh-salary-is-killing-the-software-industry%2F&amp;title=High%20Salary%20is%20Killing%20the%20Software%20Industry&amp;annotation=%0A%0D%0AIf%20there%20is%20someone%20that%20I%20hate%20more%20than%20Ms.%20Judy%20Ann%20Santos%2C%20that%20someone%20would%20have%20to%20be%20a%20person%20who%20has%20a%20job%20that%20he%20or%20she%20is%20not%20passionate%20about.%0D%0A%0D%0AI%20don%27t%20know%20if%20it%27s%20the%20Philippine%20economy%20or%20just%20the%20Filipino%20culture%20that%20makes%20it%20%22" title="Google Bookmarks"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F09%2F14%2Fhigh-salary-is-killing-the-software-industry%2F&amp;title=High%20Salary%20is%20Killing%20the%20Software%20Industry" title="DotNetKicks"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.ianuy.com/2009/09/14/high-salary-is-killing-the-software-industry/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Work is now officially &#8220;WORK&#8221;</title>
		<link>http://blog.ianuy.com/2009/06/21/work-is-now-officially-work/</link>
		<comments>http://blog.ianuy.com/2009/06/21/work-is-now-officially-work/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 15:25:18 +0000</pubDate>
		<dc:creator>Ian Uy</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Job]]></category>
		<category><![CDATA[Non-Programming]]></category>

		<guid isPermaLink="false">http://blog.ianuy.com/?p=403</guid>
		<description><![CDATA[I can still clearly remember the words of our Tech Lead as if it was just said yesterday&#8230;

&#8220;Madali lang to sayo. Parang laro laro lang.&#8221;

He would always give me that answer while putting on a big, warm smile. Every time that I see him coding or preparing a design document, I would always approach him [...]]]></description>
			<content:encoded><![CDATA[<p>I can still clearly remember the words of our Tech Lead as if it was just said yesterday&#8230;</p>
<blockquote>
<h3 style="text-align: center;">&#8220;Madali lang to sayo. Parang laro laro lang.&#8221;</h3>
</blockquote>
<p>He would always give me that answer while putting on a big, warm smile. Every time that I see him coding or preparing a design document, I would always approach him and ask him out of curiosity, &#8220;<em>Ano ginagawa mo Sir? Mahirap ba yan?</em>&#8221; and he would always give me that answer. And I have always wondered what he meant by &#8220;<strong>parang laro laro lang</strong>&#8220;. Sadly, I was never able to ask him about the actual meaning of it (he is now in Singapore) but as an Intern, I assumed that he meant that &#8220;<strong>If you&#8217;re having fun, it&#8217;s easy!</strong>&#8220;.</p>
<div id="attachment_405" class="wp-caption aligncenter" style="width: 262px"><a href="http://blog.ianuy.com/wp-content/uploads/2009/06/demotivated.bmp"><img class="size-full wp-image-405" title="demotivated" src="http://blog.ianuy.com/wp-content/uploads/2009/06/demotivated.bmp" alt="So much for work being &quot;fun&quot;." width="252" height="310" /></a><p class="wp-caption-text">So much for work being fun?</p></div>
<p><span id="more-403"></span></p>
<p>Even from Day 1, I have never looked at my job as *real* work. I have always looked at it as &#8220;laro laro lang&#8221;. That work is something fun. That does not mean that I don&#8217;t take my job seriously. As a matter of fact, I think that I am doing a good job while having tons of fun. Of course, seeing your job as &#8220;laro laro lang&#8221; does have some negative effects. As one of my co-worker has pointed out, I&#8217;m a bit lacking in the &#8220;professionalism&#8221; department. I don&#8217;t exactly know how she arrived to that fact but I am assuming that she doesn&#8217;t like me watching SNSD videos in the office or playing a casual Facebook game once in a while.</p>
<p>So I wondered, what&#8217;s the big fuss about Professionalism and what exactly is professionalism? A close colleague of mine suggested that I should read about professionalism while we are having a discussion about proper work ethics. And so I did. Quoting from <a title="So what is Professionalism?" href="http://en.wikipedia.org/wiki/Professionalism#Definition" target="_blank">Wikipedia</a>, for someone to be considered as a &#8220;professional&#8221;, he/she should have the following:</p>
<blockquote>
<ol>
<li>Academic qualifications &#8211; a doctoral or law degree &#8211; i.e., university college/institute</li>
<li>Expert and specialised knowledge in field which one is practising professionally<sup id="cite_ref-5" class="reference"><a href="http://en.wikipedia.org/wiki/Professionalism#cite_note-5"></a></sup></li>
<li>Excellent manual/practical and literary skills in relation to profession<sup id="cite_ref-6" class="reference"><a href="http://en.wikipedia.org/wiki/Professionalism#cite_note-6"></a></sup></li>
<li>High quality work in (examples): creations, products, services, presentations, consultancy, primary/other research, administrative, marketing or other work endeavours.</li>
<li>A high standard of professional ethics, behaviour and work activities while carrying out one&#8217;s profession (as an employee, self-employed person, career, enterprise, business, company, or partnership/associate/colleague, etc.</li>
<li>Reasonable work moral and motivation. Having interest and desire to do a job well as well as holding positive attitude towards the profession are important elements in attaining a high level of professionalism.<sup id="cite_ref-7" class="reference"><a href="http://en.wikipedia.org/wiki/Professionalism#cite_note-7"></a></sup></li>
</ol>
</blockquote>
<p>1, check. 2, specialized knowledge, check. 3, sure, check. 4, check. 6, motivation! check!. Out of the 6 criteria, I sort-of fail in one so I&#8217;m about 83.33% Professional. <img src='http://blog.ianuy.com/wp-includes/images/smilies/icon_lol.gif' alt=':lol:' class='wp-smiley' />  Kidding aside, despite having someone put me on the &#8220;unprofessional&#8221; basket, I still believe that I am a professional. I still think that I have a  high standard of professional ethics (ask the people that I have work with), and I still think that my behavior, even though you can classify me as a Kid with ADHD, is still within the &#8220;appropriate&#8221; range (I am not a model employee in terms of behavior, though). I admit that some of my work activities are not professional though, like playing a casual Facebook game in the office. BUT I assure you, it hasn&#8217;t negatively affected my output and my job. I would even go out on the limb here and claim that being able to have fun at work resulted in a positive output. (Facebook vs. Productivity articles <a title="Don't Ban Facebook at Work, Researchers Advise" href="http://www.pcworld.com/article/136685/dont_ban_facebook_at_work_researchers_advise.html" target="_blank">here</a> and <a title="'Facebook Breaks' Boost Productivity, Study Says" href="http://www.pcworld.com/businesscenter/article/146814/facebook_breaks_boost_productivity_study_says.html" target="_blank">here</a>)</p>
<div id="attachment_420" class="wp-caption aligncenter" style="width: 385px"><a href="http://blog.ianuy.com/wp-content/uploads/2009/06/professionalism.jpg"><img class="size-full wp-image-420" title="professionalism" src="http://blog.ianuy.com/wp-content/uploads/2009/06/professionalism.jpg" alt="&quot;Nerds are always getting in trouble. They say improper things for the same reason they dress unfashionably and have good ideas. Convention has less hold over them.&quot; - Paul Graham" width="375" height="318" /></a><p class="wp-caption-text">&quot;Nerds are always getting in trouble. They say improper things for the same reason they dress unfashionably and have good ideas. Convention has less hold over them.&quot; - Paul Graham (Hackers and Painters)</p></div>
<p>Last Friday could have been one of the happiest day of my young career (~4 months). I was recognized for my efforts in delivering a product on time that is of high-quality (I&#8217;m paraphrasing here, couldn&#8217;t remember the exact words from the certificate). But sadly, last Friday turned out to be one of the saddest day in my professional life.</p>
<p>During our weekly team meeting (which is held every Friday), our Manager gave a guideline about the team&#8217;s &#8220;Expectations on proper usage of internet resource&#8221;. The guideline basically says:</p>
<ol>
<li>Use the internet resource wisely</li>
<li>Access to Social Networking Sites like Friendster, Facebook and Multiply should not be abused</li>
<li>If you&#8217;re going to use the internet that is non-work related, be discreet.</li>
<li>Absolutely, no GAMES allowed</li>
</ol>
<p>The guys made it clear that this is just a guideline, not a set of rules that we need to follow. They also stressed the fact that access to Social Network Sites are not forbidden but we should exercise our &#8220;best judgment&#8221; when accessing them during office hours. Finally, it was said, in verbatim, that games of any sort are no longer allowed.</p>
<p>In actuality, I am not against this guideline. The exact instance that I took the job, I was asked to sign a 13-page document that basically say &#8220;The internet is just for work&#8221;. I am just frustrated that the guidelines are not clear. Telling me to use my &#8220;best judgment&#8221; is like giving a kid the key to a candy store. My judgment and reasoning is so unconventional that conflict may arise from my actions. Also, judgment is subjective, what&#8217;s okay for me may not be okay for others and what&#8217;s okay for them may not be okay for me and that scares the sh*t out of me.</p>
<p>For some, this guideline is just, well, a guideline. &#8220;This is just a guideline, don&#8217;t take it too seriously&#8221;, a close colleague told me. Well, not for me. This particular guideline is a team &#8220;expectation&#8221;. It is like a promise that we have to each other. That is how I feel about it.</p>
<p>Personally, using my best judgment, I think that I have never abused my usage of the Internet. I may not be discreet on using them because I don&#8217;t understand the value of being discreet. I mean, we are still doing it, but we are doing it &#8220;secretly&#8221;. For me, Its like lying and I don&#8217;t like to lie.</p>
<p>I don&#8217;t understand why casual games in Facebook should be banned. I don&#8217;t understand the difference between a video and a game. If we are talking about bandwidth, the bandwidth consumption of a 5 minute video in Youtube is so much greater than the bandwidth consumed by Barn Buddy, a casual game that I am playing in Facebook.One of my colleague has pointed out that you are not just focused on the game but your cursor is also in it (You can&#8217;t really multi-task!). That&#8217;s a good point though but I&#8217;m not entirely convinced. But for the sake of following the guidelines and as a respect to the people around me, I will indefinitely suspend playing games while in the office (or I will be just &#8220;discreet&#8221; <img src='http://blog.ianuy.com/wp-includes/images/smilies/icon_lol.gif' alt=':lol:' class='wp-smiley' />  ).</p>
<div id="attachment_431" class="wp-caption aligncenter" style="width: 410px"><a href="http://blog.ianuy.com/wp-content/uploads/2009/06/individuality.jpg"><img class="size-full wp-image-431" title="individuality" src="http://blog.ianuy.com/wp-content/uploads/2009/06/individuality.jpg" alt="Judgment is subjective" width="400" height="335" /></a><p class="wp-caption-text">Judgment is subjective. And that scares the s*it out of me.</p></div>
<p>To check how different the judgment of my colleagues are, I asked them personally about their take on the guideline. And boy I was not that surprised to discover that judgement is really subjective. One of the guys basically told me that &#8220;The 8 hours in the office should just be for pure work&#8221;, while another guy told me that &#8220;It&#8217;s okay to take a break once in a while to relieve stress&#8221;. Another guy told me that &#8220;This is not an issue about productivity but the proper usage of the company resources.&#8221;.</p>
<p>This is what I am really scared about, judgment is <strong>subjective</strong>. You see, if I exercise my &#8220;best judgment&#8221; and still use Facebook, people on the team may think that I am being &#8220;abusive&#8221;, they may think that I am not paying attention to the guidelines, that I am disrespecting the entire team by not doing my part.</p>
<p>To be on the safe side, I just stopped using the Internet for non-work related stuff for the rest of the day. Considering that I only stopped using the Internet for just 4 hours, the psychological effect is so devastating. My motivation was down to ZERO and it felt like that I am just a slave that should do what he is supposed to do. From that point on, I felt that work is no longer fun. Work is now officially work and that made me extremely frustrated and sad.</p>
<p>My biggest fear is that this guideline will make work no longer fun. It will make work feel like *real* work. I can tolerate that kind of environment but I am afraid that this will hinder great work. I have always believed that the source of my skills is my passion. That I am doing a great job because I am enjoying every single moment of it. I am afraid that my output will be negatively affected if I no longer find work enjoyable. To quote <a title="The Unproven Path" href="http://www.inc.com/magazine/20081101/how-hard-could-it-be-the-unproven-path.html" target="_blank">Joel Spolsky</a>:</p>
<blockquote><p>For his part, Jeff says he didn&#8217;t want our new venture to feel &#8220;like work&#8221; &#8212; that if Stack Overflow wasn&#8217;t fun to do, he didn&#8217;t want to be doing it. If I had tried to make him play by my rules, I don&#8217;t think the project would have come together, at least not as well as it has.</p>
<p>The truth is, the three guys who coded Stack Overflow are great programmers. They&#8217;re smart, and they get things done. And in the end, that&#8217;s what really matters.</p></blockquote>
<p>I believe that my team is composed of great software developers. I believe that we are smart and we can get things done. And I also believe that this is what really matter, to get things done.</p>
<p>So by Monday, I will default back to doing what I have always done which is to have fun. I will still try my best to get things done (which I have always done in the past). I will no longer play casual games in the office (to show my respect to the team&#8217;s expecatation) or at least hide somewhere when doing it <img src='http://blog.ianuy.com/wp-includes/images/smilies/icon_lol.gif' alt=':lol:' class='wp-smiley' />  . I can&#8217;t promise to be discreet but rest assured that my work and my job is still my priority. Finally, I believe in my teammates&#8230; I believe that they would always be there to offer me their best judgment when they find mine unfitting.</p>



Share and Enjoy:


	<a rel="nofollow" href="mailto:?subject=Work%20is%20now%20officially%20%22WORK%22&amp;body=http%3A%2F%2Fblog.ianuy.com%2F2009%2F06%2F21%2Fwork-is-now-officially-work%2F" title="E-mail this story to a friend!"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F06%2F21%2Fwork-is-now-officially-work%2F&amp;title=Work%20is%20now%20officially%20%22WORK%22&amp;bodytext=I%20can%20still%20clearly%20remember%20the%20words%20of%20our%20Tech%20Lead%20as%20if%20it%20was%20just%20said%20yesterday...%0D%0A%0D%0A%22Madali%20lang%20to%20sayo.%20Parang%20laro%20laro%20lang.%22%0D%0A%0D%0AHe%20would%20always%20give%20me%20that%20answer%20while%20putting%20on%20a%20big%2C%20warm%20smile.%20Every%20time%20that%20I%20see%20him%20coding%20o" title="Digg"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F06%2F21%2Fwork-is-now-officially-work%2F&amp;title=Work%20is%20now%20officially%20%22WORK%22" title="Reddit"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F06%2F21%2Fwork-is-now-officially-work%2F&amp;title=Work%20is%20now%20officially%20%22WORK%22&amp;notes=I%20can%20still%20clearly%20remember%20the%20words%20of%20our%20Tech%20Lead%20as%20if%20it%20was%20just%20said%20yesterday...%0D%0A%0D%0A%22Madali%20lang%20to%20sayo.%20Parang%20laro%20laro%20lang.%22%0D%0A%0D%0AHe%20would%20always%20give%20me%20that%20answer%20while%20putting%20on%20a%20big%2C%20warm%20smile.%20Every%20time%20that%20I%20see%20him%20coding%20o" title="del.icio.us"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://twitter.com/home?status=Work%20is%20now%20officially%20%22WORK%22%20-%20http%3A%2F%2Fblog.ianuy.com%2F2009%2F06%2F21%2Fwork-is-now-officially-work%2F" title="Twitter"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://slashdot.org/bookmark.pl?title=Work%20is%20now%20officially%20%22WORK%22&amp;url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F06%2F21%2Fwork-is-now-officially-work%2F" title="Slashdot"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.ianuy.com%2F2009%2F06%2F21%2Fwork-is-now-officially-work%2F&amp;t=Work%20is%20now%20officially%20%22WORK%22" title="Facebook"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.ianuy.com%2F2009%2F06%2F21%2Fwork-is-now-officially-work%2F&amp;t=Work%20is%20now%20officially%20%22WORK%22" title="MySpace"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.ianuy.com%2F2009%2F06%2F21%2Fwork-is-now-officially-work%2F&amp;title=Work%20is%20now%20officially%20%22WORK%22&amp;annotation=I%20can%20still%20clearly%20remember%20the%20words%20of%20our%20Tech%20Lead%20as%20if%20it%20was%20just%20said%20yesterday...%0D%0A%0D%0A%22Madali%20lang%20to%20sayo.%20Parang%20laro%20laro%20lang.%22%0D%0A%0D%0AHe%20would%20always%20give%20me%20that%20answer%20while%20putting%20on%20a%20big%2C%20warm%20smile.%20Every%20time%20that%20I%20see%20him%20coding%20o" title="Google Bookmarks"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F06%2F21%2Fwork-is-now-officially-work%2F&amp;title=Work%20is%20now%20officially%20%22WORK%22" title="DotNetKicks"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.ianuy.com/2009/06/21/work-is-now-officially-work/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ASP.NET 1.X to ASP.NET 2.0 Migration Postback Problem</title>
		<link>http://blog.ianuy.com/2009/05/17/aspnet-1x-to-aspnet-20-migration-postback-problem/</link>
		<comments>http://blog.ianuy.com/2009/05/17/aspnet-1x-to-aspnet-20-migration-postback-problem/#comments</comments>
		<pubDate>Sun, 17 May 2009 15:40:17 +0000</pubDate>
		<dc:creator>Ian Uy</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Job]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.ianuy.com/?p=316</guid>
		<description><![CDATA[If you&#8217;ve read my previous blog post, I talked about some of the problems encountered while migrating some of our web applications from .NET 1.1 to .NET 2.0. Well, those products are now handed off to the Test Department for their routine torture.
Just a couple of days after the hand-off (Hand-off to Test or HOTT), [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_317" class="wp-caption aligncenter" style="width: 237px"><a href="http://blog.ianuy.com/wp-content/uploads/2009/05/7259_bird_cartoon.gif"><img class="size-medium wp-image-317" title="ASP.NET Migration Problem" src="http://blog.ianuy.com/wp-content/uploads/2009/05/7259_bird_cartoon-227x300.gif" alt="ASP.NET Migration Problem" width="227" height="300" /></a><p class="wp-caption-text">ASP.NET Migration Problem</p></div>
<p>If you&#8217;ve read my <a title="Migration: Why Developers Hate Microsoft or Why Developers Hate Vista or My First Encounter how Microsoft can Break your Software " href="http://blog.ianuy.com/2009/05/10/migration-why-developers-hate-microsoft-or-my-first-encounter-how-microsoft-can-break-your-software/" target="_blank">previous blog post</a>, I talked about some of the problems encountered while migrating some of our web applications from .NET 1.1 to .NET 2.0. Well, those products are now handed off to the Test Department for their routine torture.</p>
<p>Just a couple of days after the hand-off (Hand-off to Test or HOTT), the tester who is testing the product filed two (2) Tracks (Incident/Bug/Problem). Since I am the only developer working on the product, all of the tracks will automatically be assigned to me. The said tracks that were filed have the same &#8220;type&#8221; of problem.</p>
<blockquote><p>When browsing for a file (Backup File / File Upload), the value of the Textbox would change back to its default value when the page re-loads.</p></blockquote>
<p><span id="more-316"></span></p>
<p>The web application that I am supporting was originally written in .NET 1.1 using Visual Studio 2003. To migrate it to .NET 2.0, we converted the solutions to VS2005. Aside from some<a title="Migration: Why Developers Hate Microsoft or Why Developers Hate Vista or My First Encounter how Microsoft can Break your Software " href="http://blog.ianuy.com/2009/05/10/migration-why-developers-hate-microsoft-or-my-first-encounter-how-microsoft-can-break-your-software/" target="_blank"> minor problems like RESX incompatibility and broken Calendar Controls</a>, the Web Application worked &#8212; I thought it did.</p>
<p>We have a <em>Backup Restoration Page<strong> </strong></em>to allow the user to restore the web application in-case of Armageddon-like circumstances. The said page basically contain 3 components:</p>
<ol>
<li>A <strong>Read-Only </strong>Textbox that holds the path of the <strong>Backup File</strong> . This Textbox has a default value of <span style="text-decoration: underline;">C:\Backups\Backup.bak</span></li>
<li>A Browse button that will launch a custom page that will allow the user to browse for the <strong>Backup File</strong>. The value selected there will be posted-back to the <em>Backup Restoration Page.</em></li>
<li>A &#8220;Restore&#8221; button to start the restoration process.</li>
</ol>
<p>When I tried to repro (reproduce) the bug on my Virtual Machine setup, I was able to verify that the path of the Backup File is losing its value on postback. To put it more precisely, the Textbox is not retaining the correct path since it is changing back to its default value on postback.</p>
<p>After hours of debugging, I was no where close in determining the cause of the problem. So I did a quick search on Google and found out that this is a common problem during migration from ASP.NET 1.1 to ASP.NET 2.0.</p>
<p>The problem is that Microsoft changed the behavior of read-only textboxes on ASP.NET 2.0.</p>
<blockquote><p>ASP.NET 2.0 had a design change by which a control if marked with its ReadOnly property as true, would ignore client side changes and would lose the same across postback. So if you tried modifying the text box value or add a value to the text box using Javascript you wouldnt be able to retireve the value in the code behind or simply the value will be lost across postback.</p></blockquote>
<p><span style="color: #000000;"><span id="ctl00_ContentPlaceHolder1_lblDescription">This behaviour is by design in ASP.NET 2.0 and it has been designed with the idea that a ReadOnly TextBox shouldnt be modified in the client side by a malicious code.</span></span></p>
<p><span style="color: #000000;"><br />
Microsoft has a point. What&#8217;s the point of using a Textbox if you&#8217;re going to set it to Read-Only? Why not use a Label instead?</span></p>
<p>Fortunately, we have three simple <strong>workarounds</strong> for this problem.</p>
<ol>
<li>Use a Label instead of a Read-Only Textbox. (Heard of Borders?)</li>
<li>Set the Read-Only property of the Textbox to <em>FALSE </em>(If you don&#8217;t really need the Read-Only Property)</li>
<li>But if you are really insisting of using a Read-Only Textbox, then we need to &#8220;fool&#8221; ASP.NET that the Textbox is not Read-Only even if it is.</li>
</ol>
<p>To &#8220;fool&#8221; ASP.NET, you need to set the Read-Only property of the Textbox to <span style="color: #0000ff;">FALSE</span> during design time (Using the Property Pane) then <strong>set it to Read-Only on Page Load during runtime</strong>. <strong>You CANNOT use Textbox1.ReadOnly = true. </strong>You need to set the read-only attribute using the Attribute.Add() method.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">// This is part of the C# code-behind file.</span>
<span style="color: #0600FF;">protected</span> <span style="color: #0600FF;">void</span> Page_Load<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> sender, EventArgs e<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
     TextBox1.<span style="color: #0000FF;">Attributes</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;readonly&quot;</span>, <span style="color: #666666;">&quot;readonly&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>That will solve your postback problems. <img src='http://blog.ianuy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>References:</p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.readonly.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.readonly.aspx</a></li>
<li><a href="http://www.dotnetspider.com/resources/3120-ASP-NET--TextBox-Ready-Only-losing-client-side-changes-values-across-postback.aspx" target="_blank">http://www.dotnetspider.com/resources/3120-ASP-NET&#8211;TextBox-Ready-Only-losing-client-side-changes-values-across-postback.aspx</a></li>
<li><a href="http://stackoverflow.com/questions/856838/migration-asp-net-1-1-to-asp-net-2-0-broken-postback" target="_blank">http://stackoverflow.com/questions/856838/migration-asp-net-1-1-to-asp-net-2-0-broken-postback</a></li>
</ul>



Share and Enjoy:


	<a rel="nofollow" href="mailto:?subject=ASP.NET%201.X%20to%20ASP.NET%202.0%20Migration%20Postback%20Problem&amp;body=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F17%2Faspnet-1x-to-aspnet-20-migration-postback-problem%2F" title="E-mail this story to a friend!"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F17%2Faspnet-1x-to-aspnet-20-migration-postback-problem%2F&amp;title=ASP.NET%201.X%20to%20ASP.NET%202.0%20Migration%20Postback%20Problem&amp;bodytext=%0A%0D%0AIf%20you%27ve%20read%20my%20previous%20blog%20post%2C%20I%20talked%20about%20some%20of%20the%20problems%20encountered%20while%20migrating%20some%20of%20our%20web%20applications%20from%20.NET%201.1%20to%20.NET%202.0.%20Well%2C%20those%20products%20are%20now%20handed%20off%20to%20the%20Test%20Department%20for%20their%20routine%20torture." title="Digg"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F17%2Faspnet-1x-to-aspnet-20-migration-postback-problem%2F&amp;title=ASP.NET%201.X%20to%20ASP.NET%202.0%20Migration%20Postback%20Problem" title="Reddit"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F17%2Faspnet-1x-to-aspnet-20-migration-postback-problem%2F&amp;title=ASP.NET%201.X%20to%20ASP.NET%202.0%20Migration%20Postback%20Problem&amp;notes=%0A%0D%0AIf%20you%27ve%20read%20my%20previous%20blog%20post%2C%20I%20talked%20about%20some%20of%20the%20problems%20encountered%20while%20migrating%20some%20of%20our%20web%20applications%20from%20.NET%201.1%20to%20.NET%202.0.%20Well%2C%20those%20products%20are%20now%20handed%20off%20to%20the%20Test%20Department%20for%20their%20routine%20torture." title="del.icio.us"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://twitter.com/home?status=ASP.NET%201.X%20to%20ASP.NET%202.0%20Migration%20Postback%20Problem%20-%20http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F17%2Faspnet-1x-to-aspnet-20-migration-postback-problem%2F" title="Twitter"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://slashdot.org/bookmark.pl?title=ASP.NET%201.X%20to%20ASP.NET%202.0%20Migration%20Postback%20Problem&amp;url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F17%2Faspnet-1x-to-aspnet-20-migration-postback-problem%2F" title="Slashdot"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F17%2Faspnet-1x-to-aspnet-20-migration-postback-problem%2F&amp;t=ASP.NET%201.X%20to%20ASP.NET%202.0%20Migration%20Postback%20Problem" title="Facebook"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F17%2Faspnet-1x-to-aspnet-20-migration-postback-problem%2F&amp;t=ASP.NET%201.X%20to%20ASP.NET%202.0%20Migration%20Postback%20Problem" title="MySpace"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F17%2Faspnet-1x-to-aspnet-20-migration-postback-problem%2F&amp;title=ASP.NET%201.X%20to%20ASP.NET%202.0%20Migration%20Postback%20Problem&amp;annotation=%0A%0D%0AIf%20you%27ve%20read%20my%20previous%20blog%20post%2C%20I%20talked%20about%20some%20of%20the%20problems%20encountered%20while%20migrating%20some%20of%20our%20web%20applications%20from%20.NET%201.1%20to%20.NET%202.0.%20Well%2C%20those%20products%20are%20now%20handed%20off%20to%20the%20Test%20Department%20for%20their%20routine%20torture." title="Google Bookmarks"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F17%2Faspnet-1x-to-aspnet-20-migration-postback-problem%2F&amp;title=ASP.NET%201.X%20to%20ASP.NET%202.0%20Migration%20Postback%20Problem" title="DotNetKicks"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.ianuy.com/2009/05/17/aspnet-1x-to-aspnet-20-migration-postback-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migration: Why Developers Hate Microsoft or Why Developers Hate Vista or My First Encounter how Microsoft can Break your Software</title>
		<link>http://blog.ianuy.com/2009/05/10/migration-why-developers-hate-microsoft-or-my-first-encounter-how-microsoft-can-break-your-software/</link>
		<comments>http://blog.ianuy.com/2009/05/10/migration-why-developers-hate-microsoft-or-my-first-encounter-how-microsoft-can-break-your-software/#comments</comments>
		<pubDate>Sun, 10 May 2009 14:13:29 +0000</pubDate>
		<dc:creator>Ian Uy</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Job]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://blog.ianuy.com/?p=262</guid>
		<description><![CDATA[In my previous blog post, I&#8217;ve mentioned that I&#8217;m working on a project to migrate an entire product line to Vista. What I meant by that is that I am responsible for making sure that our current product will run properly on Windows Vista. To guarantee that it is indeed Running Properly it should behave [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_263" class="wp-caption aligncenter" style="width: 546px"><a href="http://blog.ianuy.com/wp-content/uploads/2009/05/windowsvistalogo.jpg"><img class="size-full wp-image-263" title="Windows Vista Compatible Logo" src="http://blog.ianuy.com/wp-content/uploads/2009/05/windowsvistalogo.jpg" alt="Do you know how much Programmer's Blood it cost to put this tiny sticker in a Software Box?" width="536" height="262" /></a><p class="wp-caption-text">Do you know how much Programmer&#39;s Blood it cost to put this tiny sticker in a Software Box?</p></div>
<p>In my <a title="Coding Horror 01: Readability vs Efficiency " href="http://blog.ianuy.com/2009/04/26/coding-horror-01-readability-vs-efficiency/" target="_blank">previous blog post</a>, I&#8217;ve mentioned that I&#8217;m working on a project to migrate an entire product line to Vista. What I meant by that is that I am responsible for making sure that our current product will run properly on Windows Vista. To guarantee that it is indeed <em>Running Properly</em> it should behave *exactly* like it behaves in Windows XP.  In simple terms, my entire job security is riding on making our products compatible with Microsoft&#8217;s failed attempt at a MAC-ish Operating System and with Microsoft&#8217;s successful attempt (a first in their history) to make their operating system <strong>NOT</strong> backward compatible with older applications. So much for <a title="Raymond Chen's Blog" href="http://blogs.msdn.com/oldnewthing/" target="_blank">Raymond Chen</a>&#8217;s camp <a title="How Microsoft Lost the API War" href="http://joelonsoftware.com/articles/APIWar.html" target="_blank">undying obsession with backward compatibility</a>.</p>
<p>This products that I&#8217;m talking about are a set of Web Applications written in ASP.NET version 1.1. This web applications are as old as Windows XP. <img src='http://blog.ianuy.com/wp-includes/images/smilies/icon_lol.gif' alt=':lol:' class='wp-smiley' />  I checked its File Modification History in our TFS repository and the last time that anyone have touched its code base is in 2005 &#8212; and that&#8217;s just for a minor code modification to fix a bug. I believe this apps were written way way back in 2004 &#8212; when I was in Third Year High School! <img src='http://blog.ianuy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>To make this products compatible with Vista, there are a couple of steps that had to be done. I&#8217;ll enumerate each steps and what it takes to accomplish them.</p>
<p><span id="more-262"></span></p>
<h3>.NET Upgrade (.NET 1.1 to .NET 2.0)</h3>
<p>Windows Vista comes pre-installed with .NET 2.0 (and .NET 3.0). Our products are running on .NET 1.1. One approach that most people will suggest is to just install .NET 1.1 on Windows Vista and everything will be perfect. Right? WRONG. Firstly, .NET 1.1 has already reached its end-of-life. Microsoft pulled support for .NET 1.1 last October 14, 2008. Although it was extended, its a sign that this technology is <em>old enough</em> to be replaced. Secondly, installing .NET 1.1 on a Vista machine is not as <a href="http://geekycoder.wordpress.com/2007/10/08/installing-microsoft-net-11-framework-on-windows-vista-without-tears/" target="_blank">easy</a> <a href="http://www.mydigitallife.info/2007/12/27/install-microsoft-net-framework-11-on-windows-vista-fix-regsvcsexe-fails-error/" target="_blank">as</a> <a href="http://searchwindevelopment.techtarget.com/tip/0,289483,sid8_gci1237467,00.html" target="_blank">you</a> <a href="http://www.sharpdeveloper.net/content/archive/2008/10/07/setup-aspnet-11-on-vista.aspx" target="_blank">think</a>. No, we are not lazy programmers, we just don&#8217;t want to introduce unnecessary complications to the system. We are, by the way, <a title="Coding Horror 01: Readability vs Efficiency " href="http://blog.ianuy.com/2009/04/26/coding-horror-01-readability-vs-efficiency/" target="_blank">Software Developers</a>.</p>
<div id="attachment_270" class="wp-caption aligncenter" style="width: 224px"><a href="http://blog.ianuy.com/wp-content/uploads/2009/05/lazy-programmers.jpg"><img class="size-medium wp-image-270" title="Lazy Programmers" src="http://blog.ianuy.com/wp-content/uploads/2009/05/lazy-programmers-214x300.jpg" alt="Those Lazy Programmers" width="214" height="300" /></a><p class="wp-caption-text">Those Lazy Programmers</p></div>
<p>So the approach we took is to upgrade our Visual Studio 2003 solutions to Visual Studio 2005 solutions. This, in turn, will &#8220;force&#8221; the web application to use .NET 2.0. You might say, &#8220;How hard could it be? Visual Studio 2005 can convert old solutions automatically using its <em>Upgrade Wizard. </em>All you have to do is click next!, You lazy programmer!&#8221;. That&#8217;s correct. Upgrading the solution is no problem. Converting every file to .NET 2.0 compliant code <em>is</em>.</p>
<p>We encountered two conversion problems. The first one is relatively simple to fix. It&#8217;s a problem where the old .NET 1.1 Resource files (*.resx) were not converted to the .NET 2.0 resource files. The two resource file formats are different (the .NET 2.0 have a *.designer.cs component) and in very rare cases, the .NET 1.1 *resx files won&#8217;t work in .NET 2.0. This problem is very hard to catch since the incompatible *.resx files won&#8217;t throw a compile error. The strings just won&#8217;t be detected. But once found it was relatively easy to fix. After a day of investigation, we found out that the XML format for the resource files changed in .NET 2.0. As a simple hack (fix), we manually changed the &lt;string&gt; parameters of each .NET 1.1 strings to match the .NET 2.0 &lt;string&gt; parameters.</p>
<p>The second problem is harder to find and much much harder to fix. The problem is related to ASP.NET&#8217;s datetime picker control.</p>
<div id="attachment_274" class="wp-caption aligncenter" style="width: 282px"><a href="http://blog.ianuy.com/wp-content/uploads/2009/05/workingaspnet.jpg"><img class="size-full wp-image-274" title="ASP.NET 1.1 Calendar Control" src="http://blog.ianuy.com/wp-content/uploads/2009/05/workingaspnet.jpg" alt="Our Calendar Control before upgrading to .NET 2.0" width="272" height="214" /></a><p class="wp-caption-text">Our Calendar Control before upgrading to .NET 2.0</p></div>
<p>On our previous version running .NET 1.1, there is no problem with the datetime picker. But when we installed the .NET 2.0 version, the calendar objects are all over the place.</p>
<div id="attachment_275" class="wp-caption aligncenter" style="width: 1034px"><a href="http://blog.ianuy.com/wp-content/uploads/2009/05/brokencontrol.jpg"><img class="size-large wp-image-275" title="Broken ASP.NET Calendar Control" src="http://blog.ianuy.com/wp-content/uploads/2009/05/brokencontrol-1024x211.jpg" alt="Broken ASP.NET Calendar Control" width="1024" height="211" /></a><p class="wp-caption-text">The Migrated .NET 2.0 Calendar Control</p></div>
<p style="text-align: left;">Two days of investigation later, we found out that the previous developer made this custom Calendar control by inheriting from .NET 1.1&#8217;s System.Web.Controls. During pre-render, he reads the rendered Calendar Control&#8217;s HTML and then does something funny with it. What he wanted to achieve is to replace the &#8220;Month&#8221; from the Calendar header (gray part) with a drop down box that contains a list of the months. So what he did is he &#8220;catch&#8221; the HTML stream from the Calendar Control and perform a String.Replace on it!</p>
<p style="text-align: left;">
<div id="attachment_278" class="wp-caption aligncenter" style="width: 586px"><a href="http://blog.ianuy.com/wp-content/uploads/2009/05/design.jpg"><img class="size-full wp-image-278" title="Design Goal" src="http://blog.ianuy.com/wp-content/uploads/2009/05/design.jpg" alt="His Design Goal" width="576" height="207" /></a><p class="wp-caption-text">His Design Goal</p></div>
<p style="text-align: left;">The actual String.Replace command is something like this:</p>
<p style="text-align: left;">

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">//szHTML = Get current HTML stream</span>
<span style="color: #008080; font-style: italic;">//szCurrentMonth = Get current month from HTML</span>
szHTML.<span style="color: #0000FF;">Replace</span><span style="color: #000000;">&#40;</span>szCurrentMonth, <span style="color: #666666;">&quot;
&lt;select&gt;&lt;option value=&quot;</span>January<span style="color: #666666;">&quot;&gt;January&lt;/option&gt;
       &lt;option value=&quot;</span>February<span style="color: #666666;">&quot;&gt;February&lt;/option&gt;
       &lt;option value=&quot;</span>March<span style="color: #666666;">&quot;&gt;March&lt;/option&gt;
       &lt;option value=&quot;</span>April<span style="color: #666666;">&quot;&gt;April&lt;/option&gt;
       &lt;option value=&quot;</span>May<span style="color: #666666;">&quot;&gt;May&lt;/option&gt;
       &lt;option value=&quot;</span>June<span style="color: #666666;">&quot;&gt;June&lt;/option&gt;
       &lt;option value=&quot;</span>July<span style="color: #666666;">&quot;&gt;July&lt;/option&gt;
       &lt;option value=&quot;</span>August<span style="color: #666666;">&quot;&gt;August&lt;/option&gt;
       &lt;option value=&quot;</span>September<span style="color: #666666;">&quot;&gt;September&lt;/option&gt;
       &lt;option value=&quot;</span>October<span style="color: #666666;">&quot;&gt;October&lt;/option&gt;
       &lt;option value=&quot;</span>November<span style="color: #666666;">&quot;&gt;November&lt;/option&gt;
       &lt;option value=&quot;</span>December<span style="color: #666666;">&quot;&gt;December&lt;/option&gt;
&lt;/select&gt;
&nbsp;
&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>It worked fine before the migration, but somehow we broke it during migration to .NET 2.0. A further investigation of the &#8220;emitted&#8221; HTML stream from the .NET 2.0 control shows this:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;table style=&quot;border-style: solid; border-width: 1px; border-collapse: collapse;&quot; title=&quot;Calendar&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: Silver;&quot; colspan=&quot;7&quot;&gt;
&lt;table style=&quot;width: 100%; border-collapse: collapse;&quot; border=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15%;&quot;&gt;&lt;a style=&quot;color: Black;&quot; title=&quot;Go to the previous month&quot; href=&quot;javascript:__doPostBack('ctl01','V3378')&quot;&gt;&amp;lt;&lt;/a&gt;&lt;/td&gt;
&lt;!-- THIS WILL BE THE PART THAT WILL BE REPLACED BY A DROP DOWN BOX --&gt;
&lt;td style=&quot;width: 70%;&quot; align=&quot;center&quot;&gt;May 2009&lt;/td&gt;
&lt;td style=&quot;width: 15%;&quot; align=&quot;right&quot;&gt;&lt;a style=&quot;color: Black;&quot; title=&quot;Go to the next month&quot; href=&quot;javascript:__doPostBack('ctl01','V3439')&quot;&gt;&amp;gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th align=&quot;center&quot; scope=&quot;col&quot;&gt;Sun&lt;/th&gt;
&lt;th align=&quot;center&quot; scope=&quot;col&quot;&gt;Mon&lt;/th&gt;
&lt;th align=&quot;center&quot; scope=&quot;col&quot;&gt;Tue&lt;/th&gt;
&lt;th align=&quot;center&quot; scope=&quot;col&quot;&gt;Wed&lt;/th&gt;
&lt;th align=&quot;center&quot; scope=&quot;col&quot;&gt;Thu&lt;/th&gt;
&lt;th align=&quot;center&quot; scope=&quot;col&quot;&gt;Fri&lt;/th&gt;
&lt;th align=&quot;center&quot; scope=&quot;col&quot;&gt;Sat&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14%;&quot; align=&quot;center&quot;&gt;&lt;a style=&quot;color: black;&quot; title=&quot;April 26&quot; href=&quot;javascript:__doPostBack('ctl01','3403')&quot;&gt;26&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14%;&quot; align=&quot;center&quot;&gt;&lt;a style=&quot;color: Black;&quot; title=&quot;April 27&quot; href=&quot;javascript:__doPostBack('ctl01','3404')&quot;&gt;27&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14%;&quot; align=&quot;center&quot;&gt;&lt;a style=&quot;color: Black;&quot; title=&quot;April 28&quot; href=&quot;javascript:__doPostBack('ctl01','3405')&quot;&gt;28&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14%;&quot; align=&quot;center&quot;&gt;&lt;a style=&quot;color: Black;&quot; title=&quot;April 29&quot; href=&quot;javascript:__doPostBack('ctl01','3406')&quot;&gt;29&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14%;&quot; align=&quot;center&quot;&gt;&lt;a style=&quot;color: Black;&quot; title=&quot;April 30&quot; href=&quot;javascript:__doPostBack('ctl01','3407')&quot;&gt;30&lt;/a&gt;&lt;/td&gt;
&lt;!-- THE TITLE ATTRIBUTE WAS ALSO REPLACED ACCIDENTALLY --&gt;
&lt;td style=&quot;width: 14%;&quot; align=&quot;center&quot;&gt;&lt;a style=&quot;color: Black;&quot; title=&quot;May 01&quot; href=&quot;javascript:__doPostBack('ctl01','3408')&quot;&gt;1&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14%;&quot; align=&quot;center&quot;&gt;&lt;a style=&quot;color: Black;&quot; title=&quot;May 02&quot; href=&quot;javascript:__doPostBack('ctl01','3409')&quot;&gt;2&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
.....&lt;/tbody&gt;&lt;/table&gt;</pre></div></div>

<p>A comparison with the &#8220;emitted&#8221; .NET 1.1 control shows this:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;table style=&quot;border-style: solid; border-width: 1px; border-collapse: collapse;&quot; title=&quot;Calendar&quot; border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: Silver;&quot; colspan=&quot;7&quot;&gt;
&lt;table style=&quot;width: 100%; border-collapse: collapse;&quot; border=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15%;&quot;&gt;&lt;a style=&quot;color: Black;&quot; title=&quot;Go to the previous month&quot; href=&quot;javascript:__doPostBack('ctl01','V3378')&quot;&gt;&amp;lt;&lt;/a&gt;&lt;/td&gt;
&lt;!-- THIS WILL BE THE PART THAT WILL BE REPLACED BY A DROP DOWN BOX --&gt;
&lt;td style=&quot;width: 70%;&quot; align=&quot;center&quot;&gt;May 2009&lt;/td&gt;
&lt;td style=&quot;width: 15%;&quot; align=&quot;right&quot;&gt;&lt;a style=&quot;color: Black;&quot; title=&quot;Go to the next month&quot; href=&quot;javascript:__doPostBack('ctl01','V3439')&quot;&gt;&amp;gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th align=&quot;center&quot; scope=&quot;col&quot;&gt;Sun&lt;/th&gt;
&lt;th align=&quot;center&quot; scope=&quot;col&quot;&gt;Mon&lt;/th&gt;
&lt;th align=&quot;center&quot; scope=&quot;col&quot;&gt;Tue&lt;/th&gt;
&lt;th align=&quot;center&quot; scope=&quot;col&quot;&gt;Wed&lt;/th&gt;
&lt;th align=&quot;center&quot; scope=&quot;col&quot;&gt;Thu&lt;/th&gt;
&lt;th align=&quot;center&quot; scope=&quot;col&quot;&gt;Fri&lt;/th&gt;
&lt;th align=&quot;center&quot; scope=&quot;col&quot;&gt;Sat&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14%;&quot; align=&quot;center&quot;&gt;&lt;a style=&quot;color: black;&quot; href=&quot;javascript:__doPostBack('ctl01','3403')&quot;&gt;26&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14%;&quot; align=&quot;center&quot;&gt;&lt;a style=&quot;color: Black;&quot; href=&quot;javascript:__doPostBack('ctl01','3404')&quot;&gt;27&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14%;&quot; align=&quot;center&quot;&gt;&lt;a style=&quot;color: Black;&quot; href=&quot;javascript:__doPostBack('ctl01','3405')&quot;&gt;28&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14%;&quot; align=&quot;center&quot;&gt;&lt;a style=&quot;color: Black;&quot; href=&quot;javascript:__doPostBack('ctl01','3406')&quot;&gt;29&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14%;&quot; align=&quot;center&quot;&gt;&lt;a style=&quot;color: Black;&quot; href=&quot;javascript:__doPostBack('ctl01','3407')&quot;&gt;30&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14%;&quot; align=&quot;center&quot;&gt;&lt;a style=&quot;color: Black;&quot; href=&quot;javascript:__doPostBack('ctl01','3408')&quot;&gt;1&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14%;&quot; align=&quot;center&quot;&gt;&lt;a style=&quot;color: Black;&quot; href=&quot;javascript:__doPostBack('ctl01','3409')&quot;&gt;2&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
.....&lt;/tbody&gt;&lt;/table&gt;</pre></div></div>

<p>Executing the String.Replace command in the .NET 1.1 code will produce the proper output. However, Microsoft decided to <em>upgrade</em> the Calendar control in .NET 2.0 by adding a <strong>tooltip</strong> for each date!</p>
<div id="attachment_287" class="wp-caption aligncenter" style="width: 282px"><a href="http://blog.ianuy.com/wp-content/uploads/2009/05/tooltip1.jpg"><img class="size-full wp-image-287" title="Tool Tip in .NET 2.0" src="http://blog.ianuy.com/wp-content/uploads/2009/05/tooltip1.jpg" alt="Tool Tip in .NET 2.0" width="272" height="216" /></a><p class="wp-caption-text">Tool Tip in .NET 2.0</p></div>
<p>Since the String.Replace has no <em>checking</em> (this is not REGEX afterall), it also replaced the &#8220;Month&#8221; in the tooltip with the drop down box (&lt;select&gt; command), thus generating the broken control shown above. This is not, in anyway, the fault of the original developer. Can you anticipate what will Microsoft do?</p>
<p><strong>This is my first encounter on how Microsoft can break your products. <img src='http://blog.ianuy.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
</strong></p>
<h3>MSDE to Microsoft SQL Server 2005 Express</h3>
<p>Our web applications were written before the release of SQL Server 2005 Express. The only *free* choice back then is Microsoft SQL Server Desktop Engine, a free scaled-down version of Microsoft SQL Server 2000. Since the support for MSDE officially ended last April 8, 2008, we are then forced to upgrade to Microsoft SQL Server 2005 express.</p>
<p>Our previous MSDE setup runs on <strong>default instance</strong>. In migrating to SQL Server 2005, we run the risk of &#8220;conflicting&#8221; with our other products that runs on <strong>default instance</strong> of SQL 2005. So the decision was made to migrate from <strong>default instance </strong>to <strong>named instance</strong>.</p>
<p>Migrating to SQL Server 2005 Express is straightforward at first look. The first and the most obvious thing to do is to modify the installer (InstallShield) so that it will install SQL 2005 instead of MSDE.  To compensate with the instance problem, the second thing to do is to modify each and every <strong>connection string</strong> in the entire app to point to the proper named instance. Making sure that each and every connection string in your entire app has been changed is a monumental task&#8230; especially if different version of connection strings were used. After that, you also need to modify the Service Query String so that it will point to the proper SQL Service ($MSSQLSERVER to $Instance_Name). There are also minor modifications here and there, but its not worth the mention.</p>
<p>After three days of manual modification, we got to the point where we were able to install the product. We tested it and everything seems to work fine. We then got to the part where are going to test for the database backup. Lo and behold, it failed. But no error message was given. We looked for the bug for an entire day but our search proved futile. We called it a day and went home. The next day, my brilliant manager excitedly told us the problem.</p>
<blockquote>
<h3 style="text-align: center;">Microsoft SQL Server 2005 Express does not have SQL Server Agent.</h3>
</blockquote>
<p>Our backup routine uses SQL Server Agent. When a user request for a backup, the SQL Server will &#8220;schedule&#8221; that backup request and the SQL Server Agent will &#8220;execute&#8221; the request when the schedule parameter is met.</p>
<p>Simply put, No SQL Server Agent, No Backup.</p>
<p>We have three solutions to the problem:</p>
<ol>
<li>Ship the product with Microsoft SQL Server 2005 standard or enterprise edition (Instead of the Express edition)</li>
<li>Remove the &#8220;scheduled&#8221; backup. Instead, just provide a &#8220;one shot&#8221; backup</li>
<li>Create our own custom &#8220;Backup Scheduler&#8221; using Windows Task Scheduler</li>
</ol>
<p>We talked to the marketing folks and they eliminated option 1 because, according to them, we can&#8217;t make our customer pay for something that was free before. Option 2 was eliminated due to the simple fact that we can&#8217;t ship an upgraded version of our product with downgraded features (But this was actually done to one of the product that had missed its deadline). So Option 3 was our only choice.</p>
<p>The plan in creating Option 3 is simple. Create a &#8220;scheduled task&#8221; using <strong>schtasks.exe </strong>that will invoke <strong>sqlcmd.exe</strong> that will invoke the <strong>sql command</strong> to invoke the <strong>stored procedure</strong> that was doing the backups. The <strong>schtasks</strong> will then be invoked by the ASP.NET page using Process.Start();. So I created a wrapper class that will simplify this process. The class was created in 2 hours and I had it running and compiled to the ASP.NET page in just 3 hours. <strong>BUT IT DIDN&#8217;T WORK.</strong></p>
<p>Further investigation revealed that IIS 6.0 has a different security model than IIS 5.1 (which XP uses). Spawning a process from within IIS 6.0 will have a credential of NETWORK SERVICE. Yes, we can impersonate since we are using Windows Authentication, but it won&#8217;t work unless we force the user to type-in the credentials again. Which is bad in a usability point of view.</p>
<p>The workaround was to put the scheduler on a Windows Service that will then be run with proper credentials. The problem then was the communication between the ASP.NET page and the Windows Service. How will the Service know when to invoke the backup? Our solution is a little crude but simple. We did it old-skul UNIX style! The ASP.NET page will create a &#8220;marker&#8221; file in a certain, defined location. The Windows Service will then monitor that location&#8230; waiting for the &#8220;marker&#8221; file. If the marker file is found, the service will then invoke the backup procedure. <img src='http://blog.ianuy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Fortunately for us, all the data needed for the backup is in the database, so we don&#8217;t need to pass anything between the ASP.NET page and the Service. <img src='http://blog.ianuy.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  We could have used sockets or mutex, but its overkill for our purpose.</p>
<p><strong>This</strong> are just the major steps that had to be done in order to make our web applications compatible with Windows Vista. There are a couple of minor steps that also needs attention like the IIS 5.1 to IIS 7.0 migration and the new Vista Security Model.</p>
<p>The next time you see the &#8220;Vista Compatible&#8221; sticker on a Software Box, think of the programmers who nearly died in making your software run on a &#8220;cuter&#8221; operating system.</p>
<h2>Windows 7, we are ready! <img src='http://blog.ianuy.com/wp-includes/images/smilies/icon_lol.gif' alt=':lol:' class='wp-smiley' /> </h2>



Share and Enjoy:


	<a rel="nofollow" href="mailto:?subject=Migration%3A%20Why%20Developers%20Hate%20Microsoft%20or%20Why%20Developers%20Hate%20Vista%20or%20My%20First%20Encounter%20how%20Microsoft%20can%20Break%20your%20Software&amp;body=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F10%2Fmigration-why-developers-hate-microsoft-or-my-first-encounter-how-microsoft-can-break-your-software%2F" title="E-mail this story to a friend!"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F10%2Fmigration-why-developers-hate-microsoft-or-my-first-encounter-how-microsoft-can-break-your-software%2F&amp;title=Migration%3A%20Why%20Developers%20Hate%20Microsoft%20or%20Why%20Developers%20Hate%20Vista%20or%20My%20First%20Encounter%20how%20Microsoft%20can%20Break%20your%20Software&amp;bodytext=%0A%0D%0AIn%20my%20previous%20blog%20post%2C%20I%27ve%20mentioned%20that%20I%27m%20working%20on%20a%20project%20to%20migrate%20an%20entire%20product%20line%20to%20Vista.%20What%20I%20meant%20by%20that%20is%20that%20I%20am%20responsible%20for%20making%20sure%20that%20our%20current%20product%20will%20run%20properly%20on%20Windows%20Vista.%20To%20guaran" title="Digg"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F10%2Fmigration-why-developers-hate-microsoft-or-my-first-encounter-how-microsoft-can-break-your-software%2F&amp;title=Migration%3A%20Why%20Developers%20Hate%20Microsoft%20or%20Why%20Developers%20Hate%20Vista%20or%20My%20First%20Encounter%20how%20Microsoft%20can%20Break%20your%20Software" title="Reddit"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F10%2Fmigration-why-developers-hate-microsoft-or-my-first-encounter-how-microsoft-can-break-your-software%2F&amp;title=Migration%3A%20Why%20Developers%20Hate%20Microsoft%20or%20Why%20Developers%20Hate%20Vista%20or%20My%20First%20Encounter%20how%20Microsoft%20can%20Break%20your%20Software&amp;notes=%0A%0D%0AIn%20my%20previous%20blog%20post%2C%20I%27ve%20mentioned%20that%20I%27m%20working%20on%20a%20project%20to%20migrate%20an%20entire%20product%20line%20to%20Vista.%20What%20I%20meant%20by%20that%20is%20that%20I%20am%20responsible%20for%20making%20sure%20that%20our%20current%20product%20will%20run%20properly%20on%20Windows%20Vista.%20To%20guaran" title="del.icio.us"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://twitter.com/home?status=Migration%3A%20Why%20Developers%20Hate%20Microsoft%20or%20Why%20Developers%20Hate%20Vista%20or%20My%20First%20Encounter%20how%20Microsoft%20can%20Break%20your%20Software%20-%20http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F10%2Fmigration-why-developers-hate-microsoft-or-my-first-encounter-how-microsoft-can-break-your-software%2F" title="Twitter"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://slashdot.org/bookmark.pl?title=Migration%3A%20Why%20Developers%20Hate%20Microsoft%20or%20Why%20Developers%20Hate%20Vista%20or%20My%20First%20Encounter%20how%20Microsoft%20can%20Break%20your%20Software&amp;url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F10%2Fmigration-why-developers-hate-microsoft-or-my-first-encounter-how-microsoft-can-break-your-software%2F" title="Slashdot"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F10%2Fmigration-why-developers-hate-microsoft-or-my-first-encounter-how-microsoft-can-break-your-software%2F&amp;t=Migration%3A%20Why%20Developers%20Hate%20Microsoft%20or%20Why%20Developers%20Hate%20Vista%20or%20My%20First%20Encounter%20how%20Microsoft%20can%20Break%20your%20Software" title="Facebook"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F10%2Fmigration-why-developers-hate-microsoft-or-my-first-encounter-how-microsoft-can-break-your-software%2F&amp;t=Migration%3A%20Why%20Developers%20Hate%20Microsoft%20or%20Why%20Developers%20Hate%20Vista%20or%20My%20First%20Encounter%20how%20Microsoft%20can%20Break%20your%20Software" title="MySpace"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F10%2Fmigration-why-developers-hate-microsoft-or-my-first-encounter-how-microsoft-can-break-your-software%2F&amp;title=Migration%3A%20Why%20Developers%20Hate%20Microsoft%20or%20Why%20Developers%20Hate%20Vista%20or%20My%20First%20Encounter%20how%20Microsoft%20can%20Break%20your%20Software&amp;annotation=%0A%0D%0AIn%20my%20previous%20blog%20post%2C%20I%27ve%20mentioned%20that%20I%27m%20working%20on%20a%20project%20to%20migrate%20an%20entire%20product%20line%20to%20Vista.%20What%20I%20meant%20by%20that%20is%20that%20I%20am%20responsible%20for%20making%20sure%20that%20our%20current%20product%20will%20run%20properly%20on%20Windows%20Vista.%20To%20guaran" title="Google Bookmarks"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F05%2F10%2Fmigration-why-developers-hate-microsoft-or-my-first-encounter-how-microsoft-can-break-your-software%2F&amp;title=Migration%3A%20Why%20Developers%20Hate%20Microsoft%20or%20Why%20Developers%20Hate%20Vista%20or%20My%20First%20Encounter%20how%20Microsoft%20can%20Break%20your%20Software" title="DotNetKicks"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.ianuy.com/2009/05/10/migration-why-developers-hate-microsoft-or-my-first-encounter-how-microsoft-can-break-your-software/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Localization: A Programmer&#8217;s Dirty Job</title>
		<link>http://blog.ianuy.com/2009/04/12/localization-a-programmers-dirty-job/</link>
		<comments>http://blog.ianuy.com/2009/04/12/localization-a-programmers-dirty-job/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 10:47:32 +0000</pubDate>
		<dc:creator>Ian Uy</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Job]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://blog.ianuy.com/?p=70</guid>
		<description><![CDATA[When I was in College, I was amazed that the suits (&#8221;Business People&#8221;) are so willing to pay me good money just to spew out pieces of code that would eventually end up in a crappy system somewhere. Well, that was the time when I thought that working as programmer is just about programming. Or, [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: small;">When I was in College, I was amazed that the suits (&#8221;Business People&#8221;) are so willing to pay me good money just to spew out pieces of code that would eventually end up in a crappy system somewhere. Well, that was the time when I thought that working as programmer is just about programming. Or, that was the time when I believe that majority of a programmer&#8217;s time would be spent writing code&#8230; building stuffs.</span></p>
<p>Nowadays, when people ask me about my typical day at work, I always tell them that I&#8217;m working on a Localization Project. Most often than not, the common reply is &#8220;What&#8217;s that? Does it involve programming?&#8221; Yes, it involves &#8220;programming&#8221;, if you consider replacing a bunch of strings to their localized equivalent as &#8220;programming&#8221;.</p>
<p>As Mike Rowe will put it&#8230;</p>
<div style="text-align: center;"><span style="font-weight: bold;"><span style="font-size: large;">Localization&#8230; It&#8217;s a dirty job!</span></span><span class="insertedphoto"><img class="aligncenter" style="border: 0pt none;" src="http://images.ianuy.multiply.com/image/1/photos/upload/300x300/SbNJYwoKCDIAAFfWh0I1/MikeRowe.jpg?et=yOudM0HO%2CxniW3Wa5aMaOg&amp;nmid=0" border="0" alt="" width="175" height="175" /></span></div>
<p><span style="font-size: small;">Why is it a dirty job, you ask? Consider the <span style="font-weight: bold;">English </span>phrase &#8220;Preview and Spell Check&#8221;. Now let&#8217;s see how it will translate to different languages:</span></p>
<p><span style="font-weight: bold;">French: <span style="text-decoration: underline;">Prévision et contrôle de charme</span></span><br style="font-weight: bold;" /><span style="font-weight: bold;">German: <span style="text-decoration: underline;">Vorbetrachtung und Rechtschreibüberprüfung</span></span><br style="font-weight: bold;" /><span style="font-weight: bold;">Russian: </span><span style="font-size: small;"><span style="font-weight: bold;"><span style="text-decoration: underline;">??????????????? ???????? ? ???????? ????????????</span></span></span></p>
<p><span style="font-size: small;"><span id="more-70"></span><br />
A simple 23 letter English phrase will translate into a very complex 48 letter Russian gibberish. Do you understand now why this is a <span style="font-weight: bold;">dirty job? </span>No? Alright, let me illustrate with a simple dialog box&#8230;</span></p>
<p style="text-align: left;"><a href="http://ianuy.multiply.com/photos/hi-res/upload/SbNMngoKCDIAACqFinA1"></a><a href="http://ianuy.multiply.com/photos/hi-res/upload/SbNMngoKCDIAACqFinA1"></a><a href="http://ianuy.multiply.com/photos/hi-res/upload/SbNNqgoKCDIAAEPkF-M1"><span class="insertedphoto"><img class="aligncenter" style="border: 0pt none;" src="http://images.ianuy.multiply.com/image/1/photos/upload/300x300/SbNMngoKCDIAACqFinA1/Locale-English.JPG?et=c07w0dU1WdDkhAJtNdZVYw&amp;nmid=0" border="0" alt="" width="299" height="138" /></span></a><a href="http://ianuy.multiply.com/photos/hi-res/upload/SbNMngoKCDIAACqFinA1"></a><span style="font-size: small;"><br />
Now let&#8217;s try to localize this particular dialog box into Russian&#8230;<a href="http://ianuy.multiply.com/photos/hi-res/upload/SbNMngoKCDIAACqFinA1"></a></span><br />
<a href="http://ianuy.multiply.com/photos/hi-res/upload/SbNNqgoKCDIAAEPkF-M1"><img class="aligncenter" style="border: 0pt none;" src="http://images.ianuy.multiply.com/image/1/photos/upload/300x300/SbNNqgoKCDIAAEPkF-M1/Locale-Russian.JPG?et=xVPUnGuDNDyVJ48RP68sXQ&amp;nmid=0" border="0" alt="" width="299" height="138" /></a><a href="http://ianuy.multiply.com/photos/hi-res/upload/SbNNqgoKCDIAAEPkF-M1"></a><a href="http://ianuy.multiply.com/photos/hi-res/upload/SbNNqgoKCDIAAEPkF-M1"></a><br />
<span style="font-size: small;">Because some languages are just so weird, a simple phrase will translate into a <span style="font-weight: bold;">paragraph</span>! And as &#8220;programmers&#8221;, its our job to <span style="font-style: italic;">resize</span> the offending component (See last button on the left) so that the translated phrase will fit. In this particular dialog, to be able to <span style="font-style: italic;">resize</span> the offending button, you need to:</span></p>
<ol>
<li><span style="font-size: small;">Resize the Form</span></li>
<li><span style="font-size: small;">Move the Textbox, the command button (button5) on the right , and the group box (groupbox2) on the right<br />
</span></li>
<li><span style="font-size: small;">Resize the groupbox (groupbox1) on the left</span></li>
<li><span style="font-size: small;">Finally, resize the offending button</span></li>
</ol>
<p style="text-align: left;"><span style="font-size: small;">You might say &#8220;Well, that&#8217;s easy! It won&#8217;t even take me 3 minutes to do that.&#8221;. Hah, I&#8217;m being too easy on you with that example. Consider this dialog then:</span><br />
<a href="http://ianuy.multiply.com/photos/hi-res/upload/SbNQiAoKCDIAABN2DNU1"><img class="aligncenter" src="http://images.ianuy.multiply.com/image/1/photos/upload/300x300/SbNQiAoKCDIAABN2DNU1/wgetgui-screenshot.png?et=wf6QugEL0EINRXcMrNgVQA&amp;nmid=0" border="0" alt="" /></a><span style="font-size: small;">Haha. Still too easy? How bout this?</span></p>
<p><a href="http://ianuy.multiply.com/photos/hi-res/upload/SbNR5QoKCDIAAEBEN4Y1"><img class="aligncenter" src="http://images.ianuy.multiply.com/image/1/photos/upload/300x300/SbNR5QoKCDIAAEBEN4Y1/o-filematrix.png?et=AgZTJMjIo6xBCSh%2CmugM4w&amp;nmid=0" border="0" alt="" /></a><br />
<img src="file:///C:/DOCUME%7E1/Ian/LOCALS%7E1/Temp/moz-screenshot-3.jpg" alt="" /><span style="font-size: small;">And it&#8217;s a bitch when the programmer that designed the original GUI does not understand the concept of GOOD UI DESIGN PRACTICES and decided that overlapping 20 groupboxes and toggling the Visible flag during <span style="font-weight: bold;">runtime</span> is a GOOD IDEA. (Yes, I know. I&#8217;ve done this a couple of times in the past and I apologize for having committed this damnable sin!)</span><br />
<a href="http://ianuy.multiply.com/photos/hi-res/upload/SbNUfQoKCDIAAAbpbkk1"><img class="aligncenter" src="http://images.ianuy.multiply.com/image/1/photos/upload/300x300/SbNUfQoKCDIAAAbpbkk1/Overlapping.JPG?et=D8dGHmfvlOhOFOBO79bRyw&amp;nmid=0" border="0" alt="" /></a><span style="font-size: small;">Now, consider the fact that we have a <span style="font-weight: bold;">very very huge system</span> that contains roughly <span style="font-weight: bold;">300+ </span>dialog boxes and the fact that we need to ship the system in <span style="font-weight: bold;">5 </span>different languages. Don&#8217;t get me wrong, we are using a localization tool to accomplish the task but somethings just have to done MANUALLY. It&#8217;s indeed a dirty job!</span></p>
<p>This hell right here is just <span style="font-weight: bold;">ONE</span> part of the Localization Job and it&#8217;s the <span style="font-weight: bold;">EASIEST PART!</span> Since some part of our codebase is so freakin old, when you change a small part of the code, all hell breaks loose. The system will break in 15 different places at the same time! And you know what&#8217;s great? The system is already localized that you won&#8217;t understand what the error message is saying! And with a codebase consisting of <span style="font-weight: bold;">MILLION LINES </span>of code (some from the 80&#8217;s), you&#8217;ll understand why localization is a dirty job.</p>
<p>Here&#8217;s the upside (YES! There is an upside), Localizing a piece of software into different languages automatically converts to sales. Its good money. And at times like this, contributing to the company&#8217;s bottom line is what separates you from being laid-off to keeping your job, even though its a dirty one. <img src='http://blog.ianuy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p>In the future, I have 2 projects lined up that involves *real* coding. But for now, I&#8217;ll have to make do.</p>
<p><span style="font-size: large;"><span style="font-style: italic;">&#8220;It&#8217;s a dirty job but someone&#8217;s gotta do it!&#8221;</span></span></p>
<p><span style="font-size: x-small;">*</span><span style="font-size: x-small;">PS: I used the term &#8220;Dialog Boxes&#8221; for the non-technical readers to understand. For the geeky guys, just translate. <img src='http://blog.ianuy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </span><span style="font-style: italic;"><br />
</span></p>
<p><!-- Site Meter --><!-- Copyright (c)2006 Site Meter --></p>



Share and Enjoy:


	<a rel="nofollow" href="mailto:?subject=Localization%3A%20A%20Programmer%27s%20Dirty%20Job&amp;body=http%3A%2F%2Fblog.ianuy.com%2F2009%2F04%2F12%2Flocalization-a-programmers-dirty-job%2F" title="E-mail this story to a friend!"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F04%2F12%2Flocalization-a-programmers-dirty-job%2F&amp;title=Localization%3A%20A%20Programmer%27s%20Dirty%20Job&amp;bodytext=When%20I%20was%20in%20College%2C%20I%20was%20amazed%20that%20the%20suits%20%28%22Business%20People%22%29%20are%20so%20willing%20to%20pay%20me%20good%20money%20just%20to%20spew%20out%20pieces%20of%20code%20that%20would%20eventually%20end%20up%20in%20a%20crappy%20system%20somewhere.%20Well%2C%20that%20was%20the%20time%20when%20I%20thought%20that%20working%20" title="Digg"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F04%2F12%2Flocalization-a-programmers-dirty-job%2F&amp;title=Localization%3A%20A%20Programmer%27s%20Dirty%20Job" title="Reddit"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F04%2F12%2Flocalization-a-programmers-dirty-job%2F&amp;title=Localization%3A%20A%20Programmer%27s%20Dirty%20Job&amp;notes=When%20I%20was%20in%20College%2C%20I%20was%20amazed%20that%20the%20suits%20%28%22Business%20People%22%29%20are%20so%20willing%20to%20pay%20me%20good%20money%20just%20to%20spew%20out%20pieces%20of%20code%20that%20would%20eventually%20end%20up%20in%20a%20crappy%20system%20somewhere.%20Well%2C%20that%20was%20the%20time%20when%20I%20thought%20that%20working%20" title="del.icio.us"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://twitter.com/home?status=Localization%3A%20A%20Programmer%27s%20Dirty%20Job%20-%20http%3A%2F%2Fblog.ianuy.com%2F2009%2F04%2F12%2Flocalization-a-programmers-dirty-job%2F" title="Twitter"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://slashdot.org/bookmark.pl?title=Localization%3A%20A%20Programmer%27s%20Dirty%20Job&amp;url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F04%2F12%2Flocalization-a-programmers-dirty-job%2F" title="Slashdot"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.ianuy.com%2F2009%2F04%2F12%2Flocalization-a-programmers-dirty-job%2F&amp;t=Localization%3A%20A%20Programmer%27s%20Dirty%20Job" title="Facebook"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.ianuy.com%2F2009%2F04%2F12%2Flocalization-a-programmers-dirty-job%2F&amp;t=Localization%3A%20A%20Programmer%27s%20Dirty%20Job" title="MySpace"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.ianuy.com%2F2009%2F04%2F12%2Flocalization-a-programmers-dirty-job%2F&amp;title=Localization%3A%20A%20Programmer%27s%20Dirty%20Job&amp;annotation=When%20I%20was%20in%20College%2C%20I%20was%20amazed%20that%20the%20suits%20%28%22Business%20People%22%29%20are%20so%20willing%20to%20pay%20me%20good%20money%20just%20to%20spew%20out%20pieces%20of%20code%20that%20would%20eventually%20end%20up%20in%20a%20crappy%20system%20somewhere.%20Well%2C%20that%20was%20the%20time%20when%20I%20thought%20that%20working%20" title="Google Bookmarks"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.ianuy.com%2F2009%2F04%2F12%2Flocalization-a-programmers-dirty-job%2F&amp;title=Localization%3A%20A%20Programmer%27s%20Dirty%20Job" title="DotNetKicks"><img src="http://blog.ianuy.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.ianuy.com/2009/04/12/localization-a-programmers-dirty-job/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
