Sunday, February 7, 2010

 

You CAN teach an old dog new tricks!

I'm a great believer in learning keeps you young. Stop learning and you may as well curl up your toes and call it quits.

The problem comes of course when an old brain has to learn new concepts. It may take much longer; it may take a LOT of repetition or attempts, but keep at it, and you can grasp a new skill or learn new information on a previously unstudied subject.

Some things, of course, are never meant to be. All things are possible, except skiing through a revolving door; and if you're over 70 years old, or are physically frail, then skate boarding is not for you. But apart from these obvious examples, I think many of us tend to limit ourselves more than we need to.

Why am I talking like this? Well, I saw this the other day (YouTube Video) and my initial reaction was one of concern. I realised that I had always thought there would never be a time when technology would get the better of me. Oh sure, installing new home entertainment equipment seemed to be a much longer process, but that was due to the increased complexity required to play my CDs.

Having spent some time thinking about this I realize that there is no need for fear. It might take me longer than the 16 year old down the road to connect up my new TV, but I'm going to enjoy the movie much more than he will. I'll get to see it a dozens times or more because I keep falling asleep in the boring bits.


[EDIT] I recently came across an updated version of the video linked above. Check it out here.




Labels:


Tuesday, December 1, 2009

 

ORM or die!

I recently blogged about the DevExpress ORM tool - Express Persistent Objects (XPO). I have had (and continue to have) a great experience using this tool. Everytime I use it, I find something else that endears itself to me.

Having made the decision that all future projects would include a data access layer (DAL) based on XPO, I was nontheless surprised at how important some developers consider an ORM tool to be. So important in fact, that they are willing to advocate leaving an employer who does not allow the use of an ORM tool. (See link in heading for the full story).

My first reaction was, "This is a a bit extreme". After all, the GFC (Global Financial Crisis) is still affecting most of the world, and job security is not as good as it was a few years ago. Upon reflection, however, I am now inclined to agree with this sentiment, and I do so for two main reasons.

Firstly, professional development is difficult enough to stay current with, without being hampered by the lack of access to current tools. Every job, every project, every domain space provides an opportunity to increase knowledge and expertise. Being fettered with non-involvment with a specific tool or model or paradigm cannot be good for your CV, or even your sense of self-confidence.

Secondly, and maybe even more germane to a professional developer, is the responsibility to provide accurate, honest, and professional service to your employers - even if they don't understand or disagree with your advice. I don't know if there is a legal accountability to ensure your employer/client receives valid, up-to-date, best practices advice, but there is certainly a moral one.

Personally, I have few clients who are even remotely interested in the technologies I employ to provide the applications they need. They only care about the end result. But if they discovered that I ignored a major tool or model while developing their applicaton they would sack me; and they would be fully justified to do so.

Labels: , ,


Tuesday, November 10, 2009

 

Inno Setup

I spent some time today re-acquainting myself with an old friend. Back around the turn of the century, InnoSetup was a little tool by Jordan Russell that created install packages for my custom applications. My development tool of choice at the time was Computer Associates attempt at an OOP-based, windows development platform called Visual Objects. The power and elegance of the language was excellent, and even today with the advent of the .Net development platform, there are still things VO can do better than most.

Never heard of Visual Objects? I'm not surprised.

VO could truly have been a very serious contender against Microsoft's .Net platform. But for every powerful verb, for every gracious class and method, for every sublime implementation of a model, the IDE provided with VO lacked an essential piece of functionality. To say it was incomplete was an understatement. Bug-ridden, cantankerous, reluctant - oh, I could go on! I put up with this jumble of malfunctioning ones and zeroes for almost seven years. Yes, yes, I know. I have the patience of a saint.

Anyway, I digress.

InnoSetup was a brilliant utility that output perfectly working install routines with very little effort. Once I moved to Visual Objects though, I had no need of it. Or so I thought.

Somewhere in the past few weeks I have somehow scrambled Visual Studio's setup project wizard. It runs; it creates Setup.exe and msi files; but they are empty. No Primary Output. No supporting DLLs. Nothing.

