<?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>JohnMinadeo.com</title>
	<atom:link href="http://blog.johnminadeo.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.johnminadeo.com</link>
	<description>you.Parse( _me.Stream() );</description>
	<lastBuildDate>Mon, 07 May 2012 03:47:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>A hard start</title>
		<link>http://blog.johnminadeo.com/2012/03/a-hard-start/</link>
		<comments>http://blog.johnminadeo.com/2012/03/a-hard-start/#comments</comments>
		<pubDate>Sun, 18 Mar 2012 04:47:21 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Family]]></category>
		<category><![CDATA[Home]]></category>
		<category><![CDATA[Musings]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[home]]></category>
		<category><![CDATA[motivation]]></category>
		<category><![CDATA[work life balance]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/?p=294</guid>
		<description><![CDATA[I was fortunate enough to be able to buy a great house exactly where I wanted to live in December of last year. It was a long road, albeit by choice, to get here. I am a big fan of &#8230; <a href="http://blog.johnminadeo.com/2012/03/a-hard-start/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was fortunate enough to be able to buy a great house exactly where I wanted to live in December of last year. It was a long road, albeit by choice, to get here. I am a big fan of flexibility and in fact, my life for quite a while involved a lot of travelling across the country to see my family.</p>
<p>I&#8217;m not complaining, that is just how it went down for me and it was great. But I bought this house, which again, I really do like. Feels very homey to me now, more so every day in fact. This morning I stepped outside with my coffee and realized I was too warm in my tshirt and hoody and had to take it off. If you know me personally, you&#8217;ll likely recall that I am usually cold and winter makes me cry like a little child :&#8217;(</p>
<p>At any rate. Last weekend, the garage was finally emptied of all boxes and we could park in there, which is awesome (thank you Rachel!) However, there is now a ton of boxes back in the house again. Its somewhat overwhelming.</p>
<p>I feel like I waste too much time winding down from a day at work. Don&#8217;t get me wrong, I love working and I love developing software of any kind on any platform. But being a person, I do have some personal preferences which I consider ideal. I find when they are not met it physically and emotionally takes a toll on the energy allotment I have to live with.</p>
<p>Well, this stuff is not going to put itself away, I guess I just wish I felt more like doing it. I&#8217;m sure when it&#8217;s done, I&#8217;ll feel great about it, just that damn motivation.</p>
<p>Anyway, wish me luck, tomorrow is looking like it&#8217;s going to be a busy one. Oh yeah, and then Boy Scouts at 7:30. Make that, it looks like it&#8217;s going to be a long, busy one <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2012/03/a-hard-start/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Impressed but not impressively- A friend&#8217;s interview code sample</title>
		<link>http://blog.johnminadeo.com/2012/02/impressed-but-not-impressively-a-friends-interview-code-sample/</link>
		<comments>http://blog.johnminadeo.com/2012/02/impressed-but-not-impressively-a-friends-interview-code-sample/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 04:39:16 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Family]]></category>
		<category><![CDATA[Musings]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Recommend]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[interview questions]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/?p=291</guid>
		<description><![CDATA[So a friend of mine is currently employed at a large multi-national IT contracting company. Well, that’s not entirely true, the company does staff augmentation for many sectors, IT being one of them, and while they can provide full software &#8230; <a href="http://blog.johnminadeo.com/2012/02/impressed-but-not-impressively-a-friends-interview-code-sample/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So a friend of mine is currently employed at a large multi-national IT contracting company. Well, that’s not entirely true, the company does staff augmentation for many sectors, IT being one of them, and while they can provide full software development life cycle services, they are typically staff augmentation. </p>
<p>That being said, he’s a developer. And a developer who came to developing later in life after learning, living, and dumping a previous career. He’s been doing professional development (i.e. it is his sole income) for 6 years and of the many developers I know he’s a natural, learns quick and the “right way” and the why’s. I’d hire the man for a senior developer position in a minute.</p>
<p>However, the economy being what it is, he is currently working a junior developer position. By which I mean doing senior developer work for junior developer money. Hey, it’s beats unemployment, no doubt, however things could be better along the compensation lines. As I’ve said, the man does not play around and he’d be a bargain at 3 times his salary (straight up.)</p>
<p>Well like any sane person (well as sane as one can be and still want to be a software developer), he’s taking the initiative and looking around for other employment where the compensation will be more commensurate with his efforts, and the challenges will be developmental and not overcoming ridiculous arbitrary management process (again, you’ll have to take my word that the problems are ridiculous and that he can not change them.)</p>
<p>So one of the places his recruiter is submitting his resume to is requiring he write a small windows console application that satisfies the following requirements:</p>
<li>Counts from between <strong>1</strong> and <strong>100 <em>inclusively</em></strong></li>
<li>When the number is <strong>evenly divisible by 3</strong>, it should print “<strong>One</strong>”</li>
<li>When the number is <strong>evenly divisible by 5</strong>, it should print “<strong>Two</strong>”</li>
<li>When the number is <strong>evenly divisible by 3 <em>and</em> 5</strong>, it should print “<strong>OneTwo</strong>”</li>
<li>When the number is <strong><em>not</em> evenly divisible by 3 <em>or</em> 5</strong>, it should print the <strong>number</strong></li>
<p>Ok, fair enough. I <strong>love</strong> that they asked for a code sample. At the end of the day, writing the code is part and parcel for software developers and I feel that the trend of those “what did you have to do”, “what were the results of doing it”, and “what could you have done differently” interviews… Sure you need to make sure the person is a good fit for the team as far as socializing, personality, not an asshat, but if they are a good fit, can they design and/or write the code.</p>
<p>Well, I’ll say you have to at least consider it for a second but the above is not that challenging. Basically it will show you know how to nest/cascade <strong>if</strong>’s and perhaps know about the modulo operator.</p>
<p>I would have been more impressed if they asked for a super and derived classes using interfaces to model a car, motorcyle, and airplane. But, I don’t know the company’s true needs so I’ll give them the benefit of the doubt.</p>
<p>Anyway, good luck my man!</p>
<p>Below is what I did… I feel it could be more performant but is pretty readable and gentle enough on resources for most stuff (I had to take a swing right?!?) …</p>
<p><font size="5" face="Courier New">static void Main(string[] args)<br />{<br />&nbsp;&nbsp;&nbsp; StringBuilder valueBuilder = new StringBuilder();<br />&nbsp;&nbsp;&nbsp; for (int counter = 1; counter &lt;= 100; counter++)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (counter % 3 == 0) valueBuilder.Append(&#8220;One&#8221;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (counter % 5 == 0) valueBuilder.Append(&#8220;Two&#8221;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (valueBuilder.Length == 0) valueBuilder.Append(counter.ToString());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(valueBuilder.ToString());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; valueBuilder.Clear();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br />}</font></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2012/02/impressed-but-not-impressively-a-friends-interview-code-sample/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;What do you need?&#8221;, a life lesson; courtesy Amazon Web Services</title>
		<link>http://blog.johnminadeo.com/2012/01/what-do-you-need-a-life-lesson-courtesy-amazon-web-services/</link>
		<comments>http://blog.johnminadeo.com/2012/01/what-do-you-need-a-life-lesson-courtesy-amazon-web-services/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 03:40:32 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/?p=287</guid>
		<description><![CDATA[“What do you need?” is an important thing to know. It allows you to more accurately predict what your costs might be for any longer term obligation. And to be obvious, this relates to pretty much everything, from how many &#8230; <a href="http://blog.johnminadeo.com/2012/01/what-do-you-need-a-life-lesson-courtesy-amazon-web-services/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>“What do you need?” is an important thing to know. It allows you to more accurately predict what your costs might be for any longer term obligation. And to be obvious, this relates to pretty much everything, from how many miles you drive to derive fuel costs and a budget for them, to how much free time you have to devote to a pet. You’ve got some quantity of a finite resource, generally it’s a good thing to have some reserves at all times. And that, dear reader, never happens by accident.</p>
<p>If you’ve been reading along at home, you’ve noticed that <a title="Blog post: &quot;Another Amazon.com Win&quot;" href="http://blog.johnminadeo.com/2012/01/another-amazon-com-win/" target="_blank">spurred on by a friend of mine’s experience</a> migrating his web hosting to Amazon.com Web Services, on an Elastic Computing Cloud (EC2); that I have started a EC2 of my own using their Free Tier services.</p>
<p>My feelings on the service are quite positive, it’s pretty darn awesome to have the ability to go from a single small server with a website to a enterprise size data-center and web-farm on demand. I don’t use it for such but, that’s worth something. Personally, I love having a root ssh available and the ability to run whatever service I deem fit, feels good; <strong>real </strong>good!</p>
<p>However, <em>what had happened was</em>, I popped on over to check my account activity and was greeted with this:</p>
<p><a href="http://blog.johnminadeo.com/wp-content/uploads/2012/01/WhatTheWhat.png" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="WhatTheWhat" border="0" alt="WhatTheWhat" src="http://blog.johnminadeo.com/wp-content/uploads/2012/01/WhatTheWhat_thumb.png" width="569" height="644"></a></p>
<p>What I’d like to draw your attention to is the “AWS Data Transfer (excluding Amazon CloudFront)” group. This section contains four items:</p>
<ol>
<li>Data transfer out under the monthly global free tier</li>
<li>Region data transfer under the monthly global free tier</li>
<li>Data transfer in per month</li>
<li>First 10 TB / month data transfer out beyond the global free tier</li>
</ol>
<p>And of those items, #4 is the little devil. Good ‘ole First 10 TB / month data transfer out beyond the global free tier. </p>
<p>I’m not going to complain about the price, $9.95 sounds reasonable for the transfers. The thing is, I’ve had this account for 20 days, and even if I did use quite a bit during the “load up” phase of server configuration, I’d say honestly it would have been under 10 GB. I did have a game server running for a week or so of that. I don’t believe the bandwidth use would have been in 60 GB. <strong>I could be wrong about that.</strong></p>
<p>And there you have it, I have no idea because, I don’t know what I need. At least when it comes to pay-as-you-go computing platforms and web-enabled services. Well at least I have something to think about. I’m not really quite sure where to begin to map out my needs on this.</p>
<p>I’ve turned my instance off until I can sort it all out, I have time for a free experiment, but sadly not the funds. I do have an email into Amazon Web Services Support, in particular asking how I can tell if the charges are valid and identifying where my usage was to/from. Hopefully they have the capabilities and it’s just unpreparedness on my side.</p>
<p>Either way, the service is excellent and I highly recommend it. I probably wouldn’t run a game server on it without getting far better bandwidth usage scenarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2012/01/what-do-you-need-a-life-lesson-courtesy-amazon-web-services/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Another Amazon.com Win</title>
		<link>http://blog.johnminadeo.com/2012/01/another-amazon-com-win/</link>
		<comments>http://blog.johnminadeo.com/2012/01/another-amazon-com-win/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 02:40:44 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Recommend]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[customer support]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[satisfaction]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/?p=276</guid>
		<description><![CDATA[Recently, a friend of mine switched his web hosting to an Amazon Elastic Compute Cloud (EC2)  and was very pleased with the results; so much so that I decided I needed to look into this myself as a currently provide &#8230; <a href="http://blog.johnminadeo.com/2012/01/another-amazon-com-win/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recently, a friend of mine <a title="http://blog.vec.com/2012/01/11/blog-moving-to-amazon-ec2/" href="http://blog.vec.com/2012/01/11/blog-moving-to-amazon-ec2/" target="_blank">switched his web hosting</a> to an <a title="Wikipedia: Amazon Elastic Compute Cloud" href="http://en.wikipedia.org/wiki/Amazon_Elastic_Compute_Cloud" target="_blank">Amazon Elastic Compute Cloud (EC2)</a>  and was very pleased with the results; so much so that I decided I needed to look into this myself as a currently provide web hosting for a number of small domains and while I am satisfied with my current provider, as it turns out Amazon offers <strong>deep</strong> discounts for longer term agreements (one or three years) which are very competitive.</p>
<p>As I like to do, before I get into the Amazon.com win, I’d like to provide a little background<img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="http://blog.johnminadeo.com/wp-content/uploads/2012/01/wlEmoticon-smile.png" alt="Smile" /></p>
<p>Amazon’s description of their service is (ref: <a title="Amazon Elastic Compute Cloud (Amazon EC2)" href="http://aws.amazon.com/ec2/">http://aws.amazon.com/ec2/</a>) :</p>
<blockquote><p>Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers.</p></blockquote>
<p>EC2 is Amazon’s version of <a title="Wikipedia: Virtual Private Server" href="http://en.wikipedia.org/wiki/Virtual_private_server" target="_blank">Virtual Private Server</a> hosting which in a nutshell is renting a an actual server computer that is located and run by the hosting provider and they give you an administrator account to that server such that you can use to install and maintain any software the server can run, such as <a title="Wikipedia: Web server" href="http://en.wikipedia.org/wiki/Web_server" target="_blank">web servers</a>, <a title="Wikipedia: Name Server" href="http://en.wikipedia.org/wiki/DNS_server" target="_blank">DNS servers</a>, <a title="Wikipedia: Revision control" href="http://en.wikipedia.org/wiki/Revision_control" target="_blank">source control</a>, even video games. The advantage to a VPS hosted environment over traditional web hosting is that you get to decide exactly what services the server runs. Traditional web hosting generally provides you with a web server and usually an <a title="Wikipedia: File Transfer Protocol" href="http://en.wikipedia.org/wiki/FTP_server" target="_blank">FTP</a> server, and sometimes <a title="Wikipedia: Secure Shell" href="http://en.wikipedia.org/wiki/Secure_shell" target="_blank">SSH</a> access to a remote command line. You can then upload content to <strong>and not</strong> what <a title="Wikipedia: Comparison of web server software" href="http://en.wikipedia.org/wiki/Comparison_of_web_server_software" target="_blank">web server software</a> you’d like to use, or install any additional custom services.</p>
<p>Currently (1/15/2010) Amazon has a Free Tier which, if you are eligible for, you can get a linux based micro instance free for a year. This tier comes with a limited but what I feel is a generous amount of bandwidth and storage use.</p>
<p>From Amazon’s <a title="Amazon's AWS Free Usage Tier product page" href="http://aws.amazon.com/free/">AWS Free Usage Tier product page</a>:</p>
<blockquote><p><strong>AWS Free Usage Tier (Per Month):</strong></p>
<ul>
<li>750 hours of Amazon EC2 Linux Micro Instance usage (613 MB of memory and 32-bit and 64-bit platform support) – enough hours to run continuously each month*</li>
<li>750 hours of an Elastic Load Balancer plus 15 GB data processing*</li>
<li>10 GB of Amazon Elastic Block Storage, plus 1 million I/Os and 1 GB of snapshot storage*</li>
<li>5 GB of Amazon S3 standard storage, 20,000 Get Requests, and 2,000 Put Requests*</li>
<li>15 GB of bandwidth out aggregated across all AWS services*</li>
<li>25 Amazon SimpleDB Machine Hours and 1 GB of Storage**</li>
<li>100,000 Requests of Amazon Simple Queue Service**</li>
<li>100,000 Requests, 100,000 HTTP notifications and 1,000 email notifications for Amazon Simple Notification Service**</li>
<li>10 Amazon Cloudwatch metrics, 10 alarms, and 1,000,000 API requests**</li>
</ul>
<p>In addition to these services, the AWS Management Console is available at no charge to help you build and manage your application on AWS.</p>
<p>* These free tiers are only available to new AWS customers and are available for 12 months following your AWS sign-up date. When your free usage expires or if your application use exceeds the free usage tiers, you simply pay standard, pay-as-you-go service rates (see each service page for full pricing details). Restrictions apply; see offer terms for more details.</p>
<p>** These free tiers do not expire after 12 months and are available to both existing and new AWS customers indefinitely.</p></blockquote>
<p><span style="font-family: Georgia;">The price, is <strong>Free</strong> for the limits above (assuming you are eligible). Were you to exceed any of the limits, you will be charged the normal fees for a linux micro instance (generally under $.20 USD an hour for the exceeded limit.) For full pricing structure see: Amazon’s <a title="Amazon’s EC2 Pricing page" href="http://aws.amazon.com/ec2/pricing/">EC2 Pricing page</a>.</span></p>
<p><span style="font-family: Georgia;">The eligibility requirements may be found on Amazon’s <a title="Amazon's AWS Free Usage Tier Offer Terms page" href="http://aws.amazon.com/free/terms/" target="_blank">AWS Free Usage Tier Offer Terms page</a>, and as of this writing, are as follows. (<em>I high-lighted one in particular for it’s relevancy to this post</em>) :</span></p>
<blockquote><p><strong>Terms and Conditions</strong></p>
<ul>
<li>Only individuals who have not previously created an AWS account are eligible to participate in the Offer. You will not be eligible for the Offer if you or your organization create(s) more than one account to receive additional benefits under the Offer or if the new account is included in Consolidated Billing. You will be charged standard rates for use of AWS services if we determine that you are not eligible for the Offer.</li>
<li>You must create and maintain an AWS account in good standing (including a valid credit card) to participate in the Offer. Your participation in the Offer and your use of the AWS services is subject to the AWS Customer Agreement. The Offer is a Special Pricing Program under the AWS Customer Agreement.</li>
<li><span style="background-color: #ffc000;">Only accounts created after October 20, 2010 are eligible for the Offer. The Offer does not apply to any use of the AWS services prior to November 1, 2010.</span></li>
<li>You will be charged standard rates for use of the AWS services prior to November 1, 2010 or after the Offer expires. You also will be charged AWS’s standard rates for any use that exceeds the free usage amount provided under the Offer.</li>
<li>If you have not used the AWS resources provided under the Offer during the previous 3 months, we may reclaim those AWS resources after giving you 30 days notice. Even if your AWS resources are reclaimed, you may continue to participate in the Offer using new AWS resources.</li>
<li>You may participate in the Offer for one year from the date you first sign up for any of the services provided under the Offer.<br />
Unused usage amounts remaining at the end of the month do not roll over to subsequent months.</li>
<li>When calculating your use of AWS services under the Offer, we will aggregate your use across all AWS regions.</li>
<li>We may stop accepting new registrations for the Offer at any time.</li>
<li>Existing free tier offers for Amazon SimpleDB, Amazon Simple Queue Service, and Amazon Simple Notification Service are subject to separate terms and conditions described on the pricing pages for those services and the AWS Service Terms.</li>
</ul>
</blockquote>
<p><span style="font-family: Georgia;">So, as I stated before, I was pretty excited about the offer to check out what Amazon had to offer, especially in that I am a software developer that frequently works with web services and internet connected applications and <a title="Wikipedia: Cloud computing" href="http://en.wikipedia.org/wiki/Cloud_computing" target="_blank">Cloud Computing</a> is a <strong><em>Big Thing</em></strong> in my world these days. So I grabbed my credit card and signed up immediately!</span></p>
<p><span style="font-family: Georgia;">Well as it turns out I completely forgot that I did in fact already have an AWS account that I had gotten a number of years ago to play around with some of their web API’s. This made me ineligible for the Free Tier.</span></p>
<p><span style="font-family: Georgia;">I proceed to load the server up and get it running the way I wanted to and two days later I checked back at the billing page to ensure I hadn’t messed anything up during the sign-up process. I found the process to be slightly confusing. The way what you are ordering is clearly defined and great, what was not intuitive was if what I was ordering was eligible under the micro account. You can absolutely get a Free Tier instance and purchase and pay for anything above and beyond what’s in the Free Tier, no problems. Which is great, but I found myself wishing for a way to limit the products and services to those only included in the Free Tier.</span></p>
<p><span style="font-family: Georgia;">And they may actually be, I am not certain because I was not eligible at sign-up and the UI may very well have been tailored to that of a long time user. I’m certainly not going to slight them much for that, but if that was the case, it would have been nice to know before I pulled the trigger. </span></p>
<p><span style="font-family: Georgia;">At any rate, I ended up being charged $.71 USD for 2 days of the service. Completely no big deal but if money keeps adding up and being budget wise is never a bad thing. So I quickly filled out a customer support form asking about it. This was a Friday evening and I heard back on the following Sunday morning.</span></p>
<p><span style="font-family: Georgia;">Below is a portion of the response:</span></p>
<blockquote><p>Hello John,</p>
<p>I&#8217;ve researched your account and it appears your AWS account was created before October 21, 2010. This would ordinarily make you ineligible for the Free Usage Tier Offer.  However, because of your limited use of our services, as an exception I have manually signed you up for the free tier services of EC2 and S3 effective January 1, 2012.</p></blockquote>
<p><span style="font-family: Georgia;">I was <strong>completely satisfied</strong> with the outcome. I wasn’t really sure what to expect, I was not aware that I was ineligible. I figured, worst case scenario, I pay the $.71 USD and cancel the account. And I feel that Amazon would have been completely within their right to rigidly stick to their terms. But they sure surprised me!</span></p>
<p><span style="font-family: Georgia;">Amazon’s customer service is simply excellent. It’s one thing that, I feel, sets Amazon apart from its competitors. Their commitment to making their customers happy is truly one of the reasons I keep giving them my business. I’ve had to contact customer support a few times for my regular shopping using their site, and have always been happy with the outcome. It really is nice to see a company provide the same great service across all their product offerings.</span></p>
<p><span style="font-family: Georgia;">Tip of the hat Amazon.com, thank you!</span></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2012/01/another-amazon-com-win/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Two things I heard that I can&#8217;t un-hear</title>
		<link>http://blog.johnminadeo.com/2011/12/two-things-i-heard-that-i-cant-un-hear/</link>
		<comments>http://blog.johnminadeo.com/2011/12/two-things-i-heard-that-i-cant-un-hear/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 05:28:51 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[advice]]></category>
		<category><![CDATA[unhear]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/?p=271</guid>
		<description><![CDATA[Without further ado, here they are. These both happened years ago, so I&#8217;m likely paraphrasing, but here&#8217;s they retain the spirit in which they were given. &#8220;If I am going to be spending time reading anyway, I may as well &#8230; <a href="http://blog.johnminadeo.com/2011/12/two-things-i-heard-that-i-cant-un-hear/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Without further ado, here they are. These both happened years ago, so I&#8217;m likely paraphrasing, but here&#8217;s they retain the spirit in which they were given.</p>
<p>&#8220;If I am going to be spending time reading anyway, I may as well read something that will help my career.&#8221; &#8211;Timothy Flory</p>
<p>&#8220;If it took you ten hours to write a program, and you make $20.00 / hour at your day job. You&#8217;d be better off spending that ten hours earning $200.00 and spending $85.00 for an app that does it.&#8221; &#8211;Craig Lubitz</p>
<p>Well, pretty good advice, that&#8217;s for sure. Nothing bad ever happened to anyone for doing either or both of those. More likely, and I can attest first hand to some degree, that both of these has helped me out over the years.</p>
<p>&lt;rant type=&#8221;tongue-in-cheek&#8221;&gt;</p>
<p>Every damn time I am in a bookstore, or browsing Amazon.com and I come across a tasty fantasy (I&#8217;m looking at you <a title="Elric of Melniboné Wikipedia entry" href="http://en.wikipedia.org/wiki/Elric_of_Melnibon%C3%A9" target="_blank">Elric of Melniboné</a>) or some sci-fi gem (take a bow <a title="Isaac Asimov Wikipedia entry" href="http://en.wikipedia.org/wiki/Asimov,_Isaac" target="_blank">Mr. Asimov</a> <em>(mmmm, old school baby)</em>) I am inevitably plagued by Tim&#8217;s voice and it honestly makes me feel a bit guilty.</p>
<p>Likewise, every time I feel a little urge to write some not for work code, I think of Craig and feel a bit inefficient.</p>
<p>Now don&#8217;t get me wrong, this is completely my own idiosynchrocies, and I have no problem doing things just because I want or need to. They both need to be applied, like anything, with moderation and it&#8217;s all good. I guess I&#8217;m just surprised that it still happens.</p>
<p>&lt;/rant&gt;</p>
<p>Thanks fellas <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2011/12/two-things-i-heard-that-i-cant-un-hear/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On moving, home buying, and me</title>
		<link>http://blog.johnminadeo.com/2011/12/on-moving-home-buying-and-me/</link>
		<comments>http://blog.johnminadeo.com/2011/12/on-moving-home-buying-and-me/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 05:06:52 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Family]]></category>
		<category><![CDATA[Musings]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Recommend]]></category>
		<category><![CDATA[$$$]]></category>
		<category><![CDATA[awesome]]></category>
		<category><![CDATA[home buying]]></category>
		<category><![CDATA[pain in the ass]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2011/12/on-moving-home-buying-and-me/</guid>
		<description><![CDATA[Well, it’s been much longer than I had planned between writing here. But I have a reason excuse? I just purchased my first home. It’s pretty exhausting and umm just really a general pain in the ass. However it is &#8230; <a href="http://blog.johnminadeo.com/2011/12/on-moving-home-buying-and-me/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well, it’s been much longer than I had planned between writing here. But I have a <strike>reason</strike> excuse?</p>
<p>I just purchased my first home. It’s pretty exhausting and umm just really a general pain in the ass. However it is also pretty damn exciting. I’m relatively late to the game at 38 for a first home. I’ve been making enough money to get the job done for quite some time now but due to a marriage, child, divorce. I ended up doing some moving around and really grew to enjoy the freedom of being able to be where ever I really needed to be, if I really needed to be there.</p>
<p>My general first time home buying view is not as great as it could have been. But it certainly was an interesting learning experience. The home that I purchased was the second home I brought into the underwriting stage. Which, for the uninitiated I’ll just say is pretty far into the “buy it” portion of the game. All the inspections, appraisals, repair work, documenting repair work, re-repair work due to lack of work permit originally had already been completed it was simply the act of jumping through the lender’s financial hoops for final thumbs up.</p>
<p>The annoying part is that the financial guy should have caught the problem the second he had all the financial numbers. In a nutshell, since the whole housing market collapse debacle, the mortgage industry does a lot more due diligence (as then damn well should have been doing all along!) which basically results in many small rules changing every week. Well, absolutely your financial guy should be on top of every nuance of it. That’s his job. However in this case, since I earned my income though contracting, I had to prove a years worth of uninterrupted employment instead of a standard six months, for you average permanent employee. </p>
<p>Make no mistake, I am happy to abide by any laws / rules that guide this process, but this was something that could have saved a whole lot of people a whole lot of time. In the end, the sellers did not want to risk not selling their house on the hopes of my employment not being terminated (which was never an issue, but how do you really prove that anyway.) I can’t blame them, though sadly, their house is still for sale and I live in a larger house around the corner for the same price. Sometimes gambles don’t pay off, or maybe they just didn’t care.</p>
<p>It was tough getting that far invested into a house and then have it unravel. It all worked out for the best and my financial guy did in fact come through come close time, which I really appreciated and totally helped out at the exact second I needed it to!</p>
<p>The second house, the one in I did in fact buy, really felt like home the second I walked into it, and the seller was great and easy to work with. I like to think I was a good buyer as well. After negotiating the price that is <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://blog.johnminadeo.com/wp-content/uploads/2011/12/wlEmoticon-winkingsmile.png"></p>
<p>It’s just almost a surreal feeling to sit in my basement in front of my computer and bang out a post in my own home. I honestly thought I would never buy one. It’s amazing how much life changes, and how good it can turn out being despite hard-times, penny-pinching, and life’s not-so-little obstacles.</p>
<p>Overall, the whole experience is a must have. +1</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2011/12/on-moving-home-buying-and-me/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows 8 Preview Task Manager Screen Shots</title>
		<link>http://blog.johnminadeo.com/2011/11/windows-8-preview-task-manager-screen-shots/</link>
		<comments>http://blog.johnminadeo.com/2011/11/windows-8-preview-task-manager-screen-shots/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 13:11:55 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Recommend]]></category>
		<category><![CDATA[Screen Shots]]></category>
		<category><![CDATA[Task Manager]]></category>
		<category><![CDATA[Windows 8]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/?p=260</guid>
		<description><![CDATA[Well this is more of a bag of screen-shots than a blog post, but check this out. Now this is one nice taskman! The default opening tab is “Processes” and the CPU, Memory, Disk, and Network throb a darker yellow &#8230; <a href="http://blog.johnminadeo.com/2011/11/windows-8-preview-task-manager-screen-shots/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well this is more of a bag of screen-shots than a blog post, but check this out. Now this is one nice taskman!</p>
<p>The default opening tab is “Processes” and the CPU, Memory, Disk, and Network throb a darker yellow then there is notable activity</p>
<p><a href="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Processes.png" target="_blank"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Taskman - Processes" src="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Processes_thumb.png" alt="Taskman - Processes" width="404" height="341" border="0" /></a></p>
<p>Then the “Performance” tab which has sub views for CPU, Memory, Disk, and Networking</p>
<p><a href="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Performance-CPU.png" target="_blank"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Taskman - Performance - CPU" src="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Performance-CPU_thumb.png" alt="Taskman - Performance - CPU" width="404" height="341" border="0" /></a></p>
<p><a href="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Performance-RAM.png" target="_blank"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Taskman - Performance - RAM" src="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Performance-RAM_thumb.png" alt="Taskman - Performance - RAM" width="404" height="341" border="0" /></a></p>
<p><a href="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Performance-Disk.png" target="_blank"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Taskman - Performance - Disk" src="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Performance-Disk_thumb.png" alt="Taskman - Performance - Disk" width="404" height="341" border="0" /></a></p>
<p><a href="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Performance-Network.png" target="_blank"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Taskman - Performance - Network" src="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Performance-Network_thumb.png" alt="Taskman - Performance - Network" width="404" height="341" border="0" /></a></p>
<p>The “App History” tab follows and shows you how your applications are using your machine’s resources</p>
<p><a href="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-App-History.png" target="_blank"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Taskman - App History" src="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-App-History_thumb.png" alt="Taskman - App History" width="404" height="341" border="0" /></a></p>
<p>The “Startup” tab details the applications that automatically run at startup and tries to assess the impact on start-up (which I assume to mean startup time during a boot or log-in)</p>
<p><a href="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Startup.png" target="_blank"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Taskman - Startup" src="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Startup_thumb.png" alt="Taskman - Startup" width="404" height="341" border="0" /></a></p>
<p>The “Users” tab breaks down the currently logged in users and the processes they have spun up and their resource usage.</p>
<p><a href="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Users.png" target="_blank"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Taskman -Users" src="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Users_thumb.png" alt="Taskman -Users" width="404" height="341" border="0" /></a></p>
<p>The “Details” tab is the Old School Task Manager’s “Process” view</p>
<p><a href="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Details.png" target="_blank"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Taskman - Details" src="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Details_thumb.png" alt="Taskman - Details" width="404" height="341" border="0" /></a></p>
<p>And finally the “Services” tab which details your currently running services</p>
<p><a href="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Services.png" target="_blank"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Taskman - Services" src="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Taskman-Services_thumb.png" alt="Taskman - Services" width="404" height="341" border="0" /></a></p>
<p>And while we are at it, here is a screen shot of the Windows 8 Preview&#8217;s &#8220;File Copy&#8221; dialog<br />
<a href="http://blog.johnminadeo.com/wp-content/uploads/2011/11/win8filecopy.png" target="_blank"><img class="alignnone size-medium wp-image-263" title="Windows 8 Preview, File Copy dialog" src="http://blog.johnminadeo.com/wp-content/uploads/2011/11/win8filecopy-300x193.png" alt="" width="300" height="193" /></a></p>
<p><span style="color: #808080;"> [Update: 11/16/2010]</span></p>
<p><span style="color: #000000;">I just stumbled on a Task Tray icon that indicated my Location has been accessed. Apparently that ends up in the Event Viewer with Windows8, not terribly fancy but handy. All of the ones in the screen shots below are from Desktop Gadgets, I&#8217;m not sure which one which I find disappointing, but maybe I&#8217;m missing an easy way to correlate them.</span></p>
<p><img class="alignnone size-full wp-image-266" title="Location Access Task Tray hover" src="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Location-Access-1.png" alt="" width="267" height="150" /></p>
<p>And here are a few of the event viewer. &#8220;Sensitive&#8221; data has been erased, but it is there if you were doing this yourself.</p>
<p><a href="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Location-Access-2.png" target="_blank"><img class="alignnone size-medium wp-image-267" title="Location Access Event Viewer" src="http://blog.johnminadeo.com/wp-content/uploads/2011/11/Location-Access-2-297x300.png" alt="" width="297" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2011/11/windows-8-preview-task-manager-screen-shots/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programmatic Paralysis Or a senior developer&#8217;s hobby problem</title>
		<link>http://blog.johnminadeo.com/2011/10/programmatic-paralysis-or-a-senior-developers-hobby-problem/</link>
		<comments>http://blog.johnminadeo.com/2011/10/programmatic-paralysis-or-a-senior-developers-hobby-problem/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 03:35:51 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2011/10/programmatic-paralysis-or-a-senior-developers-hobby-problem/</guid>
		<description><![CDATA[Over the course of my career, heck, over the course of my life, I’ve had a reoccurring, “issue” shall we say. In a nutshell, I feel like doing some programming, but what shall I write? You see, programming for me, &#8230; <a href="http://blog.johnminadeo.com/2011/10/programmatic-paralysis-or-a-senior-developers-hobby-problem/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Over the course of my career, heck, over the course of my life, I’ve had a reoccurring, “issue” shall we say. In a nutshell, I feel like doing some programming, but what shall I write?</p>
<p>You see, programming for me, since the age of nine, has been my hobby. I just happen to be one of those guys that actually gets paid to do what he loves to do, and would be doing anyway. <em>For the time being, I will ignore the downsides of that as it’s a post and then some in it’s own right <img class="wlEmoticon wlEmoticon-winkingsmile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Winking smile" src="http://blog.johnminadeo.com/wp-content/uploads/2011/10/wlEmoticon-winkingsmile1.png">&nbsp;</em></p>
<p>What got me into it was really two things. The first is learning things. That “Eureka” moment when moments ago a bunch of mumbo-jumbo clicks in and make sense is an awesome feeling. The other draw was making some machine do my bidding. Again an awesome feeling which I can’t put into words if you’re not a programmer, I’m sure there are analogs in other disciplines, however I’m not familiar with those disciplines.</p>
<p>Well that is all fine and good, but I’ve been a professional (e.g. my sole income) programmer for seventeen years. I’ve got a lot of experience at a lot of levels of business types (differing in both type of industry and company size. Size may not be the right phrase, I’m trying to speak towards the level of “enterprise” processes an organization may or may not embrace)</p>
<p>Every now and again I get lucky and a new relatively self contained technology emerges that I’d like to toy around appear (I’m thinking Linq, jQuery, WebService, etc) Things that are big enough to have a challenge but small enough to not require a massive underlying framework.</p>
<p>The latter is really the problem, if I’m going to spend <strong>any</strong> of my not very often free time to writing code, I need to be getting something out of it. I need it to genuinely teach me something and therefore enhance my skill-set, and thus my career. Or I need it to be fun enough that it’s worth the cost.</p>
<p>An example of fun to be worth the cost, I will cite my work on the Quake3 Arena III mod, <a href="http://reactanceunlagged.com/" target="_blank">ReactanceUnlagged</a>. (sorry the site is really nothing more then where to grab the latest version which is a few years old.) But working on this was a <strong>blast! </strong>At one time we had a number of people running the mod on their servers and a fair amount of the very waning quake3 community (it was a 10 year old game when I started modding.) It was written in plain jane C which is my favorite play language, mostly because while it’s possible to blow off your foot, it’s really rewarding when you don’t and it works right <img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Open-mouthed smile" src="http://blog.johnminadeo.com/wp-content/uploads/2011/10/wlEmoticon-openmouthedsmile2.png"></p>
<p>Now the down side to that project was the ramp up, learning their API’s and their virtual machine you coded to.</p>
<p>So the other type of project I’d be drawn to for learning experiences is something more enterprise level, where I’s need to design and implement a database, a data access layer to access the data, and a back-end to process the data, not to mention the ui to work with the data (I’m not really a UI guy, but I can make something clean and jQuery is fun) So that’s a lot of ramp up to. A lot of the work I already know how to do and to do well, but implementing it again just to have something to work off to learn something is rough.</p>
<p>The same applies to open source projects, the ramp up is rough, while the rest is rewarding.</p>
<p>I seem to be having a problem picking where I want to invest the ramp up time, and while I believe in supporting and working on open source projects, I also feel that if I have something unique to contribute to the world (even if it’s just my own immediate world) I’d rather do that.</p>
<p>And the more time passes as I can’t decide, the more time I’m not ramping up and wasting.&nbsp; Most likely I should just pick something and go, worst case I find something else that rips me away which must mean I was more interested in it than the other, so be it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2011/10/programmatic-paralysis-or-a-senior-developers-hobby-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Autocomplete against an MVC driven JSON data provider</title>
		<link>http://blog.johnminadeo.com/2011/10/jquery-autocomplete-against-an-mvc-driven-json-data-provider/</link>
		<comments>http://blog.johnminadeo.com/2011/10/jquery-autocomplete-against-an-mvc-driven-json-data-provider/#comments</comments>
		<pubDate>Sat, 08 Oct 2011 02:39:41 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[mvc]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/?p=190</guid>
		<description><![CDATA[First, a disclaimer, this is basically some prototyping I did to discover how feasible this stuff is in reality. It is not an attempt to provide any sort of framework for consumption of others, but arguably the concepts could be &#8230; <a href="http://blog.johnminadeo.com/2011/10/jquery-autocomplete-against-an-mvc-driven-json-data-provider/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>First, a disclaimer, this is basically some prototyping I did to discover how feasible this stuff is in reality. It is <strong>not</strong> an attempt to provide any sort of framework for consumption of others, but arguably the concepts could be used to that end. Feel free to appropriate any of it at will in any way you see fit. All shout-outs accepted <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </em></p>
<p>For the sake of having some context around what I am doing, I have a Data Layer provided by the Microsoft Entity Framework running against an existing database. My MVC application only currently deals with a Client model which is related to the Clients table in my database (I take no responsibility for database naming conventions here, I worked with what I had.) I have a Client Controller, a Client Model (very simplified First, and Last Names; Id, and ClientCode properties relating to columns of similar names in the database), and various Client Views (not surprisingly, an Index, Detail, Edit, Create, and Delete views.)</p>
<p>With the above in place I decided to make a simple Client Picker that would work by the user typing the Client&#8217;s Last Name into a textbox and it would autocomplete and narrow the choices as the user typed. The final picked Client should be rendered in the Textbox as &#8220;Lastname, Firstname, [ClientCode]&#8220;</p>
<p>Well first things first, below is the code for the JsonMarshaller class which wraps calling DataContractJsonSerializer. Basically, you pass it a class that is adorned with a DataContractAttribute and it spits out the contents of the class as a Json encoded string.</p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"><span style="color: #0000ff">using</span> System;<span style="color: #0000ff">using</span> System.IO;<span style="color: #0000ff">using</span> System.Runtime.Serialization;<span style="color: #0000ff">using</span> System.Runtime.Serialization.Json;<span style="color: #0000ff">using</span> System.Text;<span style="color: #0000ff">using</span> System.Xml;

<span style="color: #0000ff">namespace</span> MvcSandbox.Library.Helpers{    <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> JsonMarshaller    {        <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">string</span> CreateJsonString(<span style="color: #0000ff">object</span> objectToSerialize)        {            var dataContractAttribute = Attribute.GetCustomAttribute(objectToSerialize.GetType(), <span style="color: #0000ff">typeof</span>(DataContractAttribute));

            var output = <span style="color: #0000ff">new</span> StringBuilder();            var json = <span style="color: #0000ff">new</span> DataContractJsonSerializer(objectToSerialize.GetType());            var ms = <span style="color: #0000ff">new</span> MemoryStream();            XmlDictionaryWriter writer = JsonReaderWriterFactory.CreateJsonWriter(ms);

            json.WriteObject(ms, objectToSerialize);            writer.Flush();

            <span style="color: #0000ff">byte</span>[] buffer = ms.GetBuffer();            var bytes = <span style="color: #0000ff">new</span> <span style="color: #0000ff">byte</span>[ms.Length];            <span style="color: #0000ff">for</span> (<span style="color: #0000ff">long</span> l = 0; l &lt; ms.Length; l++)            {                bytes[l] = buffer[l];            }

            <span style="color: #0000ff">return</span> Encoding.Default.GetString(bytes).Trim();        }    }}</pre>
<p></div>
<p>At this point let&#8217;s wire the JsonMarshaller into an MVC web application. For the sake of argument, I created a Controller to handle this. There is no reason it could not have been handled by the existing Client controller, and to be honest this is where I feel it should be for a consistent URL scheme. But when I started I wanted something slightly different from the standard Client views this was a case of me fighting what MVC was trying to give me by default,<strong> structure based on what it did (working with a client) then how it did it (being a data service).</strong></p>
<p>To illustrate, to view a client detail the url would be<br />http://localhost/Clients/Detail/45</p>
<p>and I wanted to get a list of clients with last names starting with &#8220;Min&#8221; to look like:<br />http://localhost/Services/Clients/min</p>
<p>In the end I would have rather it be:<br />http://localhost/Clients/min</p>
<p>In it&#8217;s current state I ended up with:<br />http://localhost/Services/GetClientsByLastName/min</p>
<p>Routing semantics, do what&#8217;s best for your app, I just wanted to explain what I&#8217;ve got going on here to avoid confusion as MVC is a big believer in naming by convention.</p>
<p>Below are the Client Model and the Services Controller:</p>
<p><strong>Client Model</strong></p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"><span style="color: #0000ff">using</span> System.Collections.Generic;<span style="color: #0000ff">using</span> System.Linq;<span style="color: #0000ff">using</span> System.Runtime.Serialization;<span style="color: #0000ff">using</span> MvcSandbox.Library.DataAccess;<span style="color: #0000ff">using</span> MvcSandbox.Library.Model;<span style="color: #0000ff">using</span> MvcSandbox.Library.Repositories;

<span style="color: #0000ff">namespace</span> MvcSandbox.Models{    [DataContract]    <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> ClientModel : ModelBase    {        [DataMember]        <span style="color: #0000ff">public</span> <span style="color: #0000ff">int</span> ClientId { get; set; }

        [DataMember]        <span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span> FirstName { get; set; }

        [DataMember]        <span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span> LastName { get; set; }

        [DataMember]        <span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span> ClientCode { get; set; }

        <span style="color: #0000ff">public</span> ClientModel() { }

        <span style="color: #0000ff">public</span> ClientModel(<span style="color: #0000ff">int</span> clientId)        {            LoadFromDataEntity((Clients)Repository.Get(clientId));        }

        <span style="color: #0000ff">public</span> ClientModel(Clients client)        {            LoadFromDataEntity(client);        }

        <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> List GetAllClients()        {            <span style="color: #0000ff">return</span> (from Clients client <span style="color: #0000ff">in</span> <span style="color: #0000ff">new</span> ClientRepository().FindAll(20)                    select <span style="color: #0000ff">new</span> ClientModel                               {                                   ClientCode = client.ClientCode,                                   ClientId = client.ClientID,                                   FirstName = client.FirstName,                                   LastName = client.LastName                               }).ToList();        }

        <span style="color: #0000ff">private</span> <span style="color: #0000ff">void</span> LoadFromDataEntity(Clients client)        {            DataEntity = client;

            <span style="color: #0000ff">if</span> (client == <span style="color: #0000ff">null</span>)            {                ClearModelFields();                <span style="color: #0000ff">return</span>;            }

            ClientId = DataEntity.ClientID;            FirstName = DataEntity.FirstName;            LastName = DataEntity.LastName;            ClientCode = DataEntity.ClientCode;        }

        <span style="color: #0000ff">public</span> <span style="color: #0000ff">override</span> <span style="color: #0000ff">void</span> UpdateDataEntityFromModel()        {            DataEntity.ClientID = ClientId;            DataEntity.FirstName = FirstName;            DataEntity.LastName = LastName;            DataEntity.ClientCode = ClientCode;        }

        <span style="color: #0000ff">public</span> <span style="color: #0000ff">override</span> <span style="color: #0000ff">void</span> ClearModelFields()        {            FirstName = <span style="color: #0000ff">string</span>.Empty;            LastName = <span style="color: #0000ff">string</span>.Empty;            ClientCode = <span style="color: #0000ff">string</span>.Empty;            ClientId = 0;        }    }}</pre>
<p></div>
<p><strong>The Client Model Base Class</strong></p>
<p><strong></strong></p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"><span style="color: #0000ff">using</span> System;<span style="color: #0000ff">using</span> System.Data.Objects.DataClasses;<span style="color: #0000ff">using</span> System.Runtime.Serialization;<span style="color: #0000ff">using</span> MvcSandbox.Library.Helpers;<span style="color: #0000ff">using</span> MvcSandbox.Library.Repositories;

<span style="color: #0000ff">namespace</span> MvcSandbox.Library.Model{    [DataContract]    <span style="color: #0000ff">public</span> <span style="color: #0000ff">abstract</span> <span style="color: #0000ff">class</span> ModelBase : IModel        <span style="color: #0000ff">where</span> T : EntityObject        <span style="color: #0000ff">where</span> TU : RepositoryBase    {        <span style="color: #0000ff">protected</span> TU Repository = Activator.CreateInstance(<span style="color: #0000ff">typeof</span>(TU)) <span style="color: #0000ff">as</span> TU;        <span style="color: #0000ff">protected</span> T DataEntity;

        <span style="color: #cc6633">#region</span> Abstract Members

        <span style="color: #0000ff">public</span> <span style="color: #0000ff">abstract</span> <span style="color: #0000ff">void</span> ClearModelFields();

        <span style="color: #0000ff">public</span> <span style="color: #0000ff">abstract</span> <span style="color: #0000ff">void</span> UpdateDataEntityFromModel();

        <span style="color: #cc6633">#endregion</span>

        <span style="color: #cc6633">#region</span> Virtual Members

        <span style="color: #0000ff">public</span> <span style="color: #0000ff">virtual</span> <span style="color: #0000ff">void</span> Save()        {            UpdateDataEntityFromModel();            Repository.Save();        }

        <span style="color: #0000ff">public</span> <span style="color: #0000ff">virtual</span> <span style="color: #0000ff">string</span> ToJson()        {            <span style="color: #0000ff">return</span> JsonMarshaller.CreateJsonString(<span style="color: #0000ff">this</span>);        }

        <span style="color: #cc6633">#endregion</span>    }}</pre>
<p></div>
<p><strong>Services Controller</strong></p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"><span style="color: #0000ff">using</span> System;<span style="color: #0000ff">using</span> System.Collections.Generic;<span style="color: #0000ff">using</span> System.Linq;<span style="color: #0000ff">using</span> System.Text;<span style="color: #0000ff">using</span> System.Web;<span style="color: #0000ff">using</span> System.Web.Mvc;<span style="color: #0000ff">using</span> System.Web.UI.WebControls;<span style="color: #0000ff">using</span> MvcSandbox.Library.DataAccess;<span style="color: #0000ff">using</span> MvcSandbox.Library.Helpers;<span style="color: #0000ff">using</span> MvcSandbox.Library.Model;<span style="color: #0000ff">using</span> MvcSandbox.Models;

<span style="color: #0000ff">namespace</span> MvcSandbox.Controllers{    <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> ServicesController : Controller    {        <span style="color: #0000ff">public</span> ActionResult GetClientsByLastName(<span style="color: #0000ff">string</span> id)        {            var clientLists = <span style="color: #0000ff">new</span> ModelList();

            <span style="color: #0000ff">if</span> (String.IsNullOrEmpty(id))            {                ViewBag.Output = clientLists;            }            <span style="color: #0000ff">else</span>            {                <span style="color: #0000ff">string</span> lastName = id;

                var entities = <span style="color: #0000ff">new</span> it01_FSC1Entities();

                var cls = (from client <span style="color: #0000ff">in</span> entities.Clients                           <span style="color: #0000ff">where</span> client.LastName.StartsWith(lastName.Trim())                           orderby client.LastName                           select <span style="color: #0000ff">new</span> ClientModel()                                      {                                          ClientCode = client.ClientCode,                                          ClientId = client.ClientID,                                          FirstName = client.FirstName,                                          LastName = client.LastName                                      }).Take(20);

                clientLists.Items.AddRange(cls);            }

            Response.ContentType = <span style="color: #006080">"application/json"</span>;            Response.ContentEncoding = Encoding.UTF8;

            ViewBag.Output = JsonMarshaller.CreateJsonString(clientLists);            <span style="color: #0000ff">return</span> View();        }    }}</pre>
<p></div>
<p>Nothing really magical there. I would like to go on record stating that calling the data access layer directly in my Controller was an ugly time-saver, I haven&#8217;t moved it over to my ClientRepository where it belongs. The Repository insulates my front end / model code from being tied to the database structure. It uses the Entity Framework classes to populate models for me. The Model Base class illustrates some underpinnings of it which aren&#8217;t really relevant to the point of this post.</p>
<p>So basically, the Controller grabs the data, populates a class with a DataContract so I can use the JsonMarshaller to Json encode it. Of note in the controller is where it set&#8217;s the Response&#8217;s content-type to &#8220;application/json&#8221; and content-encoding to UTF-8. jQuery love&#8217;s it some UTF-8.</p>
<p>Once we have the results Json encoded, it sets an item in the ViewBag for use by the GetClientsByLastName View to pump the Json out to the client.</p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet">@{    Layout = <span style="color: #0000ff">null</span>;}@Html.Raw(ViewBag.Output)</pre>
<p></div>
<p>Heh, so little code on that last piece &#8216;eh <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p>At this point we are ready to consume the HTTP GET enabled data provider with a ClientSearch partial view. Which, is essentially a blue bar with a autocomplete enabled textbox on it to search for a client by last name.</p>
<p>This was the difficult piece. In retrospect, not because it was difficult but because with jQuery, if you&#8217;re not writing it everyday, you are forgetting how to write it everyday. And it&#8217;s been a while since I&#8217;ve been living the jQuery life, however, like a bicycle, you just get back on and pour through docs and examples until it sticks again.</p>
<p>Without further ado, the ClientSearch partial view:</p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet">&lt;script language=<span style="color: #006080">"javascript"</span> type=<span style="color: #006080">"text/javascript"</span>&gt;    <span style="color: #0000ff">var</span> clientSourceArray = [];

    <span style="color: #0000ff">function</span> GetClientData(searchTerm) {        <span style="color: #0000ff">var</span> url = <span style="color: #006080">"http://localhost:1909/Services/GetClientsByLastName/"</span> + searchTerm;        clientSourceArray = [];

        <span style="color: #0000ff">var</span> jqxhr = $.ajax({            url: url,            type: <span style="color: #006080">'GET'</span>,            dataType: <span style="color: #006080">'json'</span>,            async: <span style="color: #0000ff">false</span>,            success: <span style="color: #0000ff">function</span> (data, status, xhr) {                $.each(data, <span style="color: #0000ff">function</span> (i, clients) {                    $.each(clients, <span style="color: #0000ff">function</span> (i, client) {                        <span style="color: #0000ff">var</span> clientValue = client.LastName + <span style="color: #006080">', '</span> + client.FirstName + <span style="color: #006080">' ['</span> + client.ClientCode + <span style="color: #006080">']'</span>;                        clientSourceArray.push(clientValue);                    });                });            }        });

        <span style="color: #0000ff">return</span> clientSourceArray;    }

    $(document).ready(<span style="color: #0000ff">function</span> () {

        <span style="color: #008000">//set up the autocomplete form</span>        $(<span style="color: #006080">"#ClientLastName"</span>).autocomplete({            source: <span style="color: #0000ff">function</span> (searchTerm, callback) { callback(GetClientData(searchTerm.term)); },            delay: 100,            minLength: 2        });

        <span style="color: #008000">//set up the watermarks</span>        <span style="color: #0000ff">var</span> watermark = <span style="color: #006080">"Start Typing a Client's Lastname..."</span>;        <span style="color: #0000ff">var</span> inputElement = $(<span style="color: #006080">"#ClientLastName"</span>);        <span style="color: #0000ff">if</span> (inputElement.val() == <span style="color: #006080">""</span>) {            inputElement.css(<span style="color: #006080">"color"</span>, <span style="color: #006080">"#555555"</span>);            inputElement.css(<span style="color: #006080">"font-style"</span>, <span style="color: #006080">"italic"</span>);            inputElement.val(watermark);        }        inputElement.focus(<span style="color: #0000ff">function</span> () {            <span style="color: #0000ff">if</span> (<span style="color: #0000ff">this</span>.value == watermark) {                $(<span style="color: #0000ff">this</span>).css(<span style="color: #006080">"color"</span>, <span style="color: #006080">""</span>);                $(<span style="color: #0000ff">this</span>).css(<span style="color: #006080">"font-style"</span>, <span style="color: #006080">""</span>);                <span style="color: #0000ff">this</span>.value = <span style="color: #006080">""</span>;            }        }).blur(<span style="color: #0000ff">function</span> () {            <span style="color: #0000ff">if</span> (<span style="color: #0000ff">this</span>.value == <span style="color: #006080">""</span>) {                <span style="color: #0000ff">this</span>.value = watermark;                $(<span style="color: #0000ff">this</span>).css(<span style="color: #006080">"color"</span>, <span style="color: #006080">"#555555"</span>);                $(<span style="color: #0000ff">this</span>).css(<span style="color: #006080">"font-style"</span>, <span style="color: #006080">"italic"</span>);            }        });    });&lt;/script&gt;</pre>
<p></div>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"><span style="color: #0000ff">&lt;</span><span style="color: #800000">div</span> <span style="color: #ff0000">class</span><span style="color: #0000ff">="client-search-bar"</span><span style="color: #0000ff">&gt;</span>@Html.TextBox("ClientLastName", "", new Dictionary() { {"class", "client-last-name-input"} })<span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span></pre>
<p></div>
<p>So now a few comments about that, first, I&#8217;m looking for a code highlighter that works better and easier then the one I have&#8230; </p>
<p>Well the actual &#8220;html&#8221; portion is pretty easy, 1 div that uses the MVC HTML helper class to generate a textbox. I&#8217;ll also ignore the Watermarking code because it&#8217;s unrelated short of making a nicer looking textbox (arguably.) </p>
<p>The bulk of the work is done by the GetClientData() function, it makes an asynchrounous AJAX call to get the Json encoded data for the autocomplete control and the setting up of the actual autocomplete. Which in the end being pretty trivial as it can take a function that takes a searchTerm and a &#8220;Add an item to the list to be searched&#8221; callback function. The way it is written here, it works but it could be more succinctly done had I truly been in the jQuery zen place. As demonstrated on <a title="Example on consuming a JSON data service via jQuery's Autocomplete" href="http://net.tutsplus.com/tutorials/javascript-ajax/how-to-use-the-jquery-ui-autocomplete-widget/" target="_blank">http://net.tutsplus.com/tutorials/javascript-ajax/how-to-use-the-jquery-ui-autocomplete-widget/</a> in particular, Step 4: &#8220;Attaching the Autocomplete&#8221;</p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"><span style="color: #008000">//attach autocomplete</span>$(<span style="color: #006080">"#to"</span>).autocomplete({  

    <span style="color: #008000">//define callback to format results</span>    source: <span style="color: #0000ff">function</span>(req, add){  

        <span style="color: #008000">//pass request to server</span>        $.getJSON(<span style="color: #006080">"friends.php?callback=?"</span>, req, <span style="color: #0000ff">function</span>(data) {  

            <span style="color: #008000">//create array for response objects</span>            <span style="color: #0000ff">var</span> suggestions = [];  

            <span style="color: #008000">//process response</span>            $.each(data, <span style="color: #0000ff">function</span>(i, val){            suggestions.push(val.name);        });  

        <span style="color: #008000">//pass array to callback</span>        add(suggestions);    });}</pre>
<p></div>
<p>Yeah, well I&#8217;ll clean that up later. In the end it wasn&#8217;t that bad aside from my jQuery rustiness.</p>
<p>Hope this helps you, I know the journey has helped me!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2011/10/jquery-autocomplete-against-an-mvc-driven-json-data-provider/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DataContractJsonSerializer / Linq oddity? Nope, it&#8217;s just me :-(</title>
		<link>http://blog.johnminadeo.com/2011/10/datacontractjsonserializer-linq-oddity-nope-its-just-me/</link>
		<comments>http://blog.johnminadeo.com/2011/10/datacontractjsonserializer-linq-oddity-nope-its-just-me/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 05:11:16 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[code review]]></category>
		<category><![CDATA[oops]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2011/10/datacontractjsonserializer-linq-oddity-nope-its-just-me/</guid>
		<description><![CDATA[[Once again the code is on my other machine but…] So using Microsoft’s Entity Framework with .NET 4 as a data access layer, I select some entity Client objects properties that meet my criteria and take 20 via linq. Something &#8230; <a href="http://blog.johnminadeo.com/2011/10/datacontractjsonserializer-linq-oddity-nope-its-just-me/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>[Once again the code is on my other machine but…]</em></p>
<p>So using Microsoft’s Entity Framework with .NET 4 as a data access layer, I select some entity Client objects properties that meet my criteria and take 20 via linq. Something to the effect of:</p>
<p><font face="Courier New">var clientList = (rom client in entities.Clients where<br />client.LastName.StartsWith(“min”) select new ClientInfo() { LastName = client.LastName, FirstName = client.FirstName}).Take(20)</font></p>
<p>So far so good, nothing magical here. I then assign add it as a range to a new List&lt;ClientInfo&gt;</p>
<p><font face="Courier New">var clientInfos = new List&lt;ClientInfo&gt;();<br />clientInfos.AddRange(clientList);</font></p>
<p>When the DataContractJsonSerializer hits that list, it correctly does it, however it manages to add in quite a few \0 characters (that’s a null character) into the string which prevents it from properly being parsed by the built in jQuery JSON functions.</p>
<h1>Scratch that, I’m likely reading an entire memory stream in instead of just the used portion.</h1>
<p>Well, in the end, it’s a good idea to double check your thought process lest you be missing the real problem. I had hacked around my initial noticing of the \0’s by replacing them out of the string so I could move on and come back later and figure out what was wrong. Done and done. I’ll verify it of course but I bet you a dollar that’s it. Funny how things come to you out of the blue, like when you’re trying to complain about an oddity. Chances are, the oddity is you <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Open-mouthed smile" src="http://blog.johnminadeo.com/wp-content/uploads/2011/10/wlEmoticon-openmouthedsmile1.png"></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2011/10/datacontractjsonserializer-linq-oddity-nope-its-just-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Json responses in a MVC web application</title>
		<link>http://blog.johnminadeo.com/2011/10/json-responses-in-a-mvc-web-application/</link>
		<comments>http://blog.johnminadeo.com/2011/10/json-responses-in-a-mvc-web-application/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 04:52:00 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[.ashx]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[wcf]]></category>
		<category><![CDATA[web servuce]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2011/10/json-responses-in-a-mvc-web-application/</guid>
		<description><![CDATA[I am sure this is obvious to every web developer using Microsoft’s MVC implementation with asp.net, but for those looking to move from standard asp.net to an MVC platform, this might not come to mind. The scenario is, you want &#8230; <a href="http://blog.johnminadeo.com/2011/10/json-responses-in-a-mvc-web-application/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I am sure this is obvious to every web developer using Microsoft’s <a title="MVC on Wikipedia" href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller" target="_blank">MVC</a> implementation with asp.net, but for those looking to move from standard asp.net to an MVC platform, this might not come to mind.</p>
<p>The scenario is, you want to provide application data to a browser-side UI (for use with auto-complete textboxes, asynchronously updating UI controls (no server-side post-backs, things you use <a title="jQuery.com" href="http://www.jQuery.com" target="_blank">jQuery</a> or <a title="Ajax (programming) on Wikipedia" href="http://en.wikipedia.org/wiki/Ajax_(programming)" target="_blank">AJAX</a> for.) </p>
<h1>You’ve got a few options:</h1>
<ul>
<li>ASP.NET Web Service
<li>ASP.NET Web Page (.aspx)&nbsp; that returns raw data with an appropriate content-type
<li>ASP.NET HTTP Handler (.ashx) that returns raw data with an appropriate content-type
<li>WCF Web Service hosted under IIS
<li>in fact there are a ton of custom solutions you could use as well, I’m going to ignore them and stick with the Microsoft family of solutions.</li>
</ul>
<p>First, I’m going to throw out the ASP.NET Web Page option. Sure you can do it but it’s exactly the same the HTTP Handler but more efficient and only require the “code-behind” portion of a page, not the .aspx portion as you are returning raw data in whatever format (Json, Xml, csv, whatever.)</p>
<p>Now you have to consider your system interaction a bit. If you have multiple applications consuming the data, WCF is most likely the way to go. It supports multiple protocols (http, tcp/ip, msmq, etc.) If you have a native client and a web application consuming the data. It’s the way to go.</p>
<p>A standard ASP.NET Web Service would also be usable by both but would only support HTTP, but since you can get that functionality with a WCF service, it’s the way things are moving in Microsoft Land. Having said that, configuration of the services, behaviors, end-points is a <strong>pain in the @$$!</strong> From experience I can say it was easy to use the proxy classes generated by the service proxy but I am having a very hard time getting it to accept HTTP GET requests. If this was any of the other of the options, it would have been a no brainer (due to their limitations.) Complex problems take complex configuration solutions, nature of the beast.</p>
<p>It’s worth mentioning that native client’s can also consume http web services relatively easily, so if you have a lot of knowledge investment in standard web services and you only need to support web based clients then this isn’t a wrong choice at all.</p>
<p>If you find yourself in a situation where only your web application is going to be consuming your application data you can fall through to the simplest form. Make a Page or Handler in your application and directly serve it. Tapping in to get or post variables, cookies, session, it’s all there at your fingertips. It’s my favorite when I only have to worry about feeding the UI due to it’s ease of use.</p>
<h1></h1>
<h1>Enter the land of MVC</h1>
<p>First let’s just get it over with, you absolutely can use a .ashx page in a MVC web application on ASP.NET. You will need to add a new route to send it traffic but after that it works the same.</p>
<p>But since that flies in the face of MVC’s “do it this way, you’ll be happier in the end” (as some like to call “Best Practices” <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.johnminadeo.com/wp-content/uploads/2011/10/wlEmoticon-smile.png">) How can you do it the way MVC wants you to.</p>
<h2>Simply as it turns out!</h2>
<p>Well, first you make a new Controller and give it an Action. For my case I made a DataServiceController with a Action of “GetClientByLastName”. That does the work of fetching the data. </p>
<p>My model is a string containing a List of Client <a title="POCO on Wikipedia" href="http://en.wikipedia.org/wiki/POCO" target="_blank">POCO</a> classes which has been serialized to Json (through the magic of .NET 4.0’s inclusion of <a title="DataContractJsonSerializer on MSDN" href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json.datacontractjsonserializer.aspx" target="_blank">DataContractJsonSerializer</a>.) so I don’t need a custom model. </p>
<p>Then make a view with no format and not strongly typed and simply @HTML.Raw() write it out. You’ll also want to set the page response’s content-type to reflect what you’re be outputting. I did this in the Controller, I’m sure there are more way to do it.</p>
<p>Anyway, in the end, using easily coded, standard MVC stuff, I am able to get a Json fromatted list of client’s to work with from my UI simply by fetching from:</p>
<p>[<em>warning, this link won’t resolve</em>] <a href="http://mydomin.com/clients/min">http://mydomin.com/clients/min</a></p>
<p>And I get a list of at most 20 client’s whose last name begin with “min”. Slick enough for me. Anyway hope it helps, I’ll update this when I have some code samples but the concept is easy. I’m embarrassed it took me so long to put two and two together.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2011/10/json-responses-in-a-mvc-web-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Job decisions -or- Problems I never have</title>
		<link>http://blog.johnminadeo.com/2011/10/job-decisions-or-problems-i-never-have/</link>
		<comments>http://blog.johnminadeo.com/2011/10/job-decisions-or-problems-i-never-have/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 04:50:55 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[evaluating job offers]]></category>
		<category><![CDATA[job search]]></category>
		<category><![CDATA[living]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2011/10/job-decisions-or-problems-i-never-have/</guid>
		<description><![CDATA[So the past couple of weeks have been interesting for me regarding career options. Perhaps that’s not the right phrase, my career is the same (Software Development, or as we real mean in the trenches say, Programming), the difference is &#8230; <a href="http://blog.johnminadeo.com/2011/10/job-decisions-or-problems-i-never-have/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So the past couple of weeks have been interesting for me regarding career options. Perhaps that’s not the right phrase, my career is the same (Software Development, or as we real mean in the trenches say, Programming), the difference is for whom I will be shilling (and I mean that in only the loving-est of ways <img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-style: none;" src="http://blog.johnminadeo.com/wp-content/uploads/2011/10/wlEmoticon-openmouthedsmile.png" alt="Open-mouthed smile" /> )</p>
<p>But first, a little background. For the past 3 years I have been a contract developer (with the exception of a six moth stint at a marketing company that was a bad fit for me.) Some of that time I did some Independent contracting, but the rest is W2 work from various consulting companies in the vein of temp work (e.g. I was not an in house employee, there was no bench, I was on site at a client for them or I was in the unemployment line looking for the next opportunity.)</p>
<p>It’s not a bad life, however it also isn’t awesome. It used to be, most jobs in my field were full time permanent employee jobs and contractors were called in for special skill sets or to help out with important things that were time sensitive. You might only work eight out of twelve months, but you would charge a premium rate to hold you over when the contract ran out. With the economy as it is these days (years?) many of the permanent positions were removed and replaced with contractors. Of course this flooded the contracting scene and it’s hard to ask for $100 / hour when there are 20 other guys who want to eat and will do it for $30.</p>
<p>Don’t get me wrong, there are specialty contracting gigs that pay very very well, however you need to be a specialist in whatever sector that is. Specialization can improve your bottom line, but can also remove a lot of options because you only do one thing, albeit you do it very well.</p>
<p>I am what I consider to be a Programming “Generalist”. I know a lot of programming languages and technology and can get the job done across the board. Having said that however, I am not the guy you call when you want a security system for million concurrent users architected (although I could implement it given a designed system <img class="wlEmoticon wlEmoticon-winkingsmile" style="border-style: none;" src="http://blog.johnminadeo.com/wp-content/uploads/2011/10/wlEmoticon-winkingsmile.png" alt="Winking smile" />)</p>
<p>At any rate, very recently I received not one, not two, but three different offers from three different employers, and get this, all on the same day. I have never been in this position before. Hell, I have never been in a position with two offers in the same general time period that would have been close enough for me to actually pick one over the other. I have been very fortunate in being able to keep my unemployed time low, but never have I had to choose. I tend to work a job until I’m fed up and quit or downsized.</p>
<p>Well at first I was quite thrilled, it’s nice to have options. So I did what any analytical person does. I fired up excel and ran the numbers. So far so good, there is a clear winner.</p>
<p>Then came the hard part. The non-financial pros and cons lists. The creation of the lists is not really that hard. The difficulty is really having to weigh and prioritize what is important to your happiness and well being and then deciding the risk value of having to take up a con or give up a pro.</p>
<p>For example, maybe you need time flexibility to be able to get your kids where they need to be, maybe their mother could pick up the slack and it’s a non-issue. Maybe you like a longer commute to allow you to decompress after a day of working, maybe you would rather work from home.</p>
<p>Sometimes when comparing two pros and cons list, some of these items cancel each other out. When they don’t you have to decide what makes it worth while to you to overcome the risk of not having it.</p>
<p>And finally, the hardest part of all, actually picking one. I guess that I had come to rely on not having to make a choice and accepting whatever came my way because I have responsibilities I need to honor, and obligations to keep and it is easier accept what you need when you need it then it is to blame yourself for making a bad choice.</p>
<p>In the end, making a bad choice is fine, it happens, it is how we learn. Don’t be afraid of it, do the math, make the lists, make a call and move on. Maybe you’ll need to change course at some point down the line, but that is life. Rest easy knowing you’ve done your due diligence and did the best you could. The rest is the adventure!</p>
<p>I think my friend George hits the nail on the head with this blog post <a title="OODA Loop" href="http://blog.vec.com/2011/09/29/ooda-loop/" target="_blank">OODA Loop</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2011/10/job-decisions-or-problems-i-never-have/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>If This Then That [ IFTTT.com ] &#8211; A MUST try!</title>
		<link>http://blog.johnminadeo.com/2011/09/if-this-then-that-ifttt-com-a-must-try/</link>
		<comments>http://blog.johnminadeo.com/2011/09/if-this-then-that-ifttt-com-a-must-try/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 03:49:32 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Recommend]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[amazing]]></category>
		<category><![CDATA[web apps]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/?p=172</guid>
		<description><![CDATA[I&#8217;ve been hearing about ifttt for a few weeks now so I thought I would pop on by to check it out. To say it is freakin&#8217; amazing is grossly understating the matter. In a nut shell, the site allows &#8230; <a href="http://blog.johnminadeo.com/2011/09/if-this-then-that-ifttt-com-a-must-try/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been hearing about ifttt for a few weeks now so I thought I would pop on by to check it out. To say it is <strong>freakin&#8217; amazing</strong> is grossly understating the matter.</p>
<p>In a nut shell, the site allows you to pick events supported by various web applications (the <strong>This</strong> portion of IFTTT) and push information from said event to other various web applications (the <strong>That</strong> component).</p>
<p>For example, <strong>If</strong> I post a new blog entry here <strong>Then</strong> tweet the URL and title of the blog post to my twitter account. If you saw this post on twitter, that is in fact how it got there, it was my first test of the IFTTT.</p>
<p>It supports many web applications such as Twitter, Facebook, WordPress, RSS feeds, LastFM, Craigslist, SMS messaging, the list goes on an on (No Google+ yet, but I assume it is because the API has not been formally released yet). It&#8217;s like playing with legos and you can build exactly what you need.</p>
<p>So far, the best treatment of how it works and examples I&#8217;ve seen has been from Microsoft&#8217;s Scott Hanselman, his blog post on the matter is terrific: <a href="http://www.hanselman.com/blog/EssentialIFTTTIfThisThenThatProgrammingWorkflowsForHumansUsingTheWebsSocialGlue.aspx">Scott&#8217;s IFTTT post</a></p>
<p>I strongly urge you to investigate <a title="http://ifttt.com" href="http://ifttt.com">ifttt.com</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2011/09/if-this-then-that-ifttt-com-a-must-try/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YSlow, an awesome tool that always makes you feel sad</title>
		<link>http://blog.johnminadeo.com/2011/09/yslow-an-awesome-tool-that-always-makes-you-feel-sad/</link>
		<comments>http://blog.johnminadeo.com/2011/09/yslow-an-awesome-tool-that-always-makes-you-feel-sad/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 06:01:29 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[blog.johnminadeo.com]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[blog management]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[seo setup]]></category>
		<category><![CDATA[tweaks]]></category>
		<category><![CDATA[yslow]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/?p=165</guid>
		<description><![CDATA[I just ran YSlow on my site&#8230; It&#8217;s a great tool with real help on speeding up your site. But invariably, it always punches ya in the gut when your head is turned with a D or F. The downside &#8230; <a href="http://blog.johnminadeo.com/2011/09/yslow-an-awesome-tool-that-always-makes-you-feel-sad/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I just ran <a title="YSlow" href="http://developer.yahoo.com/yslow/help/" target="_blank">YSlow </a>on my site&#8230; It&#8217;s a great tool with real help on speeding up your site. But invariably, it always punches ya in the gut when your head is turned with a D or F.</p>
<p>The downside of not writing your own publishing platform, various systems do things differently and some are more flexible than others.</p>
<p>I&#8217;m using WordPress here now and it was pretty easy to switch on the Google analytics, but it did essentially require me modifying the Theme&#8217;s code, and I was very surprised there wasn&#8217;t a built in way to add custom scripts to headers / footers.</p>
<p>At any rate, I will affect what I can but here&#8217;s my site&#8217;s report card as of now, it ranked a C with a 97 score, I inadvertently cut that off the screenshot. It breaks down below. Overall, could be worse.</p>
<p>I will follow up with some tweaks over the next few weeks as I experiment with the SEO and Caching modules WordPress supports.</p>
<div id="attachment_166" class="wp-caption alignnone" style="width: 281px"><a href="http://blog.johnminadeo.com/wp-content/uploads/2011/09/yslow.png"><img class="size-full wp-image-166" title="blog.johnminadeo.com's YSlow  score" src="http://blog.johnminadeo.com/wp-content/uploads/2011/09/yslow.png" alt="blog.johnminadeo.com's YSlow score" width="271" height="656" /></a><p class="wp-caption-text">My blog&#39;s score, passing but could be better</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2011/09/yslow-an-awesome-tool-that-always-makes-you-feel-sad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>To launch a rocket</title>
		<link>http://blog.johnminadeo.com/2011/09/to-launch-a-rocket/</link>
		<comments>http://blog.johnminadeo.com/2011/09/to-launch-a-rocket/#comments</comments>
		<pubDate>Sun, 04 Sep 2011 05:50:04 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Family]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Model Rocketry]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/?p=28</guid>
		<description><![CDATA[When I was a kid, and I want to say around 11 or 12, my friends and I used to all go out and get model rockets and spend the weekends building them and launching them. If you&#8217;ve never built &#8230; <a href="http://blog.johnminadeo.com/2011/09/to-launch-a-rocket/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When I was a kid, and I want to say around 11 or 12, my friends and I used to all go out and get model rockets and spend the weekends building them and launching them. If you&#8217;ve never built one, you really are missing out.</p>
<p>I can&#8217;t really do justice to the feeling of watching a rocket you&#8217;ve built with your own hands take take off in a small blast of fire and smokey thrust and the unadulterated sound of speed as it flies off the launch plate into the sky after you&#8217;ve done the countdown and press the launch button. It jets up quickly and then hangs for a moment before the engine fires again to force the nosecone out which brings the parachute with it. There is a moment of worry before it happens, will it actually pop it out, where will the wind take it? And all you can do is watch and wait for it to lazily drift back to earth for you to retrieve it. And the the thrill of picking it up off the ground (or out of a tree) and seeing it&#8217;s just fine and wants to fly again. It&#8217;s awesome and it makes me wonder what the folks at NASA used to feel before money and war became more important then science and exploration.</p>
<p>My son and I have been building model rockets for a few years now, it&#8217;s something we can do together and it also requires a bit of precision and working with tools so it is a good opportunity to demonstrate teamwork and longer project skills as well. We like to build them and paint them, sometimes we use the right colors, sometimes we get artistic, it&#8217;s really nice and I love it (I&#8217;m pretty sure he does too <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' />  )</p>
<p>He got four rockets for his birthday last year, which is in the winter, so it gave us a good amount of time to build and paint them. These are all Estes brand rockets, I assume they have competitors but Estes is the only name I can ever remember hearing. There was a Big Bertha, an Amazon, a Crossfire. There is a fourth, but we haven&#8217;t built it yet.</p>
<p>So today, my son, my friend, and myself went out in search of the perfect field to launch them from. My son and I have built and launched a number o9f rockets in the past, but all of my old launch spots are not around or can&#8217;t be used for that anymore and for the say past 5 rockets we&#8217;ve built and launched, we&#8217;ve only recovered one, that&#8217;s right 1 single successful launch and recovery. It&#8217;s all my fault in bad spot picking, but I tell you, sometimes you just gotta take a chance. Sadly, never worked out well for us in this regard.</p>
<p>My friend to the rescue! Recently, at a cookout, I had mentioned my dillema to my friend and he had two spots that sounded like prime locations, <strong>and</strong> they were in my area, always a win with that.</p>
<p>So my son and I picked up my buddy and off we went. On the way to spot 1, an old polo field, we came across a potential field to try, but on closer inspection, the brush was too high, we&#8217;d never find the rocket once it touched back down.</p>
<p>As we are pulling up to the old polo field, a police car pulls up and sets up shop for a speed trap, it was a damn good spot for the police, but I felt a little nervous about walking past him with ordinance (the rocket engines)  as well as the rockets. I am not sure of the laws in the are for launching model rockets and we decided better to play it safe than sorry.</p>
<p>Spot number 2 is an abandoned small airport. Well I&#8217;m not even sure the building are there anymore but the runway is. However, to get to the place you need to park in a local metro park and hike through the woods. The only parking area however was closed and gated up today. Very disappointing, I was actually hoping we would be able to launch here for the coolness factor alone.</p>
<p>Going deep, my friend pulled one more spot out of the air, but cautioned it is usually pretty busy, but at this point my son is getting antsy, and darn it, I want to fly a rocket, so we give it a go.</p>
<p>The place was absolutely empty, huge field, no trees in the area, everything you could ask for! It was on my friends! I built the launching pad while my son prepped the first rocket, the Amazon, we were pumped. It launched like a dream! The wind had picked up slightly since we first set up the pad, so it did drift a bit with the parachute on it&#8217;s way down and of course landed in the only tree around&#8230; Fortunately we found a long piece of 1 inch PVC  tube that we were able to poke it out of the tree with.</p>
<p>I mostly had A engines (which are the weakest and meant for small and light rockets) so we tried the Big Bertha and the Amazon again with an A engine. Don&#8217;t do this, it is sad, they are <strong>way too damn heavy</strong> for A engines. Don&#8217;t get me wrong it&#8217;s always cool to launch a rocket but they barely got high enough of the ground to eject their parachutes before touching back down in a very unflattering low arch. They really should have mid grade B engines at the least, and C&#8217;s worked great!</p>
<p>We launched the crossfire a twice as well. The A engines worked great there. The second crossfire launch (and last of the day) did encounter a problem, the shock-cord (a fat rubber band that hold the rocket to the nosecone) was damaged in the building process and got caught during ejection with the nosecone, this caused the flash paper to burn and also burned the parachute. Now these things are thing plastic parachutes so it&#8217;s not a big deal at all and at least it can be repaired, unlike a rocket you never recover <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Anyway, it was a great day thanks to everybody involved. Can&#8217;t wait for the next time, hopefully I will have some pictures to post soon!</p>
<p><em>[Update: 9/4/2011]</em> My friend uploaded his pictures and video, Thanks! <a href="http://blog.vec.com/2011/09/04/love-and-rockets/">http://blog.vec.com/2011/09/04/love-and-rockets/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2011/09/to-launch-a-rocket/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello (again)</title>
		<link>http://blog.johnminadeo.com/2011/09/hello-again/</link>
		<comments>http://blog.johnminadeo.com/2011/09/hello-again/#comments</comments>
		<pubDate>Sat, 03 Sep 2011 04:07:27 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[about]]></category>
		<category><![CDATA[info]]></category>
		<category><![CDATA[john minadeo]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/?p=13</guid>
		<description><![CDATA[Hello! First, a little about myself. I&#8217;m a 39 year old male software developer. I live in the greater Cleveland area of Ohio. I have a pre-teen son who is the light of my life and truly an amazing little &#8230; <a href="http://blog.johnminadeo.com/2011/09/hello-again/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hello! <a href="http://blog.johnminadeo.com/wp-content/uploads/2011/09/IMG_3288.jpg" target="_blank"><img class="alignleft size-full wp-image-14" title="Me and Ruby" src="http://blog.johnminadeo.com/wp-content/uploads/2011/09/IMG_3288-t.jpg" alt="Me and Ruby" /></a></p>
<p>First, a little about myself. I&#8217;m a 39 year old male software developer. I live in the greater Cleveland area of Ohio.</p>
<p>I have a pre-teen son who is the light of my life and truly an amazing little guy (bias aside, I swear <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ) He and his mom moved back here from being out of state for 9 years and he just started his second new school in under a year (albeit with a summer off in between) and he&#8217;s doing great, I am so proud.</p>
<p>I am divorced and have a very good relationship with my ex-wife, through much work on both sides (believe you me, I can be annoying <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' />  )</p>
<p>I live with my girlfriend and her two teen children. Well actually one, as the other is off to college.My son splits his time between his mother and I.</p>
<p>I am also in the process of buying a house. Something I have been quite not interested in for, well, as long as I can remember. There just wasn&#8217;t a point until I lived in the same location as my son. Plus I guess I always felt like I wasn&#8217;t &#8220;Adult&#8221; enough. Total cop out, I know but I&#8217;ve gotten past that.</p>
<p>I&#8217;ve spent the last 3 years primarily doing contracting work in the greater Cleveland area. Times have been tight but me and mine have been making it. The one saving grace it really has is though, no matter how bad a gig might be, you know sooner or later you are done, which makes it not as bad. And when you do actually come in to a nice place with great people, it&#8217;s wonderful, but sadly sooner or later, you&#8217;re gone.</p>
<p>I play video games (mostly on the PC), and sometimes with an XBox 360 controller (Arkham Asylum 4TW) I primarily enjoy first person shooters, though I can&#8217;t stand FPS War Simulation games (like Call of Duty, etc&#8230;) It&#8217;s a game, I don&#8217;t want to be dead after being shot once. I already have that, it&#8217;s called Real Life, and the respawn sucks.</p>
<p>There you have it, so anything else you come across on my blog is coming from me, in this place (which I love and would not trade anything for).</p>
<p>I primarily started this blog because I don&#8217;t write enough or talk enough about things that are on my mind and I would like to change that.</p>
<p>What about you?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2011/09/hello-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rolling down I-77 South towards Charlotte, NC</title>
		<link>http://blog.johnminadeo.com/2011/08/rolling-down-i-77-south-towards-charlotte-nc/</link>
		<comments>http://blog.johnminadeo.com/2011/08/rolling-down-i-77-south-towards-charlotte-nc/#comments</comments>
		<pubDate>Sun, 28 Aug 2011 17:45:35 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Family]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Road Trip]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2011/08/rolling-down-i-77-south-towards-charlotte-nc/</guid>
		<description><![CDATA[Right now, right this moment, I am a passenger on a road trip to Charlotte, NC. My girlfriend Rachel, is taking her 18 year old son Christian, to college. I just now passed over the Ohio river entering West Virginia. &#8230; <a href="http://blog.johnminadeo.com/2011/08/rolling-down-i-77-south-towards-charlotte-nc/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Right now, right this moment, I am a passenger on a road trip to Charlotte, NC. My girlfriend Rachel, is taking her 18 year old son Christian, to college.</p>
<p>I just now passed over the Ohio river entering West Virginia. Pretty cool bridge, sadly I did not get a picture.</p>
<p>Things feel somewhat surreal to me now, well this past week. Heck, who am I trying to kid, the whole damn year. My family has had a rough transition from 2010 into 2011 and I am so proud of them for pulling together and getting us all through it.</p>
<p>Things have really been coming together the past few weeks and all the hard work we have all put in is paying off. Truly I am blessed!</p>
<p>I can&#8217;t help but somewhat feel as though I am waiting for the &#8216;other&#8217; shoe to drop, but every day that it doesn&#8217;t, is one more day of confidence in the future. I suppose what feels so odd to me is, actually having the confidence to feel the comfort it brings. Truly my friends, you can NOT put a price on that!</p>
<p>And I&#8217;ve been noticing it more the older I get, big shocker there&#8230; It&#8217;s amazing that sone things, when told to you, make so much sense, but you really can&#8217;t fully grasp it until it happens to you.</p>
<p>I would like to thank my friends and my family for making my life possible <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Much love.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2011/08/rolling-down-i-77-south-towards-charlotte-nc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reverie</title>
		<link>http://blog.johnminadeo.com/2010/07/reverie/</link>
		<comments>http://blog.johnminadeo.com/2010/07/reverie/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 04:46:37 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Friends]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2010/07/reverie/</guid>
		<description><![CDATA[When I was nine, I got my first computer. It was a Texas Instruments TI 99/4A. It was awesome in it’s off white glory! A friend of mine had one and also had a number of game cartridges as well, &#8230; <a href="http://blog.johnminadeo.com/2010/07/reverie/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When I was nine, I got my first computer. It was a Texas Instruments TI 99/4A. It was awesome in it’s off white glory! A friend of mine had one and also had a number of game cartridges as well, he let me borrow some, that one could create games for it seemed amazing to me. I learned whatever version of basic it had and the art of writing programs is beauty to me. </p>
<p>I distinctly remember grasping the concept of multi-dimensional arrays under my friend’s tutelage while writing a character generator for Dungeons &amp; Dragons on a trusty Commodore 64. It was a rush to which I am at a loss to put into words. </p>
<p>He got me my first paying programming job at 16 converting a dbase database to delimited text. </p>
<p>He got me my first career job in an industry I have been faithful to for 17 years, though sometimes seemingly&#160; it not wanting me <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  at a small Internet Development Company, mostly B2B but some consumer sites. 6 years there I learned and poured my heart and soul into my craft. To this date, this was my favorite job. The people were amazing, the talent, again, amazing. Management, well not so much, at all really. </p>
<p>A number of jobs later, he again reached out and helped pull me into a online auto insurance comparative rating company. Again, amazing people, the talent could not have dreamed for a better sampling of professionals and expertise. Hands down, the #1 platform I have developed on, EVER. And I’ve done a lot over the years, ‘nuff said. This is my second favorite job. Again, management could have been better, and when I say that, I mean at the board level. Best developmental management I’ve had the privilege of working for, hands down. Oh sure, there are always room for improvement, but truly, very solid, balanced, and supportive.</p>
<p>That company has recently been acquired by a marketing company (whatever that truly is.) I have mixed emotions, on the one hand, I feel awful for the 150+ people, most of which I knew on some personal basis, even if in passing in the break room, are now out of a job in a poor economy.</p>
<p>On the other hand, for many, this is a great opportunity whether having just felt stuck or having the opportunity to move with the purchased company back to the new mother-ship in much sunnier locales then depressed Cleveland. To say my friend was lucky enough to have been offered a position, doesn’t really do it justice, he earned every last bit of the opportunity. </p>
<p>I wish them all luck, but in particular to my friend, without whom my life would be greatly diminished.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2010/07/reverie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tortoise SVN and BeyondCompare</title>
		<link>http://blog.johnminadeo.com/2010/05/tortoise-svn-and-beyondcompare/</link>
		<comments>http://blog.johnminadeo.com/2010/05/tortoise-svn-and-beyondcompare/#comments</comments>
		<pubDate>Wed, 26 May 2010 03:11:43 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[source control]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2010/05/tortoise-svn-and-beyondcompare/</guid>
		<description><![CDATA[Since I always forget the settings, here they are From: http://www.scootersoftware.com/download.php?c=kb_vcs [May 25th 2010] TORTOISESVN Diff Select Settings from Explorer&#039;s TortoiseSVN submenu. Switch to the Diff Viewer tab. Change the radio buttons from TortoiseMerge to External. In the path edits, &#8230; <a href="http://blog.johnminadeo.com/2010/05/tortoise-svn-and-beyondcompare/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Since I always forget the settings, here they are <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>From: <a href="http://www.scootersoftware.com/download.php?c=kb_vcs" target="_blank">http://www.scootersoftware.com/download.php?c=kb_vcs</a>     <br /><strong>[</strong><em>May 25th 2010</em><strong>]</strong></p>
<hr />
<h5><a href="http://tortoisesvn.tigris.org/" target="_blank">TORTOISESVN</a></h5>
<p><strong>Diff</strong></p>
<ol>
<li>Select <strong>Settings</strong> from Explorer&#039;s <strong>TortoiseSVN</strong> submenu. </li>
<li>Switch to the <strong>Diff Viewer</strong> tab. </li>
<li>Change the radio buttons from <strong>TortoiseMerge</strong> to <strong>External</strong>. </li>
<li>In the path edits, enter:      <br /><code>"C:\Program Files\Beyond Compare 3\BComp.exe" %base %mine /title1=%bname /title2=%yname /leftreadonly</code> </li>
</ol>
<p>To use Beyond Compare for image comparisons either replace the file C:\Program Files\TortoiseSVN\bin\TortoiseIDiff.exe with a copy of BComp.exe, or click the <strong>Advanced</strong> button on the<strong>Diff Viewer</strong> tab and add each image type&#039;s extension with the same command line as above.</p>
<p><strong>3-Way Merge</strong> (v3 Pro)</p>
<ol>
<li>Select <strong>Settings</strong> from Explorer&#039;s <strong>TortoisSVN</strong> submenu. </li>
<li>Switch to the <strong>Merge Tool</strong> tab. </li>
<li>Change the radio buttons from <strong>TortoiseMerge</strong> to <strong>External</strong>. </li>
<li>In the path edits, enter:      <br /><code>"C:\Program Files\Beyond Compare 3\BComp.exe" %mine %theirs %base %merged /title1=%yname /title2=%tname /title3=%bname /title4=%mname</code> </li>
</ol>
<p><strong>2-Way Merge</strong> (v3 Std, v2)</p>
<p>Use the same steps as above, but use the command line:    <br /><code>"C:\Program Files\Beyond Compare 3\BComp.exe" %mine %theirs /savetarget=%merged</code></p>
<hr />
<p> Here are some screenshots of the UI, from the Start button or Context menu, then the settings screen for diff and merge</p>
<p><a href="http://www.monkk.com/content/BlogMedia/BeyondCompareSvn/from-start-menu.png" target="_blank"><img src="http://www.monkk.com/content/BlogMedia/BeyondCompareSvn/from-start-menu.png" title="from-start-menu[1]" width="200" height="244" border="0" style="display: inline; border: 0px;" class="mceItem" /></a> <a href="http://www.monkk.com/content/BlogMedia/BeyondCompareSvn/context-menu.png" target="_blank"><img src="http://www.monkk.com/content/BlogMedia/BeyondCompareSvn/context-menu.png" alt="context-menu" title="context-menu" width="189" height="244" border="0" style="display: inline; border: 0px;" class="mceItem" /></a> <a href="http://www.monkk.com/content/BlogMedia/BeyondCompareSvn/settings.PNG" target="_blank"><img src="http://www.monkk.com/content/BlogMedia/BeyondCompareSvn/settings.PNG" alt="settings" title="settings" width="244" height="163" border="0" style="display: inline; border: 0px;" class="mceItem" /></a> </p>
<p><a href="http://www.monkk.com/content/BlogMedia/BeyondCompareSvn/merge.PNG" target="_blank"><img src="http://www.monkk.com/content/BlogMedia/BeyondCompareSvn/merge.PNG" alt="merge" title="merge" width="244" height="163" border="0" style="display: inline; border: 0px;" class="mceItem" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2010/05/tortoise-svn-and-beyondcompare/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hopefully seeing the light with Ektron CMS400.NET 8</title>
		<link>http://blog.johnminadeo.com/2010/05/hopefully-seeing-the-light-with-ektron-cms400-net-8/</link>
		<comments>http://blog.johnminadeo.com/2010/05/hopefully-seeing-the-light-with-ektron-cms400-net-8/#comments</comments>
		<pubDate>Mon, 17 May 2010 04:28:43 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[ektron]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2010/05/hopefully-seeing-the-light-with-ektron-cms400-net-8/</guid>
		<description><![CDATA[Well, as you may be able to tell, I have been, eating, drinking, and breathing Ektron lately. And I think I am beginning to see the light, by which I mean, how Ektron wants you to work within itself. It’s &#8230; <a href="http://blog.johnminadeo.com/2010/05/hopefully-seeing-the-light-with-ektron-cms400-net-8/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well, as you may be able to tell, I have been, eating, drinking, and breathing Ektron lately. And I think I am beginning to see the light, by which I mean, how Ektron wants you to work within itself. It’s a pretty powerful system. </p>
<p>What I ended up with is creating a “Widget” content directory, and a directory within for each widget that I am backing the configuration with the results of a Smartform instance. So, I created a Smartform per Widget, and assigned that widget to be the default and only Smartform for that directory, and requiring only Smartform content in that directory. The net result is, I can now hook into the existing&nbsp; way to simply call that directory with a “add” command via http request, and popup the authentic CMS400 smart form content editor, my widget just needs to create the content and persist the new content id. </p>
<p>That way, when the widget is dropped on the page, in edit view, you can create the configuration Smartform, and then subsequently, you are displayed the XSL representation with a Ektron Edit “button” to bring down the standard Ektron contextual edit options. Downside is having the right named controls to receive updates from the Ektron Editor Add New form closing. It’s a little messy but there is precedent reference code to look at in some other widgets (<em>hint: <strong>ContentBlock</strong></em>).</p>
<p>Additionally, I still need to create a page that will render a widget dynamically, actually, each widget will need a default template such that when the content itself is referenced alone (like an embed link) it will provide an appropriate rendering. The default behavior is to pass it though a rough xml render with nodes and elements and attributes, in a digestible format.</p>
<p>What you really need is what this page looks like alone, which doesn’t exist without the context of the widget, which needs to live on a page. Attaching it to a template with a dynamically populated Smartform of the correct type will yield a stand alone page for that Smartform instance. Complete with master page support at the .aspx level.</p>
<p>One could provide a pretty XSLT to render the Smartform’s configuration XML more attractively then the default, but for design / content author mode the default is passable, just not that pretty.</p>
<p>All in all it feels pretty right. It is an odd situation though, I’m providing Widgets to Content Authors, so since they are exposed to these Ektron built in editors, the consistency greatly affects the end result. Typically the widgets are meant to interface with external systems or provide relatively autonomous functionality and configuration wouldn’t be content. But my audience is a technical staff that will put the pages together using these widgets, and their customers will add the content in the pre-created locations and widget sets, so a more in depth configuration methodology was required. Turning out pretty well.</p>
<p>All in all, I like it, while it has some room for improvement. I think they should create a community edition.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2010/05/hopefully-seeing-the-light-with-ektron-cms400-net-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More on Ektron CMS400.NET</title>
		<link>http://blog.johnminadeo.com/2010/05/more-on-ektron-cms400-net/</link>
		<comments>http://blog.johnminadeo.com/2010/05/more-on-ektron-cms400-net/#comments</comments>
		<pubDate>Sun, 16 May 2010 04:02:30 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[ektron]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2010/05/more-on-ektron-cms400-net/</guid>
		<description><![CDATA[So far, most of the difficulties in customizing a Ektron is that a lot of the abstractions in a standard web application are already encapsulated by the system. For example, containers and controls such as images, content blocks, pages, forms, &#8230; <a href="http://blog.johnminadeo.com/2010/05/more-on-ektron-cms400-net/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So far, most of the difficulties in customizing a Ektron is that a lot of the abstractions in a standard web application are already encapsulated by the system. For example, containers and controls such as images, content blocks, pages, forms, the CMS already has a pretty rich set of data attached to these. The problem is, where the rubber hits the road, you need to provide a widget that will run in the Ektron platform and use the Ektron structures for persistence, and the UI rules will demand a title, body and image for numerous UI blocks, but Widget1 will only use an image, and Widget2 requires and image and body, but not a title, whereas Widget3 requires all 3. Ektron provides a “Smartform” concept that lets you define a structure of data via a graphical WYSIWYG form builder which represnets itself as XML. Once you have a Smartform, you can associate it with a content directory, then new instances of the smartform can be created and populated by the user then saved as a content item. </p>
<p>So great, I have a Audio Player widget, that takes has a resource selector smartform input control, which allows the user to pop up a graphical Content Folder browser, which can be limited to certain types of content and allow the user to pick. His choice is persisted when the new instance of the smartform is titled and saved.</p>
<p>Now I need to build 2 jukebox widgets, “Jukebox A” that has requires a audio resource and a body which is a standard HTML content resource (in ektron); and “Jukebox B” that just takes the audio resource. So, I can make a “Jukebox Item” Smartform, which has both an audio resource and a body resource and create 2 new smartform instances, based on the “Jukebox Item”. <strong>Roadblock…</strong> Since A requires both, and B only needs the one, the smartform allows us to require it, but we can’t put the same requirement on the body, because not both widgets will use it. Leaving you with the sad solution of spreading validation (and persistence) over the underlying items and the final widget edit UI. Custom HTML can be provided in the smartforms so custom javascript validation and manipulation could be performed, but doing that is the exception to the rule, not the standard way of doing it in Ektron. </p>
<p>Another <strong>problem</strong> using the smartforms are the when the resource picker control is used, it presents itself in terms of the CMS system’s content, where you’d like to restrict a resource to another smartform instance in particular such that if you have a Image Carousel Item and a New Item, you could restrict the content shown to contents that use that form as their base. Having said that, the content chooser is part of the workarea code, so it could be modified. The WorkArea is the code for the CMS system. It can be completely customized, the question is how far out of the box do you want to go, especially if you need to upgrade to a new version down the road.</p>
<p>It just seems like these would not be new complaints. I’m no SharePoint expert but this is why they have content types that can be created and treated like first class citizens, the less customizing of the actual CMS system, the better. </p>
<p>It’s not terrible, but something to consider.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2010/05/more-on-ektron-cms400-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A few thoughts on Ektron CMS400.NET</title>
		<link>http://blog.johnminadeo.com/2010/05/a-few-thoughts-on-ektron-cms400-net/</link>
		<comments>http://blog.johnminadeo.com/2010/05/a-few-thoughts-on-ektron-cms400-net/#comments</comments>
		<pubDate>Fri, 14 May 2010 04:31:53 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[ektron]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2010/05/a-few-thoughts-on-ektron-cms400-net/</guid>
		<description><![CDATA[So I recently started a new job at a decently sized software consultancy (excellent news and a great opportunity to be sure!) and my first project is at a large hospital in Cincinnati, Ohio. They currently are using Ektron CMS400.NET &#8230; <a href="http://blog.johnminadeo.com/2010/05/a-few-thoughts-on-ektron-cms400-net/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So I recently started a new job at a decently sized software consultancy (excellent news and a great opportunity to be sure!) and my first project is at a large hospital in Cincinnati, Ohio. They currently are using Ektron CMS400.NET 7.x host the site in question. While I have heard of Ektron in the past, I have not had that much time to work with it up until this point.</p>
<p>Disclaimer: I do not work for or represent Ektron Inc. in any way shape or form. I simple am a developer tasked with creating custom components that work within the client’s installation of the product and in general the entire client customization and implementation. I do have experience with a number of Content Management Systems on a variety of platforms, but I am in no means an expert and I am delighted to learn new products and platforms.</p>
<p>Let’s start with a little background. Ektron CMS400.NET is developed by Ektron Inc. (<a href="http://www.ektron.com/">http://www.ektron.com/</a>), located in Nashua, NH. Their flagship product is CMS400.NET and it’s a pretty light-weight and pretty powerful Content Management System. Ektron hosts a set of developer <a href="http://dev.ektron.com" target="_blank">community</a> for <a href="http://dev.ektron.com/forum.aspx" target="_blank">forums</a> and <a href="http://dev.ektron.com/blog.aspx" target="_blank">blogs</a>, etc. And they have a ton of documentation (literally, if you&nbsp; printed it out, it would likely weigh a ton) and videos, as well as tutorials. Essentially everything you’d hope to be in place for an indication of a well kept software project, and it’s here in spades. It’s relatively affordable when weighing it’s features and price with it’s competitors. </p>
<p>Now for the nitty grity bits. CMS400.NET is a .NET 2.0 Website project (ala Visual Studio 2005), it survives an upgrade to 2008 and 2010, I’ve tried them both with little to fix up. It’s written predominantly in VB.Net though does have a vbcode and cscode folders in the site’s app_code directory to allow extensibility in either. And of course custom class libraries can be written in any managed language and referenced from the website. The installation comes with a few Install Ektron Site options such as “CMS400 Developer Site”, “CMS400 Minimum Site”, etc. And will install the site into IIS, SQL Server (and it will offer the option to install SQL Server Express during the installation if it isn’t already present). The Developer site comes with a main Ektron Developer Documentation site, and a demo site for some medical company. The Minimum set up simply installs an empty Ektron installation, fully configured and ready for complete custom content. The Api is pretty extensive, I will give them that, hands down. I will complain about their documentation, they have a ton, and maybe every single piece of the platform is documented, it is literally too much to take in and there isn’t a homogenous set of documentation for it. But it is fully loaded. There are some CMS / Ektron specific words you may need to know if your not familiar with the syntax of the documentation (i.e. taxonomy, cms, smartforms, etc). Ramp up time getting familiar with the platform while creating a useable Ektron widget to personal spec was about two weeks, which I don’t think is unreasonable). </p>
<p>My primary dislikes are the Website Project visual studio application over the Web Application project choice. Now it comes as a fully functional website CMS web system. So classes typically sit in the app_code directory and are compiled but their source code is never published. So you drop your business objects in there and proceed to code some widgets. For ektron to recognize widgets, they must be in the root of a widget directory in the website folder hierarchy. So you discover you need to touch up the base class, your change recompiles the app_code, which the entire rest of the site relies on, so then it is recompiled. If you can stay out of the app_code you can recompile the website in a much shorter time. However, I’m a back-end guy so most of my time is in the plumbing that causes the nightmare recompilation. Ok, it’s maybe 3 minutes, but damn… feels like forever.</p>
<p>Beyond that, I have no gripes, it’s supports pretty much everything you want, in context content editing, metadata customization, easy widget infrastructure (they’re literally .ascx web user control files) and it’s a website, so you can fine tune the entire site. You don’t get the source code to the API but at that point you’d be adding your own so it doesn’t matter, but would have been a nice touch. Maybe I just missed that piece of documentation <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_surprised.gif' alt=':-o' class='wp-smiley' /> </p>
<p>Anyway, I’ll end it on a 2 thumbs up. I would recommend it to a company that couldn’t afford SharePoint, could customize the asp.net site, had a content editor plan in place. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2010/05/a-few-thoughts-on-ektron-cms400-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Release of MechWarrior 4 via MTX</title>
		<link>http://blog.johnminadeo.com/2010/05/free-release-of-mechwarrior-4-via-mtx/</link>
		<comments>http://blog.johnminadeo.com/2010/05/free-release-of-mechwarrior-4-via-mtx/#comments</comments>
		<pubDate>Tue, 04 May 2010 05:10:27 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[free game]]></category>
		<category><![CDATA[mechs]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2010/05/free-release-of-mechwarrior-4-via-mtx/</guid>
		<description><![CDATA[So as I was minding my own business surfing the interwebz, I notice this little excellent bit of gaming interest if you’re a fan of MechWarrior Apparently, Microsoft has released, for free, MechWarrior 4, here is the press release (at &#8230; <a href="http://blog.johnminadeo.com/2010/05/free-release-of-mechwarrior-4-via-mtx/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So as I was minding my own business surfing the interwebz, I notice this little excellent bit of gaming interest if you’re a fan of MechWarrior</p>
<p>Apparently, Microsoft has released, for free, MechWarrior 4, here is the press release (at least as of the time of it’s posting) <a href="http://mektek.net/projects/mw4/index.html">http://mektek.net/projects/mw4/index.html</a></p>
<p><em>[Click on image to enlarge]      <br /></em><a href="http://blog.monkk.com/sites/default/files/image_2.png" target="_blank"></a></p>
<p>The downside is, the delivery method. You seemingly can only get it via the MTX client, which is comparable to <a href="http://www.valvesoftware.com/" target="_blank">Valve Software’s</a> product: <a href="http://www.steampowered.com" target="_blank">Steam</a> where you simply choose from a list of games that are available for you to download, click on the Game and press the Install button:</p>
<p><em>[Click on image to enlarge]      <br /></em><a href="http://blog.monkk.com/sites/default/files/image_4.png" target="_blank"></a> </p>
<p>Unfortunately, the UI is very unresponsive and seems to go out to lunch for 30 seconds or more. Now to be fair, I am running 64bit Windows 7, so maybe 32bit or other OS&#039;s will have no problems… The UPNP doesn’t seem to work out of the box, nor was I able to get the torrent method of transfer (the default) to work, well period, I couldn’t get anything to actually download. Good theory, Valve has shown it, but this application needs to be a lot more stable or just go away and license steam. I’m open to distribution venues that are the easiest to use out of the box. No one is interested in punching wholes in firewalls manually when every other app can do it no problem… Frankly, shouldn’t have shipped as is. And even then it’s a beta version. I’m sure it seemed like a good idea at the time but….</p>
<p>I could be playing it now, if only it would download … sigh</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2010/05/free-release-of-mechwarrior-4-via-mtx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Attack of the Free-For-Non-Commercial-Use Game Engines!</title>
		<link>http://blog.johnminadeo.com/2009/11/attack-of-the-free-for-non-commercial-use-game-engines/</link>
		<comments>http://blog.johnminadeo.com/2009/11/attack-of-the-free-for-non-commercial-use-game-engines/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 16:45:00 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/11/attack-of-the-free-for-non-commercial-use-game-engines/</guid>
		<description><![CDATA[I just stumbled across this story on Slashdot announcing Epic’s release of a free version of it’s Unreal Engine for non-commercial uses [Epic Press Release: http://epicgames.com/press_releases/udk.html]. The story also points out that last week Unity also announced a free version &#8230; <a href="http://blog.johnminadeo.com/2009/11/attack-of-the-free-for-non-commercial-use-game-engines/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I just stumbled across this <a href="http://games.slashdot.org/story/09/11/05/1451256/Epic-Releases-Free-Version-of-Unreal-Engine" target="_blank">story</a> on Slashdot announcing Epic’s release of a free version of it’s Unreal Engine for non-commercial uses [Epic Press Release: <a href="http://epicgames.com/press_releases/udk.html" target="_blank">http://epicgames.com/press_releases/udk.html</a>]. The story also points out that last week Unity also announced a free version of their game engine, also for non-commercial games [Unity Press Release: <a href="http://unity3d.com/company/news/unity2.6-press.html" target="_blank">http://unity3d.com/company/news/unity2.6-press.html</a>].</p>
<p>It makes my heart swell to hear this! I’ve been a gamer (Console and PC, primarily PC) for well since my dad brought home our first Atari around 1978 (I may be a year or two off, I was 5 or 6 at the time) and I was hooked. Games are most likely the reason I chose Computer Programming as a career. I’ve been involved in game development as well. Not enough so that I work as a game developer, but enough that I do understand what it takes to get a game together (I am not a marketing guy, so I’m specifically talking about the Development portion of the process here.) You may have even played something I created [<em>perhaps a later post will include some elaboration</em>].</p>
<p>There are three types of Game Development companies in the world. One type that creates Game Engines and Game Content, ones that just creates Game Content, and ones that just create Game Engines.</p>
<p>Let me define Game Engine and Game Content</p>
<blockquote><ul>
<li>Game Content is&nbsp; <a href="http://en.wikipedia.org/wiki/3d_model#test" target="_blank">3d models</a>, <a href="http://en.wikipedia.org/wiki/Sprite_(computer_graphics)" target="_blank">2d sprites</a>, sound effects, music soundtracks, story lines, characters, character dialog, etc. </li>
<li>Game Engine shows the content to the game player and interacts with the player to turn his actions into what he is doing in the game (so the engine controls rendering to the computer screen, reading the game controllers, sending force feedback commands to the controller/joystick, tracking player and enemy health, move everything around using the in game version of the laws of physics, etc. </li>
</ul>
</blockquote>
<p>All game companies create Game Content, that is their Intellectual Property that they hope will sell enough copies of a game to pay them to make the next version of it. Some companies employ development staff that also creates the Game Engine that handles all their Game Content. These guys hope to sell enough copies to pay them to make the next version of it as well, but they hope so many copies are sold that other Game Content companies will buy their Game Engine and create their own Game Content for it and sell you another game. Finally, the companies that just create Game Engines hope to entice a Game Content company to buy their engine and use that for their content.</p>
<p>And this completely ignores the Hardware level of games which is really in the Console gaming realm. As one might suspect, these guys make hardware that can run Game Engines, so they try to sell their hardware platform to companies that make Game Engines.</p>
<p>The landscape has not always been like this. It used to be the Game Company would make the engine and the content, shop it to a publisher who put it on the store shelves (remember, this was back before the Internet.) What happened was, these guys actually started to make money selling games and more companies wanted in on the action. Eventually some suit figured out that it was cheaper to buy the license to use/modify an existing game engine and just pay employees to make content, and they were right! </p>
<p>I’m not trying to say that making content is easy, and I’m not saying they don’t have development staff to customize the engine to suit their needs and to also implement the rules the game runs under as they are completely different from one game to another. This is the code that gives you health when you get the mushroom power-up, or makes you jump higher and float to the ground when under the effects of a high jump spell. </p>
<p>This, in my mind IS the game, the Game Engine itself just runs it all as a platform. It is a pretty delineated and sensible distinction. It is this distinction that has allowed for the the different types of game companies to exist.</p>
<p><a href="http://www.monkk.com/content/BlogMedia/AttackoftheFreeForNonCommercialUseGameEn_9720/GameDiagram.jpg" target="_blank"><img src="http://www.monkk.com/content/BlogMedia/AttackoftheFreeForNonCommercialUseGameEn_9720/GameDiagram_thumb.jpg" alt="GameDiagram" title="GameDiagram" width="500" border="0" style="display: inline; border-width: 0px;" class="mceItem" /></a></p>
<p>So as you can see, Id made both the content and engine for Doom3, and the Engine for Quake4, that’s three revenue streams, and that’s just one game that uses the Doom3 engine. You get the point here.</p>
<p>Now what we are seeing is companies springing up that just create Game Engines and not an underlying title to showcase it. This is because more and more people are in the gaming industry to create content for these games. And they can undercut Id on the price which lowers the cost of getting into game development, which lowers the cost of games you and I buy.</p>
<p>Except, like the Apple App Store, more choices are just that more choices and it encourages shovel-ware because if you have five titles for sale you’re bound to sell more then just a single title, and it’s easier to make five titles by buying an engine then writing one. It is also good in the way if fosters competition at the top of the chain which means better engines for everybody! </p>
<p>At the very least the modding communities pleased to be able to actually get the hands into the engine itself rather then just the game functions it exposes. Very exciting!</p>
<p><!--<br />
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><br />
<rdf:Description rdf:about="http://blog.monkk.com/node/60" dc:identifier="http://blog.monkk.com/node/60" dc:title="Attack of the Free-For-Non-Commercial-Use Game Engines!" trackback:ping="http://blog.monkk.com/trackback/60" /><br />
</rdf:RDF><br />
&#8211;></p>
<div class="trackback-url">
<div class="box">
<h2>Trackback URL for this post:</h2>
<div class="content">http://blog.monkk.com/trackback/60</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/11/attack-of-the-free-for-non-commercial-use-game-engines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>“Find in Files” functionality from a bash shell</title>
		<link>http://blog.johnminadeo.com/2009/11/%e2%80%9cfind-in-files%e2%80%9d-functionality-from-a-bash-shell/</link>
		<comments>http://blog.johnminadeo.com/2009/11/%e2%80%9cfind-in-files%e2%80%9d-functionality-from-a-bash-shell/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 18:39:46 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[things i forget]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/11/%e2%80%9cfind-in-files%e2%80%9d-functionality-from-a-bash-shell/</guid>
		<description><![CDATA[Since I always forget how to do this I thought I’d just post it here This information is taken from http://www.athabascau.ca/html/depts/compserv/webunit/HOWTO/find.htm#EX03 [edit: the page is no longer serving here is a link to the archive.org's cached version] and is certainly more detailed &#8230; <a href="http://blog.johnminadeo.com/2009/11/%e2%80%9cfind-in-files%e2%80%9d-functionality-from-a-bash-shell/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Since I always forget how to do this I thought I’d just post it here <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>This information is taken from <a href="http://www.athabascau.ca/html/depts/compserv/webunit/HOWTO/find.htm#EX03" target="_blank">http://www.athabascau.ca/html/depts/compserv/webunit/HOWTO/find.htm#EX03</a> [<em>edit: the page is no longer serving here is a link to the <a href="http://web.archive.org/web/20101108082709/http://www.athabascau.ca/html/depts/compserv/webunit/HOWTO/find.htm" target="_blank">archive.org's cached version</a></em>] and is certainly more detailed then what I will post. So without further ado, :</p>
<p><strong><span style="text-decoration: underline;">Scenario 1:</span></strong> You want to find all files that contain the string “primary” in the current directory:</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<pre id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">find . -exec grep -q <span style="color: #006080;">"primary"</span> '{}' \<span style="color: #008000;">; -print</span></pre>
</div>
<p>and it will yield something like:</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<pre id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">./fix-ie.css./page.tpl.php./print.css./style-rtl.css./style.css./template.php</pre>
</div>
<p>&nbsp;</p>
<p><strong><span style="text-decoration: underline;">Scenario 2:</span></strong> You want to find all files that contain the string “primary” in the current directory and list the lines that contain your search term:</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<pre id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">find . -exec grep <span style="color: #006080;">"primary"</span> '{}' \; -print</pre>
</div>
<p>and it will yield something like (ignore the color coding…) :</p>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<pre id="codeSnippet" style="text-align: left; background-color: #f4f4f4; width: 100%; direction: ltr; overflow-x: visible; overflow-y: visible; border-style: none; padding: 0px; margin: 0em;"><span style="font-family: 'Courier New', courier, monospace; font-size: small;"><span style="font-size: 11px;">p "primary" '{}' \; -print ul.primary { ./fix-ie.css &lt;?php if (isset($primary_links)) : ?&gt; &lt;?php print theme('links', $primary_links, array('class' =&gt; 'links pri mary-links')) ?&gt; &lt;?php if ($tabs): print '&lt;ul class="tabs primary"&gt;'. $tabs .'&lt;/ul&gt;&lt;/di v&gt;'; endif; ?&gt; ./page.tpl.php ul.primary-links, ul.secondary-links, ./print.css ul.primary-links { ul.primary-links li { ul.primary { ul.primary li a, ul.primary li.active a, ul.primary li a:hover, ul.primary li a: visited, ul.primary li a:after { ul.primary li a, ul.primary li.active a, ul.primary li a:hover, ul.primary li a: visited, ./style-rtl.css ul.primary-links { ul.primary-links li { ul.primary-links li a, ul.primary-links li a:link, ul.primary-links li a:visited { ul.primary-links li a:hover, ul.primary-links li a.active { ul.primary, ul.primary li, ul.secondary, ul.secondary li { ul.primary { ul.primary li a, ul.primary li.active a, ul.primary li a:hover, ul.primary li a: visited, ul.primary li.active a, ul.primary li.active a:link, ul.primary li.active a:visi ted, ul.primary li a:hover, ul.primary li.active a, ./style.css return menu_primary_local_tasks(); ./template.php (uiserver):u37978795:~/hosted/drupal.monkk.com/themes/garland &gt; find . -exec gre p "primary" '{}' \; -print ul.primary { ./fix-ie.css &lt;?php if (isset($primary_links)) : ?&gt; &lt;?php print theme('links', $primary_links, array('class' =&gt; 'links pri mary-links')) ?&gt; &lt;?php if ($tabs): print '&lt;ul class="tabs primary"&gt;'. $tabs .'&lt;/ul&gt;&lt;/di v&gt;'; endif; ?&gt; ./page.tpl.php ul.primary-links, ul.secondary-links, ./print.css ul.primary-links { ul.primary-links li { ul.primary { ul.primary li a, ul.primary li.active a, ul.primary li a:hover, ul.primary li a: visited, ul.primary li a:after { ul.primary li a, ul.primary li.active a, ul.primary li a:hover, ul.primary li a: visited, ./style-rtl.css ul.primary-links { ul.primary-links li { ul.primary-links li a, ul.primary-links li a:link, ul.primary-links li a:visited { ul.primary-links li a:hover, ul.primary-links li a.active { ul.primary, ul.primary li, ul.secondary, ul.secondary li { ul.primary { ul.primary li a, ul.primary li.active a, ul.primary li a:hover, ul.primary li a: visited, ul.primary li.active a, ul.primary li.active a:link, ul.primary li.active a:visi ted, ul.primary li a:hover, ul.primary li.active a, ./style.css return menu_primary_local_tasks(); ./template.php (uiserver):u37978795:~/hosted/drupal.monkk.com/themes/garland &gt; find . -exec gre p -q "primary" '{}' \; -print ./fix-ie.css ./page.tpl.php ./print.css ./style-rtl.css ./style.css ./template.php (uiserver):u37978795:~/hosted/drupal.monkk.com/themes/garland &gt; less page.tpl.ph p (uiserver):u37978795:~/hosted/drupal.monkk.com/themes/garland &gt; find . -exec gre p -q "primary" '{}' \; -print ./fix-ie.css ./page.tpl.php ./print.css ./style-rtl.css ./style.css ./template.php (uiserver):u37978795:~/hosted/drupal.monkk.com/themes/garland &gt; find . -exec gre p "primary" '{}' \; -print ul.primary { ./fix-ie.css &lt;?php if (isset($primary_links)) : ?&gt; &lt;?php print theme('links', $primary_links, array('class' =&gt; 'links pri mary-links')) ?&gt; &lt;?php if ($tabs): print '&lt;ul class="tabs primary"&gt;'. $tabs .'&lt;/ul&gt;&lt;/di v&gt;'; endif; ?&gt; ./page.tpl.php ul.primary-links, ul.secondary-links, ./print.css ul.primary-links { ul.primary-links li { ul.primary { ul.primary li a, ul.primary li.active a, ul.primary li a:hover, ul.primary li a: visited, ul.primary li a:after { ul.primary li a, ul.primary li.active a, ul.primary li a:hover, ul.primary li a: visited, ./style-rtl.css ul.primary-links { ul.primary-links li { ul.primary-links li a, ul.primary-links li a:link, ul.primary-links li a:visited { ul.primary-links li a:hover, ul.primary-links li a.active { ul.primary, ul.primary li, ul.secondary, ul.secondary li { ul.primary { ul.primary li a, ul.primary li.active a, ul.primary li a:hover, ul.primary li a: visited, ul.primary li.active a, ul.primary li.active a:link, ul.primary li.active a:visi ted, ul.primary li a:hover, ul.primary li.active a, ./style.css return menu_primary_local_tasks(); ./template.php</span></span></pre>
</div>
<p>And there you have it, enjoy!</p>
<p>&nbsp;</p>
<div class="trackback-url">
<div class="box">
<h2>Trackback URL for this post:</h2>
<div class="content">http://blog.monkk.com/trackback/59</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/11/%e2%80%9cfind-in-files%e2%80%9d-functionality-from-a-bash-shell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fun with a batch file for starting and stopping &quot;Development&quot; related services</title>
		<link>http://blog.johnminadeo.com/2009/11/fun-with-a-batch-file-for-starting-and-stopping-development-related-services/</link>
		<comments>http://blog.johnminadeo.com/2009/11/fun-with-a-batch-file-for-starting-and-stopping-development-related-services/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 04:44:41 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[bat]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[windows command line]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/11/fun-with-a-batch-file-for-starting-and-stopping-development-related-services/</guid>
		<description><![CDATA[Here&#039;s the scenario: you are a programmer in both hobby and career, but you&#039;ve got other hobbies, like video games. But first and foremost, you are a programmer&#8230; So not only do you have a number of video games sucking &#8230; <a href="http://blog.johnminadeo.com/2009/11/fun-with-a-batch-file-for-starting-and-stopping-development-related-services/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here&#039;s the scenario: you are a programmer in both hobby and career, but you&#039;ve got other hobbies, like video games. But first and foremost, you are a programmer&#8230; So not only do you have a number of video games sucking up precious hard drive space, you have a full blown installation of Visual Studio, Sql Server Express, IIS, all running on your local machine. Come game time, you&#039;ve got all these services sitting around waiting to be used in some development, meanwhile you&#039;re trying to get max frames-per-second with Crysis&#8230;</p>
<p>Not a big deal, Windows+R then &quot;services.msc&quot; and those pesky services down, get your game on and then&#8230; Oh wait, some more development&#8230; Back to services.msc and turn them back on. Gets very old, very quick&#8230;</p>
<p>So I decided to do a little something about it, a very little something, I wrote a batch file to present a little start or stop menu and start up the services or shut them down. </p>
<p>Here is a list of services I felt like adding in there, there could be more&#8230; I could have turned off svncache, etc&#8230; I figured why bother&#8230; The list I used is:</p>
<ul>
<li>SQL Server (SQLEXPRESS)</li>
<li>SQL Server Browser</li>
<li>SQL Server VSS Writer</li>
<li>World Wide Web Publishing Service</li>
<li>IIS Admin Service</li>
<li>Machine Debug Manager</li>
</ul>
<div>and the code ends up looking like this:</div>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum1">   1:</span> ECHO off</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum2">   2:</span> CLS</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum3">   3:</span>&#160; </pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum4">   4:</span> <span style="color: #0000ff">IF</span> <span style="color: #006080">&quot;%1&quot;</span>==<span style="color: #006080">&quot;&quot;</span> GOTO MENU</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum5">   5:</span>&#160; </pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum6">   6:</span> SET M=%1</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum7">   7:</span> GOTO EVALUATEMODE</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum8">   8:</span>&#160; </pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum9">   9:</span> :MENU</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum10">  10:</span> ECHO.</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum11">  11:</span> ECHO ---------------------------------</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum12">  12:</span> ECHO Start or Stop the Dev Environment</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum13">  13:</span> ECHO ---------------------------------</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum14">  14:</span> ECHO  S : Start the dev environment services</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum15">  15:</span> ECHO  P : the dev environment services</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum16">  16:</span> ECHO  Q : <span style="color: #0000ff">Do</span> nothing and quit</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum17">  17:</span> ECHO.</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum18">  18:</span>&#160; </pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum19">  19:</span> SET /P M=Type S, P, or Q <span style="color: #0000ff">then</span> press Enter: </pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum20">  20:</span>&#160; </pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum21">  21:</span> :EVALUATEMODE</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum22">  22:</span> <span style="color: #0000ff">IF</span> <span style="color: #006080">&quot;%M%&quot;</span>==<span style="color: #006080">&quot;S&quot;</span> GOTO START</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum23">  23:</span> <span style="color: #0000ff">IF</span> <span style="color: #006080">&quot;%M%&quot;</span>==<span style="color: #006080">&quot;s&quot;</span> GOTO START</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum24">  24:</span> <span style="color: #0000ff">IF</span> <span style="color: #006080">&quot;%M%&quot;</span>==<span style="color: #006080">&quot;P&quot;</span> GOTO STOP</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum25">  25:</span> <span style="color: #0000ff">IF</span> <span style="color: #006080">&quot;%M%&quot;</span>==<span style="color: #006080">&quot;p&quot;</span> GOTO STOP</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum26">  26:</span> <span style="color: #0000ff">IF</span> <span style="color: #006080">&quot;%M%&quot;</span>==<span style="color: #006080">&quot;Q&quot;</span> GOTO CLEANUP</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum27">  27:</span> <span style="color: #0000ff">IF</span> <span style="color: #006080">&quot;%M%&quot;</span>==<span style="color: #006080">&quot;q&quot;</span> GOTO CLEANUP</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum28">  28:</span> <span style="color: #0000ff">IF</span> <span style="color: #006080">&quot;%M%&quot;</span>==<span style="color: #006080">&quot;/?&quot;</span> GOTO HELP</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum29">  29:</span> <span style="color: #0000ff">IF</span> <span style="color: #006080">&quot;%M%&quot;</span>==<span style="color: #006080">&quot;-?&quot;</span> GOTO HELP</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum30">  30:</span> <span style="color: #0000ff">IF</span> <span style="color: #006080">&quot;%M%&quot;</span>==<span style="color: #006080">&quot;--help&quot;</span> GOTO HELP</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum31">  31:</span>&#160; </pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum32">  32:</span> ECHO Invalid Mode: %M%</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum33">  33:</span> GOTO MENU</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum34">  34:</span>&#160; </pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum35">  35:</span> :START</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum36">  36:</span>   net start <span style="color: #006080">&quot;SQL Server (SQLEXPRESS)&quot;</span></pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum37">  37:</span>   net start <span style="color: #006080">&quot;SQL Server Browser&quot;</span></pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum38">  38:</span>   net start <span style="color: #006080">&quot;SQL Server VSS Writer&quot;</span></pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum39">  39:</span>   net start <span style="color: #006080">&quot;World Wide Web Publishing Service&quot;</span></pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum40">  40:</span>   net start <span style="color: #006080">&quot;IIS Admin Service&quot;</span></pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum41">  41:</span>   net start <span style="color: #006080">&quot;Machine Debug Manager&quot;</span></pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum42">  42:</span>   GOTO CLEANUP</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum43">  43:</span>&#160; </pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum44">  44:</span> :STOP</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum45">  45:</span>   net stop <span style="color: #006080">&quot;SQL Server (SQLEXPRESS)&quot;</span></pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum46">  46:</span>   net stop <span style="color: #006080">&quot;SQL Server Browser&quot;</span></pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum47">  47:</span>   net stop <span style="color: #006080">&quot;SQL Server VSS Writer&quot;</span></pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum48">  48:</span>   net stop <span style="color: #006080">&quot;World Wide Web Publishing Service&quot;</span></pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum49">  49:</span>   net stop <span style="color: #006080">&quot;IIS Admin Service&quot;</span></pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum50">  50:</span>   net stop <span style="color: #006080">&quot;Machine Debug Manager&quot;</span></pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum51">  51:</span>   GOTO CLEANUP</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum52">  52:</span>   </pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum53">  53:</span> :HELP</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum54">  54:</span>   ECHO Usage:</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum55">  55:</span>   ECHO dev-environ.bat [Mode \= S | P | Q]</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum56">  56:</span>   ECHO   Mode: S = Start the dev environment services</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum57">  57:</span>   ECHO   Mode: P = Stop the dev environment services</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum58">  58:</span>   ECHO   Mode: Q = Quit this .bat and <span style="color: #0000ff">do</span> nothing</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum59">  59:</span>   ECHO.</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum60">  60:</span>   GOTO EOF</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum61">  61:</span>   </pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum62">  62:</span> :CLEANUP</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum63">  63:</span>   ECHO.</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum64">  64:</span>   ECHO Done.</pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum65">  65:</span>     </pre>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum66">  66:</span> :EOF</pre>
</div>
</div>
<p>Not terribly clean, and I probably could have done it with a windows app with c#, but it would have been so much work for the same result. Anyway, enjoy!</p>
<p>Caveat: With Widnows 7 (or Vista) with the UAC enabled, you&#039;ll want to right-click on the .bat or shortcut to it and and run it as Administrator so that it has permissions to stop or start the windows services.</p>
<p>The contents of the code above are conveniently located below under Attachment&#039;s for this entry. Cut down on the cut and paste errors <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><!--<br />
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><br />
<rdf:Description rdf:about="http://blog.monkk.com/node/56" dc:identifier="http://blog.monkk.com/node/56" dc:title="Fun with a batch file for starting and stopping &quot;Development&quot; related services" trackback:ping="http://blog.monkk.com/trackback/56" /><br />
</rdf:RDF><br />
&#8211;></p>
<div class="trackback-url">
<div class="box">
<h2>Trackback URL for this post:</h2>
<div class="content">http://blog.monkk.com/trackback/56</div>
</div>
</div>
<table id="attachments" class="sticky-enabled">
<thead>
<tr>
<th>Attachment</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="http://blog.monkk.com/sites/default/files/dev-environ.bat">dev-environ.bat</a></td>
<td>1.44 KB</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/11/fun-with-a-batch-file-for-starting-and-stopping-development-related-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Damn gimicks, aka &quot;The Hat Trick&quot;</title>
		<link>http://blog.johnminadeo.com/2009/11/damn-gimicks-aka-the-hat-trick/</link>
		<comments>http://blog.johnminadeo.com/2009/11/damn-gimicks-aka-the-hat-trick/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 03:42:58 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[cosmetic dlc]]></category>
		<category><![CDATA[hats]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/11/damn-gimicks-aka-the-hat-trick/</guid>
		<description><![CDATA[So I&#039;m minding my own business, restarting my Steam client to check for any game updates and what do I see but this (click the image for the full sized version): So if you&#039;re at all interested in Team Fortress &#8230; <a href="http://blog.johnminadeo.com/2009/11/damn-gimicks-aka-the-hat-trick/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>
So I&#039;m minding my own business, restarting my Steam client to check for any game updates and what do I see but this (click the image for the full sized version):</p>
<p><a href="http://www.monkk.com/content/tf2-hat-preorder-l4d2.PNG" target="_new"><img src="http://www.monkk.com/content/tf2-hat-preorder-l4d2.PNG" alt="Dirty Cheap Trick" width="500" class="mceItem" /></a></p>
<p>So if you&#039;re at all interested in Team Fortress 2, you&#039;ll know that a few months ago they introduced the concept of&nbsp;unlockable&nbsp;customization&nbsp;content for the characters in the game, in the form of Hats. They are typically not achievement based but some magical percentage determines if you are eligible to unlock one every hour or so and if you&#039;re lucky maybe you get one. Well, I guess it&#039;s ok but really who cares, they simply are&nbsp;aesthetic, but I have found exactly ONE hat after many many (far too many) hours of playing&#8230; It&#039;s annoying when others have a whole bunch of &#039;em. &nbsp;But fine, you wait long enough, you get &#039;em&#8230;</p>
<p>Now this, Pre-Order a different game of ours and get a free hat for TF2? I mean, yeah, it&#039;s not a bad marketing ploy, but we are all still waiting for an inventory trading system&#8230; Which in itself is kinda lame in a FPS&#8230; If I wanted a MMORPG, I&#039;d go play one&#8230; I&#039;m already grinding on getting lame achievements to get weapons which I will actually use&#8230; but hats? Really? That&#039;s what you&#039;re spending your time on?</p>
<p><!--<br />
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><br />
<rdf:Description rdf:about="http://blog.monkk.com/node/55" dc:identifier="http://blog.monkk.com/node/55" dc:title="Damn gimicks, aka &quot;The Hat Trick&quot;" trackback:ping="http://blog.monkk.com/trackback/55" /><br />
</rdf:RDF><br />
&#8211;></p>
<div class="trackback-url">
<div class="box">
<h2>Trackback URL for this post:</h2>
<div class="content">http://blog.monkk.com/trackback/55</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/11/damn-gimicks-aka-the-hat-trick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Restoring large MySql DB&#039;s with BigDump</title>
		<link>http://blog.johnminadeo.com/2009/10/restoring-large-mysql-dbs-with-bigdump/</link>
		<comments>http://blog.johnminadeo.com/2009/10/restoring-large-mysql-dbs-with-bigdump/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 13:59:38 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[restore]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/10/restoring-large-mysql-dbs-with-bigdump/</guid>
		<description><![CDATA[So, I recently blew up my Drupal installation and was caught with my pants down and no DB backup&#8230; Well, as you can tell, I&#039;ve re-installed and configured it again. Now I needed to back it up. Well I need &#8230; <a href="http://blog.johnminadeo.com/2009/10/restoring-large-mysql-dbs-with-bigdump/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So, I <a href="http://drupal.monkk.com/node/53" target="_blank">recently blew up my Drupal installation</a> and was caught with my pants down and no DB backup&#8230; </p>
<p>Well, as you can tell, I&#039;ve re-installed and configured it again. Now I needed to back it up. Well I need to create an automated backup strategy, but that starts with a single backup. The concept it straightforward, and certainly the path is well laid out. Step 1: Export the MySql database using the MySql PHPAdmin site my host provides. Step 2: Zip up the site files while I&#039;m at it. Easy peezy lemon squeezy!</p>
<p>Now, did it work? How do I restore this stuff? File-system, no problem, I can just unzip from my site archive directory on the server. But what about this database? Well MySql PHPAdmin absolutely let&#039;s you upload sql files to execute so I created a temp database for testing purposes and uploaded my gzipped sql files (1.5 MB in size) [<em>the limit, at least at my hosts, is 2 MB</em>]. I got some variety of error after it churned for a while. Hmm, very disappointing.</p>
<p>At this point, I extracted the sql from the gzip and decided to just try it that way, perhaps the de-compressor for the MySql PHPAdmin tool was having some issues. Well at this point I noticed the DB sql is 15 MB, and it&#039;s a pretty lite install of Drupal, most content is my imported years worth of blog entries. And it&#039;s well above the 2 MB upload limit for the admin tool.</p>
<p>My first inclination is to search for some mysql using script that I can run from the command line. I then stumbled on BigBump (<a href="http://www.ozerov.de/bigdump.php" target="_blank">http://www.ozerov.de/bigdump.php</a>). It&#039;s a batch updating php script that can be invoked from the browser. You simply place it on your site, upload your sql script and point it at the DB (sadly the DB config is in the PHP script so it must be pre-configured for each DB you want to use it on) then hit it with a web browser and tell it to go. Leave your browser open and it works, like a charm!</p>
<p>Give it a shot if you find yourself in a similar situation!</p>
<p><!--<br />
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><br />
<rdf:Description rdf:about="http://blog.monkk.com/node/54" dc:identifier="http://blog.monkk.com/node/54" dc:title="Restoring large MySql DB&#039;s with BigDump" trackback:ping="http://blog.monkk.com/trackback/54" /><br />
</rdf:RDF><br />
&#8211;></p>
<div class="trackback-url">
<div class="box">
<h2>Trackback URL for this post:</h2>
<div class="content">http://blog.monkk.com/trackback/54</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/10/restoring-large-mysql-dbs-with-bigdump/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oooops, I blew up Drupal</title>
		<link>http://blog.johnminadeo.com/2009/10/oooops-i-blew-up-drupal/</link>
		<comments>http://blog.johnminadeo.com/2009/10/oooops-i-blew-up-drupal/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 13:32:38 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[oops]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/10/oooops-i-blew-up-drupal/</guid>
		<description><![CDATA[Well, everything was going very well with my Drupal installation. I&#039;ve got TinyMCE working as my WYSIWYG editor, and added a bunch of other modules to do this, that, and the other. And all was well, I had encoutered a &#8230; <a href="http://blog.johnminadeo.com/2009/10/oooops-i-blew-up-drupal/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well, everything was going very well with my Drupal installation. I&#039;ve got TinyMCE working as my WYSIWYG editor, and added a bunch of other modules to do this, that, and the other. And all was well, I had encoutered a module or two that didn&#039;t work correctly and it was simple enough to remove them so I was pretty pleased. And apparently lulled into a false sense of security.</p>
<p>I ended up having to install about 5 modules to allow a 6th to work and I turned them all on at once and&#8230; *KA-BOOM* a module load error&nbsp;occurred&nbsp;and blew out parts of my database&#8230; The site still functioned but all permissions were wiped.&nbsp;</p>
<p>Very&nbsp;disappointing&#8230; Of course I should have backed up the database before doing this sort of thing, but&#8230; I hadn&#039;t and that&#039;s exactly what I get. I&#039;ve cautioned clients to back up frequently and religiously and here I am not listening, I know better. I got swept up in the ease of installation and configuration in my very first test run that I got complacent. I didn&#039;t feel that the site was in it&#039;s initial &#8220;1.0&#8243; state and so didn&#039;t need a back-up just yet. It went so well, I switched over the blog features of my site to it. That switch to production should have made me back it up at that point&#8230; Alas.</p>
<p>However, the whole incident did afford me the opportunity to re-install Drupal. I should say, reconfigure, the file-system portion of Drupal was completely intact. Again it went relatively painlessly, and having had some experience on administering the system, it was a lot easier to do! Easily took me 1/2 the time. Which in real terms put&#039;s it at about 4 hours for a fresh install and config of a small Drupal site using a WordPress Blog as a data source for content. Not too bad, not too bad at all!</p>
<p>The irony is, I was installing the &#8220;Chaos Tools&#8221; module and it&#039;s dependencies so that I could investigate the &#8220;Bulk Export&#8221; utilities that CTools adds. Primarily for back-up plans&#8230;</p>
<p>All in all I&#039;m grateful for the experience, I just wish I had <strong>planned</strong>&nbsp;it!</p>
<p><!--<br />
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><br />
<rdf:Description rdf:about="http://blog.monkk.com/node/53" dc:identifier="http://blog.monkk.com/node/53" dc:title="Oooops, I blew up Drupal" trackback:ping="http://blog.monkk.com/trackback/53" /><br />
</rdf:RDF><br />
&#8211;></p>
<div class="trackback-url">
<div class="box">
<h2>Trackback URL for this post:</h2>
<div class="content">http://blog.monkk.com/trackback/53</div>
</div>
</div>
<div id="trackbacks">
<div class="trackback" id="trackback-1">
<h3 class="title"><a href="http://drupal.monkk.com/node/54">Restoring large MySql DB&#039;s with BigDump</a></h3>
<p><span class="submitted">from <em>Musing&#039;s from teh M^onk^K</em> on October 29, 2009 &#8211; 9:59am</span></p>
<div class="content">
<p>So, I recently blew up my Drupal installation and was caught with my pants down and no DB backup&#8230; Well, as you can tell, I&#039;ve re-installed and configured it again. Now I needed to back it up. Well I need to create an automated backup strategy, but that</p>
</div>
<div class="links">
<ul class="links">
<li class="trackback_edit first"><a href="/trackback/edit/1">edit</a></li>
<li class="trackback_delete last"><a href="/trackback/delete/1">delete</a></li>
</ul>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/10/oooops-i-blew-up-drupal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>One day with Drupal</title>
		<link>http://blog.johnminadeo.com/2009/10/one-day-with-drupal/</link>
		<comments>http://blog.johnminadeo.com/2009/10/one-day-with-drupal/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 00:33:57 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[drupal]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/10/one-day-with-drupal/</guid>
		<description><![CDATA[A couple of days ago I stumbled across the reporting on the announcement of the White House switching over to an OpenSource content management system, Drupal. I&#039;ve hosted or setup a number of sites over the years using various CMS &#8230; <a href="http://blog.johnminadeo.com/2009/10/one-day-with-drupal/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A couple of days ago I stumbled across the reporting on the <a href="http://techpresident.com/blog-entry/whitehousegov-goes-drupal" target="_blank">announcement</a> of the White House switching over to an OpenSource content management system, <a href="http://drupal.org" target="_blank">Drupal</a>. I&#039;ve hosted or setup a number of sites over the years using various CMS platforms, for example: <a href="http://phpnuke.org" target="_blank">PHPNuke</a>, <a href="http://www.nuke-evolution.com" target="_blank">PHPNuke Evolution</a>, <a href="http://www.xoops.org/" target="_blank">Xoops</a>, <a href="http://www.joomla.org" target="_blank">Joomla</a>, <a href="http://wordpress.org" target="_blank">WordPress</a>. All of which are good depending on what you&#039;re trying to do. Since all of these we run at my host which uses a typical LAMP stack (Linux, Apache, MySql, PHP), my requirements are something along the lines of:</p>
<ol>
<li>1.&#160; Free </li>
<li>2. Configurable </li>
<li>3 . Runs on Linux </li>
<li>4. <b><i>Can</i></b> run on Windows (home systems use Windows currently, not a deal breaker though) </li>
<li>5. Does <b><u>NOT</u></b> require any actions from my host (no phone calls, nothing)       <br />6.Should support the concept of Blogs, Forums, Users, Wikis as a <i>nice-to-have</i> </li>
</ol>
<p>All of those met my needs (well with the exception of WordPress being specifically for blogs&#8230;.</p>
<p>I have heard of Drupal but never had the opportunity to try it. The White House moving to Drupal was enough to pique my interests. It was definitely on the list of software to evaluate when the chance presented itself, and like most, I figure that this lends some serious legitimacy to the OpenSource movement, and to the Drupal platform specifically. I know I am late to the party and that there are already a number of books on Installing/Configuring/Maintaining it, but I consider this taking the time to vet out the development, and I think now it&#039;s prime time for it!</p>
<p>So yesterday afternoon, I downloaded the latest release of Drupal and set up a spot on my host and a new database and went to installing. Relatively pain free install, I just uploaded it to the server and navigated to the install page and it did the rest. Though I did have to do a few tweaks to my php.ini and .htaccess files. The information was easy to find, as the installer presented links to tracking down the solutions. Which in my case where setting PHP5 as the default PHP handler for the site, and disabling a php global resources restriction. I did create a few directories manually prior to the install, but it may have done that during the process had they not been there.</p>
<p>Drupal is set up to handle multiple sites and enhancements are typically provided in the form of add-on modules that install simply by copying them to your host and dropping them in the correct directory (themes in themes, libraries in libraries, modules in modules sort of thing). So I grabbed a few that sounded helpful (WordPress Import, WYSIWYG editor, Trackback&#039;s). And in the first 30 minutes I had my entire WordPress blog from a year and a half of blogging all converted over to the blog in Drupal. And it has a better tag and taxonomy categorization for blogs to boot!</p>
<p>It handles traditional pages, blogs, forums, navigation linking very nicely, arguably a super custom navigation system might require converting your existing code to a Drupal module but for 90% of the navigation tasks, the built in system is grand. Off the bat, the administration can seem daunting, many configuration settings broken up and categorized, but they do make sense, it&#039;s just in a CMS system, you need all these features. I found I got used to their placement in about a day&#039;s worth of using it. Not too terrible, all things considered, relatively intuitive.</p>
<p>I have to investigate a Wiki module and get the WYSIWYG editor fully working. I am using it right now, but I just noticed the mark-up seems to be using a BBCode-like system, though I believe I saw the option to change that, Hmm, now where did I see that setting again</p>
<p>Overall, a great CMS platform, and you can not beat the price. The community is very alive and there are books on the topic. Now is a great time to hop in and learn!&#160; </p>
<p><a href="http://jm.monkk.com/__oneclick_uploads/2009/10/clip-image001.gif"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://jm.monkk.com/__oneclick_uploads/2009/10/clip-image001-thumb.gif" width="18" height="18" /></a></p>
<p><!--<br />
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><br />
<rdf:Description rdf:about="http://blog.monkk.com/node/51" dc:identifier="http://blog.monkk.com/node/51" dc:title="One day with Drupal" trackback:ping="http://blog.monkk.com/trackback/51" /><br />
</rdf:RDF><br />
&#8211;></p>
<div class="trackback-url">
<div class="box">
<h2>Trackback URL for this post:</h2>
<div class="content">http://blog.monkk.com/trackback/51</div>
</div>
</div>
<div id="trackbacks">
<div class="trackback" id="trackback-2">
<h3 class="title"><a href="http://blog.codetales.com/node/5">My doings with Drupal and my new blog site</a></h3>
<p><span class="submitted">from <em>Code Tales by teh QuadFather</em> on November 4, 2009 &#8211; 10:44pm</span></p>
<div class="content">
<p>&nbsp;Well, it took a while but I finally decided on a domain name that satisfied me and created this blog site. My friend and partner in crime, MonkK suggested I set up my blog site with the Drupal content management system. I have to say after following</p>
</div>
<div class="links">
<ul class="links">
<li class="trackback_edit first"><a href="/trackback/edit/2">edit</a></li>
<li class="trackback_delete last"><a href="/trackback/delete/2">delete</a></li>
</ul>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/10/one-day-with-drupal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The case of the missing “Mail, Contacts, Calendars” setting on a jailbroken iPhone 3GS</title>
		<link>http://blog.johnminadeo.com/2009/08/the-case-of-the-missing-%e2%80%9cmail-contacts-calendars%e2%80%9d-setting-on-a-jailbroken-iphone-3gs/</link>
		<comments>http://blog.johnminadeo.com/2009/08/the-case-of-the-missing-%e2%80%9cmail-contacts-calendars%e2%80%9d-setting-on-a-jailbroken-iphone-3gs/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 10:43:10 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[first world problems]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[jailbroken]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/08/the-case-of-the-missing-%e2%80%9cmail-contacts-calendars%e2%80%9d-setting-on-a-jailbroken-iphone-3gs/</guid>
		<description><![CDATA[Well, here is an interesting little story that was passed on to me from a friend with a jail-broken iPhone. Complete with screen-shots (nice touch) So it seems, in the Settings application, the item for “Mail, Contacts, and Calendars” was &#8230; <a href="http://blog.johnminadeo.com/2009/08/the-case-of-the-missing-%e2%80%9cmail-contacts-calendars%e2%80%9d-setting-on-a-jailbroken-iphone-3gs/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well, here is an interesting little story that was passed on to me from a friend with a jail-broken iPhone. Complete with screen-shots (nice touch)</p>
<p>So it seems, in the Settings application, the item for “Mail, Contacts, and Calendars” was missing. And upon closer examination, so was the Push settings, and likely anything new with the 3.0 OS update. Here is a screenshot of the Settings app in it’s “confused” state (it does look a little off doesn’t it <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ) :</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="web (4)" border="0" alt="web (4)" src="http://jm.monkk.com/__oneclick_uploads/2009/08/web4.jpg" width="324" height="484" /> </p>
<p>Well after some digging, and let me tell you it’s not that easy to come up with a search term for this… Suffice it to say, someone forgot something… Not sure if it’s the theme’s fault (see, jail-broken iPhones let you stack on themes to make your phone look just the way you like it. Unfortunately, it’s not without it’s drawbacks and this is likely why Apple has not provided a way for you to do this… Though I find it odd as I could easily see a $1.99 theme in the App store…) At any rate, if you are using Winterboard, and if you are running themes and reading this, you likely are, there is a setting to dis-able themes for anything except the Springboard (which is the main app launcher for the iPhone). </p>
<p>In the Settings application, choose the Winterboard settings and enable “SpringBoard Only” :</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="web (3)" border="0" alt="web (3)" src="http://jm.monkk.com/__oneclick_uploads/2009/08/web3.jpg" width="324" height="484" /> </p>
<p>And as if by magic, the Settings application will look normal again:</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="web (2)" border="0" alt="web (2)" src="http://jm.monkk.com/__oneclick_uploads/2009/08/web2.jpg" width="324" height="484" /> </p>
<p>The side effect it, ONLY the Springboard is themed (main screen) all the apps, do not benefit from the theme if it provides replacement Dialer or Lock screens (etc…) So the beautiful:</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="web" border="0" alt="web" src="http://jm.monkk.com/__oneclick_uploads/2009/08/web.jpg" width="324" height="484" /> </p>
<p>Again becomes the mundane:</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="web (1)" border="0" alt="web (1)" src="http://jm.monkk.com/__oneclick_uploads/2009/08/web1.jpg" width="324" height="484" /> </p>
<p>Fortunately, the settings retain their values, you just can’t get to ‘em so you can go ahead and make whatever changes you needed to make and then re-enabling theming for all apps again. It’s annoying and lame… It’s really too bad so much time has to be wasted circumventing apple to be able to do what we want with the devices we paid for.</p>
<p><font color="#ff0000"><strong>Update </strong>(2009-08-04 9:17 AM):</font> The “Winterboard Settings” item is added to the Settings App by installing the “WinterBoard Settings” package via Cydia or Icy:</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="photo" border="0" alt="photo" src="http://jm.monkk.com/__oneclick_uploads/2009/08/photo.jpg" width="324" height="484" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/08/the-case-of-the-missing-%e2%80%9cmail-contacts-calendars%e2%80%9d-setting-on-a-jailbroken-iphone-3gs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Toggle network cvars script for Team Fortress 2</title>
		<link>http://blog.johnminadeo.com/2009/06/toggle-network-cvars-script-for-team-fortress-2/</link>
		<comments>http://blog.johnminadeo.com/2009/06/toggle-network-cvars-script-for-team-fortress-2/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 01:46:46 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[settings]]></category>
		<category><![CDATA[team frotress]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/06/toggle-network-cvars-script-for-team-fortress-2/</guid>
		<description><![CDATA[While playing Team Fortress 2, I’ve found that some servers are set up for higher bandwidth usage allowing for a smoother game. To really take advantage of that, typically a few client side cvars need to be changed. However, many &#8230; <a href="http://blog.johnminadeo.com/2009/06/toggle-network-cvars-script-for-team-fortress-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>While playing Team Fortress 2, I’ve found that some servers are set up for higher bandwidth usage allowing for a smoother game. To really take advantage of that, typically a few client side cvars need to be changed. However, many servers also run the default settings on their server and you’ll need to set the cvars back.</p>
<p>Conveniently, the source engine allows TF2 players the ability to create client side scripts / configs that will automate these changes. I have taken the liberty of creating a config that will let you bind a key to a “nextrate” command which will toggle the cvars between their High and Low rate settings.</p>
<p>First off, I am only changing the values for two CVARS, there may be more and they would be simple to add, but for the sake of this discussion I will be changing “rate” and “cl_updaterate” cvars.</p>
<p>The Low settings are:</p>
<blockquote><p><strong>rate: </strong>30000      <br /><strong>cl_updaterate:</strong> 20</p>
</blockquote>
<p>The High settings are:</p>
<blockquote><p><strong>rate:</strong> 60000      <br /><strong>cl_updaterate:</strong> 100</p>
</blockquote>
<p>All that really needs to be done is, when connecting to a <strong>High rate</strong> server, in the console type:</p>
<blockquote><p>rate 60000;cl_updaterate 100;</p>
</blockquote>
<p>And when connecting to a <strong>Low rate</strong> server, in the console type:</p>
<blockquote><p>rate 30000;cl_updaterate 20;</p>
</blockquote>
<p>but who wants to type that everytime…. So, without further ado, enter the script:</p>
<p>alias ShowHighRateMsg echo rate set to 60000, cl_updaterate set to 100   <br />alias ShowLowRateMsg echo rate set to 30000, cl_updaterate set to 20    <br />alias SetHighrate &quot;rate 60000; cl_updaterate 100;alias nextrate SetLowrate;ShowHighRateMsg;&quot;    <br />alias SetLowrate &quot;rate 30000; cl_updaterate 20;alias nextrate SetHighrate;ShowLowRateMsg&quot;    <br />alias nextrate SetLowRate    <br />nextrate </p>
<p>This uses the alias command which lets you set chains of console commands together and reference later by the name you give the alias. </p>
<p>Above five aliases are created:</p>
<blockquote><p>1. ShowHighRateMsg – Simply echoes the text we want the user to see in the console after executing the nextrate command to set the High Rate settings</p>
<p>2. ShowLowRateMsg – Simply echoes the text we want the user to see in the console after executing the nextrate command to set the Low Rate settings</p>
<p>3. SetHighRate – Actually sets the cvars for High Rate server use. It also sets the alias for “nextrate” to SetLowRate. This is what implements the Toggle functionality. The user keeps calling “nextrate” and nextrate is pointed to different aliases every time it is called. It also displays the setting changes it is making in the console for the user to see if they bring up the console.</p>
<p>4. SetLowRate – Actually sets the cvars for Low Rate server use. It also sets the alias for “nextrate” to SetHighRate. This is what implements the Toggle functionality. The user keeps calling “nextrate” and nextrate is pointed to different aliases every time it is called. It also displays the setting changes it is making in the console for the user to see if they bring up the console.</p>
<p>5. nextrate – This declares the nextrate alias and by default points it to SetLowRate. This is the alias that you bind to a key. To bind it, it must exist first which is why it is by default pointed to SetHighRate (it assumes you play on more Low Rate servers then High Rate, besides it’s the default value from Valve so, hard to go wrong.)</p>
</blockquote>
<p>The final line of the script is a call to nextrate, which as mentioned set to SetLowRate, so this actually execuste the nextrate alias and sets the cvars to Low Rate server use.</p>
<p>You could then bind a key to nextrate and execute it during the game. For example, in the console type:</p>
<blockquote><p>bind m nextrate</p>
</blockquote>
<p>Which will bind your M key to the nextrate alias. Pressing M at this point will execute the nextrate alias whenever it is pressed.</p>
<p>At this point, were you to paste the above script line by line into the console window of TF2, you could call nextrate over and over again and see it change. Well again, who’s going to paste all that in every time?</p>
<p>So you have 2 options at this point. Open up the AutoExec.cfg file in your TF2 cfg directory:</p>
<blockquote><p>C:\program Files (x86)\steam\steamapps\<strong>&lt;YOUR STEAM NAME&gt;</strong>\team fortress 2\tf\cfg</p>
</blockquote>
<p>and paste the entire script in there. You could also bind it to the key of your choice by adding the bind command from earlier here.</p>
<p>The other option, and I think the cleanest, is to create a new text file called “ServerRateToggle.cfg” in the \cfg\ directory (same place as the AutoExec.cfg) and paste the script into the new file. Then open the AutoExec.cfg and add the following line at the bottom:</p>
<blockquote><p>exec ServerRateToggle.cfg</p>
</blockquote>
<p>now, whenever the AutoExec.cfg file is parsed by TF2 (in this case, every time you start the game) it will execute the Rate toggle script which will reset the values to their defaults. You could also add the bind command in the autoexec.cfg after the call to exec ServerRateToggle and it will be bound forever more for your convenient use.</p>
<p>Here is a link to the <a href="http://www.monkk.com/content/ServerRateToggle.cfg" target="_blank">ServerRateToggle.cfg</a> to avoid copy and paste errors <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Enjoy, and let me know if you come up with anything better or more commands that need to be added to the cvars I’m currently setting!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/06/toggle-network-cvars-script-for-team-fortress-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating custom Team Fortress 2 Sprays for a PC</title>
		<link>http://blog.johnminadeo.com/2009/06/creating-custom-team-fortress-2-sprays-for-a-pc/</link>
		<comments>http://blog.johnminadeo.com/2009/06/creating-custom-team-fortress-2-sprays-for-a-pc/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 00:03:09 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[sprays]]></category>
		<category><![CDATA[tf2]]></category>
		<category><![CDATA[valve source]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/06/creating-custom-team-fortress-2-sprays-for-a-pc/</guid>
		<description><![CDATA[This little tutorial will cover making custom TF2 sprays. How to make a static spray, a transparent spray, and animated sprays. First, to give credit where credit is due. I found the information on making sprays from a few blogs/sites. &#8230; <a href="http://blog.johnminadeo.com/2009/06/creating-custom-team-fortress-2-sprays-for-a-pc/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This little tutorial will cover making custom TF2 sprays. How to make a static spray, a transparent spray, and animated sprays.</p>
<p>First, to give credit where credit is due. I found the information on making sprays from a few blogs/sites. Unfortunately, there was no comprehensive information for dealing with transparency and animation so this article you are reading now attempts to bring it all together in one place. Here are the direct links to the articles I used as a base:</p>
<ul>
<li>- <a title="&quot;Create Team Fortress 2 Sprays&quot; @ ghacks.net" href="http://www.ghacks.net/2008/09/01/create-team-fortress-2-sprays/" target="_blank">&quot;Create Team Fortress 2 Sprays&quot;</a> @ <a href="http://www.ghacks.net">www.ghacks.net</a>       </li>
<li>- <a title="&quot;TF2 Custom Spray Image with Transparency&quot; @ denyerec.co.uk" href="http://www.denyerec.co.uk/posts/278" target="_blank">&quot;TF2 Custom Spray Image with Transparency&quot;</a> @ <a href="http://www.denyerec.co.uk">denyerec.co.uk</a>
<p>- <a title="“Create Animated Sprays in Team Fortress 2 and Counter-Strike” @ maximumpc.com" href="http://www.maximumpc.com/article/create_animated_sprays_in_team_fortress_2_and_counter_strike?page=0,0" target="_blank">“Create Animated Sprays in Team Fortress 2 and Counter-Strike”</a> @ <a href="http://www.maximumpc.com">www.maximumpc.com</a> </li>
</ul>
<h5>Tools you will need:</h5>
<ul>
<li>- An image editing utility like <a title="Retail Image Editing Application from Adobe" href="http://www.adobe.com/products/photoshop/family/?promoid=BPDEK" target="_blank">Adobe’s Photoshop</a> ($$$) or <a title="Opensource, Free Image Editing Tool for many Operating Systems" href="http://www.gimp.org/" target="_blank">gimp</a> (Free!). The tool must supporting saving to TGA (Targa) file-format and must support Alpha channels (for transparency)       </li>
<li>- VTFEdit (v.1.2.5 Full seems to be the latest though it was release on 9/14/2007, also requires the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&amp;displaylang=en" target="_blank">.NET 2.0 Runtime</a> and the <a href="http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&amp;displaylang=en" target="_blank">Microsoft Visual C++ 2005 SP1</a> runtime as well, which likely your computer already has) </li>
</ul>
<h5>A note on Spray Image Resolutions and Spray file sizes:</h5>
<blockquote><p><strong>Resolution:</strong> Sprays resolution maximum is: <strong>256 x 256</strong> pixels       <br />They can be smaller, but they can’t be larger! If they are larger the 256 in either width or height, the spray simply will not show.</p>
<p><strong>File Size:</strong> Currently the Source Engine (the Valve game platform that Team Fortress 2 is built on) has a file size limit for sprays of <strong>120 KB </strong>do not exceed that or the spray will simply not work. This usually isn’t an issue with Non-Animated sprays, but Animated ones use 1 image per frame so you’re probably not going to get more than 4 or 5 frames with a resolution of 128 x 128 (note that is smaller then the largest supported spray resolution, we choose that to allow for more frames.)</p>
<p>In all cases, when we import images into VTFEdit, they are re-sampled to align to a resolution that is a power of 2, this is due to the rendering engine and an optimization for faster and easier rendering. Suffice it to say. the engine just needs them that way. VTFEdit gives you a drop-down box to give you further control. It defaults to “Nearest Power of 2” but there are options for “Smallest Power of 2” and “Largest Power of 2”.</p>
<p>During the import, VTFEdit looks at the dimensions of the image, for an example, let’s say our image is 220 x 220. If the image’s dimensions do not align to a power of 2 in both their X and Y dimensions, VTFEdit figures out the next largest and next smallest even power of 2 to align to and re-samples the image to these new dimensions. It uses the value in the drop-down list as a guide-line. In our case the next smallest is: 128 x 128 and the next largest is 256 x 256. If “Nearest Power of 2” is chosen, since 220 is closer to 256 then it is to 128, 256 x 256 is used. If our image size was 130 x 130, the next smallest is: 128 x 128 (again) and the next largest is: 256 x 256 (again), and 128 x 128 would be used. If you select “Next Smallest Power of 2” it will always pick the next smallest value, and likewise, should you choose “Next Largest Power of 2” it will always choose the next largest. </p>
<p>How do I know what the next powers of 2 are? Well I wrote a simple program to dump a bunch out for me and I just compared <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Below is a convenient table for your use:</p>
<p>2 to the Power of&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Dec. Value&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Bin Value      <br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;       <br />2 ^ 0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 1&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0000000001       <br />2 ^ 1&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 2&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0000000010       <br />2 ^ 2&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 4&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0000000100       <br />2 ^ 3&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 8&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0000001000       <br />2 ^ 4&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 16&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0000010000       <br />2 ^ 5&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 32&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0000100000       <br />2 ^ 6&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 64&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0001000000       <br />2 ^ 7&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 128&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0010000000       <br />2 ^ 8&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 256&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0100000000       <br />2 ^ 9&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 512&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 1000000000</p>
<p>Using square images (same X and Y dimensions) is easiest. But in the case of a rectangular image, the X and Y and handled separately, so an 65 x 130 image, using “Nearest Power of 2” ends up being 64 x 128, which may or may not stretch / compress your image inappropriately and you’ll want to either force the re-sampling or manually resample it with padding in the image to make the resolutions easier to work with. Square, as I mentioned is the easiest <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Usually, leaving the default of “Nearest Power of 2” is sufficient, but I feel it’s better to resample the image yourself during the image preparation phase of the procedure because it is likely Gimp or Photoshop have a highly superior re-sampler then VTFEdit. I’m not saying it is, I’m just saying it’s likely, especially as the tool hasn’t been updated in 2+ years at this point. Plus it’s nice to know what’s really going on under the hood.</p>
</blockquote>
<h5>A note on Team Fortress 2 directories for saving the Spray to:</h5>
<blockquote><p>Sprays are stored in 2 places for Team Fortress 2. By default they are:</p>
<p>C:\Program Files\Steam\steamapps\<strong>&lt;STEAM_ACCOUNT_NAME&gt;</strong>\team fortress 2\tf\materials\VGUI\logos\       </p>
<p>C:\Program Files\Steam\steamapps\<strong>&lt;STEAM_ACCOUNT_NAME&gt;</strong>\team fortress 2\tf\materials\VGUI\logos\UI\</p>
<p>where <strong>&lt;STEAM_ACCOUNT_NAME&gt;</strong> is the login name associated with your Steam account.</p>
<p>-If the C:\Program Files\Steam\steamapps\<strong>&lt;STEAM_ACCOUNT_NAME&gt;</strong>\team fortress 2\tf\materials\ directory does not have a sub-directory called “VGUI” create a new folder with that name there.       </p>
<p>-If the VGUI folder does not have a logos directory, create a new folder with that name there. Once the .vtf is in here, you can import it from here using the TF2 Options –&gt; Multi-Player, Import Spray option and browse to this directory. The importing process will create a file with the same name as the .vtf file but will have a .vmt extension (<em><font color="#ff0000">not sure what that is though, any thoughts?</font></em>) This will also copy the .vtf and .vmt to the logos/UI directory.       </p>
<p>-If the logos directory does not have a UI directory, create a new folder with that name there. One the .vtf and .vmt files are in this directory, they will appear in the Choose Spray drop-down list for choosing. </p>
</blockquote>
<h5>A note on image file naming for use while importing to VTFEdit</h5>
<blockquote><p>For most cases it does not matter what you name the image file that you import into VTFEdit. Whatever the file is named, will be used by VTFEdit as the default .vtf name for saving but you can always type a different name.</p>
<p><strong>For Animated Sprays</strong>, it <strong>DOES</strong> matter however. Animated sprays are created by making a series of images, 1 per frame, and giving them a sequential file name so that VTFEdit recognizes them as multiple frames for the same spray. Basically, they just need to be alphabetized so when VTFEdit sorts the multi-selected images, it sorts the filenames alphabetically and frame 1 goes to the 1st file, frame 2 goes to the second, and so on. For ease of use you could use filenames like: “1-MySprayImage.tga”, “2-MySprayImage.tga”, “3-MySprayImage.tga”, etc.</p>
</blockquote>
<h5>Summary of the process:</h5>
<blockquote><p>The process is relatively simple, create or find an image you want to use as a spray. Make sure it is cropped or scaled down to a resolution of (at largest) 256 x 256. Open VTFEdit, on the File Menu, choose the Import item. Browse to the spray image and select it, verify the VTFEdit import options are correct (the tool remembers it’s last settings so typically you’ll only need to set it up the first time you make a spray) and hit OK. </p>
<p>A screenshot of pretty useable settings follows:</p>
<p><strong>Non-Animated Spray:</strong></p>
<p><strong><a href="http://jm.monkk.com/__oneclick_uploads/2009/06/vtfeditsettingsnonanimated.jpg" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VTFEdit Non-Animated Spray Settings" border="0" alt="VTFEdit Non-Animated Spray Settings" src="http://jm.monkk.com/__oneclick_uploads/2009/06/vtfeditsettingsnonanimated-thumb.jpg" width="448" height="337" /></a> </strong></p>
<p><strong>Animated Spray:</strong></p>
<p><a href="http://jm.monkk.com/__oneclick_uploads/2009/06/vtfeditsettingsanimated.jpg" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VTFEdit Animated Spray Settings" border="0" alt="VTFEdit Animated Spray Settings" src="http://jm.monkk.com/__oneclick_uploads/2009/06/vtfeditsettingsanimated-thumb.jpg" width="448" height="339" /></a> </p>
<p>Please note, the only difference in the above two screen-shots is the value of the “Texture Type” drop-down list item. Non-Animated sprays use “Volume Texture”, animated ones use “Animated Textures”. It would be fine to use an Animated Texture with a 1 frame animation, but I have found no information to say use one method or another. I’ve successfully created non-animated sprays with Volume Texture and animated sprays with Animated Texture. </p>
<p>At this point VTFEdit will display to you the imported image and you simply go to the File menu again, choose the &quot;Save As” item, browse to your local logos directory and save the file with whatever name you’d like with a .vtf extension.</p>
<p>You’re ready to use it! Just start Team Fortress 2, go to Options, then the MultiPlayer Options tab, then press the import spray button and browse to your logos directory (as mentioned above) and choose the new spray. Click apply, connect to your favorite server and spray away!</p>
<p>VTFEdit makes the whole process of creating the .vtf file for use by TF2 a very easy process. The hard part is preparing the image before importing it into VTFEdit. Non-Animated, Non-Transparent images are the easiest, they only require the correct 256 x 256 or smaller size constraint. Transparency requires Alpha channels and TGA file format. </p>
<p>Some of the Articles I listed at the beginning have more detail on making transparent images and animation image preparation, I urge you to check them out if you are unsure.</p>
<p>Good luck!</p>
<p><a href="http://jm.monkk.com/__oneclick_uploads/2009/06/sprayinaction.jpg" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Spray in action, click for larger view!" border="0" alt="Spray in action, click for larger view!" src="http://jm.monkk.com/__oneclick_uploads/2009/06/sprayinaction-thumb.jpg" width="448" height="282" /></a> </p>
<p>Here is a link to a Quicktime movie of the actual spray in game showing the animation. Not very exciting but enjoy! <a href="http://www.monkk.com/content/LaughingManSprayInGame/index.html" target="_blank">Click here to view the movie!</a></p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/06/creating-custom-team-fortress-2-sprays-for-a-pc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bad customer experience: Valve and Steam delivered games</title>
		<link>http://blog.johnminadeo.com/2009/05/bad-customer-experience-valve-and-steam-delivered-games/</link>
		<comments>http://blog.johnminadeo.com/2009/05/bad-customer-experience-valve-and-steam-delivered-games/#comments</comments>
		<pubDate>Tue, 26 May 2009 02:31:43 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[fail]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/05/bad-customer-experience-valve-and-steam-delivered-games/</guid>
		<description><![CDATA[I returned home from a week long vacation out of state to find my internet connection is down, which after some calls to tech support, yields a technician coming to my house in three days. At any rate, as I’m &#8230; <a href="http://blog.johnminadeo.com/2009/05/bad-customer-experience-valve-and-steam-delivered-games/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I returned home from a week long vacation out of state to find my internet connection is down, which after some calls to tech support, yields a technician coming to my house in three days. At any rate, as I’m a pretty avid gamer, I have a stash of single player games which typically I save for these “rainy days”.</p>
<p>Well, over time, it seems I have picked up a fair amount of single player games which were purchased and delivered on <a title="Valve Software" href="http://www.valvesoftware.com/" target="_blank">Valve</a>’s <a title="SteamPowered.com" href="http://store.steampowered.com/" target="_blank">Steam</a> system, which I am a pretty big fan of. The ability to just download and play the games you have already purchased is awesome!</p>
<p>Now normally, when your internet connection temporarily goes down, Steam supports an “Offline Mode” which allows you to play your games even though it can not connect to the Valve servers to validate the purchase. And usually it works fine. Games which require internet access don’t work so well, but you’d run into that with or with-out Steam, no doubt.</p>
<p>The problem I have run into however is, I would have to call a bug. As I mentioned I have been away for a week and my machine was turned off. So after some period of time, the Steam client decides it needs to check for an update, which ultimately falls as the internet connection is down. So, really that’s fine, the problem is, when an update fails the Steam client will not allow anything else to happen and closes Steam. An even more frustrating, it pops up the dialog which let’s you either Cancel running Steam or to start it in “Offline Mode”, however, when a Steam client update fails, it can only close steam and will not allow “Offline Mode” to proceed.</p>
<p>Here are some screenshots of the process:</p>
<p>1) So far, so good, starts up and tries to update</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="1" border="0" alt="1" src="http://jm.monkk.com/__oneclick_uploads/2009/05/11.jpg" width="377" height="114" /></p>
<p>2) Starts doing something, in fact it gets to 27% pauses for a second, then retries. It will try 3 times in total never getting past the original 27% . This is likely due to the fact that the internet connection this machine is currently using is a tethered mobile phone using the 3G network of my provider. I’m not blaming Steam for this. With absolutely no internet connection, this #2 shot never happens, it just proceeds to #3.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="2" border="0" alt="2" src="http://jm.monkk.com/__oneclick_uploads/2009/05/21.jpg" width="377" height="114" /> </p>
<p>3) After 3 failed attempts at completing the download and update, it errors out.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="3" border="0" alt="3" src="http://jm.monkk.com/__oneclick_uploads/2009/05/31.jpg" width="376" height="112" /> </p>
<p>4) We are now presented with an option to Retry, Quit, or Start in Offline Mode. Retry repeats items 1 thru 3. Quit simply quits the steam client here. We then try the “Start in Offline Mode” to get to our games list or onto the game we started via Steam generated shortcut.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="4" border="0" alt="4" src="http://jm.monkk.com/__oneclick_uploads/2009/05/41.jpg" width="364" height="311" /> </p>
<p>5) The Steam client update is apparently a MUST HAVE to proceed, and since it has failed (and in this case can never proceed as no internet connection is available). We are denied starting in “Offline Mode”</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="5" border="0" alt="5" src="http://jm.monkk.com/__oneclick_uploads/2009/05/51.jpg" width="425" height="123" /> </p>
<p>6) Surprise, surpise, there is a problem with the internet connection… We knew that, but I am now being denied access to any of my PURCHSED ($$$) games delivered by Steam. </p>
<p><strong><font color="#ff0000" size="6">WTF IS THAT ABOUT?!?</font></strong></p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="6" border="0" alt="6" src="http://jm.monkk.com/__oneclick_uploads/2009/05/61.jpg" width="461" height="151" /> </p>
<p>Surely this is normally a temporary inconvenience but I can’t play games I’ve paid for for 4 days, plus however long the internet connection actually was done while I was away… It’s not Valve or Steam’s fault, but it is there problem.</p>
<p>Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/05/bad-customer-experience-valve-and-steam-delivered-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Typemock’s ASP.NET Bundle released for the masses (and there was much rejoicing!)</title>
		<link>http://blog.johnminadeo.com/2009/05/typemock%e2%80%99s-asp-net-bundle-released-for-the-masses-and-there-was-much-rejoicing/</link>
		<comments>http://blog.johnminadeo.com/2009/05/typemock%e2%80%99s-asp-net-bundle-released-for-the-masses-and-there-was-much-rejoicing/#comments</comments>
		<pubDate>Mon, 18 May 2009 22:05:21 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[mocking]]></category>
		<category><![CDATA[unit test]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/05/typemock%e2%80%99s-asp-net-bundle-released-for-the-masses-and-there-was-much-rejoicing/</guid>
		<description><![CDATA[Unit Testing ASP.NET? ASP.NET unit testing has never been this easy. Typemock is launching a new product for ASP.NET developers – the ASP.NET Bundle &#8211; and for the launch will be giving out FREE licenses to bloggers and their readers. &#8230; <a href="http://blog.johnminadeo.com/2009/05/typemock%e2%80%99s-asp-net-bundle-released-for-the-masses-and-there-was-much-rejoicing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.typemock.com/">Unit Testing</a> ASP.NET? <a href="http://www.typemock.com/ASP.NET_unit_testing_page.php">ASP.NET unit testing</a> has never been this easy.</p>
<p>Typemock is launching a new product for ASP.NET developers – the <strong>ASP.NET Bundle</strong> &#8211; and for the launch will be giving out <strong>FREE licenses</strong> to bloggers and their readers.</p>
<p>The ASP.NET Bundle is the ultimate ASP.NET unit testing solution, and offers both <a href="http://www.typemock.com/">Typemock Isolator</a>, a <a href="http://www.typemock.com/">unit test</a> tool and <a href="http://sm-art.biz/Ivonna.aspx">Ivonna</a>, the Isolator add-on for <a href="http://sm-art.biz/Ivonna.aspx">ASP.NET unit testing</a>, for a bargain price.    <br />Typemock Isolator is a leading <a href="http://www.typemock.com/">.NET unit testing</a> tool (C# and VB.NET) for many ‘hard to test’ technologies such as <a href="http://typemock.com/sharepointpage.php">SharePoint</a>, <a href="http://www.typemock.com/ASP.NET_unit_testing_page.php">ASP.NET</a>, <a href="http://www.typemock.com/ASP.NET_unit_testing_page.php">MVC</a>, <a href="http://www.typemock.com/wcfpage.php">WCF</a>, WPF, <a href="http://www.typemock.com/Silverlight_unit_testing_page.php">Silverlight</a> and more. Note that for <a href="http://www.typemock.com/Silverlight_unit_testing_page.php">unit testing Silverlight</a>there is an open source Isolator add-on called <a href="http://www.typemock.com/Silverlight_unit_testing_page.php">SilverUnit</a>.</p>
<p>The first 60 bloggers who will blog this text in their blog and <a href="http://blog.typemock.com/2009/05/get-free-typemock-licenses-aspnet.html">tell us about it</a>, will get a Free Isolator ASP.NET Bundle license (Typemock Isolator + Ivonna). If you post this in an ASP.NET <strong>dedicated</strong> blog, you&#039;ll get a license automatically (even if more than 60 submit) during the first week of this announcement.    <br />Also 8 bloggers will get an <strong>additional 2 licenses</strong> (each) to give away to their readers / friends.    <br />Go ahead, click the following link for <a href="http://blog.typemock.com/2009/05/get-free-typemock-licenses-aspnet.html">more information </a>on how to get your free license.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/05/typemock%e2%80%99s-asp-net-bundle-released-for-the-masses-and-there-was-much-rejoicing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thoughts on Unit Tests for Stored Procedures</title>
		<link>http://blog.johnminadeo.com/2009/05/thoughts-on-unit-tests-for-stored-procedures/</link>
		<comments>http://blog.johnminadeo.com/2009/05/thoughts-on-unit-tests-for-stored-procedures/#comments</comments>
		<pubDate>Sat, 02 May 2009 21:13:24 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[stored procedures]]></category>
		<category><![CDATA[unit test]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/05/thoughts-on-unit-tests-for-stored-procedures/</guid>
		<description><![CDATA[So very recently I was approached by a team member to write some unit tests around a stored procedure that was being modified.I have never done any unit tests against for a Stored Proc so I was intrigued. I wasn’t &#8230; <a href="http://blog.johnminadeo.com/2009/05/thoughts-on-unit-tests-for-stored-procedures/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So very recently I was approached by a team member to write some unit tests around a stored procedure that was being modified.I have never done any unit tests against for a Stored Proc so I was intrigued. I wasn’t really sure where I was going when I started but I opted to write a small console app in C# to proof it out. </p>
<p>For the sake of discussion, let’s say the stored procedure returns back a record-set with a single record containing five columns which describe time-zone information for a given US zip code and takes a single parameter, the zip code. I really couldn’t ask for a better test subject for a first pass, not too big, not too complicated.</p>
<p>My first inclination was to approach it like unit testing any other unit of code. So I figured I would need some variety of data store for my expected values and stored proc inputs. At this point it occurred to me, “Hey, I have a database full of inputs and expected results right here”, so I crafted a quick query to get my expected info. From that, I call the stored proc for each zip and verified the results. Worked like a champ. However, I was unaware the sp code refactoring had already been done on the database I was working against. It was around this point that I started getting a sinking feeling that something wasn’t right with the test. I attributed it to not being sure what to expect as this was a new testing scenario for me (typically the database developers are in charge of their development and testing of their code, while I can write SQL with the best of ‘em, a DBA I am not) and moved on.</p>
<p>Well ok, I have the behavior of the new code, the Actual results in testing terms. Now I can simply aim my program at the old database with the old code-base and get the expected results and modify my app to compare them. And then I discovered that the underlying data structure for the old code was different. The old way, the SP selects the five columns I need by joining three tables and then limiting on the passed in zip code. The new way, a nightly job is scheduled to populate a new “Time Zone” table and the SP simply selects all columns from the new table limiting by zip code. </p>
<p>So finally, it hits me… My test as it stands really is only testing that I get a result for every zip code I ask for and that it selected the same row that I got my expected result from. And maybe, that’s exactly what it should be testing, it does add some value… And yet it feels empty.</p>
<p>What I ended up doing was to retrieve the master list of zip codes from the old way’s table and ran both the new and old SP for each zip code and compared the result. This test felt better, the underlying data structures driving the stored proc could change and the test would be isolated and continue to work as long as the SP’s calling signature stayed the same.</p>
<p>The rub is, I could not have written my new test app without the new SP being developed. So what would I have been testing in it’s first iteration had I wrote tests for it at the time? I would have written my original test that would ultimately grab the expected data from the same database that the stored proc would.</p>
<p>What I should have done was adapt my initial test to work the same way with the old data and verified the stored proc returned the right data in my five columns. Then I should add a a test to verify the data in the new table matches the data from the old data structure. (This test typically would be the responsibility of the db job developers). Then I should modify my test to get it’s expected data from the new (and tested) structures and continue to verify the SP results to the data.</p>
<p>When unit testing code, you tend to have to “mock” out the data calls to control your tests, so from having to avoid all the database calls, it’s a “context-switch” to be requiring the database for everything. But the constant in both is testing the discrete parts from the bottom up. In retrospect, I could have done the test completely with SQL and suddenly the MS “Database Unit Test” makes a lot more sense.</p>
<p>&#8211;   <br />Regards!</p>
<p>&#160;</p>
<ol>
<li></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/05/thoughts-on-unit-tests-for-stored-procedures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Typemock, my new best friend!</title>
		<link>http://blog.johnminadeo.com/2009/04/typemock-my-new-best-friend/</link>
		<comments>http://blog.johnminadeo.com/2009/04/typemock-my-new-best-friend/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 10:44:24 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[mocking]]></category>
		<category><![CDATA[unit test]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/04/typemock-my-new-best-friend/</guid>
		<description><![CDATA[In particular, Typemock Isolator. &#160; DISCLAIMER: I am in no way affiliated or receiving any compensation from the makers of Typemock. Simply a developer in the trenches loving this tool in his tool box. From thier website: http://www.typemock.com/index.php &#160; “Isolate &#8230; <a href="http://blog.johnminadeo.com/2009/04/typemock-my-new-best-friend/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In particular, Typemock Isolator.</p>
<p>&#160;<a href="http://www.typemock.com/?id=1" target="_blank"><img border="0" alt="Typemock fan" src="http://www.typemock.com/images/mockfan.gif" /></a><font color="#ff0000"><strong><u></u></strong></font></p>
<p><font color="#ff0000"><strong><u>DISCLAIMER</u>:</strong><em> I am in no way affiliated or receiving any compensation from the makers of Typemock. Simply a developer in the trenches loving this tool in his tool box. </em></font>From thier website: <a href="http://www.typemock.com/index.php">http://www.typemock.com/index.php</a></p>
<table border="0" cellspacing="0" cellpadding="2" width="400">
<tbody>
<tr>
<td valign="top" width="10">&#160;</td>
<td valign="top" width="393"><em><font color="#005e2f">“<strong>Isolate any .NET dependencies to make unit testing easy</strong>” <strong><u>What does Isolator do?</u></strong>Typemock Isolator gives .NET developers the power to easily perform unit testing by making unit tests easy to write and automate.</font></em><em><font color="#005e2f">Isolator improves the bug-fix-time factor, and increases your code coverage.</font></em></td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<p>I’m not really going to review it, but it is an excellent product for use in writing unit tests. Plays 100% with NUnit. This is simply a no brainer, a tool you must have as a professional developer working with .NET.</p>
<p>If you are familiar with unit testing, then you have run into the &quot;Mock” object. It looks and works just like the real thing, but it’s not, it’s a fake that does your bidding so you can control the outcomes of the tests to hit the proper scenarios for verification. And for small loosely coupled objects, this works with the added overhead of making the mock objects. But invariably you will end up with a data-bound object or a class sub-classed 3 levels deep and controlling the testing inputs gets harder and harder to control.</p>
<p>There are many development patterns out there that help to mitigate this “cost” such as factories with delegated constructors to allow snapping in of the data-provider, but these quickly become very complex beasts, and the codebase is just as large as the production code. Yes it works, yes it’s thorough, but is there a better way?</p>
<p>Yes! Why just today, I was creating some tests around a subsystem that essentially picks what will be shown to the user based on various rules. We are re-using the subsystem with another application and since the codebase is well set up and shared between like applications, with proper testing in place, we will be able to re-factor the code to be used in both spots with much higher confidence.</p>
<p>For one scenario, a random number between 0 and 99 is picked values less then 50 see A and the values greater then 50 see B. Well to right a test for this, you really need a consistent value returned from the random number generator. In my case, the random number was being returned from a <strong>private</strong>&#160;<strong>static </strong>little wrapper function around Random.GetNext() which I wil call GettRandomInt for namesake.</p>
<p>Typemock Isolater allowed me to intercept the call to GettRandomInt and force a return value of whatever I need for that test to be able to fully test my scenario. In a single line of code. That’s right <strong>1 DAMN LINE OF CODE</strong>, I almost cried. Mind you I got lucky in that it was a static function so I never needed an instance, but at worse, 2 lines of code. Not too bad. And it was a private member as well. It has always been a source of frustration to only be able to test public functions, or to break ideal object model integrity for testing purposes alone. I mean of course quality is the clear choice here, but it isn’t free.</p>
<p>I was just very impressed with the product through a single day’s use. If you have ever “mocked autoquote” (<em>and you know who you are (-: </em>)<em>&#160;</em>I guarantee, that’s right I said it, GUARANTEE, your satisfaction! I will be buying the personal edition for myself to use on my own projects, and for $89.00 that’s quite affordable.</p>
<p>They also have SharePoint isolator which I have not used, but have worked with SharePoint. And I can only imagine how this would be an essential tool.</p>
<p>Anyway, thank you Rob Witt for showing me the light. Amazing!</p>
<p>&#8211;</p>
<p>Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/04/typemock-my-new-best-friend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Team Fortress 2 Achievements</title>
		<link>http://blog.johnminadeo.com/2009/02/team-fortress-2-achievements/</link>
		<comments>http://blog.johnminadeo.com/2009/02/team-fortress-2-achievements/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 20:15:09 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[team fortress]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/02/team-fortress-2-achievements/</guid>
		<description><![CDATA[While I&#039;m at it, I&#039;ve heard of a convenient way to help grind these things out. I don&#039;t know if it&#039;s ethical or not but, I&#039;ll leave that decision to you. 1.) Start a server 2.) from console: mp_teams_unbalance_limit 0 &#8230; <a href="http://blog.johnminadeo.com/2009/02/team-fortress-2-achievements/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img title="header_blog" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="198" alt="header_blog" src="http://jm.monkk.com/__oneclick_uploads/2009/02/header-blog.jpg" width="527" border="0" /> </p>
<p>While I&#039;m at it, I&#039;ve heard of a convenient way to help grind these things out. I don&#039;t know if it&#039;s ethical or not but, I&#039;ll leave that decision to you. </p>
<p>1.) Start a server   <br />2.) from console: <strong>mp_teams_unbalance_limit 0     <br /></strong>2.) from console: <strong>sv_cheats 1</strong>    <br />3.) from console (as many as you want): <strong>bot -team red -class scout</strong>     <br />4.) from console: <strong>sv_cheats 0     <br /></strong>5.) from console (DO NOT FORGET TO DO THIS!!): <strong>retry</strong> </p>
<p>6.) EARN YOUR ACHIEVEMENTS </p>
<p>7.) from conosle (just in case as some achievements require death): <strong>kill</strong>     <br />8.) You&#039;re done. </p>
<p>Notes:   <br />This turns cheats on to add the bots, then turns it off. The retry tells the client to retry the last connection which will allow the client to detect that cheats are not on anymore (which means you can earn achievements). The bots will stay after the retry command. </p>
<p>To move them around you can use the console command: <strong>bot_mimic</strong>    <br />bot_mimic 1 turns it on, bot_mimic 2 turns it off. </p>
<p>The only reason I know about it is because I don&#039;t have a large set of steam friends and some of these achievements can&#039;t be earned. Again, just disseminating information. I don&#039;t know how Valve views this practice but it seems ok in my book (that and 5 bucks will get you a coffee at Starbucks) so don&#039;t shoot the messenger. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/02/team-fortress-2-achievements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game: Dead Space first thoughts</title>
		<link>http://blog.johnminadeo.com/2009/02/game-dead-space-first-thoughts/</link>
		<comments>http://blog.johnminadeo.com/2009/02/game-dead-space-first-thoughts/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 01:10:33 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[mini-review]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/02/game-dead-space-first-thoughts/</guid>
		<description><![CDATA[“Only the Dead Survive. A massive deep-space mining ship goes dark after unearthing a strange artifact on a distant planet. Engineer Isaac Clarke embarks on the repair mission, only to uncover a nightmarish blood bath — the ship&#039;s crew horribly &#8230; <a href="http://blog.johnminadeo.com/2009/02/game-dead-space-first-thoughts/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img title="Dead Space" style="border-right: 0px; border-top: 0px; display: inline; margin: 0px 5px 0px 0px; border-left: 0px; border-bottom: 0px" height="116" alt="Dead Space" src="http://jm.monkk.com/__oneclick_uploads/2009/02/header.jpg" width="244" align="left" border="0" /> </p>
<p>“Only the Dead Survive.</p>
<p>A massive deep-space mining ship goes dark after unearthing a strange artifact on a distant planet. Engineer Isaac Clarke embarks on the repair mission, only to uncover a nightmarish blood bath — the ship&#039;s crew horribly slaughtered and infected by alien scourge. Now Isaac is cut off, trapped, and engaged in a desperate fight for survival.” &#8211;<a href="http://store.steampowered.com/app/17470/" target="_blank">Steampowered.com</a></p>
<p>So, being completed disgusted with the lack-luster array of games on the market today, I thought, ok, what the heck I’m bored, I’ll give this one a try, plus it was $39.99 instead of the mandatory $49.99 games seem to be fetching these days and got some decent reviews. At any rate, &lt;shock&gt;I’m glad I did!&lt;/shock&gt;</p>
<p>It’s an XBOX title that has been “ported” to PC, which, if you’ve tried a few of these before, you know can be hit and miss especially with mapping controls from a controller to a keyboard and mouse. I’ll give it to ‘em, they did a pretty good job. The mouse is a little sluggish when moving around the Save Game menu, but other then that, no problems.</p>
<p>It’s a third-sh person sci-fi horror shooter. By Third-ish I mean, you get a 3rd person view of yourself, but they did something pretty interesting. Your character is offset to the lover left corner of the display. So at first it seems a little odd to play, however what it does allow is the menu-ing system (inventory, objectives, etc) have a fairly large and readable view in the right area of the screen (click image for larger view):</p>
<p><a href="http://jm.monkk.com/__oneclick_uploads/2009/02/0000006495-1024x7681.jpg" target="_blank"><img title="HUD Screenshot" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="285" alt="HUD Screenshot" src="http://jm.monkk.com/__oneclick_uploads/2009/02/0000006495-1024x768-thumb1.jpg" width="504" border="0" /></a> </p>
<p>It’s actually pretty damn cool, if you pan your camera around, the HUD moves around and perspective changes. Well done fellas!</p>
<p>The game also features a purchasing system for upgrading your suit, weapons, ammo, etc. Which initially I am not a huge fan of but it’s limited enough to not be overwhelming and big enough to give you some options. I was a bit confused with what weapons used what ammo, perhaps a read through the manual would have been useful. But it’s not rocket science by a long shot.</p>
<p>Combat is definitely part of the game, but it by no means is the main purpose of the game (aka Doom3, and most other FPS titles). The story line, while a bit cliché (go to help a ship in space and surprise its deserted except for the baddies), really draws you in. Not so much with the plot but how the game integrates it all together and really makes you want to learn more. Just the right combination.</p>
<p>During my first play, I went completely through the first mission and well into the second, and I was pretty tired when I started, it just sucked me in and kept me going. An interesting factor it has is anti-gravity sections. Your suit has some variety of magnet shoes with it, but in these anti-grav sections, you can walk on walls and ceilings and what not, pretty neat, although so far it seems to only be a “hey that’s cool” factor. These things are always a little hard to negotiate and definitely ripped me out of the world to consider how I have to move and use what controls to get to where I need to go. But so far it’s been pretty limited, so maybe it’s not a big deal.</p>
<p>The only annoying part is the game was published by EA which I am not a fan of, but Monolith made a damn good title here, DAMN GOOD!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/02/game-dead-space-first-thoughts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Winter…</title>
		<link>http://blog.johnminadeo.com/2009/01/winter%e2%80%a6/</link>
		<comments>http://blog.johnminadeo.com/2009/01/winter%e2%80%a6/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 03:32:03 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[not a fan]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/01/winter%e2%80%a6/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://jm.monkk.com/__oneclick_uploads/2009/01/winter.jpg" target="_blank"><img title="winter" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="395" alt="winter" src="http://jm.monkk.com/__oneclick_uploads/2009/01/winter-thumb.jpg" width="539" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/01/winter%e2%80%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A foray into Flash</title>
		<link>http://blog.johnminadeo.com/2009/01/a-foray-into-flash/</link>
		<comments>http://blog.johnminadeo.com/2009/01/a-foray-into-flash/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 13:59:12 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[action script]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2009/01/a-foray-into-flash/</guid>
		<description><![CDATA[I recently had the opportunity to do a small enhancement to a web site. In particular a simple file upload “page” so that their logged in users can upload a pdf file to them. The site is a asp.net based &#8230; <a href="http://blog.johnminadeo.com/2009/01/a-foray-into-flash/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I recently had the opportunity to do a small enhancement to a web site. In particular a simple file upload “page” so that their logged in users can upload a pdf file to them. The site is a asp.net based site, so we could have used the asp file upload component, but it has no feedback while it’s waiting. So given the market share of Flash Vs. say JavaScript, Java, etc. We went with flash.</p>
<p>It was really actually a great project in that small and focused enough to be very manageable and I’d been looking for an excuse to play with it, but I’m not a graphics guy so I haven’t really had the opportunity to ever use it. </p>
<p>So, what I ended up doing was grabbing a file upload widget from FlahsDen ( <a title="http://flashden.net/item/upload-gadget/12202" href="http://flashden.net/item/upload-gadget/12202">http://flashden.net/item/upload-gadget/12202</a> ) It’s a fine widget and you get the source code. This particular component is made with the intent that it be embedded within a Flash based application. It’s quite configurable and had it up and working within a few hours of playing with it. Pretty good documentation to boot!</p>
<p>I embedded it within a very simple Flash data entry fields. The flow is, you fill out the form and the upload widget becomes usable and you upload the file. The page that accepts the incoming file and it’s accompanying form data then inserts the image as a binary blob in the DB and the values are inserted into the database as well.</p>
<p>When all is said and done it looks much like this (click for larger image):</p>
<p><a href="http://jm.monkk.com/__oneclick_uploads/2009/01/flashfinished1.jpg" target="_blank"><img title="flash-finished" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="136" alt="flash-finished" src="http://jm.monkk.com/__oneclick_uploads/2009/01/flashfinished-thumb1.jpg" width="244" border="0" /></a> </p>
<p>The most difficult portion was writing the logic to control the date pickers, leap years and all. Actionscript 3 is essentially a strong type-able JavaScript. The syntax is slightly different but easy to get used to. It’s a little “sloppy” by which I mean undisciplined coding will lead to spaghetti code on the inside.</p>
<p>Once I got over the learning curve of Adobe Flash CS4, coding was nice. I used a programmatic event driven approach and it worked out really well. I was expecting a much more difficult time when I went to try sending the form data and the file upload which the purchased widget does via a FileReference. But it worked just like I wanted it to. Unfortunately the FileReference.Upload call throws away any http headers you may want to provide. I didn’t need that but ya never know.</p>
<p>Another interesting thing I found was that the combo box controls don’t initialize their selected index. I don’t know why I expected a fat 0 (zero) but it’s –1. I understand the ability to notice the default state’s value Vs.. a selected one, but for some reason that stuck with me.</p>
<p>In retrospect, the only thing I would have done differently was to make the form portion, straight asp.net dynamic html and disabled the flash uploader when the form wasn’t valid. Form values on the page are sent for the ride so I would never had to broker the user provided fields into the uploader to ride on it’s FileReference request.</p>
<p>At any rate, I’m left feeling intrigued and somewhat excited. I would like to work on some animation coding and perhaps pursue some more “real” custom flash based applications for clients.</p>
<p>I really wanted to hate it, and *hangs head in shame* kinda &lt;3 it&#160;&#160; <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_surprised.gif' alt=':-o' class='wp-smiley' /> </p>
<p>&#8211;Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2009/01/a-foray-into-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AT&amp;T Uverse is AWFUL!</title>
		<link>http://blog.johnminadeo.com/2008/12/att-uverse-is-awful/</link>
		<comments>http://blog.johnminadeo.com/2008/12/att-uverse-is-awful/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 10:53:20 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[at&t]]></category>
		<category><![CDATA[fail]]></category>
		<category><![CDATA[uverse]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/12/att-uverse-is-awful/</guid>
		<description><![CDATA[Ok ya got me, awful is nowhere near strong enough a word but it&#039;ll have to do. Why? Ok here we go: 1) If you have a TV it MUST have a set top box otherwise you&#039;d better have an &#8230; <a href="http://blog.johnminadeo.com/2008/12/att-uverse-is-awful/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ok ya got me, <strong>awful</strong> is nowhere near strong enough a word but it&#039;ll have to do. Why? Ok here we go:</p>
<p>1) If you have a TV it MUST have a set top box otherwise you&#039;d better have an air antennae or the tv is useless. $5.00 a month per set top box. </p>
<p>2) 4 Incoming TV streams. So you can watch different channels on 4 TV&#039;s. if you have 5 simultaneous viewers on 5 TV&#039;s, one of them must watch what someone else is watching or they can watch a DVR recorded show (if ya spring for the extra money for a DVR set top box.). Ok, sounds a little constraining but that&#039;s a lot of TV to watch at once right? Oh you forgot about the DVR didn&#039;t you. If the DVR is recording two different programs at the same time, there goes 2 of your streams leaving you 2 streams left to watch on your remaining TVs.</p>
<p>3) If you opt to pay the additional $10 a month for HD programming, 2 of your 4 channels are HD, the other 2 are SD. So if you happen to DVR those two programs in HD (and why the hell wouldn&#039;t you???) well you&#039;ve still only got 2 channels left, but they are SD so enjoy watching that SD on your HD TV ya paid all that money for.</p>
<p>4) Only 1 DVR per house-hold. You can watch recorded shows from the DVR on any of your TV&#039;s but you can only schedule recordings from the DVR Tv (or the web based interface (which is only available to the primary account holders login on their site, so sorry spouse, roommate, or children, better ask the account holder to do it for ya&#8230;))</p>
<p>5) The 2Wire DSL modem / wire-less router combo. OK the device itself isn&#039;t awful for your average web-surfing person, but I have a swell D-Link wireless router that I purchased because it has all the features I require. It did work behind the 2Wire one, but has no way to disable the router or route all traffic to the real router so it effectively crippled some features (automatic DYNDNS updates, UPNP firewall, etc)</p>
<p>6) Understaffed installers and incompetent customer service personnel. I&#039;m sure there are a few who actually know how to do their job, but I have no empirical evidence of that. The woman I spoke with to order my service got the number of TV&#039;s wrong (3 instead of 4, I realize there only one away but its a pretty important detail&#8230;) So of course when the installer gets there, he only has 3 for me. 6 hours later he leaves after drilling 2 holes and running cable to 2 rooms 10 feet from each other (&#8230;.) and tells me I can schedule another box to be delivered. Which I do, of course the 1st appointment available is 3 weeks out. So I tell them to cancel the service, and magically they can drop it off 2 days out. So I take the day off work and wait for my 8:00 am &#8211; 10:-00 am appointment. 10:15 rolls around and the installer says he&#039;s running late and won&#039;t be there until between 10:00 and 12:00. 12:30 rolls around and I call them as I&#039;ve heard <strong>NOTHING</strong> and he&#039;s running late and says he won&#039;t be there until between 12:00 and 2:00. 2:15 rolls around and surprise, he won&#039;t bet there until between 2:00 and 4:00. So at 4:30 I call them to see where the hell he is and of course customer service says no installer has been assigned to do anything and they can schedule one (&#8230;wait for it&#8230;) in 3 weeks. </p>
<p>So, thankfully, I never cancelled my Time Warner service as I suspected AT&amp;T Uverse was incompetent and lo and behold, they are. So I re-wired my cable in 15 minutes (6 freaking hours it took the moron to wire in the Uverse) and I have reliable service again. </p>
<p>On the positive side, the set top box UI is way better then Time Warners, but that ain&#039;t any reason to keep the service.</p>
<p>Clusterfuck is far more an appropriate term. I suggest you stay FAR FAR AWAY from this garbage. Asta la vista baby, you can suck it!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/12/att-uverse-is-awful/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A thought or two on Left 4 Dead</title>
		<link>http://blog.johnminadeo.com/2008/11/a-thought-or-two-on-left-4-dead/</link>
		<comments>http://blog.johnminadeo.com/2008/11/a-thought-or-two-on-left-4-dead/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 11:13:03 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/11/a-thought-or-two-on-left-4-dead/</guid>
		<description><![CDATA[Right off the bat, let me say, this is a great game! Fun, suspenseful, and Co-Op! If you enjoy shooting zombies, You just can&#039;t go wrong here. Hats off to Valve. Single player and Co-Op (THANK YOU VALVE for bringing &#8230; <a href="http://blog.johnminadeo.com/2008/11/a-thought-or-two-on-left-4-dead/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.l4d.com/" target="_blank"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="198" alt="Left 4 Dead" src="http://jm.monkk.com/__oneclick_uploads/2008/11/survivors1024x768.jpg" width="244" align="right" border="0" /></a> </p>
<p>Right off the bat, let me say, this is a great game! Fun, suspenseful, and Co-Op! If you enjoy shooting zombies, You just can&#039;t go wrong here. Hats off to Valve.</p>
<p>Single player and Co-Op (THANK YOU VALVE for bringing it back!!) are great.</p>
<p>Versus&#8230; Well, I just don&#039;t like it much&#8230; Random team, random player? Why the long respawn for the infected? The survivors have far superior fire-power&#8230;</p>
<p>What about 32 player Death Match and some CTF?</p>
<p>Alas&#8230; </p>
<p>Totally awesome game otherwise, go buy it!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/11/a-thought-or-two-on-left-4-dead/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Whoa! Here’s some bad code</title>
		<link>http://blog.johnminadeo.com/2008/11/whoa-here%e2%80%99s-some-bad-code/</link>
		<comments>http://blog.johnminadeo.com/2008/11/whoa-here%e2%80%99s-some-bad-code/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 04:34:56 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[fail]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/11/whoa-here%e2%80%99s-some-bad-code/</guid>
		<description><![CDATA[This post has no basis in advice or analysis, I just was documenting an existing SharePoint site I sadly must maintain at work. If you&#039;ve read my posts in the past, you&#039;ll remember that I am not a big SharePoint &#8230; <a href="http://blog.johnminadeo.com/2008/11/whoa-here%e2%80%99s-some-bad-code/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This post has no basis in advice or analysis, I just was documenting an existing SharePoint site I sadly must maintain at work. If you&#039;ve read my posts in the past, you&#039;ll remember that I am not a big SharePoint fan. Well, this isn&#039;t really SharePoint related (I just wanted to kick an app while it was down with that last comment) aside from a demonstration of how things can go horribly awry when one tries to mix development methodologies for SharePoint&#8230;</p>
<p>The application in question is a corporate use Room Reservation system. Oddly, the company uses Lotus Notes which has an ugly (though quite functional) room reservation system built right in. In my opinion, this never should have been created. The company is trying to get away from Notes but until they migrate the 1500 &#8211; 2000 custom lotus notes database applications to SharePoint, Notes is not going anywhere. It should have been one of the last items migrated and it should have just been migrated to Microsoft Exchange as it also has a good meeting scheduler.</p>
<p>At any rate, the reason for the post. Check out this code snippet from a C# 2.0 Web Service which runs under SharePoint. To be honest, until I saw this, I didn&#039;t even know C# supported &quot;goto&quot; *slaps head*</p>
<p>And sadly that&#039;s one of the more clear-cut code chunks up in there. This my friends is why we have Coding Best Practices and Code Reviews&#8230; DON&#039;T LET THIS HAPPEN TO YOU (and you better pray I don&#039;t ever catch you writing something like this, you will be flogged!)</p>
<p><font face="cou" color="#008000" size="1">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; double num = -41.0;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; double num2 = 39.0;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; string str22 = str10;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (str22 != null)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (!(str22 == &quot;week&quot;))      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (str22 == &quot;day&quot;)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; str12 = &quot;&lt;Where&gt;&lt;DateRangesOverlap&gt;&lt;FieldRef Name=\&quot;EventDate\&quot; /&gt;&lt;FieldRef Name=\&quot;EndDate\&quot; /&gt;&lt;FieldRef Name=\&quot;RecurrenceID\&quot; /&gt;&lt;Value Type=\&quot;DateTime\&quot;&gt;&lt;Today /&gt;&lt;/Value&gt;&lt;/DateRangesOverlap&gt;&lt;/Where&gt;&quot;;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; goto Label_01A5;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; else      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; str12 = &quot;&lt;Where&gt;&lt;DateRangesOverlap&gt;&lt;FieldRef Name=\&quot;EventDate\&quot; /&gt;&lt;FieldRef Name=\&quot;EndDate\&quot; /&gt;&lt;FieldRef Name=\&quot;RecurrenceID\&quot; /&gt;&lt;Value Type=\&quot;DateTime\&quot;&gt;&lt;Week /&gt;&lt;/Value&gt;&lt;/DateRangesOverlap&gt;&lt;/Where&gt;&quot;;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; num = -8.0;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; num2 = 15.0;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; goto Label_01BB;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; Label_01A5:      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; num = -1.0;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; num2 = 1.0;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; Label_01BB:      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; time2 = time.AddDays(num);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; DateTime time3 = time.AddDays(num2);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; string roomid = &quot;0&quot;;</font></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/11/whoa-here%e2%80%99s-some-bad-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buh-Bye Republicans</title>
		<link>http://blog.johnminadeo.com/2008/11/buh-bye-republicans/</link>
		<comments>http://blog.johnminadeo.com/2008/11/buh-bye-republicans/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 12:20:55 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[political]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/11/buh-bye-republicans/</guid>
		<description><![CDATA[Come back in 2 years and regulate the senate 4tw]]></description>
			<content:encoded><![CDATA[<p>Come back in 2 years and regulate the senate 4tw <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/11/buh-bye-republicans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Understanding Palin</title>
		<link>http://blog.johnminadeo.com/2008/10/understanding-palin/</link>
		<comments>http://blog.johnminadeo.com/2008/10/understanding-palin/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 18:36:47 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[funny]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/10/understanding-palin/</guid>
		<description><![CDATA[Came across this in an email and it sums it up pretty well   (Click on the image to get a larger, more read-able image)]]></description>
			<content:encoded><![CDATA[<p>Came across this in an email and it sums it up pretty well <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />   (Click on the image to get a larger, more read-able image)</p>
<p><a target="_blank" href="http://jm.monkk.com/__oneclick_uploads/2008/10/understandingpalin.jpg"><img border="0" width="529" src="http://jm.monkk.com/__oneclick_uploads/2008/10/understandingpalin-thumb.jpg" alt="Understanding Palin" height="406" style="border: 0px" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/10/understanding-palin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some musings on Sharepoint</title>
		<link>http://blog.johnminadeo.com/2008/09/some-musings-on-sharepoint/</link>
		<comments>http://blog.johnminadeo.com/2008/09/some-musings-on-sharepoint/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 08:45:31 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/09/some-musings-on-sharepoint/</guid>
		<description><![CDATA[First let me say, if you&#039;re looking for some tutorials or samples related to Sharepoint, this post isn&#039;t for you but feel free to read on. At my new employer&#039;s, I have to do a fair amount of Sharepoint development. &#8230; <a href="http://blog.johnminadeo.com/2008/09/some-musings-on-sharepoint/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>First let me say, if you&#039;re looking for some tutorials or samples related to Sharepoint, this post isn&#039;t for you <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  but feel free to read on.</p>
<p>At my new employer&#039;s, I have to do a fair amount of Sharepoint development. Well that phrase right there is just ridiculously large in scope. Allow me to elaborate.</p>
<p>I like to say, Sharepoint is to Web Sites as Microsoft Access is to Databases. Great great tools when used for their intended purposes. Very bad when attempting to stretch them to do things they just weren&#039;t intended to do. Yeah, you can make a front end to your database with Access, but if you need scalable deployable solutions for an enterprise or mass user base&#8230; Well, that just isn&#039;t how it&#039;s done. When Sharepoint is used as a collaboration site, it is awesome. Easy to set up and perform basic customizations. It can be styled very nicely by graphic artists and web design folks but when you try to stretch it with configuration settings alone, you end up with hard to maintain ugly solutions.</p>
<p>There are two flavors of Sharepoint. One is Windows Sharepoint Services (WSS) and the other is the Microsoft Office Sharepoint Services (MOSS). WSS is a free &quot;Sharepoint Server&quot; (the SS in W<strong><font color="#ff0000">SS</font></strong> and MO<strong><font color="#ff0000">SS</font></strong>) <em>[ download: </em><font face="courier" size="-1"><a title="http://www.microsoft.com/downloads/details.aspx?FamilyId=D51730B5-48FC-4CA2-B454-8DC2CAF93951&amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=D51730B5-48FC-4CA2-B454-8DC2CAF93951&amp;displaylang=en" target="_blank">http://www.microsoft.com/downloads/details.aspx?FamilyId=D51730B5-48FC-4CA2-B454-8DC2CAF93951&amp;displaylang=en</a></font><em> (requires Windows Server 2003 (you can grab a Sharepoint Virtual Machine for the Microsoft Virtual Server as well), search the download site for Sharepoint VHD]</em> MOSS is built on top of WSS and contains many additional webparts (I&#039;ll explain a little later) as well as the additional services and administration applications to create and manage web farms and multiple site collections. The webparts are the value-add. One such webpart is the Business Data Catalog which auto-magically allow various data sources (web services, databases, etc) to be used as a Sharepoint list while Sharepoint and the BDC do the heavy lifting of getting, caching, updating. etc.</p>
<p>Sharepoint has a few intrinsic &quot;types&quot; that one can work with on a SP site: Lists, Libraries, and Webparts. </p>
<p>A list is simply that, a list of &quot;things&quot;. You can best think of these lists as database tables, though they are not stored as such. Each one comes stock with a few default columns such as created by, created date, last modified, that sort of thing. You then can add as many additional columns as you require to more properly define the &quot;thing&quot; in the list. Such as a list of customers, or regions, or support staff members, etc. These are all stored in a content database behind the scenes. If you modify this content database outside of using the Sharepoint provided tools and applications, you will void your support contract on that installation (which considering the MOSS retail server for enterprises in the tens of thousands of dollars in licensing, not something you want to void your warranty with!) These lists automatically have generated Create, Edit, and View pages which can be customized to further enhance working with them. And Sharepoint manages all this for you.</p>
<p>A Library is one of the default &quot;applications&quot; it provides. At it&#039;s heart it is a list, but it has special coding to in the support pages for the list that allow it work with special types of lists. Sharepoint comes with a few built in libraries, such as a Document Library and a Picture Library. As I mentioned these lists are persisted in a database and since images and documents (such as word files, or pdfs) are binary files, you need to store them, retrieve them, and view them in special manners, depending on what type it is. The libraries isolate that and do it for you and provide you with thumbnails in the picture library views and open up word to edit word documents, and excel to edit spreadsheets. All very integrated with office (hence the MO in MOSS, though WSS has these libraries as well.)</p>
<p>A Webpart is essentially a WebControl (in asp.net terms). They are custom web controls that implement various Sharepoint API interfaces. Calendar Control? That&#039;s a webpart.Ghant Chart? That&#039;s a webpart. Anything you can code as a web control can be a webpart. Sharepoint comes with a lot of different ones and they are all pretty useful for their purpose.</p>
<p>The sticky wicket is that you can do a helluva lot without needing to write a webpart. If you&#039;re doing Sharepoint development and not coding webparts, you are using MS Sharepoint Designer, a must have and of course, it is not free. But it does have a fine configurator for the DataView webpart. In a nutshell, the dataview interacts with some external source of data (web service, database, xml file on the files-ystem) and renders it to a list with a customizable XSLT. With something like that you can completely render the data with html markup to the page any damn way you want. You can even pass querystring parameters into it, pretty flexible and you can accomplish a lot of simple-ish apps this way)</p>
<p><strong>I strongly suggest</strong> that anytime you discard all the other Sharepoint webparts and libraries to use dataviews and custom xslt, you <strong>INSTEAD develop your own custom webpart!!</strong> It will be far more maintainable in the end. And if it&#039;s a really complex application that needs to interact with a lot of systems around the enterprise, make a standard asp.net application and host it in a iframe webpart. That is what Microsoft intended. However, most IT managers just want everything in Sharepoint and they want it in there now because Jim in accounting made his group&#039;s Sharepoint site by himself in 2 days. Of course it&#039;s just a few custom lists and no theming or workflows. And that&#039;s great! But they don&#039;t understand the nuances in the differences of the applications they want, it just gets lumped under Sharepoint and that is a <strong>MISTAKE</strong>!</p>
<p>More later, cross your fingers boys and girls, the rabbit hole goes pretty deep on this one I suspect!</p>
<p>&#8211;Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/09/some-musings-on-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to delete Internet Explorer temporary files and cookies</title>
		<link>http://blog.johnminadeo.com/2008/08/how-to-delete-internet-explorer-temporary-files-and-cookies/</link>
		<comments>http://blog.johnminadeo.com/2008/08/how-to-delete-internet-explorer-temporary-files-and-cookies/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 08:40:50 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[how to]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/08/how-to-delete-internet-explorer-temporary-files-and-cookies/</guid>
		<description><![CDATA[Since I wanted to test Windows Live Writer and had mentioned deleting the temporary Internet files from the web browser I thought I&#039;d create a little post and see how it all fairs. Enjoy First start good old Internet explorer. &#8230; <a href="http://blog.johnminadeo.com/2008/08/how-to-delete-internet-explorer-temporary-files-and-cookies/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Since I wanted to test Windows Live Writer and had mentioned deleting the temporary Internet files from the web browser I thought I&#039;d create a little post and see how it all fairs. Enjoy <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>First start good old Internet explorer. Click on the Tools menu drop down (if you do not see a menu list with &quot;Tools&quot; on it as the image below shows, try pressing the ALT key. This tells windows to show you short-cut keys and enable hiding menus)</p>
<p><a href="http://jm.monkk.com/__oneclick_uploads/2008/08/1-tools-menu-options1.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="417" alt="1-Tools Menu-Options" src="http://jm.monkk.com/__oneclick_uploads/2008/08/1-tools-menu-options-thumb1.jpg" width="493" border="0" /></a>&#160;</p>
<p>Click that &quot;Internet Options&quot; item at the bottom. This will bring up the Internet Options dialog which looks like this:</p>
<p><a href="http://jm.monkk.com/__oneclick_uploads/2008/08/2-internet-options-general-tab1.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="484" alt="2-Internet Options - General Tab" src="http://jm.monkk.com/__oneclick_uploads/2008/08/2-internet-options-general-tab-thumb1.jpg" width="391" border="0" /></a> </p>
<p>At this point, click the &quot;Delete&#8230;&quot; button. This will bring up the Delete Browsing History dialog box.</p>
<p><a href="http://jm.monkk.com/__oneclick_uploads/2008/08/3-delete-browsing-history-delete-files-and-delete-cookies1.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="380" alt="3-Delete Browsing History-Delete Files and Delete Cookies" src="http://jm.monkk.com/__oneclick_uploads/2008/08/3-delete-browsing-history-delete-files-and-delete-cookies-thumb1.jpg" width="398" border="0" /></a> </p>
<p>Click the &quot;Delete files&quot; button and you will be prompted to Ok the deletion of the files. Choose &quot;Yes&quot;:</p>
<p><a href="http://jm.monkk.com/__oneclick_uploads/2008/08/4-delete-files-confirm1.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="117" alt="4-Delete Files Confirm" src="http://jm.monkk.com/__oneclick_uploads/2008/08/4-delete-files-confirm-thumb1.jpg" width="290" border="0" /></a> </p>
<p>Then click the &quot;Delete Cookies&quot; button and you will be prompted to Ok the deletion of the files. Choose &quot;Yes&quot; <em>(<strong><font color="#ff0000">Warning:</font></strong> This will cause some sites that store your login information on your browser to prompt you again for your name and password.)</em> :</p>
<p><a href="http://jm.monkk.com/__oneclick_uploads/2008/08/5-delete-cookies-confirm1.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="117" alt="5-Delete Cookies Confirm" src="http://jm.monkk.com/__oneclick_uploads/2008/08/5-delete-cookies-confirm-thumb1.jpg" width="295" border="0" /></a> </p>
<p>And you my friend are done. Close down all running instances of Internet Explorer and restart the browser and you should be good to go. Good luck!</p>
<p>Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/08/how-to-delete-internet-explorer-temporary-files-and-cookies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coding without comments and the ‘Single Use’ Principle</title>
		<link>http://blog.johnminadeo.com/2008/07/coding-without-comments-and-the-%e2%80%98single-use%e2%80%99-principle/</link>
		<comments>http://blog.johnminadeo.com/2008/07/coding-without-comments-and-the-%e2%80%98single-use%e2%80%99-principle/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 08:07:06 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[style]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/07/coding-without-comments-and-the-%e2%80%98single-use%e2%80%99-principle/</guid>
		<description><![CDATA[So it&#039;s all the rage to talk about how comments are bad to use, bad to rely on, and should only be used to describe why something is being not done, not how. And for the most part I agree. &#8230; <a href="http://blog.johnminadeo.com/2008/07/coding-without-comments-and-the-%e2%80%98single-use%e2%80%99-principle/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So it&#039;s all the rage to talk about how comments are bad to use, bad to rely on, and should only be used to describe why something is being not done, not how. And for the most part I agree. As soon as a comment is written it becomes stale. It&#039;s hard enough to get the time to update the code, much less updating the comment. With today&#039;s integrated development environments with name completion and the like, there is no excuse for using abbreviated variable or function names in your code. This is not to say that variable names should go on forever, they should be as long as they need to be to express their purpose and NO LONGER!</p>
<p> &#039;Fair nuff, no real problems here. Now, the Single Use Principle states that some &#8220;thing&#8221; should have exactly One purpose.  This &#8220;thing&#8221; is either an object, class, function, some item of encapsulation.</p>
<p>Again, who can argue with that, makes sense.</p>
<p>Now, my annoyance <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  (c&#039;mon you knew it was coming) So ok, we have these functions which end up being relatively small and easy to read as we&#039;ve emplopyed single use and descriptive variable/function names this is a good thing. The downside is, you now have class files with many many many small functions and getting a big picture view of what is actually happening becomes impossible&#8230; Instead of spending all your time figuring out what code does, you end up diagramming the call mapping of your functions so you can find out what is really being called, in what order. All these small almost atomic functions become more time wasting to follow then before we employed our &#8220;Best Practices&#8221; &#8230;</p>
<p> Very disappointing folks. Got a good solution? Neither do I, but I suspect it comes in the form of more advances to the development environment. I would love to see expandable function calls in code so a simple expand click would show you whats actually going on without having to diagram it all out. I know visual studio has a code declaration window which is great but not quite what the doctor ordered.</p>
<p>At any rate, the best practices are worth it, but let&#039;s not pretend they aren&#039;t causing another, and perhaps larger, maintenance issue.</p>
<p>Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/07/coding-without-comments-and-the-%e2%80%98single-use%e2%80%99-principle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>And the heavens shall tremble</title>
		<link>http://blog.johnminadeo.com/2008/07/and-the-heavens-shall-tremble/</link>
		<comments>http://blog.johnminadeo.com/2008/07/and-the-heavens-shall-tremble/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 22:09:33 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[diablo]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/07/and-the-heavens-shall-tremble/</guid>
		<description><![CDATA[Diablo 3, &#039;Nuff said!]]></description>
			<content:encoded><![CDATA[<p><a href="http://blizzard.com/us/splash.html" target="_new" title="Diablo III"><img src="http://jm.monkk.com/__oneclick_uploads/2008/07/diablo31.png" alt="Diablo III" /></a></p>
<p>Diablo 3, &#039;Nuff said!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/07/and-the-heavens-shall-tremble/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project References with Visual Studio</title>
		<link>http://blog.johnminadeo.com/2008/07/project-references-with-visual-studio/</link>
		<comments>http://blog.johnminadeo.com/2008/07/project-references-with-visual-studio/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 05:45:24 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/07/project-references-with-visual-studio/</guid>
		<description><![CDATA[So, you&#039;re writing an application, and you break down the functional parts to more base layer services and utility assemblies, and now you want to create a new application and re-use some of your code. My &#8220;go to&#8221; answer has &#8230; <a href="http://blog.johnminadeo.com/2008/07/project-references-with-visual-studio/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So, you&#039;re writing an application, and you break down the functional parts to more base layer services and utility assemblies, <strong>and now</strong> you want to create a new application and re-use some of your code.</p>
<p>My &#8220;go to&#8221; answer has always been separate assemblies copied to a global project bin and then adding references to the bins in whatever application needs them. For example:</p>
<p><img src="http://jm.monkk.com/__oneclick_uploads/2008/07/directorystructure.jpg" title="Example of a directory layout" alt="Example of a directory layout" align="left" border="1" hspace="5" /> &#8220;Application 1&#8243; and &#8220;Application 2&#8243; represent two applications that are re-using logic. The &#8220;Libraries&#8221;directory off the root represents the project directory housing &#8220;Library 1&#8243; and &#8220;Library 2&#8243; which are the assemblies being re-used, they build to their respective bin directories. The &#8220;bin&#8221; directory off the root is the global bin where the binaries from &#8220;Library 1\bin\&#8221; and &#8220;Library 2\bin\&#8221; are copied to for re-use by the applications.</p>
<p>In the above scenario, the Applications reference the libraries from &#8220;monkk.com\bin&#8221; and as new versions of Library 1 and Library 2 are released, they can replace the existing ones when required.</p>
<p>The problem with this type of solution is that often times your libraries end up building on each other to create more complex libraries and soon you find yourself in an endless series of updating the various libraries for any new feature necessitated by the applications and so can lead to updating Application 2 because Library 2 had a for Application 1&#8230;<strong> Not Ideal!</strong></p>
<p>So, what to do, what to do?!?</p>
<p>Well a technique I&#039;ve now come to employ for just such scenarios is project references. I know, simple how could I not have thought of this? Well I had, but for some reason I&#039;ve been ignoring them because it just didn&#039;t seem &#8220;right&#8221; because of how intimately coupled the assemblies and projects can become but truth be told, it&#039;s so natural (after being forced to use it) I don&#039;t know how I ever got along without it. I suppose the problem has been, when you use 3rd party assemblies, it&#039;s just not an options, and if all your library assemblies are supposed to be stand-alone assemblies, shouldn&#039;t referencing them both be the same?</p>
<p>Well no, it makes complete sense to modify various Libraries while working on Application 1, and likewise for 2. There are some areas for concern, such as not breaking Application 2 while modifying Application 1 and it&#039;s Library 2 use. But with a good set of Unit tests for both applications and the libraries themselves, you can do this with less risk. And of course best practices for published assemblies come into play such as adding new function signatures instead of changing existing ones (of re-factoring the internals in the process.)</p>
<p>This obviously applies more to companies writing their own frameworks where the libraries stay internal. My point is this doesn&#039;t really scale to mass consumer use due to support issues. In that case, as I&#039;m sure you are, each binary is it&#039;s own and the extra work of version management of the application used assemblies, but such is life and it&#039;s what we&#039;re paid for so, enjoy!</p>
<p>&#8211;<br />
Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/07/project-references-with-visual-studio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yup, I got down-sized :-(</title>
		<link>http://blog.johnminadeo.com/2008/07/yup-i-got-down-sized/</link>
		<comments>http://blog.johnminadeo.com/2008/07/yup-i-got-down-sized/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 10:17:17 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[job search]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/07/yup-i-got-down-sized/</guid>
		<description><![CDATA[&#160; John Minadeo Summary Experienced application developer that has been working in software development  for the past 11 years with a strong focus on database and backend architecture and data transformations in Microsoft centric environments and strong familiarity with their &#8230; <a href="http://blog.johnminadeo.com/2008/07/yup-i-got-down-sized/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.linkedin.com/in/johnminadeo" target="_blank"><img src="http://www.linkedin.com/img/webpromo/btn_myprofile_160x33.gif" alt="View John Minadeo&#039;s profile on LinkedIn" border="0" width="160" height="33" /></a></p>
<p style="border-style: none none solid; border-color: -moz-use-text-color -moz-use-text-color windowtext; border-width: medium medium 1pt; padding: 0in 0in 4pt">&nbsp;</p>
<p class="Name"><span style="font-size: 22pt">John Minadeo<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &#039;Arial Black&#039;,&#039;sans-serif&#039;">Summary</span></p>
<p class="MsoBodyTextIndent3">Experienced application developer that has been working in software development <span> </span>for the past 11 years with a strong focus on database and backend architecture and data transformations in Microsoft centric environments and strong familiarity with their languages and tools.</p>
<p class="MsoNormal"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &#039;Arial Black&#039;,&#039;sans-serif&#039;">Skills<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt">Can display proficiency with the following skills and in the following areas:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><strong><span style="font-size: 9pt">Industries:</span></strong><span style="font-size: 9pt"> Insurance (Auto), Healthcare, Financial, Internet Development, General Software Development Contracting, B2B / B2C Web Site Development and back-end interfacing<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><strong><span style="font-size: 9pt">Languages:</span></strong><span style="font-size: 9pt"> C#, C/C++, VB (6 and .NET), Python, Perl, PHP, Java, JavaScript<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><strong><span style="font-size: 9pt">Technologies:</span></strong><span style="font-size: 9pt"> XML, XSL/T, HTML, ASP / ASP.NET, Web Services, COM / DCOM, Java Server Pages / Java Servlets, Relational Database Design, Firewalls / Network Security, Webtrends Reporting Package, PayPal Payment Integration<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><strong><span style="font-size: 9pt">Development Methodologies:</span></strong><span style="font-size: 9pt"> Object Orientated Design and Development, Test Driven Design, Agile Development, Waterfall Project Planning, Metrics Reporting<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><strong><span style="font-size: 9pt">Source Control:</span></strong><span style="font-size: 9pt"> Merant PVCS, CVS, Subversion, Visual Source Safe<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><strong><span style="font-size: 9pt">Tools:</span></strong><span style="font-size: 9pt"> MS Visual Studio (5, 6, 2003, 2005, 2008), Beyond Compare, Tortoise SVN, ReSharper<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><strong><span style="font-size: 9pt">Back-ends:</span></strong><span style="font-size: 9pt"> Active Directory / LDAP, MQ Server, DB2<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><strong><span style="font-size: 9pt">Server Configuration:</span></strong><span style="font-size: 9pt"> SQL Server 6.5, 7.0, 2000, 2005, RADIUS, IIS (3, 4, 5, 6) Web Server, Apache Web Server, MS VPN / DHCP, Exchange Server, NameD (DNS Server), Sendmail (Mail Server), Windows Network Administration, MS Certificate Server<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><strong><span style="font-size: 9pt">Operating Systems:</span></strong><span style="font-size: 9pt"> Windows 3.1/95/98/NT/2000/XP/Vista, Linux (Ubuntu, SuSE)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in"><!--[if !supportLists]--><span style="font-size: 9pt; font-family: Symbol"><span>·<span style="font-family: &#039;Times New Roman&#039;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal">         </span></span></span><!--[endif]--><span style="font-size: 9pt">Enthusiastic personality, Career motivated, Team player, Over 11 years of technical experience.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &#039;Arial Black&#039;,&#039;sans-serif&#039;">Experience<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><strong>2008 – Present</strong><span>                </span>Insurance.com <a href="http://www.insurance.com/">http://www.insurance.com</a><span>                       </span><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><span>                                            </span>Solon, OH<o:p></o:p></span></p>
<p class="MsoHeading7">Application Developer IV</p>
<p class="MsoNormal" style="margin-left: 0.5in">Hired to fill a senior level developer position in the expanding Communication business unit. Primary responsibilities include design and implementation of various forms of customer contact primarily email. Maintained and enhanced the stand alone custom email queuing and sending services written in C#. Also maintained the email content testing system for use by the QA department. Additional responsibilities included enhancing the Quoting Interview application to support and modify queuing logic for the various customer contact types. All development used formal development procedures such as design documentation and implementation plans, design and code reviews, and included the creation of new and maintaining of existing application unit tests using the Nunit testing framework. Also aided in the development of stored procedures and data structures to accommodate new functionality to the system.</p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><strong>2003 – 2007</strong><span>                     </span>Progressive Insurance <a href="http://www.progressive.com/">http://www.progressive.com</a><span>      </span><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><span>                                            </span><st1:place w:st="on"><st1:city w:st="on">Mayfield Village</st1:city>, <st1:state w:st="on">OH</st1:state></st1:place><o:p></o:p></span></p>
<p class="MsoHeading7">Application Developer Lead</p>
<p class="Normal9pt">Originally hired in to the Server Based Rating Platform Team to design, develop, and maintain applications and on-line services to facilitate the quoting and selling of vehicle insurance, primarily in the agent channel of business. Application development used C++ with the standard template library as well as some windows COM components. Created and maintained tools to support the creation and testing of internal applications. Participated in creating the new motorcycle product for use with Progressive’s Comparison Rater initiative piloted with Harley-Davidson/Buell in <st1:state w:st="on"><st1:place w:st="on">Florida</st1:place></st1:state>, then deployed for all quoting states. I also functioned as the group liaison to the internal Tools Team to influence design and development as well as training and support for the maintenance of existing and the creation of new support tools. Joined the internal Agency Tools Team in late 2005 where I developed and maintained various tools to support IT tasks throughout the Agency Channel using C# for both Windows Forms and ASP.NET web services and intranet sites. Additionally, I helped with platform infrastructure development such as optimizing our in-house rule engine and converting the C++ code-base from Visual Studio 2003 to Visual Studio 2005 in preparation for moving to a new server operating system environment. Currently I am the Technical Lead on the Automated Testing application development using C# Windows Forms with a ASP.NET application for viewing division wide test results to support our 70+ in-house Quality Assurance analysts and testers, as well as consult to the Progressive Enterprise Tools Team on automated testing efforts for use company wide. Completed the following in-house training sessions for Progressive&#039;s Application Developers: Conducting Reviews, Targeted Selection, OO Principles, Software Development Methodology, Estimating, Claims Overview, QA for Developers, and Introduction to Insurance. Development consists of primarily C# / ASP.NET (using C#) as well as some legacy application maintenance on older C++ applications.</p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt">2<strong>003 – 2003</strong><span>                     </span>Cobb Community Collaborative <a href="http://www.cobbcollaborative.com/">http://www.cobbcollaborative.com</a><span>            </span><st1:place w:st="on"><st1:city w:st="on">Marietta</st1:city>, <st1:state w:st="on">GA</st1:state></st1:place><o:p></o:p></span></p>
<p class="MsoHeading7">Consultant</p>
<p class="Normal9pt">Converted existing site to a database driven website to ease future maintenance. Developed Microsoft Access database to fit the client’s lower budget grant-based not-for-profit environment.. Added a web enabled calendar to hi-light community events that can be maintained by the Collaborative and their associates. Provided training for their employees on maintaining the database as well as updating their site with Microsoft FrontPage and Macromedia DreamWeaver. Recommended new site host and migrated site to the new host.</p>
<p class="Normal9pt"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><strong>2002 – 2003</strong><span>                     </span>Spellbuddy.com <a href="http://www.spellbuddy.com/">http://www.spellbuddy.com</a><span>                  </span><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><span>                                            </span><st1:place w:st="on"><st1:city w:st="on">Canton</st1:city>, <st1:state w:st="on">GA</st1:state></st1:place><o:p></o:p></span></p>
<p class="MsoHeading7">Consultant</p>
<p class="Normal9pt">Designed and developed XML based website to showcase the client’s products. The site features an easily maintained news system, secure software delivery system, customizable user forums, as well as xml driven emailing subsystem. Database design in a Microsoft SQL Server 2000 environment. Produced in-house Visual Basic 6 and C#.NET tools to update content as well as aid in development of XML systems. Additionally wrote data import and export tools in C# .NET.</p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><strong>2002 – 2003</strong><span>                     </span>DrTango, Inc. <a href="http://www.drtango.com/">http://www.drtango.com</a><span>                              </span><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><span>                                            </span><st1:place w:st="on"><st1:city w:st="on">Roswell</st1:city>, <st1:state w:st="on">GA</st1:state></st1:place><o:p></o:p></span></p>
<p class="MsoHeading7">Web Application Developer</p>
<p class="Normal9pt">Developed XML based replacement for the general payment server involving MS SQL Server 2000, in a load balanced clustered environment. Participated in the process to add multiple language capabilities to the flagship product. Documented existing procedures and internally developed components. Participated in switching T1 providers for both the site connectivity and the VoIP phone system. Participated in the design and implementation of the network after a second remote site was added. Administered multiple MS SQL Servers, and load balanced IIS clusters as well as internal development IIS servers. Created documentation for developer’s of the application as well as documented the various components that make up the application. Re-Developed HTML Newsletter mailer in C# .NET.</p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><strong>1996– 2002</strong><span>                      </span>NetForce Development, Inc. <a href="http://www.nforce.com/">http://www.nforce.com</a><span>  </span></span><span style="font-size: 8pt">(no longer in business)</span><span style="font-size: 9pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><span>                                            </span><st1:place w:st="on"><st1:city w:st="on">Beachwood</st1:city>, <st1:state w:st="on">OH</st1:state></st1:place><o:p></o:p></span></p>
<p class="MsoHeading7">Senior Systems Analyst</p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt">The company was relatively small (15-18 employees) and most of my duties were that of a Senior Systems Analyst, though technical policy also fell on my shoulders. <o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt">Active Server Pages scripting for websites including pulling data from and storing data to databases, NT network administration (installs/setups, configuration, Exchange Server, SQL Server, MSDNS, IIS, MTS), Custom applications using Visual Basic 5 and 6, Server Side Com component creation for use under IIS in VB and within administrative scripts. I also lead development efforts for Client Systems Analysis and Database Design. Aside from development, I also performed the following duties: Project Management,<span>  </span>tutoring junior programmers, Security policy, Backup policy, Corporate Email Usage policy, devised / documented <span> </span>/ implemented and trained staff in Programming standards and Best practices. I advised management in Company growth planning, procedures for client problem call tracking, virus scans, client contact tracking, backups, technology research and selection plans for adoption into production environments, and wrote client technical proposals.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt">Some projects I lead the development at used Project Plan and Timeline creation, deliverable schedule, and team member coordination as well as documentation for all stages of the development cycle. And<span>  </span>include </span><span style="font-size: 9pt">E-Commerce site for the Sewing Machine division of the international company Husqvarna Viking (<a href="http://ordering.husqvarnaviking.com/" title="http://ordering.husqvarnaviking.com/">http://ordering.husqvarnaviking.com/</a>). An E-Commerce site which links authorized HV resellers and their customers to products available directly from Husqvarna. Integrated online sales with an AS400 at the <st1:place w:st="on"><st1:city w:st="on">Cleveland</st1:city></st1:place> headquarters for order fulfillment. Initial project only made sewing machine embroidery files available for purchase and download. I was also the Team Lead on &#8220;Phase 2&#8243; which added selling of traditional shipping products.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt">Team Lead during onsite project at the Cleveland Clinic Foundation, Cardiology Department to develop a Clinical Study Tracking and Reporting System for internal and subscription use. Using a 3-Tier Architecture model and COM / DCOM on the Microsoft Windows platform.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt">Team Lead on in house development for commercial release of OLLA (OnLine Learning Academy (<a href="http://www.olla.net" title="http://www.olla.net">http://www.olla.net</a>)). A Department of Defense funded research project of Lockheed Martin. My company took rights to the source, and repaired for production in D.O.D. schools. The <st1:place w:st="on"><st1:placename w:st="on">Resource</st1:placename> <st1:placetype w:st="on">Center</st1:placetype></st1:place> was redeveloped into a subscription type service for schools providing Internet resources ranked by curriculum. Also developed backend prototype for the &#8220;phase 2&#8243; system suited to Enterprise Education / Training and College level education. Exposed data services through COM objects in the form of an API.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt">Team Lead on Extranet for Crystal Internet Venture Fund. A internal website for clients authenticated to their network to view status of venture capital considerations currently pending.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.75in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><strong>1994–1996</strong><span>                       </span>Cyberspace Construction Company <span>                                      </span><st1:place w:st="on"><st1:city w:st="on">Cleveland</st1:city>, <st1:state w:st="on">OH</st1:state></st1:place><o:p></o:p></span></p>
<p class="MsoHeading7">Programmer</p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt">Conversion of data and databases from DB2 to MS Access and flat files using the C programming language. Additionally automated routine repetitive (such as newsgroup processing, email sending) tasks with scripts and programs. <o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &#039;Arial Black&#039;,&#039;sans-serif&#039;">Education</span><span style="font-size: 9pt; font-family: &#039;Arial Black&#039;,&#039;sans-serif&#039;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><strong>1999</strong><span>                                                    </span>Develop <st1:city w:st="on">Mentor</st1:city><span>                                                          </span><st1:place w:st="on"><st1:city w:st="on">Torrance</st1:city>, <st1:state w:st="on">CA</st1:state></st1:place><o:p></o:p></span></p>
<p class="MsoHeading7" style="margin-left: 1in"><span style="font-weight: normal">“Building Distributed Applications Using Visual Basic and COM”<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><strong>1994 &#8211; 1996</strong><span>                             </span>Electronic Technical Institute<span>                                              </span><st1:place w:st="on"><st1:city w:st="on">Cleveland</st1:city>, <st1:state w:st="on">OH</st1:state></st1:place><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 1in"><span style="font-size: 9pt">Associates Degree in Electronic Engineering<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><strong>1993 &#8211; 1994</strong><span><strong>  </strong>                             </span>Cleveland State University<span>                                               </span><st1:place w:st="on"><st1:city w:st="on">Cleveland</st1:city>, <st1:state w:st="on">OH</st1:state></st1:place><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 1in"><span style="font-size: 9pt">1 year of core college education with an un-named major.</span><span style="font-size: 9pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.5in"><span style="font-size: 9pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &#039;Arial Black&#039;,&#039;sans-serif&#039;">Interests</span><span style="font-size: 9pt; font-family: &#039;Arial Black&#039;,&#039;sans-serif&#039;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in"><!--[if !supportLists]--><span style="font-size: 9pt; font-family: Symbol"><span>·<span style="font-family: &#039;Times New Roman&#039;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal">         </span></span></span><!--[endif]--><span style="font-size: 9pt">Music (both listening and playing). I play guitar, bass, drum machines, and a little keyboard.)<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in"><!--[if !supportLists]--><span style="font-size: 9pt; font-family: Symbol"><span>·<span style="font-family: &#039;Times New Roman&#039;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal">         </span></span></span><!--[endif]--><span style="font-size: 9pt">Computer games development. <o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in"><!--[if !supportLists]--><span style="font-size: 9pt; font-family: Symbol"><span>·<span style="font-family: &#039;Times New Roman&#039;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal">         </span></span></span><!--[endif]--><st1:city w:st="on"><st1:place w:st="on"><span style="font-size: 9pt">Reading</span></st1:place></st1:city><span style="font-size: 9pt">.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 9pt; font-family: &#039;Arial Black&#039;,&#039;sans-serif&#039;"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 9pt; font-family: &#039;Arial Black&#039;,&#039;sans-serif&#039;">Recommendations available upon request.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 9pt; font-family: &#039;Arial Black&#039;,&#039;sans-serif&#039;">References available upon request.<o:p></o:p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/07/yup-i-got-down-sized/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An unfortunate turn of events</title>
		<link>http://blog.johnminadeo.com/2008/06/an-unfortunate-turn-of-events/</link>
		<comments>http://blog.johnminadeo.com/2008/06/an-unfortunate-turn-of-events/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 11:24:49 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[job search]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/06/an-unfortunate-turn-of-events/</guid>
		<description><![CDATA[So, apparently my company will be downsizing, with IT taking the brunt of the cuts&#8230;  By rough estimation, it&#8217;ll end up being around 20%. Doing the math that ends up being 3.5 developers. I am the 4th newest, but the &#8230; <a href="http://blog.johnminadeo.com/2008/06/an-unfortunate-turn-of-events/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So, apparently my company will be downsizing, with IT taking the brunt of the cuts&#8230;  By rough estimation, it&#8217;ll end up being around 20%. Doing the math that ends up being 3.5 developers. I am the 4th newest, but the most recent fills a singular specific job that&#8217;s not going away, and my gut says he&#8217;s safe. Which puts me at #3   <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>My company is pretty choosy about the hiring process and it&#8217;s personnel, and truly, there is no chaff at all to cut. It seems that the only logical choice would in that scenario would be people with the least amount of connectedness which to me suggests &#8220;Last In, First Out&#8221; (pardon the programmer humor)</p>
<p>At any rate, a great bunch of guys and a very viable company, I hope they do well and that I continue my employ.</p>
<p>Cross your fingers for me folks, I&#8217;ll know July 2nd.</p>
<p>&#8211;Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/06/an-unfortunate-turn-of-events/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Looking for you Laura Glancz</title>
		<link>http://blog.johnminadeo.com/2008/06/looking-for-you-laura-glancz/</link>
		<comments>http://blog.johnminadeo.com/2008/06/looking-for-you-laura-glancz/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 08:50:04 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/06/looking-for-you-laura-glancz/</guid>
		<description><![CDATA[When you lived in Macedonia (could have been Medina, started with an M   )Ohio, you were dating a friend of mine named Barry D. This would have been early 90&#039;s. After you guys broke up you vanished. I can&#039;t &#8230; <a href="http://blog.johnminadeo.com/2008/06/looking-for-you-laura-glancz/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When you lived in Macedonia (could have been Medina, started with an M <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' />   )Ohio, you were dating a friend of mine named Barry D. This would have been early 90&#039;s. After you guys broke up you vanished. I can&#039;t find any sort of trace of you anywhere, should you happen to ever come across this, you should get in touch with me. It&#039;s John M. and I can be reached here or via email: <a href="mailto:coder@monkk.com">coder at monkk dot com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/06/looking-for-you-laura-glancz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Goodbye TDD, Hello TDD …</title>
		<link>http://blog.johnminadeo.com/2008/05/goodbye-tdd-hello-tdd-%e2%80%a6/</link>
		<comments>http://blog.johnminadeo.com/2008/05/goodbye-tdd-hello-tdd-%e2%80%a6/#comments</comments>
		<pubDate>Wed, 07 May 2008 03:25:41 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[test driven development]]></category>
		<category><![CDATA[unit test]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/05/goodbye-tdd-hello-tdd-%e2%80%a6/</guid>
		<description><![CDATA[Well a third TDD post and with mixed emotions I am here. On the one side, I have found BDD which (in my opinion) is far better then TDD. What the h#ll is BDD you ask? Behavioral Driven Design. So &#8230; <a href="http://blog.johnminadeo.com/2008/05/goodbye-tdd-hello-tdd-%e2%80%a6/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well a third TDD post and with mixed emotions I am here. On the one side, I have found BDD which (in my opinion) is far better then TDD.</p>
<p>What the <a href="mailto:h@ll">h#ll</a> is BDD you ask? Behavioral Driven Design. So what does that mean? It is development that is driven by the required behavior of your application(s). For example, if you need to write a online slot machine game, and the app you write behaves as an online slot machine game, you have successfully developed an online slot machine game. Ok, no duh! So what? How is that better then TDD where you would have written tests that would pass when you successfully written an online slot machine game?</p>
<p>Oooh, so go ahead and re-read that last question. Notice how it suggests that your artifact of the entire development process is a set of tests (and the implied working application), whereas the BDD version leaves you with a working application (and the implied tests).</p>
<p>That is the difference my friends, they are essentially the same but their terminology differs to emphasize what truly is important in the development process. The creator of BDD states that BDD is just TDD done right. And that&#039;s relevant to the effect that when using TDD it is too easy to fall into the trap of focusing on the tests. Not to imply testing isn&#039;t important, but they are a required evil in that if we never made mistakes, we would never need to write a single line of test code. As that&#039;s pretty much impossible (being human) testing and QA aims to mitigate the risk of the human factor.</p>
<p>So I still haven&#039;t really explained what the deal with BDD is, so here goes (and I apologize, an expert on the topic I am not.) To cite <a target="_blank" href="http://behaviour-driven.org/GettingTheWordsRight">http://behaviour-driven.org/GettingTheWordsRight</a>:</p>
<table border="1">
<tr>
<td>Behaviour Driven Development grew out of a thought experiment based on Neuro Linguistic Programming techniques. The idea is that the words you use influence the way you think about something.As an example, when I was first getting to grips with TDD, I was pairing with an experienced agile coach, writing little test methods, then writing the code, and generally feeling good about life. Then I went ahead and wrote some code without a test. The coach, JR, asked me why I&#039;d written the code. I answered: &#8220;we&#039;ll need it in a minute&#8221;, to which JR replied &#8220;yes, we might&#8221;. By using the word &#8220;might&#8221;, he introduced the possibility that we might not. As it turned out, we didn&#039;t. &#8211; Dan North</td>
</tr>
</table>
<p>
As far as using it, there are a few implementations ( <a target="_blank" href="http://en.wikipedia.org/wiki/Behavior_driven_development">http://en.wikipedia.org/wiki/Behavior_driven_development</a>) for writing tests using BDD. The most popular is rSpec ( <a target="_blank" href="http://rspec.info/">http://rspec.info/</a> ) for the Ruby platform. There are severl for Java, two (mostly dead) for MS .Net Framework, and vaious others (python, PHP, scala). There is a Google Video by the rSpec creator which is quite interesting: <font color="#0068cf"><a target="_blank" href="http://video.google.com/videoplay?docid=8135690990081075324&amp;q=behavior%20driven%20development&amp;total=27&amp;start=0&amp;num=10&amp;so=0&amp;type=search&amp;plindex=1">http://video.google.com/videoplay?docid=8135690990081075324&amp;q=behavior%20driven%20development&amp;total=27&amp;start=0&amp;num=10&amp;so=0&amp;type=search&amp;plindex=1</a></font>
</p>
<p>
I haven&#039;t had the opportunity to do anything with BDD, nor does it look like I will with the state of BDD as it stands today. I believe what has happened is that TDD ate it and we just have to make due. The tests we write should be behaviorial based even if the syntax of the testing domain language leaves us asserting like we&#039;re writing procedural code instead of the OO stuff us enterprise type developers eat all day :-/ Please rSpec guys, port your code to .net <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/05/goodbye-tdd-hello-tdd-%e2%80%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A few weeks into a TDD style project</title>
		<link>http://blog.johnminadeo.com/2008/04/a-few-weeks-into-a-tdd-style-project/</link>
		<comments>http://blog.johnminadeo.com/2008/04/a-few-weeks-into-a-tdd-style-project/#comments</comments>
		<pubDate>Sun, 06 Apr 2008 03:18:05 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[test driven development]]></category>
		<category><![CDATA[unit test]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/04/a-few-weeks-into-a-tdd-style-project/</guid>
		<description><![CDATA[So, as you may have read in my previous rant regarding Test Driven Development, I am one of two developers participating in a test of TDD. The project is relatively small in scope and is mostly in a stand-alone &#8220;engine&#8221; so &#8230; <a href="http://blog.johnminadeo.com/2008/04/a-few-weeks-into-a-tdd-style-project/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So, as you may have read in my previous <a href="http://jm.monkk.com/2008/03/24/test-driven-development/">rant</a> regarding Test Driven Development, I am one of two developers participating in a test of TDD. The project is relatively small in scope and is mostly in a stand-alone &#8220;engine&#8221; so really, I think it&#039;s a pretty ideal test subject. If you were paying attention, your spidey sense started tingling when you read &#8220;&#8230;an is *mostly* in a stand-alone engine&#8230;&#8221; Yes, well, as one might guess the mostly is now causing us some grief. The subsystem I am working on interfaces with the main application so that it knows when it has work to do. In the final design of the subsystem, it is a stand-alone windows service consuming application events from the event queue. Now, not only is this a test TDD project, but also trying to incorporate some Agile/Scrum techniques. I think maybe this was a mistake. Agile makes more sense when you have a team of greater then two. So really I think we are suffering an issue stemming from Iteration grouping. Our 1st iteration is quite large and provides the framework for the rest. However, we are not able to take advantage of smaller implementation items that can be pushed to later interactions. Which causes us to call my sub-system from within the application that writes to the event queue, instead of just reading the event queue.</p>
<p>Now, here&#039;s where it really gets ugly. Due to how we have our name-spacing and library hierarchies, I have to move my subsystem completely out of the main project library and add it to the library code it interfaces with. And later I will have to move it back. The sub-system isn&#039;t huge, but that&#039;s a pain. </p>
<p>And why didn&#039;t we see this coming? Because we are implementing from what the tests dictate we need, not what we will need for the entire project. Some may argue that the tests apparently were not complete and I agree. But I think it&#039;s a little unreasonable to know that from the test perspective until it&#039;s discovered by actual implementation. And these happen late in the game so a change is not only a change to the implementation but to the entire underlying tests which defeat the purpose of starting with the tests.</p>
<p>I guess one might further argue that TDD is not a replacement for detailed design. But I have to wonder, if the design is indeed so detailed as to reveal this issue before any coding (and I have seen designs that would fit the bill, as well as designed some of that ilk for prior employers) that one would not need to start with the tests as testing techniques would have been built into the requirements and design. Of course if you can , why not as it prevents people from getting time crunched and not implementing tests at all. But isn&#039;t the point of TDD to speed up and allow for iterative design (as well as pushing testing to the forefront, which I praise it for) ?</p>
<p>Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/04/a-few-weeks-into-a-tdd-style-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Test Driven Development</title>
		<link>http://blog.johnminadeo.com/2008/03/test-driven-development/</link>
		<comments>http://blog.johnminadeo.com/2008/03/test-driven-development/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 21:12:26 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[test driven development]]></category>
		<category><![CDATA[unit test]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/03/test-driven-development/</guid>
		<description><![CDATA[Well folks, I&#039;m here today to gripe about Test Driven Development (TDD if you can&#039;t live without an acronym). For those unfamiliar with it, the concept is (and feel free to correct me folks), one starts coding the unit tests &#8230; <a href="http://blog.johnminadeo.com/2008/03/test-driven-development/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well folks, I&#039;m here today to gripe about Test Driven Development (TDD if you can&#039;t live without an acronym). For those unfamiliar with it, the concept is (and feel free to correct me folks), one starts coding the unit tests firsts and implements the various classes/structures one needs to make the unit tests function. By the time all is done, you have a completed, working, and unit tested application. Re-factoring is embraced, heck there&#039;s even the TDD mantra: &#8220;Red, Green, Re-factor&#8221; (which comes from the Nunit paradigm of failed unit tests show up in red, running one&#039;s show up in green, and the re-factor refers to moving code around / renaming classes functions, etc to make more sense in one&#039;s project domain. Essentially it means, when just the test is written, it will fail as there is no concrete things to actually perform the tasks the test requires. Once you right just enough to make the tests pass, it passes (green) and is now ready to be &#8220;integrated&#8221; into the rest of the project with minor corrections).</p>
<p>Sounds good in theory doesn&#039;t it? Unfortunately, I don&#039;t live in Theory (houses are far too costly&#8230;) Why only in theory you ask? Well, as I sit here writing some tests so I can actually code the logic at some point, I&#039;m looking at some diagrams of system interaction and whatnot and I frankly have no idea what the hell the tests are supposed to do&#8230; I have nothing to test, and using TDD, at best, I&#039;ll have tests that work and they will dictate what I build, unfortunately, the business wants me to build something particular. Depending on how well I do it, I could end up with something that is what they asked for, OR I could end up somewhere completely different if my understanding is off or I get pulled into the cadence of test code (vs. application logic which may be optimized for performance or maintainabililty, or whatever).</p>
<p>Basically, what I am getting at is, TDD is helpful when you don&#039;t know what you are building. However, if you don&#039;t know what you are building, why the hell are you building anything? Your time would be better spent fleshing out the requirements and the design. And before you say it (because I KNOW you&#039;re thinking it), &#8220;But the business doesn&#039;t know what they want, just what they think they want and I need to deliver what they NEED!&#8221; Well, I agree, so wouldn&#039;t expectations be better managed by working through requirements with the business so everyone is on the same page, wouldn&#039;t you know better what you are trying to build? I think so.</p>
<p>So where did it all go wrong? To put it bluntly, &lt;flameShield on=&#8221;true&#8221;&gt;Inexpereienced Developers are the majority of the workforce, and they often make mistakes (as doing is the only way to build experience, this is expected, and natural (albeit problematic)) TDD is just another way to homogenize the programming workforce to reduce the negatives.&lt;/flameShield&gt; The downside is it also reduces the positives of having an &#8220;All Star&#8221; team. People also cite &#8220;quicker to market&#8221; reasons as by the time development is done there is something to deliver. This is just slight of hand to avoid the problems of managing business expectations. Cough up more frequent milestones and vi&#039;ola, it looks like things are getting done. Unfortunately in reality, the same time is spent, and I propose, MORE time is being spent with TDD refactoring every pass and of course the final refactoring to align the new code with the existing code (which to be fair mostly amounts to renaming of classes, functions, etc, not so much new coding)</p>
<p>To me it just sounds like an excuse to not have to learn more formal documentation and requirements skills. I think knowing what you have to build is far more important then delivering it quickly. The old adage goes, &#8220;You can have it done Fast, Right, and Cheap. Pick any two.&#8221; This technique addresses the disconnect between the developers and the business that employs them who know very little about software development (think Business Programming here, not so much Software Development shops <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ) I firmly believe a much better approach is to teach the business what they need to know to manage software development projects, because we as developers don&#039;t have that skill, our magic is programming and archetecting, management is for the pointy haired boss types.</p>
<p> Ok, I&#039;m done. My apologies to anyone I&#039;ve offended! Please feel free to correct me, I&#039;d love to hear your thoughts!</p>
<p>I should probably mention Martin Fowler&#039;s book, &#8220;Refactoring. Improving the Design of Existing Code&#8221; as it&#039;s pretty good, although seasoned developers will likely know a lot of the items in the book, other books seem to reference this one (for example, &#8220;Refactoring to Patterns&#8221; by Joshua Kerievsky&#8221;)</p>
<p>-Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/03/test-driven-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>www.Quake-Revolution.net</title>
		<link>http://blog.johnminadeo.com/2008/03/www-quake-revolution-net/</link>
		<comments>http://blog.johnminadeo.com/2008/03/www-quake-revolution-net/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 23:54:00 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[modding]]></category>
		<category><![CDATA[quake3]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/03/www-quake-revolution-net/</guid>
		<description><![CDATA[Due to a DNS registrar issues, Quake-Revolution.com is now available at www.quake-revolution.net and will be returning once the registrar issues have been resolved.  The team apologizes for the inconvenience and offers a reminder, &#8220;No good deed goes unpunished&#8221; Regards!]]></description>
			<content:encoded><![CDATA[<p>Due to a DNS registrar issues, Quake-Revolution.com is now available at <a href="http://www.quake-revolution.net/">www.quake-revolution.net</a> and will be returning once the registrar issues have been resolved.</p>
<p> The team apologizes for the inconvenience and offers a reminder, &#8220;No good deed goes unpunished&#8221; <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/03/www-quake-revolution-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reactance 1.3 Beta 7 Released</title>
		<link>http://blog.johnminadeo.com/2008/03/reactance-1-3-beta-7-released/</link>
		<comments>http://blog.johnminadeo.com/2008/03/reactance-1-3-beta-7-released/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 09:37:07 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[modding]]></category>
		<category><![CDATA[quake3]]></category>
		<category><![CDATA[reactance unlagged]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/03/reactance-1-3-beta-7-released/</guid>
		<description><![CDATA[Mostly a maintenance release to address a bug in the off-hand grapple. Thanks [CL2] R@ancid Me@t (CL2 Clan Site) for pointing it out. And thank you Evolution (from Quake-Revolution for pointing out it was likely a prediction issue (damn you &#8230; <a href="http://blog.johnminadeo.com/2008/03/reactance-1-3-beta-7-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Mostly a maintenance release to address a bug in the off-hand grapple. Thanks [CL2] R@ancid Me@t (<a href="http://www.cl2clan.com/" title="Clan Chrlorine: [CL2]" target="_blank">CL2 Clan Site</a>) for pointing it out. And thank you Evolution (from <a href="http://www.Quake-Revolution.com" title="Quake-Revolution" target="_blank">Quake-Revolution</a> for pointing out it was likely a prediction issue (damn you Q3!)</p>
<p>What happened to 1.3b6 you ask? Well, it actually never happened. It wound up fixing the bug in offhand-grapple, but was no where near the real solution :-/ (they all can&#039;t be gems folks&#8230;) So, it was sh!t canned in 1.3b7 was born.</p>
<p>Here&#039;s a snippet from the <a href="http://www.reactanceunlagged.com/RU-ReadME.html" title="Reactance Unlagged 1.3 Beta 7 Read Me" target="_blank">ReadMe </a>:</p>
<pre style="background-color: #cccccc">
2/28/2008  -Monkk: Fixed broken off-hand grapple. Thanks Evolution for
                 aid in locating the problem and R@ncid Me@t of CL2 for
                 finding it (bastard <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  sorry it took so long to fix...). While I
                 was in there I added 2 grapple related cvars (server
                 controlled): mod_grappleDistance and mod_grappleSpeed.
3/2/2008    -Monkk: Completely redid the offhand grapple to not force
                 the sound on the weapon itself, but instead on the hook
                 that is being fired. When one is attached to the wall with
                 the offhand grapple, the grapple continues to make the
                 sound. You will also notice the sound originates from the
                 hook missile. This is due to having no weapon actually firing
                 it. The normal q3 grappling hook weapon gun acts the same
                 as it always has. Also added cvar for
                 mod_ambientWeaponSound which will disable the sounds of
                 the RG, LG, and BFG
</pre>
<p><a href="http://www.reactanceunlagged.com" title="ReactanceUnlagged.com" target="_blank">http://www.reactanceunlagged.com</a> to grab it =]</p>
<p>Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/03/reactance-1-3-beta-7-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quake Revolution, so much for d34d :-)</title>
		<link>http://blog.johnminadeo.com/2008/02/quake-revolution-so-much-for-d34d/</link>
		<comments>http://blog.johnminadeo.com/2008/02/quake-revolution-so-much-for-d34d/#comments</comments>
		<pubDate>Mon, 18 Feb 2008 00:26:19 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[quake3]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/02/quake-revolution-so-much-for-d34d/</guid>
		<description><![CDATA[This is the most active dead Quake III Mod I&#039;ve ever seen. Version 1.39Beta6 Released. Head on over to quake-revolution.com for a full list of changes Additionally, they&#039;ve added 3 new developers: Duality, Whinger, and donvito. Duality and Whinger have &#8230; <a href="http://blog.johnminadeo.com/2008/02/quake-revolution-so-much-for-d34d/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is the most active dead Quake III Mod I&#039;ve ever seen.</p>
<p>Version 1.39Beta6 Released. Head on over to <a href="http://www.quake-revolution.com/modules.php?name=News&amp;file=article&amp;sid=23" title="1.39Beta6 Info" target="_blank">quake-revolution.com</a> for a full list of changes</p>
<p>Additionally,  <font class="content">they&#039;ve added 3 new developers: Duality, Whinger, and donvito. Duality and Whinger have volunteered to help with the Quake 3 mod, whilst donvito is going to help Lucron and I work on a Quake 4 mod.</font></p>
<p>Quake4 Mod eh, Hmmz I say <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>The Quake Revolution Tournament needs at least 3 more teams to sign up for participation, so, dust off that Railgun, hop on over to the Quake Revolution Project Forums and <a href="http://www.quake-revolution.com/modules.php?name=Forums&amp;file=viewforum&amp;f=21" title="Sign Up for the Quake Revolution Tournament!" target="_blank">sign your team on up</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/02/quake-revolution-so-much-for-d34d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>City of Heroes / City of Villians</title>
		<link>http://blog.johnminadeo.com/2008/02/city-of-heroes-city-of-villians/</link>
		<comments>http://blog.johnminadeo.com/2008/02/city-of-heroes-city-of-villians/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 13:34:40 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[mmorpg]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/02/city-of-heroes-city-of-villians/</guid>
		<description><![CDATA[On the urgings of a new co-worker friend, I hopped on over to http://www.plaync.com and purchased City of Heroes. As it turns out, one can purchase the combo set of Cities of Heroes and Villians for $29.95 USD.  The downside &#8230; <a href="http://blog.johnminadeo.com/2008/02/city-of-heroes-city-of-villians/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>On the urgings of a new co-worker friend, I hopped on over to <a href="http://www.plaync.com" title="http://www.plaync.com">http://www.plaync.com</a> and purchased City of Heroes. As it turns out, one can purchase the combo set of Cities of Heroes and Villians for $29.95 USD.  The downside of course, would be the $14.99 USD a month subscription fee (the 1st month is for free.) It is worth pointing out that if you buy in 3 / 6 / or 12 month blocks, the per month fee is somewhat lowered.</p>
<p>Now, PlayNC is the same guys who brought you Guild Wars and Dungeons Runners. All 3 of these games are VASTLY different. Though I believe they all run on the same 3rd person based game engine.</p>
<p>Once you buy the game online and download it (it can also be purchased in stores and activated online). It hooks to your exising plaync account and while the client is a hefty 2.4 GB of download, the servers seem to be pretty responsive. A few hours and you&#039;re good to go.</p>
<p>When you login, you create a character and pick a server. Each server seems to be named for various virtues like Liberty, Freedom, Gaurdian, etc. It also seems that you have 12 character slots per server. Apparently there is a way to transfer between them at a $9.99 USD. cost.</p>
<p>At any rate, the character designer is pretty damn AWESOME!! You could seriously just make heroes or villains all day in whatever depth of customizable skins and powers as you can dream.</p>
<p>Of course, you start with just a few powers and as you progress through the game more and more unlock and are available to you.</p>
<p>I&#039;ve only created a single hero and am just getting used to the interface. It differs from guild wars. It is themed well for a super hero type game, but it seems more&#8230; N00bish, if you will. I guess I can&#039;t say thats a bad thing but it has a ton of features and I find them pretty difficulat to find wheras, Guild Wars seemed much more intuitive. Although, I have played many Fantasy themed RPG&#039;s in the past so maybe it&#039;s just more of a mature and demanding market.</p>
<p>Any way you slice it, it&#039;s a fun game. I probably will not extend the original month much past 1 perhaps as I have an erratic gaming schedule and would like to allow myself the chance to find something new.</p>
<p>Anyway, I recommend it, it&#039;s fun. You know you&#039;ve always wanted to be a super hero and villain, you know it!</p>
<p><img width="455" src="http://www.monkk.com/jmdev/postimages/grassynole.jpg" alt="Grassy Nole will w00p j00!" height="648" style="width: 455px; height: 648px" title="Grassy Nole will w00p j00!" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/02/city-of-heroes-city-of-villians/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quake Revolution CTF Instagib Tourney (with Prizes!)</title>
		<link>http://blog.johnminadeo.com/2008/01/quake-revolution-ctf-instagib-tourney-with-prizes/</link>
		<comments>http://blog.johnminadeo.com/2008/01/quake-revolution-ctf-instagib-tourney-with-prizes/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 23:14:38 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[modding]]></category>
		<category><![CDATA[quake3]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2008/01/quake-revolution-ctf-instagib-tourney-with-prizes/</guid>
		<description><![CDATA[The guys over at Quake Revolution are having a Quake3 tournament for their mod towards the end of February, AND there are prizes (oooooooh!) SpAzy has donated 3 months of Quake3 server hosting and the fellas over at ClanTeamWork.com have &#8230; <a href="http://blog.johnminadeo.com/2008/01/quake-revolution-ctf-instagib-tourney-with-prizes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The guys over at Quake Revolution are having a Quake3 tournament for their mod towards the end of February, AND there are prizes (oooooooh!)</p>
<p>SpAzy has donated 3 months of Quake3 server hosting and the fellas over at ClanTeamWork.com have donated a years worth of Web hosting for the winner!</p>
<p>Get that railgun polished up and swing by <a href="http://www.Quake-Revolution.com" title="www.Quake-Revolution.com">www.Quake-Revolution.com</a> for more <a href="http://www.quake-revolution.com/modules.php?name=News&amp;file=article&amp;sid=22&amp;mode=&amp;order=0&amp;thold=0" target="_blank">details</a> !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2008/01/quake-revolution-ctf-instagib-tourney-with-prizes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quake Revolution Christmas Present</title>
		<link>http://blog.johnminadeo.com/2007/12/quake-revolution-christmas-present/</link>
		<comments>http://blog.johnminadeo.com/2007/12/quake-revolution-christmas-present/#comments</comments>
		<pubDate>Sun, 30 Dec 2007 22:39:12 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[modding]]></category>
		<category><![CDATA[quake 3]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2007/12/quake-revolution-christmas-present/</guid>
		<description><![CDATA[I should have wrote this a week ago, but with the holidays, well you know how busy they can be. Heres a little excerpt: &#8220;Sev3n of the XCM clan came to me the other day and asked about Revolution, notified &#8230; <a href="http://blog.johnminadeo.com/2007/12/quake-revolution-christmas-present/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I should have wrote this a week ago, but with the holidays, well you know how busy they can be.</p>
<p>Heres a little excerpt:</p>
<blockquote><p>&#8220;Sev3n of the XCM clan came to me the other day and asked about Revolution, notified me that he and quite a few others thought Revolution was much better than IU, especially for cross-Atlantic play. During our discussion he asked if there was a way to limit cg_railHum without the use of PunkBuster.&#8221;</p></blockquote>
<p>The Quake Revolution team has gotten together a little Christmas Release for ya&#039;ll in response to some Euro gamers requests. Hop on over to <a target="_blank" href="http://www.quake-revolution.com/">quake-revolution.com</a> and check it out!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2007/12/quake-revolution-christmas-present/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Team: Work Gaming Clan</title>
		<link>http://blog.johnminadeo.com/2007/12/team-work-gaming-clan/</link>
		<comments>http://blog.johnminadeo.com/2007/12/team-work-gaming-clan/#comments</comments>
		<pubDate>Sun, 30 Dec 2007 00:59:41 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[clan]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2007/12/team-work-gaming-clan/</guid>
		<description><![CDATA[A gaming group, &#8220;Team: Work&#8221; has just blown into town. Not so much a competive gaming clan, but more of a group of folks who like to play online multi-player games of all styles and genres. The name comes from &#8230; <a href="http://blog.johnminadeo.com/2007/12/team-work-gaming-clan/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A gaming group, &#8220;Team: Work&#8221; has just blown into town. Not so much a competive gaming clan, but more of a group of folks who like to play online multi-player games of all styles and genres. The name comes from the concept that team based games require Team Work! Crazy concept I know. There is definintely room for individual excellence, but we feel the fun is from playing with your team!</p>
<p> Hop on over to the site and forums, and certainly try out the new Team: Work Team Fortress 2 server:</p>
<p><a href="http://www.clanteamwork.com" target="_new">http://www.clanteamwork.com</a></p>
<p><a target="_new" href="http://www.gametracker.com/server_info/63.211.110.213:27015/"><br />
<img border="0" src="http://cache.www.gametracker.com/server_info/63.211.110.213:27015/b_560x95.png" /><br />
</a></p>
<p>Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2007/12/team-work-gaming-clan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The search has ended!</title>
		<link>http://blog.johnminadeo.com/2007/12/the-search-has-ended/</link>
		<comments>http://blog.johnminadeo.com/2007/12/the-search-has-ended/#comments</comments>
		<pubDate>Wed, 12 Dec 2007 12:08:42 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[job search]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2007/12/the-search-has-ended/</guid>
		<description><![CDATA[Well my friends, I have rejoined the ranks of the employed once again! A little spot called Insurance.com. I have to say I&#039;m incredibly excited to start! The guys I interviewed with were awesome and I have a long time &#8230; <a href="http://blog.johnminadeo.com/2007/12/the-search-has-ended/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well my friends, I have rejoined the ranks of the employed once again! A little spot called Insurance.com. I have to say I&#039;m incredibly excited to start! The guys I interviewed with were awesome and I have a long time friend (26 years (whoa, I feel old lol <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  )) has been working there for 7 years and I probably owe him everything I have for sparking my love for computers, plus he&#039;s a freakin&#039; genius so I get to absorb his smartness, heheh!</p>
<p>At any rate, I think it will be a great fit, as I am coming out of a large auto insurance company in northeast Ohio, and into, what I think, is the natural progression of selling insurance via comparative rating. Which is a big phrase for giving the consumer options without making them go to 16 insurance web sites and give their information again and again and again. And the development staff is much smaller which I think gives the people doing the work an incredible sense of involvement and ownership which you just do not get in companies with multiple divisions of 300+ IT staff.</p>
<p>I want to thank all my friends who were so supportive, and Insurance.com for giving me an opportunity. thank you all so very much!</p>
<p>Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2007/12/the-search-has-ended/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unreal Tournament 3 (Demo)</title>
		<link>http://blog.johnminadeo.com/2007/12/unreal-tournament-3-demo/</link>
		<comments>http://blog.johnminadeo.com/2007/12/unreal-tournament-3-demo/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 05:19:31 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[ut3]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2007/12/unreal-tournament-3-demo/</guid>
		<description><![CDATA[It was with much reluctance that I downloaded the Unreal Tournament 3 demo after being urged by a friend. I have played UT in the past and own 2004. It was fun but just a little too knock-off-y of the &#8230; <a href="http://blog.johnminadeo.com/2007/12/unreal-tournament-3-demo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It was with much reluctance that I downloaded the Unreal Tournament 3 demo after being urged by a friend. I have played UT in the past and own 2004. It was fun but just a little too knock-off-y of the Quake franchise, nothing special, yet another first person shooter. Although I have to give UT credit for being there to compete with it from the start.</p>
<p>So it downloads and I install it, which takes freak&#039;n forever, and then it starts up. I won&#039;t speak to the graphics, suffice it to say it&#039;s a modern game and looks good.</p>
<p>Let me begin with the one unpleasant item in the game. Like a lot of new online multi-player games, you log in to an account to play which allows the game manufacturer to track you playing for the online stats. I&#039;ll leave the debate about privacy out of the picture, but what can ya do&#8230; My issue with the account concept is, apparently, UT3 uses your gamespy account which is fine, until you realize you made a gamespy account years ago and never use it anyway. So you must EXIT the game to fill out a form on gamespy web-site so it will email you your account information so you can start the game again and use it. I realize this is a (hopefully) 1 time thing but, if you&#039;re going to go the distance and allow account creation from the game, DON&#039;T MAKE ME LEAVE THE GAME TO GET MY ACCOUNT STARTED. That&#039;s just lame, and as a matter of fact caused me to not even bother for about a week and a half&#8230;</p>
<p>If I had any kind of integrity I&#039;d have left it at that, but my boredom brought me back. I have not played the multi-player, just the single player with bots. Why? Well I forgot I had to look my gamespy account information up and I realized I could start a single player game with out it. What can I say, a bad idea once, is a bad idea the second go round. Having said that, I will try the multiplayer and look-up my account info due to my enjoyment of the single player game. I wonder how many customers this will lose.</p>
<p>Single Player give you 4 game modes: Deathmatch, Team Deathmatch, Dual, and Vehicle CTF. It additionally has Campaign style paly, but that is not available in the demo. I immediately went to Vechicle CTF being a HUGE Capture The Flag fan!</p>
<p>So, its exactly what the name says, CTF with vehicles. Riding a vehicle is not mandatory, the periodically spawn in your territory and you can hop in and drive or hop on and use the turrets for multiple players. The maps are pretty large so the vechicles come in handy or you&#039;re walking for a while to get to the action. The maps could easily handle 32 v. 32 players maybe more. Giving it a sort of Battlefield 1942 feel. BUT it&#039;s CTF <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<p>The Deathmatch, Team Deathmatch, and Dual are what you would expect: A free for all most kills wins, Red Vs. Blue most kills wins, and of course the boring 1-on-1 dual.</p>
<p>I&#039;m not going to talk about the weapons, they seem to have kept it in the UT franchise, I assume they are updated looks and graphics, etc. Suffice it to say, they have cool guns to kill people with. What I can say is, it&#039;s a TON OF FUN to play! Feels like a game in all aspects (if you&#039;ve read some of my other gaming rants, you know what I mean.)</p>
<p>In my eyes, Unreal Tournament 3 picks up the legacy of fun competitive gaming where Id dropped it 8 years ago after Quake3. My only real gripe is that I will have to learn a new set of console commands. I suppose there are worse problems to be had <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2007/12/unreal-tournament-3-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Team Fortress 2</title>
		<link>http://blog.johnminadeo.com/2007/12/team-fortress-2/</link>
		<comments>http://blog.johnminadeo.com/2007/12/team-fortress-2/#comments</comments>
		<pubDate>Sat, 08 Dec 2007 23:10:59 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[team fortress]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2007/12/team-fortress-2/</guid>
		<description><![CDATA[So, I returned to TF2 after working my way through Orange Box (ok, well I had already finished HL2&#8230;) Anyway, I think I have made a 180 on this one. I really have to say it&#039;s über fun!! Which has &#8230; <a href="http://blog.johnminadeo.com/2007/12/team-fortress-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So, I returned to TF2 after working my way through Orange Box (ok, well I had already finished HL2&#8230;)</p>
<p>Anyway, I think I have made a 180 on this one. I really have to say it&#039;s über fun!! Which has increasingly been a problem in modern games. What do I mean? Well I&#039;ll tell ya! The 3d rendering engines of today are all beautiful, some may handle shadows better, maybe lighting in another is better, pretty particle effects, smoothed high poly-count models. To even be a FPS game today, visually stunning graphics must be included.</p>
<p>But what has happened to the fun? So now that worlds my battles take place in look almost as realistic as the one I live in. Now i&#039;m left in a combat simulation. And while I agree it&#039;s &#8220;cool&#8221;, it&#039;s not fun.</p>
<p>Team Fortress 2 has brought the fun back to the FPS! It&#039;s cell-shading leaving the game environment rendered somewhat like a comic book is the perfect touch to remind us that, &#8220;hey you&#039;re killing time playing a game, ENJOY IT Asshat!&#8221;</p>
<p>The sound samples and music and announcer voices are sheer genious! Over the top campy sound bites really make the characters feel real. And when the Pyro lights a Soldier on fire, and the soldier is screamming, &#8220;fire, Fire, FIRE&#8221;, I almost fall outta my chair everytime.</p>
<p>I still am not a fan of class based games, I prefer and equal ground for all players, but it does allow for people to play to their strong points, and enforces team work (which in my opinion shouldn&#039;t be required but definitely is in the highly immature world of online gaming (no offense, but ya gotta call a spade a spade.))</p>
<p>Compare that to &#8220;Enemy Territory:Quake Wars&#8221; offering using Id&#039;s latest greatest. Visually stunning, awesome sounding guns, and boring as hell. Not any better then any other Battlefield 1942 style of multi-player combat, just using Id&#039;s licensed characters and content. While neat and pretty, just leaves me bored. Quake3 was their crowning achievement, a perfect balance of fun and combat. Big floaty power-ups, smooth movement, fast respawn, perfect. And then they stopped making games for the gamers. Sad, I hope they come to their senses soon! Until then, Team Fortress 2 is it!</p>
<p>Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2007/12/team-fortress-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A p0x upon teh job search!</title>
		<link>http://blog.johnminadeo.com/2007/12/a-p0x-upon-teh-job-search/</link>
		<comments>http://blog.johnminadeo.com/2007/12/a-p0x-upon-teh-job-search/#comments</comments>
		<pubDate>Sat, 01 Dec 2007 23:55:54 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[job search]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2007/12/a-p0x-upon-teh-job-search/</guid>
		<description><![CDATA[Well folks, as a friend recently pointed out, I need to post something all ready. So here&#039;s the skinny, as some of you may or may not know, I have most recently been employed by a  large auto-insurance company in &#8230; <a href="http://blog.johnminadeo.com/2007/12/a-p0x-upon-teh-job-search/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well folks, as a friend recently pointed out, I need to post something all ready. So here&#039;s the skinny, as some of you may or may not know, I have most recently been employed by a  large auto-insurance company in North East Ohio. Well due to a relatively flat insurance market over the past few years, and some less then innovative IT leadership, a decently large re-organization has been undertaken by the company, and in doing so they have decided to eliminate around 250 positions from the Business side (Business Analysts, Product Managers) and a corresponding 250 poistions from the IT side as well. I&#039;m sure it looked good on paper, and to be honest I do believe it was required to truly change direction which is what is needed. At any rate I among with a large number of my breatren had our jobs eliminated on Nov. 15th (Happy Holidays folks!)</p>
<p>So, to make a short story long, I am in search of a job and hence the less frequent updates. My apologies, if any of you wanted to put me on your pay-roll, I promise to get back to more frequent rants <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2007/12/a-p0x-upon-teh-job-search/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crysis &#8211; Single Player Demo</title>
		<link>http://blog.johnminadeo.com/2007/11/crysis-single-player-demo/</link>
		<comments>http://blog.johnminadeo.com/2007/11/crysis-single-player-demo/#comments</comments>
		<pubDate>Mon, 12 Nov 2007 09:29:44 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[demo]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2007/11/crysis-single-player-demo/</guid>
		<description><![CDATA[There are only 2 words that apply to the Crysis Single-Player Demo: F$#k!ng Amazing! Where to be begin, the graphics I guess. Stunning, just stunning! The lighting, the foliage. I honestly felt like I was there. Those guys programmed one &#8230; <a href="http://blog.johnminadeo.com/2007/11/crysis-single-player-demo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There are only 2 words that apply to the Crysis Single-Player Demo: F$#k!ng Amazing!</p>
<p>Where to be begin, the graphics I guess. Stunning, just stunning! The lighting, the foliage. I honestly felt like I was there. Those guys programmed one helluva beautiful rendering engine. You better believe you need one heck of a rig to run this bad boy to any of it&#039;s credit.</p>
<p>For the sake of a frame of reference, below are the specs to my main machine, this is where all the magic happens, especially the gaming, and it by far is the *baddest* box I own currently. Not a God system by any stretch but it does ok for me:</p>
<p style="padding: 2px; font-size: xx-small; background-color: #bbbbbb; border-color: #33ff33;border-style: solid;border-width: 1px;border-style: dashed">RAIDMAX RX-630A ATX12V / EPS12V 630W Power Supply<br />
2 x BFG Tech BFGR88320GTSOCE GeForce 8800GTS 320MB 320-bit GDDR3 PCI Express x16<br />
Intel Core 2 Duo E6700 Conroe 2.66GHz 4M shared L2 Cache LGA 775 Processor<br />
ASUS P5N32-E SLI LGA 775 NVIDIA nForce 680i SLI ATX Intel Motherboard<br />
2xCrucial Ballistix 2GB (2 x 1GB) 240-Pin DDR2 SDRAM DDR2 800 (PC2 6400) Dual Channel Kit<br />
2xAcer AL2016WBbd Black 20&#8243; 5ms DVI Widescreen LCD Monitor 300 cd/m2 800:1<br />
2xSeagate Barracuda 7200.10 ST3320620AS 320GB 7200 RPM 16MB Cache SATA 3.0Gb/s Hard Drive<br />
GIGABYTE 3D Aurora 570 GZ-FA1CA-ASS Silver 1.0 mm Aluminum body ATX Full Tower Computer Case<br />
ZALMAN CNPS9500 AT 2 Ball CPU Cooling Fan/Heatsink</p>
<p>For what it&#039;s worth, Vista&#039;s &#8220;Game Explorer&#8221; cites the recommended rating is 5.0, with a required of at least 3.0:<br />
<a border="0" target="_blank" href="http://www.monkk.com/jmdev/postimages/crysis-rating.jpg"><img border="0" width="80" src="http://www.monkk.com/jmdev/postimages/crysis-rating.jpg" /></a><br />
My system above gets me a 5.4 (in non-sli mode):<br />
<a border="0" target="_blank" href="http://www.monkk.com/jmdev/postimages/myStats.jpg"><img border="0" width="60" src="http://www.monkk.com/jmdev/postimages/myStats.jpg" /></a></p>
<p>I should mention when I play it, I switch on SLI mode (what a waste of cash that is, do yourself a favor and just drop the cash on a sweet single card). Crysis auto-determines that I should use the &#8220;Medium&#8221; setting. And it&#039;s pretty playable, but oh lord beware of cranking up the options. They look awesome and cost a ton in terms of performance. Don&#039;t even think about Anti-Aliasing.</p>
<p>I kinda wonder what these fellas are developing these games on. But my guess is by summer of 2008, your average high end system ($3000+) should run it pretty well.</p>
<p>That said, the game is brilliant. And I&#039;ve only run through the demo a few times. The UI enhancements are genious. And by believeably handling the not needing to pick up health pellets along the way, removed a HUGE stumbling block of scalable difficulty settings. How many times have have you found that making the game harder simply removes hald the armor and healthy pellets? Far far too many in my book my friends!</p>
<p>Like it older brother FarCry, there are sneaking elements of the game whereas one might need to eviscerate a small platoon of enemy soldiers and not get heard whilest one sneaks. Generally, I find these scenarious to be an annoyance in games, regardless of how realistic it actually is (i.e. I would expect to have no clue of the natives when thrown from an airplane, it still pisses me off to have to stumble on them.) but it felt liveable in Crysis, which I attribute primarily of not having to follow the path explicitly so that I may gain my health pellets&#8230; Brilliant I say.</p>
<p>I can&#039;t wait for the full blown version to come out, better yet when I can own a machine that lets it sing in 16x AA <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p>-Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2007/11/crysis-single-player-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quake Revolution Mod releases their source</title>
		<link>http://blog.johnminadeo.com/2007/11/quake-revolution-mod-releases-their-source/</link>
		<comments>http://blog.johnminadeo.com/2007/11/quake-revolution-mod-releases-their-source/#comments</comments>
		<pubDate>Mon, 12 Nov 2007 02:57:32 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[modding]]></category>
		<category><![CDATA[quake3]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2007/11/quake-revolution-mod-releases-their-source/</guid>
		<description><![CDATA[Evolution and the Quake Revolution crew have *officially* released their source code for their Quake3 mod. Hop on over to http://www.quake-revolution.com/ In two convenient ways, download the source .rar archive, grab it with svn or simply just browse the code-base via &#8230; <a href="http://blog.johnminadeo.com/2007/11/quake-revolution-mod-releases-their-source/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Evolution and the Quake Revolution crew have *officially* released their source code for their Quake3 mod. Hop on over to <a target="_blank" href="http://www.quake-revolution.com/" title="http://www.quake-revolution.com/">http://www.quake-revolution.com/</a></p>
<p>In two convenient ways, download the source .rar archive, grab it with svn or simply just browse the code-base via web browser.</p>
<blockquote><p><u>RAR archive<br />
<a href="http://www.quake-revolution.com/downloads/source/Revolution-1.38-source.rar" title="Revolution-1.38-source.rar">http://www.quake-revolution.com/downloads/source/Revolution-1.38-source.rar</a></u></p>
<p><u>Subversion<br />
</u><a target="_blank" href="http://quake-revolution.googlecode.com/svn/trunk/quake3/">http://quake-revolution.googlecode.com/svn/trunk/quake3/</a></p></blockquote>
<p>Ah nastalgia, if you look hard enough you can find some code I wrote up in there <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  And I will cop to thefting the unlag railjump concept from t3h Evolution, just made good sense.</p>
<p>As always, mad props for your efforts and releasing the source instead of just letting it die on the vine (<font color="#ff0000">*</font><font color="#008000">cough</font><font color="#ff0000">*</font> IU1.2B <font color="#ff0000">*</font><font color="#008000">cough</font><font color="#ff0000">*</font>), plus who knows what Quake:Zero will cause?</p>
<p>Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2007/11/quake-revolution-mod-releases-their-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixed Quake Revolution’s Link in the Blogroll [http://www.quake-revolution.com]</title>
		<link>http://blog.johnminadeo.com/2007/11/fixed-quake-revolution%e2%80%99s-link-in-the-blogroll-httpwww-quake-revolution-com/</link>
		<comments>http://blog.johnminadeo.com/2007/11/fixed-quake-revolution%e2%80%99s-link-in-the-blogroll-httpwww-quake-revolution-com/#comments</comments>
		<pubDate>Mon, 12 Nov 2007 00:29:56 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[modding]]></category>
		<category><![CDATA[quake3]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2007/11/fixed-quake-revolution%e2%80%99s-link-in-the-blogroll-httpwww-quake-revolution-com/</guid>
		<description><![CDATA[Oh the shame! My most humble apologies to Evolution and the Quake-Revolution.com crew. I inadvertantly forgot the hyphen in the URL in the blogroll link list on the right-hand section. This has been fixed, if any of tried to stop &#8230; <a href="http://blog.johnminadeo.com/2007/11/fixed-quake-revolution%e2%80%99s-link-in-the-blogroll-httpwww-quake-revolution-com/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Oh the shame! My most humble apologies to Evolution and the Quake-Revolution.com crew. I inadvertantly forgot the hyphen in the URL in the blogroll link list on the right-hand section.</p>
<p>This has been fixed, if any of tried to stop by, please try again <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />   [<a href="http://www.quake-revolution.com" title="http://www.quake-revolution.com">http://www.quake-revolution.com</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2007/11/fixed-quake-revolution%e2%80%99s-link-in-the-blogroll-httpwww-quake-revolution-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HalfLife2: Episode 2</title>
		<link>http://blog.johnminadeo.com/2007/11/halflife2-episode-2/</link>
		<comments>http://blog.johnminadeo.com/2007/11/halflife2-episode-2/#comments</comments>
		<pubDate>Thu, 08 Nov 2007 08:42:57 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[half life]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2007/11/halflife2-episode-2/</guid>
		<description><![CDATA[Finally got around to playing Episode 2, and boy I&#039;m glad I did! A return of one of my favorite mysterious characters of the game. I initially was a bit apprehensive of the episodic content delivery, but I think it &#8230; <a href="http://blog.johnminadeo.com/2007/11/halflife2-episode-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Finally got around to playing Episode 2, and boy I&#039;m glad I did! A return of one of my favorite mysterious characters of the game. I initially was a bit apprehensive of the episodic content delivery, but I think it will really allow Valve to stretch out the life-span of the HalfLife2 franchise, buying a lot of time for new engine development as well.</p>
<p>This episode felt more like HalfLife2 then 1 did. Now, I&#039;m not saying anything against 1, and excellent game in and of its own right, but somehow, 2 fells more like &#8220;home&#8221; and I do like the tie in to Portal&#039;s Aperture Science.</p>
<p>I think the folks over at Valve really have a vision, and I hope they make it!</p>
<p>Regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2007/11/halflife2-episode-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quake Revolution 1.38, Final Version :-(</title>
		<link>http://blog.johnminadeo.com/2007/11/quake-revolution-1-38-final-version/</link>
		<comments>http://blog.johnminadeo.com/2007/11/quake-revolution-1-38-final-version/#comments</comments>
		<pubDate>Thu, 01 Nov 2007 04:47:58 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[modding]]></category>
		<category><![CDATA[quake3]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2007/11/quake-revolution-1-38-final-version/</guid>
		<description><![CDATA[It is with a heavy heart that I report what seems to be the final version of the Revolution Quake3 mod. http://forums.dbzclan.com/viewtopic.php?t=575 If you have no idea what I&#039;m talking about, hop on over to: http://www.quake-revolution.com Mad props to Evolution &#8230; <a href="http://blog.johnminadeo.com/2007/11/quake-revolution-1-38-final-version/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It is with a heavy heart that I report what seems to be the final version of the Revolution Quake3 mod.</p>
<p><a href="http://forums.dbzclan.com/viewtopic.php?t=575" title="http://forums.dbzclan.com/viewtopic.php?t=575">http://forums.dbzclan.com/viewtopic.php?t=575</a></p>
<p>If you have no idea what I&#039;m talking about, hop on over to: <a href="http://www.quake-revolution.com" title="http://www.quake-revolution.com">http://www.quake-revolution.com</a></p>
<p>Mad props to Evolution and Lucron! Writing and maintaining a new mod  for such an OLD game really is difficult, at best. It&#039;s a relatively thankless job and the community so small these days, it&#039;s hard to ever gain (or god forbid, regain) momentum. It&#039;s a time consuming process and of course, we&#039;ve all got day jobs&#8230; Anyway, I can&#039;t speak for them, but I understand.</p>
<p>I regret that things didn&#039;t happen differently, some of you know what I mean.</p>
<p>Anyway, I can&#039;t wait to see what they rip they&#039;re hands into next! Thanks for the effort! And I must say,releasing the source is a classy touch.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2007/11/quake-revolution-1-38-final-version/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easy Access to Reactance Q3 Dev Server</title>
		<link>http://blog.johnminadeo.com/2007/10/easy-access-to-reactance-q3-dev-server/</link>
		<comments>http://blog.johnminadeo.com/2007/10/easy-access-to-reactance-q3-dev-server/#comments</comments>
		<pubDate>Mon, 29 Oct 2007 20:30:12 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[game servers]]></category>
		<category><![CDATA[modding]]></category>
		<category><![CDATA[reactance unlagged]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2007/10/easy-access-to-reactance-q3-dev-server/</guid>
		<description><![CDATA[Well, as promised, I added the DNS entry for the dev server. The IP address and ports are still the (72.5.249.52:27960) but you can now get at it at the easier to remember: q3.reactanceunlagged.com:27960]]></description>
			<content:encoded><![CDATA[<p>Well, as promised, I added the DNS entry for the dev server. The IP address and ports are still the (72.5.249.52:27960) but you can now get at it at the easier to remember:</p>
<p>q3.reactanceunlagged.com:27960</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2007/10/easy-access-to-reactance-q3-dev-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Orange Box</title>
		<link>http://blog.johnminadeo.com/2007/10/orange-box/</link>
		<comments>http://blog.johnminadeo.com/2007/10/orange-box/#comments</comments>
		<pubDate>Sun, 28 Oct 2007 01:07:03 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[team fortress]]></category>
		<category><![CDATA[valve]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2007/10/orange-box/</guid>
		<description><![CDATA[Well, I don&#039;t know about the rest of you, but I&#039;m a big fan of Half-Life2 Single Player and Episode 1, and have been eagerly waiting for the release of Episode 2. I decided to grab Orange Box because of &#8230; <a href="http://blog.johnminadeo.com/2007/10/orange-box/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well, I don&#039;t know about the rest of you, but I&#039;m a big fan of Half-Life2 Single Player and Episode 1, and have been eagerly waiting for the release of Episode 2. I decided to grab Orange Box because of the extras, the price was too good to pass up. Orange Box (at least when purchased via Steam) comes with: HalfLife 2, HL2:Episode 1, HL2: Episode 2, TeamFortress 2, Portal, and Peggle Extreme (A Orange Box themed demo version of Peggle Deluxe by PopCap Games)</p>
<p>First, let me say Peggle is an unbelievably fun  game, unicorns, rainbows and all! A ball to play while you wait for the rest of your games to be finish downloading.</p>
<p>I used to hate the Steam delivery engine. A complete 180 for me over the past couple of years. Effortless game buying and loading. Ok, the download on a fresh computer if required takes a while but EASY!!! And much much much to my delight, I can now &#8220;gift&#8221; my version of HalfLife2 andHL2:Episode 1 to someone as Orange Box comes with them. Sheer genius I say!</p>
<p>The star of the litter, in my opionion is &#8220;Portal&#8221; ! Every review you&#039;ve read that calls it brilliant and amazing is absolutely true. This is the only title I have ever seen that I would consider a First Person Puzzler. 19 Test Chambers of movement puzzlers plus a gripping antagonist! I was 110% invested in this game within the first 3 chambers. If you are unfamiliar with the game, you have 1 &#8220;gun&#8221; and it can shoot two portals. An Orange portal and a Blue portal ( i am unaware of any specific technical name for the color differentiation of the portals). Basically you shoot a portal at a surface that allows that and you can walk through one portal and come out the other, regardless of their placement or orientation. I.e. one may place a portal on the wall and the other on the floor and you will go through the floor and come out the wall or go in the wall and pop out the floor. And you use this technique to maneuver around the test chambers and complete the goal. Hop on YouTube.com and look for some videos, I can&#039;t do it justice. Worth every penny of the $20.00 USD, I promise!</p>
<p>TeamFortress 2<br />
I gotta say, I love the looks of this game. The character models with a more, cartoony feel, really make it feel more like a game then war simulation. Which, is why I play <strong>games,</strong> if I wanted war simulations, I could join the armed forces. The class based concepts are very nice. I personally can&#039;t stand them. I hope someone mods TF2 to remove the classes and let all weapons be avaaliable all characters. Also, the players should be move the same speed. I realize that is not how class based games are supposed to work, and I will again mention that I do not like class based games. If TF2 and Quake3 could have a twisted love child, I am all about that!! Great work on this game, wish I would be getting more use out of it.</p>
<p>HalfLife2, HL2: Episode 1, HL2: Episode 2<br />
I&#039;m not going to recap HL2, it&#039;s a stunning great game! So nice to being able to see the maps then the near pitch black of some other FPS games (which I love!!) A great continuation from HL2. I really enjoy the storylines. I don&#039;t have much to say here, if you liked HL2, you will like E1, and most likely E2. Though I have not had a chance to crack it open yet. I am not allowing myself to until I finish Episode 1. (Yeah. sorry, tough year, was sorta busy <img src='http://blog.johnminadeo.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  )</p>
<p>All in all, the guys at Valve are doing an amazing job and some amazing work across the board from game development, content delivery, and game playability. Hats off to you fellas, if you&#039;re ever in Cleveland, Ohio, stop by, dinner is on me!</p>
<p>Regards!</p>
<p>&#8211;<br />
Monkk</p>
<p><a href="mailto:monkk@monkk.com">monkk@monkk.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2007/10/orange-box/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reactance 1.3 Beta 5 Released</title>
		<link>http://blog.johnminadeo.com/2007/10/reactance-1-3-beta-5-released/</link>
		<comments>http://blog.johnminadeo.com/2007/10/reactance-1-3-beta-5-released/#comments</comments>
		<pubDate>Sun, 28 Oct 2007 00:29:32 +0000</pubDate>
		<dc:creator>John Minadeo</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[quake3]]></category>
		<category><![CDATA[reactance unlagged]]></category>

		<guid isPermaLink="false">http://blog.johnminadeo.com/2007/10/reactance-1-3-beta-5-released/</guid>
		<description><![CDATA[And like magic, 1.3b5 is out the door! Connect to the dev server (72.5.249.52:27960) or download it here(ReactanceUnlagged1.3b5.zip) and extract it to your Quake III Arena game directory. Enjoy, and as always report bugs , questions or feature requests to &#8230; <a href="http://blog.johnminadeo.com/2007/10/reactance-1-3-beta-5-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>And like magic, 1.3b5 is out the door! Connect to the dev server (72.5.249.52:27960) or download it here(<a href="http://www.monkk.com/jmdev/postdloads/ReactanceUnlagged1.3b5.zip">ReactanceUnlagged1.3b5.zip</a>) and extract it to your Quake III Arena game directory.</p>
<p>Enjoy, and as always report bugs , questions or feature requests to <a href="http://www.ReactanceUnlagged.com" title="www.ReactanceUnlagged.com" target="_blank">http://www.reactanceunlagged.com</a> forums.</p>
<p>Regards!</p>
<p>&#8211;<br />
Monkk<br />
<a href="mailto:monkk@monkk.com">monkk@monkk.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.johnminadeo.com/2007/10/reactance-1-3-beta-5-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: blog.johnminadeo.com @ 2012-05-20 22:26:27 by W3 Total Cache -->
