Archive for Technology

UBB, why it’s wrong as currently executed

I’m not against UBB. I think it’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’s actually a great model to use and this is why.

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’s usually a fairly marginal markup on the costs. They do build some of the “service” related fees into that price at times, but generally it close to the “bulk” or “market rate” for the utility. (For an example, go digging here: SaskRateReview )

UBB does solve a problem ISP’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’s a fair question that I’m sure some marketing departments would attempt to explain. The reality is that ISP’s have been playing the averages for ages now. It wasn’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’s adopted this ages ago, mostly because the infastructure was not designed to handle a few people with huge appetites for bandwidth.

There are two cruxes to the problem that I see here. One is the ISP’s claiming infrastructure can’t keep up with their customers growing demand. Funny, what were the big three spending their profits on all these years. Rogers, Shaw, and Bell have all recently (and historically for that matter) had very successful years. Apparently they didn’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.

Second crux is that the ISP’s immediately when to what is an utility model, but didn’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: SliceHost, Amazon and RackSpace. 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: eHosting, Cirrus Tech and The Wire. 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.

To be fair, some comparing hosting provider charges for bandwidth isn’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’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’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.

The solution is not clear at this point. These ISP’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’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 “three” 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’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).

Comments (2)

Moving Magento? Remember to run this command

If your working with Magento and have to move an installation, you will want to make sure it’s locally installed PEAR repository is updated as well. It stores a bunch of first install paths in a serialized PHP file. Instead of manually editing them, you can simply run this from the root install of your Magento:


./pear mage-setup

That should update everything to work as expected for updates and the like.

Comments

UPS, Delivery at the speed of light

Much to my amusement, UPS managed to get me a package 2 minutes before it had even arrived in Saskatoon!

UPS manages to deliever a package before it arrives

UPS manages to deliever a package before it arrives

I seriously wonder how hard it is to track a package in this day and age…

Comments (1)

Database Design: 101

In my line of work, I see a lot of legacy databases. We often tasked with converting them to something more modern. My #1 gripe with some of our junior programs in this task is not converting fields to a more appropriate data type when this takes place. Two examples that I come across often.

Read the rest of this entry »

Comments (2)

Installing a New Thermostat

To my condo has a forced air hot water furance. It’s something of a marvel of technology, being as loud as a possible and all… Anyways, the thermostat that they installed with it is a $20 piece of junk. It’s cut off for turning on and off basically guarrentees this place goes from hot to cold over and over again.  This, was unfortunate. Even more so was that it would startle me awake at night.

Read the rest of this entry »

Comments (1)

Best Gift EVER!

A gift from Rogers Wireless! 

Gift from Rogers Wireless

Gift from Rogers Wireless

Always providing top notch service…

Comments

UPS vs Taiwan Air Mail

So I’ve been accumulating the parts for my car computer. I had to special order the dash piece for my car from Taiwan. Around the same time I ordered a really cheap LCD for the computer. This is a quick write up comparing the two items shipping…

Read the rest of this entry »

Comments

Install Shield, Friend or Foe

At work I’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’m coming from a unique perspective here, in that I’ve attempted to use 10.5 and 2008. Here are my “Install Shield Grips”:

  • The difference between MSI project types is nearly meaningless. “Basic MSI” 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.
  • 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’ve already come across a few cases where the manual for 2008 does not reflect changes made since 12.
  • 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… give me something I can actually see as an improvement.
  • 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.
  • Want to test custom script actions? You’ll have to rebuild your who MSI project to do that. In my case that’s a 20 minute or so wait between tests.
  • 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.
  • Skinning support is poor to horrible. Let’s not forget that it’s documentation is poor as well, making it all that more entertaining to use.

Read the rest of this entry »

Comments

My List of VB6 Gripes

I’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’m sure I’ll remember some more as it bits my ass over the next week. In no particular order of importance, here they are:

  1. Code that works in VB.Net and should in theory work in VB6 (with the appropriate changes) never does.
  2. Modules are static classes and everyone uses them way too much.
  3. 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.
  4. The Intellesense line complete is retarded 99% of the time.
  5. Building your project requires you to specify where to save; and, what the file name is every time.
  6. The errors VB passes along are generic to the point where it may as well say, “Something bad happend. Insert MsgBox someplace random.”
  7. The only way to debug an app with any degree of accuracy is with lots of MsgBox’s.
  8. Add a new Module, Class or User Control. Try to compile without saving your project first. Watch it burn in flames.
  9. Doesn’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.
  10. Pretend enums, even thou we have enums in VB6. Apparently they decided not to use them for anything remotely intellegent.
  11. 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. Added August 22nd, 2007
  12. VS VB6 seems to forget where referenced DLL’s are; or, just ignores where it knows they are and pretends they’re not there. The result of this is that any “object” that used the reference is removed from the code, along with any attributes customized for it. Added August 22nd, 2007
  13. There is no undo for moving form elements. If you had an exactly placed element and accidentally moved it your hooped.Added August 24th, 2007

Note on August 24th, 2007: I realize many of these issues are fixed in later editions. My point here is that I shouldn’t be developing software in VB6… it’s wasting my time.

Comments

ASP.NET 2.0, Dropdowns

I’ll keep this as short as possible. I’ve been doing more ASP.NET 2.0 development at work. Sometimes I’m amazed at how simple and fast you can do something. Other times I’m horrified at how lacking it is. I have nothing particularly against ASP.NET 2.0, but if it was something opensource… people would be fixing these petty problems. Here’s an example:

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 “onchange” event to call some javascript that does this. Something simple like: window.location = “#item_id”;

Unfortunately, ASP.NET 2.0 doesn’t want you to do client side scripting with their controls, so you left with these options:
1. Render the control manually in the ASP page. This is the method we’ve been doing for years, creating large unreadable source pages. It’s what all this ASP control jazz is supposed to fix.
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’t want. Extending it consumes some time, but if done write you can probably reuse it.
3. Add the ‘onchange’ attribute to the control with some code: controlName.Attributes.Add(“onChange”,”javascript: return confirm(“Are you sure?”);”); This works, but you end up combining your view and control code, which once again is something ASP was supposed to fix…

None of these solutions are particularly good. When I worked on a site that used Castle I found many similar problems with their “Helpers”. 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.

Note: I’m not endorsing the use of Castle. It’s relatively mature, but doesn’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).

Comments (2)

« Previous entries Next Page » Next Page »