Click here to Skip to main content
15,886,919 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.

 
GeneralRe: How to tell a good story ? Pin
PIEBALDconsult31-Aug-23 14:58
mvePIEBALDconsult31-Aug-23 14:58 
GeneralRe: How to tell a good story ? Pin
Sander Rossel31-Aug-23 21:06
professionalSander Rossel31-Aug-23 21:06 
GeneralRe: How to tell a good story ? Pin
Jeremy Falcon1-Sep-23 2:17
professionalJeremy Falcon1-Sep-23 2:17 
GeneralRe: How to tell a good story ? Pin
PhilipOakley1-Sep-23 2:52
professionalPhilipOakley1-Sep-23 2:52 
GeneralRe: How to tell a good story ? Pin
Jay Nelson1-Sep-23 5:53
Jay Nelson1-Sep-23 5:53 
GeneralRe: How to tell a good story ? Pin
BernardIE53171-Sep-23 11:47
BernardIE53171-Sep-23 11:47 
GeneralRe: How to tell a good story ? Pin
englebart3-Sep-23 10:19
professionalenglebart3-Sep-23 10:19 
GeneralI added an erase() function! A war story Pin
honey the codewitch31-Aug-23 5:25
mvahoney the codewitch31-Aug-23 5:25 
I have a few little simple data structures in C++ that don't rely on the STL. They're exception free and meant primarily for embedded and IoT.

My simple_vector<> had a clear() function that removed all elements but no erase() function that would remove a range of elements.

Related background: I ran into a performance issue in my UIX library in the dirty rectangles routine.

Basically the issue had to do with dirty rectangles being put into the list that were already covered by another rectangle in the list, causing UIX to draw the same area(s) twice in some situations.

Sometimes this wasn't a problem, as upon insert I collapse already contained rectangles without adding them, and merge intersecting rectangles into one larger rectangle.

However, there are situations where this isn't enough. What if you invalidate two dirty areas, creating two rects, and then invalidate the whole screen? One rect will have been consumed by the merging process but the second one has nothing to combine with.

Enter the erase() function. My vector never needed one prior, because it's not a general purpose container, but rather a specialized/streamlined subset of a general vector meant for scalar data types only, and it was only being used in a certain way.

I keep back propagating features into dependent libraries when I need something in my main lib, like htcw_uix relies on htcw_data, so as above when htcw_uix needed that feature I went back and added it to htcw_data and I'm not sure I like that, as it speaks to incomplete design? maybe. or maybe this is just the natural progression of iterative improvements in my codebase and I'm being too finicky about how it comes about.

In any case, I'm probably overthinking it. But you should see my dependency tree for my major projects.

In fact, here:
codewitch-honey-crisis/htcw_gfx @ ^1.636
codewitch-honey-crisis/htcw_bits @ ^1.0.7
codewitch-honey-crisis/htcw_data @ ^1.0.9
codewitch-honey-crisis/htcw_io @ ^1.1.43
codewitch-honey-crisis/htcw_ml @ ^0.1.3


Those are just for my graphics library, which is the lone dependency of my user interface library, htcw_uix.

Anyway, those dependent libraries only really get changed if I find bugs or if htcw_gfx or htcw_uix require them to be.

Like I said, I don't know if I like that. Part of me thinks I should go through and round out some of the features in these libraries. Part of me thinks that's feature creep. All of me thinks I'm overanalyzing it. Unsure | :~
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix

GeneralRe: I added an erase() function! A war story Pin
Gary Wheeler31-Aug-23 6:17
Gary Wheeler31-Aug-23 6:17 
GeneralRe: I added an erase() function! A war story Pin
honey the codewitch31-Aug-23 7:30
mvahoney the codewitch31-Aug-23 7:30 
GeneralDaily Build newsletter problem Pin
carloscs31-Aug-23 3:52
carloscs31-Aug-23 3:52 
GeneralRe: Daily Build newsletter problem Pin
honey the codewitch31-Aug-23 5:30
mvahoney the codewitch31-Aug-23 5:30 
GeneralRe: Daily Build newsletter problem Pin
carloscs31-Aug-23 6:11
carloscs31-Aug-23 6:11 
GeneralRe: Daily Build newsletter problem Pin
dandy7231-Aug-23 8:18
dandy7231-Aug-23 8:18 
GeneralRe: Daily Build newsletter problem Pin
obermd31-Aug-23 8:50
obermd31-Aug-23 8:50 
GeneralSteve Jobs Stanford speech Pin
Rage30-Aug-23 22:42
professionalRage30-Aug-23 22:42 
GeneralRe: Steve Jobs Stanford speech Pin
Slacker00731-Aug-23 1:01
professionalSlacker00731-Aug-23 1:01 
GeneralRe: Steve Jobs Stanford speech Pin
Jeremy Falcon31-Aug-23 4:24
professionalJeremy Falcon31-Aug-23 4:24 
GeneralRe: Steve Jobs Stanford speech Pin
Amarnath S31-Aug-23 4:01
professionalAmarnath S31-Aug-23 4:01 
GeneralRe: Steve Jobs Stanford speech Pin
Jeremy Falcon31-Aug-23 4:26
professionalJeremy Falcon31-Aug-23 4:26 
GeneralRe: Steve Jobs Stanford speech Pin
Jeremy Falcon31-Aug-23 4:30
professionalJeremy Falcon31-Aug-23 4:30 
GeneralRe: Steve Jobs Stanford speech Pin
dandy7231-Aug-23 6:32
dandy7231-Aug-23 6:32 
GeneralRe: Steve Jobs Stanford speech Pin
Jeremy Falcon31-Aug-23 11:18
professionalJeremy Falcon31-Aug-23 11:18 
GeneralRe: Steve Jobs Stanford speech Pin
dandy721-Sep-23 3:10
dandy721-Sep-23 3:10 
GeneralRe: Steve Jobs Stanford speech Pin
Jeremy Falcon1-Sep-23 10:02
professionalJeremy Falcon1-Sep-23 10: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.