|
Wizzzz-dom at its best. The hoser gets a hosing, I suppose.
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 seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
I have released my GFX library only to find out one display device in the entire Arduino/ESP32/etc universe has hardware accelerated line, shape, and text drawing. None of the others do. My driver framework isn't designed for those calls.
And I don't know whether I should add a whole slew of new code to support that for what would be just one driver, and not even a common one, and yet it's one I use commercially.
How frustrating. Not so much the problem itself, but the general problem of getting the rug pulled out from under me and then getting stuck trying to pick up the pieces of my design.
It's the kind of thing that will ruin a morning. *grumpface*
Imma drink some coffee and not work on this for now, but I was feeling all good about all the display adapters I supported up until this morning when I ran head first into the wall that is the RA8875
Real programmers use butterflies
|
|
|
|
|
Remember, Grasshopper, "Software is never completed. It is only released."
|
|
|
|
|
That's one of the best descriptions I've heard.
|
|
|
|
|
I want to shake my fist at you but I am also laughing.
Real programmers use butterflies
|
|
|
|
|
Software is never finished- only abandoned.
Used that for years. But I like yours better!
If you can't laugh at yourself - ask me and I will do it for you.
|
|
|
|
|
Yours is also true. Software that users value is never completed, but software that users don't value is abandoned.
|
|
|
|
|
Yours is equally good. 👍 and in many instances more true.
|
|
|
|
|
This is signature matter.
|
|
|
|
|
Is this kind of like have a default configuration (code path, etc.) and one that is what most people use (what you already coded for)?
|
|
|
|
|
I'm not sure.
The problem is every other driver supports two operations - fill a block of pixels with a single color, or fill a block of pixels with bitmap data.
I can do that with the RA8875
But the RA8875 hardware also has hardware accelerated line drawing, font drawing, shape drawing, etc.
My library only knows about the two operations i mentioned at first.
And to my knowledge the RA8875 is the only hardware on the market for IoT gadgets that does this (i won't stake a betting claim to that, but so far it's the only one I've seen)
Real programmers use butterflies
|
|
|
|
|
Had one of those "it works on my machine" moments today, monday morning of course.
Used Process RedirectStandardError to get error output of 7z.exe, something like described here:
ProcessStartInfo.RedirectStandardError Property (System.Diagnostics) | Microsoft Docs[^]
Everything worked perfectly fine on my development machine. Put the exe on a test machine and ... hang.
Had to resort to not using StandardError.ReadToEnd() and only reading a small part in a char[] buffer to get it working
|
|
|
|
|
I wish I had worked with you this morning. I routinely code around that when doing process automation this way. I've run into it enough times that it's reflex. I even have some code around here on codeproject for it ... ah shoot it doesn't do what i remembered.
Oh well, here's a task wrapper around process capturing Adapting Event and Callback Based Asynchronicity to the Task Framework[^]
It's short and sweet.
Anyway, yeah you can't do things like ReadToEnd()... you have to buffer, but i almost always do reads incrementally so while I don't tend to code that way, i try to make my callable surface area as friendly as possible for something that does. Still, there's only so much you can do for that problem.
ReadToEnd() is a bad idea for a few reasons, some of which are circumstantial but some of which is that it can surprise you as it did here. Don't expect it to be better behaved on NetworkStream either, necessarily. It's easy as long as it works. When it doesn't it's monday.
Real programmers use butterflies
modified 17-May-21 13:54pm.
|
|
|
|
|
Write an adapter for that device class that uses the original code / library as a component (composition versus inheritance).
I have dll's that call other dll's.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
So to make it clearer, I have a graphics library called GFX
It does not know a thing about video hardware. It's strictly standard C++ with no libraries other than stdlib
Then, I have drivers. Drivers expose a few members that can be called by GFX.
These members don't account for line drawing and such. They boil down to "fill rectangle with this color" or "fill a rectangle with this bitmap"
In order to take advantage of specific features of this device, like hardware line drawing, I need to redesign that layer/interface between the drivers and GFX.
Seems like a no brainer except this is the only device out there that has the hardware line drawing and such. Nothing else does. And it's not even a common display. That sort of makes me not only not want to bother, it almost makes me want to actually avoid it.
Real programmers use butterflies
|
|
|
|
|
I would avoid adding more for that device until you absolutely have to use its acceleration. Consider it a mutant and move on, for now. That is, if you have other, higher priority things to address.
"They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"
|
|
|
|
|
Part of me agrees. There's a big part of me that feels like it's a cop out though, especially since I'm stalled on my paying work until I get a prototype that I need from my client.
Real programmers use butterflies
|
|
|
|
|
It's not a cop-out to say that you don't support some feature. That goes in the future enhancements bucket to be prioritized along with everything else.
Bond
Keep all things as simple as possible, but no simpler. -said someone, somewhere
|
|
|
|
|
I ended up going this route, and punting the hardware acceleration. Since then I've added directX support, but it's strictly for prototyping on a PC because it is S-L-O-W due to the "polarity mismatch" between DirectX and GFX at the "driver" level. Line Draw acceleration and stuff would help there too.
Real programmers use butterflies
|
|
|
|
|
This is how Windows drivers handling started ...
|
|
|
|
|
This may be an old one, but I have not heard it before:
He: "If I win the lottery, what would you do?"
She: "I would take my half and leave you forever!"
He: "Well, I won $20 yesterday. Here's your ten. Farewell!"
Get me coffee and no one gets hurt!
|
|
|
|
|
"Honey I won the lottery! Pack you bags!"
"Wow, where are we going?"
"Me, nowhere, you, I don't care!"
GCS d--(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
|
|
|
|
|
|
I win!
Is the father POP
of scripting language LUA
into INTO
disturbed (anag)
natives?
POPULATION
So... I'm up tomorrow (and if that's unsolved, it rolls back to DerekT-P - @derektp123 on Wednesday).
In case you never heard of it: Lua: about[^]
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Nice clue but population is a bit tentative for natives - just sayin
"I didn't mention the bats - he'd see them soon enough" - Hunter S Thompson - RIP
|
|
|
|