SEO

May 31, 2011

Charlie Parker by Herman Leonard






Jazz

“I’d been getting bored with the stereotyped changes that were being used… and I kept thinking there’s bound to be something else. I could hear it sometimes. I couldn’t play it… I was working over ‘Cherokee,’ and, as I did, I found that by using the higher intervals of a chord as a melody line and backing them with appropriately related changes, I could play the thing I’d been hearing. It came alive.” Charlie Parker












Green

lucky miles waits to come in on bird
Clipped for points, dad!
bird love tomato

Jazz



Charlie Parker performing “Cherokee” at Clark Monroe’s Uptown House, New York, early 1942
“I’d been getting bored with the stereotyped changes that were being used… and I kept thinking there’s bound to be something else. I could hear it sometimes. I couldn’t play it… I was working over ‘Cherokee,’ and, as I did, I found that by using the higher intervals of a chord as a melody line and backing them with appropriately related changes, I could play the thing I’d been hearing. It came alive.” — Charlie Parker






standard Bird
clipped four points
Clipped
Tomato
  tomato comes from the Spanish word, tomate, derived from the Nahuatl (Aztec language) word tomatl.

W3C Emotion Incubator afraid "Do I have to go to the dentist?"

A2.7.1.7 Emotion intensity

Intensity can be based on numeric values (0-100), or low-medium-high categories.

<afraid intensity="50"> Do I have to go to the dentist? </afraid>
via w3.org

A2.7.1.7 Emotion intensity

Intensity can be based on numeric values (0-100), or low-medium-high categories.

A2.7.1.7 Emotion intensity Intensity can be based on numeric values (0-100), or low-medium-high categories. Do I have to go to the dentist? via w3.org A2.7.1.7 Emotion intensity Intensity can be based on numeric values (0-100), or low-medium-high categories. ...»See Ya

bernie

female

Media_httpwwwvhmlorge_adric

All-Naked Female Japanese Orchestra
MOTORHEAD HEADGIRL (FEMALE MOTORHEAD DISCOVERY)

via vhml.org All-Naked Female Japanese Orchestra MOTORHEAD HEADGIRL (FEMALE MOTORHEAD DISCOVERY) ...»See Ya

mongolianpicker

tones

Weirdest CSS #3 'Night Vision' Style Fantasai

Appendix B: Night Vision Style Set Tags

The following style tags are defined by this appendix:

day
This style set provides a color scheme suited for daytime use (light background, dark text). This tag is mutually exclusive with night.
night
This style set provides a color scheme suited for nighttime use (dark background, light text). This tag is mutually exclusive with day.

In the following example, the author provides style sheets for both both day vision and night vision presentations of the document. Both horizontal-text and vertical-text presentations are available, but the horizontal presentation is preferred:

<link rel="alternate stylesheet" href="vertical.css" class="vertical" title="Vertical Day"/> <link rel="alternate stylesheet" href="day.css"      class="day"      title="Vertical Day"/> <link rel="alternate stylesheet" href="vertical.css" class="vertical" title="Vertical Night"/> <link rel="alternate stylesheet" href="night.css"    class="night"    title="Vertical Night"/> <link rel="stylesheet" href="horizontal.css" class="horizontal" title="Horizontal Day"/> <link rel="stylesheet" href="day.css"        class="day"        title="Horizontal Day"/> <link rel="stylesheet" href="horizontal.css" class="horizontal" title="Horizontal Night"/> <link rel="stylesheet" href="night.css"      class="night"      title="Horizontal Night"/>

Of the preferred style sets, the day vision variant is listed first, and so in the absence of other preferences will be loaded by default.

The same effect can be created with fewer link tags by using @import statements: <link rel="alternate stylesheet" href="vertical-day.css" class="vertical day" title="Vertical Day"/> <link rel="alternate stylesheet" href="vertical-night.css" class="vertical night" title="Vertical Night"/> <link rel="stylesheet" href="horizontal-day.css" class="horizontal day" title="Horizontal Day"/> <link rel="stylesheet" href="horizontal-night.css" class="horizontal night" title="Horizontal Night"/>

/* vertical-day.css */ @import "vertical.css"; @import "day.css";
/* vertical-night.css */ @import "vertical.css"; @import "night.css";
/* horizontal-day.css */ @import "horizontal.css"; @import "day.css";
/* horizontal-night.css */ @import "horizontal.css"; @import "night.css";

Acknowledgements

This draft resulted from discussion in the CSS Working Group and EPUB Working Group and would not exist without the particular suggestion of Anne van Kesteren.

References

[HTML4]
David Raggett; Ian Jacobs; Arnaud Le Hors. HTML 4.01 Specification. 24 December 1999. W3C Recommendation. URL: http://www.w3.org/TR/1999/REC-html401-19991224
[HTML5]
Ian Hickson. HTML Specification. W3C Working Draft. URL: http://www.w3.org/TR/html5

Appendix B: Night Vision Style Set Tags The following style tags are defined by this appendix: day This style set provides a color scheme suited for daytime use (light background, dark text). This tag is mutually exclusive with night . night This style set provides a color scheme suited for nighttim ...»See Ya

vertical-bouten

Degauss

Degauss

Ever wonder what that "degauss" button on your monitor does besides make a buzzing noise and cause the screen to go crazy for a second? Though that's its main purpose, the degauss button has another useful feature. To understand it, you'll first need to know that the earth has natural magnetic fields. The magnetic charges from these fields can build up inside your monitor, causing a loss of color accuracy. Degaussing scares the bad magnetism out of the monitor and fills it with good karma. If your monitor doesn't have a degauss button, fear not -- many new monitors automatically degauss themselves. If you have a flat-panel display, there is no degauss button because magnetism doesn't build up in flat screen displays.

Degauss Ever wonder what that "degauss" button on your monitor does besides make a buzzing noise and cause the screen to go crazy for a second? Though that's its main purpose, the degauss button has another useful feature. To understand it, you'll first need to know that the earth has natural magnet ...»See Ya

My Computer Mom's New Job

I confess to whomever may read this: I am blogging not for the sake of writing, or because I am driven to express some urgent opinion or news. I started this blog so that I can experience blogging itself. I’m a technical writer working again after a four-year hiatus, for Flock, a Web 2.0 company. If I’m going to write Help information for Flock’s users, I’ve got to understand their world, which includes blogging. So here I am.

After giving it some thought I realized that the subject for my blogging would not be politics, or culture, or every day life. No, the obvious topic for me is what it’s like to re-enter the world of beta software and new tools and daily builds. Especially given that I’m rapidly approaching fogey-status, as a 51-year-old mom who first held a computer-related job over 35 years ago.

My lineage is Apple, Netscape/Mozilla, and Eazel. This represents a clear path leading to Flock. But I think choosing to work within the open source community requires something more: a come-to-Jesus moment, when one realizes that the best way for a tech writer to combat evil and support the good is to work with companies building on open source. As an ex-hippy flower child sort of person, I want any work I do in the world to support people of good will, not empire builders and greed-motivated monopolies. But enough of my politics.

My first job in computing was as a high school junior. I was given a security clearance and a stack of questionnaires containing personal data for hundreds of Coast Guard cadets. My company was trying to help the Coast Guard understand which cadets would quit after a short stint, and which ones would stay on. My job was to take data from the questionnaires and record it on giant code sheets, which would then go to keypunch operators. The resulting punched cards could be batch processed and statistically analyzed by an IBM mainframe. I don’t know if the answer was ever found. But four years ago when everyone was raving about “hanging chads,” I knew exactly what that meant.

