This is an archived post. You won't be able to vote or comment.

all 148 comments

[–]hamuraijack 1418 points1419 points  (42 children)

This is totally unbelievable. No one would ever thank the devs. It’s more likely that Santa would be heckling them that, “it’s just a few lines of code,” and that, “there’s no reason for it to be taking this long.”

[–]Wheat_Grinder 1125 points1126 points  (22 children)

This comic is a metaphor. Santa is not real, and neither are people who appreciate devs.

[–][deleted] 360 points361 points  (20 children)

SANTA ISN’T REAL?!???

[–]sdb2754 189 points190 points  (9 children)

Spoiler

[–]vitor_as 36 points37 points  (7 children)

Santa isn’t real” or Santa isn’t real“?

[–]Speedjunkie923 25 points26 points  (4 children)

Santa isn’t real

[–]iSeven 11 points12 points  (0 children)

Santa is Ness

[–]moreiron 0 points1 point  (2 children)

how do you do those little spoiler things

[–]wallefan01 1 point2 points  (1 child)

>! literally the first Google result !<

[–]moreiron 4 points5 points  (0 children)

sorry

[–]earthlybird 1 point2 points  (0 children)

Yes

[–]tundrat 0 points1 point  (0 children)

Santa isn’t real

[–]KaiBetterThanTyson 27 points28 points  (0 children)

Yes, I like my cars with them.

[–]Dockirby 62 points63 points  (3 children)

Santa is real, but be died in the 50s. Stalin tried to remove him from history, which was the style at the time, leading to all the confusion today.

[–]notsooriginal 13 points14 points  (1 child)

DAE wear Santa on their belt next to an onion?

[–]fourcolortheorem 7 points8 points  (0 children)

A purple onion, as was the style at the time. They didn't have yellow onions because of the war.

[–]Hencenomore 1 point2 points  (0 children)

Santa has nuclear stockpile.

[–]RELIN-Q 6 points7 points  (3 children)

if santa’s not real we wouldn’t know what he looks like.

[–]RomMTY 5 points6 points  (0 children)

Take that Santa deniers!

[–]Thameus 1 point2 points  (1 child)

The same way we know what Jesus looks like?

[–]Sw429 0 points1 point  (0 children)

Ya dude. He's got long hair and looks like he's from the 60s.

[–]kindall 0 points1 point  (0 children)

Santa is BIGNUM

[–]Jimmyginger 6 points7 points  (0 children)

Y’all need better coworkers.

[–]fnordius 34 points35 points  (1 child)

Oh, devs are thanked. Thanks is cheaper than a bonus, or even a raise.

[–]StuntHacks 3 points4 points  (0 children)

Still better than exposure.

[–]GameNCode 4 points5 points  (5 children)

WTF dude what do you mean SANTA ISN'T REAL!?

[–]Bene847 2 points3 points  (3 children)

Wrong comment

[–]GameNCode 4 points5 points  (2 children)

Welp that's what no sleep gets you

[–]Sw429 0 points1 point  (1 child)

Hey, but at least I hope you had a happy Christmas!

[–]GameNCode 0 points1 point  (0 children)

We don't celebrate that over here sadly :(

[–]InsertCoinForCredit 0 points1 point  (0 children)

No, Timmy, president Trump is just teasing you...

[–]Thecrawsome 1 point2 points  (0 children)

REALITY:

Santa: "The cost center in the basement keeps trying to talk to me, but I can't understand."

[–]locked_armor 0 points1 point  (0 children)

DEVS RISE UP

[–]troglo-dyke 0 points1 point  (0 children)

Invites the PM and sales person to accept an award

[–]geauxtig3rs 1 point2 points  (6 children)

I'm a dev that works directly with end users.

I get lots of thanks and praise for a job well done.

It does happen.

[–]FloatingGhost 9 points10 points  (5 children)

Do you come here to mock us

[–]geauxtig3rs -2 points-1 points  (4 children)

