|
Now, that's redundant in more ways than one.
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
OriginalGriff wrote: Part of the problem is that we don't build systems like we do a house or a car
Customer: Build me a small bungalow.
Programmer: (Builds small bungalow)
Customer: Well that's no good! I wanted it to be twenty stories high! Fix it NOW!!!1!
Programmer: (Tears down bungalow; builds twenty-storey high tower block)
Customer: This is ridiculous! Where's the underground car-park and swimming pool?
Programmer: You didn't ask for either of those things. We'll have to tear it down and start again.
Customer: Unacceptable! You're already well over budget and past the deadline we agreed on. Don't tear it down; just add an underground car park and swimming pool!
Programmer: (Face-palm; tries to meet customer demands; building collapses)
Customer: You suck! My twelve-year-old nephew could have done a better job - he knows the facebooks and everything!
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
And that's part of what I mean: If you go to an architect, or a builder, and say "Build me a small bungalow" they will respond with questions: "Where?", "How many bedrooms?", "How many square feet / meters?", "What kind of roof?", "What kind of bricks?", and so on, and so on - because they are used to getting the details tied down in contract form so everyone knows exactly what they are expecting to get.
But we don't! We take "Build me a small bungalow" as complete, and definitive - and build what be think the customer might want: a one room bungalow with 8 kitchens and no bathroom on the side of a cliff. (And many will copy the roof from SO despite it being designed for a small lorry, the kitchens from QA where they used to produce McVomits burgers, and the front door from a web site they found that deal with rabbit hutches.)
I take care to tie down the deliverables - and generally stage payments based on their delivery - to avoid the "I wanted it to be twenty stories high!" bit.
Sent from my Amstrad PC 1640
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
But, its agile...it takes true agility to dodge responsibility when it all falls apart
|
|
|
|
|
OriginalGriff wrote: But we don't!
Honestly - please don't say "WE"
I force people to give me what real 'what is it you want' - which prevents most of your problems. If they don't know - how should I know? It's there job to know what needs to be done and mine only to implement it.
This doesn't always win friends - the lazy ones and the clueless ones - wanting you (me) to do their job for them so they'll look good (or blame me if they don't) - keep getting sent away until they come up with something. I don't give them a blank check, there, either - as I have a site with roughly 500 users to consider and don't want one user's stuff to screw up the others.
Interestingly - it all works out. Using a line from a car manufacturer (or someone) "the quality goes in before the name goes on" - an the non-dullard senior management learned to appreciate a sincere effort to do it right the first time.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
This is only partially true, as it depends on what you are designing SW for.
You have legal requirements in finance, in pharma, etc... We (in the automotive business) have a lot of norms[^], legal requirements, design rules[^] that we have to fullifll, and we are personaly liable in case of quality issue that leads to damages or injuries. Recent past gives many examples[^].
|
|
|
|
|
Yes, and generally speaking the software for those industries "just works" as a result - because everybody is constrained by the rules, developer and client alike.
When was the last time your car stereo gave a BSOD on the motorway and took the brakes out?
Sent from my Amstrad PC 1640
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
OriginalGriff wrote: "just works"
Well, if only you would know ...
|
|
|
|
|
OriginalGriff wrote: You don't need to confirm to government legislation like you do with cars, you don't have to have any testing done at all, and test results aren't in any way public; you don't have to do recalls if there is a bug.
Blame those handing out the contracts. If you could, would you purchase your next car just by identifying the lowest bidder?
|
|
|
|
|
When programming critical systems, we still use the "house" model. OTOH, software has become much cheaper because we (or our clients) are willing to accept a less rigorous model for most development.
Both models have their place.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
Winning Solitaire[^]
Someone on Imgur linked to this.
What do you get when you cross a joke with a rhetorical question?
The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.
Do questions with multiple question marks annoy you???
|
|
|
|
|
The jack-ace who made that site is a real card. And should be dealt with.
I'm pretty sure I would not like to live in a world in which I would never be offended.
I am absolutely certain I don't want to live in a world in which you would never be offended.
Freedom doesn't mean the absence of things you don't like.
Dave
|
|
|
|
|
Yes, there is also a version of ie6 [^]:
I am not the one who knocks. I never knock.
In fact, I hate knocking.
|
|
|
|
|
I couldn't draw any conclusions, so what's his deal?
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
Today's lucky spot prize winner in the Summer Fun with Arduino Challenge is member 1088144. Congratulations!
We still have many spot prizes up for grabs, so sign up for challenge 1, find the secret code and you could win yourself a cool Raspberry Pi 3 B+ starter kit. Just 10 days left to go!
|
|
|
|
|
Simple question: If you can build a circuit with discrete logic or simply program a cheap microcontroller and be done with it, what would you do?
Discrete logic costs next to nothing, but can very quickly hog up expensive space on your circuit board and complicate the board's layout, including problems with noise on the signals.
The microcontroller often comes in the same price category as the discrete logic chips it is supposed to replace. It's a single chip that has to be programmed to perform the function you want to have it for. It may solve the problem more elegantly than some bare bones logic could. Then again, a microcontroller with internal ROM and RAM and often diverse I/O ports seems a little wasteful for such a trivial job.
For example, I could build my interrupt control logic with discrete ICs or with a single microcontroller. The discrete logic would be simple. Interrupts that were not serviced by the time the signal becomes inactive are lost. There would be no masking and the priorities would be fixed.
The microcontroller could easily do such things, like buffering and holding interrupts until they have been acknowledged and serviced, masking interrupts or assigning different priorities.
Which way would you prefer? An 'object oriented' microcontroller where I just look at the interface and don't care how it does its job internally? Or better the minimalistic approach with discrete logic where everything is 'global'? Still, preparing a tiny computer on a chip for such a simple job seems extremely wasteful...
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
Definitely a microcontroller... The only downside of it can be the cost, but event there is no big difference... And of course there is the possibility of reprogramming the microcontroller with better code or even for an enterley different purpose...
"The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge". Stephen Hawking, 1942- 2018
|
|
|
|
|
Depends on the speed required: uControllers get more expensive at a faster rate as speeds rise that discrete logic does.
But generetrally, I'd go the programmable route, as it's a lot easier to add features or even make the main software easier and more efficient.
I had one board with three PIC devices and a Z180: one PIC for the head control (to offload the actual serial data timing), one to interface with the LCD (after we found that the Z180 was far, far too quick for the display to cope), and one to auto-range the PSU and provide a self destruct if the software was tampered with.
Sent from my Amstrad PC 1640
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I agree with OG, uControllers are easy to modify if requirements change and may have wasted functionality but at the prices WTH! Also better to have the extra functionality and not need it than to not have it and need it, should requirements change.
Everyone has a photographic memory; some just don't have film. Steven Wright
|
|
|
|
|
Micro Controller with as little glue logic as possible.
Gosh they're fun little things to code and play with.
|
|
|
|
|
It's like writing software -- implement a reasonable level of abstraction to plan for future requirements. So, microcontroller.
|
|
|
|
|
|
Microcontroller. PIC microcontroller. 32-Bit PIC Microcontroller. PIC32MM Microcontroller...
I suppose we, CodeProject folks, are just a little biased...
|
|
|
|
|
For me, the criterion would be can I possibly use the MC for anything else? If so then I would definitely go the MC route. If not then I would probably use the discrete logic. The exception would be if I really wanted another thing to program and I preferred that programming to wiring up a few more components. Only you can answer that.
|
|
|
|
|