The best part of that job was those huge code sheets, which had the words “FORmula TRANslation” printed at the top. Also, “FORTRAN Statement.” What wonderful words! Between that and the security clearance, I felt like I was involved in some sort of arcane secret society. I didn’t resemble the rest of the company, though. While everyone else came to work in white shirts and dark neckties, I wore sandals, long skirts, beads, and the standard hippy girl long straight hair.

I attended college at Wheaton College — not the evangelical school, but a small women’s school by the same name, located in in Norton Massachusetts. It was a great place for an incipient feminist to attend college. Wheaton was too small to have its own computer, but we had time-sharing with Dartmouth. Our time to use Dartmouth’s computer always seemed to be in the wee hours of the morning. I was one of students and faculty who took advantage of this resource. I don’t recall what I did — but I suspect it had less to do with work and more to do with figuring out the computer itself. Games? Poking around? I can’t remember, but I probably did both.

Graduate school at Yale, in political science, brought me back to batch processing and punched cards. Woe to she who dropped a stack of cards! My most vivid memory is of offering up my stack of cards, including data cards and instructions for the statistical analysis to be performed, to the card reader. If you received back a thick stack of printout, you won. (If the stack was thin, you lost — the error statements were short.) The computer itself lived behind closed doors, serviced by quiet, nerdish technical people. In another room, behind large glass windows, sat the select group authorized to use the interactive terminals that talked directly to the computer. Later, as acting director of a data analysis center at the University of Vermont, I found out that the interactive users were simply entering lines of code that looked just like the data on punched cards.

It was at Stanford University that I actually became hooked. As a research assistant for the Hoover Institution’s house Democrat (political scientist Heinz Eulau), I became one of the first users of the Hoover’s brand new computers. The Hoover was late in coming to computers, but someone donated two: a PDP-11 and a VAX. With my fellow research assistant and best friend Nancy, I devoted many hours to exploring these state-of-the-art machines via the text-based game “dungeon.” No graphics, no sound… just lines of text, such as “You have entered a dark cave. There is a jeweled box in the corner.” (One must type in a reply; in this example “take box” is the obvious response.)

Soon, however, I was recruited into writing small manuals for each Hoover department that wanted to use the computers. Someone pointed out that I could be paid good money for end-user technical writing. So just as I was beginning to realize that I hated political science and could study it no longer, an alternative career presented itself.

I convinced the technical writing department at Four Phase, a company later bought out and closed down by Motorola, to hire me as an entry-level writer. The publications group was large — we had a lot to write about, since the software was hard to use — and we worked in a set of astoundingly ugly pre-fab offices on the site that later became Apple’s campus. In 1985 I left Four Phase for maternity leave, never to return. Four Phase went out of business, and I was laid off while on leave.

It was around that time that Nancy and I decided, in conversation over lunch at Chef Chu’s in Mountain View, that we needed to buy personal computers. I remember we agreed that PCs had been around long enough that most of the bugs had probably been worked out. I purchased an 8088-based computer with no hard disk. A few months later I installed my first drive, and set myself up with a word processor so I could work as a consultant. Eventually I worked on a technical glossary for Apple’s corporate library, met some of the staff writers at Apple, and after a few more years of consulting, became a regular Apple employee.

Before Apple, I had worked strictly on a command line basis. I scorned menus. Why bother working one’s way through a menu hierarchy, when it was so much faster just to enter commands on one line? (I could touch type, too.) But the Apple computer I used for the library’s project had a mouse attached to it. Suddenly the point of the graphical user interface became clear. I tried an early version of Windows on my own computer (by then a 286-based one). Apple’s version was so much better — smiley icons, cute noises, etc. — that I became a faithful Apple user, as I am to this day.

At Apple I authored many Mac manuals, graduating over time to senior and principal writer. I worked on the first generation of Power Macs, and on the first implementation of Apple’s online Help system (Apple Guide). But the romance of the browser wars — or perhaps it was masochism — enticed me to move to Netscape. Sadly, at Netscape I became mired in Netscape 6. I keep my Netscape 6 tee shirt deeply buried in my dresser drawer, but I still proudly display my Mozilla memorabilia.

Mozilla taught me about the concept and mission of open source, giving me new hope that creativity would triumph over commercialism. At the end of the year 2000, I eagerly moved on to a position at Eazel, a startup company developing an easier user interface for Linux. Six weeks later, as the economy began its long slide, I was laid off.

I admit: I figured that with the economy headed down the toilet, open source would die out and Microsoft would win. September ushered in a new era of bleakness and despair. I decided to retire permanently to spend my time gardening, quilting, and being a mom. I retreated. I made a lot of quilts. My daughters became adults. My husband continued to work, much too hard. Four years passed.

Eli Goldberg, an old friend from Netscape and Eazel, finally suggested that I take a look at Flock. Bart Decrem called me, and I wandered over to Flock’s headquarters. It didn’t take long to fall for the garage filled with computers, beanbag pillows, and white boards. I discovered that the help text I’d written for Mozilla hadn’t changed much in four years. Perhaps no one’s working on it anymore. The possibility of doing a little something to help along a noble project, and lots of coffee, have drawn me out of my retirement.

So that’s how I came to Flock, to work once again on the open source browser. It all makes sense now that I read over this saga — I can’t resist a chance to work on something that challenges that looming force in Seattle. I’m pretty confident — actually, I’m VERY confident — that Microsoft can’t dominate the Web 2.0. It simply isn’t cool enough. That, and the fact that I can walk from my house over to Flock, and the presence at Flock of many great people and one very sweet dog, makes me feel ready to work one last time on the rough edge of the software industry.

But after this, I’m retiring for good.

I confess to whomever may read this: I am blogging not for the sake of writing, or because I am driven to express some urgent opinion or news. I started this blog so that I can experience blogging itself. I’m a technical writer working again after a four-year hiatus, for Flock, a Web 2.0 company. If ...»See Ya

Programming Shakespeare

Introduction

Late at night sometime in Februari, Kalle Hasselström and Jon Åslund (that is us, we, the authors) were sitting with a programming assignment due for demonstration at nine the following morning. It was assignment number four in our Syntax Analysis course and we were pretty tired with it. The last assignment, on the other hand, seemed like much more fun, because you were allowed to do pretty much whatever you wanted as long as it involved lexical and syntactical analysis. So instead of finishing the fourth assignment, we started making up some great ideas for the fifth, the kind you only conceive of when you really should be asleep.

A few weeks earlier we had discovered a number of truly fascinating programming languages, such as Java2k1, Sorted!2, Brainfuck3 and Malbolge4, and we wanted to make our own. We have no idea why, but that night we were also thinking about Shakespeare in general, and Shakespearian insults in particular and three hours later we had come up with this amazing idea: the Shakespeare Programming Language, SPL.

This is the documentation of the language and how we made it.

Design Goals

The design goal was to make a language with beautiful source code that resembled Shakespeare plays. There are no fancy data or control structures, just basic arithmetic and gotos. You could say we have combined the expressiveness of BASIC with the user-friendliness of assembly language.

