Description
This plugin introduces new tag to use in our WordPress documents: <upsidedown>. Any text placed within this tag will be turned 180 degrees and will appear as it has been turned upside down. It will read just fine, but from right to left. Alternatively, you can turn your monitor upside down and read it.
As of release 1.1.0 the plugin also recognises shortcode: [upsidedown]
Using the shortcode is a preferred way of modifying your text, because the shortcode is ignored by the Visual editor and switching back and forth between Visual and HTML editors will not break the formatting. Tags will be depreciated in the future releases.
You might have noticed when quite a few blogs use stokes as if to delete what’s been written before. Do this no more – it’s a thing of the past. Let’s set a new trend by turning the text you want to “hide” upside down.
This looks particularly good when you have a small paragraph reversed. Could be used to type in some nasty details in otherwise “proper” post.
Also if your post raises some question you could use this to provide the answers, but turned upside down.
This does not involve any image manipulation and achieved by replacing characters with corresponding Unicode characters that look like a mirror image of the “normal” symbols.
Please note that ALL character within these tags will be converted, so you will loose any other HTML tags. Also please note that switching between visual and HTML editor will remove <upsidedown> tags (text in between will not be lost though). So create your post, save it, switch to HTML editor, add tags where necessary, save and publish without switching back to visual editor.
If you want to know more about the development of this plugin, check out this post.
Installation
1. Upload and unpack upside-down-text.zip to `/wp-content/plugins/` directory
2. Activate the plugin through the ‘Plugins’ menu in WordPress
3. Enclose any text in your posts with tags to display it upside down.
Frequently Asked Questions
Can I use formatting HTML tags within tags?
No, all formatting text will be lost. You can use formatting outside, in which case your flipped text will appear with formatting applied to it.
Why some symbols are not displayed correctly?
Well, that’s a question to browser developers, I think. Unicode character support is bit flakey in some of them, and not all characters are rendered properly. It also seems to be position and neighbouring characters related too. So far I’ve noticed issues with letter ‘p’, so just try to rephrase your sentences and experiment to get the best result.
Screenshots

