I mean this next statement as a compliment, not a dig. I think you are confusing "engineering" with "overengineering". "Overengineering" would have been adding n-dimensional planes to cover you when holographic (and imagined 4+D graphics were in vogue). Seems you like you made a sound design decision that may have felt too liberal because perhaps you had seen one too many poorly designed graphics implementations. Probably why you went to the trouble of writing your own to begin with. Been a long time since I looked at DirectX, but typically Windows (and quite a few other platforms) use a RGBA model where often you see 8 bits for each (the 'A' is an Alpha channel which is an opacity value). Color models are like opinions ... everyone has one ;-) I haven't looked at your library, but from your example you might be able to use variadic templates to make your 'pixel' definition a bit easier. Or perhaps that would just put you on the path to true overengineering :-) Keep up the good work. Cheers, DL
Dweeberly
Posts
-
Thinking ahead. Just reflecting on some perhaps "overengineered" code -
I love regular expressionsMy only reply is "Regexbuddy". Best tool I've found. Regex's indeed make some difficult things so easy ... and some easy things so difficult. Used in the right place they can be invaluable.
-
Why am I having such a hard time learning Rust?Rust 'be hard'. Most of the syntax is similar to other languages like c, c++, c#, java, etc... However, most modern languages have been built around hiding and managing memory for you (ex: c#). The thinking is if you don't have to worry about memory management then you can spend more time on the logic. This generally works pretty well. However, Rust was designed to be a "System's language" (i.e. something you could write an OS, or driver or other system component in ... or a web browser, which is basically a self-contained OS these days). While having a familiar syntax, Rust thwacks you in the head and sometimes kicks you in the ...um... "lower mid-section" when it comes to memory management. For years we've been training ourselves to ignore memory management, but Rust put's it front and center in an almost assembly level way. The paradigm is flipped. Get the memory management right and the logic will follow. It's less that you are getting old and more that you've been indoctrinated into ignoring memory management. It's like changing a door that has been 'push' for 20 years to a 'pull' door. Consider your 'container system strangeness'. What are you 'containing'? In Rust you really only have references to memory, and you have to be perpetually aware of the ownership of those references. In C# I can conceptually 'add an object to a List'. I can't really do that in Rust. First no objects, second I can only really transfer ownership or copy memory, sure there's syntax to make it look otherwise, but that veneer of syntax is very thin. ... at least that's been my experience
-
What do you do in the witching hour? Anyone else have this issue?Check with your doctor to make sure there isn't anything abnormal afoot. Perhaps you should lean into your tendency and try biphasic sleeping ( [^] ) If you want to become a "traditionalist sleeper" stop using screens ~1 hr before bed, minimize your exposure to the blue light part of the spectrum, and meditate ~ 15 mins before going to sleep. If your head still insists on waking you up after 3-4 hrs, try doing some non-stimulating things like, gentle stretching, warm bath, meditation to see if you can get to sleep again. People are different and this just might be your body's strong preference as to sleep. If you need to fill those strange quiet hours, consider taking up an art, like writing, drawing, painting, etc. it will encourage the non-logical side of your brain to come out an play.
-
I want to buy a tool to draw spiral & ellipse, any recommendation?Given the mention of the Fibonacci gauge, I'm assuming you mean 'draw' as in pencil an paper. Depends on how exact you want to be. There are a variety of technical drawing tools that can help like a French curve and a flexible ruler. There are also templates of various sizes that can be used. I think someone already mentioned that two thumb tacks and a loop of string will also give you an ellipse. They can also be constructed with a compass using four compass points constructing each arc independently and joining them. You might want to search for "technical drawing tools" to get a better idea of your options,
-
Monty PythonYou are dead inside, likely due to a soul crushing job. You should consider chucking it all and becoming a lumberjack in the great North. i'm a lumberjack - Bing video[^]
-
EstimatesYou guys work in some pretty strange places. Where I work top management picks a date, middle management pick a bunch of unrelated sometimes conflicting features (to be fair sometimes top management does this too), then first line management assigns people. Developers then do something, possibly related to a requested feature. Anywhere from a month before to a couple of weeks after the deadline testing and documentation folks are brought in to try to figure out what the developers have done. During this time period top management also decides if the code should be shipped with whatever is there ATM or the date moved. The clear advantage to this method is no time wasted to useless activities like planning or estimating. Oh! and we are "agile" but don't waste time on in-depth stories when we have found that "make feature X work good", or sometimes more formally "As a user I want you make feature X work good" (remember documentation people haven't been involved at that point). This is especially true when no-one knows exactly what feature X is. Oh, oh and we are also now CI/CD (Continuous Irritation/Continuous Divination). This proclamation has lead to an almost limitless productive increase. It use to take days to push a one line change, now it takes weeks or months, but that's what life is like on the cutting edge of the industry. We also have a flawless method of assessing developer value, which is based on the amount of code created, making cut and paste a popular replacement for functions. Developers can also increase their value by fixing their own bugs once the product is in the field, but only once the problem has be elevated to the attention of high level management, where credit for saving the day can be appropriately dispensed. I think the advantages of the above system are clear and hopefully I've convinced you to give up this estimation foolishness in favor of greater developer productivity.
-
Microscopes: USB/HDMII bought a "Plugable USB 2.0 Digital Microscope with Flexible Arm Observation Stand for Windows, Mac, Linux (2 MP, 250x Magnification)" off Amazon for $35 (USD). It's cute, works and I think would work well for as a "science toy". Is it a high quality scientific instrument, no, but I suspect it's a lot easier to clean peanut butter and jelly off of and if it get knocked off a table you won't have a heart attack.