I propose a simple menu based system. CSS entries that can be configured through certain hacks now and integrated into the firmware as the most obtusely implemented form of simple switches ever proposed could simply be menu based and allow for change at any point. C'mon, already. This isn't worth discussing. It's like saying you should only control the compiling and linking process with command line options rather than providing menus... why make it harder than it has to be?
I worked infrequently with a fellow once upon a time that made 10% off the top of every product a company I then worked for manufactured. He wrote the firmware and it was miserable to get him to make any changes as he was not there dealing with day to day issues and thought he should be the final arbiter of what the firmware, and ultimately the product and company could do. Long story short, I had enough and redesigned the hardware, moved to a PC platform, designed the new GUI and wrote the multi-threaded/multi-tasking C based custom configurable software myself and ended up with half the company... still arguing?
His approach was to custom set switches and compile only what was necessary for the particular unit making himself indispensable, or so he thought, mine was to look at all the possible ways the equipment could be configured, write intelligent code that allowed for simple configuration by our personnel to fit the varying equipment setups possible. Basically, my code allowed us to configure the software to fit the situation by determining what modules would run based on the hardware installed and the software options selected, where his code was switched in/out at the pre-compile level. His executable was arguably lighter weight, however codespace was not at a premium in my design and a trained monkey could be taught to configure a $25-50k control system's software with little training once the problem was approached in the correct manner. I made the programming programmable. Need I say more?
I am so tired of people who should know better telling me how things cannot be done when I've spent over half a lifetime doing them. Anyone with more than the ability to perform boolean arithmetic that applies themselves can usually see how providing options more often than not is a superior method. If you're worried about Aunt Dingbat or Drunken Uncle screwing up the configuration then you provide a reset, or a series of basic templates that cover the situations involved, possibly while preventing the user from selecting a combination, or combinations that are not acceptable. This ain't rocket surgery... Sometimes, you do need to step out of the box and turn the problem on it's head, or side, or stand on your head. ;-)
I think half the problems concerning what can and cannot be done today stem from people using other code that they don't understand or didn't write themselves, or don't have source for... Ultimately, comes a point where they can't do something, but not where something can't be done. The two aren't the same. I'll give you that I've never worked as a regular code monkey, but I have done concurrent hardware and software design, coding, etc. and implementation, and in both disciplines the first thing you learn is to be extremely careful about understanding the complexities of any device or software you're building upon lest it be the downfall of your whole design. If you can't go back and replace it, or fix it, you're at the mercy of third parties. If you're me, you learned to be able to work at every level from top to bottom, but not how to pack more than 24 hours into a day... engineering is truly the art of compromise, but does not teach you how to multiply your own resources very well.
Apologies to Giorgio for the thread hi-jacking...
Last edited by TechniSol; 03-05-2014 at 10:14 PM.
Reason: cuz!
|