So while I was searching the Internet was a solution, I came across a reference to InnoSetup, and my love affair started all over again. There's so much to love about Innosetup. It has an intuitive interface supported by a considerate host of tool tips that never get in the way but provide just enough assistance if you get stuck. There is a wonderful little addition called ISTool, written by Bjornar Henden that improves an already masterful interface.

I love using software that an individual has written that solves a common problem, especially if that software works in a manner that exceeds the performance of products from big publishing houses.

Congratulations Jordan and Bjornar! Well done. Producing tools that remain relevant through multiple generations of improvement in any industry is a feat few can lay claim to.



Labels: , ,


Thursday, October 15, 2009

 

Extraordinary ORM Tool

Now, I'm not the world's best programmer and far be it from me to join the throng of people who regularly bash Microsoft, but I have come across an ORM tool for use with Visual Studio that cuts my code by more than 80%.

I know that's a big claim, but I can prove it.

One of the projects that I have been involved in over the past few years is a POS application that works on touch screen POS terminals. If you have ever written an application for a POS terminal you will know that RAM memory is always less than optimal, and CPU grunt is, well, always "grunting" because it really should be a more powerful CPU.

I recently had a customer who was running my software on a standard POS terminal, but it failed whenever they tried to use the stock module. Working everywhere else; but not at this site. To cut a long story short, I decided to bring forward a re-write of the stock module using an ORM tool from Dev Express called XPO.

After my first test I realised I had stumbled upon something wonderful that was completely unexpected. You see, the reason I decided to use XPO was because of the benefits it gave me in design efficiencies, (and because I am a fan of the DevExpress GUI controls, especially their DataGrid. [Gratuitous Promotion OFF]). However, what I did not expect was a very large reduction in my code base.

I ran a little tool I use called Line Count by Rich Newman (see: http://richnewman.wordpress.com/2007/07/01/c-and-vbnet-line-count-utility/) that counted lines of code in various ways. The upshot of it all is XPO reduced my data access layer code by over 82%.

Previously, I had been using DataSets and TableAdapters. I always knew I had to move to proper OOP code, hence the planed re-write, but never have I had such an encouragement to do so. Obviously XPO cannot take credit for all the gain, but the improvement is not only in reduce code base. The functionality is much greater, the speed is faster, and the "sense" of robustness is very assuring. And if that's not enough, my business logic code is also smaller.

Hats off to XPO.

I may not be the world's best programmer, but I am now one of the smarter ones :-)


Labels: , ,


Wednesday, June 17, 2009

 

Trim, taut and terrific

Many, many years ago, Ford had an advertisement that referred to their latest model in the manner of this blog's heading. I'm too young to have ever seen the ad, but my Father often referred to it when I was a lad.

I have been curious as to how Windows 7 has obtained such speed improvements over Vista. It does indeed behave in a trim and taut manner. It requires far less CPU grunt and memory space and it's response seems "fleet-footed".

So today, I think I stumbled on the reason, or part of it. Anyone who uses Windows will have come across Services. These "little" background processes that provide a discrete service. (By discrete, I mean specific, not politely behaved.) The problem in the past has been that there are so many running, and often it seemed they were not required at the time. Jump into Task Manager and take a look at the list of processes and you will notice that the list has been steadily growing through the various versions of the O/S.

Well, Windows 7 changes all that. Microsoft has delivered trigger capabilities for the services. This means that, rather than loading up the system with a heap of unnecessary services, Windows 7 only starts a service if it is required; keeps it running only as long as it is needed, and then stops the service. This improves system performance, reduces memory overhead, and generally gives the O/S a more responsive feel.

Now, I'm not sure my dear old dad would call this trim, taut or terrific, but I reckon it is.

Labels: ,


Friday, June 12, 2009

 

Hanging out my shingle

Call this blatant self-promotion; call it shameless advertising; call it whatever you like, but let's be honest. One of the primary reasons for blogging is promotion of one's attitudes, opinions, skills set and expertise.

I have no need to express my thoughts in writing in order to prove to myself that my logic is sound. I don't need to assert my status as a successful person by having something published. I do not lay awake at night staring up at my bedroom ceiling, sleepless over issues related to blogging; my acceptance in the broader IT community, or of some deep inner desire to be acknowledged by my peers.

After all, blogging is not that dissimilar from what professional people did in earlier centuries. When a doctor or solicitor
opened their offices and started up a practice, they hung a shingle on the wall announcing their services. The only difference is that blogging potentially reaches a far larger, further flung market.

So, be a good fellow (or fellowette) and click on the link in the blog heading. It will take you to the web site of my local IT services company and it will help Google increase my rankings. What's in it for you? Nothing much, except that warm feeling you get when you do a good turn to a complete stranger without any benefit to yourself.

Go on. It will take less than 10 seconds. May you be rewarded in heaven. :-)