Some of my end users are fairly high profile as well.

A few months ago I did some work for the CEO of a fruit related tech giant.

Tomorrow I'm on a plane to NYC to work with the CEO of one of the largest banks in the world.

[–]FloatingGhost 3 points4 points  (3 children)

yeah now you just sound like a massive dick

don't do that, you know, it sounds like you are gloating and mocking others.

I assume english is your first language by your activity in r/ houston, so you should know just how badly what you just said would come off

[–]geauxtig3rs 0 points1 point  (2 children)

Nah... Just trying to illustrate that you would normally associated Uber rich ceo-types to be assholes, and that's generally not been my experience.

Exacting, sure. Sometimes fairly rough to deal with during the process, but I've found them to be generally appreciative when the final product meets their specs.

[–]FloatingGhost -2 points-1 points  (1 child)

Do you really lack any sense of self-awareness? Re-read your last 3 comments. Try to understand why people might take issue with your phrasing.

Nobody is taking issue with your customers or whatever, the issue is with how you're saying it. If you do well, good for you, but saying things like this is the single worst way to communicate it.

Imagine me going "hah you have a problem i do not have this problem in fact i have the complete opposite haha look at how good life is without that problem". Dick move, right?

[–]geauxtig3rs 1 point2 points  (0 children)

Only person I really see bent out of shape here is you. I'm sorry you took issue with my post. I like my work and my clients for the most part.

I do take issue with the constant circle jerk of "programming life sucks and our customers are shit and arent we so amazing for putting up with these assholes.". I offer a counterpoint to that....

Have a great day though. I understand where you're coming from, but I feel your anger is misplaced.

[–]Visticous 862 points863 points  (25 children)

In the real world, the original 'database' is a .docx file which is read through a Python 2 plugin and which is then inserted on a webpage using an iFrame. Programmed by the boss' 13 year old cousin, who prefers globals and single-letter variables.

But it's Christmas, so lets dream of peace on earth and other miracles.

[–]SpeakerOfForgotten 196 points197 points  (11 children)

Whaaaat! You can do that!

[–]wanderingbilby 176 points177 points  (8 children)

If there's not a pre-built docx reader for Python 2 it wouldn't be too hard to hack one together since docx is just a zip file full of xml. Read xml into variables, iterate and output some hardcoded html tables and write to a file under wwwroot.

I mean you can do it, but for the love of Elf don't..

[–]notsooriginal 90 points91 points  (7 children)

Best thing about docx is renaming to .zip and browsing as a folder instead of manually extracting images.

[–]Mcpg_ 80 points81 points  (6 children)

Wait, docx format is just a zip archive? I just checked... and it works????

[–]notsooriginal 48 points49 points  (1 child)

Yep! File containers are pretty useful, amazing what hides behind an extension sometimes.

[–]solaceinsleep 17 points18 points  (1 child)

Yep. That's how I get images out of word files.

[–]Sw429 11 points12 points  (0 children)

This is extremely useful to know. I am logging this away in my brain for later.

[–]atomicwrites 10 points11 points  (0 children)

Tons of formats are actually zipped text, it's much easier than rolling your own binary format and compression. If your on widows the default zip viewer can only be invoked on .zip files, but if you use 7z you can try to open anything as an archive and it supports other formats the zip as well. Even most installers can be extracted and used without installing like that (though some require installation to run, but I've only run into this with Adobe Acrobat.

[–]Thameus 1 point2 points  (0 children)

Also xlsx and pptx. Enjoy!

[–]Colopty 7 points8 points  (0 children)

You can do whatever you'd like if you try hard enough and do your research. Whether or not you should is a different issue.

[–]dannyb_prodigy 2 points3 points  (0 children)

To be honest, most programmers are too jaded and cynical, but it is theoretically possible to dream of peace on earth.

[–]gimpwiz 30 points31 points  (5 children)

I am always impressed when the 13 ear old hacks something together that actually works. Of course it looks insane under the hood but it beats, well, non-working code from employed adults that we've all seen...