The course was about syntactic analysis, not compiler construction. Thus, we didn't make an SPL compiler, just an SPL to C converter. This proved to be fairly simple, since SPL can be translated directly to C, one statement at a time.

Hello World!

Since we don't want to break with ancient tradition, let's begin with a simple example: a Hello World program. Though it might seem otherwise, the sole purpose of this program is to print the string ``Hello World!''. It resides in the file hello.spl, and also in appendix [*]. If you want to run it yourself, consult section [*].

Let's dissect the program and see how it works.

Title

The first line of every SPL program is the title. Or actually, everything up until the first period is the title, whether it's one line, three lines, or half a line. You're generally free to insert space and newlines wherever you want in the code, but we urge you to please indent tastefully.

The title serves only aesthetic purposes. From the parser's point of view, it's a comment.

Dramatis Personæ

The next few lines are a list of all characters in the play. Think of them as variables, capable of holding a signed integer value. You must declare every character you intend to use, or the program won't compile.

A declaration consists of a name, followed by a description of the character (which is ignored by the parser). You can't pick just any name, however; you must use a real Shakespeare character name, such as Romeo, Juliet, or the Ghost (Hamlet's deceased father).

Acts and Scenes

The purpose of acts and scenes is to divide the play into smaller parts. A play consists of one or more acts, each act consists of one or more scenes, and each scene consists of lines (where the characters say something) and enter and exit statements, which cause characters to get on and off the stage.

Acts and scenes are numbered with roman numerals. They begin with the word ``Act'' or ``Scene'', then the number, and then a description of what happens in that act or scene. Just as with the title and the character descriptions, these descriptions are ignored by the parser.

Besides being beautiful and descriptive, acts and scenes also serve as labels, which can be jumped to using goto statements. There are no gotos in the Hello World program, however, so we'll talk about that later.

Enter, Exit and Exeunt

To be able to speak their lines, characters must be on stage. The character they address as ``you'' (or ``thou'' or any other second-person pronoun) must also be on stage. But if there is yet another character on stage, it's not clear which one is intended. This is frowned upon by the parser.

Enter Enter and Exit5. These directives cause characters to get on and off stage. ``Enter'' is followed by a list of one or more characters. ``Exit'' is followed by exactly one character. The plural of Exit is ``Exeunt'', which is followed by a list of at least two characters - or none, in which case everyone leaves.

An Enter directive given to a character already on stage, or the other way around, will cause a runtime error.

Lines

A line consists of the name of a character, a colon, and one or more sentences. In the Hello World program, only two kinds of sentences are used: output, which causes output to the screen, and statements, which cause the second person to assume a certain value.

Constants

First, we'll explain how constants (that is, constant numbers, such as 17 and 4711) are expressed.

Any noun is a constant with the value 1 or $-1$, depending on whether it's nice or not. For example, ``flower'' has the value 1 because flowers are nice, but ``pig'' has the value $-1$ because pigs are dirty (which doesn't prevent most people from eating them). Neutral nouns, such as ``tree'', count as 1 as well.

By prefixing a noun with an adjective, you multiply it by two. Another adjective, and it is multiplied by two again, and so on. That way, you can easily construct any power of two or its negation. From there, it's easy to construct arbitrary integers using basic arithmetic, such as ``the sum of $X$ and $Y$'', where $X$ and $Y$ are themselves arbitrary integers.

For example, ``the difference between the square of the difference between my little pony and your big hairy hound and the cube of your sorry little codpiece''. Substituting the simple constants with numbers, we get ``the difference between the square of the difference between 2 and 4 and the cube of -4''. Now, since the difference between 2 and 4 is $2 - 4 = -2$, and the cube of $-4$ is $(-4)^3 =  -64$, this is equal to ``the difference between the square of $-2$ and $-64$''. The square of $-2$ is $(-2)^2 = 4$, and the difference of 4 and $-64$ is 60. Thus, ``the difference between the square of the difference between my little pony and your big hairy hound and the cube of your sorry little codpiece'' means 60.

As you see, this way of writing constants gives you much more poetic freedom than in other programming languages.

Assignment of Values

Now, how do we use those numbers? Well, just have a look at the two statements ``You lying stupid fatherless big smelly half-witted coward!'' and ``You are as stupid as the difference between a handsome rich brave hero and thyself!''

The first one is simple: A second person pronoun, followed by a number. The effect of this statement is to assign the value of that number (in this case, $-64$) to the character being spoken to. Think ``$X=-64$''.

The second one is slightly more complicated. For starters, what is the value of ``thyself''? That's not a noun, that's a reflexive pronoun. It's value is the current value of the character being spoken to. So the number in the second statement is $8 - X$, where $X$ is the value of the character being spoken to. And just as you might expect from your experience with English, the second statement is just another assignment. Think ``$X$ = 8 - $X$''. Being ``as bas as'', ``as good as'', or as [any adjective] as something else, means being equal to that something.

Output

The other kind of sentence used in the Hello World program is output. There are two different output sentences, ``Open your heart'' and ``Speak your mind''. The first causes the character being spoken to to output her or his value in numerical form, and the other, being more literal, outputs the corresponding letter, digit, or other character, according to the character set being used by your computer.

In this program, we use only the second form. The whole program is a long sequence of constructing a number, writing the corresponding character, constructing the next number, writing the corresponding character, and so on.

A Slightly Less Trivial Example

Now for a slightly less trivial example: computing prime numbers. In the file primes.spl, and in appendix [*], is a program that asks the user for a number, then prints all primes less than or equal to that number.

There are three things in this program that we havn't seen before: input, gotos, and conditional statements.

Input

The input statements work just like the output statements, except that they read instead of write. To read a number, as in this program, use the sentence ``Listen to your heart.'' To read a character, use ``Open your mind.'' The value will be assigned to the character being spoken to, as usual.

Gotos

A sentence like ``Let us return to scene III'' means simply ``goto scene III''. Instead of ``let us'', you may use ``we shall'' or ``we must'', and instead of ``return to'', you may use ``proceed to''. If you specify a scene, it refers to that scene in the current act. There is no way to refer to a specific scene in another act - you have to settle for jumping to the act itself.

Conditional statements

Conditional statements come in two easy steps, as illustrated by the following code fragment:

Juliet: Am I better than you?  Hamlet: If so, let us proceed to scene III.

First, someone voices a question. This is some sort of comparison, which will be either true or false. But more on that later.

Then comes, at some later point, a conditional statement. This is constructed by putting either ``if so'' (or ``if not'') and a comma in front of any sentence - that sentence is only executed if the answer to the last question was yes (or no).

This is pretty much like how you would do conditional jumps and things in many assembly languages.

Comparisons

Comparisons are constructed the way you would expect: ``is $X$ as good as $Y$'' tests for equality, with $X$ and $Y$ being arbitrary values. You may substitute ``good'' with any adjective. ``is $X$ better than $Y$'' tests if $X > Y$. This works for any positive comparative. If you want to test whether $X < Y$, use a negative comparative, such as ``worse''.

If you want to invert the test, say ``not as good as'' or ``not better than''.

A Slightly Less Trivial Example

One might almost say that the language described this far ought to be able to do anything that can be done with other programming languages, albeit more flowery, were it not for the fact that the storage capacity is severely limited. There are only so many Shakespeare characters (some one hundred of them are recognized by the parser), and each of them can only store an integer of finite size. Thus the storage capacity is finite, and it follows that SPL can only handle problems of finite size.

