Click here to Skip to main content
15,886,362 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
AnswerRe: Question for DB admins, DB architects, etc. Pin
maze328-Apr-21 6:28
professionalmaze328-Apr-21 6:28 
AnswerRe: Question for DB admins, DB architects, etc. Pin
Gerry Schmitz28-Apr-21 8:00
mveGerry Schmitz28-Apr-21 8:00 
GeneralRe: Question for DB admins, DB architects, etc. Pin
MSBassSinger28-Apr-21 8:11
professionalMSBassSinger28-Apr-21 8:11 
AnswerRe: Question for DB admins, DB architects, etc. Pin
Matt McGuire28-Apr-21 12:51
professionalMatt McGuire28-Apr-21 12:51 
AnswerRe: Question for DB admins, DB architects, etc. Pin
#realJSOP28-Apr-21 22:36
mve#realJSOP28-Apr-21 22:36 
AnswerRe: Question for DB admins, DB architects, etc. Pin
Luca Leonardo Scorcia30-Apr-21 13:21
professionalLuca Leonardo Scorcia30-Apr-21 13:21 
AnswerRe: Question for DB admins, DB architects, etc. Pin
Tomasz Jureczko2-May-21 7:14
Tomasz Jureczko2-May-21 7:14 
GeneralUnknown unknowns Pin
honey the codewitch27-Apr-21 11:05
mvahoney the codewitch27-Apr-21 11:05 
I thought I was going to get in front of my graphics device drivers by starting with the SSD1306 - a small monochrome OLED display that comes in 3 different sizes/resolutions and runs over SPI, I2C, or (not usually) parallel - the latter of which is basically never available for MCUs - it's either SPI or I2C

It's a simple device. I thought implementing it would be the easiest place to start.

Now keep in mind, I've written this graphics library such that it should seamlessly interface with my device drivers with very little massaging on my part. I've architected it such that I can just lego what is there together with my device drivers.

Or so I thought.

This device has an integrated frame buffer, but you can't *read* the frame buffer over either of those serial interfaces - only the parallel one you never have access to. This isn't a show stopper normally, except it's a monochrome framebuffer, meaning 1-bit per pixel, meaning you have to read 8 pixels in order to write one pixel because you can only write a byte at a time.

So basically, you can't really do random access to the frame buffer at all with this device because of the above.

I had counted on not being able to read the buffer, but I hadn't counted on not being able to do random access when writing the frame buffer. That was a corner I just didn't think around.

Software architecture was being discussed earlier, and I spent some time as a software architect professionally.

What it taught me was no matter how good at it you are, the results are mixed, not consistent no matter how process oriented you are about it. The reason is because of things like the above. We can't predict the future. We can't think around every corner.

Architecture comes with a certain amount of accepting the idea of moving 3 steps forward and two steps back when it comes to design.

There are ways to mitigate this. You can be flexible and code compartmentalized such that if you rewrite part of it you don't have to rewrite all of it.

I saved myself because I use "template polymorphism" instead of standard polymorphism and inheritance in my library, so I don't have a bunch of base class changes to make that will wreck my entire source tree, but it comes with downsides as well.

But you will be rewriting code for any non-trivial project. You will be redesigning bits as you go. Your best efforts are not put in heading all of that off but rather putting it into making your code flexible enough that it will survive having portions of it ripped out and completely rewritten.
Real programmers use butterflies

GeneralRe: Unknown unknowns Pin
BillWoodruff27-Apr-21 11:40
professionalBillWoodruff27-Apr-21 11:40 
GeneralRe: Unknown unknowns Pin
honey the codewitch27-Apr-21 11:42
mvahoney the codewitch27-Apr-21 11:42 
GeneralRe: Unknown unknowns Pin
BillWoodruff27-Apr-21 12:07
professionalBillWoodruff27-Apr-21 12:07 
GeneralRe: Unknown unknowns PinPopular
honey the codewitch27-Apr-21 12:12
mvahoney the codewitch27-Apr-21 12:12 
GeneralRe: Unknown unknowns Pin
Eddy Vluggen27-Apr-21 12:05
professionalEddy Vluggen27-Apr-21 12:05 
GeneralRe: Unknown unknowns Pin
honey the codewitch27-Apr-21 12:14
mvahoney the codewitch27-Apr-21 12:14 
GeneralRe: Unknown unknowns Pin
Eddy Vluggen27-Apr-21 12:22
professionalEddy Vluggen27-Apr-21 12:22 
GeneralRe: Unknown unknowns Pin
honey the codewitch27-Apr-21 12:24
mvahoney the codewitch27-Apr-21 12:24 
AnswerRe: Unknown unknowns Pin
Eddy Vluggen27-Apr-21 12:43
professionalEddy Vluggen27-Apr-21 12:43 
GeneralRe: Unknown unknowns Pin
CPallini27-Apr-21 20:31
mveCPallini27-Apr-21 20:31 
GeneralRe: Unknown unknowns Pin
honey the codewitch28-Apr-21 3:00
mvahoney the codewitch28-Apr-21 3:00 
GeneralRe: Unknown unknowns Pin
CPallini28-Apr-21 4:42
mveCPallini28-Apr-21 4:42 
GeneralRe: Unknown unknowns Pin
honey the codewitch28-Apr-21 5:16
mvahoney the codewitch28-Apr-21 5:16 
GeneralThere's no cure Pin
W Balboos, GHB27-Apr-21 10:38
W Balboos, GHB27-Apr-21 10:38 
QuestionRe: There's no cure Pin
SeanChupas27-Apr-21 10:45
SeanChupas27-Apr-21 10:45 
AnswerRe: There's no cure Pin
W Balboos, GHB27-Apr-21 10:48
W Balboos, GHB27-Apr-21 10:48 
GeneralRe: There's no cure Pin
Mycroft Holmes27-Apr-21 12:02
professionalMycroft Holmes27-Apr-21 12:02 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.