Aoccdrnig to a rscheearch at Cmabrigde Uinervtisy, it deosn’t mttaer in waht oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht the frist and lsat ltteer be at the rghit pclae.
The rset can be a toatl mses and you can sitll raed it wouthit porbelm.
Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef but the wrod as a wlohe.
This plugin implements a version of an algorithm that will produce text similar to the above.
Basically it changes each word by randomising the order of the letters, leaving the first and last letter of each word the same.
You implement this on your website using the [bbboing] shortcode.
The syntax is:
text=”seed|text – some text to obfuscate”
form=”N|Y – display form to allow changes”
both=”N|Y – display both original and output text”]
If you don’t specify any parameters you get a ‘bbboing’ed version of the original text.
[bbboing text=”code is poetry”] may produce ‘code is peroty’ or ‘cdoe is pretoy’
[bbboing text=’powered by WordPress’] may produce ‘prweoed by WrdsorPes’
It’s also feasible that the randomisation produces exactly the same output as input.
So [bbboing text=’bobbing wide’] may produce ‘bobbing wide’
Of course, nothing happens for words with fewer than 4 letters so
[bbboing text=’it is not a con’] WILL produce the same output as input.
You may notice that some spammers/spambots intentionally misspell words when creating comments.
bbboing does not in anyway endorse this.
Please use bbboing for your own amusement.
Note: the bbboing plugin is dependent upon the oik plugin.
If you want to read more about oik plugins and themes then please visit oik-plugins
- Where does bbboing come from?
bbboing is an anagram of bobbing, which is part of my company name ( bobbing wide – hence my WordPress.org username ).
Furthermore it’s an anagram where the first and last letters of the word are not changed.
‘bbboing’ is just one of the possible results of running the algorithm against ‘bobbing’.
- What does obfuscate mean?
Render obscure, unclear, or unintelligible. Bewilder (someone).
- What is this plugin for?
The purpose of this plugin is to be entertaining, educational and experimental.
Entertaining in that it produces an obfuscated version of some text following the “rules” defined in http://www.mrc-cbu.cam.ac.uk/people/matt.davis/Cmabrigde/
Educational in that it shows an example of a plugin developed using the oik application programming interface, implementing lazy smart shortcodes.
* smart – the shortcodes understand the content in which they’re invoked
* lazy – the code to evaluate the shortcode is loaded on demand, when the shortcode is used.
Experimental: some very similar code is being used to automatically generate language files for a locale identified as bb_BB.
- Can you tell me more about the research?
See also the definition of typoglycemia, where the original text is longer than the example used here.
- Changed: Created French version to test with WordPress 4.6
- Changed: Created bb_BB locale version to test with WordPress 4.6
- Changed: Added PHPUnit tests in the GitHub version [github bobbingwide bbboing issue 2]
- Fixed: wp_nonce_field() called with incorrect parameters [github bobbingwide bbboing issue 1]
- Tested: With WordPress 4.5 and WordPress MultiSite.
- Changed: Now depends on oik v3.0.0 or higher.
- Changed: Improved some code and docblocks to WordPress standards
- Tested: With WordPress 4.4 and WordPress MultiSite.
- Changed: Updated oik-activation to match oik.
- Changed: Now depends on oik v2.5 or higher.
- Changed: Syntax help changed to test integration with the shortcake UI plugin
- Changed: Responds to “oik_add_shortcodes”
- Changed: Added readme.md file for GitHub version. Built from readme.txt
- Changed: Now invokes “bbboing_loaded” action during “init”. This allows smart-bbboing to get going before oik is loaded.
- Changed: The “bbboing” algorithm now ignores punctuation and complicated stuff
- Changed: Added nonce to the form. Sanitizes content.
- Changed: Restructured plugin to follow oik plugin style.
- Tested: with oik-css activated. Note: oik-css alters the sequence in which content is filtered, deferring wpautop() processing until after shortcode expansion.
- Tested: with WordPress 3.7.1
- Added: code to produce warnings when the pre-requisite version of oik is not activated
- Changed: bbboing is now dependent upon oik version 1.12 or higher
- Changed: bobbing is now dependent upon oik and bbboing
- Fixed: bobbing issued a fatal error if oik was not activated. Function bw_backtrace() was missing.
- initial version. Works with oik version 1.11