SLotD: Serialise/Deserialise is Copy

Software Lesson of the Day for 2/12/2022. Rather than waste all that time writing a perfect universal .net object copy library that copes with every possible variation of nested reference types, value types, fields, properties, statics, and twenty-plus years of special cases and regret and technical debt baked into the framework… just serialise your damn source object to json and de-serialise it back out again. And then be on your way.

SLotD: File->New

Software Lesson of the Day for 17/11/2022: A quick hack. Every time you do the equivalent of File->New Project for something other then a trivial test app, make a note of it. After a while, take a look at your notes and see how often you’re actually creating new stuff. Have a think about that: about what is enabling you to do that, and perhaps more importantly what’s stopping you.

SLotD: Premature Abstraction

Software Lesson of the Day for 2022-10-04: Note to self. If you’re struggling to create a generic, reusable, well factored, abstraction to implement a simple, application-specific piece of functionality – then it may just be that instead you can get away with a couple of simple data fields and a static function or two. Remember this for the next time.


(Lets see if I can remember to do this more often…)

Ambiguity

Me: Ok Google – remind me to do my expenses on Friday

The algorithm: When do you want to be reminded?

Me: 9am

The algorithm: Ok. I’ll remind you to “do my expenses on Friday” tomorrow at 9am

Me: FFS… Ok Google cancel that reminder

The algorithm: Ok I’ve cancelled the reminder “do my expenses on Friday”

Me: Ok Google – on Friday remind me to do my expenses

The algorithm: When do you want to be reminded

Me: 9am

The algorithm: Ok. I’ll remind you to “do my expenses” on Friday at 9am

Global conquest by our AI overlords may need to be put back a bit.