|
Yes, so the popular saying goes.
If you are optimizing, you are not designing. Check out CUDA, or my own article on a RAM-disk.
What you need is to understand how the stuff works; you do not need to implement a serial com port, we have rather efficient drivers. Set a baudrate, some stopbits and off you are.
You wanna beat that com-port implementation?
--edit
Done a few embedded projects, in the time before .NET
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
You must have been working on embedded processes where performance didn't matter... Let's see, I've been at it over a decade so...
|
|
|
|
|
Nice assumption; I'm not going to continue this thread
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Eddy Vluggen wrote: If you are optimizing, you are not designing.
This is debatable, in engineering applications one may have (and usually has) cost, platform, thermal, power or resistance requirements. Also not every interface is standard - even COM ports, I had to redevelop COM drivers a couple of times to interface with equipment that we couldn't change. The other solution was to lose the customer, and not a small one.
One optimizes when constrained, and that is the usual circumstance for engineers.
Geek code v 3.12 {
GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- r++>+++ y+++*
Weapons extension: ma- k++ F+2 X
}
If you think 'goto' is evil, try writing an Assembly program without JMP. -- TNCaver
|
|
|
|
|
den2k88 wrote: in engineering applications one may have (and usually has) cost, platform, thermal, power or resistance requirements That would not include Revit.
Yes, if you develop hardware, you'll need to write your own driver; and yes, it will be specific to that part of hardware. In normal software-developing, this is not done.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Eddy Vluggen wrote: Yes, if you develop hardware, you'll need to write your own driver;
Not only for that: even if you can only choose the hardware on which to implement - like the elaboration and control unit of most industrial machinery (labelers, cappers, metal detectors, X-Ray contaminant detectors and so on) is most of the times a standard PC. Still it may have requirements as being fanless because the machine has to be sealed towards dust or paricles, so high powered processors could not be mounted. Sometimes the customer mounted UPS can't support the power peaks of some equipment, further limiting the choices.
Of course if you consider producing an entire machine as producing hardware (albeit a colossal piece of it composed of other big and separate components) you are simply right, in normal software development this kind of optimization is not needed or not convenient at all. Nobody cares if an algorithm of image enhancing takes 1 or 1.2 seconds to run on GIMP, but the same algorithm used as a step for automatically eliminating bad products from a production line has strong constraints on response time.
Geek code v 3.12 {
GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- r++>+++ y+++*
Weapons extension: ma- k++ F+2 X
}
If you think 'goto' is evil, try writing an Assembly program without JMP. -- TNCaver
|
|
|
|
|
den2k88 wrote: in normal software development this kind of optimization is not needed or not convenient at all That is an understatement. It is not done in "normal" software development.
And yes, if you create the hardware, then you probably also need to create some software to use it, and it would be nice if that is optimized; but the average Joe that builds applications has no idea of the hardware, let alone that they optimize for a specific part of hardware.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Eddy Vluggen wrote: the average Joe that builds applications has no idea of the hardware, let alone that they optimize for a specific part of hardware.
Maybe you don't, but for some of us... it's our job to understand the software AND hardware and make it better if we have to. I'm an engineer, not just a "coder".
|
|
|
|
|
I'm a software-developer, not just a "coder".
Albert Holguin wrote: Maybe you don't, but for some of us... It was a general question. Do explain, how do all those webdevelopers here optimize for different versions of hardware-chipsets?
Please, elaborate and do enlighten me
--edit
Once you are done with explaining, I'll link you a host of embedded projects that are using general api's, and not talking directly to hardware.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
modified 11-Sep-15 9:21am.
|
|
|
|
|
Just like I can link to embedded projects that make use of hardware specific optimization libraries. Not everyone here is a "web developer", that's your assumption of the world around you. There is always someone trying to make something better, we're called engineers. You're welcome.
|
|
|
|
|
Albert Holguin wrote: Not everyone here is a "web developer", that's your assumption of the world around you. No, I did not even make that claim; but in the extension, same goes for your average DBA. Wow, how to optimize SQL for the AMD chipset, compared to an Intel chipset?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Eddy Vluggen wrote: Wow, how to optimize SQL for the AMD chipset, compared to an Intel chipset?
Whereas the average DBA (there is nothing average in being a DBA IMHO) won't, I guess that those who work building DBMS may think in these terms in the core libraries - with different subsets of primitives to optimize the data fluxes in memory and the pipelining of the CPU, or (more probably as DBMS are I/O-bound) to make a better use of different common storage architectures.
Often this mechanism is transparent from the outside, as in the deployed package there are already different versions of the primitives which are then loaded at the boot of the server.
I agree that 90% of developers won't do that or ever need that - I'm happy to be in the 10% though
Geek code v 3.12 {
GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- r++>+++ y+++*
Weapons extension: ma- k++ F+2 X
}
If you think 'goto' is evil, try writing an Assembly program without JMP. -- TNCaver
|
|
|
|
|
den2k88 wrote: Often this mechanism is transparent from the outside It is simply an abstraction. A leaky one, I admit, but it does its job.
den2k88 wrote: I agree that 90% of developers won't do that or ever need that - I'm happy to be in the 10% though
It would also defeat the purpose of having those abstractions in the first place.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
... would theoretically let me hit two of those targets with a single shot. OTOH I don't have anything on my horizon that'd need either of them.
The one embedded project I did was PIC32 (because that was what the board designer knew).
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
|
Well, you can buy an Arduino clone for under USD $5.
If you get a Arduino Pro Mini, you'll need to add to that an FTDI chip (to go between your USB port and the board's inputs)
If, on the other hand, you get a Arduino Nano, you just need to download the Arduino IDE and you can get started with a simple light-blinking demo, using the onboard led.
Grab some breadboards, bread-board connection cables, a display or some other peripherals and you're ready for fun. You should be able to get started for under USD $20. I got a 128x160px colour screen with SD card reader for about $6 or $7
Here's some clones: Arduino Nano clones
It's a lot of fun and rather addictive.
"When I was 5 years old, my mother always told me that happiness was the key to life. When I went to school, they asked me what I wanted to be when I grew up. I wrote down 'happy'. They told me I didn't understand the assignment, and I told them they didn't understand life." - John Lennon
|
|
|
|
|