Text as it appears turned upside-down in WordPress posts.
Download
You can download the latest version from here.
Looks like you can have similar on the bike wheels
Haha try convincing airport security: “hey this is just a camera!”
truly point-and-shoot…
it is old news, but the car still looks dogs
nice post, thanks! I’ve never used generic views before – kept on writing my own, but I guess I need to try.
Thanks anyway, Jan
So the generic view can only display items from the same model, or can I pass another model to the template? Let’s say I want to display list of ingredients for a dish, but I also want to have a list of related recipes listed along? If that makes sense?
of course you can. add ‘extra_context’ entry to the dictionary and include as many as you like.
Your classes:
Your ‘queryset’ dictionary:
Hope this helps
it’s also worth mentioning that with create_update functions you can set ‘login_required’ to True. if you do that, Django will only allows these URLs for people that are logged in.
You also need to change the corresponding link id in link category, because it will still be referencing the old ID. If you don’t want to mess with DB, remove the link before you make this ID change, then re-add it again.
http://www.grenadepod.com/wp-content/uploads/2009/11/AP_103444.jpg is the killer
yeah that’s a good one, like the face expression – whatcha lookin’ at?…
Your approach is spot on. You may run into some issues after a while if your list of IP addresses becomes long. You may want to use the excellent jQuery Timers plugin to manage the ping operations via jQuery/AJAX. It’s the closest thing to threading in JavaScript.
Nizam, cheers for pointing out this plugin, I’ll have a read a bout it.
You mentioned that long lists might cause issues, is that because all requests will be processed in parallel? In which case using this plugin I could process them in streams, ie 10-20 at a time only, and then next batch, or something along those lines?
This is a really lame idea, my friend. I can’t understand why anyone would want to use this plug in. And WP has it listed as “most popular” (with 32 downloads).
Am I missing something?
This post needs some upside-down sentences, just to spice things up. Don’t you think? I mean what the hell, no one’s reading it anyway…
haha, i know, i know!
truth is, i was testing how well amazon localisation plugin works, so i had to write something, can’t just put some links and leave them. so now i have two links and a post…
and the lesson i learned was – some codes are country specific. which is a bugger, because the plugin would replace amazon url, and the local amazon shop would simply not have the product… for example dvd is not available in uk.
yes you are. on the internets “lame” usually means “popular”. must have learned it by now…
Bob, TBH, if you don’t like it – don’t use it. I find it quite amusing.
Nice write up, thanks for that!
Just wanted to say that your selection of front page pictures for articles is spot on!
thanks!
Frankly, I think it’s easy enough to copy/paste for those few times where you’ll want upside down text in your blog post. For most people I don’t think this makes much sense in a plugin, because it’s a feature you’ll only occasionally use. I think for those one or two maybe blog posts that you’d like partially upside down you could use a site like Flip Text Upside Down
were they actually allowed to wear stockings? i mean, statics and stuff?
Ahh, I know you’d wish to take them off, wouldn’t you?
I wish there were as many IT females these days. I think all the windows stuff puts them off – they seem to like hardcore stuff.
Cigarettes?! In the server room??!!
Thats some cool collection of very useful plugins buddy.
Thanks and keep up the good work.
I have included may of the above in my site.
Hey!
The link is http://chromeos-blog.com/download-chrome-os-usb-drive/ . At least I promise I didn’t change the code at all after downloading it from the repository. The new version seems to support more wireless network controllers than the version from the tarball that you describe.
Thanks for linking. I built a USB drive version of Chrome OS yesterday and somehow you can see me as a trusted source…
Bye!
hi, well comment re security is generic, i absolutely did not have anyone in particular in mind…
re recency of the build, there’s always an option to build off the development tree. but i somehow tend to be bit cautious about super fresh builds…
method two:
http://sites.google.com/a/chromium.org/dev/chromium-os/building-chromium-os/getting-the-chromium-os-source-code
Thank you for the nice write up. Have you tried creating an RPM for 2.7 python? Can I use the same instructions?
You also need to install the
bzip2-develpackage along with the other*-develpackages if you want to get the standard Pythonbz2module. There’s no fatal warning about that module being skipped, just a warning message, which it can get buried in the noise.Any change of an update??
more make_local_repo.sh
#!/bin/bash
# This script is no longer needed. This stub is here to avoid immediate
# buildbot breakage and will be removed soon.
exit 0
Eddie, yup seen that one… I’ll be making a new manual soon. Thanks for pointing that out though!
Thanks for the tutorial, I think I’ll apply this to my future projects.
Just blowing some time on Digg and I found your article . Not normally what I like to read about, but it was definitely worth my time. Thanks.
zlib-develis one you might want to include as well. And those without access to therpmdevtoolspackage can usemkdir -p $HOME/rpmbuild/{SOURCES,SPECS,BUILD,SRPMS,RPMS} echo "%_topdir $HOME/rpmbuild" >>$HOME/.rpmmacrosinstead of the
rpmdev-setuptreecommand.It appears the configure/make/make install go okay but the build fails with the following. I can’t find any other errors than this.
+ rm -f mainpkg.files + find /var/tmp/python2.6-2.6.4-root-dkorz/usr/lib64/python2.6/lib-dynload -type f + sed 's|^/var/tmp/python2.6-2.6.4-root-dkorz|/|' + grep -v -e '_tkinter.so$' error: Bad exit status from /var/tmp/rpm-tmp.34472 (%install) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.34472 (%install)Something is not right building on a 64-bit system. lib64/python2.6/lib-dynload is empty; lib/python2.6/lib-dynload has all the .so files. The commands to build mainpkg.files fail due to this. Doing a configure/make/make install results in only {prefix}/lib (no lib64). It seems %{libdirname} is either being set incorrectly or is being used in places it shouldn’t be.
I’m running CentOS 5.4 x86_64 and building Python 2.6.4.
David, you’re right, this only produces 32 bit version. If you need 64 you need to change some build files, so that they point to lib64 instead of lib. I’m working on a patch at the moment, will add it to the page soon, check back in a few days.
What might be required to get the equivalent of make altinstall?
Try this:
http://www.givemebackmygoogle.com/
It appends the following to your google search keywords to filter out a lot of the crap:
-inurl:(kelkoo|bizrate|pixmania|dealtime|pricerunner|dooyoo|pricegrabber|pricewatch|resellerratings|ebay|shopbot|comparestoreprices|ciao|unbeatable|shopping|epinions|nextag|buy|bestwebbuys
Thanks for your post. I am new at development and this will be a big help.
ghgjgjdd444
generic procardia aspirin 100pills medrol 16mg generic purinethol oxytrol lasuna without prescription generic quibron-t azulfidine online buy kamasutra superthin condoms benicar without prescription buy penis extender deluxe girth buy benfotiamine online prosolution 60pills male sexual tonic 1oz buy compazine generic l-glutamine unisom without prescription kytril without prescription midamor online female sexual tonic without prescription generic januvia order beconase aq buy didronel online generic menopause gum generic kick smoking patch
Any progress on the 64 bit version?
wow – great post!
thank you!
Just landed on this place via Google seek. I love it. This situation switch my percept and I am fixing the RSS feeds. Cheers.