Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??

Greetings fellow monks,

I'm unsure whether this has been done before, but I was bored. So here it is: a management-speak generator, just in case you ever need to generate a long and meaningless document that sounds pseudo-impressive. This whole concept was highly influenced by Dack's Web BS Generator, of course.

#!/usr/bin/perl -w use strict; srand; my @pronouns = qw(I we they); my @articles = qw(the your my); my @sub_conjuncs = ( 'after', 'although', 'as', 'as if', 'as long as', 'as though', 'be +cause', 'before', 'even if', 'even though', 'if', 'if only', 'in order tha +t', 'now that', 'once', 'rather than', 'since', 'so that', 'though', ' +unless', 'until', 'when', 'whenever', 'where', 'whereas', 'wherever', 'whil +e' ); my @power_words = qw( accomplished dealt implemented projected achieved debated improved + promoted acquired decided included proofed adjusted defined increa +sed purchased administered delegated indicated qualified advised deliv +ered initiated questioned analyzed demonstrated inspected rated applied + designed instructed received appraised determined insured recogniz +ed arranged developed interpreted recommended assessed devised interv +iewed recorded assisted directed introduced recruited assured discovered + investigated reduced awarded dispensed joined rehabilitated bought + displayed kept related briefed distributed launched renovated brou +ght earned led repaired budgeted edited located reported calculated ed +ucated maintained represented cataloged elected managed researched chaire +d encouraged maximized reviewed changed enlisted measured revised classified ensured mediated selected closed entertained modified s +erved coached established motivated simplified combined evaluated named sketched communicated examined negotiated sold compared excelled o +bserved solved completed executed obtained spearheaded computed exhibited operated specified conceived expanded ordered started concluded ex +pedited organized streamlined conducted explained paid strengthened confro +nted facilitated participated studied constructed financed perceived su +ggested continued forecast performed summarized contracted formulated pers +uaded supervised controlled gained placed targeted convinced gathered pl +anned taught coordinated graded predicted tested corrected greeted prepa +red trained corresponded guided presented translated counseled handle +d processed treated created helped produced updated critiqued identi +fied programmed wrote ); my @verbs = qw( aggregate architect benchmark brand cultivate deliver deploy disintermediate drive e-enable embrace empower enable engage engin +eer enhance envision evolve expedite exploit extend facilitate generat +e grow harness implement incentivize incubate innovate integrate ite +rate leverage maximize mesh monetize morph optimize orchestrate reconte +xtualize reintermediate reinvent repurpose revolutionize scale seize strate +gize streamline syndicate synergize synthesize target transform transit +ion unleash utilize visualize whiteboard ); my @aux_verbs = ( 'will', 'shall', 'may', 'might', 'can', 'could', 'must', 'ought to', 'should', 'would', 'need to' ); my @adjectives = qw( 24/365 24/7 B2B B2C back-end best-of-breed bleeding-edge bricks-and-clicks clicks-and-mortar collaborative compelling cross-platform cross-media customized cutting-edge distributed dot-com dynamic e-business efficient end-to-end enterprise extensible frictionless front-end global granular holistic impactful innovative integrated interacti +ve intuitive killer leading-edge magnetic mission-critical next-gener +ation one-to-one open-source out-of-the-box plug-and-play proactive real +-time revolutionary robust scalable seamless sexy sticky strategic syner +gistic transparent turn-key ubiquitous user-centric value-added vertical viral virtual visionary web-enabled wireless world-class ); my @nouns = qw( action-items applications architectures bandwidth channels communi +ties content convergence deliverables e-business e-commerce e-markets e-services e-tailers experiences eyeballs functionalities infomedi +aries infrastructures initiatives interfaces markets methodologies metri +cs mindshare models networks niches paradigms partnerships platforms portals relationships ROI synergies web-readiness schemas solution +s supply-chains systems technologies users vortals ); my @conj_adverbs = qw(however moreover nevertheless consequently); my @conjuntors = qw(though although notwithstanding yet still); my @sentences; for (my $x=0; $x<100; $x++) { push @sentences, &sentence; } print join ' ', @sentences; exit; sub sentence { my $sentence; my $type = int(rand(5 - 1 + 1)) + 1; if ($type == 1) { $sentence = join ' ', maybe(&conj_adverb,1,4,', ') . &article, + tobe(&noun), &power_word, &sub_conjunc, &pronoun, &power_word, &article, maybe(&adjective,1,2,' ') . &noun . maybe(&phrase,1,2,''); } elsif ($type == 2) { $sentence = join ' ', maybe(&conj_adverb,1,4,', ') . &sub_conj +unc, &pronoun, &power_word, &article, maybe(&adjective,1,2,' ') . &noun . ',', &article, maybe(&adjective,1,2,' ') . &noun, &power_word, &article, maybe(&adjective,1,2,' ') . &noun . maybe(&phrase,1,3,''); } elsif ($type == 3) { $sentence = join ' ', maybe(&conj_adverb,1,4,', ') . &pronoun, + &aux_verb, &verb, &article, maybe(&adjective,1,2,' ') . &n +oun, &sub_conjunc, &article, &adjective, plural(&noun), &aux_ve +rb, &verb, &article, maybe(&adjective,1,2,' ') . &noun . maybe(&phrase,1,4,''); } elsif ($type == 4) { $sentence = join ' ', maybe(&conj_adverb,1,4,', ') . &sub_conj +unc, &pronoun, &verb, &article, maybe(&adjective,1,2,' ') . &noun . + ',', &pronoun, 'can', &verb, &article, maybe(&adjective,1,2,' ') . &noun . maybe(&phrase,1,4,''); } elsif ($type == 5) { $sentence = join ' ', maybe(&conj_adverb,1,4,', ') . &pronoun, + &aux_verb, &verb, &article, maybe(&adjective,1,2,' ') . &n +oun, &sub_conjunc, &pronoun, &verb, &article, maybe(&adjective,1,2,' ') . &noun . maybe(&phrase,1,4,''); } return ucfirst($sentence) . '.'; } sub pronoun { return $pronouns[int(rand($#pronouns+1))]; } sub conjuntor { return $conjuntors[int(rand($#conjuntors+1))]; } sub sub_conjunc { return $sub_conjuncs[int(rand($#sub_conjuncs+1))]; } sub conj_adverb { return $conj_adverbs[int(rand($#conj_adverbs+1))]; } sub power_word { return $power_words[int(rand($#power_words+1))]; } sub verb { return $verbs[int(rand($#verbs+1))]; } sub aux_verb { return $aux_verbs[int(rand($#aux_verbs+1))]; } sub adjective { return $adjectives[int(rand($#adjectives+1))]; } sub noun { return $nouns[int(rand($#nouns+1))]; } sub article { return $articles[int(rand($#articles+1))]; } sub phrase { return join ' ', ',', &conjuntor, &article, tobe(&noun), &power_wo +rd; } sub tobe { return $_[0] . ' is' if ($_[0] =~ /ess$/); return $_[0] . ' are' if ($_[0] =~ /s$/); return $_[0] . ' is'; } sub plural { my $word = $_[0]; if ($word =~ /s$/) { $word =~ s/$/es/; } else { $word =~ s/$/s/; } return $word; } sub adverb { my $verb = &verb; $verb =~ s/e*$/ing/; return $verb; } sub maybe { my $low = $_[1]; my $high = $_[2]; if (int(rand($high - $low + 1)) + $low == $low) { return $_[0] . $_[3]; } else { return ''; } }

The English parsing is extremely incomplete, so often times (say one in five) you'll get slight grammatical errors. I tried to fix that up a bit with &plural and &tobe, but there's certainly much more to do.

-gryphon
code('Perl') || die;


In reply to Management-speak generator by gryphon

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others scrutinizing the Monastery: (7)
    As of 2014-12-25 11:21 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      Is guessing a good strategy for surviving in the IT business?





      Results (160 votes), past polls