Labels: ,


 

OpenDNS

Many of my clients use a computer at home to access work servers or even their desktop. Some have a laptop they kart around, and when this is home, their children often use these computers for school assignments, social networking, general entertainment and, I suspect, for things their parents are either totally unaware of, or simply don't realise can be done on the web.

So I regularly receive requests for some kind of filtering or other protection to secure little children from net nasties, or from prying into company secrets. There are many good products available for this, but I have just discovered Open DNS. Now, I swear I have no pecuniary interest in this company; I don't sell their products (They're free any way), but boy have they made life a lot easier for me.

A free account, simple to configure, no rocket science involved - in a couple of minutes I had my home network configured to keep LOTS of bad things out. No more emails pretending to be from someone else (including my self). No more cursing from my daughter when she receives 300 emails from a chat site.

Do yourself a favour and check out Open DNS.

Labels: , ,


Tuesday, June 9, 2009

 

Windows 7 - so much, so little

Well, having investigated Windows 7 for an hour or two I think the title of this blog entry says it all (and that's a good thing).

You see, I think about operating systems a bit like old grandma thought about small children - they should be seen, but not heard. What I want from an O/S is to be fast; consistent; reliable; attentive, but not fussy. In a word - unobtrusive.

I don't need grand logos, flash animation upon startup, trumpet ta-da's to announce its readiness or any other advertisment. I don't need to be forever interrupted to be told I need to confirm my last command; and I certainly don't want my files and folders to be renamed or restructured so I don't know where they are.

One of Vista's insults was to do all the latter without providing very much of the former. Windows 7 has regained the balance by being much faster, much simpler, and by providing helpful support without being difficult to get on with.

For example, move your mouse cursor to the top edge of a window until it changes into a double-headed arrow, then double-click the left button. The window will resize vertically to the top and bottom edges of the screen. Double-click again and the window returns to its original size. Nothing earth-shattering, but a nice, unobtrusive feature that will make life a little easier.

I know it's way to soon for me to be making a final judgement on this version of Windows. Heck, I haven't even loaded SQL Server yet. But first impressions are often lasting impressions, and so far I think I will like Windows 7. Atleast I know I want to like Windows 7, which I did not get anywhere close to with Vista.

Labels: ,


Monday, June 8, 2009

 

First look at Windows 7

There's one thing about bleeding edge technology - eventually the pain outweighs the gain. So it has been some time since I bothered getting involved in beta test cycles, and testing the latest craze to hit the marketplace. My involvement with beta test teams hit its peek in the late 90s, but I had taken a no-go approach since the turn of the century. I don't know whether it was burn-out (I suspect at least a little); no time due to a new start-up venture; or family demands, but somewhere I made an almost unconscious decision to discontinue the bloodletting.

The new venture was a Point of Sale application for touch screens. It experienced a hiccup or two along the way when it stumbled on the way Windows Vista handles coms via serial RS232 ports. In short, Vista no longer liked playing ball with other non-PC devices like cash registers. Drivers were at best problematic, and at worst, non-existent. Main boards for PCs started appearing without RS232 ports and USB to serial converters were inconsistent in their performance. To keep the project rolling, and in order to ensure minimal pain in the marketplace, we made the decision to support Windows XP only. Fortunately did this not harm our sales (or certainly not enough for us to be aware of it).

Maybe it was the under-welming disappointment that was Windows Vista, or the long lapse since Microsoft had delivered a truly new operating system, or the sense of impending doom as the time crept closer when XP would no longer be available, but the announcement of Windows 7 caused me to prick up my ears. I decided I would find a spare PC, install this new OS, and see what had changed.

Now, understand that I have only just completed the install, but if the installation process is anything to gauge it by, Windows 7 is going to be a real hit. Less than half the time to install than Vista or XP. Not one single driver issue! - and this on a machine that is over two years old, with an 80 Gb HDD and less than 2 Gb RAM. Impressive.

Not just impressive, but re-assuring.

I have always considered Microsoft to be first and foremost a company that is expert at legal manoeuvres. Secondly an accomplished marketing company, and a distant third software development company. However, Windows 7 bodes well for both Microsoft and the PC computing community in general.

Let's hope the initial impression becomes a permanent attitude.


Labels: , , ,


Thursday, October 16, 2008

 

DVR Card Scam

I don't normally get involved with quasi-computer technologies like PC-based security systems, but I had a customer beg me for help, and so began a journey that has uncovered, for me at least, a nice little scam being played on unsuspecting buyers on Internet auction sites.

My customer's security PC, the one that ran her security cameras and recording software, crashed and burned. I replaced it after lifting the elementary recording software off the old disk and everything transferred well - until I came to the DVR card. No matter what I did, it would not load.

After trawling through support forums, I discovered the cryptic error message actually meant that the card could not be "seen". The BIOS saw it, the operating system saw it, but the security software driver could not see it. Thinking that the DVR card may have been damaged by the power surge that brought the PC down in the first place, I went hunting for a new one.

I found dozens of them. No, probably even hundreds of them. All on Ebay.
"Great!", I thought. Spend a few dollars and my troubles are over. Not so.

After waiting for the card to arrive, installing it, loading the software driver provided with the card, I finally got... the same error rmessage! It was about this time that I noticed some tiny print on the very scant "manual" (Can a single page ever be called a manual?). "Card may not work in bus speeds greater than 533".

When was the last time you sold a PC with a bus speed that slow? It seems there is a reason why 4 port DVR cards are so cheap on Ebay. So cheap that the cost of return postage is more than the cost of the card. Oh well, I'll chalk this one down to experience. It reminds me of Robert E. Lee's Truce. Judgement comes from experience; experience comes from poor judgement.


Labels: , ,


Thursday, October 2, 2008

 

It' s all about me :-)

I have a couple of web sites that are favourites of mine. I like them, not because of content, but because they care about me. They do this by making my use of their site easy and intuitive, and facilitating my stay so it can be as short as possible. To me, that is the highest compliment. A site that makes me visit often, but not stay for long.

Google's GMail, is a classic example. The thing I love about this site, and there are many things I DON'T like about this site, is that the cursor is already waiting in the appropriate field ready to accept my username. How many sites do you log into that insist on you clicking on the username field prior to entering that information? It seems like a logical conclusion to me that if there is a username field on a page, then that is the first field that will have to be completed. Why not place the cursor there for the user? It is the little things like this that makes a site a pleasure to use, or not.

Take Elance as another example. I use it all the time, sometimes for hours in a day, but I hate it. It is a classic example of how NOT to build a web site. Sure, the information I want is there, but the site does not care about ME.

Every time I click "Hide Proposal" on a bid, I know that the next time I refresh this page, I will have to do it again. It does not remember my settings. When I want to send a file to all bidders, it does not allow me to upload it once. No, it makes me upload it to each and every bidder. If the file is large, and I have a large number of bidders, in can take me literally hours to send this one file to everybody.

If success is measured by the number of visits and the length of stay, then Elance is a winner. However, a site that allows me to get in, get what I want and get out quickly, will always win in my view. Elance fails miserably in this regard.


Labels: , ,


Friday, September 26, 2008

 

Offline backup made easy?

There is one thing most people do not enjoy doing - backups.

I have had clients whose business folded because their backups were inadequate (non-existent actually). Why is it that something so important, nay, even essential, is so poorly managed by so many people?

Is it the riveting excitement one does not get from a well-performed backup?
Is it the complete lack of a sense of accomplishment missing from the exercise?

Whatever it is, (and these two are surely prime culprits), unless I install and configure full backup systems at my clients' sites, I know this is something they will not give a moments thought to once I walk out the door.

Enter Mozy! (drum roll)

These people have completely removed any excuse for not having a backup.

Free, off-site, on-line backup with no user intervention has got to be good for everyone. If 2 Gb is not enough, and it probably won't be for any business, then a small monthly charge covers you for unlimited data.

The installaton is a breeze. The configuration is straight-forward. Mozy even scans your system and pre-selects the most obvious canditates for backup, like email files, pictures and Word documents.

I have only just installed Mozy, so maybe I am premature in my praise, but if the experience so far is anything to go by, then I have added a warm and fuzzy feeling to my backup experience.

Labels: ,


Friday, May 23, 2008

 

So what's going on with the Mac Book Pro battery/charger?

I had the opportunity to use my daughter's Mac Book Pro for a day. My Dell recently spat the dummy and I needed a laptop on-site for a day. We both code in C# so her MBP was already decked out with VMWare Fusion, VS2005, SQL Express, and the Dev Express library.

As this was my first time using a Mac I expected to struggle with key positions, key commands and the like; but it was not as bad as I thought it would be. Actually, I am impressed. The speed was far better than my desktop, which is certainly no slouch in the peformance ranks, and everything just seemed smoother and more integrated.

However, there was one confusing aspect, and hence this post.

I worked with the power adapter connected all morning. Just before lunch I noticed that I had only 24% battery life left and this surprised me. I checked the battery meter in both Lepoard and Windows, and they were unanimous in their findings. I disconnected the power cord and re-connected. No Change. The LED on the plug was bright red. I left for lunch, and upon my return both meters advised that there was a little over 4 hours of battery life remaining. Hmmm, maybe I mis-read things before lunch. I decided to keep working, and about 4 1/2 hours later I noticed that power was down to 20 minutes. This led me to think that I had beem working on battery all afternoon, but the power adapter was still plugged in and turned on, although i did notice that the LED was no longer red. It was off.

So, what's going on? I realise I know next to nothing about the MBP, and it is probably pure ignorance on my part, but either I have overlooked something or Macs are not as intuitive as I have been led to believe. I'll be happy to hear from someone about what it is that I have overlooked.

Labels: ,


Saturday, May 17, 2008

 

You get what you pay for

A friend reminded me the other day of an adage we have both used when consulting to clients. It goes something like this: "Your accounting system is how your business eats and your telephone system is how it breathes."

In this age of multiple communication options, this adage still holds true. Even if you have a completely web-based business, I suspect you would be hard pressed to do away with your phone. No one would scrimp on ensuring they could breathe properly, but I am constantly amazed at the length some business people go to get a minimal telephone system. Sure, a basic system will give you 80 % of your needs, but it that missing 20% that makes all the difference.

There are not very many of businesses that have more than 20 percent margin over their competitors, and while a telephone system that only does 80% of the job does not equate directly to the bottom line, one thing is for sure: Running a small business AND trying to make a reasonable profit does not come easy to many people. The little extra you pay over 3 or 5 years to gain least-cost routing, Caller ID linked to Outlook (or some other database back-end), even VoIP, will make a big difference in your ability to provide superior customer service.

I remember my first Skype international call. The money I saved covered the cost of the el cheapo headset many times over. Now this is an obvious example of using technology to save money, and I understand that cost savings are not always evident at the point of purchase, BUT there is another adage that my old accountant used to love to repeat to me - "Your first cost is the least cost".

I reckon a good general rule of thumb for any business purchase is to buy for the future.

Labels: ,


This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]