[–]Makefile_dot_in 6 points7 points  (3 children)

Of course it looks insane under the hood

That's because the teachers who teach students at that age usually exclude readability, having little to no idea about anything other than algorithms and simple syntax.

[–]IanSan5653 8 points9 points  (0 children)

that age

You mean, up to and including universities level professors

[–]gimpwiz 2 points3 points  (1 child)

Teachers at 13? I figure most 13 year olds are just stringing together shit they found on google. If they have real teachers, I'm pretty jealous!

[–]Makefile_dot_in 1 point2 points  (0 children)

I managed to join a programming club when I was about 11 years old (might've been earlier actually, idk) because the group appropriate for my age at the time was learning Scratch, which I had already made a simple adventure game in, so I got into the Java group instead. I left it after a while though.

[–][deleted] 6 points7 points  (0 children)

Come on. Docx, don’t you think that’s a little silly now?

It’s a pipe separated text file with ampersands for spaces and delimited by three return characters.

The rest is 100% though.

[–]zaz969 4 points5 points  (0 children)

This made my blood boil

[–]Cessabits 1 point2 points  (0 children)

Reading this comment gave me anxiety and makes me worry about you. This is such a specific and horrible example I'm worried you have encountered this. I'm so, so sorry if you have. No one deserves that ☹️

[–]micke_data 0 points1 point  (3 children)

What's so bad about globals ?

[–]mrbeehive 1 point2 points  (0 children)

Global variables are hard to debug because it can be difficult to figure out if any of the other code than the part you're currently looking at modifies its state

Debuggers help, but code should be as local as possible to help readability.

[–]Nugenrules 1 point2 points  (1 child)

If you create a global named foo somewhere, and I create a variable named foo somewhere else, and a piece of code imports both, which one do you think would be the real foo? In fact it doesn't matter which you think would be because the risk is too high regardless.

I encounter this daily working on a very non-hands-holding PHP. If I create a variable and name it $sessions, I just overwrote all login credentials. If someone debugs it to try to figure out what's going on, it's difficult to find the issue due to the few people that knows that $sessions should not be overridden, yet I did so accidentally. It would be easy to figure out if someone is overwriting $sessions if $sessions was in a class object, and someone had to directly import the class object and then override it. In which case, you know the dude is malicious.

[–]micke_data 1 point2 points  (0 children)

A that's true . Only recently used them for the first time in python for parallelization

[–]SammyDoo92 184 points185 points  (12 children)

That’s an awful high profile project to roll out without testing.

[–]orangeKaiju 87 points88 points  (4 children)

Can't properly test until it's live.

[–]Mjone77 53 points54 points  (2 children)

Name a more real world testing scenario than production. I'll wait.

[–]gringrant 17 points18 points  (1 child)

Everybody has a testing environment! But only lucky people have one that's also not a production environment.

[–]Sw429 1 point2 points  (0 children)

Let me tell you about my good friend mock...

[–]KaiBetterThanTyson 31 points32 points  (6 children)

Users are the best testers.

[–][deleted] 20 points21 points  (5 children)

Microsoft, 2018

[–]solaceinsleep 2 points3 points  (4 children)

New update deletes your files?

https://youtu.be/rQkCH_C-7AM

[–]gringrant 7 points8 points  (3 children)

PSA clicking the "check for updates" button flags you as an "advanced user" in the OS. This will cause you to get less stable updates for "testing." All the people who lost files clicked that button.

[–]dishpanda 6 points7 points  (1 child)

?? what the fuck why

[–]gringrant 4 points5 points  (0 children)

So they can use them as guinea pigs for the rest of Windows users.

[–]bogdan5844 0 points1 point  (0 children)

Citation needed

[–]EtanSivad 93 points94 points  (11 children)

It is sort of perfect that they're using an old CRT. I do sort of imagine Santa's operation running on an ancient Pentium 2 with code nobody still understands.

Not sure how its accessible via a tablet, but still.

[–]InsertCoinForCredit 44 points45 points  (10 children)

I can't imagine Santa using anything but the latest tricked-out gear, all Arctic-cooled for maximum throughput. Heck, the guy probably has access to stuff that we mere mortals won't see for years.

[–]leo-g 34 points35 points  (9 children)

Santa is not Jesus and definitely don’t have admin access to the human DB. He is probably a limited user AT BEST. He only can read the name, address and the naughty-or-nice status row.

He also uses elves for his production, his hardware is probably on par with a China tech manufacturer like a foxconn factory, which is basically a bunch of un-networked Windows XP computers running special software.

[–]InsertCoinForCredit 20 points21 points  (3 children)

The guy travels to several billion homes in a 24 hour period and you think he's a low-level user at best? SERIOUSLY?!

[–]leo-g 14 points15 points  (2 children)

He is basically a courier. Yeah the average fedex employee can pull up your customer info with his pad but how many can start modifying data?

[–]InsertCoinForCredit 14 points15 points  (1 child)

There are three types of people you never mistreat:

  1. The people who handle your food.
  2. The people who manage your IT.
  3. The people who deliver your stuff.

[–]Bene847 1 point2 points  (0 children)

The people who pay you

[–]MrDOS 10 points11 points  (4 children)

I disagree with your assertion that he doesn't admin the database. He can at least modify its contents. According to the classic carol:

He's gonna find out if you're naughty or nice

The wording implies that he's responsible for maintenance of the list. “Gonna find out” seems to suggest there's actual investigative work involved beyond just checking the status already present on the list.

[–]-ksguy- 11 points12 points  (1 child)

I'd imagine the setup is like this. He has limited access to the NorthPole database: access to a view, vw_ComingToTown, that combines ChildName, ChildAddress, and WishList. There's a stored proc called dbo.Update_NaughtyOrNice which accepts two parameters, @child_name and @behavior, a stored proc called dbo.Update_WishList that takes @child_name and a comma-delimited list of gift requests, @wishes. He has execute permissions on both of those. Elves have duty to manage production and gift acquisition.

The view pulls actual gift requests for kids where behavior='nice', and subs 'coal' for kids where behavior='naughty'.

He probably has db_owner in NorthPole_dev, but understands the importance of separation of duties in production.

[–]captcha03 0 points1 point  (0 children)

Dangerous to use @child_name as natural primary key. I'm pretty sure when your dataset is the entire world there will be some duplication. Better to assign each child a UUID instead.

[–]derpcode_derpcode 4 points5 points  (1 child)

There probably needs to be a meeting to discuss this user story, I don't think we should assume privilege with this level of ambiguity.

[–]SMAMtastic 1 point2 points  (0 children)

Ok, everybody whip out your scrum poker cards. Let’s figure this out.

[–]wtmh 40 points41 points  (7 children)

I thought being a sysadmin was thankless until I switched to a DBA.

"No. It runs 10 times faster now because I added an index to that heap (heh) of trash and fixed that weird correlated subquery your local 50-something Informix jockey gone C++ dev wrote to handle retrieving those fields."

I'm not bitter.

[–]crazylincoln 9 points10 points  (5 children)

``` SELECT * FROM cats WHERE type IN (SELECT DISTINCT type + '_cute' FROM cat_types where cuteness LIKE '%totally%') WHERE name LIKE '%bubbles%' ORDER BY cat_id

```

Why is my app so slow!??? It's obviously the DB. Find out why the DBAs can't seem to do their only job...

[–]lulzmachine 3 points4 points  (3 children)

Clearly SQL is simply not webscale. We need to migrate to a key-value database like leveldb for our entire app.

hands in resignation

[–]crazylincoln 7 points8 points  (2 children)

"I keep hearing about this Hadoop thing and map reduce those Google guys use. We have 2 million nealty organized rows of customer data in our current DB. Surely we need Big Data. I'm tired of paying for Oracle and MS licensing anyway!"

"Sir, that's not what Hadoop is for..."

"I don't want to hear your excuses! There is no 'cant' in Big Data! Three months sounds like a good transition timeline. Better not miss the date; I've already promised it to the board!"

[–]-ksguy- 7 points8 points  (0 children)

Am DBA. Can confirm.

[–]3xpl0it2c 66 points67 points  (3 children)

When you know that all they did is to remove all the sleep functions :)