Realizing this, we added stacks to the language. We'll describe them in just a minute; but first, have a look at how they can be used. The program in the file reverse.spl - which can also be found in appendix [*] - reads any number of characters, and then spits them out again in reverse order.

Stacks

Characters in the Shakespeare Programming Language are not simple-minded, limited to remember just one number. Like normal people, they can actually remember several. In accord with modern, highly experimental psychological research, this is implemented with stacks.

Every character can push integers onto their memory, and pop them out again at a later time. Pushing is done like this:

Lady Macbeth: Remember me.

This of course causes whoever Lady Macbeth is speaking to to push the value of Lady Macbeth onto his or her stack. Popping is even simpler:

Lady Macbeth: Recall your imminent death!

The only significant word here is ``recall''; everything that follows is artistic fluff. This piece of code causes whoever Lady Macbeth is speaking to to pop an integer from his or her stack and assume that value for him- or herself.

Trying to pop when the stack is empty is a sure sign that the author has not yet perfected her storytelling skills, and will severly disappoint the runtime system.


How To Compile Your SPL Program

There is no SPL compiler. We do encourage you to write one, but at present there is only a translator, which translates SPL to C. The C file is then compiled and linked the usual way.

Figure: Flow chart of how SPL programs are compiled.
\includegraphics[width=1.0\textwidth]{makehello.eps}

The entire process is visualized in figure [*]. There are two things to note. First, spl2c reads from stdin and writes to stdout, so to accomplish what you see in the figure, you would write spl2c < hello.spl > hello.c. Second, the object file must be linked with the library libspl.a, which contains such stuff as dreams are made on.

How We Compiled the SPL Translator

The SPL to C translator was built using Flex6 and Bison7. Flex creates a lexical analyzer, which eats source code and spits out tokens. Bison creates a parser that builds a parse tree out of these tokens, whereupon it is converted to C code.

We did not write the lexical analyzer specification by hand, since it contains a large number of very simple, very similar statements. Instead, we wrote a small program to do it for us.

The lexical analyzer and the parser are linked into the same executable, along with some string manipulation utilities that the parser uses a lot.

Last, we also build a library containing all the functions used in the C files generated by the translator.

Figure: Flow chart of how the SPL translator is compiled.
\includegraphics[width=1.0\textwidth]{makespl.eps}

Figure [*] depicts the build process. makescanner is the program that creates the lexical analyzer specification (scanner.l). It reads a number of word list files, which list all SPL certified nouns, adjectives, character names, and so on.

Examples


Hello World!

(This is the contents of the file hello.spl.)


The Infamous Hello World Program.  Romeo, a young man with a remarkable patience. Juliet, a likewise young woman of remarkable grace. Ophelia, a remarkable woman much in dispute with Hamlet. Hamlet, the flatterer of Andersen Insulting A/S.   Act I: Hamlet's insults and flattery.  Scene I: The insulting of Romeo.  [Enter Hamlet and Romeo]  Hamlet: You lying stupid fatherless big smelly half-witted coward! You are as stupid as the difference between a handsome rich brave hero and thyself! Speak your mind!  You are as brave as the sum of your fat little stuffed misused dusty old rotten codpiece and a beautiful fair warm peaceful sunny summer's day. You are as healthy as the difference between the sum of the sweetest reddest rose and my father and yourself! Speak your mind!  You are as cowardly as the sum of yourself and the difference between a big mighty proud kingdom and a horse. Speak your mind.  Speak your mind!  [Exit Romeo]  Scene II: The praising of Juliet.  [Enter Juliet]  Hamlet: Thou art as sweet as the sum of the sum of Romeo and his horse and his black cat! Speak thy mind!  [Exit Juliet]  Scene III: The praising of Ophelia.  [Enter Ophelia]  Hamlet: Thou art as lovely as the product of a large rural town and my amazing bottomless embroidered purse. Speak thy mind!  Thou art as loving as the product of the bluest clearest sweetest sky and the sum of a squirrel and a white horse. Thou art as beautiful as the difference between Juliet and thyself. Speak thy mind!  [Exeunt Ophelia and Hamlet]   Act II: Behind Hamlet's back.  Scene I: Romeo and Juliet's conversation.  [Enter Romeo and Juliet]  Romeo: Speak your mind. You are as worried as the sum of yourself and the difference between my small smooth hamster and my nose. Speak your mind!  Juliet: Speak YOUR mind! You are as bad as Hamlet! You are as small as the difference between the square of the difference between my little pony and your big hairy hound and the cube of your sorry little codpiece. Speak your mind!  [Exit Romeo]  Scene II: Juliet and Ophelia's conversation.  [Enter Ophelia]  Juliet: Thou art as good as the quotient between Romeo and the sum of a small furry animal and a leech. Speak your mind!  Ophelia: Thou art as disgusting as the quotient between Romeo and twice the difference between a mistletoe and an oozing infected blister! Speak your mind!  [Exeunt]


Primes

(This is the contents of the file primes.spl.)


