Separate scanned PDF per person, as an image, no OCR, 3MB in size
You mean the Normal File Format?
It’s a lot of individual tables because Santa’s excel struggles with anything past a few hundred thousand rows. It’s not just names, but addresses, lists of desires, and so on.
There are around 2 billion children. If you wonder why he skips so many children, it’s not religion or poverty, it’s because Santa’s files got corrupted.
In an unfortunate coincidence, the tables were sorted by the children’s parents’ annual income, so it was the poor kids whose data was lost. That’s why rich kids get more presents.
Professionals do seem to use excel.
Holy fuck is it painful for anyone that knows what they are doing.15000 rows. 120 columns. One sheet. Creation date: 2011. A dedicated computer. Working at a multinational company is bad for mental health.
And then OneDrive comes along, someone accidentally saved “to the cloud” (IE the default windows location of OneDrive). And of course someone (you) has to fix all the desync bullshit.
Fuck excel, fuck Microsoft, fuck OneDrive!Thank god my company is transitioning to a decent no code solution (nocobase plus literally anything that can interact with postgres - currently n8n but not yet limited to that. It’s a transition from excel, literally anything is better! (Tho, nocobase is awesome, non has it’s perks)).
Many parentheses, soz.
Fuck excel, use a database!I’ve seen that. Used for customer service history AND planning with 3-digit week numbers (the first digit is the last digit of the year) and a lot of macros. Guess who had to fix the macros in 2020 without changing the idiotic 3-digit week numbers?
FiServ. Distributed to clients.
I’ve seen at a very large company a workflow that involved manually updating an excel workbook and (I think) saving it on confluence, so a python script could download it and parse it later. It wasn’t even doing formulas. It was just like less than a hundred lines of text in a half dozen sheets.
Why would Santa need two separate tables for this?
Relational database. He’s got
children, which joins tonaughtyandniceonchildidand both record their status each year so that he can monitor trends.don’t underestimate database design in production environments
Exactly, Santa’s always watching and audit logs get complicated
I would make two separate views.
CREATE VIEW NiceList AS SELECT * FROM Children WHERE behavior = 'nice' AND parent.income > 40000; CREATE VIEW NaughtyList AS SELECT * FROM Children WHERE behavior = 'naughty';The income is a nice touch.
Why are we using magic strings for behavior?
He used to have an is_nice bool but consultants convinced Santa it isn’t future proof enough to capture the nuances of kids behaviour in today’s world, such as “nice but always is really smug about it”. But the consultants kept making PowerPoints instead of updating the backend, so now Santa also has added a new value to behaviour: “consultant-like”
It’s an ENUM and other people have to read this fucking codebase too, Brian!
I’ve a DBA who would insist on this being in a dimension table and using a foreign key constraint instead of just a fucking string
Feel free to fork my comment.
Does Santa accept PRs?
The poor kids can’t even afford coal and fall through the cracks.
You forgot the join smh
Omitted for brevity.
stop static “variables”! use COL. congress should do the same for setting minimum wage. eg parent.income > COL
Once you get a few thousand columns wide you create a naughty_list2 for the new data
Good guy Tim tryin to make sure everyone has a Merry Christmas. Sounds like nice list material to me.
Last year during the Christmas shutdown at work I actually made a crud application to track naughty vs nice children for santa, yes it was sql based(entity framework) with >90%test coverage (tests based off a in memory database) and with a winforms ui(what I had to use at work).
I might revisit and refactor it this year come to think of it.
Except, it was little Bobby tables.
lame bobby tables rip-off
Listen, there’s room in SQL for more than one input sanitization joke.









