<?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>James Sapara's Personal Blog &#187; Rants</title>
	<atom:link href="http://blog.sapara.com/category/rants/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sapara.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Thu, 27 Oct 2011 22:01:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>UBB, why it&#8217;s wrong as currently executed</title>
		<link>http://blog.sapara.com/2011/02/01/ubb-why-its-wrong-as-currently-executed/</link>
		<comments>http://blog.sapara.com/2011/02/01/ubb-why-its-wrong-as-currently-executed/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 19:32:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[WebBlog Blog]]></category>

		<guid isPermaLink="false">http://blog.sapara.com/?p=422</guid>
		<description><![CDATA[I&#8217;m not against UBB. I think it&#8217;s a very reasonable way to charge for what will eventually be considered a utility. Like all the utilities we currently pay for, we often pay a connect/service fee and then a reasonable rate for resource being used. It&#8217;s actually a great model to use and this is why. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not against UBB. I think it&#8217;s a very reasonable way to charge for what will eventually be considered a utility. Like all the utilities we currently pay for, we often pay a connect/service fee and then a reasonable rate for resource being used. It&#8217;s actually a great model to use and this is why.</p>
<p>If you look at current UBB for utilities, the connect/service fee goes to various aspects of operating that utility. Usually maintaining the infastructure, improving infastructure, equipment given/leased to you, service and support and all the other aspects of managing that utility. It works particularly good in Canada because it allows a company to spread the cost of providing service to hard to reach areas out amongst a larger demographic. If you look at the utility rates these companies charge, it&#8217;s usually a fairly marginal markup on the costs. They do build some of the &#8220;service&#8221; related fees into that price at times, but generally it close to the &#8220;bulk&#8221; or &#8220;market rate&#8221; for the utility. (For an example, go digging here: <a href="http://www.saskratereview.ca/index.php?option=com_content&amp;view=article&amp;id=17&amp;Itemid=16&amp;limitstart=1">SaskRateReview</a> )</p>
<p>UBB does solve a problem ISP&#8217;s have faced for more than a decade (maybe even two). When you give unlimited, some people try to actually use it as such. You might say, why offer it if you were not prepared to service it. It&#8217;s a fair question that I&#8217;m sure some marketing departments would attempt to explain. The reality is that ISP&#8217;s have been playing the averages for ages now. It wasn&#8217;t until recently that the average consumption of bandwidth has been accelerating. A fair reaction to this is placing limits on packages at fixed prices. Many ISP&#8217;s adopted this ages ago, mostly because the infastructure was not designed to handle a few people with huge appetites for bandwidth.</p>
<p>There are two cruxes to the problem that I see here. One is the ISP&#8217;s claiming infrastructure can&#8217;t keep up with their customers growing demand. Funny, what were the big three spending their profits on all these years. <a href="http://www.rogers.com/web/Rogers.portal?_nfpb=true&amp;_windowLabel=investor_1_1&amp;investor_1_1_actionOverride=/portlets/consumer/investor/showGenericFlexibleZoneAction&amp;investor_1_1subAction=showResultInYearAction&amp;_pageLabel=IR_LANDING">Rogers</a>, <a href="http://stocks.investopedia.com/stock-analysis/2011/Shaw-Communications-Intrigues-Investors-SJR-RCI-TU-VZ-T-BCE0117.aspx">Shaw</a>, and <a href="http://www.theglobeandmail.com/globe-investor/bce-revenue-climbs-to-465-billion/article1455778/">Bell</a> have all recently (and historically for that matter) had very successful years. Apparently they didn&#8217;t think to spend any of that money on improving infrastructure to keep up with growing trends of more people using the internet and more people streaming media on the internet.</p>
<p>Second crux is that the ISP&#8217;s immediately when to what is an utility model, but didn&#8217;t switch to utility pricing. Many people have mentioned it before, but $1.50/GB is far to much to charge as a utility. Look at the price U.S. resales it at: <a href="http://www.slicehost.com/questions/#buy-storage">SliceHost</a>, <a href="http://aws.amazon.com/ec2/pricing/">Amazon</a> and <a href="http://www.rackspacecloud.com/cloud_hosting_products/servers/pricing/">RackSpace</a>. Between 30 cents and 10 cents? Surely, it must be more in Canada right? Nope, take a look at hosting pages and how much transfer they include: <a href="http://www.ehosting.ca/plans/dedicated.php#Specs">eHosting</a>, <a href="http://www.cirrushosting.com/dedicatedservers/intel-dedicated-servers-and-dedicated-hosting-solutions-2.html">Cirrus Tech</a> and <a href="http://www.the-wire.com/colocate.php">The Wire</a>. All these companies host geographically in Canada. For whatever reason Canada covets the $/GB numbers, but the numbers are interesting regardless. eHosting is ~ $1.09/GB and that includes fully managed dedicate server (actual hardware) on the other end. Cirrus Tech includes 2,000GB a month for their hosting which works out to $0.095/GB. Again, that includes hosting on a machine. The Wire sells dedicated co-location with 1 Mbps connection for $129, which typically gives you ~300GB a month. $0.43/GB that includes rack space and power.</p>
<p>To be fair, some comparing hosting provider charges for bandwidth isn&#8217;t 100% fair. They are usually right on top of a few trunks and often negotiate peering agreements (if they are large enough to do so). So that&#8217;s the price when your at the doorstep. In theory, in a utility market where there is a service fee plus UBB, the cost of brining it to the door is either all in the service fee, or wrapped in to the metered rate. In either case, if the ISP&#8217;s in Canada are claiming it costs an order magnatude more to provide internet service to the door. You have to wonder why electrical companies are not going bankrupt left and right. They provide a far more reliable service to nearly EVERY possible place in Canada.</p>
<p>The solution is not clear at this point. These ISP&#8217;s clearly want to make money and there is nothing wrong with that. UBB, if done fairly, would not be putting us in this uproar we are in right now. It seems like most Canadians get that UBB is like moving to the utility model, but they also recognize the rate is not well connected to the costs. That&#8217;s something economics would usually fix over time, but perhaps the meddling of the CTRC and government is preventing such an event to take place. There are broader concerns that the big &#8220;three&#8221; are going to generally match that each other do as well. So if one does it and makes money, why not the rest of them. If that&#8217;s the case, perhaps government intervention is required to break those companies up into something smaller. Or, god help us, regular internet services as utilities (a last resort IMHO). What I do know is, the current UBB pricing is not reflecting a fair rate, something we should definitely be doing something about (preferable with your wallet and voice).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sapara.com/2011/02/01/ubb-why-its-wrong-as-currently-executed/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Advice for Paypal users</title>
		<link>http://blog.sapara.com/2009/07/28/advice-for-paypal-users/</link>
		<comments>http://blog.sapara.com/2009/07/28/advice-for-paypal-users/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 17:15:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[WebBlog Blog]]></category>
		<category><![CDATA[bank]]></category>
		<category><![CDATA[lame]]></category>
		<category><![CDATA[nsf]]></category>
		<category><![CDATA[paypal]]></category>
		<category><![CDATA[scam]]></category>

		<guid isPermaLink="false">http://blog.sapara.com/?p=406</guid>
		<description><![CDATA[So, if your a paypal user like me, you may of added your chequeing or saving account for direct withdraws and deposits. Makes sense if you do large online purchases and occasionally sell something as well. They make this &#8220;convenience feature&#8221; very visible and push it for EVERY transaction. Every time you buy something the [...]]]></description>
			<content:encoded><![CDATA[<p>So, if your a paypal user like me, you may of added your chequeing or saving account for direct withdraws and deposits. Makes sense if you do large online purchases and occasionally sell something as well. They make this &#8220;convenience feature&#8221; very visible and push it for EVERY transaction. Every time you buy something the default is to use you cash accounts, not your credit card. They tout it as &#8220;Safe, Secure and Easy&#8221;. Well, I&#8217;ve go news for you&#8230; it&#8217;s not.</p>
<p><span id="more-406"></span></p>
<p>The deception, in my opinion, is that they let you pick a backup funding source. This is made out to be a feature for you. It&#8217;s actually a feature for the merchant. See, if you don&#8217;t have enough money in your account you get NSF&#8217;ed. Then, paypal finds out and charges your credit card. Granted, this makes sense, but I feel it also gave a false sense of security to the purchaser. It doesn&#8217;t give you anything. If you happen to be at your low cash balance for the month and you get a few recurring charges&#8230; the fee&#8217;s can add up fast (I guess that depends on you bank&#8230; mine is $40 a hit). It gets better!</p>
<p>If you&#8217;ve setup paypal payments through a merchant in the past and have a regular amount of business with them they can setup some sort of magical way to remember your preferences and just charge your paypal account like they did last time. This isn&#8217;t a &#8220;recurring&#8221; bill or a &#8220;subscription&#8221;. It&#8217;s some feature I&#8217;ve never seen in the paypal API as of yet (and I&#8217;ve got it right beside me). So, when I went to renew my domain this month it decided to just go ahead and charge my bank account first&#8230; with out asking me. So bank, another $40 charge on my empty bank account. I&#8217;m not even sure how I can change this &#8220;preference&#8221; in paypal. GoDaddy.com doesn&#8217;t seem to offer a way to change it either. I guess next time I&#8217;ll just opt to use my credit card directly. Which brings me to this.</p>
<p>What incentive is there for a consumer to even offer to pay straight from their account when they have to have a CC to back up the transaction anyways? I don&#8217;t see any reason at all to even have my account linked to paypal anymore (after $160 of NSF fees&#8230;). I&#8217;ll pay straight from my CC for purchases. If I get some extra cash in the account, I&#8217;ll use my paypal debit mastercard to take it out.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sapara.com/2009/07/28/advice-for-paypal-users/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dropping Default Constraints in MSSQL</title>
		<link>http://blog.sapara.com/2009/04/30/dropping-default-constraints-in-mssql/</link>
		<comments>http://blog.sapara.com/2009/04/30/dropping-default-constraints-in-mssql/#comments</comments>
		<pubDate>Fri, 01 May 2009 02:08:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programs]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[default constraint]]></category>
		<category><![CDATA[default value]]></category>
		<category><![CDATA[drop column with default constraint]]></category>
		<category><![CDATA[mssql]]></category>

		<guid isPermaLink="false">http://blog.sapara.com/?p=397</guid>
		<description><![CDATA[I came across this today: Working With Default Constraints Basically, if you script any sort of table changes in MSSQL you will eventually need to use this code. In MSSQL&#8217;s infinite wisdom they made default values on NOT NULL columns occasionally have a mysterious constraint. Ordinarily, constraints on fields on tables are easily found in [...]]]></description>
			<content:encoded><![CDATA[<p>I came across this today: <a href="http://msdn.microsoft.com/en-us/library/aa175912(SQL.80).aspx">Working With Default Constraints</a></p>
<p>Basically, if you script any sort of table changes in MSSQL you will eventually need to use this code. In MSSQL&#8217;s infinite wisdom they made default values on NOT NULL columns occasionally have a mysterious constraint. Ordinarily, constraints on fields on tables are easily found in INFORMATION_SCHEMA.TABLE_CONSTRAINTS; but, these particular constraints are hidden for whatever reason.</p>
<p>This makes removing them programmatically very difficult, since they insist on putting a timestamp/guid on the end of each auto-generated default constraint. SO, this useful page on the MSDN provides a way to query the actual name of the constraint given the table name and column name. This, allowing you to remove it before you do something completely crazy like delete the column.</p>
<p>Of course, if your not in to scripting your database migrations then you can just use Management Studio and delete the column.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sapara.com/2009/04/30/dropping-default-constraints-in-mssql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Eddie Bauer Reward Program</title>
		<link>http://blog.sapara.com/2009/02/12/the-eddie-bauer-reward-program/</link>
		<comments>http://blog.sapara.com/2009/02/12/the-eddie-bauer-reward-program/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 05:56:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[eddie bauer]]></category>
		<category><![CDATA[reward program]]></category>

		<guid isPermaLink="false">http://blog.sapara.com/?p=380</guid>
		<description><![CDATA[I&#8217;ll keep it brief. You sign up for a card. You get two points for every dollar. Takes 1000 points to get $10 off. $10/$500 is 2% off. They force you to accept a coupon for this redemption as soon as you hit 1000 points. They print this on thermal paper and give it to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll keep it brief. You sign up for a card. You get two points for every dollar. Takes 1000 points to get $10 off. $10/$500 is 2% off. They force you to accept a coupon for this redemption as soon as you hit 1000 points. They print this on thermal paper and give it to you to loose. It also expires 3 months after it&#8217;s issued. So, if you shop very frequently at Eddi Bauer, this card is for you. Otherwise, it&#8217;s a giant waste of time, plastic and paper.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sapara.com/2009/02/12/the-eddie-bauer-reward-program/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>UPS, Delivery at the speed of light</title>
		<link>http://blog.sapara.com/2009/02/03/ups-delivery-at-the-speed-of-light/</link>
		<comments>http://blog.sapara.com/2009/02/03/ups-delivery-at-the-speed-of-light/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 18:40:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Funny]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[WebBlog Blog]]></category>
		<category><![CDATA[deliever]]></category>
		<category><![CDATA[fail]]></category>
		<category><![CDATA[ups]]></category>

		<guid isPermaLink="false">http://blog.sapara.com/?p=374</guid>
		<description><![CDATA[Much to my amusement, UPS managed to get me a package 2 minutes before it had even arrived in Saskatoon! I seriously wonder how hard it is to track a package in this day and age&#8230;]]></description>
			<content:encoded><![CDATA[<p>Much to my amusement, UPS managed to get me a package 2 minutes before it had even arrived in Saskatoon!<br />
<div id="attachment_375" class="wp-caption alignnone" style="width: 557px"><a href="http://blog.sapara.com/wp-content/uploads/2009/02/ups-fail.png"><img src="http://blog.sapara.com/wp-content/uploads/2009/02/ups-fail.png" alt="UPS manages to deliever a package before it arrives" title="ups-fail" width="547" height="149" class="size-full wp-image-375" /></a><p class="wp-caption-text">UPS manages to deliever a package before it arrives</p></div></p>
<p>I seriously wonder how hard it is to track a package in this day and age&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sapara.com/2009/02/03/ups-delivery-at-the-speed-of-light/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>An Amusing Tale of Passing on the Right</title>
		<link>http://blog.sapara.com/2008/01/02/an-amusing-tail-of-passing-on-the-right/</link>
		<comments>http://blog.sapara.com/2008/01/02/an-amusing-tail-of-passing-on-the-right/#comments</comments>
		<pubDate>Wed, 02 Jan 2008 20:20:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Funny]]></category>
		<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://blog.sapara.com/2008/01/02/an-amusing-tail-of-passing-on-the-right/</guid>
		<description><![CDATA[So I&#8217;m on my way back from the bank today. Heading down 51st towards warman ave. The lights at that particular intersection heading east and west allow for three lanes of traffic, but most people who plan to continue through don&#8217;t use the far right lane. Most of the time it&#8217;s full of people turning [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;m on my way back from the bank today. Heading down 51st towards warman ave. The lights at that particular intersection heading east and west allow for three lanes of traffic, but most people who plan to continue through don&#8217;t use the far right lane. Most of the time it&#8217;s full of people turning right (and not turning right when they can, given they have their own lane to do so in). At any rate, the light turns green and we all proceed to move through the intersection at the usual pace.</p>
<p>This guy behind me is riding my ass and he obviously want to be in that right lane ASAP. Well all the power to him I think, as I see broken down car up a head in the right lane. Since he was following me sooo closely I think he couldn&#8217;t see that car, because he choose to peel out of the lane right into it. I say he was going 60km/h or so when he did that. Right smack into the back of the other car. Didn&#8217;t appear to be anyone tending to that poor parked car, and the guy immediately jumped out of his car waving his hands in the air. I figured he was fine if he could do that and kept on moving.</p>
<p>Today&#8217;s lesson in driving? Always maintain a safe following distance in your car, and exercise caution when going around vehicle on the right. You have something of a blind spot there.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sapara.com/2008/01/02/an-amusing-tail-of-passing-on-the-right/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Install Shield, Friend or Foe</title>
		<link>http://blog.sapara.com/2007/09/07/install-shield-friend-or-foe/</link>
		<comments>http://blog.sapara.com/2007/09/07/install-shield-friend-or-foe/#comments</comments>
		<pubDate>Fri, 07 Sep 2007 21:15:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.sapara.com/2007/09/07/install-shield-friend-or-foe/</guid>
		<description><![CDATA[At work I&#8217;ve been using the newest and greatest Install Shield Premier 2008 for packing aforementioned Visual Basic application. We actually had version 10.5 sitting around, but somehow I managed to change the dependencies for this application is such a way that it confused the heck out of the 10.5 version. Now, I&#8217;m coming from [...]]]></description>
			<content:encoded><![CDATA[<p>At work I&#8217;ve been using the newest and greatest Install Shield Premier 2008 for packing aforementioned Visual Basic application. We actually had version 10.5 sitting around, but somehow I managed to change the dependencies for this application is such a way that it confused the heck out of the 10.5 version. Now, I&#8217;m coming from a unique perspective here, in that I&#8217;ve attempted to use 10.5 and 2008. Here are my &#8220;Install Shield Grips&#8221;:</p>
<ul>
<li>The difference between MSI project types is nearly meaningless. &#8220;Basic MSI&#8221; can only literally handle just a straight up wizard created project. Anything remotely useful requires you to migrate to the InstallScript related projects. My point here, why even bother having it as an option.</li>
<li>Documentation included within the app is sparse at best. Documentation online is marginally better. $250 manuals, ever so slightly more useful than online docs. Would it kill them to keep these manuals up to date as well? I&#8217;ve already come across a few cases where the manual for 2008 does not reflect changes made since 12.</li>
<li>Complete lack of a useful Dialog building GUI. Was an issue in 10.5 and still is an issue in 2008. Seriously people, if you going to charge that much for your product&#8230; give me something I can actually see as an improvement.</li>
<li>Did I mention the entire interface for the application has basically remained the same? Well it has, all the slow loading pages and forms are still here in 2008.</li>
<li>Want to test custom script actions? You&#8217;ll have to rebuild your who MSI project to do that. In my case that&#8217;s a 20 minute or so wait between tests.</li>
<li>They have this nifty feature called release flags, but fail to implement it everywhere it could be useful. Results in you hacking the install scripts to get behaviors based on the release flag anyways.</li>
<li>Skinning support is poor to horrible. Let&#8217;s not forget that it&#8217;s documentation is poor as well, making it all that more entertaining to use.</li>
</ul>
<p><span id="more-289"></span><br />
Well I should also point out what this software does well:</p>
<ul>
<li>Dependency scanning for crap old VB applications is amazing. It also includes (or can be downloaded with the update manager) all the MSI merge modules for those dependencies that are difficult to install manually. It&#8217;s actually why we updated to 2008.</li>
<li>Multi language support is half-descent</li>
<li>Phone support has so far been very good</li>
<li>It has a lot of nifty built in features that nearly work exactly has you want them to, majority of the time. XML and INI file editing comes to mind.</li>
<li>It has a GUI for what it&#8217;s worth&#8230;</li>
</ul>
<p>Some of you are probably thinking to your selves, &#8220;But James, there&#8217;s plenty of free alternatives out there.&#8221; And you sir/madam would be correct and very smart. Let me tell you why I couldn&#8217;t use InnoSetup or NSIS. They don&#8217;t dependency scan (even with the addon tools) nearly well enough to catch everything a complex VB application uses to run. At one point I actually tried to duplicate what Install Shield had determined the dependencies as, but that didn&#8217;t work either.</p>
<p>I do plan on using one of those two alternatives in the future (most likely NSIS). Both options built the installation package much faster than InstallShield can. They both are very flexible and extend able; and, they&#8217;re free and well supported. NSIS comes with an amazing set of examples that cover nearly any installation situation you would come across. InnoSetup also has a very good community behind it. Until the software is rewritten to have less dependencies I don&#8217;t believe I&#8217;ll be able to escape the InstallShield monster; but, for now I do have a good handle on how to work with it and get it to do my whims (most of the time).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sapara.com/2007/09/07/install-shield-friend-or-foe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My List of VB6 Gripes</title>
		<link>http://blog.sapara.com/2007/08/20/my-list-of-vb6-gripes/</link>
		<comments>http://blog.sapara.com/2007/08/20/my-list-of-vb6-gripes/#comments</comments>
		<pubDate>Mon, 20 Aug 2007 21:17:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[WebBlog Blog]]></category>

		<guid isPermaLink="false">http://blog.sapara.com/2007/08/20/my-list-of-vb6-gripes/</guid>
		<description><![CDATA[I&#8217;m working with VB6 at work. This list is not nearly complete, but it does represent all the problems I had today with VB6. I&#8217;m sure I&#8217;ll remember some more as it bits my ass over the next week. In no particular order of importance, here they are: Code that works in VB.Net and should [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working with VB6 at work. This list is not nearly complete, but it does represent all the problems I had today with VB6. I&#8217;m sure I&#8217;ll remember some more as it bits my ass over the next week. In no particular order of importance, here they are:</p>
<ol>
<li>Code that works in VB.Net and should in theory work in VB6 (with the appropriate changes) never does.</li>
<li>Modules are static classes and everyone uses them way too much.</li>
<li>Dependencies with OCX and DLL files are cached in some queer system that is supposed to save me time. More often than not it buggers the project up on release.</li>
<li>The Intellesense line complete is retarded 99% of the time.</li>
<li>Building your project requires you to specify where to save; and, what the file name is every time.</li>
<li>The errors VB passes along are generic to the point where it may as well say, &#8220;Something bad happend. Insert MsgBox someplace random.&#8221;</li>
<li>The only way to debug an app with any degree of accuracy is with lots of MsgBox&#8217;s.</li>
<li>Add a new Module, Class or User Control. Try to compile without saving your project first. Watch it burn in flames.</li>
<li>Doesn&#8217;t auto save before debug. If you get some sort of long msgbox loop from debugging there is no way to stop it other than killing Visual Studio 6. Redo all work.</li>
<li>Pretend enums, even thou we have enums in VB6. Apparently they decided not to use them for anything remotely intellegent.</li>
<li>Take two integers (whole numbers) and divide them. Usually you would expect an integer as a result, but with VB if the result is not a whole number it returns a float. If it is a whole number it returns an integer. Makes you wrap all your integer math in CInt()/Int() if you want it to be sane. <em>Added August 22nd, 2007</em></li>
<li>VS VB6 seems to forget where referenced DLL&#8217;s are; or, just ignores where it knows they are and pretends they&#8217;re not there. The result of this is that any &#8220;object&#8221; that used the reference is removed from the code, along with any attributes customized for it. <em>Added August 22nd, 2007</em></li>
<li>There is no undo for moving form elements. If you had an exactly placed element and accidentally moved it your hooped.<em>Added August 24th, 2007</em></li>
</ol>
<p><em>Note on August 24th, 2007: I realize many of these issues are fixed in later editions. My point here is that I shouldn&#8217;t be developing software in VB6&#8230; it&#8217;s wasting my time.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sapara.com/2007/08/20/my-list-of-vb6-gripes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET 2.0, Dropdowns</title>
		<link>http://blog.sapara.com/2007/05/16/aspnet-20-dropdowns/</link>
		<comments>http://blog.sapara.com/2007/05/16/aspnet-20-dropdowns/#comments</comments>
		<pubDate>Wed, 16 May 2007 20:27:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.sapara.com/2007/05/16/aspnet-20-dropdowns/</guid>
		<description><![CDATA[I&#8217;ll keep this as short as possible. I&#8217;ve been doing more ASP.NET 2.0 development at work. Sometimes I&#8217;m amazed at how simple and fast you can do something. Other times I&#8217;m horrified at how lacking it is. I have nothing particularly against ASP.NET 2.0, but if it was something opensource&#8230; people would be fixing these [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll keep this as short as possible. I&#8217;ve been doing more ASP.NET 2.0 development at work. Sometimes I&#8217;m amazed at how simple and fast you can do something. Other times I&#8217;m horrified at how lacking it is. I have nothing particularly against ASP.NET 2.0, but if it was something opensource&#8230; people would be fixing these petty problems. Here&#8217;s an example:</p>
<p>You have a drop down list on a page that is DataBound to a list of items. These items all appear on the page, but you may have to scroll to them. You want to let the use select the item from the drop down and scroll to it (with the magic of anchor tags). Typically you add an &#8220;onchange&#8221; event to call some javascript that does this. Something simple like: window.location = &#8220;#item_id&#8221;;</p>
<p>Unfortunately, ASP.NET 2.0 doesn&#8217;t want you to do client side scripting with their controls, so you left with these options:<br />
1. Render the control manually in the ASP page. This is the method we&#8217;ve been doing for years, creating large unreadable source pages. It&#8217;s what all this ASP control jazz is supposed to fix.<br />
2. Extend or rewrite a new control that accepts this property with no complaints. This may already be done by someone out there. Down side is you add a dependency to your project and usually get a bunch of other crap you didn&#8217;t want. Extending it consumes some time, but if done write you can probably reuse it.<br />
3. Add the &#8216;onchange&#8217; attribute to the control with some code: controlName.Attributes.Add(&#8220;onChange&#8221;,&#8221;javascript: return confirm(&#8220;Are you sure?&#8221;);&#8221;); This works, but you end up combining your view and control code, which once again is something ASP was supposed to fix&#8230;</p>
<p>None of these solutions are particularly good. When I worked on a site that used <a href="http://www.castleproject.org/">Castle</a> I found many similar problems with their &#8220;Helpers&#8221;. I submitted updates to them, so everyone benefited. With Microsofts ASP.NET, we have to bitch about it. Send in a request. Wait. Wait some more. Then maybe they integrate the requested fix/feature in the next version. The whole process taking years usually.</p>
<p><em>Note: I&#8217;m not endorsing the use of Castle. It&#8217;s relatively mature, but doesn&#8217;t provide much of an advantage over a well designed asp.net site. Also, to do anything moderately well in ASP.NET, you should understand their DataSource stuff. For larger sites, be prepared to write your own datasource handlers, because the ones they provide are limited in their usefulness on large sets of data (e.g., they retrieve full sets of data before pagination or sorting).</em><br />
<!-- ckey="128E9CC2" --></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sapara.com/2007/05/16/aspnet-20-dropdowns/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A brief political/religion example</title>
		<link>http://blog.sapara.com/2007/04/19/a-brief-politicalreligion-example/</link>
		<comments>http://blog.sapara.com/2007/04/19/a-brief-politicalreligion-example/#comments</comments>
		<pubDate>Fri, 20 Apr 2007 04:35:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Funny]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[WebBlog Blog]]></category>

		<guid isPermaLink="false">http://blog.sapara.com/2007/04/19/a-brief-politicalreligion-example/</guid>
		<description><![CDATA[I found these gems on the internet today: Definition of a Liberal or What God thinks of liberals According to the Bible&#8230; LIBERAL equals NOBLE and GENEROUS! SAME-SEX RELATIONSHIPS IN THE BIBLE I don&#8217;t often poke the religion monster, but today I heard an interesting comment whilst in the mall. Something along the lines of, [...]]]></description>
			<content:encoded><![CDATA[<p>I found these gems on the internet today:</p>
<ol>
<li><a href="http://www.repentnow.com/liberal.htm">Definition of a Liberal or What God thinks of liberals</a></li>
<li><a href="http://mnl_1221.tripod.com/liberal.html">According to the Bible&#8230; LIBERAL equals NOBLE and GENEROUS!</a></li>
<li><a href="http://www.religioustolerance.org/hom_bmar.htm">SAME-SEX RELATIONSHIPS IN THE BIBLE</a></li>
</ol>
<p><span id="more-277"></span><br />
I don&#8217;t often poke the religion monster, but today I heard an interesting comment whilst in the mall. Something along the lines of, &#8220;All those liberals are going to hell. It say&#8217;s so in the bible!&#8221; No I often take crazy old lady speak with a grain of salt. Thou, since I often consider myself liberal (thou, that may be misleading, since I often support conservative actions in some matters), I felt it was important to confirm if the bible did in-fact condemn me to hell. That&#8217;s how I came across those snips.</p>
<p>Now, granted&#8230; only the first two somewhat address my concern. It appears to be a problem with translation and where or not you take all the bible literally. In Canada we have been flogging the issue of same sex marriage for some time now. We have our ultra conservatives that won&#8217;t stand for it, our ultra liberals that are fighting to have it; and, the rest (and majority) of the people who don&#8217;t care.</p>
<p>Most of the liberals see this as a policy issue within the churches, and acknowledge that under the Canadian Charter of Rights Gay people should probably be allowed to get married; but, they can&#8217;t really tell them to do that because religions also have some rights against being told what they can and can not do. In other words, the political framework allows for all this to take place already. It&#8217;s mostly a matter of the churches figuring out how to make it work for them.</p>
<p>The conservatives seem to be mostly on the religious side of the debate. Taking the bible and church policy as the measure for government policy. Apparently our &#8220;diverse&#8221; country of Canada with all it&#8217;s &#8220;torrence&#8221; is only applicable if your Christian. If your not Christian you don&#8217;t count; and, if your a &#8220;bad&#8221; Christian you count even less.</p>
<p>Now, I&#8217;m not going to go into much detail about how obvious separation of church and state should be. Needless to say, this matter would be over if this was a pure policy decision. Instead we have personal beliefs that may or may not be effected by religious teachings/polices, effecting our governments ability to make a simple decision. Seriously, people should be free to love who ever they want. If they want to join that social intuition of marriage, let them. If we don&#8217;t do that, they&#8217;ll just call it something else&#8230; make up their own system for managing it&#8230; and eventually get the government to give them pathetic tax incentives(?). Either way, they win and we wasted millions of dollars (it must be the liberal in me that says we could spend that on making our next generation of kids *not* fat?)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sapara.com/2007/04/19/a-brief-politicalreligion-example/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