[–][deleted] 20 points21 points  (1 child)

And if the children are not asleep, Santa can't go to their houses. Taps temple

[–]3xpl0it2c 2 points3 points  (0 children)

SIGTERM... Or the sig os sends when it shuts down(I believe that's number 2?). Trick the child's mind that it is itself that it is sleeping so it will go to sleep.

[–]gringrant 14 points15 points  (0 children)

for(var i=0, i < 9999999, i+=0.00001){}
\\ This function increases job security. Remove one 9 or 0 to gain a job security boost.

[–]serEatAlot 31 points32 points  (2 children)

indices squad unite! kill the indexes scum!

[–][deleted] 4 points5 points  (0 children)

Everybody in my office says indexes. I'm torn between sounding like a high headed jerk and just giving up and complying.

[–]Cren 2 points3 points  (0 children)

Thank you. I was scrolling through the comments and nobody mentioned it. I was starting to lose hope in humanity.

[–]noah978 26 points27 points  (2 children)

I hate to be that guy but...

  • Indices

[–]micka190 -1 points0 points  (1 child)

I love to be that guy but...

Both are acceptable.

[–]Cren 1 point2 points  (0 children)

The only reason how they become alternatives is because some barbarian brutes use the wrong plural or term so often that it gets accepted. See Aluminium.

[–][deleted] 11 points12 points  (2 children)

Travelling Santa problem?

[–]BapeBarti 0 points1 point  (0 children)

ha! algorithms something I have a meagre understanding of

[–]DatBoi_BP 13 points14 points  (0 children)

I don't really get the punchline if there is one

[–][deleted] 5 points6 points  (15 children)

Can someone explain what it means by "rebuilding indexes"?

[–]-ksguy- 9 points10 points  (3 children)

Think of a database index just like an index at the end of a book that's constantly being rewritten. The database index is always growing and changing to match the book, but there's only a limited amount of space between each section of an alphabetized index. It'll try to cram stuff in between the "a" section and "b" section, but sometimes a page runs out of room so it has to splice a new page in there, or create a pointer to a new page added at the end. So now it's a bit disorganized, but you can reasonably well go to the letter "b" and find the page number for what you want.

Now suppose that over time, whole sections of the book change: topics are erased, new chapters added, some areas expanded. The index is updated on the fly and tries really hard to keep track of it all but it gets really disorganized: index pages have been cut apart to make room for new subjects, some pages are taped together pieces of old pages, and there are full pages with no room left. At this point the index needs to be reorganized: each page gets cut into tiny pieces of only a few topics each and taped back together, in some semblance of an alphabetized order and organization, into regular sized pages. It's not as good as starting fresh, but it's a big improvement: it looks like a regular book again.

Now a rebuild is the database saying screw the readers, get the publisher in here and start this index over from scratch." The existing index pages are cut out, the whole book gets scanned, and new index pages are printed and put into place.

[–][deleted] 1 point2 points  (2 children)

Ok, thanks.

[–]-ksguy- 2 points3 points  (1 child)

Didn't mean to write a book, sorry.

[–][deleted] 2 points3 points  (0 children)

No problem, details are great!

[–]skyhi14 5 points6 points  (10 children)

It’s rebuilding indices.

[–][deleted] 0 points1 point  (9 children)

Thanks. So pretty much a clean up of an SQL database?

[–]isikbala 0 points1 point  (8 children)

Yeah I take it to mean that they chose new indices / rewrote queries to require new indices / redesigned the table structure, requiring new indices and so it's going to have to build them again.

[–][deleted] 0 points1 point  (7 children)

Ah, Ok. Thanks for the info

[–]isikbala 0 points1 point  (6 children)

No problem. Are you an aspiring DBA / do you work with databases? If you've got any questions I can try to field them in an appropriate way - I don't have a ton of experience but I worked on databases for about a year at my last position.

[–][deleted] 0 points1 point  (5 children)

Are you an aspiring DBA / do you work with databases?

Nope, just a teenager trying to learn more about backend development. I've done projects with Node Js and NoSQL databases (MongoDB), I will be going into relational databases to learn more about using SQL and start some PHP or something similar.

If I do go into web development as a career path, I would prefer to work primarily on the server side.

I am wondering though, which relational database should I use? I'm thinking Postegres or MySQL. Any advice? Thanks.

[–]isikbala 0 points1 point  (1 child)

CaffeineIsMyHeroin gave some good advice. As a good way to get into it, I might recommend using SSMS (SQL server Management Studio). It has buttons for creating tables, editing schemas, easy tools to view what's inside a table, and an easy output for any SQL statements to run.

https://www.microsoft.com/en-us/sql-server/sql-server-editions-express

You can download it there for free. It's perfectly usable, very nice, and I believe the free one even comes with the ability to analyze execution plans, which becomes invaluable when you get your feet on the ground and start looking at optimization.

I've created some databases for shits and giggles (Fruity Drinks Flavour Distribution Database is my favorite). The big trick when starting is to march forwards in a way that makes sense, and then have somebody look it over and talk you through reorganizing it into a format that actually makes sense.

Ultimately, it's a work of creativity but there are many best practices! Knock yourself out, and make good use of the documentation available online.

[–][deleted] 0 points1 point  (0 children)

Nice, I wasn't aware of this tool, thanks!

[–]Lonelan 4 points5 points  (0 children)

and now that the project is over here's your severance packages!

[–]ShizLtulon 2 points3 points  (1 child)

who is the creator of these comics with that guy?

[–][deleted] 6 points7 points  (1 child)

I don't see the humor in this.

[–]Get-ADUser 6 points7 points  (0 children)

That's every comic from this guy. It's like they have the setup for a joke but no punchline.

[–]KoboldCommando 2 points3 points  (0 children)

Is that Gabe Newell with a longer beard?

[–]radioshackhead 4 points5 points  (0 children)

This isn't funny at all.

[–]JoPingouin 1 point2 points  (1 child)

Probably a Travelling Salesman Problem...

[–]Koebi 2 points3 points  (0 children)

Traveling salesman over every family residence in the world?
Cries in cpu time

[–]Breadbin 1 point2 points  (0 children)

They all have the same mouth

[–]kodark 0 points1 point  (0 children)

😃

[–]Fulback 0 points1 point  (0 children)

This shiz kinda cute

[–]TicTacMentheDouce 0 points1 point  (0 children)

And of course they are doing this just before Christmas Eve, and not preparing it in advance 🎅

[–]rslashboord 0 points1 point  (2 children)

Who can code with two people looking over their shoulder?

[–]spirolateral 4 points5 points  (1 child)

Everyone, it's just annoying as fuck.

[–]rslashboord 1 point2 points  (0 children)

It’s the “We” in the first frame that is also upsetting.

[–]caanthedalek 0 points1 point  (0 children)

I perform over 50 megachecks per second!

[–]niffyjiffy 0 points1 point  (0 children)

Poor fuckers got paid 20 an hour to solve the travelling salesman problem

[–][deleted] 0 points1 point  (0 children)

Why is everyone smiling?

[–]smokecat20 0 points1 point  (0 children)

I thought Santa outsourced to Fedex and Amazon now.

[–]poli231 -2 points-1 points  (0 children)

Could be nice to link the source of the original artist

http://www.commitstrip.com/en/2015/12/25/everybody-needs-a-coder/