The nerdy jokes thread (bonus original title mode!)


  • 🚽 Regular


  • Discourse touched me in a no-no place

    @chubertdev said:

    Cowboy belongs to Coder, not Programmer (slight difference)

    I thought Cowboy belongs to Bebop



  • enum Programmer {
        Cowboy = 1,
        Senior = 2,
        Brillant = 4 ,
        Ninja = 8,
        Wizard = 16,
        OldSchool = 32,
        PHP = 64,
        ZendCertified = 128
    };
    

    Filed under: ZendCertified | PHP | Wizard



  • enum Programmer {
        Cowboy = 0x1,
        Senior = 0x2,
        Brillant = 0x4 ,
        Ninja = 0x8,
        Wizard = 0x16,
        OldSchool = 0x32,
        PHP = 0x64
    };
    

    WTFTFY



  • By definition, anyone that is a Wizard is also Brillant and Senior, anyone who is OldSchool is also Senior and anyone who uses PHP is automatically Brillant.

    I approve. I am indeed Brillant at PHP.



  • This post is deleted!


  • @chubertdev said:

    (post withdrawn by author, will be automatically deleted in 24 hours unless flagged)

    (post withdrawn by author, will be automatically deleted in 24 hours unless flagged)



  • Wow! That's gonna hurt, even with lube.


  • :belt_onion:

    The 7 posts I spawned garnered 12 likes and mine got none.
    Clearly no one likes C# style enums.



  • I gave you a pity like.

    Which actually worked. Earlier, I tried to like something and got a pop-up like the daily limit exceeded, but completely blank — no error message.



  • Haskell:

    data Programmer = Cowboy
                    | Senior
                    | Brillant
                    | Ninja
                    | Wizard
                    | OldSchool
                    | PHP

  • :belt_onion:

    @HardwareGeek said:

    I gave you a pity like

    damn, now you made me look like some sort of liar!


  • 🚽 Regular

    I'm curious. How do you write combinable flags in Haskell? I assume the way you wrote those are mutually exclusive.


  • 🚽 Regular

    Joke:

    Germany, 1942. Hitler is being updated on the latest productivity figures.
    "Sir, we are mining too many useless ores."
    *Hitler rubs chin* "So mine less."
    [Grammar Nazi busts in] "MINE FEWER"
    [Hitler looks up] “Yes?"


  • @Zecc said:

    I'm curious. How do you write combinable flags in Haskell? I assume the way you wrote those are mutually exclusive.

    Easy:

    data Programmer =  Cowboy
        |Senior
        |Brillant
        |Ninja
        |Wizard
        |OldSchool
        |PHP
        |CowboySenior
        |CowboyBrillant
        |CowboyNinja
        |CowboyWizard
        |CowboyOldSchool
        |CowboyPHP
        |SeniorBrillant
        |SeniorNinja
        |SeniorWizard
        |SeniorOldSchool
        |SeniorPHP
        |BrillantNinja
        |BrillantWizard
        |BrillantOldSchool
        |BrillantPHP
        |NinjaWizard
        |NinjaOldSchool
        |NinjaPHP
        |WizardOldSchool
        |WizardPHP
        |OldSchoolPHP
        |CowboySeniorBrillant
        |CowboySeniorNinja
        |CowboySeniorWizard
        |CowboySeniorOldSchool
        |CowboySeniorPHP
        |CowboyBrillantNinja
        |CowboyBrillantWizard
        |CowboyBrillantOldSchool
        |CowboyBrillantPHP
        |CowboyNinjaWizard
        |CowboyNinjaOldSchool
        |CowboyNinjaPHP
        |CowboyWizardOldSchool
        |CowboyWizardPHP
        |CowboyOldSchoolPHP
        |SeniorBrillantNinja
        |SeniorBrillantWizard
        |SeniorBrillantOldSchool
        |SeniorBrillantPHP
        |SeniorNinjaWizard
        |SeniorNinjaOldSchool
        |SeniorNinjaPHP
        |SeniorWizardOldSchool
        |SeniorWizardPHP
        |SeniorOldSchoolPHP
        |BrillantNinjaWizard
        |BrillantNinjaOldSchool
        |BrillantNinjaPHP
        |BrillantWizardOldSchool
        |BrillantWizardPHP
        |BrillantOldSchoolPHP
        |NinjaWizardOldSchool
        |NinjaWizardPHP
        |NinjaOldSchoolPHP
        |WizardOldSchoolPHP
        |CowboySeniorBrillantNinja
        |CowboySeniorBrillantWizard
        |CowboySeniorBrillantOldSchool
        |CowboySeniorBrillantPHP
        |CowboySeniorNinjaWizard
        |CowboySeniorNinjaOldSchool
        |CowboySeniorNinjaPHP
        |CowboySeniorWizardOldSchool
        |CowboySeniorWizardPHP
        |CowboySeniorOldSchoolPHP
        |CowboyBrillantNinjaWizard
        |CowboyBrillantNinjaOldSchool
        |CowboyBrillantNinjaPHP
        |CowboyBrillantWizardOldSchool
        |CowboyBrillantWizardPHP
        |CowboyBrillantOldSchoolPHP
        |CowboyNinjaWizardOldSchool
        |CowboyNinjaWizardPHP
        |CowboyNinjaOldSchoolPHP
        |CowboyWizardOldSchoolPHP
        |SeniorBrillantNinjaWizard
        |SeniorBrillantNinjaOldSchool
        |SeniorBrillantNinjaPHP
        |SeniorBrillantWizardOldSchool
        |SeniorBrillantWizardPHP
        |SeniorBrillantOldSchoolPHP
        |SeniorNinjaWizardOldSchool
        |SeniorNinjaWizardPHP
        |SeniorNinjaOldSchoolPHP
        |SeniorWizardOldSchoolPHP
        |BrillantNinjaWizardOldSchool
        |BrillantNinjaWizardPHP
        |BrillantNinjaOldSchoolPHP
        |BrillantWizardOldSchoolPHP
        |NinjaWizardOldSchoolPHP
        |CowboySeniorBrillantNinjaWizard
        |CowboySeniorBrillantNinjaOldSchool
        |CowboySeniorBrillantNinjaPHP
        |CowboySeniorBrillantWizardOldSchool
        |CowboySeniorBrillantWizardPHP
        |CowboySeniorBrillantOldSchoolPHP
        |CowboySeniorNinjaWizardOldSchool
        |CowboySeniorNinjaWizardPHP
        |CowboySeniorNinjaOldSchoolPHP
        |CowboySeniorWizardOldSchoolPHP
        |CowboyBrillantNinjaWizardOldSchool
        |CowboyBrillantNinjaWizardPHP
        |CowboyBrillantNinjaOldSchoolPHP
        |CowboyBrillantWizardOldSchoolPHP
        |CowboyNinjaWizardOldSchoolPHP
        |SeniorBrillantNinjaWizardOldSchool
        |SeniorBrillantNinjaWizardPHP
        |SeniorBrillantNinjaOldSchoolPHP
        |SeniorBrillantWizardOldSchoolPHP
        |SeniorNinjaWizardOldSchoolPHP
        |BrillantNinjaWizardOldSchoolPHP
        |CowboySeniorBrillantNinjaWizardOldSchool
        |CowboySeniorBrillantNinjaWizardPHP
        |CowboySeniorBrillantNinjaOldSchoolPHP
        |CowboySeniorBrillantWizardOldSchoolPHP
        |CowboySeniorNinjaWizardOldSchoolPHP
        |CowboyBrillantNinjaWizardOldSchoolPHP
        |SeniorBrillantNinjaWizardOldSchoolPHP
        |CowboySeniorBrillantNinjaWizardOldSchoolPHP
    

  • Discourse touched me in a no-no place

    ʎɐqǝ uo pɹɐoqʎǝʞ ɐ ʎnq ı ǝɯıʇ ʇsɐן ǝɥʇ sı sıɥʇ



  • @PJH said:

    ʎɐqǝ uo pɹɐoqʎǝʞ ɐ ʎnq ı ǝɯıʇ ʇsɐן ǝɥʇ sı sıɥʇ

    Australian model?



  • G'day Bruce.



  • I'm curious. How do you write combinable flags in Haskell? I assume the way you wrote those are mutually exclusive.

    It depends. How do you want to combine them? As conjunctions or as disjunctions?

    If I knew there was no chance of confusion, I'd just use a list, or a set, or best yet, a newtype around them:

    newtype Categories p = Categories (Set p)
    
    categories :: [p] -> Categories p
    categories = Categories . Set.fromList
    
    exampleCowboyWizard :: Categories Programmer
    exampleCowboyWizard = categories [Cowboy, Wizard]


  • @Arantor said:

    G'day Bruce.

    Nigel.



  • Not Michael? Can I call you Bruce to avoid confusion?





  • If I start my day at 8, does that make me octurnal?



  • Someone asked me to think of a number and I thought of 0x45

    Does this mean I have hex on the brain?


    Filed under: Not entirely satisfied with this joke but posting it anyway



  • It's a good first draft.


  • Discourse touched me in a no-no place

    Parents are worried about two things these days.

    1. What their sons download.
    2. What their daughters upload.


  • Dick tat idea:
    Flaccid: How this tweet looks on discourse.
    Turgid: How it's supposed to look.

    Dick tat idea:
    Flaccid: An image of the mandelbrot set.
    Turgid: The same image, less finely detailed.


  • 🚽 Regular

    @Captain said:

    It depends. How do you want to combine them? As conjunctions or as disjunctions?
    A conjunction, since the disjunction was already represented in a previous post.

    @Captain said:

    newtype Categories p = Categories (Set p)

    categories :: [p] -> Categories p
    categories = Categories . Set.fromList

    exampleCowboyWizard :: Categories Programmer
    exampleCowboyWizard = categories [Cowboy, Wizard]

    Yeah... I didn't really understand that. I think I'd need to learn me a Haskell.

    Edit: I think I understand the gist of it, just really not the details.



  • A conjunction, since the disjunction was already represented in a previous post.

    Not quite. Or rather, there are two different kinds of disjunctions to consider. The data Programmer = ... stuff defined a list of flags. And you're right that there is an implicit disjunction there. If I have a value zecc :: Programmer, zecc is going to equal either Cowboy or Wizard etc.

    Now what if I have a richer type, like:

    data Person = Person { name :: String
                         , role :: Programmer
                         }
    

    and a collection of Persons. How would I query for the Persons that are either a Cowboy or a Wizard? That is the sense of a disjunction that I meant. (I'm not going to answer that question -- but you'd probably want newtypes like Categories to represent the conjunction and disjunction and make a Boolean algebra/lattice)

    Yeah... I didn't really understand that. I think I'd need to learn me a Haskell.

    Edit: I think I understand the gist of it, just really not the details.

    The gist is the most important part.

    Sure, it was fairly idiomatic Haskell. categories = Categories . Set.fromList means that categories is the composition of Set.fromList and Categories, as functions. So it turns a list into a Set into a Categories.

    The Set.fromList notation might seem a little odd. Basically, I would have to import Data.Set to use Sets at all. There is a function called fromList in there. I can name my imports, so I'd name this one Set, and the function gets the name Set.fromList.

    newtype is kind of hard to explain, because it seems unmotivated. Basically, a newtype declaration is a special kind of type definition that says "I just want a new type with the same implementation as...".

    So newtype Categories p = Categories (Set p) is making a new type of Set p. It's not a sub-type. It's more like a twin sibling. Of course, you can do the same thing with data Categories p = ..., but you miss out on the opportunity to let the compiler do a specific kind of optimization. At run time, Categories and Sets use the same implementation, with no overhead for wrapping/unwrapping.



  • @Captain said:

    > A conjunction, since the disjunction was already represented in a previous post.

    Not quite. Or rather, there are two different kinds of disjunctions to consider. The data Programmer = ... stuff defined a list of flags. And you're right that there is an implicit disjunction there. If I have a value zecc :: Programmer, zecc is going to equal either Cowboy or Wizard etc.

    Now what if I have a richer type, like:

    data Person = Person { name :: String
                         , role :: Programmer
                         }
    

    and a collection of Persons. How would I query for the Persons that are either a Cowboy or a Wizard? That is the sense of a disjunction that I meant. (I'm not going to answer that question -- but you'd probably want newtypes like Categories to represent the conjunction and disjunction and make a Boolean algebra/lattice)

    > Yeah... I didn't really understand that. I think I'd need to learn me a Haskell.

    > Edit: I think I understand the gist of it, just really not the details.

    The gist is the most important part.

    Sure, it was fairly idiomatic Haskell. categories = Categories . Set.fromList means that categories is the composition of Set.fromList and Categories, as functions. So it turns a list into a Set into a Categories.

    The Set.fromList notation might seem a little odd. Basically, I would have to import Data.Set to use Sets at all. There is a function called fromList in there. I can name my imports, so I'd name this one Set, and the function gets the name Set.fromList.

    newtype is kind of hard to explain, because it seems unmotivated. Basically, a newtype declaration is a special kind of type definition that says "I just want a new type with the same implementation as...".

    So newtype Categories p = Categories (Set p) is making a new type of Set p. It's not a sub-type. It's more like a twin sibling. Of course, you can do the same thing with data Categories p = ..., but you miss out on the opportunity to let the compiler do a specific kind of optimization. At run time, Categories and Sets use the same implementation, with no overhead for wrapping/unwrapping.

    I didn't get this joke. Can someone explain?


  • Discourse touched me in a no-no place

    This is all where you're getting into the same sort of thing that people doing OOA/OOD have to do: working out how to really model the world. The way you express it in the target language varies quite a bit, but the bigger picture is pretty much language independent.

    The fun part comes when you consider that some entities in the real world model really do mutate over their lifespan. Lots of programming languages have problems with that.



  • @Keith said:

    I didn't get this joke. Can someone explain?

    Its a pun: instead of values that you can set, the enum is implemented as a set of disjoint values.



  • What do you call a bull that is a donut-shape? A taurus.



  • What do you call an annoying bull with a camera? A taurist.
    What do you call a bull that is teachings? Taurah.
    What do you call a bull that is bishop of rome? Pope Taurius X.I.V.
    What do you call a bull that is the Spanish word for bull? El tauro.
    What do you call a bull that repeats itself? Histaury.
    What do you call a bull that repeats itself? Taurtological.
    What do you call a bull that re-eats itself? Taurobouros.


  • :belt_onion:

    What did the bull call his secret fish sauce? Taurtaur.

    What did the bull call all of these shitty bull jokes? Tauribull.



  • @darkmatter said:

    Tauribull.

    Whatever. That ‘papal bull’ one was perfect. You just don't understand my genius.


  • Discourse touched me in a no-no place

    Good lad!


  • Discourse touched me in a no-no place

    Manchester United says fans will not be allowed to bring tablet computers or laptops into matches at Old Trafford, because of security concerns.

    Liverpool FC have just announced that they will not allow colouring books, crayons, or any felt tip pens.


  • ♿ (Parody)

    @PJH said:

    Liverpool FC have just announced that they will not allow colouring books, crayons, or any felt tip pens.

    I hear Fenway has a similar policy.



  • Aren't orange jumpsuits required at Dodger Stadium?


  • ♿ (Parody)

    No, those are handed out at the exits.



  • @Onyx said:

    "There are only 10 kinds of people in the world: those who understand binary, and those who don't."

    There are only 10 kinds of people in the world: those who understand binary, those who don't, and those who weren't expecting a ternary joke.


  • Discourse touched me in a no-no place

    I don't want to say I have bad luck or anything,

    But the one and only time I played Tetris, the first thing to drop was a circle.


  • 🚽 Regular

    @DoctorJones said:

    Respect++;
    You should have written ++Respect; instead. To the casual reader it looks like your Respect stayed the same.


  • 🚽 Regular

    Looks like there is no inbound link in my post, but there's an outbound link in @DoctorJones' post. Ah Disbugs...



  • Depends on language. ++Respect; is legal PHP but you almost never see anyone doing it.


  • BINNED

    You calling me a nobody, punk?



  • No, Respect is still given, merely after the fact.


  • 🚽 Regular

    Now there's an outbound link in my post. I guess the post needed more time in the oven or something.


  • 🚽 Regular

    I just realized I wrote "inbound" and "outbound" the wrong way around in the post I quoted DoctorJones.


Log in to reply