Prime Number Computation in Copenhagen.  Romeo, a young man of Verona. Juliet, a young woman. Hamlet, a temporary variable from Denmark. The Ghost, a limiting factor (and by a remarkable coincidence also Hamlet's father).   Act I: Interview with the other side.  Scene I: At the last hour before dawn.  [Enter the Ghost and Juliet]  The Ghost: You pretty little warm thing! Thou art as prompt as the difference between the square of thyself and your golden hair. Speak your mind.  Juliet: Listen to your heart!  [Exit the Ghost]  [Enter Romeo]  Juliet: Thou art as sweet as a sunny summer's day!   Act II: Determining divisibility.  Scene I: A private conversation.  Juliet: Art thou more cunning than the Ghost?  Romeo: If so, let us proceed to scene V.  [Exit Romeo]  [Enter Hamlet]  Juliet: You are as villainous as the square root of Romeo!  Hamlet: You are as lovely as a red rose.  Scene II: Questions and the consequences thereof.  Juliet: Am I better than you?  Hamlet: If so, let us proceed to scene III.  Juliet: Is the remainder of the quotient between Romeo and me as good as nothing?  Hamlet: If so, let us proceed to scene IV. Thou art as bold as the sum of thyself and a roman.  Juliet: Let us return to scene II.  Scene III: Romeo must die!  [Exit Hamlet]  [Enter Romeo]  Juliet: Open your heart.  [Exit Juliet]  [Enter Hamlet]  Romeo: Thou art as rotten as the difference between nothing and the sum of a snotty stinking half-witted hog and a small toad! Speak your mind!  [Exit Romeo]  [Enter Juliet]  Scene IV: One small dog at a time.  [Exit Hamlet]  [Enter Romeo]  Juliet: Thou art as handsome as the sum of thyself and my chihuahua! Let us return to scene I.  Scene V: Fin.  [Exeunt]


Reverse

(This is the contents of the file reverse.spl.)


Outputting Input Reversedly.  Othello, a stacky man. Lady Macbeth, who pushes him around till he pops.   Act I: The one and only.  Scene I: In the beginning, there was nothing.  [Enter Othello and Lady Macbeth]  Othello: You are nothing!  Scene II: Pushing to the very end.  Lady Macbeth: Open your mind! Remember yourself.  Othello: You are as hard as the sum of yourself and a stone wall. Am I as horrid as a flirt-gill?  Lady Macbeth: If not, let us return to scene II. Recall your imminent death!  Othello: You are as small as the difference between yourself and a hair!  Scene III: Once you pop, you can't stop!  Lady Macbeth: Recall your unhappy childhood. Speak your mind!  Othello: You are as vile as the sum of yourself and a toad! Are you better than nothing?  Lady Macbeth: If so, let us return to scene III.  Scene IV: The end.  [Exeunt]

Introduction Late at night sometime in Februari, Kalle Hasselström and Jon Ã…slund (that is us, we, the authors) were sitting with a programming assignment due for demonstration at nine the following morning. It was assignment number four in our Syntax Analysis course and we were pretty tired with it ...»See Ya

MORE *W3Comedy HTMLaughs with CSStyle!

Doron's Words of Wisdom ----------------------- * WeirdAl sighs < WeirdAl> I'm writing an article for DevEdge on DOM 2 Traversal, and I'm at the hardest part of the article: the introduction < doron> WeirdAl: I usually skip that section < doron> and wait to get drunk < doron> before writing it < WeirdAl> doron: ha! Seriously, the introduction is the ice-breaker for me. Once I write that, the rest comes naturally < doron> if you can explain the article to your drunken self, then it will make sense to anyone < WeirdAl> besides, I don't have a drunken self -- I don't drink ;) < doron> then get a girl drunk and explain it to her < doron> or an intern, if you have no choice -------------------------------------------------- the rest - 19:48 < timeless> heh 19:48 * WeirdAl can't come up with a good reply to that one 19:49 -!- Tukon [Tukon@adsl-64-161-202-27.dsl.snfc21.pacbell.net] has joined #mozilla 19:49 < bz> yeah 19:49 < bz> get sicking drunk 19:49 < WeirdAl> :p 19:49 < bz> and then explain DOM traversal to him 19:49 < bz> that's a good approach 19:49 < bz> if sicking can get it, surely anyone can 19:49 < doron> he will reply "use xslt" 19:49 < bz> heh 19:49 < doron> or xpath 19:50 < doron> had they only called it xtraversal...

MORE *W3Comedy HTMLaughs with CSStyle!
*WWW Consortium

Doron's Words of Wisdom ----------------------- * WeirdAl sighs < WeirdAl> I'm writing an article for DevEdge on DOM 2 Traversal, and I'm at the hardest part of the article: the introduction < doron> WeirdAl: I usually skip that section < doron> and wait to get drunk < doron> before writing it < Wei ...»See Ya

Eric Meyer CSS SelectORacle Roundup of the Day

Translations

Selector 1: *

Selects any element.

Selector 2: body

Selects any body element.

Selector 3: h1, h1 *:link, h1 *:visited, h1 *:link:hover, h1 *:link:focus, h2 *:link, h2 *:visited, h2 *:link:hover, h2 *:link:focus

Selects any h1 element or any element whose target has not been visited that is a descendant of a h1 element or any element whose target has been visited that is a descendant of a h1 element or any element whose target has not been visited and which is in a hover state that is a descendant of a h1 element or any element whose target has not been visited and which currently has focus that is a descendant of a h1 element or any element whose target has not been visited that is a descendant of a h2 element or any element whose target has been visited that is a descendant of a h2 element or any element whose target has not been visited and which is in a hover state that is a descendant of a h2 element or any element whose target has not been visited and which currently has focus that is a descendant of a h2 element.

Selector 4: div.section

Selects any div element with a class attribute that contains the word section.

Selector 5: div.section > h2, div.section > h3, div.section > h4, div.section > h5, div.section > h6

Selects any h2 element that is a child of a div element with a class attribute that contains the word section or any h3 element that is a child of a div element with a class attribute that contains the word section or any h4 element that is a child of a div element with a class attribute that contains the word section or any h5 element that is a child of a div element with a class attribute that contains the word section or any h6 element that is a child of a div element with a class attribute that contains the word section.

Selector 6: *.deepLevel *#mainContent *:link img, *.deepLevel *#mainContent *:visited img

Selects any img element that is a descendant of any element whose target has not been visited that is a descendant of any element with an id attribute that equals mainContent that is a descendant of any element with a class attribute that contains the word deepLevel or any img element that is a descendant of any element whose target has been visited that is a descendant of any element with an id attribute that equals mainContent that is a descendant of any element with a class attribute that contains the word deepLevel.

Selector 7: p p

Selects any p element that is a descendant of a p element.

Selector 8: p p p

Selects any p element that is a descendant of a p element that is a descendant of a p element.

Selector 9: ol.toc ol

Selects any ol element that is a descendant of an ol element with a class attribute that contains the word toc.

Selector 10: ol.toc > li > ol

Selects any ol element that is a child of a li element that is a child of an ol element with a class attribute that contains the word toc.

Selector 11: ul.snav

Selects any ul element with a class attribute that contains the word snav.

Selector 12: ul.snav > li

Selects any li element that is a child of an ul element with a class attribute that contains the word snav.

Selector 13: ul.snav > li::before

Selects any content placed before a li element that is a child of an ul element with a class attribute that contains the word snav.

Selector 14: a.cont

Selects any a element with a class attribute that contains the word cont.

Selector 15: blockquote::before

Selects any content placed before a blockquote element.

Selector 16: p::before

Selects any content placed before a p element.

Selector 17: pre.code *.remark

Selects any element with a class attribute that contains the word remark that is a descendant of a pre element with a class attribute that contains the word code.

Selector 18: *.example

Selects any element with a class attribute that contains the word example.

Selector 19: *.example::before

Selects any content placed before any element with a class attribute that contains the word example.

Selector 20: *.example[title]::before

Selects any content placed before any element with a class attribute that contains the word example and a title attribute.

Selector 21: *.important

Selects any element with a class attribute that contains the word important.

Selector 22: *.important::before

Selects any content placed before any element with a class attribute that contains the word important.

Selector 23: div pre

Selects any pre element that is a descendant of a div element.

Selector 24: *.important::after

Selects any content placed after any element with a class attribute that contains the word important.

Selector 25: example[title]::before

Selects any content placed before an example element with a title attribute.

Selector 26: *.screenshot[title]::after, *.figure[title]::after

Selects any content placed after any element with a class attribute that contains the word screenshot and a title attribute or any content placed after any element with a class attribute that contains the word figure and a title attribute.

Selector 27: *.co, *.callout

Selects any element with a class attribute that contains the word co or any element with a class attribute that contains the word callout.

Selector 28: *.handset *.question

Selects any element with a class attribute that contains the word question that is a descendant of any element with a class attribute that contains the word handset.

Selector 29: *.quandary *.answer

Selects any element with a class attribute that contains the word answer that is a descendant of any element with a class attribute that contains the word quandary.

Selector 30: address

Selects any address element.

Selector 31: *.author

Selects any element with a class attribute that contains the word author.

Selector 32: *.copyright

Selects any element with a class attribute that contains the word copyright.

Selector 33: *.footer

Selects any element with a class attribute that contains the word footer.

Selector 34: h3, th

Selects any h3 element or any th element.

Selector 35: h5

Selects any h5 element.

Selector 36: h6

Selects any h6 element.

Selector 37: *.para, ul, ol, div.note, *.example

Selects any element with a class attribute that contains the word para or any ul element or any ol element or any div element with a class attribute that contains the word note or any element with a class attribute that contains the word example.

Selector 38: p.para

Selects any p element with a class attribute that contains the word para.

Selector 39: *.screen *, *.note *, dl, li, li ol, li ul, *.para *

Selects any element that is a descendant of any element with a class attribute that contains the word screen or any element that is a descendant of any element with a class attribute that contains the word note or any dl element or any li element or any ol element that is a descendant of a li element or any ul element that is a descendant of a li element or any element that is a descendant of any element with a class attribute that contains the word para.

Selector 40: dl dl

Selects any dl element that is a descendant of a dl element.

Selector 41: ul, ol

Selects any ul element or any ol element.

Selector 42: li *.example

Selects any element with a class attribute that contains the word example that is a descendant of a li element.

Selector 43: *.float-side

Selects any element with a class attribute that contains the word float-side.

Selector 44: *.figure[title]::after

Selects any content placed after any element with a class attribute that contains the word figure and a title attribute.

Selector 45: *.abstract::before

Selects any content placed before any element with a class attribute that contains the word abstract.

Selector 46: thead th

Selects any th element that is a descendant of a thead element.

Selector 47: th, td

Selects any th element or any td element.

Selector 48: li, div.para > ul, div.para > ol, div.para > blockquote

Selects any li element or any ul element that is a child of a div element with a class attribute that contains the word para or any ol element that is a child of a div element with a class attribute that contains the word para or any blockquote element that is a child of a div element with a class attribute that contains the word para.

Selector 49: *.subtitle, *.ex-ref, *.note, span.application, caption

Selects any element with a class attribute that contains the word subtitle or any element with a class attribute that contains the word ex-ref or any element with a class attribute that contains the word note or any span element with a class attribute that contains the word application or any caption element.

Selector 50: *.first, *#mainContent > *.crumbs:first-child, *#side > *.crumbs:first-child, *.key-point > h1:first-child, *.key-point > h2:first-child, *.key-point > h3:first-child, *.key-point > h4:first-child, *.key-point > h5:first-child, *.key-point > h6:first-child, *#mainContent > h1:first-child, *#mainContent > h2:first-child, *#mainContent > h3:first-child, *#mainContent > h4:first-child, *#mainContent > h5:first-child, *#mainContent > h6:first-child, *#side > h1:first-child, *#side > h2:first-child, *#side > h3:first-child, *#side > h4:first-child, *#side > h5:first-child, *#side > h6:first-child

Selects any element with a class attribute that contains the word first or any element with a class attribute that contains the word crumbs and that is a first child that is a child of any element with an id attribute that equals mainContent or any element with a class attribute that contains the word crumbs and that is a first child that is a child of any element with an id attribute that equals side or any h1 element that is a first child that is a child of any element with a class attribute that contains the word key-point or any h2 element that is a first child that is a child of any element with a class attribute that contains the word key-point or any h3 element that is a first child that is a child of any element with a class attribute that contains the word key-point or any h4 element that is a first child that is a child of any element with a class attribute that contains the word key-point or any h5 element that is a first child that is a child of any element with a class attribute that contains the word key-point or any h6 element that is a first child that is a child of any element with a class attribute that contains the word key-point or any h1 element that is a first child that is a child of any element with an id attribute that equals mainContent or any h2 element that is a first child that is a child of any element with an id attribute that equals mainContent or any h3 element that is a first child that is a child of any element with an id attribute that equals mainContent or any h4 element that is a first child that is a child of any element with an id attribute that equals mainContent or any h5 element that is a first child that is a child of any element with an id attribute that equals mainContent or any h6 element that is a first child that is a child of any element with an id attribute that equals mainContent or any h1 element that is a first child that is a child of any element with an id attribute that equals side or any h2 element that is a first child that is a child of any element with an id attribute that equals side or any h3 element that is a first child that is a child of any element with an id attribute that equals side or any h4 element that is a first child that is a child of any element with an id attribute that equals side or any h5 element that is a first child that is a child of any element with an id attribute that equals side or any h6 element that is a first child that is a child of any element with an id attribute that equals side.

Selector 51: *:link img, *:visited img, *.deepLevel *#mainContent *#buttons *:link img, *.deepLevel *#mainContent *#buttons *:visited img

Selects any img element that is a descendant of any element whose target has not been visited or any img element that is a descendant of any element whose target has been visited or any img element that is a descendant of any element whose target has not been visited that is a descendant of any element with an id attribute that equals buttons that is a descendant of any element with an id attribute that equals mainContent that is a descendant of any element with a class attribute that contains the word deepLevel or any img element that is a descendant of any element whose target has been visited that is a descendant of any element with an id attribute that equals buttons that is a descendant of any element with an id attribute that equals mainContent that is a descendant of any element with a class attribute that contains the word deepLevel.

Selector 52: dl.toc > dd, *.callout

Selects any dd element that is a child of a dl element with a class attribute that contains the word toc or any element with a class attribute that contains the word callout.

Selector 53: blockquote.epigraph em, div.epigraph em, blockquote.epigraph address, div.epigraph cite

Selects any em element that is a descendant of a blockquote element with a class attribute that contains the word epigraph or any em element that is a descendant of a div element with a class attribute that contains the word epigraph or any address element that is a descendant of a blockquote element with a class attribute that contains the word epigraph or any cite element that is a descendant of a div element with a class attribute that contains the word epigraph.

Selector 54: p.c6

Selects any p element with a class attribute that contains the word c6.

Selector 55: blockquote.c4

Selects any blockquote element with a class attribute that contains the word c4.

Selector 56: p.c3

Selects any p element with a class attribute that contains the word c3.

Selector 57: p.c2

Selects any p element with a class attribute that contains the word c2.

Selector 58: div.test

Selects any div element with a class attribute that contains the word test.

Selector 59: div.c4

Selects any div element with a class attribute that contains the word c4.

Selector 60: h1.c2

Selects any h1 element with a class attribute that contains the word c2.

Selector 61: p.c1

Selects any p element with a class attribute that contains the word c1.

Selector 62: h1.c28

Selects any h1 element with a class attribute that contains the word c28.

Selector 63: h3.c27

Selects any h3 element with a class attribute that contains the word c27.

Selector 64: ul.c26

Selects any ul element with a class attribute that contains the word c26.

Selector 65: li.c25

Selects any li element with a class attribute that contains the word c25.

Selector 66: blockquote.c23

Selects any blockquote element with a class attribute that contains the word c23.

Selector 67: table.c21

Selects any table element with a class attribute that contains the word c21.

Selector 68: td.c18

Selects any td element with a class attribute that contains the word c18.

Selector 69: h2.c17

Selects any h2 element with a class attribute that contains the word c17.

Selector 70: p.c14

Selects any p element with a class attribute that contains the word c14.

Selector 71: h1.c13

Selects any h1 element with a class attribute that contains the word c13.

Selector 72: li.c11

Selects any li element with a class attribute that contains the word c11.

Selector 73: p.c8

Selects any p element with a class attribute that contains the word c8.

Selector 74: div.c1

Selects any div element with a class attribute that contains the word c1.

Selector 75: h1, h2, h3, section#tags li.selected a

Selects any h1 element or any h2 element or any h3 element or any a element that is a descendant of a li element with a class attribute that contains the word selected that is a descendant of a section element with an id attribute that equals tags.

Selector 76: div + p, blockquote + p, p:first-child, dl.toc *:first-child

Selects any p element that immediately follows a div element or any p element that immediately follows a blockquote element or any p element that is a first child or any element that is a first child that is a descendant of a dl element with a class attribute that contains the word toc.

Selector 77: *.right, *.float

Selects any element with a class attribute that contains the word right or any element with a class attribute that contains the word float.

Selector 78: div[cite]::before, div ol.toc, address, code, *.remark, pre code, *.remark, blockquote[cite]::before

Selects any content placed before a div element with a cite attribute or any ol element with a class attribute that contains the word toc that is a descendant of a div element or any address element or any code element or any element with a class attribute that contains the word remark or any code element that is a descendant of a pre element or any element with a class attribute that contains the word remark or any content placed before a blockquote element with a cite attribute.

Selector 79: p *:first-child *:before *::before, ul.snav > li:first-child::before, pre.code *.remark::before, pre.code *.remark::after, pre.code *.note::before

Warning: pseudo-element 'before' may only be used at the end of the selector chain on or near line 79:18

Selects any content placed before any element that is a descendant of any element that is a descendant of any element that is a first child that is a descendant of a p element or any content placed before a li element that is a first child that is a child of an ul element with a class attribute that contains the word snav or any content placed before any element with a class attribute that contains the word remark that is a descendant of a pre element with a class attribute that contains the word code or any content placed after any element with a class attribute that contains the word remark that is a descendant of a pre element with a class attribute that contains the word code or any content placed before any element with a class attribute that contains the word note that is a descendant of a pre element with a class attribute that contains the word code.

Selector 80: blockquote > *::before, div * *::before, blockquote > address::before, div.quote cite::before, div.epigraph cite::before

Selects any content placed before any element that is a child of a blockquote element or any content placed before any element that is a descendant of any element that is a descendant of a div element or any content placed before an address element that is a child of a blockquote element or any content placed before a cite element that is a descendant of a div element with a class attribute that contains the word quote or any content placed before a cite element that is a descendant of a div element with a class attribute that contains the word epigraph.

Selector 81: body > ol > li p

Selects any p element that is a descendant of a li element that is a child of an ol element that is a child of a body element.

Selector 82: *:not(a)

Selects any element which is not an a element.

Selector 83: p:not(.section)

Selects any p element without a class attribute that contains the word section.

Selector 84: body > h2:not(:first-of-type):not(:last-of-type)

Selects any h2 element that is not a first child of its type and that is not a last child of its type that is a child of a body element.

Selector 85: ul li:nth-child(2n+3):not(:last-child)

Selects any li element that is an odd numbered child starting with the third child and that is not a last child that is a descendant of an ul element.

Selector 86: ol li:nth-child(-3n+9)

Selects any li element that is one of every three children between the third and the ninth children that is a descendant of an ol element.

Selector 87: ol li:nth-child(7n-3)

Selects any li element that is one of every seven children starting with the fourth child that is a descendant of an ol element.

Selector 88: button:not([DISABLED])

Selects any button element without a DISABLED attribute.

Selector 89: html|*:not(:link)

Selects any element in namespace html whose target has been visited.

Selector 90: html

Selects any html element.

Selector 91: body

Selects any body element.

Selector 92: *.container

Selects any element with a class attribute that contains the word container.

Selector 93: p

Selects any p element.

Selector 94: h3, h4

Selects any h3 element or any h4 element.

Selector 95: h2

Selects any h2 element.

Selector 96: h1

Selects any h1 element.

Selector 97: h5, h6

Selects any h5 element or any h6 element.

Selector 98: p + p

Selects any p element that immediately follows a p element.

Selector 99: h1::first-line

Selects the first displayed line in a h1 element.

Selector 100: h1::first-letter

Selects the first letter of a h1 element.

Selector 101: h1::before

Selects any content placed before a h1 element.

Selector 102: p::first-letter

Selects the first letter of a p element.

Selector 103: p:hover

Selects any p element which is in a hover state.

Selector 104: code

Selects any code element.

Selector 105: header, hgroup, footer, aside, nav, article, section

Selects any header element or any hgroup element or any footer element or any aside element or any nav element or any article element or any section element.

Selector 106: header *.dogmeat-header h1 a

Selects any a element that is a descendant of a h1 element that is a descendant of any element with a class attribute that contains the word dogmeat-header that is a descendant of a header element.

Selector 107: *.header_image

Selects any element with a class attribute that contains the word header_image.

Selector 108: img

Selects any img element.

Selector 109: ul, ol, dl, address, table, pre, fieldset

Selects any ul element or any ol element or any dl element or any address element or any table element or any pre element or any fieldset element.

Selector 110: em, i, var, cite, b, strong

Selects any em element or any i element or any var element or any cite element or any b element or any strong element.

Selector 111: form

Selects any form element.

Selector 112: blockquote

Selects any blockquote element.

Selector 113: h3

Selects any h3 element.

Selector 114: h4

Selects any h4 element.

Selector 115: ul ul, ol ol, ol ul, ul ol

Selects any ul element that is a descendant of an ul element or any ol element that is a descendant of an ol element or any ul element that is a descendant of an ol element or any ol element that is a descendant of an ul element.

Selector 116: *:link:focus

Selects any element whose target has not been visited and which currently has focus.

Selector 117: *:visited:focus

Selects any element whose target has been visited and which currently has focus.

Selector 118: * *:link

Selects any element whose target has not been visited that is a descendant of any element.

Selector 119: * *:visited

Selects any element whose target has been visited that is a descendant of any element.

Selector 120: *:link:hover, *:visited:hover

Selects any element whose target has not been visited and which is in a hover state or any element whose target has been visited and which is in a hover state.

Selector 121: *:link:active

Selects any element whose target has not been visited and which is in a state of activation.

Selector 122: *:visited:active

Selects any element whose target has been visited and which is in a state of activation.

Selector 123: li

Selects any li element.

Selector 124: ul

Selects any ul element.

Selector 125: section#search_results

Selects any section element with an id attribute that equals search_results.

Selector 126: section#search_results h1, section#filed_under h1

Selects any h1 element that is a descendant of a section element with an id attribute that equals search_results or any h1 element that is a descendant of a section element with an id attribute that equals filed_under.

Selector 127: section#search_results li

Selects any li element that is a descendant of a section element with an id attribute that equals search_results.

Selector 128: nav#navigation li

Selects any li element that is a descendant of a nav element with an id attribute that equals navigation.

Selector 129: form.search input.text

Selects any input element with a class attribute that contains the word text that is a descendant of a form element with a class attribute that contains the word search.

Selector 130: aside#sidebar

Selects any aside element with an id attribute that equals sidebar.

Selector 131: aside#sidebar *.column

Selects any element with a class attribute that contains the word column that is a descendant of an aside element with an id attribute that equals sidebar.

Selector 132: aside#sidebar section

Selects any section element that is a descendant of an aside element with an id attribute that equals sidebar.

Selector 133: aside#sidebar section ul li

Selects any li element that is a descendant of an ul element that is a descendant of a section element that is a descendant of an aside element with an id attribute that equals sidebar.

Selector 134: *.profile_image

Selects any element with a class attribute that contains the word profile_image.

Selector 135: *.profile

Selects any element with a class attribute that contains the word profile.

Selector 136: *.external

Selects any element with a class attribute that contains the word external.

Selector 137: *#search

Selects any element with an id attribute that equals search.

Selector 138: section#filed_under

Selects any section element with an id attribute that equals filed_under.

Selector 139: *.back_to_blog

Selects any element with a class attribute that contains the word back_to_blog.

Selector 140: section#contributors li a:first-child

Selects any a element that is a first child that is a descendant of a li element that is a descendant of a section element with an id attribute that equals contributors.

Selector 141: section#contributors li a img

Selects any img element that is a descendant of an a element that is a descendant of a li element that is a descendant of a section element with an id attribute that equals contributors.

Selector 142: section#rss

Selects any section element with an id attribute that equals rss.

Selector 143: section#subscriptions

Selects any section element with an id attribute that equals subscriptions.

Selector 144: section#subscriptions a

Selects any a element that is a descendant of a section element with an id attribute that equals subscriptions.

Selector 145: section#subscriptions *.subscribe-site div

Selects any div element that is a descendant of any element with a class attribute that contains the word subscribe-site that is a descendant of a section element with an id attribute that equals subscriptions.

Selector 146: section#statistics, section#statistics a, section#statistics a:hover

Selects any section element with an id attribute that equals statistics or any a element that is a descendant of a section element with an id attribute that equals statistics or any a element which is in a hover state that is a descendant of a section element with an id attribute that equals statistics.

Selector 147: input, select, textarea

Selects any input element or any select element or any textarea element.

Selector 148: input[type=text], input[type=password], select, textarea

Selects any input element with a type attribute that equals text or any input element with a type attribute that equals password or any select element or any textarea element.

Selector 149: input[type=button], input[type=submit]

Selects any input element with a type attribute that equals button or any input element with a type attribute that equals submit.

Selector 150: section.share

Selects any section element with a class attribute that contains the word share.

Selector 151: ul.post-list

Selects any ul element with a class attribute that contains the word post-list.

Selector 152: *.post-list li

Selects any li element that is a descendant of any element with a class attribute that contains the word post-list.

Selector 153: *.post-brief-image-container

Selects any element with a class attribute that contains the word post-brief-image-container.

Selector 154: *.post-brief-text

Selects any element with a class attribute that contains the word post-brief-text.

Selector 155: *.post-title

Selects any element with a class attribute that contains the word post-title.

Selector 156: article

Selects any article element.

Selector 157: article header

Selects any header element that is a descendant of an article element.

Selector 158: article header section

Selects any section element that is a descendant of a header element that is a descendant of an article element.

Selector 159: div.editbox

Selects any div element with a class attribute that contains the word editbox.

Selector 160: article:hover div.editbox

Selects any div element with a class attribute that contains the word editbox that is a descendant of an article element which is in a hover state.

Selector 161: article div.body

Selects any div element with a class attribute that contains the word body that is a descendant of an article element.

Selector 162: article div.body, article div.body blockquote

Selects any div element with a class attribute that contains the word body that is a descendant of an article element or any blockquote element that is a descendant of a div element with a class attribute that contains the word body that is a descendant of an article element.

Selector 163: article div.body div.inner ul

Selects any ul element that is a descendant of a div element with a class attribute that contains the word inner that is a descendant of a div element with a class attribute that contains the word body that is a descendant of an article element.

Selector 164: article footer

Selects any footer element that is a descendant of an article element.

Selector 165: footer section

Selects any section element that is a descendant of a footer element.

Selector 166: footer section.author

Selects any section element with a class attribute that contains the word author that is a descendant of a footer element.

Selector 167: footer section.author h1

Selects any h1 element that is a descendant of a section element with a class attribute that contains the word author that is a descendant of a footer element.

Selector 168: article footer time div

Selects any div element that is a descendant of a time element that is a descendant of a footer element that is a descendant of an article element.

Selector 169: footer section.tags

Selects any section element with a class attribute that contains the word tags that is a descendant of a footer element.

Selector 170: footer section.tags h1

Selects any h1 element that is a descendant of a section element with a class attribute that contains the word tags that is a descendant of a footer element.

Selector 171: footer section.tags ul

Selects any ul element that is a descendant of a section element with a class attribute that contains the word tags that is a descendant of a footer element.

Selector 172: footer section.tags ul li

Selects any li element that is a descendant of an ul element that is a descendant of a section element with a class attribute that contains the word tags that is a descendant of a footer element.

Selector 173: footer section.tags ul li a

Selects any a element that is a descendant of a li element that is a descendant of an ul element that is a descendant of a section element with a class attribute that contains the word tags that is a descendant of a footer element.

Selector 174: footer#pagination

Selects any footer element with an id attribute that equals pagination.

Selector 175: *#pagination a

Selects any a element that is a descendant of any element with an id attribute that equals pagination.

Selector 176: *#pagination a:hover, *#pagination a:active

Selects any a element which is in a hover state that is a descendant of any element with an id attribute that equals pagination or any a element which is in a state of activation that is a descendant of any element with an id attribute that equals pagination.

Selector 177: *#pagination span.current

Selects any span element with a class attribute that contains the word current that is a descendant of any element with an id attribute that equals pagination.

Selector 178: div.ajaxResult

Selects any div element with a class attribute that contains the word ajaxResult.

Selector 179: table

Selects any table element.

Selector 180: td

Selects any td element.

Selector 181: th

Selects any th element.

Selector 182: hr

Selects any hr element.

Selector 183: section.private

Selects any section element with a class attribute that contains the word private.

Selector 184: section.private:hover div.private_post_message

Selects any div element with a class attribute that contains the word private_post_message that is a descendant of a section element with a class attribute that contains the word private and which is in a hover state.

Selector 185: div.private_post_message

Selects any div element with a class attribute that contains the word private_post_message.

Selector 186: *.fb

Selects any element with a class attribute that contains the word fb.

Selector 187: img.fb-sharer

Selects any img element with a class attribute that contains the word fb-sharer.

Selector 188: iframe.fb-like-site

Selects any iframe element with a class attribute that contains the word fb-like-site.

Selector 189: div.fb-wrap

Selects any div element with a class attribute that contains the word fb-wrap.

Selector 190: *.ruiz

Selects any element with a class attribute that contains the word ruiz.

Selector 191: caption

Selects any caption element.

Selector 192: div

Selects any div element.

Selector 193: ul li

Selects any li element that is a descendant of an ul element.

Selector 194: h1, h2, h3, h4, h5, h6

Selects any h1 element or any h2 element or any h3 element or any h4 element or any h5 element or any h6 element.

Selector 195: div code

Selects any code element that is a descendant of a div element.

Selector 196: *

Selects any element.

Time elapsed: 2.134s

Copyright(c) 2001 The OPAL Group. All rights reserved.

Translations Selector 1: * Selects any element . Selector 2: body Selects any body element . Selector 3: h1, h1 *:link, h1 *:visited, h1 *:link:hover, h1 *:link:focus, h2 *:link, h2 *:visited, h2 *:link:hover, h2 *:link:focus Selects any h1 element or any element whose target has not been visited th ...»See Ya