Criticizing Those Who Came Before Us Why is it so easy for us to criticize the developers that came before us? The newest generation of developers have written numerous blogs, articles and books to inform us how traditional approaches to software simply do not work, yet we continue to make the same mistakes that traditional software had. We try everything from overworking programmers to producing…
1. Take Advantage of the Debugger If you are still using message boxes and Console.WriteLine statements to determine what is going on inside your program than stop now. You don't have to be an expert at the debugger to take advantage of the debugger. 2. Ask Someone for Help When You are Stuck If you are the lone programmer type you may find it difficult to ask others for help. There is nothing…
I woke up this morning with no desire to program a computer. Have you been there before? It's scary when you lose your job and find yourself unable to work on even the smallest task. I began to think that I would never write a program again. When you begin to feel that way it makes you feel worthless. That is how I felt because programming has been my only means to support my family. After…
After reading and applying traditional software design techniques taught by some of the best professional developers such as Edward Yourdon , Frederick Brooks , Martin Fowler ; I thought that I was fairly talented at designing and writing software systems. However, if there is a single technique that I overlooked when designing/implementing software solutions it is the factory. Factories, have…
In Sage 300 ERP views are used as a standard way of manipulating and retrieving data. You will also need to use views in order to execute some commands. Views in Sage 300 closely resemble MVC and MVVM patterns that have been used when simplifying user interfaces. Becoming familiar with these patterns may help you to understand how things work in Sage 300. Views match up closely to what you see on…
Recently I have accepted a new position at Kerr Consulting that specializes in integrating ERP and other financial software packages such as Quick Books with existing software. Most of our work is related to Sage products and I have been specifically tasked with becoming an expert at Sage 300 ERP (Accpac) programming. A Simple Example I find it difficult to find simple examples when getting…
Not long ago one of our programmers just lost it and he lost it good. He walked into the manager’s office and began screaming strange things. If I didn't know him as well as I did I would have thought that he was on some kind of drug. But what had really happened was nothing short of a complete mental breakdown. He was one of the hardest workers I had seen in the industry. He would frequently stay…
Extension methods in .NET are methods that can be attached to another class without changing that class. In .NET extending a class is not the same thing as inheriting from a class. Extension methods only serve as a syntax shortcut to add helper type methods to an existing type or class. Using Extension Methods In both C# and VB.NET you can write a static class with static members to create your…
For nearly half of my career I thought that hiding member variables and methods with private and protected was one of the best ways to write better code. You have probably been taught in school or have read several well written articles of why using private makes your code better. In theory hiding the details of the class using a private can have the following benefits: Reduces the complexity of…
Many people over the years have asked me if they need a degree in Computer Science to get a programming job. Technically a degree is in not required to be a programmer. However, I believe that the degree program that I completed was invaluable to my career. Most all jobs I have applied for consider 5 years experience in the field as equivalent to a degree. I once thought that only programmers with…
Should I Take Programming Burnout Seriously? Yes! If you are suffering burnout take it very seriously as it could cause medical problems and it could be a sign of more serious mental illnesses. The advise that I give on the subject is in no way to be considered "professional advise". If you are having issues with burnout I suggest that you seek help from a professional. You could actually be…
After committing some very bad programming sins I felt bad enough to confess them to a fellow developer. After hearing my confession he compelled me to say 100 "Hail Knuths", and to sin no more. Hail Knuth, full of experience, the source is with thee; blessed art thou amongst software engineers, and blessed is the fruit of thy methodologies, common sense. Holy Knuth, Father of Design, pray for us…
Software estimates are most often completely worthless and a waste of time for everyone involved. Its a waste of time for the manager because the estimates that they get are usually shallow and only reflect what the manager wants to happen. Its a waste of time for the developer because of countless hours pondering what something will cost and why it would cost that, only to find out after…
Negotiate with the Software Developers One of the best ways you can screw up when making an estimate is to try to negotiate the time frame with the developers. Programmers generally don't realize they are being negotiated with so this is easy pickings. They actually have no leeway in their estimates and end up telling the manager what she wants to hear.This makes matters worse because now instead…
1 Get a Recruiter Technology recruiters are everywhere and they do not cost you a dime. Its a free service to you. Recruiters charge the employer for the service of finding the right talent to fit their organization. Many employers do not desire or do not have the time and energy it takes to find a candidate for the hiring process. In fact many companies do not consider candidates outside of a…
Adding Widgets The technique for adding widget is straightforward enough. Simply add another div element with a drag and drop source as a widget gallery for adding widgets to your dashboard. < div id= "WidgetGallary" > < div class= "WidgetCaption" > Widget Gallery < /div > < div class= "WidgetSource" data-dojo-type= "dojo.dnd.Source" accept= "Widget" > < div id= "Widget1" class= "dojoDndItem…
In this series I am going to show you how to build a custom dashboard applications using dijit for the ui controls, ajax calls for data acquisition and d3 for charting and graphs. For the layout I am going to use a BorderContainer control in the dijit library. The BorderContainer is very good at layouts that would be difficult to pull of with just html and client side code. It has a splitter…
Most everyone starts with hello world in programmig. Even seasoned developers write hello world apps in order to test if the simplist solution will run. in c# we would write: public static class MyClass { public static void main() { System.IO.Console.WriteLine("Hello World"); } }