I've written a few obfus. I'm not qualified to win any Obfuscation contests, but I still enjoy the thought-process.
To me, an obfu is simply a puzzle; a little doodle combined with a brainteaser.
My Obfus come to me a lot of ways. Sometimes I'll be reading the Perl PODs and think to myself, "I wonder if I can use this to do something tricky..." Other times I'll see something on Perlmonks that grabs my attention and makes me investigate deeper. And other times I'll see something in the real world that motivates me to write an obfu.
In every case, the challenge to me is to take a particular theme, whether it be a little programming trick I've discovered, or a real-world theme I want to play with, and to design something nifty around that theme.
- In Morse Code JAPH I was just starting out with Perl. I thought hashes were pretty cool, slices were even moreso, and as it happens, I had just stumbled across something about Morse Code online. That was the inspiration I needed to start fiddling. The result was as simple as you might expect from a complete novice. But it was a learning opportunity for me.
- In Chomped JAPH I had just read about the fact that chomp has a little known and seldom used return value. I set out to find an unconventional use of that return value.
- In ASCII Art JAPH I had just dug out an old book of mine that contained a BASIC program for outputting ASCII art. That got me thinking that "Just Another Perl Hacker" doesn't have to be plain old boring text.
- In Tortise JAPH I had just read a webpage that reminded me of Logo. I started thinking, I wonder how concisely I could write a little application that reads a Logo-like script and uses it to move an ascii-art-drawing turtle around the screen. My "logo like scripting language" turned out to be similar only in the most basic conceptual sense. But it was fun to implement.
- With The Matrix Reloaded: JAPH I had just seen a movie and started thinking of how to "do that".
There are about 30 others of mine that you can find with Super Search if you're interested. Some are better than others. None are at pure and clever as some of the "award winners", but they all started with some sort of an epiphany in my mind where I said to myself, "What if...?"
Basically they were all opportunities for me to dig into some new concept and explore it a little deeper. Some say you don't learn anything from an Obfu. I disagree. Sure, they don't teach good programming style, but they can be a chance to tinker with and become intimately familiar with a new syntax, construct, or concept.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
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, details, 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, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.