From b2c09518a46d4373ed0ae04973d8f42a6bd341e5 Mon Sep 17 00:00:00 2001 From: Daniele Alessandri Date: Mon, 13 Apr 2009 18:33:58 +0200 Subject: [PATCH] Imported the test suite of Hpricot 0.6.164 in the repository; Updated TODO; --- TODO | 6 - test/files/basic.xhtml | 17 + test/files/boingboing.html | 2266 ++++++++++++++++++ test/files/cy0.html | 3653 ++++++++++++++++++++++++++++++ test/files/immob.html | 400 ++++ test/files/pace_application.html | 1320 +++++++++++ test/files/tenderlove.html | 16 + test/files/uswebgen.html | 220 ++ test/files/utf8.html | 1054 +++++++++ test/files/week9.html | 1723 ++++++++++++++ test/files/why.xml | 19 + test/load_files.rb | 7 + test/test_alter.rb | 77 + test/test_builder.rb | 37 + test/test_parser.rb | 386 ++++ test/test_paths.rb | 25 + test/test_preserved.rb | 66 + test/test_xml.rb | 28 + 18 files changed, 11314 insertions(+), 6 deletions(-) create mode 100644 test/files/basic.xhtml create mode 100644 test/files/boingboing.html create mode 100644 test/files/cy0.html create mode 100644 test/files/immob.html create mode 100644 test/files/pace_application.html create mode 100644 test/files/tenderlove.html create mode 100644 test/files/uswebgen.html create mode 100644 test/files/utf8.html create mode 100644 test/files/week9.html create mode 100644 test/files/why.xml create mode 100644 test/load_files.rb create mode 100644 test/test_alter.rb create mode 100644 test/test_builder.rb create mode 100644 test/test_parser.rb create mode 100644 test/test_paths.rb create mode 100644 test/test_preserved.rb create mode 100644 test/test_xml.rb diff --git a/TODO b/TODO index 3841fbd..5d30a1a 100644 --- a/TODO +++ b/TODO @@ -1,8 +1,2 @@ - * The current version of ironruby-hpricot is based off of hpricot 0.6.164, - but I'm already starting to work on aligning its code base to new features - from 0.6.207 (see _why's git repository http://github.com/why/hpricot/). - * README needs to be populated with notes and building instructions. The code needs the right dose of comments. - - * Add tests \ No newline at end of file diff --git a/test/files/basic.xhtml b/test/files/basic.xhtml new file mode 100644 index 0000000..898f0ea --- /dev/null +++ b/test/files/basic.xhtml @@ -0,0 +1,17 @@ + + + + + Sample XHTML + + + + + +

Sample XHTML for MouseHole 2.

+

Please filter me!

+

The third paragraph

+

THE FINAL PARAGRAPH

+ + + diff --git a/test/files/boingboing.html b/test/files/boingboing.html new file mode 100644 index 0000000..082a0a8 --- /dev/null +++ b/test/files/boingboing.html @@ -0,0 +1,2266 @@ + + + + + + + + + + + Boing Boing: A Directory of Wonderful Things + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Boing Boing
+ + + + + + + +
+
+ + + + +
+ +

+ Wednesday, June 14, 2006 +

+ + + +

+ Slipstream Science Fiction anthology defies genre conventions +

+ James Patrick Kelly and John Kessel gave a great interview to Sci Fi Weekly about their new anthology, Feeling Very Strange: The Slipstream Anthology. The book has a top-notch table-of-contents, stories that defy genre conventions and make your head spin in a good way. + +
+ +We make the point in our introduction that slipstream isn't really a genre at the moment and may never be one. What it is, in our opinion, is a literary effect--in the same way that horror or comedy are literary effects achieved by many different kinds of dissimilar stories. What is that effect? We borrowed the term cognitive dissonance from the psychologists. When we are presented with two contradictory cognitions--impressions, feelings, beliefs--we experience cognitive dissonance, a kind of psychic discomfort that we normally try to ease by discounting one of the cognitions as false or illusory and promoting the other to reality. But in some cases we aren't well served by this convenient sorting out. +

+We think that what slipstream stories do is to embrace cognitive dissonance. F. Scott Fitzgerald once said that "The test of a first-rate intelligence is the ability to hold two opposing ideas in mind at the same time and still retain the ability to function." We believe that such an ability is necessary to cope with life in the 21st century and that stories that ask us to exercise that ability are an expression of the zeitgeist. Do you really need a definitive answer as to whether an electron is a wave or a particle? Why? Maybe it's time to make room for uncertainty in contemporary fiction, even if the stories do make you feel very strange. Slipstream may use metafictional techniques to estrange us from consensus reality, they may rewrite history, they may mash up different styles or genres. But that's the point, as we see it. Slipstream has no rules, it has only results. + +
+

+ +Link + +(via Beyond the Beyond) + +
+

posted by + Cory Doctorow at + 03:43:28 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ College kids reportedly taking more smart drugs +

+ High-achieving college kids are reportedly dipping into "brain-steroids" -- drugs like Ritalin and Provigil, which focus attention. No one really knows how widespread this practice is, since it's uncommon for anyone to get busted for peddling smart drugs, and the side-effects of "abuse" are minimal. +

+This strikes me as the canonical cognitive liberty fight: why shouldn't you be allowed to make an informed decision about what state of mind you'd like to be in? Why will the law allow people to kill brain and liver cells with stupefying booze, but not smart drugs? + +

+"What was a surprise, though, was the alarming rate of senior business majors who have used" the drugs, he writes. Almost 90 percent reported at least occasional use of "smart pills" at crunch times such as final exams, including Adderall, Ritalin, Strattera and others. Of those, three-quarters did not have a legitimate prescription, obtaining the pills from friends. "We were shocked," Salantrie writes. He says that in his report, he was "attempting to bring to light the secondary market for Adderall" specifically because "most of the university is not aware" of its extent, he says. +
+ +Link + +(via Futurismic) + +
+

posted by + Cory Doctorow at + 03:33:51 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ UFO sighting picture photoshopping contest +

+ + +The next Worth1000 photoshopping contest challenges artists to fake UFO-sightings photos. The quality of entries here is a little uneven, but the best of the lot are real gems. + +Link + +
+ +
+

posted by + Cory Doctorow at + 03:26:59 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Rube Goldberg machine built out of sticks and stones +

+ + +There's a feature on today's Make video podcast about a giant, elaborate Rube Goldberg machine assembled out of sticks and stones in a forest. The video features some jaw-dropping, Mousetrap-style action, and the use of found forest-floor materials makes it all the more Wile E Coyote. The video features tips on setting up your own woodsy contraption. + + +Link + +
+ +
+

posted by + Cory Doctorow at + 02:59:42 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Lampooning the American dismissal of Gitmo suicides +

+ Fafblog today features a scathing, brilliant satirical look at the US characterization of the Guantanamo Bay suicides as an attack on America. Fafblog is consistently the best political satire/commentary on the net, the Web equivalent of Jon Stewart and Stephen Colbert, and they're finally back after a too-long hiatus. The characterization of the Gitmo suicides as an act of terrorism is so ugly and disingenuous that it begged to be punctured. I'm thankful that Fafblog is back to perform that service. + +
+ +Run for your lives - America is under attack! Just days ago three prisoners at Guantanamo Bay committed suicide in a savage assault on America's freedom to not care about prisoner suicides! Oh sure, the "Blame Atrocities First" crowd will tell you these prisoners were "driven to despair," that they "had no rights," that they were "held and tortured without due process or judicial oversight in a nightmarish mockery of justice." But what they won't tell you is that they only committed suicide as part of a diabolical ruse to trick the world into thinking our secret torture camp is the kind of secret torture camp that drives its prisoners to commit suicide! This fiendish attempt to slander the great American institution of the gulag is nothing less than an act of asymmetrical warfare against the United States - a noose is just a suicide bomb with a very small blast radius, people! - and when faced with a terrorist attack, America must respond. Giblets demands immediate retaliatory airstrikes on depressed Muslim torture victims throughout the mideast! +

+"Oh but Giblets there are dozens of innocent prisoners in Guantanamo" you say because you are a namby-pamby appeasenik who suckles at the teat of terror. Well if these Guantanamo prisoners are so innocent then what are they doing in Guantanamo? Sneaking into our secret military prisons as part of an elaborate plot to make it look like we're holding them in our secret military prisons, that's what! And once they get there they can chain themselves to the floor, break their bones on helpless guards' fists, and waterboard themselves to their heart's content to further their sinister Salafi scheme to sully the reputation of secret American torture facilities everywhere! + +

+ +Link + +
+

posted by + Cory Doctorow at + 02:55:02 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Neil Gaiman tribute CD sneak-peek +

+ A new Neil Gaiman tribute CD is coming out in July. One of the tracks is already available -- "Mr Punch" by Future Bible Heroes, and it's a delight. Apparently, Stephin Merritt (from Future Bible Heroes) is also doing a Lemony Snickett-inspired CD in October. + +
+ +Track Listing:
+1 Rasputina - Coraline
+2 ThouShaltNot - When Everyone Forgets
+3 Tapping The Vein - Trader Boy
+4 Lunascape - Raven Star
+5 Deine Lakaien - A Fish Called Prince
+6 Thea Gilmore - Even Gods Do
+7 Rose Berlin (feat. Curve) - Coraline
+8 Schandmaul - Magda Treadgolds Märchen
+9 Hungry Lucy - We Won't Go
+10 Voltaire w/The Oddz - Come Sweet Death
+11 Future Bible Heroes - Mr. Punch
+12 Razed in Black - The Endless
+13 The Cruxshadows - Wake the White Queen
+14 Ego Likeness - You Better Leave the Stars Alone
+15 Azam Ali - The Cold Black Key
+16 Joachim Witt - Vandemar
+17 Tori Amos - Sister Named Desire (New Master) +
+
+ +Link + +(Thanks, Gary!) + +
+

posted by + Cory Doctorow at + 02:50:59 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Block DRM license plate +

+ + +Tom spotted this DC license plate, reading BLK DRM. He thinks it's an anti-DRM lobbyist's plate, which is plausible, though with the acronym soup in Washington, it could stand for just about anything. + +Link + +(Thanks, Tom) + +
+ +
+

posted by + Cory Doctorow at + 02:43:40 AM + permalink + | blogs' comments + +
+

+

+ + +

+ Tuesday, June 13, 2006 +

+ + + +

+ Chairs upholstered with lush photos +

+ + +ClothUK makes easy chairs and other soft furnishings upholstered with fabric that's printed with the lush, oversized photo of your choice. Not cheap, tho! + +Link + +(via Wonderland) + +
+ +
+

posted by + Cory Doctorow at + 06:21:37 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Corruptibles: Copyright's tech-fighting supervillains +

+ + +EFF has just launched a new video: The Corruptibles -- the story of Copyright Supervillains who patrol the Broadcast Flag future, blowing up our free and open devices. It's a great, funny viral short, and well worth a watch. + + + +Link + +
+ +
+

posted by + Cory Doctorow at + 06:14:53 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ WIPO meets to screw up podcasting, Barcelona, June 21 +

+ The United Nations' World Intellectual Property Organization has called a last-minute meeting on June 21 in Barcelona, out of the normal diplomatic venues to try to ram through the Broadcasting Treaty. This treaty gives broadcasters (not creators or copyright holders) the right to tie up the use of audiovisual material for 50 years after broadcasting it, even if the programs are in the public domain, Creative Commons licensed, or not copyrightable. +

+The Barcelona meeting brings together lots of latinamerican broadcasters -- who no doubt love the idea of a new monopoly right that they get for free merely for broadcasting a work. Bringing these casters in is a way of undermining the effective opposition to the treaty that's come from countries like Brazil and Chile. +

+No public interest groups are on the bill to give a counterpoint (of course not -- WIPO is the kind of place where public interest groups' handouts are thrown in the toilets' trashcans). +

+This meeting is especially deadly, because it looks like they're trying to sneak podcasting back into the treaty, after agreeing to take it out at the last big meeting in Geneva. +

+The good news is, it's open to the public. If you're a digital rights activist in Barcelona -- or just someone who cares about how big corporations are taking away your rights to use works freely -- then you need to be at this meeting. + +

+Webcasting will clearly be part of next week's discussions. That much is clear from the title of next week's event: "From the Rome Convention to Podcasting". One of the invited speakers is from Yahoo! Europe, one of the proponents of new rights for webcasters. This, despite the fact that webcasting and simulcasting were taken out of the "traditional" Broadcasting Treaty and put on the slow track last month in response to concerns expressed by the majority of WIPO member states. +

+The good news: unlike earlier meetings, this one is open to the public, with prior registration requested. So if you care about the proposed treaties and can get to the Barcelona meeting, this is your opportunity to stand up and be counted for the public interest. +

+If you’re in the U.S., please tell your Congressional representatives to hold hearings on the proposed treaties before it’s too late. And if you need a reminder about the harm that these treaties could wreak on access to knowledge and technological innovation, read Jamie Boyle’s piece in today’s Financial Times. + +

+ +Link +

+Update: Jamie Boyle has an excellent column that explains how this treaty (which the US is fighting for) would be unconstitutional in the USA. + +
+

posted by + Cory Doctorow at + 06:09:34 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ From the Boing Boing archives, circa 1999 +

+ I came across this funny list of "Things to Do," written by "fifth Boing Boinger" Stefan Jones, which was published on the pre-blog version of boingboing.net. + +
1. Get $25 worth of paper currency from one of those countries where $25 worth of currency fills up two wheel barrows. Divide it into five lots and send them, along with an incomprehensible letter, to the addresses listed in an email chain letter. + +

2. Build some gigantic rat traps, with wooden bases at least 2' x 3' and baited with an entire blocks of government cheese. Plant the traps, in sprung state, near a local chemical company. Wear giant rat foot shoes while doing this. + +

3. Get a supply of those little plastic ties used to seal hotel minibars after they are loaded with a full complement of overpriced goodies. Bring them and a supply of useful things (socks, condoms, aspirin) and strange things (McGruff the Crime Dog coloring books, bottles of Moxie, a can of Hormel Calf Brains in Milk Gravy) while travelling. Put the things in the minibar before sealing it up.

+ +Link + +
+

posted by + Mark Frauenfelder at + 04:57:07 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Surreal English lessons video from Japan +

+ +Picture 3-10 +Very odd video of Japanese dancing girls and salarymen uttering defensive rebuttals in English. Link (via Sharpeworld) + +
+

posted by + Mark Frauenfelder at + 01:44:02 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Sexed robots video +

+ +Here's a video of two adorable, autonomous "sexed robots." + +
 Zlab Zlabpics Sexedmaleandfemale +The sexed robots are autonomous wheeled platforms fitted with nylon genital organs, respectively male and female. They are programmed to explore their environment, occasionally entering a "in heat" mode, where they will try and locate a partner in the same state. If a partner is located, the robots will attempt to mate.
+ + Link NSFW? (via Sharpeworld) + +
+

posted by + Mark Frauenfelder at + 01:38:27 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Burroughs' Encyclopaedia of Astounding Facts and Useful Information, 1889 +

+ Manybooks.net, which converts Project Gutenberg titles into useful formats for reading on Palm devics, iPods, and ebook readers, recently made available a fantastic compendium called Burroughs' Encyclopaedia of Astounding Facts and Useful Information, 1889: Universal Assistant and Treasure-House of Information to be Consulted on Every Question That Arises in Everyday Life by Young and Old Alike!. + +

It's an amazing combination of a proto-Ripley's, a cookbook, etiquette guide, and almanac. + +

200606131251 + + +WONDERS OF MINUTE WORKMANSHIP. + +

In the twentieth year of Queen Elizabeth, a blacksmith named Mark Scaliot, made a lock consisting of eleven pieces of iron, steel and brass, all which, together with a key to it, weighed but one grain of gold. He also made a chain of gold, consisting of forty-three links, and, having fastened this to the before-mentioned lock and key, he put the chain about the neck of a flea, which drew them all with ease. All these together, lock and key, chain and flea, weighed only one grain and a half. + +

Oswaldus Norhingerus, who was more famous even than Scaliot for his minute contrivances, is said to have made 1,600 dishes of turned ivory, all perfect and complete in every part, yet so small, thin and slender, that all of them were included at once in a cup turned out of a pepper-corn of the common size. Johannes Shad, of Mitelbrach, carried this wonderful work with him to Rome, and showed it to Pope Paul V., who saw and counted them all by the help of a pair of spectacles. They were so little as to be almost invisible to the eye. + +

Johannes Ferrarius, a Jesuit, had in his posession cannons of wood, with their carriages, wheels, and all other military furniture, all of which were also contained in a pepper-corn of the ordinary size.

+ +Link + +
+

posted by + Mark Frauenfelder at + 12:57:03 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Door looks like you walk through it +

+ +200606131240 + + +Fukuda’s Automatic Door opens around your body as you pass through it. The idea is to save energy and keep the room clean. Link + +
+

posted by + Mark Frauenfelder at + 12:39:56 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ AOL's efforts to keep you from quitting your account +

+ Listen to this recording of a guy who called AOL to try to cancel his account and the AOL jerk who tries to keep him from canceling. Just disgusting. Link (via Digg) + +
+

posted by + Mark Frauenfelder at + 12:27:01 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ LA's South Central Farm under police siege right now +

+ The police have closed on South Central Farm, the largest community garden in the USA. The farms were planted after the Rodney King uprising, when the land was given to the neighborhood, and it has been reclaimed and cultivated by 350 families. The city reneged on its promise and sold the land to a developer, who has now moved on it with bulldozers and a riot squad. + +
+The South Central Farm is currently under attack. An early morning raid began this 5-hour long eviction that is still in process. Trees are being cut down, bulldozers are leveling the families’ food, hundreds of protesters are on site rallying with tears in their eyes as the nation’s largest urban farm is destroyed before them. The L.A.P.D. is on tactical alert as fire ladders and cherry pickers are being brought in to remove the tree-sitters. The 350 families created this oasis 14 years ago in the wake of the 1992 uprising when this land was offered to the community by the then Mayor as a form of mitigation. +
+ + + +Link, Flickr's southcentralfarm tag + +(Thanks to everyone who wrote in with this link) +

+Update: Elan sez, "the land for the farm was originally taken from Ralph Horowitz through eminent domain with the intension of using it for a trash incinerator. When the incinerator fell through, the city was required to sell it back to the Horowitz (after a ten year period of first refusal)." + +
+

posted by + Cory Doctorow at + 11:48:42 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Stephen Hawking writing a kids' book +

+ Stephen Hawking and his daughter are collaborating on a kids' novel that is "a bit like Harry Potter, but without the magic." + +
+His daughter Lucy said their forthcoming project would be aimed at people like her own eight-year-old son. +

+"It is a story for children, which explains the wonders of the universe," she said. + + +

+ +Link + +(via Fark) + +
+

posted by + Cory Doctorow at + 11:42:15 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ ScienceMatters@Berkeley, June issue +

+ +My new issue of ScienceMatters@Berkeley is online. In this issue: +
 Archives Volume3 Issue21 Images Oster3
+* Start Your Protein Engines

+* The New New Math of String Theory

+* Molecular Rules of Engagement
+Link + +
+

posted by + David Pescovitz at + 11:42:06 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ iPod dock/speakers built into bumwad dispenser +

+ + +This iPod dock and speakers built into a bumwad dispenser isn't as weird as it seems at first blush -- lots of us have a radio in the bathroom; this is a way of listening to your iPod without sacrificing your limited counterspace to an electronics footprint. + +Link + +(via Popgadget) + +
+ +
+

posted by + Cory Doctorow at + 11:38:34 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Cory's Someone to Town shortlisted for Canada's sf book award +

+ +I'm pleased as punch to say that my novel, Someone Comes to Town, Someone Leave Town has been shortlisted for the Sunburst, Canada's national science fiction award. The Sunburst jury honored me with the award in 2004 for my short story collection A Place So Foreign and Eight More and this is a double-helping of delight. +

+Someone Comes to Town... comes out in a new trade paperback edition this week, too! + +Link + +
+ + +
+

posted by + Cory Doctorow at + 10:59:36 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ People are happier when they're older? +

+ A new study suggests that people may think that the happiest days of their lives are when they're young, but that belief doesn't jibe with reality. University of Michigan and VA Ann Arbor healthcare Systems researchers polled 540 adults in the 21-40 age group and 60+ age group. They rated their own happiness right now, predicted how happy they'd be in the future, and also how happy they think others are in those age groups. The results were published in the Journal of Happiness Studies, which is a delightful name for a scientific publication. From the University of Michigan Health System: +
"Overall, people got it wrong, believing that most people become less happy as they age, when in fact this study and others have shown that people tend to become happier over time," says lead author Heather Lacey, Ph.D., a VA postdoctoral fellow and member of the U-M Medical School's Center for Behavioral and Decision Sciences in Medicine. "Not only do younger people believe that older people are less happy, but older people believe they and others must have been happier 'back then'. Neither belief is accurate..."

+ +"People often believe that happiness is a matter of circumstance, that if something good happens, they will experience long-lasting happiness, or if something bad happens, they will experience long-term misery," (says co-author Peter Ubel). "But instead, people's happiness results more from their underlying emotional resources -- resources that appear to grow with age. People get better at managing life's ups and downs, and the result is that as they age, they become happier -- even though their objective circumstances, such as their health, decline."
+Link + +
+

posted by + David Pescovitz at + 10:58:28 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ The incredible sound-mimicking lyrebird +

+ +Lyrebird +Here's a video clip of a male Australian lyrebird, which sings complex songs to attract mates. Lyrebirds' songs are composed of sounds they hear, including sounds from machines, such as a camera's shutter mechanism and film drive, a car alarm, and logging equipment. This bird is like a tape recorder. Link (thanks, Coop!) + +
+

posted by + Mark Frauenfelder at + 10:53:26 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Aymara people's "reversed" concept of time +

+ The Aymara, an indigenous group in the Andes highlands, have a concept of time that's opposite our own spatial metaphor. A new study by cognitive scientists explains how the Aymara consider the past to be ahead and the future behind them. According to the study, this is the first documented culture that seems not to have mapped time with the properties of space "as if (the future) were in front of ego and the past in back." From UCSD: +
The linguistic evidence seems, on the surface, clear: The Aymara language recruits “nayra,” the basic word for “eye,” “front” or “sight,” to mean “past” and recruits “qhipa,” the basic word for “back” or “behind,” to mean “future.” So, for example, the expression “nayra mara” – which translates in meaning to “last year” – can be literally glossed as “front year..."

The Aymara, especially the elderly who didn’t command a grammatically correct Spanish, indicated space behind themselves when speaking of the future – by thumbing or waving over their shoulders – and indicated space in front of themselves when speaking of the past – by sweeping forward with their hands and arms, close to their bodies for now or the near past and farther out, to the full extent of the arm, for ancient times. In other words, they used gestures identical to the familiar ones – only exactly in reverse. +

+“These findings suggest that cognition of such everyday abstractions as time is at least partly a cultural phenomenon,” (University of California, San Diego professor Rafael) Nunez said. “That we construe time on a front-back axis, treating future and past as though they were locations ahead and behind, is strongly influenced by the way we move, by our dorsoventral morphology, by our frontal binocular vision, etc. Ultimately, had we been blob-ish amoeba-like creatures, we wouldn’t have had the means to create and bring forth these concepts. +

+“But the Aymara counter-example makes plain that there is room for cultural variation. With the same bodies – the same neuroanatomy, neurotransmitters and all – here we have a basic concept that is utterly different,” he said. +
Link + +
+

posted by + David Pescovitz at + 10:05:40 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Webby Awards last night, with Prince +

+
+Prince
+
Prince performed an acoustic number at last night's Webby Awards in NYC. Prince won a Lifetime Achievement Award. His five word acceptance speech: "Everything you think is true." Also in attendance were Robert Kahn, Gorillaz, Arianna Huffington, and dozens of other interesting folks. Rob Corddry hosted. Congrats to all the winners and our friends at the Webby Awards for what sounds like an amazing ceremony! Check Rocketboom for the edit of the evening.
Link + +
+

posted by + David Pescovitz at + 09:19:33 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Electrical substations disguised as houses +

+ Toronto Hydro, the electrical authority in Toronto, has spent decades building electrical substations that are disguised as typical family houses: + +
+ +In 1987, Canadian photographer Robin Collyer began documenting houses that aren't houses at all – they're architecturally-disguised electrical substations, complete with windows, blinds, and bourgeois landscaping. +

+"During the 1950s and 1960s," Collyer explains in a recent issue of Cabinet Magazine, "the Hydro-Electric public utilities in the metropolitan region of Toronto built structures known as 'Bungalow-Style Substations.' These stations, which have transforming and switching functions, were constructed in a manner that mimics the style and character of the different neighborhoods." +
+

+ +Link + +
+

posted by + Cory Doctorow at + 04:53:31 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Candyland board made from 100k beads +

+ + +Peggy Dembicer cloned a 1978 Candyland game-board using over 100,000 novelty beads. She's documented the finished project on Flickr, with details of some of the finer work. + +Link + +(via Make Blog) + +
+ +
+

posted by + Cory Doctorow at + 12:10:49 AM + permalink + | blogs' comments + +
+

+

+ + +

+ Monday, June 12, 2006 +

+ + + +

+ Stanford prof sues James Joyce estate for right to study Joyce +

+ A prof at Stanford University is suing the estate of James Joyce over the estate's long practice of destroying documents vital to Joyce scholarship, and of intimidating academics and creators who want to study and extend the works of Joyce. Carol Shloss, a Joyce scholar, has worked for 15 years on a book about the ways in which the book Finnegans Wake was inspired by Joyce's mentally ill daughter. Joyce's grandson, Stephen Joyce, have allegedly destroyed documents relating to this to undermine her book. +

+This isn't the first time that Stephen Joyce has hurt the cause of scholarship about his grandfather. He threatened to sue the Irish Museum over its exhibition of Joyce's papers. He threatened to sue pubs in Ireland for allowing people to read aloud from Joyce's novels on Bloomsday, the celebration of Ulysses. He told symphonic composers that they couldn't put Joyce quotations in their symphonies. +

+Most tragically, there was a brief moment when Stephen Joyce was irrelevant. The works of James Joyce were in the public domain until the EU copyright directive extended copyright by 20 years, putting Joyce's books back into the care of his capricious grandson for decades. +

+There's a whole body of scholarship devoted to tracking the ways in which Stephen Joyce has made himself the enemy of academics and Joyce lovers. The best work to start with is Matthew Rimmer's Bloomsday: Copyright Estates and Cultural Festivals. + +

+Before the book was published, publisher Farrar, Straus and Giroux removed several supporting citations from Shloss' tome to avoid a lawsuit, according to Olson. Shloss wants to post that information as an electronic appendix to answer several critics who charged that "To Dance in the Wake" was interesting, but thin on documentary evidence, Olson said. +

+"It's painful once you've written something ... that you think is complete and good, to have it hacked up," Olson said. "There is a desire to bring it forth in the way she originally intended." +

+Shloss prepared the Web site last year but never made it public because she worried about being sued, Olson said. Among the items excised from the book are quotations from "Finnegans Wake" she thinks support her thesis, as well as letters between James Joyce and his daughter, according to Olson. +

+Shloss wants the court to declare she's entitled to use information the estate controls under laws that allow authors to quote copyrighted works if they do it in "a scholarly transformative manner." +

+ +Link + +(Thanks, Vidiot!)

+Update: This New Yorker article on the case is full of great color and background, and includes the fact that Larry Lessig, founder of the Creative Commons project, is arguing the case. + +
+

posted by + Cory Doctorow at + 10:52:01 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ HOWTO turn a NES controller into a cell-phone +

+
+ +Diyhappy took apart a Nokia 3200 -- which had interchangeable faceplates and was thus readily uncased -- and rebuilt it inside an old Nintendo Entertainment System controller. He dremelled out holes for the buttons and the screen and voila, the NES mobile phone. + + +Link + +(Thanks, Sam!) + +
+

posted by + Cory Doctorow at + 10:39:04 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ HOWTO make cufflinks out of Ethernet connectors +

+ + +Mark got invited to a fancy party and couldn't find his cufflinks, so he hacked a pair out of some Ethernet connectors and bits of wire; and thus the crimp-your-own cufflink was born. He's written up his mod in detail for others who want to follow suit. + +Link + +(Thanks, Mark!) + +
+ +
+

posted by + Cory Doctorow at + 10:32:58 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Inside China's iPod sweat-shops +

+ A British paper sent a reporter to "iPod City," the plant in Longhua, China, where iPods are assembled by women who earn $50/month for working 15 hour days. +

+My guess is that this is no worse than the conditions in which Powerbooks, Thinkpads, Zens, Linksys routers, etc are manufactured, but Christ, this is depressing. + +

+ The Mail visited some of these factories and spoke with staff there. It reports that Foxconn's Longhua plant houses 200,000 workers, remarking: "This iPod City has a population bigger than Newcastle's." +

+The report claims Longhua's workers live in dormitories that house 100 people, and that visitors from the outside world are not permitted. Workers toil for 15-hours a day to make the iconic music player, the report claims. They earn £27 per month. The report reveals that the iPod nano is made in a five-storey factory (E3) that is secured by police officers. +

+Another factory in Suzhou, Shanghai, makes iPod shuffles. The workers are housed outside the plant, and earn £54 per month - but they must pay for their accommodation and food, "which takes up half their salaries", the report observes. + + +

+ +Link + +(Thanks, Tony!) +

+Update: A former Nokia employee adds, "Add Nokia phones to your list. The type label may say 'Made in Finland' (top-notch models) or 'Made in Hungary' (mid-range ones), but Nokia cellphone engines (ie. the actual hardware) are manufactured by Foxconn in Longhua, China... unless they've found a cheaper supplier. Yes, I actually worked at the plant for a few months between real jobs." + +

+Update 2: Apple has promised to investigate the labor conditions in its iPod factories. + +
+

posted by + Cory Doctorow at + 10:29:26 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Dave Alvin profile +

+ +200606122126 +Colin Berry's Dave Alvin piece, which ran on KQED's "California Report" a couple weeks ago, is now available online. + +

Colin says: "Dave's new album [West of the West] is a tribute to California songwriters, including Tom Waits, Kate Wolf, Merle Haggard, Los Lobos, and others. I hung with him in the studio and talked to him (and some of the original songwriters) during the making of it." + +Link + +
+

posted by + Mark Frauenfelder at + 09:26:09 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Tim Biskup's tiny sculpture +

+ +Iki-Happy O +Iki-Sad O +
Tim Biskup has created a tiny bronze sculpture to sell at his Laguna Art Museum retrospective (along with Gary Baseman). + +
Iki stands 2.25" tall, has dual faces, is limited to 44 signed and numbered pieces,  and comes in a letterpressed packaging. Iki will be available at the Saturday opening (6.17.06, 8 - 10 PM)  of Tim's joint retrospective Pervasion show with Gary Baseman at the Laguna Art Museum.
Link (Thanks, Scott!) + + +
+

posted by + Mark Frauenfelder at + 09:21:26 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Covers from '60s French satirical magazine: Hara Kiri +

+ +Hara Kiri +Here are a bunch of cover scans of a magazine I didn't know about until today. According to Wikipedia, Hara Kiri was created in 1960 and "in 1961 and 1966 they were temporarily banned by the French Government." Link + + + +
+

posted by + Mark Frauenfelder at + 06:57:48 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Negativland performing in LA tonight +

+ Mark from Negativland says: + +
This is very late notice, but we (Negativland) want to let you and all +Boingboingers know that we are playing live in LA. this Monday night, +June 12th, at the Silent Movie Theater! Yes. We are. It's at 611 +North Fairfax Ave. Hollywood Box office- 323-655-2520. Tickets are +$22. The doors are at 9pm and the show starts at 10pm sharp! + +

This is a very rare appearance for us in L.A, and at a really cool and +intimate venue. The show is we are performing is called "It's All In +Your Head FM", and we hope you can attend! It's about monotheism, but +in stereo. With blindfolds handed out at the door. Really.

+Link + +
+

posted by + Mark Frauenfelder at + 06:24:05 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Meme Therapy interviews Rudy Rucker +

+ Meme Therapy has a long and interesting review with one of my very favorite authors, Rudy Rucker. + +
MT: What aspects of writing do you enjoy the most? + +

+200606121734 +RR: I like leaving the daily world and going to another world, a world that I had a hand in designing. You’ll notice that in most of my novels, the main character in fact leaves the world where I start him out and goes to another world. Another planet, another dimension, another sheet of reality. It’s an objective correlative for what I’m doing when I leave this mundane world and go into the world of my novel. + +

Writing is so much work. Every part of writing a novel is hard. The planning, the sitting down and creating, the revising. I guess the most fun part is when it seems to pour out and I’m having a good day. When I’m doing that, I stop worrying for a while, I forget myself and I’m happy and proud and even exalted and amazed to see what’s coming down or going up. + +

More precisely, that fun part is “the narcotic moment of creative bliss.” I just heard John Malkovich deliver that phrase, playing the role of an artist/art prof in Art School Confidential. That’s very right on; the operative word is “narcotic,” it’s definitely something you get addicted to over the years. Really I go to all this trouble writing a novel day after day month after month because, in a way, I’m trying to get high. Or see God. Or make love to the Muse. Waiting for the narcotic moment of creative bliss.

+ +Link + +
+

posted by + Mark Frauenfelder at + 05:35:13 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Transparent street signs +

+ + City Of Chicago Images Images Image04 +Two years ago, artist Cayetano Ferrer took photos of the scene behind several Chicago street signs and then pasted the prints on top of the signs to achieve an amazing transparency effect. (As the Wooster Collective blog points out, Amnesty International's recent ad campaign employs a similar technique. And it's also the idea behind the "Transparent Screen" trick for your computer display.)
+Link to Ferrer's "City of Chicago" image gallery, Link to Amnesty International campaign (via Neatorama) + +
+

posted by + David Pescovitz at + 03:41:34 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Illustrations from Rabelais's Gargantua and Pantagruel +

+ + +Bibliodyssey has posted two mind-blowing selections of surrealist characters from a 1565 publication called "Les Songes Drolatiques de Pantagruel, ou sont contenues plusieurs figures de l’invention de maistre François Rabelais : & derniere oeuvre d’iceluy, pour la recreation des bons esprits." While Rabelais is often credited with drawing the characters to accompany his text, they were apparently most likely drawn by François Desprez. The absurd monsters remind me of the wonderful phantasmagoric work of Jim Woodring.
 Blogger 1717 1584 1600 Rabelais-Pantegruel-By-Francois-Desprez-11-1 +
+From Bibliodyssey: + +
Franciscan friar, doctor, traveller, model for the Thelemic magickal writings of Aleister Crowley, humanist, Benedictine monk, alchemist, teacher, leader of the French renaissance, heretic, greek scholar and groundbreaking satirical writer, François Rabelais (?1483/1493-1553) issued his magnum opus 'The life of Gargantua and Pantagruel' as a five book series over 20 years up to 1564. +

+The books chart the humorous adventures of giants Gargantua and his son, Pantagruel in a scatalogical and often bawdy manner. Rabelais wrote in the epic tradition of Homer, and beyond the burlesque, there is an underlying serious examination of society, politics, education and philosophy whilst introducing 500 new words to the french lanugage.
Link and +Link + +
+

posted by + David Pescovitz at + 02:52:18 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Cartoonist Chris Ware on the piano +

+ +Chris Ware on piano +This isn't fair. Not only is Chris Ware a supremely gifted cartoonist, he can also play ragtime piano like nobody's business. Link (via Flog!) + +

Reader comment: + +Rob DeRose says: + +

Chris Ware shares his love of ragtime with MacArthur Genius Grant winner Reginald Robinson. In fact Chris heard Reginald playing in the winter garden of the Chicago Central Library one day and became fast friends. Here's a story from NPR on how the two of them found an entirely new song of Scott Joplin's. (its the fourth of four mini-segments.) + + +

I've been a fan of Reginald ever since I saw him accompany the Squirrel Nut Zippers (in-between their first & second album) here in Chicago. If you get a chance to see him, by all means go. A nice Trib article about him. His CD on Amazon. + +

The Chicago Library's winter garden, where he used to practice, and where he & Chris Ware met (it's the nicest part of the building.)

+ +
+

posted by + Mark Frauenfelder at + 02:22:04 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Walt Disney's 1956 time-capsule letter to the future +

+ The Disney company has unearthed a 1956 time-capsule containing a letter from Walt Disney to the future, on stationary bearing the legend "NO AGREEMENT WILL BE BINDING ON THIS CORPORATION UNLESS IN WRITING AND SIGNED BY AN OFFICER." Walt's letter to the future speculates about the future of entertainment and is at once profoundly wrong and profoundly right. +

+Walt predicts that the world will be overturned by technology, all the old order remade. At the same time, he assumes that what will come in on the tails of 1956's mass media will be...more mass media! Even though Walt himself predated truly national media, he can't conceive of the age of mass media waning and being replaced by a mass medium -- a channel like the net -- crowded with a never-ending confusion of micro-media. Walt, in other words, didn't predict the long tail. + +

+[...O]f one thing I'm sure. People will need and demand amusement, refreshment and pleasant relaxation from daily tasks as much in your day as they have in ours and in all the generations of mankind into the remote past. What the exact nature and implementation of these mass entertainments may be, doesn't make much difference, it seems to me. +

+Humanity, as history informs us, changes very slowly in character and basic interests. People need to play as much as they need toll. They never cease to be fascinated by they own powers and passions, their base or noble emotions, their faiths and struggles and triumphs against handicap -- all things that make them laugh and weep and comfort one another in love and sacrifice out of the depths of their being... +

+Mindful of the phenomenal discoveries and applications of science to all our activities and institutions, it seems no mere guess that public entertainment will have become machined and powered by atomic and solar energies long before you read this capsule. +

+The extension of radar and other as yet untapped sources of cosmic force may well have changed the entire technique of communication, in the theatre and television fields as well as in other areas of informational broadcast. +

+Millions of people in massive assemblies around the world may now be viewing the same staged or natural event, scanned by some incredibly potent scope, in the same amount of time. They may even be viewing presently obscured vistas on neighboring planets as one might look at neighbors across our Los Angeles Streets. +

+Omniscience will have drawn closer to finite senses and perceptions, for our entertainment as for our livelihood -- yours, I should say, who will read this in your 21st Century. +

+ +200K PDF Link + +(Thanks, Anonymous Source!) + +
+

posted by + Cory Doctorow at + 02:01:45 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Plans for Barney Fife statue toppled by Knotts' estate +

+ A couple of Barney Fife fans who put down $8,000 to erect a statue of Barney Fife (played by Mick Jagger lookalike Don Knotts) in downtown Mount Airy, NC (the model for Mayberry) received a letter from CBS attorneys telling them to halt the project. + +
+ Knottsstatue +[CBS attorney] Mallory Levitt explained to [would-be statue erector Tom] Hellebrand and the Mount Airy News that although Paramount/CBS owned the rights to the character of Barney Fife, the group didn't have the authority to give permission for a likeness of Don Knotts. + +

"That right belongs to the Knotts estate," she said. + +

Levitt told Hellebrand she contacted the actor's estate and business associates of Andy Griffith, and none wanted to go through with the project.

+ +The project website, donknottsstatue.com, has a note about the cancellation of the project: "The tears on our pillows bespeak the pain that is in our hearts." The project leaders will be selling a full-size replica of a Mayberry Squad car and a golf cart made to look like a squad car on eBay to recoup their expenses. + +Link (Thanks for the correct, url, Dru!) + +
+

posted by + Mark Frauenfelder at + 01:20:09 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Ol' Glory energy drink +

+ + 72 165796068 94C49E9C84 +At the Institute for the Future this morning, my colleague Mike Love is chugging this delicious and patriotic energy drink. Their tag line: "Makes you feel better all over than anywhere else." Ummm....
Link to Ol' Glory site, Link to Mike's photo on Flickr + +
+

posted by + David Pescovitz at + 11:41:56 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ theFLOWmarket sells consumer awareness +

+ +Flowmarket +Gmo +
+theFLOWmarket is a supermarket-as-artwork that sells consumer awareness in the form of imaginary products like "commercial free-space," "exploitation free produce," "symptom removers," "factory farming antibiotics," "renewable energy," and "a feeling of safety." The nicely-packaged products are available for sale at prices from $5 to $20. theFLOWmarket is open for business at the Danish Design Centre in Copenhagen. +Link to Flash site (Thanks, Lindsay Tiemeyer!) + +
+

posted by + David Pescovitz at + 11:34:06 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Pea-head smashes art gallery window, gets busted +

+ Roq La Rue gallery Kirsten Anderson has a funny story about an idiot that smashed a window at her new gallery in Seattle, called BLVD. He might just be the stupidest brick-wielder on in the known universe. Read on... + +
+BLVD broken window +[A]fter I left and Damion was closing up, some drunk mouth-breathing knuckle-dragger starts banging on the door demanding to be let in. After Damion tells him that the gallery was closed, the Moron says "I'm going to smash your door in with a brick!" Damion at the time was talking to a couple of bad asses who offered to kick the guy's ass for us and looks like we should have taken them up on it, as an hour later, the guy pulls up to the gallery in his car, double parks, pulls a brick out of his car, and smashes BLVD's door a couple times. Cool huh? No one was in the gallery -- but the guy who lives upstairs heard it and called Damion. Also -- there is a bar a few storefronts away from us and I guess the folks on the patio saw it all. But it gets better. Moron turns to go back to his car and finds he's locked himself out. Har har! So he tries to smash his own car window in with the brick, which doesn't work... so he goes into the Rendevous to use the payphone to call a locksmith which is where he got nabbed by the cops. What a maroon. So anyway. Today is happy fun door repair day.
+ +Link + +
+

posted by + Mark Frauenfelder at + 11:04:18 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Prescription stimulants on campus +

+ In yesterday's Washington Post, Joel Garreau, author of Radical Evolution, writes about the popularity of drugs like Adderall and Provigil to increase focus and wakefulness during academically stressful times. From the article: +
"I'm a varsity athlete in crew," says Katharine Malone, a George Washington University junior. "So we're pretty careful about what we put in our bodies. So among my personal friends, I'd say the use is only like 50 or 60 percent..."

+For a senior project this semester, Christopher Salantrie conducted a random survey of 150 University of Delaware students at the university's Morris Library and Trabant Student Center. +

+"With rising competition for admissions and classes becoming harder and harder by the day, a hypothesis was made that at least half of students at the university have at one point used/experienced such 'smart drugs,' " Salantrie writes in his report. He found his hunch easy to confirm. +

+"What was a surprise, though, was the alarming rate of senior business majors who have used" the drugs, he writes. Almost 90 percent reported at least occasional use of "smart pills" at crunch times such as final exams, including Adderall, Ritalin, Strattera and others. Of those, three-quarters did not have a legitimate prescription, obtaining the pills from friends."
+Link (Thanks, Jason Tester!) + +
+

posted by + David Pescovitz at + 09:51:50 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Vintage pulp covers for classic novels +

+ + +Slate commissioned designers to produce six vintage pulp-fiction covers for classic novels like Moby Dick ("Primitive Pirate Passions Were a Prelude to Death!"), The Iliad ("Gore! Greeks! Glory!") and Alice in Wonderland ("One girl's drug-induced descent into dreamland debauchery"). The results are lovely. + +Link + +(Thanks, Fipi Lele!) + +
+ +
+

posted by + Cory Doctorow at + 08:33:24 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ LotR video clip with voices replaced by foolish groans +

+ + +In this youtube, "CJ" has taken a clip from the Lord of the Rings trilogy in which Frodo awakens in the Elf stronghold and greets his comrades and replaced all the voices with idiotic groaning and moaning and squealing, apparently voiced by someone named Olaf. The net effect is surprisingly funny! + +Link + +(Thanks, Alice!) + +
+ +
+

posted by + Cory Doctorow at + 04:36:17 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ William Gibson blogging fiction excerpts +

+ Since June 1, William GIbson has been posting irregular chunks of prose to his blog, stuff that appears to be excerpts from a novel-in-progress. It's fascinating stuff, little vignettes that hint at a really exciting bigger picture. + +
+Vianca sat cross-legged on Tito’s floor, wearing a disposable hairnet and white knit cotton gloves, with his Sony plasma screen across her knees, going over it with an Armor All wipe. When she’d wiped it completely down, it would go back into its factory packaging, which in turn would be wiped down. Tito, in his own hairnet and gloves, sat opposite her, wiping the keys of his Casio. A carton of cleaning supplies had been waiting for them in the hall, beside a new and expensive-looking vacuum-cleaner Vianca said was German. Nothing came out of this vacuum but air, she said, so there would no stray hairs or other traces left behind. Tito had helped his cousin Eusebio with exactly this procedure, though Eusebio had mainly had books, each of which had needed, according to protocol, to be flipped through for forgotten insertions and then wiped. The reasons for Eusebio’s departure had never been made clear to him. That too was protocol. +
+ +Link 1, + +Link 2, + +Link 3 + +
+

posted by + Cory Doctorow at + 12:29:17 AM + permalink + | blogs' comments + +
+

+

+ + +

+ Sunday, June 11, 2006 +

+ + + +

+ Japanese anti-foreigner comic warns against human rights act +

+
+ +Coal sez, "I've just translated and posted a rather well rendered manga from an 'emergency publication' in Japan about the dangers of protecting human rights. Japan is a little behind in legal recognition of basic human rights (including but not limited to racial discrimination etc.), and it seems the emergence of a bill to make protection of rights enforceable has a few people worried. The level of alarmism I think is particularly amusing, if that's the right word. What's also noteworthy is the constant demonising of trouble-making foreigners, and the pity the writer tries to inspire for the poor landlord who can no longer refuse to rent his house to Chinese etc. You can't make this stuff up!" + + +Link + +(Thanks, Coal!) + +
+

posted by + Cory Doctorow at + 10:54:13 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ iPod Nano boombox built into flashlight casing +

+ + +Here's a monaural boombox built into the housing for a big Eveready flashlight. The speaker fits over the mouth, and it sits over a miniature amp scavegened from a set of desktop speakers and an iPod Nano with a wireless remote. + +Link to parts-list, Link to finished item + +
+ +
+

posted by + Cory Doctorow at + 10:12:36 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ New Barenaked Ladies single as free, remixable multitracks +

+ +The Canadian band Barenaked Ladies have pre-released a track from their upcoming album Barenaked Ladies Are Me, in a four-track mix that's ready for remixing, and free. They're planning to do more of the same with their future releases. +

+I used to see BNL play at my local shopping mall, the Scarborough Town Centre, when all they'd released was an indie cassette tape with an amazing cover of Public Enemy's "Fight the Power" on it, and I'm so amazingly glad to see them still making great music. What's more, the band's frontman, Steve Page, is also fronting a group of Canadian musicians who've spoken out against DRM and suing fans and other music label shenanigans. +

+Best of all -- they're releasing the next album as a 15-song digital version as well as a 13-song CD, so I can get their music without having to take another piece of slow-decaying, space-hogging media into my already overcrowded home. + +Link + +(Thanks, Frank!) + +
+ +
+

posted by + Cory Doctorow at + 11:27:33 AM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Images from anti-DRM protest at the San Fran Apple Store +

+ +Here are some photos and a video from yesterday's anti-DRM protest at the Apple Store in San Francisco. + +Video Link, Photos Link + +
+ +
+

posted by + Cory Doctorow at + 11:19:28 AM + permalink + | blogs' comments + +
+

+

+ + +

+ Saturday, June 10, 2006 +

+ + + +

+ Responses to Jaron Lanier's crit of online collectivism +

+ Two weeks ago, Edge.org published Jaron Lanier's essay "Digital Maoism: The Hazards of the New Online Collectivism," critiquing the importance people are now placing on Wikipedia and other examples of the "hive mind," as people called it in the cyberdelic early 1990s. It's an engaging essay to be sure, but much more thought-provoking to me are the responses from the likes of Clay Shirky, Dan Gillmor, Howard Rheingold, our own Cory Doctorow, Douglas Rushkoff, and, of course, Jimmy Wales.

From Douglas Rushkoff: + + +
I have a hard time fearing that the participants of Wikipedia or even the call-in voters of American Idol will be in a position to remake the social order anytime, soon. And I'm concerned that any argument against collaborative activity look fairly at the real reasons why some efforts turn out the way they do. Our fledgling collective intelligences are not emerging in a vacuum, but on media platforms with very specific biases. +

+First off, we can't go on pretending that even our favorite disintermediation efforts are revolutions in any real sense of the word. Projects like Wikipedia do not overthrow any elite at all, but merely replace one elite — in this case an academic one — with another: the interactive media elite...

+ +While it may be true that a large number of current websites and group projects contain more content aggregation (links) than original works (stuff), that may as well be a critique of the entirety of Western culture since post-modernism. I'm as tired as anyone of art and thought that exists entirely in the realm of context and reference — but you can't blame Wikipedia for architecture based on winks to earlier eras or a music culture obsessed with sampling old recordings instead of playing new compositions. +

+Honestly, the loudest outcry over our Internet culture's inclination towards re-framing and the "meta" tend to come from those with the most to lose in a society where "credit" is no longer a paramount concern. Most of us who work in or around science and technology understand that our greatest achievements are not personal accomplishments but lucky articulations of collective realizations. Something in the air... Claiming authorship is really just a matter of ego and royalties. +
+From Cory Doctorow: +
Wikipedia isn't great because it's like the Britannica. The Britannica is great at being authoritative, edited, expensive, and monolithic. Wikipedia is great at being free, brawling, universal, and instantaneous.
+ +From Jimmy Wales (italics indicate quotes from Jaron's original essay): + + +
"A core belief of the wiki world is that whatever problems exist in the wiki will be incrementally corrected as the process unfolds." +

+My response is quite simple: this alleged "core belief" is not one which is held by me, nor as far as I know, by any important or prominent Wikipedians. Nor do we have any particular faith in collectives or collectivism as a mode of writing. Authoring at Wikipedia, as everywhere, is done by individuals exercising the judgment of their own minds. +

+ "The best guiding principle is to always cherish individuals first." +

+Indeed.
+Link

+UPDATE: Jaron Lanier writes us that he's received a lot of negative feedback from people who he thinks may not have actually read his original essay: +
+In the essay i criticized the desire (that has only recently become influential) to create an "oracle effect" out of anonymity on the internet - that's the thing i identified as being a new type of collectivism, but i did not make that accusation against the wikipedia - or against social cooperation on the net, which is something i was an early true believer in- if i remember those weird days well, i think i even made up some of the rhetoric and terminology that is still associated with net advocacy today- anyway, i specifically exempted many internet gatherings from my criticism, including the wikipedia, boingboing, google, cool tools... and also the substance of the essay was not accusatory but constructive- the three rules i proposed for creating effective feedback links to the "hive mind" being one example.
+ +
+

posted by + David Pescovitz at + 10:07:03 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Spanish castle optical effect +

+ This has been going around for a couple of days, but I just found out about it. It's a neat optical effect -- you stare at a color negative of a photo for 30 seconds (or even just 15), then move the mouse over the photo, keeping your eyes on the black dot. The photo appears in color, until you move your eyes. Link + +
+

posted by + Mark Frauenfelder at + 08:38:10 AM + permalink + | blogs' comments + +
+

+

+ + +

+ Friday, June 9, 2006 +

+ + + +

+ EFF podcast: How we kept caching legal +

+ Danny sez, "Line Noise is the new EFF podcast (RSS or iTunes); this week's episode is a chat with EFF's IP attorney Fred von Lohmann on the background to the Section 115 Reform Act (previously on Boing Boing. He explains how a good bill was used to sneak in bad precedents - including the insane idea that all temporarily cached copies on the Net and in RAM should be copyrightable and subject to licensing. +

+"Good news on that, by the way -- thanks to your calls and comments, the committee have slowed the pace of this fast-track bill, and are now working to fix the bill's language. Everyone from the Copyright Office to Radio Shack and BellSouth have now commented on the problems, so there's an excellent chance of a clear resolution." + +Link + +
+

posted by + Cory Doctorow at + 11:55:41 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Why do these people have characters on their foreheads? +

+ Nick of Square America invites you to solve a mystery. + +
 Blogger 5842 2554 1600 F2 I got this lot of slides about three years ago and I've never been able to figure out just what is going on. There are about 50 slides in all- all dating from between 1959 and 1969 and all of young women. Some, like the ones here have letters written on their foreheads, others have press type with their names on it affixed to either their temples or foreheads. Were the slides taken by a dermatologist or plastic surgeon or were these young women part of some now forgotten experiment.
Link + + +
+

posted by + Mark Frauenfelder at + 03:28:19 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Trailer for 2007 Disney Pixar movie: Ratatouille +

+ +Picture 2-9 +Apple has the trailer for the next Disney Pixar movie coming out in 2007. It's called Ratatouille and it appears to be about a Parisian rat (without a phony French accent) who, unlike other rats in his family, insists on eating only the finest food served in Paris' best restaurants. + +

The quality of the video is really nice. Don't you wish YouTube looked half as nice as this? Link + +
+

posted by + Mark Frauenfelder at + 02:48:18 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ More great old illustrations from BilbiOdyssey +

+ + Blogger 1717 1584 1600 Begnino-Bossi-1771-Petitot + Blogger 1717 1584 1600 Heemskerck-.-Lyons
+ +Why are so many drawings from earlier centuries so deliciously weird? Here are a couple I came across on one of my favorite blogs, BibliOdyssey. Link + +
+

posted by + Mark Frauenfelder at + 02:28:39 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Play the World Cup with a stream of urine +

+ +200606091411Funny photo of a urinal with a small ball and goal in it. Link + +
+

posted by + Mark Frauenfelder at + 02:12:35 PM + permalink + | blogs' comments + +
+

+

+ + + + + +

+ Wired News tells how to watch FIFA World Cup for free online +

+ Worldcup-1 A while back, law firm Baker & McKenzie sent Boing Boing a snippy letter warning us not to do something we wouldn't do even if they begged us -- broadcast live streams of the FIFA World Cup. + +

I wonder if Baker & McKenzie will send Wired News a letter complaining that Wired News is facilitating piracy for explaining a variety of ways in which FIFA World Cup fans can enjoy live video streams of the tournament on their computers without paying the rightsholder, Infront Sports & Media? + + Link

(Image courtesy groovehouse of The Grooveblog.) + +
+

posted by + Mark Frauenfelder at + 02:01:40 PM + permalink + | blogs' comments + +
+

+

+ + + +Archives +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/test/files/cy0.html b/test/files/cy0.html new file mode 100644 index 0000000..5f79961 --- /dev/null +++ b/test/files/cy0.html @@ -0,0 +1,3653 @@ + + + + #41: 1cy0.html on Hpricot + + + + + + +
+ + + + +
+ + + + + + +
+ + +

Ticket #41: 1cy0.html

+ + + + +
+ File 1cy0.html, 63.9 kB + (added by alexgutteridge, 1 month ago) +

+html +

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Line 
1
2
3
4
5<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
6<html lang="en">
7        <head>
8<link rel="alternate" type="application/rss+xml" title="RCSB PDB - Latest Released Structures" href="/pdb/rss/LastLoad">       
9                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
10                <title>RCSB PDB : Structure Explorer</title>
11                <link rel="shortcut icon" href="/pdbstatic/images/pdb.ico" type="image/x-icon">
12                <link rel="stylesheet" href="/pdb/skins/pastel/styles/pdbcomp.css" type="text/css">
13                 
14                <!-- please read /pdbstatic/common/lib/comp.js.README if you need to modify some javascript for the site -->
15                <script type="text/javascript" language="JavaScript" src="/pdbstatic/common/lib/comp.js"></script>
16                <script type="text/javascript" language="JavaScript" src="/pdbstatic/common/lib/expandable.js"></script>
17                <script type="text/javascript" language="JavaScript" src="/pdbstatic/common/lib/results.js"></script>
18                <script type="text/javascript" language="JavaScript" src="/pdbstatic/common/lib/pdbajax.js"></script>
19                <script type="text/javascript" language="JavaScript" src="/pdbstatic/common/lib/htmlhttprequest_commented.js"></script>
20                 
21                 
22               
23
24
25
26
27
28
29
30
31
32<script type="text/javascript" language="JavaScript">
33
34var resultSorts = new Array();
35
36function openWindow(url){
37      var w = window.open ("", "win", "height=600,width=800,location,menubar,resizable,scrollbars,status,toolbar");
38                w.location.href = url;
39                w.focus();
40}
41function openWindowToSize(url,width,height){
42      var w = window.open ("", "win", "height="+height+",width="+width+",left=80,top=100,location,menubar,resizable,scrollbars,status,toolbar");
43                w.location.href = url;
44                w.focus();
45}
46
47// due to the poor way that the treeview code generates the fullLink, we need to have
48// our openWindowFromNav method use numbers to reference a site if the href has any quotes
49var roboloc = '/robohelp/';
50navsites = [
51                        "http://deposit.rcsb.org",
52                        "http://sg.pdb.org",
53                        "http://targetdb.pdb.org",
54                        "http://function.rcsb.org:8080/pdb/function_distribution/index.html",
55                        "http://mmcif.pdb.org",
56                        "http://pdbml.rcsb.org",
57                        "http://sw-tools.pdb.org",
58                        "http://deposit.pdb.org/cc_dict_tut.html",
59                        "http://pepcdb.pdb.org/"
60                       
61                    ];
62helpsites = [
63            "data_deposition_and_processing/how_to_deposit.htm",
64            "validation_server/how_to_validate.htm",
65            "data_download/how_to_download.htm",
66            "search_database/how_to_search.htm",
67            "browse_database/how_to_browse.htm",
68            "molecular_viewers/introduction_to_molecular_viewers.htm",
69            "files_formats/structures/chemical_component_format/chemical_component_introduction.htm",
70            "data_download/structure_download.htm", // 7
71            "data_download/ftp_services.htm", // 8
72            "data_download/theoretical_models.htm", //9
73            "data_download/cd_rom_dvd.htm", //10
74            "structuralgenomics/sg_home.htm",
75            "structuralgenomics/targetdb.htm",
76            "structuralgenomics/pepcdb.htm",
77            "structuralgenomics/function_distributions.htm", // 14
78            "files_formats/intro_dictionaries_file_formats.htm", //15
79            "software/tools/deposition_mmcif_tools.htm", //16
80            "data_deposition_and_processing/how_to_deposit.htm", //17
81            "data_deposition_and_processing/deposition_tools_at_a_glance.htm", //18
82            "site_navigation/citing_the_pdb.htm" //19
83                    ];
84navalerts = [
85                        "Discussion Forums are not yet active.  Please check back later."
86                    ];
87function openWindowFromNav(urltype, urlnumber)
88{
89        if (urltype == 0) // new windows
90        {
91//              window.open (navsites[urlnumber], "win", "height=600,width=800,location,menubar,resizable,scrollbars,status,toolbar");
92openWindow(navsites[urlnumber]);
93        }
94        else if (urltype == 1) // robo window
95        {
96                callHelp(roboloc, helpsites[urlnumber]);
97        }
98        else if (urltype == 2) // javascript alerts
99        {
100                alert(navalerts[urlnumber]);
101        }
102}
103
104
105// You can find instructions for this file at http://www.treeview.net
106
107//Environment variables are usually set at the top of this file.
108var ICONPATH = '/pdb/skins/pastel/images/tree/';
109USETEXTLINKS = 1;
110STARTALLOPEN = 0;
111USEFRAMES = 0;
112USEICONS = 1;
113WRAPTEXT = 0;
114PRESERVESTATE = 1;
115HIGHLIGHT=1;
116ALLOWTOPLEVELRETRACTION = 1;
117
118
119
120
121var pdbPathNames = new Object(); // associative array of links to xIDs of tree
122
123function myInsDoc(nn,folder,opt,link,iconsrc)
124{
125  //if (opt == 'S')
126  {
127    if (link.substring(0,5) == '/pdb/')
128    {
129      pdbPathNames[link] = nn;
130    }
131  }
132  var myInsDocSub = insDoc(folder,gLnk(opt, nn, link.replace(/'/g, "\\'")));
133  myInsDocSub.xID = nn;
134  if (iconsrc)
135  {
136    myInsDocSub.iconSrc = iconsrc;
137  }
138  else
139  {
140    myInsDocSub.iconSrc = ICONPATH + 'ftvsquare.gif';
141  }
142  return myInsDocSub;
143}
144
145function myInsFolder(nn,folder,link)
146{
147  if (link.substring(0,5) == '/pdb/')
148  {
149    pdbPathNames[link] = nn;
150  }
151  var myInsFldSub = insFld(folder,gFld(nn, link.replace(/'/g, "\\'")));
152  myInsFldSub.xID = nn.replace(/amp;/g, '');
153  return myInsFldSub;
154}
155
156function checkLocation()
157{
158  var pn = window.location.pathname + window.location.search;
159  for (prop in pdbPathNames)
160  {
161    if (pn.indexOf(prop) >= 0)
162    {
163          var docObj;
164          docObj = findObj(pdbPathNames[prop]);
165          docObj.forceOpeningOfAncestorFolders();
166          highlightObjLink(docObj);
167          break;
168    }
169  }
170}
171
172
173
174function addHomeTree()
175{
176
177}
178
179function addSearchTree()
180{
181
182}
183
184
185
186function addExploreTree()
187{
188
189           fSub = myInsDoc('<b>1CY0<\/b>',f,'S','/pdb/explore.do?structureId=1CY0');
190
191   fSub = myInsFolder('Download Files',f,'');
192   fSubSub = myInsDoc('PDB File',fSub,'S','/pdb/download/downloadFile.do?fileFormat=pdb&amp;compression=NO&amp;structureId=1CY0');
193   fSubSub = myInsDoc('PDB gz',fSub,'S','/pdb/files/1cy0.pdb.gz');
194   fSubSub = myInsDoc('PDB File (Header)',fSub,'S','/pdb/download/downloadFile.do?fileFormat=pdb&amp;headerOnly=YES&amp;structureId=1CY0');
195   fSubSub = myInsDoc('mmCIF File',fSub,'S','/pdb/download/downloadFile.do?fileFormat=cif&amp;compression=NO&amp;structureId=1CY0');
196   fSubSub = myInsDoc('mmCIF gz',fSub,'S','/pdb/files/1cy0.cif.gz');
197   fSubSub = myInsDoc('mmCIF File (Header)',fSub,'S','/pdb/download/downloadFile.do?fileFormat=cif&amp;headerOnly=YES&amp;structureId=1CY0');
198   fSubSub = myInsDoc('PDBML/XML File',fSub,'S','/pdb/download/downloadFile.do?fileFormat=xml&amp;compression=NO&amp;structureId=1CY0');
199   fSubSub = myInsDoc('PDBML/XML gz',fSub,'S','/pdb/files/1cy0.xml.gz');
200   fSubSub = myInsDoc('PDBML/XML File (Header)',fSub,'S','/pdb/download/downloadFile.do?fileFormat=xml&amp;headerOnly=YES&amp;structureId=1CY0');
201
202       
203               fSubSub = myInsDoc('Biological Unit Coordinates',fSub,'S','/pdb/files/1cy0.pdb1.gz');
204       
205           fSub = myInsDoc('FASTA Sequence',f,'S','/pdb/download/downloadFile.do?fileFormat=FASTA&amp;compression=NO&amp;structureId=1CY0');
206
207   fSub = myInsFolder('Display Files',f,'');
208
209           fSubSub = myInsDoc('Custom Structure Summary',fSub,'S','/pdb/explore/customStructureReportForm.do?exptype=misc');
210
211   fSubSub = myInsDoc('PDB File',fSub,'B','/pdb/files/1cy0.pdb');
212   fSubSub = myInsDoc('PDB File (Header)',fSub,'B','/pdb/files/1cy0.pdb?headerOnly=YES');
213   fSubSub = myInsDoc('mmCIF File',fSub,'B','/pdb/files/1cy0.cif');
214   fSubSub = myInsDoc('mmCIF File (Header)',fSub,'B','/pdb/files/1cy0.cif?headerOnly=YES');
215   fSubSub = myInsDoc('PDBML/XML File',fSub,'B','/pdb/files/1cy0.xml');
216   fSubSub = myInsDoc('PDBML/XML (Header)',fSub,'B','/pdb/files/1cy0.xml?headerOnly=YES');
217
218           fSub = myInsFolder('Display Molecule',f,'');
219           fSubSub = myInsDoc('Image Gallery',fSub,'S','/pdb/explore/images.do?structureId=1CY0');
220           fSubSub = myInsDoc('KiNG Viewer',fSub,'S','/pdb/static.do?p=explorer/viewers/king.jsp');
221           fSubSub = myInsDoc('Jmol Viewer',fSub,'S','/pdb/static.do?p=explorer/viewers/jmol.jsp');
222           fSubSub = myInsDoc('WebMol Viewer',fSub,'S','/pdb/static.do?p=explorer/viewers/webmol.jsp');
223           fSubSub = myInsDoc('Protein Workshop',fSub,'S','/pdb/Viewers/ProteinWorkshop/protein_workshop_launch.jsp');
224           fSubSub = myInsDoc('Rasmol Viewer <br>(<b>Plugin required</b>)',fSub,'B','/pdb/download/downloadFile.do?fileFormat=PDB&amp;display=rasmol&amp;compression=NO&amp;structureId=1CY0');
225           fSubSub = myInsDoc('Swiss-PDB Viewer <br>(<b>Plugin required</b>)',fSub,'B','/pdb/download/downloadFile.do?fileFormat=PDB&amp;display=spdbv&amp;compression=NO&amp;structureId=1CY0');
226           fSubSub = myInsDoc('KiNG Help',fSub,'S','javascript:callHelp(roboLoc,\'viewers/king.htm\');',ICONPATH + 'question.gif');
227           fSubSub = myInsDoc('Jmol Help',fSub,'S','javascript:callHelp(roboLoc,\'viewers/jmol.htm\');',ICONPATH + 'question.gif');
228           fSubSub = myInsDoc('WebMol Help',fSub,'S','javascript:callHelp(roboLoc,\'viewers/webmol.htm\');',ICONPATH + 'question.gif');
229           fSubSub = myInsDoc('Protein Workshop Help',fSub,'S','javascript:callHelp(roboLoc,\'viewers/proteinworkshop.htm\');',ICONPATH + 'question.gif');
230           fSubSub = myInsDoc('QuickPDB',fSub,'S','javascript:callHelp(roboLoc,\'viewers/thequickpdb.htm\');',ICONPATH + 'question.gif');
231           
232           
233             fSubSub = myInsDoc('Asymmetric Unit /<br> Biological Molecule',fSub,'S','/pdb/static.do?p=explorer/singleimage.jsp&amp;structureId=1cy0&amp;type=asym&amp;size=500');
234           
235           fSub = myInsDoc('<b>Structural Reports</b> ',f,'S','/pdb/explore/biologyAndChemistry.do');
236           fSub = myInsDoc('<b>External Links</b> ',f,'S','/pdb/explore/externalReferences.do');
237           
238           fSub = myInsFolder('Structure Analysis ',f,'');
239           fSubSub = myInsFolder('Geometry ',fSub,'');     
240           
241           
242             fSubSubSub = myInsDoc('RCSB Graphics',fSubSub,'S','/pdb/explore/geometryGraph.do?structureId=1CY0');
243             fSubSubSub = myInsDoc('RCSB Tables',fSubSub,'S','/pdb/explore/geometryDisplay.do');
244           
245             fSubSubSub = myInsDoc('MolProbity Ramachandran Plot',fSubSub,'B','/pdb/images/1CY0_ram_m_500.pdf');
246
247                 
248                                        fSubSub = myInsFolder('Sequence Variants  ',fSub,'');
249                 
250                                                fSubSubSub = myInsDoc('TOP1_ECOLI Variants',fSubSub,'S','/pdb/search/smartSubquery.do?structureId=1CY0&variant=1&smartSearchSubtype=StructureVariantQuery&spId=TOP1_ECOLI');
251                 
252                                                fSubSubSub = myInsDoc('TOP1_ECOLI Non-Variants',fSubSub,'S','/pdb/search/smartSubquery.do?structureId=1CY0&variant=0&smartSearchSubtype=StructureVariantQuery&spId=TOP1_ECOLI');
253                   
254           fSub = myInsFolder('Help ',f,'');
255           fSubSub = myInsDoc('Structure Explorer Intro',fSub,'S','javascript:callHelp(roboLoc,\'structure_explorer/introduction_to_structure_explorer.htm\');',ICONPATH + 'question.gif');
256           fSubSub = myInsDoc('Molecular Viewers',fSub,'S','javascript:callHelp(roboLoc,\'molecular_viewers/introduction_to_molecular_viewers.htm\');',ICONPATH + 'question.gif');
257           fSubSub = myInsDoc('Structure Summary',fSub,'S','javascript:callHelp(roboLoc,\'structure_explorer/summary_information.htm\');',ICONPATH + 'question.gif');
258           fSubSub = myInsDoc('Biological Molecule',fSub,'S','javascript:callHelp(roboLoc,\'data_download/biological_unit/biological_unit_introduction.htm\');',ICONPATH + 'question.gif');
259           fSubSub = myInsDoc('Biology &amp; Chemistry',fSub,'S','javascript:callHelp(roboLoc,\'quick_links/quick_links_biology_and_chemistry.htm\');',ICONPATH + 'question.gif');
260           fSubSub = myInsDoc('Sequence Details',fSub,'S','javascript:callHelp(roboLoc,\'quick_links/quick_links_sequence_details.htm\');',ICONPATH + 'question.gif');
261           fSubSub = myInsDoc('Structural Features',fSub,'S','javascript:callHelp(roboLoc,\'quick_links/quick_links.structural_features.htm\');',ICONPATH + 'question.gif');
262           fSubSub = myInsDoc('Materials &amp; Methods (X-Ray)',fSub,'S','javascript:callHelp(roboLoc,\'quick_links/materials_and_methods/x-ray_materials_and_methods.htm\');',ICONPATH + 'question.gif');
263           fSubSub = myInsDoc('Materials &amp; Methods (NMR)',fSub,'S','javascript:callHelp(roboLoc,\'quick_links/materials_and_methods/nmr_materials_and_methods.htm\');',ICONPATH + 'question.gif');
264       
265
266}
267
268function addReportTree()
269{
270
271  fSub = myInsDoc('<b>Show Query Details<\/b>',f,'S','/pdb/static.do?p=results/queryDesc.jsp');
272  fSub = myInsDoc('Results Help',f,'S','javascript:callHelp(\'/robohelp/\',\'query_results_browser/introduction_to_results_browser.htm\');',ICONPATH + 'question.gif'); 
273 
274}
275
276function addQueriesTree()
277{
278   fSub = myInsDoc('Clear queries',f,'S','/pdb/queries/clearqueries.do');
279}
280
281</script>
282
283                <script type="text/javascript" language="JavaScript">
284                  var roboLoc = "/robohelp/";
285                </script>
286        </head>
287
288  <body bgcolor="#ffffff" style="margin:10px 10px 10px 10px;" onload="liveSearchInit();pdbBodyLoadInit();">
289
290
291<!-- Universal retriever iFrame - for debugging it's a good idea to make the height 60 or so and frameborder set to one -->
292<iframe src="/pdb/browse/menu_empty.html" name="retriever" id="retriever" width="100%" height="1" frameborder="0">
293  <!-- This Page requires a modern browser supporting IFRAMES or ILAYERS --><p>&nbsp;</p>
294</iframe>
295
296<!-- MAIN TABLE -->
297<table border="0" cellpadding="0" cellspacing="0" align="center" ><!-- for debugging use border -->
298<tbody>
299
300 <tr>
301  <td colspan="3">   
302
303 
304
305
306
307
308<script language="Javascript" type="text/javascript">
309function checkSequenceLength()
310{
311if ((document.headerQueryForm.inputQuickSearch.value.substr(0,9) == 'sequence:')&&(document.headerQueryForm.inputQuickSearch.value.length < 15))
312{
313        alert('Sequence searches must be at least 6 characters long');
314        return false;
315}
316else
317        return liveSearchSubmit();
318       
319}
320
321</script>
322<form action="/pdb/search/navbarsearch.do" onSubmit="return checkSequenceLength();" method="get" name="headerQueryForm">   
323   <table border="0" cellpadding="0" cellspacing="0" width="100%">   
324    <tr>
325     <td width="210"><a href="/pdb"><img alt="RCSB PDB Protein Data Bank | Home" title="RCSB PDB Protein Data Bank | Home" src="/pdb/skins/pastel/images/header/pdblogo.gif" width="198" border="0"></a></td>
326     <td align="right" class="headertop" colspan="2">
327      <a href="http://www.wwpdb.org/" target="_blank"><img alt="A Member of the wwPDB" title="A Member of the wwPDB" src="/pdb/skins/pastel/images/header/wwpdb.gif" width="191" height="15" border="0"></a><br/>
328      An Information Portal to Biological Macromolecular Structures
329      <br/>
330      <span class="body">
331        As of <a href="/pdb/search/smartSubquery.do?smartSearchSubtype=LastLoadQuery">Tuesday Dec 26, 2006</a>&nbsp;<a href="/pdb/rss/LastLoad" title="RSS Feed for the Latest Released Structures"><img alt="RSS Feed for the Latest Released Structures" border="0" src="/pdbstatic/images/feed-icon16x16.png"></a>
332        there are 40870 Structures
333        <a href="javascript:callHelp(roboLoc, 'search_database/latest_release/introduction_to_latest_release.htm');"><img alt="&nbsp;&nbsp;? " title="&nbsp;&nbsp;? " src="/pdb/skins/pastel/images/tree/question.gif" border="0" style="vertical-align:middle;"></a>
334        &nbsp;|&nbsp;
335        <a href="/pdb/static.do?p=general_information/pdb_statistics/index.html&amp">PDB Statistics</a><a href="javascript:callHelp(roboLoc, 'web_site/pdb_statistics.htm');"><img alt="&nbsp;&nbsp;? " title="&nbsp;&nbsp;? " src="/pdb/skins/pastel/images/tree/question.gif" border="0" style="vertical-align:middle;"></a>
336      </span>
337     </td>
338    </tr>
339
340    <tr>
341     <td style="vertical-align:top;padding-top:0.2em;">
342      <a href="/pdb/static.do?p=general_information/about_pdb/contact/index.html" class="tabblutxt">Contact Us</a> |
343      <a href="javascript:callHelp(roboLoc,'site_navigation/introduction_to_site_navigation.htm');" class="tabblutxt">Help</a> |
344      <a href="javascript:printPage('http://www.rcsb.org/pdb/explore/explore.do?structureId=1CY0');" class="tabblutxt">Print Page</a>
345     </td>
346     <td style="background-image:url('/pdb/skins/pastel/images/header/header_bg2.jpg');background-repeat: repeat-x;vertical-align:top;background-position: 0% 100%;" width="37" rowspan="2"><img src="/pdbstatic/images/spacer.gif" alt="" width="37" height="35" border="0"></td>
347
348
349     <td nowrap style="background-image:url('/pdb/skins/pastel/images/header/header_bg3.jpg');background-repeat: repeat-x;background-color:#3333FF;background-position: 0% 100%;padding-right:2px;" class="topnavlinks" rowspan="2">
350
351        <table>
352                <tr>
353                        <td nowrap class="topnavlinks">
354                                <input type="hidden" name="newSearch" value="yes">
355                                <input type="hidden" name="isAuthorSearch" value="no"  >
356                                <input type="radio" name="radioset" value="All"  checked  class="radio" onclick="javascript:document.headerQueryForm.isAuthorSearch.value='no';">PDB ID or keyword
357                                <input type="radio" name="radioset" value="Authors"  class="radio" onclick="javascript:if(this.checked){document.headerQueryForm.isAuthorSearch.value='yes';}">Author
358                        </td>
359                        <td class="topnavlinks" nowrap>
360                                <input type="text"  class="input" size="10" name="inputQuickSearch" id="livesearch" onkeypress="liveSearchStart()" onblur="setTimeout('closeResults()',10000);" >
361                                <div id="LSResult" style="display: none;"><div id="LSShadow"></div></div>
362                        </td>
363                        <td class="topnavlinks" nowrap>
364                        <input type="image" src="/pdb/skins/pastel/images/header/header_search.gif" size="61" value="Search" class="text" align="middle" name="image" alt="Search" title="Search">
365                    <a href="javascript:callHelp(roboLoc, 'search_database/top_bar_search/top_bar_search.htm');"><img alt="&nbsp;&nbsp;? " title="&nbsp;&nbsp;? " src="/pdb/skins/pastel/images/header/mainquestion.gif" border="0" style="vertical-align:middle;"></a>
366                                        | <a href="/pdb/search/advSearch.do" class="textwhite">Advanced Search</a>   
367                        </td>
368                </tr>
369        </table>         
370
371     </td>
372    </tr>
373 
374    <tr>
375     <td style="background-image:url('/pdb/skins/pastel/images/header/header_bg1.jpg');text-align:left;background-repeat: repeat-x;vertical-align:top;background-position: 0% 100%;"><img src="/pdbstatic/images/spacer.gif" alt="" width="37" height="13" border="0"></td>
376    </tr>     
377   </table>
378</form> 
379
380
381
382
383
384
385
386
387  </td>
388 </tr>
389
390 <tr valign="top">
391  <td  class="navbackground" style="width:230px;">
392
393 
394
395
396
397
398
399               
400               
401   <table border="0" cellpadding="0" cellspacing="0">
402    <tr>
403     <td class="navbackground">
404                <div id="hdrtab">
405                  <ul>
406                    <li><a href="/pdb/Welcome.do">Home</a></li>
407                    <li><a href="/pdb/static.do?p=search/index.html">Search</a></li>
408                   
409                    <li id="current"><a>Structure</a></li>
410                   
411                  </ul>
412                </div>
413          </td>
414    </tr>
415    <tr>
416     <td class="navbackground">
417                <a style="font-size:1pt;text-decoration:none;color:#FFFF99" href="http://www.treemenu.net/" target=_blank></a>
418                <span class="TreeviewSpanArea">
419                <script type="text/javascript" language="JavaScript">
420                        foldersTree = gFld('', '');
421                        foldersTree.treeID = 'ExploreRoot';
422                        foldersTree.xID = foldersTree.treeID;
423                        f = foldersTree;
424                        addExploreTree();
425                        initializeDocument();
426                        checkLocation();
427                </script>
428
429                </span>
430      </td>
431    </tr>
432    <tr>
433     <td class="homewhite" height="1"><img src="/pdbstatic/images/spacer.gif" alt="" width="1" height="1" border="0"></td>
434    </tr>
435   </table>
436
437
438
439
440
441  </td>
442
443  <td valign="top" style="vertical-align:top;">  <!-- BEGIN MAIN RIGHT -->
444  <table border="0" cellpadding="0" cellspacing="0">
445   <tr>
446     <td valign="top" class="maintd">
447        <noscript><div style="padding-left:8px;font-weight:bold;color:#FF0000;font-size:16px">This browser is either not Javascript enabled or has it turned off.<br />This site will not function correctly without Javascript.</div></noscript>
448         
449       
450
451
452
453
454
455
456
457<div id="hdrtab">
458                  <ul>
459
460                           <li><a href="/pdb/explore.do?structureId=1CY0">Structure Summary</a></li>
461                           
462                           <li><a href="/pdb/explore/biologyAndChemistry.do?structureId=1CY0">Biology & Chemistry</a></li>
463                           
464                           <li><a href="/pdb/explore/materialsAndMethods.do?structureId=1CY0">Materials & Methods</a></li>
465                           
466                           <li><a href="/pdb/explore/sequence.do?structureId=1CY0">Sequence Details</a></li>
467                           
468                           <li><a href="/pdb/explore/geometryDisplay.do?structureId=1CY0">Geometry</a></li>
469                           
470                  </ul>
471                </div>
472     </td>
473   </tr>
474
475   <tr>
476    <td>
477     <font color="RED"><b>LIMITED FUNCTIONALITY BROWSER</b></font>
478     <br />
479     <span class="static_header">
480       You are currently using a browser that is not fully compatible with this website.<br />
481       If you would like to have full functionality, please upgrade your browser. <br />
482       
483                                                                       
484        <a href="/pdb/static.do?p=home/faq.html#goodBrowsers">List of Supported & Unsupported Browsers for the RCSB Protein Data Bank Web Site</a> <br />
485
486       <br />
487     </span>
488    </td>
489   </tr>
490
491   <tr>
492    <td valign="top" class="maintd" style="padding-left:10px;">
493
494
495 
496
497
498
499 
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535<!---->
536
537
538
539
540
541<script type="text/javascript" language="JavaScript">
542        
543                function searchCitationAuthor(author, primary)
544                {
545                                document.queryCitationAuthorForm.elements['citation_author.name.value'].value = author;
546                                document.queryCitationAuthorForm.elements['citation_author.name.comparator'].value = "equals";
547                                if (primary)
548                                        document.queryCitationAuthorForm.elements['citation_author.citation_id.value'].value="primary";
549                                document.queryCitationAuthorForm.submit();
550                }
551
552                function searchStructureAuthor(author)
553                {
554                                document.queryStructureAuthorForm.elements['authName'].value = author;
555                                document.queryStructureAuthorForm.submit();
556                }
557               
558                function searchPdbxKeyword(keyword)
559                {
560                  document.queryKeywordsForm.elements['struct_keywords.pdbx_keywords.value'].value = keyword;
561                  document.queryKeywordsForm.submit();
562                }
563               
564                function searchLigand(id)
565                {
566                                document.ligandQueryForm.elements['chem_comp.id.value'].value = id;
567                                document.ligandQueryForm.elements['chem_comp.id.comparator'].value = "=";
568                                document.ligandQueryForm.submit();
569                }
570                function searchEc(ec)
571                {
572                                document.ecQueryForm.elements['entity.pdbx_ec.value'].value = ec;
573                                document.ecQueryForm.elements['entity.pdbx_ec.comparator'].value = "=";
574                                document.ecQueryForm.submit();
575                }
576                function searchSpaceGroup(sg)
577                {
578                        document.sgQueryForm.elements['symmetry.space_group_name_H-M.value'].value = sg;
579                        document.sgQueryForm.elements['symmetry.space_group_name_H-M.comparator'].value = "=";
580                        document.sgQueryForm.submit();
581                }
582               
583                function searchSource(natSci, natCommon, genSci, genCommon)
584                {
585                        document.srcQueryForm.elements['entity_src_nat.pdbx_organism_scientific.value'].value = natSci;
586                        document.srcQueryForm.elements['entity_src_nat.common_name.value'].value = natCommon;
587                        document.srcQueryForm.elements['entity_src_gen.pdbx_gene_src_scientific_name.value'].value = genSci;
588                        document.srcQueryForm.elements['entity_src_gen.gene_src_common_name.value'].value = genCommon;
589                        document.srcQueryForm.submit();
590                }
591               
592        </script>
593                                       
594
595
596
597<script type="text/javascript" language="JavaScript">
598
599        function queryByExample(s, t)
600        {
601        }
602        function FW_startTimeout()
603        {
604        }
605        function removeHighlight()
606        {
607        }
608
609</script>
610
611        <table cellpadding="2" cellspacing="2" border="0" style="text-align: left; width: 100%;">
612          <tbody>
613                <tr>
614                  <td style="vertical-align: top;">
615                         <table cellpadding="5" cellspacing="2" border="0" style="text-align: left; width: 100%;">
616                           <tbody>
617                                 <tr>
618                                   <td>
619                <!--div id="hdrtab">
620                  <ul>
621                    <li id="current"><a href="#">Structure Summary</a></li>
622                    <li><a href="/pdb/explore/biologyAndChemistry.do">Biology & Chemistry</a></li>
623                    <li><a href="/pdb/explore/materialsAndMethods.do">Materials & Methods</a></li>
624                    <li><a href="/pdb/explore/sequence.do">Sequence Details</a></li>
625                    <li><a href="/pdb/explore/geometryDisplay.do">Geometry</a></li>
626                  </ul>
627                </div-->
628    </td>
629                                   <td style="text-align: right;">
630       
631                                       
632
633
634                                                <span class="se_pagetitle">1CY0&nbsp;</span>
635                                                <a href="/pdb/files/1cy0.pdb" title="Display PDB file" target="_blank"><img src="/pdbstatic/images/summary.jpg" alt="Display PDB file" border='0'></a>
636
637                                   </td>
638                                 </tr>
639                           </tbody>
640                         </table>
641                         <table cellpadding="5" cellspacing="5" border="0"  style="text-align: left; width: 100%;">
642                          <tbody>
643                                <tr class="se_back1">
644                                        <td width="15%" align="right" valign="top" class="se_item">
645                                                Title
646                                        </td>
647                                        <td width="85%" valign="top" class="se_datalarge1">
648                                                       
649                                                        COMPLEX OF E.COLI DNA TOPOISOMERASE I WITH 3'-5'-ADENOSINE DIPHOSPHATE
650                                                       
651                                                        <img src="/pdbstatic/explorer/images/spacer.gif" alt="" name="StructureTitle">
652                                        </td>
653                                </tr>
654                                <tr class="se_back2">
655                                        <td width="15%" align="right" class="se_item">
656                                                Authors
657                                        </td>
658                                        <td width="85%" >
659                                         <form action="/pdb/search/smartSubquery.do" method="get" name="queryStructureAuthorForm">
660                                                 <input type="hidden" name="authName" value="">
661                                                 <input type="hidden" name="smartSearchSubtype" value="AuthorQuery">
662                                                 <input type="hidden" name="display" value="true">
663                                                  <a class="seAuthors" onmouseover="this.className='seAuthorsHover';" onmouseout="this.className='seAuthors';" onclick="searchStructureAuthor('Feinberg, H.');">Feinberg, H.</a>,&nbsp;&nbsp;<a class="seAuthors" onmouseover="this.className='seAuthorsHover';" onmouseout="this.className='seAuthors';" onclick="searchStructureAuthor('Changela, A.');">Changela, A.</a>,&nbsp;&nbsp;<a class="seAuthors" onmouseover="this.className='seAuthorsHover';" onmouseout="this.className='seAuthors';" onclick="searchStructureAuthor('Mondragon, A.');">Mondragon, A.</a>
664                                                <img src="/pdbstatic/explorer/images/spacer.gif" alt="" name="StructureExperimentAuthors">
665                                        </form>
666                                        </td>
667                                </tr>
668                                <tr class="se_back1">
669                                        <td width="15%" align="right" class="se_item">
670                                         <form action="/pdb/search/smartSubquery.do" method="get" name="queryCitationAuthorForm">
671                                                 <input type="hidden" name="citation_author.name.value" value="">
672                                                 <input type="hidden" name="citation_author.name.comparator" value="contains">
673                                                 <input type="hidden" name="citation_author.citation_id.value" value="">
674                                                 <input type="hidden" name="smartSearchSubtype" value="CitationAuthorQuery">
675                                                 <input type="hidden" name="display" value="true">
676                                        </form>
677                                                Primary Citation&nbsp;&nbsp;
678                                        </td>
679                                        <td width="85%" class="se_datasmall1">
680                                                <a class="sePrimarycitations" onmouseover="this.className='sePrimarycitationsHover';" onmouseout="this.className='sePrimarycitations';" onclick="searchCitationAuthor('Feinberg, H.', true);">Feinberg, H.</a>,&nbsp;&nbsp;<a class="sePrimarycitations" onmouseover="this.className='sePrimarycitationsHover';" onmouseout="this.className='sePrimarycitations';" onclick="searchCitationAuthor('Changela, A.', true);">Changela, A.</a>,&nbsp;&nbsp;<a class="sePrimarycitations" onmouseover="this.className='sePrimarycitationsHover';" onmouseout="this.className='sePrimarycitations';" onclick="searchCitationAuthor('Mondragon, A.', true);">Mondragon, A.</a>
681                                                <img src="/pdbstatic/explorer/images/spacer.gif" alt="" name="CitationArticleAuthors">
682                                               
683                                                Protein-nucleotide interactions in E. coli DNA topoisomerase I.
684                                               
685                                                <img src="/pdbstatic/explorer/images/spacer.gif" alt="" name="CitationArticleTitle">
686                                               
687                                                <span class="se_journal">Nat.Struct.Biol.</span>
688                                               
689
690                                                <img src="/pdbstatic/explorer/images/spacer.gif" alt="" name="CitationJournalName">
691                                               
692                                                <span class="se_journal">v6</span>
693                                               
694                                                <img src="/pdbstatic/explorer/images/spacer.gif" alt="" name="CitationJournalVolume">
695                                               
696                                                <span class="se_journal">pp.961-968</span>
697                                               
698                                                ,
699                                                        <span class="se_journal">1999</span>
700                                               
701
702                                                <img src="/pdbstatic/explorer/images/spacer.gif" alt="" name="CitationJournalYear">
703                                                       
704                                               
705                                                <br>
706                                                [&nbsp;<a class="se_datalarge" href="/pdb/explore/pubmed.do?structureId=1CY0" name="Abstract" ALT="View Searchable PubMed Abstract" TITLE="View Searchable PubMed Abstract">Abstract</a>&nbsp;]&nbsp;&nbsp;&nbsp;
707                                <a class="se_datalarge" href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&amp;db=PubMed&amp;dopt=Abstract&amp;list_uids=10504732" target="resource_window">
708                                        <img src="/pdbstatic/explorer/images/abstract_icon.gif" BORDER="0" ALT="View PubMed Abstract at NCBI" TITLE="View PubMed Abstract at NCBI">
709                                               
710                                        </td>
711                                </tr>
712                                <tr class="se_back2">
713                                        <td width="15%" align="right" class="se_item">
714                                                History
715                                        </td>
716                                        <td width="85%" class="se_datalarge2">
717                                                <span class="se_subitem">Deposition&nbsp;&nbsp;</span>
718                                                1999-08-31
719                                                <img src="/pdbstatic/explorer/images/spacer.gif" alt="" name="DepositionDate">
720                                                       
721                                                <span class="se_subitem">&nbsp;Release&nbsp;</span>
722                                                2000-03-08
723                                                <img src="/pdbstatic/explorer/images/spacer.gif" alt="" name="ReleaseDate">
724
725                                         </td>
726                                </tr>
727                                <tr class="se_back1">
728                                        <td width="15%" align="right" class="se_item">
729                                                Experimental Method
730                                        </td>
731                                        <td width="85%" class="se_datalarge1">
732                                                <span class="se_subitem">Type&nbsp;&nbsp;</span>
733                                                X-RAY DIFFRACTION
734                                                <img src="/pdbstatic/explorer/images/spacer.gif" alt="">
735                                                <span class="se_subitem">Data</span>
736
737
738                <a class="se_datasmall1">N/A</a>
739       
740
741
742                                                </td></tr>
743
744
745                <tr class="se_back2">
746                        <td width="15%" align="right" class="se_item">
747                                Parameters&nbsp;&nbsp;
748                        </td>
749                        <td width="85%" class="se_datalarge2">
750                       
751                         <form action="/pdb/search/smartSubquery.do" method="get" name="sgQueryForm">
752                                 <input type="hidden" name="smartSearchSubtype" value="SpaceGroupQuery">
753                                 <input type="hidden" name="display" value="true">
754                                <input type="hidden" name="symmetry.space_group_name_H-M.value" value="">
755                                <input type="hidden" name="symmetry.space_group_name_H-M.comparator" value="=">
756                       
757                                <table border="0" cellpadding="1" cellspacing="1" width="100%">
758                                        <tr class="se_subitem2">
759                                                <td width="20%">
760                                                        Resolution[&Aring;]
761                                                    <a href='/pdb/statistics/histogram.do?mdcat=refine&amp;mditem=ls_d_res_high&amp;minLabel=0&amp;maxLabel=5&amp;numOfbars=10'>
762                                                      <img src='/pdbstatic/images/histogram16x16.jpg' border=0 title='View a histogram of Resolution' alt='View a histogram of Resolution'>
763                                                    </a>
764                                                </td>
765                                                <td width="20%">
766                                                        R-Value
767                                                </td>
768                                                <td width="20%">
769                                                        R-Free
770                                                <td width="25%">
771                                                        Space Group
772                                                </td>
773                                        </tr>
774                                        <tr class="se_subitem2">
775                                            <td width="20%" class="se_datalarge2">
776                                                           2.45
777                                                        <img src="/pdbstatic/explorer/images/spacer.gif" alt="" name="Resolution">
778                                                </td>
779                                                <td width="20%" align="left" class="se_datalarge2">
780                                                        0.220
781                                                        (obs.)
782                                                </td>
783                                                <td width="20%" align="left" class="se_datalarge2">
784                                                        0.274
785                                                       
786                                                </td>
787                                                <td width="25%" class="se_datalarge2">
788                                                               
789                                                  <a class="se_datasmall" onclick="searchSpaceGroup('P 21 21 21');" onmouseover="this.className='se_datasmallHover'" onmouseout="this.className='se_datasmall'">
790                                                  P 2<sub>1</sub> 2<sub>1</sub> 2<sub>1</sub>
791                                                  </a>
792                                                           
793                                                        <img src="/pdbstatic/explorer/images/spacer.gif" alt="" name="SpaceGroup">
794                                                </td>
795                                   </tr>
796                        </table>
797                        </form>
798                        </td>
799                </tr>
800                <tr class="se_back1">
801                        <td width="15%" align="right" class="se_item">
802                                Unit Cell&nbsp;&nbsp;
803                        </td>
804                        <td width="85%" class="se_datalarge1" valign="top">
805                                <table border="0" cellpadding="1" cellspacing="1"  width="100%">
806                                        <tr class="se_subitem1">
807                                                <td width="20%">
808                                                        <span class="se_unitcellitem">Length [&Aring;]</span>
809                                                </td>
810                                                <td width="13%">
811                                                        a
812                                                </td>
813                                                <td width="13%" >
814                                                       
815                                                        <span class="se_datasmall1">63.04</span>
816                                                       
817                                                </td>
818                                                <td width="13%" >
819                                                        b
820                                                </td>
821                                                <td width="13%">
822                                                       
823                                                        <span class="se_datasmall1">73.31</span>
824                                                       
825                                                </td>
826                                                <td width="13%" >
827                                                        c
828                                                </td>
829                                                <td width="15%" >
830                                                       
831                                                        <span class="se_datasmall1">134.46</span>
832                                                       
833                                                </td>
834                                        </tr>
835                                        <tr class="se_subitem1">
836                                                <td width="20%">
837                                                        <span class="se_unitcellitem">Angles [&#176;]</span>
838                                                </td>
839                                                <td width="13%" >
840                                                        alpha
841                                                </td>
842                                                <td width="13%" >
843                                                       
844                                                        <span class="se_datasmall1">90.00</span>&nbsp;
845                                                       
846                                                </td>
847                                                <td width="13%">
848                                                        beta
849                                                </td>
850                                                <td width="13%" >
851                                                       
852                                                        <span class="se_datasmall1">90.00</span>&nbsp;
853                                                       
854                                                </td>
855                                                <td width="13%" >
856                                                        gamma
857                                                </td>
858                                                <td width="15%" >
859                                                       
860                                                        <span class="se_datasmall1">90.00</span>&nbsp;
861                                                       
862                                                </td>
863                                        </tr>
864                                </table>
865                        </td>
866                </tr>
867
868               
869            <tr class="se_back2">
870                        <td width="15%" align="right" valign="top" class="se_item">
871                                Molecular Description  Asymmetric Unit
872                        </td>
873                        <td width="85%" class="se_datalarge2" valign="top">
874                       
875                         <form action="/pdb/search/smartSubquery.do" method="get" name="ecQueryForm">
876                                 <input type="hidden" name="smartSearchSubtype" value="EnzymeClassificationQuery">
877                                 <input type="hidden" name="display" value="true">
878                                <input type="hidden" name="entity.pdbx_ec.value" value="">
879                                <input type="hidden" name="entity.pdbx_ec.comparator" value="=">
880
881                                <!-- %=org.pdb.util.middle.MoleculeDescription.getDescription(myStructureId)%><br-->
882
883       
884                                <span class="se_subitem"><br>Polymer:</span>&nbsp;1&nbsp;&nbsp;
885<span class="se_subitem">Molecule:</span>&nbsp;DNA TOPOISOMERASE I&nbsp;&nbsp;
886<span class="se_subitem">Fragment:</span>&nbsp;67 KDA N-TERMINAL FRAGMENT OF E.COLI TOPOISOMERASE I&nbsp;&nbsp;
887<span class="se_subitem">Chains:</span>&nbsp;A&nbsp;&nbsp;
888<span class="se_subitem">EC no.:</span>&nbsp;<a class="se_datasmall" onclick="searchEc('5.99.1.2');" onmouseover="this.className='se_datasmallHover'" onmouseout="this.className='se_datasmall'">5.99.1.2</a>&nbsp;<a class="se_datalarge" href="http://www.chem.qmul.ac.uk/iubmb/enzyme/EC5/99/1/2.html" target="resource_window"><img src="/pdbstatic/explorer/images/iubmb_icon.gif" BORDER="0" ALT="Go to IUBMB EC entry" TITLE="Go to IUBMB EC entry"></a>&nbsp;
889&nbsp;
890                        </form>                                 
891
892                       
893                                         <form action="/pdb/search/smartSubquery.do" method="get" name="queryKeywordsForm">
894                                                 <input type="hidden" name="smartSearchSubtype" value="StructureKeywordsQuery">
895                                                 <input type="hidden" name="display" value="true">
896                                                 <input type="hidden" name="struct_keywords.pdbx_keywords.value" value="">
897                                                 <input type="hidden" name="struct_keywords.pdbx_keywords.comparator" value="startswith">
898                                        </form>
899
900
901                      <img src="/pdbstatic/explorer/images/spacer.gif" alt="" name="Compound">
902                                        </td>
903                                </tr>
904                                <tr class="se_back1">
905                                        <td width="15%" align="right" valign="top" class="se_item">
906                                                Classification
907                                        </td>
908                                        <td width="40%" class="se_datalarge1">
909                                               
910                                                <span class="qrb_value">
911                                                  <a class="sePrimarycitations" onmouseover="this.className='sePrimarycitationsHover';" onmouseout="this.className='sePrimarycitations';" onclick="searchPdbxKeyword('ISOMERASE');">
912                                                    Isomerase
913                                                  </a>
914                                                </span>
915                                               
916                                                <img src="/pdbstatic/explorer/images/spacer.gif" alt="" name="StructureSummary">
917
918                                        </td>
919                                </tr>
920                        </tbody>
921                  </table>
922                  </td>
923                  <td style="vertical-align: top; text-align: right; width: 250px;">
924                               
925
926
927
928
929
930
931
932
933
934
935<script type="text/javascript" language="JavaScript">
936        
937        var isImage = "bio";
938        function switchStructureImage()
939        {
940                if (isImage == "bio") {
941                        document.switchImageForm.structureImageButton.value = "Asymmetric Unit";
942                        document.switchImageForm.structureImage.src = '/pdb/images/1cy0_asym_r_250.jpg';
943                        isImage = "asym";
944                }
945                else {
946                        document.switchImageForm.structureImageButton.value = "Biological Molecule";
947                        //structureImageText.innerText = "Biological Molecule";
948                        document.switchImageForm.structureImage.src = '/pdb/images/1cy0_bio_r_250.jpg';
949                        isImage = "bio";
950                }
951        }
952</script>
953
954
955
956<form name="switchImageForm" action="">
957
958
959<table border="0" cellpadding="0" cellspacing="0" width="256">
960        <tr class="homedark">
961                <td class="putih4">&nbsp;Images and Visualization</td>
962                <td align="right" valign="top"><img
963                        src="/pdbstatic/home/tablecorner.gif" alt="" border="0"></td>
964        </tr>
965        <tr>
966                <td colspan="2">
967                <table border="0" cellpadding="1" cellspacing="0" width="100%"
968                        class="homedark">
969                        <tr>
970                                <td>
971                                <table border="0" cellpadding="1" cellspacing="0" width="100%"
972                                        class="homewhite">
973
974
975
976
977                                        <!--table border="0" width="250" align="right" bgcolor="#9999cc"-->
978                                       
979                                        <tr>
980                                                <td align="center"><font size="2" face="Arial, Arial, Helvetica">Biological
981                                                Molecule / Asymmetric Unit</font></td>
982                                        </tr>
983                                        <tr>
984                                                <td align="center"><img id="structureImage" name="structureImage"
985                                                        src="/pdb/images/1cy0_asym_r_250.jpg" border="0"
986                                                        alt="Biological Molecule / Asymmetric Unit Image for 1CY0">
987                                                </td>
988                                        </tr>
989                                       
990                                        <tr>
991                                                <td align="center" class="it_item">
992                                                <table>
993                                                        <tr>
994                                                                <td class="it_item" colspan="4" align="center">Display Options</td>
995                                                        </tr>
996                                                        <tr>
997                                                                <td align="center"><a class="imagetable"
998                                                                        href="/pdb/static.do?p=explorer/viewers/king.jsp"
999                                                                        title="KiNG requires Java">KiNG</a></td>
1000                                                        </tr>
1001                                                        <tr>
1002                                                                <td align="center"><a class="imagetable"
1003                                                                        href="/pdb/static.do?p=explorer/viewers/jmol.jsp"
1004                                                                        title="Jmol requires Java">Jmol</a></td>
1005                                                        </tr>
1006                                                        <tr>
1007                                                                <td align="center"><a class="imagetable"
1008                                                                        href="/pdb/static.do?p=explorer/viewers/webmol.jsp"
1009                                                                        title="WebMol requires Java">WebMol</a></td>
1010                                                        </tr>
1011                                                        <tr>
1012                                                                <td align="center"><a class="imagetable"
1013                                                                        href="/pdb/Viewers/ProteinWorkshop/protein_workshop_launch.jsp"
1014                                                                        title="ProteinWorkshop requires Java">Protein Workshop</a></td>
1015                                                        </tr>
1016                                                        <tr><td align="center"><a class="imagetable" href="/pdb/static.do?p=Viewers/QuickPDB/quickPDBApplet.jsp" title="QuickPDB requires Java">QuickPDB</a></td></tr>
1017                                                        <tr>
1018                                                                <td align="center"><a class="imagetable"
1019                                                                        href="/pdb/explore/images.do?structureId=1CY0">All
1020                                                                Images</a></td>
1021                                                        </tr>
1022
1023
1024                                                        <!--
1025                                <tr>
1026                                        <td class="it_item">Web Start&nbsp;&nbsp;</td>
1027                                        <td><a class="imagetable" href="/pdb/Viewers/king.jsp" title="King requires Java">KiNG</a></td>
1028                                        <td><a class="imagetable" href="/pdb/Viewers/jmol.jsp" title="Jmol requires Java">Jmol</a></td>
1029                                        <td><a class="imagetable" href="/pdb/Viewers/webmol.jsp" title="WebMol requires Java">WebMol</a></td>
1030                                </tr>
1031                                -->
1032                                                </table>
1033                                                </td>
1034                                        </tr>
1035
1036
1037                                </table>
1038                                </td>
1039
1040                        </tr>
1041                </table>
1042                </td>
1043        </tr>
1044</table>
1045
1046</form>
1047
1048                  </td>
1049                </tr>
1050          </tbody>
1051        </table>
1052
1053
1054        <table border="0" cellpadding="4" cellspacing="4" width="100%">
1055                                        <tr class="se_back2">
1056                                                <td width="15%" align="right" valign="top" class="se_item">
1057                                                        Source
1058                                                 <form action="/pdb/search/smartSubquery.do" method="get" name="srcQueryForm">
1059                                                        <!--  searchSource(natSci, natCommon, genSci, genCommon) -->
1060                                                         <input type="hidden" name="smartSearchSubtype" value="CifFieldsQuery">
1061                                                         <input type="hidden" name="entity_src_nat.pdbx_organism_scientific.value" value="">
1062                                                         <input type="hidden" name="entity_src_nat.common_name.value" value="">
1063                                                         <input type="hidden" name="entity_src_gen.pdbx_gene_src_scientific_name.value" value="">
1064                                                         <input type="hidden" name="entity_src_gen.gene_src_common_name.value" value="">
1065                                                </form>
1066                                                </td>
1067                                                <td width="85%" class="se_datalarge2" valign="top">
1068               
1069                        <span class="se_subitem">Polymer:</span>
1070                                        &nbsp;1 &nbsp;&nbsp;
1071                                        <span class="se_subitem">Scientific Name:</span>
1072                                        <span class="qrb_value">
1073                                          <a class="sePrimarycitations" onmouseover="this.className='sePrimarycitationsHover';" onmouseout="this.className='sePrimarycitations';" onclick="searchSource('', '', 'ESCHERICHIA COLI', '');">
1074                                            &nbsp;Escherichia coli&nbsp;&nbsp;
1075                                          </a>
1076                                        </span>
1077                                        <a class="se_datalarge" href="http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=562" target="resource_window"><img src="/pdbstatic/explorer/images/taxonomy_icon.gif" BORDER="0" ALT="Go to NCBI Taxonomy entry" TITLE="Go to NCBI Taxonomy entry"></a>
1078               
1079                                        <span class="se_subitem">Common Name:</span>
1080                                        <span class="qrb_value">
1081                                          <a class="sePrimarycitations" onmouseover="this.className='sePrimarycitationsHover';" onmouseout="this.className='sePrimarycitations';" onclick="searchSource('', '', '', 'BACTERIA');">
1082                                            &nbsp;Bacteria&nbsp;&nbsp;
1083                                          </a>
1084                                        </span>
1085               
1086                                        <span class="se_subitem">Expression system:</span>
1087                                        <span class="qrb_value">
1088                                          <a class="sePrimarycitations" onmouseover="this.className='sePrimarycitationsHover';" onmouseout="this.className='sePrimarycitations';" onclick="searchSource('', '', 'ESCHERICHIA COLI', '');">
1089                                            &nbsp;Escherichia coli&nbsp;&nbsp;
1090                                          </a>
1091                                        </span>
1092
1093       
1094           <img src="/pdbstatic/explorer/images/spacer.gif" alt="" name="Source">
1095                                        </td>
1096                                </tr>
1097                                       
1098                                <tr class="se_back1">
1099                                        <td width="15%" align="right" class="se_item">
1100                                                Related PDB Entries
1101                                        </td>
1102                                        <td width="85%" class="se_datalarge1">
1103                                        <table border="0" cellpadding="1" cellspacing="1" width="100%">
1104                                                <tr>
1105                                                        <td width="20%">
1106                                                                <span class="se_subitem">Id</span>
1107                                                        </td>
1108                                                        <td width="80%">
1109                                                                <span class="se_subitem">Details</span>
1110                                                        </td>
1111                                                </tr>
1112                 
1113                                <tr>
1114                                         <td width="15%" class="se_datalarge1">
1115                                                <a class="se_datalarge" href="/pdb/explore.do?structureId=1CYY" >1CYY</a>&nbsp;
1116                                         </td>
1117                                         <td width="65%" class="se_datalarge1">
1118                                                 Crystal structure of the 30 kDa fragment of E. coli DNA topoisomerase I. Hexagonal form&nbsp;
1119                                         </td>
1120                                 </tr>
1121               
1122                                <tr>
1123                                         <td width="15%" class="se_datalarge1">
1124                                                <a class="se_datalarge" href="/pdb/explore.do?structureId=1CY9" >1CY9</a>&nbsp;
1125                                         </td>
1126                                         <td width="65%" class="se_datalarge1">
1127                                                 Crystal structure of the 30 kDa fragment of E. coli DNA topoisomerase I. Monoclinic form&nbsp;
1128                                         </td>
1129                                 </tr>
1130               
1131                                <tr>
1132                                         <td width="15%" class="se_datalarge1">
1133                                                <a class="se_datalarge" href="/pdb/explore.do?structureId=1CY8" >1CY8</a>&nbsp;
1134                                         </td>
1135                                         <td width="65%" class="se_datalarge1">
1136                                                 Complex of E.coli DNA topoisomerase I with 5'-thymidine monophosphate and 3'-thymidine monophosphate&nbsp;
1137                                         </td>
1138                                 </tr>
1139               
1140                                <tr>
1141                                         <td width="15%" class="se_datalarge1">
1142                                                <a class="se_datalarge" href="/pdb/explore.do?structureId=1CY7" >1CY7</a>&nbsp;
1143                                         </td>
1144                                         <td width="65%" class="se_datalarge1">
1145                                                 Complex of E.coli DNA topoisomerase I with 5'-thymidine monophosphate&nbsp;
1146                                         </td>
1147                                 </tr>
1148               
1149                                <tr>
1150                                         <td width="15%" class="se_datalarge1">
1151                                                <a class="se_datalarge" href="/pdb/explore.do?structureId=1CY6" >1CY6</a>&nbsp;
1152                                         </td>
1153                                         <td width="65%" class="se_datalarge1">
1154                                                 Complex of E.coli DNA topoisomerase I with 3'-thymidine monophosphate&nbsp;
1155                                         </td>
1156                                 </tr>
1157               
1158                                <tr>
1159                                         <td width="15%" class="se_datalarge1">
1160                                                <a class="se_datalarge" href="/pdb/explore.do?structureId=1CY4" >1CY4</a>&nbsp;
1161                                         </td>
1162                                         <td width="65%" class="se_datalarge1">
1163                                                 Complex of E.coli DNA topoisomerase I with 5'pTpTpTp3'&nbsp;
1164                                         </td>
1165                                 </tr>
1166               
1167                                <tr>
1168                                         <td width="15%" class="se_datalarge1">
1169                                                <a class="se_datalarge" href="/pdb/explore.do?structureId=1CY2" >1CY2</a>&nbsp;
1170                                         </td>
1171                                         <td width="65%" class="se_datalarge1">
1172                                                 Complex of E.coli DNA topoisomerase I with TpTpTp3'&nbsp;
1173                                         </td>
1174                                 </tr>
1175               
1176                                <tr>
1177                                         <td width="15%" class="se_datalarge1">
1178                                                <a class="se_datalarge" href="/pdb/explore.do?structureId=1CY1" >1CY1</a>&nbsp;
1179                                         </td>
1180                                         <td width="65%" class="se_datalarge1">
1181                                                 COMPLEX OF E.COLI DNA TOPOISOMERASE I WITH 5'pTpTpT&nbsp;
1182                                         </td>
1183                                 </tr>
1184                               
1185                         </table>
1186                        </td>
1187                </tr>                           
1188                       
1189        <!-- Display one or more non - polymers such as ligands here -->
1190               
1191                <tr class="se_back2">
1192                        <td width="15%" align="right" valign="top" class="se_item">
1193                                Chemical Component&nbsp;&nbsp;
1194                        </td>
1195                        <td width="85%" valign="top">
1196                                <table border="0" cellpadding="1" cellspacing="1"  width="100%" >
1197                                 <tr class="se_subitem2">
1198                                         <td width="10%">
1199                                                 Identifier
1200                                         </td>
1201                                         <td width="35%">
1202                                                 Name
1203                                         </td>
1204                                         <td width="25%">
1205                                                 Formula
1206                                         </td>
1207                                         <td width="20%">
1208                                                 Drug Similarity
1209                                         </td>
1210                                         <td width="20%">
1211                                                 Ligand Structure
1212                                         </td>
1213                                         
1214                                         <td width="20%">
1215                                                 Ligand Interaction
1216                                         </td>
1217                                         
1218                                         <td>
1219                                                <form action="/pdb/search/smartSubquery.do" method="get" name="ligandQueryForm">
1220                                                 <input type="hidden" name="smartSearchSubtype" value="LigandIdQuery">
1221                                                 <input type="hidden" name="display" value="true">
1222                                                        <input type="hidden" name="chem_comp.id.value" value="">
1223                                                        <input type="hidden" name="chem_comp.id.comparator" value="=">
1224                                                </form>
1225                                         </td>
1226                                 </tr>
1227                                 
1228                 
1229                                 <tr>
1230                                         <td width="5%" class="se_datalarge2" valign="middle">
1231                                                        <a class="se_datalarge" onclick="searchLigand('A3P');" onmouseover="this.className='se_datalargeHover'" onmouseout="this.className='se_datalarge'">A3P</a>
1232                                            <img src="/pdbstatic/explorer/images/spacer.gif" alt="" name="NonPolymerEntities">&nbsp;
1233                                         </td>
1234                                         <td width="30%" class="se_datalarge2">
1235                                                ADENOSINE-3'-5'-DIPHOSPHATE&nbsp;
1236                                         </td>
1237                                         <td width="20%" class="se_formula2">
1238                                                C<sub>1</sub><sub>0</sub> H<sub>1</sub><sub>5</sub> N<sub>5</sub> O<sub>1</sub><sub>0</sub> P<sub>2</sub> &nbsp;
1239                                         </td>
1240                                         <td width="10%" class="se_datalarge2">
1241                                                 <a class="se_datasmall" href="http://bioinformatics.charite.de/superligands/drug_similarity.php?hetero=A3P" target=resource_window>
1242                                                     [ View ]
1243                                                 </a>
1244                                         </td>
1245                                         <td width="15%" class="se_datalarge2">
1246                                                 <a class="se_datasmall" href="/pdb/explore/marvin.do?handler=structureExplorer&amp;hetId=A3P&amp;sid=1CY0">
1247                                                     [ View ]
1248                                                 </a>
1249                                         </td>
1250                                         
1251                                         <td width="20%" class="se_datalarge2">
1252                                                 <a class="se_datasmall" href="/pdb/explore/ligand3d.jnlp?hetId=A3P">
1253                                                     [ View ]
1254                                                 </a>
1255                                         </td>
1256                                         
1257                                 </tr>
1258                       
1259                       
1260                                </table>
1261                         </td>
1262                    </tr>
1263   
1264     
1265
1266 <tr class="se_back1">
1267                                        <td width="15%" align="right" valign="top" class="se_item">
1268                                                <span class="external_ref">SCOP Classification <font size="-2">(version&nbsp;1.69)</font></span>
1269                                        </td>
1270                                        <td width="85%" valign="top">
1271                                    <table border="0" cellpadding="1" cellspacing="1"  width="100%" >
1272                                             <tr class="se_subitem1">
1273                                                    <td width="12%">
1274                                                           Domain Info
1275                                                   </td>
1276                                                    <td width="13%">
1277                                                           Class
1278                                                   </td>
1279                                                    <td width="15%">
1280                                                           Fold
1281                                                   </td>
1282                                                   <td width="15%">
1283                                                          Superfamily
1284                                                   </td>
1285                                                   <td width="15%">
1286                                                          Family
1287                                                   </td>
1288                                                   <td width="15%">
1289                                                          Domain
1290                                                   </td>
1291                                                   <td width="15%">
1292                                                         Species
1293                                                    </td>
1294                                         </tr>
1295
1296                                         <tr>
1297                                        <td width="12%" class="se_datasmall1">
1298                                                d1cy0a_
1299                                        </td>
1300
1301                                                          <td width="13%" class="se_datasmall1">
1302                                                                          <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=11&amp;n=56572"> Multi-domain proteins (alpha and beta)</a>
1303                                                          </td>
1304
1305                                                          <td width="15%" class="se_datalarge1">
1306                                                                          <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=11&amp;n=56711"> Prokaryotic type I DNA topoisomerase</a>
1307                                                          </td>
1308
1309                                                          <td width="15%" class="se_datalarge1">
1310                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=11&amp;n=56712"> Prokaryotic type I DNA topoisomerase</a>
1311                                                          </td>
1312
1313                                                          <td width="15%" class="se_datalarge1">
1314                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=11&amp;n=56713"> Prokaryotic type I DNA topoisomerase</a>
1315                                                          </td>
1316
1317                                                          <td width="15%" class="se_datalarge1">
1318                                                                          <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=11&amp;n=56714"> DNA topoisomerase I, 67K N-terminal domain</a>
1319                                                          </td>
1320
1321                                                          <td width="15%" class="se_datalarge1">
1322                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=11&amp;n=56715"> Escherichia coli</a>
1323                                                          </td>
1324                                           </tr>
1325
1326                        </table>
1327                      </td>
1328                        </tr>         
1329
1330
1331
1332                                <tr class="se_back2">
1333                                        <td width="15%" align="right" valign="top" class="se_item">
1334                                                <span class="external_ref">CATH Classification <font size="-2">(version v2.6.0)</font></span>
1335                                        </td>
1336                                        <td width="85%" valign="top">
1337                                            <table border="0" cellpadding="1" cellspacing="1"  width="100%" >
1338                                             <tr class="se_subitem2">
1339                                                            <td width="20%">
1340                                                                   Domain
1341                                                           </td>
1342                                                           <td width="20%">
1343                                                                  Class
1344                                                           </td>
1345                                                           <td width="20%">
1346                                                                  Architecture
1347                                                           </td>
1348                                                           <td width="20%">
1349                                                                  Topology
1350                                                           </td>
1351                                                           <td width="20%">
1352                                                                 Homology
1353                                                            </td>
1354                                              </tr>
1355
1356                                          <tr>
1357                                          <td width="20%" class="se_datasmall2">
1358                                                                           1cy0A1
1359                                                          </td>
1360
1361                                                          <td width="20%" class="se_datasmall2">
1362                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=12&amp;n=1274">Alpha Beta</a>
1363                                                          </td>
1364
1365                                                          <td width="20%" class="se_datasmall2">
1366                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=12&amp;n=1842">3-Layer(aba) Sandwich</a>
1367                                                          </td>
1368       
1369                                                          <td width="20%" class="se_datasmall2">
1370                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=12&amp;n=1978">Rossmann fold</a>
1371                                                          </td>
1372
1373                                                          <td width="20%" class="se_datasmall2">
1374                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=12&amp;n=2009">ISOMERASE</a>
1375                                                          </td>
1376                                                </tr>       
1377
1378                                          <tr>
1379                                          <td width="20%" class="se_datasmall2">
1380                                                                           1cy0A2
1381                                                          </td>
1382
1383                                                          <td width="20%" class="se_datasmall2">
1384                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=12&amp;n=1">Mainly Alpha</a>
1385                                                          </td>
1386
1387                                                          <td width="20%" class="se_datasmall2">
1388                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=12&amp;n=2">Orthogonal Bundle</a>
1389                                                          </td>
1390       
1391                                                          <td width="20%" class="se_datasmall2">
1392                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=12&amp;n=352">Topoisomerase I; domain 2</a>
1393                                                          </td>
1394
1395                                                          <td width="20%" class="se_datasmall2">
1396                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=12&amp;n=353">Topoisomerase I, domain 2</a>
1397                                                          </td>
1398                                                </tr>       
1399
1400                                          <tr>
1401                                          <td width="20%" class="se_datasmall2">
1402                                                                           1cy0A3
1403                                                          </td>
1404
1405                                                          <td width="20%" class="se_datasmall2">
1406                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=12&amp;n=762">Mainly Beta</a>
1407                                                          </td>
1408
1409                                                          <td width="20%" class="se_datasmall2">
1410                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=12&amp;n=1229">Distorted Sandwich</a>
1411                                                          </td>
1412       
1413                                                          <td width="20%" class="se_datasmall2">
1414                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=12&amp;n=1248">Topoisomerase I; domain 3</a>
1415                                                          </td>
1416
1417                                                          <td width="20%" class="se_datasmall2">
1418                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=12&amp;n=1249">Topoisomerase I, domain 3</a>
1419                                                          </td>
1420                                                </tr>       
1421
1422                                          <tr>
1423                                          <td width="20%" class="se_datasmall2">
1424                                                                           1cy0A4
1425                                                          </td>
1426
1427                                                          <td width="20%" class="se_datasmall2">
1428                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=12&amp;n=1">Mainly Alpha</a>
1429                                                          </td>
1430
1431                                                          <td width="20%" class="se_datasmall2">
1432                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=12&amp;n=2">Orthogonal Bundle</a>
1433                                                          </td>
1434       
1435                                                          <td width="20%" class="se_datasmall2">
1436                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=12&amp;n=307">Topoisomerase I; domain 4</a>
1437                                                          </td>
1438
1439                                                          <td width="20%" class="se_datasmall2">
1440                                                                           <a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=12&amp;n=308">Topoisomerase I, domain 4</a>
1441                                                          </td>
1442                                                </tr>       
1443     
1444                        </table>
1445                      </td>
1446                        </tr>                   
1447
1448                <tr class="se_back1">
1449                                        <td width="15%" align="right" valign="top" class="se_item">
1450                                                <span class="external_ref">PFAM Classification </span>
1451                                        </td>
1452                                        <td width="85%" valign="top">
1453                                            <table border="0" cellpadding="1" cellspacing="1"  width="100%" >
1454                                             <tr class="se_subitem1">
1455                                                            <td width="5%">
1456                                                                   Chain
1457                                                           </td>
1458                                                           <td width="20%">
1459                                                                  PFAM Accession
1460                                                           </td>
1461                                                           <td width="15%">
1462                                                                  PFAM ID
1463                                                           </td>
1464                                                           <td width="25%">
1465                                                                  Description
1466                                                           </td>
1467                                                           <td width="15%">
1468                                                                 Type
1469                                                            </td>
1470                                                           <td width="20%">
1471                                                                 Clan ID                                                           
1472                                              </tr>
1473
1474
1475                                                <tr>
1476                                          <td width="5%" class="se_datasmall1">
1477                                                                           A
1478                                                          </td>
1479                                                          <td width="20%" class="se_datasmall1">
1480                                                                           <a class="se_datalarge" href="http://www.sanger.ac.uk/cgi-bin/Pfam/getacc?PF01131" target=resource_window>PF01131</a>
1481                                                          </td>
1482                                                          <td width="15%" class="se_datasmall1">
1483                                                                           Topoisom_bac
1484                                                          </td>
1485                                                          <td width="25%" class="se_datasmall1">
1486                                                                           DNA topoisomerase
1487                                                          </td>
1488                                                          <td width="15%" class="se_datasmall1">
1489                                                                           Family
1490                                                          </td>
1491                                                          <td width="20%" class="se_datasmall1" title="Clan Description: n/a">
1492                                                                           n/a</a>
1493                                                          </td>
1494                                                </tr>       
1495
1496                                                <tr>
1497                                          <td width="5%" class="se_datasmall1">
1498                                                                           A
1499                                                          </td>
1500                                                          <td width="20%" class="se_datasmall1">
1501                                                                           <a class="se_datalarge" href="http://www.sanger.ac.uk/cgi-bin/Pfam/getacc?PF01751" target=resource_window>PF01751</a>
1502                                                          </td>
1503                                                          <td width="15%" class="se_datasmall1">
1504                                                                           Toprim
1505                                                          </td>
1506                                                          <td width="25%" class="se_datasmall1">
1507                                                                           Toprim domain
1508                                                          </td>
1509                                                          <td width="15%" class="se_datasmall1">
1510                                                                           Family
1511                                                          </td>
1512                                                          <td width="20%" class="se_datasmall1" title="Clan Description: n/a">
1513                                                                           n/a</a>
1514                                                          </td>
1515                                                </tr>       
1516
1517                                        </table>
1518                      </td>
1519                        </tr>             
1520
1521
1522                                  <tr class="se_back2">
1523                                        <td width="15%" align="right" valign="top" class="se_item">
1524                                                <span class="external_ref">GO Terms</span>
1525                                        </td>
1526                                        <td width="85%" valign="top">
1527                                    <table border="0" cellpadding="1" cellspacing="1"  width="100%" >
1528                                     <tr class="se_subitem1">
1529                                            <td width="25%">
1530                                                        Polymer
1531                                           </td>
1532                                           <td width="25%">
1533                                                   Molecular Function
1534                                           </td>
1535                                           <td width="25%">
1536                                                   Biological Process
1537                                           </td>
1538                                           <td width="25%">
1539                                                   Cellular Component
1540                                            </td>
1541                                  </tr>
1542                                 
1543
1544                <tr>
1545                                         <td width="25%" class="se_datasmall1">
1546                                                        DNA TOPOISOMERASE I (1CY0:A)
1547                                         </td>
1548                                         <td width="25%" class="se_datasmall1">
1549                                               <ul>
1550
1551                         <li><a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=6&amp;n=3676">nucleic acid binding</a>
1552
1553                         <li><a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=6&amp;n=3677">DNA binding</a>
1554
1555                         <li><a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=6&amp;n=3916">DNA topoisomerase activity</a>
1556
1557                         <li><a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=6&amp;n=3917">DNA topoisomerase type I activity</a>
1558
1559                      </ul>
1560                   </td>
1561                   <td width="25%" class="se_datasmall1">
1562                                               <ul>
1563
1564                           <li><a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=4&amp;n=6265">DNA topological change</a>
1565
1566                           <li><a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=4&amp;n=6268">DNA unwinding during replication</a>
1567
1568                           <li><a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=4&amp;n=6304">DNA modification</a>
1569
1570                      </ul>
1571                   </td>
1572                    <td width="25%" class="se_datasmall1">
1573                                               <ul>
1574
1575                           <li><a class="se_datasmall" href="/pdb/search/smartSubquery.do?smartSearchSubtype=TreeQuery&t=5&amp;n=5694">chromosome</a>
1576
1577                      </ul>
1578                   </td>
1579                </tr>
1580
1581                        </table>
1582                        </td>
1583                  </tr>
1584                  <tr>
1585                          <td>
1586                          <!-- Form is setup for the PDF Creator to grab the data -->
1587                                <FORM NAME="PDFCREATOR" ACTION="/pdb/sepdf" method="post" target="sepdfwin">
1588                                        <input type="hidden" name="strId" value="1CY0">
1589                                        <input type="hidden" name="strTitle" value="COMPLEX OF E.COLI DNA TOPOISOMERASE I WITH 3'-5'-ADENOSINE DIPHOSPHATE">
1590                                        <input type="hidden" name="strAuthors" value="Feinberg, H., Changela, A., Mondragon, A.">
1591                                        <input type="hidden" name="strPrimaryCitations" value="Feinberg, H., Changela, A., Mondragon, A.">
1592                                        <input type="hidden" name="strCitationTitle" value="Protein-nucleotide interactions in E. coli DNA topoisomerase I.">
1593                                        <input type="hidden" name="strJournalAbbrev" value="Nat.Struct.Biol.">
1594                                        <input type="hidden" name="strJounralVolume" value="v6">
1595                                        <input type="hidden" name="strJournalPage" value="961-968">
1596                                        <input type="hidden" name="strJournalYear" value="1999">
1597                                        <input type="hidden" name="strDeposition" value="1999-08-31">
1598                                        <input type="hidden" name="strRelease" value="2000-03-08">
1599                                        <input type="hidden" name="strExpMethod" value="X-RAY DIFFRACTION">
1600                                        <input type="hidden" name="strResolution" value="2.450000047683716">
1601                                        <input type="hidden" name="strRValue" value="0.2199999988079071">
1602                                        <input type="hidden" name="strRValueType" value="(obs.)">
1603                                        <input type="hidden" name="strRFree" value="0.27399998903274536">
1604
1605                                                                               
1606                                        <input type="hidden" name="strSpaceGroup" value="P 21 21 21">
1607                                       
1608                                       
1609                                       
1610                                        <input type="hidden" name="strLengthA" value="63.040000915527344">
1611                                       
1612                                       
1613                                       
1614                                       
1615                                        <input type="hidden" name="strLengthB" value="73.30999755859375">                                       
1616                                                                               
1617
1618                                       
1619                                       
1620                                        <input type="hidden" name="strLengthC" value="134.4600067138672">                                       
1621                                                                               
1622                                       
1623                                       
1624                                        <input type="hidden" name="strAngleA" value="90.0">                                     
1625                                                                               
1626                                       
1627                                       
1628                                        <input type="hidden" name="strAngleB" value="90.0">                                     
1629                                                                               
1630                                       
1631                                       
1632                                        <input type="hidden" name="strAngleC" value="90.0">                                     
1633                                                       
1634                                       
1635                                                               
1636                                        <input type="hidden" name="strMolDesc" value="">
1637                                        <input type="hidden" name="strKeywords" value="ISOMERASE">
1638                                        <input type="hidden" name="strSourceLine" value="Polymer: 1, Scientific Name: ESCHERICHIA COLI
1639Common Name: BACTERIA     Expression System: ESCHERICHIA COLI">
1640                                        <input type="hidden" name="strChemCompIdList" value="A3P,">
1641                                        <input type="hidden" name="strChemCompNameList" value="ADENOSINE-3'-5'-DIPHOSPHATE,">
1642                                        <input type="hidden" name="strChemCompFormulaList" value="C10 H15 N5 O10 P2,">
1643                                        <input type="hidden" name="strChemCompListLen" value="1">
1644                                        <input type="hidden" name="strScopFoldDesc" value="Prokaryotic type I DNA topoisomerase">
1645                                        <input type="hidden" name="strScopSFDesc" value="Prokaryotic type I DNA topoisomerase">
1646                                        <input type="hidden" name="strScopFamDesc" value="Prokaryotic type I DNA topoisomerase">
1647                                        <input type="hidden" name="strScopDomDesc" value="DNA topoisomerase I, 67K N-terminal domain">
1648                                        <input type="hidden" name="strScopSpeciesDesc" value="Escherichia coli">
1649                                        <input type="hidden" name="strCathDomainList" value="1cy0A1,1cy0A2,1cy0A3,1cy0A4,">
1650                                        <input type="hidden" name="strCathClassList" value="Alpha Beta,Mainly Alpha,Mainly Beta,Mainly Alpha,">
1651                                        <input type="hidden" name="strCathArchitectureList" value="3-Layer(aba) Sandwich,Orthogonal Bundle,Distorted Sandwich,Orthogonal Bundle,">
1652                                        <input type="hidden" name="strCathTopologyList" value="Rossmann fold,Topoisomerase I; domain 2,Topoisomerase I; domain 3,Topoisomerase I; domain 4,">
1653                                        <input type="hidden" name="strCathHomologyList" value="ISOMERASE,Topoisomerase I, domain 2,Topoisomerase I, domain 3,Topoisomerase I, domain 4,">
1654                                        <input type="hidden" name="strCathListLen" value="4">
1655                                        <input type="hidden" name="strGoMoleculeList" value="DNA TOPOISOMERASE I*,*">                                   
1656                                        <input type="hidden" name="strGoMolecularFunctionList" value="nucleic acid binding,DNA binding,DNA topoisomerase activity,DNA topoisomerase type I activity,||DNA topological change,DNA unwinding during replication,DNA modification,chromosome,">                                   
1657                                        <input type="hidden" name="strGoBiologicalProcessList" value="||">                                     
1658                                        <input type="hidden" name="strGoCellularComponentList" value="||">                                     
1659                                        <input type="hidden" name="strGoListLen" value="1">                                     
1660
1661                                       
1662                                       
1663                                       
1664                                        <!--a href="#" onClick="javascript:document.PDFCREATOR.submit();">|PDF|</a-->
1665                                </form>
1666               
1667                          </td>
1668                  </tr>
1669        </table>
1670
1671
1672</td>
1673   </tr>
1674   <tr>
1675    <td valign="top" class="maintd"> </td>
1676   </tr>
1677  </table>
1678
1679  </td>
1680 </tr>  <!-- END MAIN RIGHT -->
1681
1682
1683 
1684 <tr>
1685  <td colspan="3">   
1686
1687 
1688
1689<table width="100%" border="0" cellpadding="0" cellspacing="0">
1690 <tr>  <!-- BEGIN BOTTOM BORDER -->
1691  <td class="foothomelight"><img src="/pdbstatic/images/spacer.gif" alt="" height="15" border="0"></td>
1692  <td class="foothomelight" colspan="2"></td>
1693 </tr>
1694 <tr>
1695  <td class="foothomedark1" colspan="3">
1696    <a class="foothomedark1" href="http://home.rcsb.org/" target="_blank"><i>&copy; RCSB Protein Data Bank &nbsp;&nbsp;</i></a>
1697  </td>
1698 </tr>  <!-- END BOTTOM BORDER -->
1699
1700<tr>
1701 <td colspan="3"><br></td>
1702</tr>
1703</table>
1704
1705  </td>
1706 </tr>
1707
1708</tbody>
1709</table>
1710
1711<script type="text/javascript" language="JavaScript" src="/pdbstatic/common/lib/wz_tooltip.js"></script>
1712<script type="text/javascript" language=javascript src="/pdbstatic/common/lib/awstats_misc_tracker.js"></script>
1713<script type="text/javascript" language="JavaScript">
1714var htmlHttpLoader = new RemoteFileLoader('htmlHttpLoader');
1715// Props to Simon Willison:
1716// http://simon.incutio.com/archive/2004/05/26/addLoadEvent
1717var oldhandler = window.onload;
1718window.onload = (typeof oldhandler == "function")
1719    ? function() { oldhandler(); initExpandableLists(); } : initExpandableLists;
1720</script>
1721</body>
1722</html>
+
+ + + +
+ +
+ + + + + + + + + + + diff --git a/test/files/immob.html b/test/files/immob.html new file mode 100644 index 0000000..b510e63 --- /dev/null +++ b/test/files/immob.html @@ -0,0 +1,400 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Immobiliensuche - hier sind sie richtig! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ + + + + + + + + + + + + Wir haben + + 30 + + Immobilien für Sie gefunden. +

+ + + + + + + + +
+ + + + + + + + +
Listenansicht  + Galerieansicht
+
+ + Seiten: 1 +2 +> + +
+ + + +
+ + + + + +
nach:  + + + + + +
+
+ +
+ + + + + + + + +
Erklärung:N Neu! Aktuell
+
+

+ + + + + + + + + + + + + + + +
  + Zimmer
+ Stadt/Kreis
+ + +
+ Wohnfläche
+ Stadtteil/Ort
+ + +
+ Kaltmiete
+ Straße
+ + +
+ Foto +
! Schn Wohnen Nahe der Universittsstr. mit kurzen Wegen zu allem Balkon Thumbnail
 3,00
Erlangen
111,00 m²
Erlangen - Zentrum
999,45 EUR

Schn Wohnen Nahe der Universittsstr. mit kurzen Wegen zu allem Balkon Thumbnail
 3,00
Erlangen
110,19 m²
Erlangen - Zentrum
991,71 EUR

Schn Wohnen Nahe der Universittsstr. mit kurzen Wegen zu allem Balkon Thumbnail
 2,00
Erlangen
104,51 m²
Erlangen - Zentrum
940,59 EUR

N Ideal fr Rollstuhlfahrer die Wohnung und die Lage Balkon Thumbnail
 2,00
Erlangen
103,42 m²
Erlangen - Zentrum
930,78 EUR

Schn Wohnen Nahe der Universittsstr. mit kurzen Wegen zu allem Balkon Thumbnail
 3,00
Erlangen
103,00 m²
Erlangen - Zentrum
926,82 EUR

120 m 4ZiDesignerGaleriewohnung mit Kamin, Eckbadewanne, Fubodenheizung, Einbaukche 920 1.8.06 Einbauküche Balkon Thumbnail
 4,00
Erlangen
125,00 m²
Erlangen Süd
920,00 EUR
Wohnanlage Nahe Erlangen in Möhrendorf
120 m 4ZiDesignerGaleriewohnung mit Kamin, Eckbadewanne, Fubodenheizung, Einbaukche 920 1.8.06 Einbauküche Balkon Thumbnail
 4,00
Erlangen
125,00 m²
Erlangen Süd
890,00 EUR
Wohnanlage Nahe Erlangen in Möhrendorf
Schn Wohnen Nahe der Universittsstr. mit kurzen Wegen zu allem Balkon Thumbnail
 2,00
Erlangen
94,95 m²
Erlangen - Zentrum
854,55 EUR

Schn Wohnen Nahe der Universittsstr. mit kurzen Wegen zu allem Balkon Thumbnail
 2,00
Erlangen
92,00 m²
Erlangen - Zentrum
827,64 EUR

N Ideal fr Rollstuhlfahrer die Wohnung und die Lage Balkon Thumbnail
 3,00
Erlangen
83,00 m²
Erlangen Süd
825,00 EUR
Nahe Unistr
Schn Wohnen Nahe der Universittsstr. mit kurzen Wegen zu allem Balkon Thumbnail
 2,00
Erlangen
87,16 m²
Erlangen - Zentrum
784,44 EUR

Schn Wohnen Nahe der Universittsstr. mit kurzen Wegen zu allem Balkon Thumbnail
 2,00
Erlangen
79,46 m²
Erlangen - Zentrum
715,14 EUR

Schn Wohnen Nahe der Universittsstr. mit kurzen Wegen zu allem Balkon Thumbnail
 2,00
Erlangen
74,02 m²
Erlangen - Zentrum
666,18 EUR

N Ideal fr Rollstuhlfahrer die Wohnung und die Lage Balkon Thumbnail
 2,00
Erlangen
74,00 m²
Erlangen - Zentrum
665,28 EUR

Schn Wohnen Nahe der Universittsstr. mit kurzen Wegen zu allem Balkon Thumbnail
 2,00
Erlangen
74,00 m²
Erlangen - Zentrum
665,28 EUR


+ + + + + + + + + + + + + + + +
+ Seiten: + 1 +2 +> + +
+ nach: + + + + + + +

+ + + + + + + +
+
+
+ powered by ImmobilienScout24 + +
+ + + diff --git a/test/files/pace_application.html b/test/files/pace_application.html new file mode 100644 index 0000000..38d1427 --- /dev/null +++ b/test/files/pace_application.html @@ -0,0 +1,1320 @@ + + + + + + + + + + + + + + + + + + + +
+ First Health Services Corporation logo + + Pennsylvania Department of Aging logo +
+ + PACE/PACENET Enrollment + + + Need Assistance?
+ Call: Inside PA 1-800-225-7223 Outside PA 717-651-3600
+ Email: PACECares@fhsc.com +
+
+ + +
+ + +
+ + + + + + + + + + + + + + + + + +

+ + Check if same + as Applicant +
Preparer's Name + + Preparer's Phone + () + - + + + + + +

+ Please enter the Preparer's Name & Phone #.
+ When you are done, click on 'Continue'.
+


+ + + +

+
+
+ + + + + +
+
The USGenWeb Project, Free Genealogy Online
+ +
+ +
+ +
+ + Home + About Us + States + Projects + Researchers + Volunteers + +
+ +
+ +
+
+

 

+

Keeping Internet Genealogy Free
+
+

+
+
+ + + + +
+

+

Welcome to The USGenWeb Project! We are a group of volunteers working together to provide free genealogy websites for genealogical research in every county and every state of the United States. This Project is non-commercial and fully committed to free genealogy access for everyone.

+

Organization is by county and state, and this website provides you with links to all the state genealogy websites which, in turn, provide gateways to the counties. The USGenWeb Project also sponsors important Special Projects at the national level and this website provides an entry point to all of those pages, as well.

+

Clicking on a State Link (on the left) will take you to the State's website. Clicking on the tabs above will take you to additional information and links.

+

All of the volunteers who make up The USGenWeb Project are very proud of this endeavor and hope that you will find their hard work both beneficial and rewarding. Thank you for visiting!

+

The USGenWeb Project Team +

+

10th Anniversary

+

+
+

2006 marks the 10th Anniversary of the USGenWeb Project and I have been looking back over those past 10 years. When the USGenWeb Project began, it was one of the few (if not the only) centralized places on the internet to find genealogy information and post a query. Those early state and county sites began with links to the small amount of on-line information of interest to a family historian and a query page. The only Special Project was the Archives. How far the Project has come during the past 10 years! Now there are several special projects and the states, counties and special projects sites of the Project not only contain links; they are filled with information and transcribed records, and more is being added every day by our wonderful, dedicated and hard working volunteers.

+

Ten years ago the internet, as we know it today, was in its infancy. The things we take for granted today--e-mail, PCs, cell phones, digital cameras, etc., were not in the average person's world. Family historians and professional genealogists not only didn't use the internet, most had never heard of it.

+

Over the past 10 years the internet has gone from obscurity to commonplace. As the internet became an every day tool for millions of people. it changed the way family historians do research. The availability of on-line, easily accessible genealogy and historical information has fueled the phenomenal growth of Genealogy as a hobby and, I'm proud to say, the Project has been right there every step of the way.

+

Everywhere we look we see genealogy reported as the fastest growing hobby in the country. Now the internet is the first stop for beginning family historians and is used extensively by experienced researchers. New "How To" genealogy books devote chapters to using the internet, and it is a rare book that does not recommend The USGenWeb Project as one of the first places to visit.

+

While subscription sites have popped up everywhere on the web, The Project has continued to offer free access to its vast wealth of information. The USGenWeb Project is recognized as the premier site of free information, and the Project's websites welcome well over a million visitors each day.

+

The Project is where it is today because of the thousands of volunteers, both past and present, who cared enough to devote, collectively, millions of hours to gathering, transcribing and uploading information.

+

To each and every volunteer, past and present, a heartfelt Thank You, because you are ones who have made The Project the fabulous resource it is today.

+

Linda Haas Davenport
+ National Coordinator
+ The USGenWeb Project

+ + + +

+
+

+
+ +
+
+
+ +
+
+ +
+ + + + +
+
+ +
+ + +
+
+ +
+

The USGenWeb Project, Free Genealogy Online

+ + +
+
+
+
+

Comments and administrative-type problems should be emailed to the National Coordinator. + For complaints regarding a specific web site within the USGenWeb Project, please include the URL when emailing the National Coordinator.

+

Direct comments or suggestions about this web site to the Webmaster.

+
+

Visit Rootsweb

+
+

+Home
+About Us
+Projects
+for Researchers
+for Volunteers
+Site Map

+
+ + +
+ + + diff --git a/test/files/utf8.html b/test/files/utf8.html new file mode 100644 index 0000000..841eab4 --- /dev/null +++ b/test/files/utf8.html @@ -0,0 +1,1054 @@ + +UTF-8 Sampler + + +

UTF-8 SAMPLER

+ +  ¥ · £ · € · $ · ¢ · ₡ · ₢ · ₣ · ₤ · ₥ · ₦ · ₧ · ₨ · ₩ · ₪ · ₫ · ₭ · ₮ · ₯ + +

+

+Frank da Cruz
+The Kermit Project - Columbia University
+New York City
+fdc@columbia.edu + +

+Last update: +Wed Apr 12 16:54:07 2006 +

+

+


+[ PEACE ] +[ Poetry ] +[ I Can Eat Glass ] +[ The Quick Brown Fox ] +[ HTML Features ] +[ Credits, Tools, Commentary ] +

+ +UTF-8 is an ASCII-preserving encoding method for +Unicode (ISO 10646), the Universal Character Set +(UCS). The UCS encodes most of the world's writing systems in a single +character set, allowing you to mix languages and scripts within a document +without needing any tricks for switching character sets. This web page is +encoded directly in UTF-8. + +

+ +As shown HERE, +Columbia University's Kermit 95 terminal emulation +software can display UTF-8 plain text in Windows 95, 98, ME, NT, XP, or 2000 +when using a monospace Unicode font like Andale Mono WT J or Everson Mono Terminal, or the lesser +populated Courier New, Lucida Console, or Andale Mono. C-Kermit can handle it too, +if you have a Unicode +display. As many languages as are representable in your font can be seen +on the screen at the same time. + +

+ +This, however, is a Web page. Some Web browsers can handle UTF-8, some can't. +And those that can might not have a sufficiently populated font to work with +(some browsers might pick glyphs dynamically from multiple fonts; Netscape 6 +seems to do this). +CLICK HERE +for a survey of Unicode fonts for Windows. + +

+ +The subtitle above shows currency symbols of many lands. If they don't +appear as blobs, we're off to a good start! + +


+

Poetry

+ +From the Anglo-Saxon Rune Poem (Rune version): +

+ ᚠᛇᚻ᛫ᛒᛦᚦ᛫ᚠᚱᚩᚠᚢᚱ᛫ᚠᛁᚱᚪ᛫ᚷᛖᚻᚹᛦᛚᚳᚢᛗ
+ ᛋᚳᛖᚪᛚ᛫ᚦᛖᚪᚻ᛫ᛗᚪᚾᚾᚪ᛫ᚷᛖᚻᚹᛦᛚᚳ᛫ᛗᛁᚳᛚᚢᚾ᛫ᚻᛦᛏ᛫ᛞᚫᛚᚪᚾ
+ ᚷᛁᚠ᛫ᚻᛖ᛫ᚹᛁᛚᛖ᛫ᚠᚩᚱ᛫ᛞᚱᛁᚻᛏᚾᛖ᛫ᛞᚩᛗᛖᛋ᛫ᚻᛚᛇᛏᚪᚾ᛬
+
+

+ +From Laȝamon's Brut +(The Chronicles of England, Middle English, West Midlands): +

+

+An preost wes on leoden, Laȝamon was ihoten
+He wes Leovenaðes sone -- liðe him be Drihten.
+He wonede at Ernleȝe at æðelen are chirechen,
+Uppen Sevarne staþe, sel þar him þuhte,
+Onfest Radestone, þer he bock radde. +
+

+ +(The third letter in the author's name is Yogh, missing from many fonts; +CLICK HERE for another Middle English sample +with some explanation of letters and encoding). + +

+ +From the Tagelied of + + +Wolfram von Eschenbach (Middle High German): +

+Sîne klâwen durh die wolken sint geslagen,
+er stîget ûf mit grôzer kraft,
+ich sih in grâwen tägelîch als er wil tagen,
+den tac, der im geselleschaft
+erwenden wil, dem werden man,
+den ich mit sorgen în verliez.
+ich bringe in hinnen, ob ich kan.
+sîn vil manegiu tugent michz leisten hiez.
+

+ +Some lines of + +Odysseus Elytis (Greek): + +

+Τη γλώσσα μου έδωσαν ελληνική
+το σπίτι φτωχικό στις αμμουδιές του Ομήρου.
+Μονάχη έγνοια η γλώσσα μου στις αμμουδιές του Ομήρου.
+

+από το Άξιον Εστί
+του Οδυσσέα Ελύτη +

+ +

+ +The first stanza of +Pushkin's Bronze Horseman (Russian):
+

+На берегу пустынных волн
+Стоял он, дум великих полн,
+И вдаль глядел. Пред ним широко
+Река неслася; бедный чёлн
+По ней стремился одиноко.
+По мшистым, топким берегам
+Чернели избы здесь и там,
+Приют убогого чухонца;
+И лес, неведомый лучам
+В тумане спрятанного солнца,
+Кругом шумел.
+

+ +Šota Rustaveli's Veṗxis Ṭq̇aosani, +̣︡Th, The Knight in the Tiger's Skin (Georgian):

+

+ვეპხის ტყაოსანი +შოთა რუსთაველი +

+ღმერთსი შემვედრე, ნუთუ კვლა დამხსნას სოფლისა შრომასა, +ცეცხლს, წყალსა და მიწასა, ჰაერთა თანა მრომასა; +მომცნეს ფრთენი და აღვფრინდე, მივჰხვდე მას ჩემსა ნდომასა, +დღისით და ღამით ვჰხედვიდე მზისა ელვათა კრთომაასა. +

+

+ +Tamil poetry of Cupiramaniya Paarathiyar, + +சுப்ரமணிய பாரதியார் (1882-1921): + +

+

+ +யாமறிந்த மொழிகளிலே தமிழ்மொழி போல் இனிதாவது எங்கும் காணோம்,
+பாமரராய் விலங்குகளாய், உலகனைத்தும் இகழ்ச்சிசொலப் பான்மை கெட்டு,
+நாமமது தமிழரெனக் கொண்டு இங்கு வாழ்ந்திடுதல் நன்றோ? சொல்லீர்!
+ +
+ +
+

I Can Eat Glass

+ +And from the sublime to the ridiculous, here is a +certain phrase¹ in an assortment of languages: + +

+

    +
  1. Sanskrit: काचं शक्नोम्यत्तुम् । नोपहिनस्ति माम् ॥ + +
  2. Sanskrit (standard transcription): kācaṃ śaknomyattum; nopahinasti mām. +
  3. Classical Greek: ὕαλον ϕαγεῖν δύναμαι· τοῦτο οὔ με βλάπτει. +
  4. Greek: Μπορώ να φάω σπασμένα γυαλιά χωρίς να πάθω τίποτα. +
    Etruscan: (NEEDED) +
  5. Latin: Vitrum edere possum; mihi non nocet. +
  6. Old French: Je puis mangier del voirre. Ne me nuit. +
  7. French: Je peux manger du verre, ça ne me fait pas de mal. +
  8. Provençal / Occitan: Pòdi manjar de veire, me nafrariá pas. +
  9. Québécois: J'peux manger d'la vitre, ça m'fa pas mal. +
  10. Walloon: Dji pou magnî do vêre, çoula m' freut nén må. +
    Champenois: (NEEDED) +
    Lorrain: (NEEDED) +
  11. Picard: Ch'peux mingi du verre, cha m'foé mie n'ma. +
    Corsican: (NEEDED) +
    Jèrriais: (NEEDED) +
  12. Kreyòl Ayisyen: Mwen kap manje vè, li pa blese'm. +
  13. Basque: Kristala jan dezaket, ez dit minik ematen. +
  14. Catalan / Català: Puc menjar vidre, que no em fa mal. +
  15. Spanish: Puedo comer vidrio, no me hace daño. +
  16. Aragones: Puedo minchar beire, no me'n fa mal . +
  17. Galician: Eu podo xantar cristais e non cortarme. +
  18. Portuguese: Posso comer vidro, não me faz mal. +
  19. Brazilian Portuguese (7): + Posso comer vidro, não me machuca. +
  20. Caboverdiano: M' podê cumê vidru, ca ta maguâ-m'. +
  21. Papiamentu: Ami por kome glas anto e no ta hasimi daño. +
  22. Italian: Posso mangiare il vetro e non mi fa male. +
  23. Milanese: Sôn bôn de magnà el véder, el me fa minga mal. +
  24. Roman: Me posso magna' er vetro, e nun me fa male. +
  25. Napoletano: M' pozz magna' o'vetr, e nun m' fa mal. +
  26. Sicilian: Puotsu mangiari u vitru, nun mi fa mali. +
  27. Venetian: Mi posso magnare el vetro, no'l me fa mae. +
  28. Zeneise (Genovese): Pòsso mangiâ o veddro e o no me fà mâ. +
    Rheto-Romance / Romansch: (NEEDED) +
    Romany / Tsigane: (NEEDED) +
  29. Romanian: Pot să mănânc sticlă și ea nu mă rănește. +
  30. Esperanto: Mi povas manĝi vitron, ĝi ne damaĝas min. +
    Pictish: (NEEDED) +
    Breton: (NEEDED) +
  31. Cornish: Mý a yl dybry gwéder hag éf ny wra ow ankenya. +
  32. Welsh: Dw i'n gallu bwyta gwydr, 'dyw e ddim yn gwneud dolur i mi. +
  33. Manx Gaelic: Foddym gee glonney agh cha jean eh gortaghey mee. +
  34. Old Irish (Ogham): ᚛᚛ᚉᚑᚅᚔᚉᚉᚔᚋ ᚔᚈᚔ ᚍᚂᚐᚅᚑ ᚅᚔᚋᚌᚓᚅᚐ᚜ +
  35. Old Irish (Latin): Con·iccim ithi nglano. Ním·géna. + +
  36. Irish: Is féidir liom gloinne a ithe. Ní dhéanann sí dochar ar bith dom. + +
  37. Scottish Gaelic: S urrainn dhomh gloinne ithe; cha ghoirtich i mi. +
  38. Anglo-Saxon (Runes): +ᛁᚳ᛫ᛗᚨᚷ᛫ᚷᛚᚨᛋ᛫ᛖᚩᛏᚪᚾ᛫ᚩᚾᛞ᛫ᚻᛁᛏ᛫ᚾᛖ᛫ᚻᛖᚪᚱᛗᛁᚪᚧ᛫ᛗᛖ᛬ +
  39. Anglo-Saxon (Latin): Ic mæg glæs eotan ond hit ne hearmiað me. +
  40. Middle English: Ich canne glas eten and hit hirtiþ me nouȝt. +
  41. English: I can eat glass and it doesn't hurt me. +
  42. English (IPA): [aɪ kæn iːt glɑːs ænd ɪt dɐz nɒt hɜːt miː] (Received Pronunciation) +
  43. English (Braille): ⠊⠀⠉⠁⠝⠀⠑⠁⠞⠀⠛⠇⠁⠎⠎⠀⠁⠝⠙⠀⠊⠞⠀⠙⠕⠑⠎⠝⠞⠀⠓⠥⠗⠞⠀⠍⠑ +
  44. Lalland Scots / Doric: Ah can eat gless, it disnae hurt us. +
    Glaswegian: (NEEDED) +
  45. Gothic (4): +𐌼𐌰𐌲 +𐌲𐌻𐌴𐍃 +𐌹̈𐍄𐌰𐌽, +𐌽𐌹 +𐌼𐌹𐍃 +𐍅𐌿 +𐌽𐌳𐌰𐌽 +𐌱𐍂𐌹𐌲𐌲𐌹𐌸. +
  46. Old Norse (Runes): ᛖᚴ ᚷᛖᛏ ᛖᛏᛁ +ᚧ ᚷᛚᛖᚱ ᛘᚾ +ᚦᛖᛋᛋ ᚨᚧ ᚡᛖ +ᚱᚧᚨ ᛋᚨᚱ + +
  47. Old Norse (Latin): Ek get etið gler án þess að verða sár. + +
  48. Norsk / Norwegian (Nynorsk): Eg kan eta glas utan å skada meg. +
  49. Norsk / Norwegian (Bokmål): Jeg kan spise glass uten å skade meg. +
    Føroyskt / Faroese: (NEEDED) +
  50. Íslenska / Icelandic: Ég get etið gler án þess að meiða mig. +
  51. Svenska / Swedish: Jag kan äta glas utan att skada mig. +
  52. Dansk / Danish: Jeg kan spise glas, det gør ikke ondt på mig. +
  53. Soenderjysk: Æ ka æe glass uhen at det go mæ naue. +
  54. Frysk / Frisian: Ik kin glês ite, it docht me net sear. + + + +
  55. Nederlands / Dutch: Ik kan glas eten, het doet +mij +geen kwaad. + + +
  56. Kirchröadsj/Bôchesserplat: Iech ken glaas èèse, mer 't deet miech +jing pieng.
  57. + +
  58. Afrikaans: Ek kan glas eet, maar dit doen my nie skade nie. +
  59. Lëtzebuergescht / Luxemburgish: Ech kan Glas iessen, daat deet mir nët wei. +
  60. Deutsch / German: Ich kann Glas essen, ohne mir weh zu tun. +
  61. Ruhrdeutsch: Ich kann Glas verkasematuckeln, ohne dattet mich wat jucken tut. +
  62. Langenfelder Platt: +Isch kann Jlaas kimmeln, uuhne datt mich datt weh dääd. +
  63. Lausitzer Mundart ("Lusatian"): Ich koann Gloos assn und doas +dudd merr ni wii. +
  64. Odenwälderisch: Iech konn glaasch voschbachteln ohne dass es mir ebbs daun doun dud. +
  65. Sächsisch / Saxon: 'sch kann Glos essn, ohne dass'sch mer wehtue. +
  66. Pfälzisch: Isch konn Glass fresse ohne dasses mer ebbes ausmache dud. +
  67. Schwäbisch / Swabian: I kå Glas frässa, ond des macht mr nix! +
  68. Bayrisch / Bavarian: I koh Glos esa, und es duard ma ned wei. +
  69. Allemannisch: I kaun Gloos essen, es tuat ma ned weh. +
  70. Schwyzerdütsch: Ich chan Glaas ässe, das tuet mir nöd weeh. +
  71. Hungarian: Meg tudom enni az üveget, nem lesz tőle bajom. +
  72. Suomi / Finnish: Voin syödä lasia, se ei vahingoita minua. +
  73. Sami (Northern): Sáhtán borrat lása, dat ii leat bávččas. +
  74. Erzian: Мон ярсан +суликадо, ды +зыян +эйстэнзэ а +ули. +
    Karelian: (NEEDED) +
    Vepsian: (NEEDED) +
    Votian: (NEEDED) +
    Livonian: (NEEDED) +
  75. Estonian: Ma võin klaasi süüa, see ei tee mulle midagi. +
  76. Latvian: Es varu ēst stiklu, tas man nekaitē. +
  77. Lithuanian: Aš galiu valgyti stiklą ir jis manęs nežeidžia +
    Old Prussian: (NEEDED) +
    Sorbian (Wendish): (NEEDED) +
  78. Czech: Mohu jíst sklo, neublíží mi. +
  79. Slovak: Môžem jesť sklo. Nezraní ma. +
  80. Polska / Polish: Mogę jeść szkło i mi nie szkodzi. +
  81. Slovenian: Lahko jem steklo, ne da bi mi škodovalo. +
  82. Croatian: Ja mogu jesti staklo i ne boli me. +
  83. Serbian (Latin): Mogu jesti staklo a da mi ne škodi. +
  84. Serbian (Cyrillic): Могу јести стакло +а +да ми +не +шкоди. +
  85. Macedonian: Можам да јадам стакло, а не ме штета. +
  86. Russian: Я могу есть стекло, оно мне не вредит. +
  87. Belarusian (Cyrillic): Я магу есці шкло, яно мне не шкодзіць. +
  88. Belarusian (Lacinka): Ja mahu jeści škło, jano mne ne škodzić. +
  89. Ukrainian: Я можу їсти шкло, й воно мені не пошкодить. + +
  90. Bulgarian: Мога да ям стъкло, то не ми вреди. + +
  91. Georgian: მინას ვჭამ და არა მტკივა. +
  92. Armenian: Կրնամ ապակի ուտել և ինծի անհանգիստ չըներ։ +
  93. Albanian: Unë mund të ha qelq dhe nuk më gjen gjë. +
  94. Turkish: Cam yiyebilirim, bana zararı dokunmaz. +
  95. Turkish (Ottoman): جام ييه بلورم بڭا ضررى طوقونمز +
  96. Bangla / Bengali: +আমি কাঁচ খেতে পারি, তাতে আমার কোনো ক্ষতি হয় না। +
  97. Marathi: मी काच खाऊ शकतो, मला ते दुखत नाही. +
  98. Hindi: मैं काँच खा सकता हूँ, मुझे उस से कोई पीडा नहीं होती. +
  99. Tamil: நான் கண்ணாடி சாப்பிடுவேன், அதனால் எனக்கு ஒரு கேடும் வராது. + +
  100. Urdu(2): + میں کانچ کھا سکتا ہوں اور مجھے تکلیف نہیں ہوتی ۔ +
  101. Pashto(2): زه شيشه خوړلې شم، هغه ما نه خوږوي +
  102. Farsi / Persian: .من می توانم بدونِ احساس درد شيشه بخورم +
  103. Arabic(2): أنا قادر على أكل الزجاج و هذا لا يؤلمني. +
    Aramaic: (NEEDED) +
  104. Hebrew(2): אני יכול לאכול זכוכית וזה לא מזיק לי. +
  105. Yiddish(2): איך קען עסן גלאָז און עס טוט מיר נישט װײ. +
    Judeo-Arabic: (NEEDED) +
    Ladino: (NEEDED) +
    Gǝʼǝz: (NEEDED) +
    Amharic: (NEEDED) +
  106. Twi: Metumi awe tumpan, ɜnyɜ me hwee. +
  107. Hausa (Latin): Inā iya taunar gilāshi kuma in gamā lāfiyā. +
  108. Hausa (Ajami) (2): +إِنا إِىَ تَونَر غِلَاشِ كُمَ إِن غَمَا لَافِىَا +
  109. Yoruba(3): Mo lè je̩ dígí, kò ní pa mí lára. +
  110. (Ki)Swahili: Naweza kula bilauri na sikunyui. + +
  111. Malay: Saya boleh makan kaca dan ia tidak mencederakan saya. +
  112. Tagalog: Kaya kong kumain nang bubog at hindi ako masaktan. +
  113. Chamorro: Siña yo' chumocho krestat, ti ha na'lalamen yo'. +
  114. Javanese: Aku isa mangan beling tanpa lara. +
  115. Burmese: +က္ယ္ဝန္‌တော္‌၊က္ယ္ဝန္‌မ မ္ယက္‌စားနုိင္‌သည္‌။ ၎က္ရောင္‌့ +ထိခုိက္‌မ္ဟု မရ္ဟိပာ။ +(7) + +
  116. Vietnamese (quốc ngữ): Tôi có thể ăn thủy tinh mà không hại gì. +
  117. Vietnamese (nôm) (4): 些 𣎏 世 咹 水 晶 𦓡 空 𣎏 害 咦 +
    Khmer: (NEEDED) +
    Lao: (NEEDED) +
  118. Thai: ฉันกินกระจกได้ แต่มันไม่ทำให้ฉันเจ็บ +
  119. Mongolian (Cyrillic): Би шил идэй чадна, надад хортой биш +
  120. Mongolian (Classic) (5): + ᠪᠢ ᠰᠢᠯᠢ ᠢᠳᠡᠶᠦ ᠴᠢᠳᠠᠨᠠ ᠂ ᠨᠠᠳᠤᠷ ᠬᠣᠤᠷᠠᠳᠠᠢ ᠪᠢᠰᠢ +
    Dzongkha: (NEEDED) +
    Nepali: (NEEDED) +
  121. Tibetan: ཤེལ་སྒོ་ཟ་ནས་ང་ན་གི་མ་རེད། +
  122. Chinese: 我能吞下玻璃而不伤身体。 +
  123. Chinese (Traditional): 我能吞下玻璃而不傷身體。 + +
  124. Taiwanese(6): Góa ē-tàng chia̍h po-lê, mā bē tio̍h-siong. +
  125. Japanese: 私はガラスを食べられます。それは私を傷つけません。 +
  126. Korean: 나는 유리를 먹을 수 있어요. 그래도 아프지 않아요 +
  127. Bislama: Mi save kakae glas, hemi no save katem mi.
    +
  128. Hawaiian: Hiki iaʻu ke ʻai i ke aniani; ʻaʻole nō lā au e ʻeha.
    +
  129. Marquesan: E koʻana e kai i te karahi, mea ʻā, ʻaʻe hauhau. +
  130. Chinook Jargon: Naika məkmək kakshət labutay, pi weyk ukuk munk-sik nay. +
  131. Navajo: Tsésǫʼ yishą́ągo bííníshghah dóó doo shił neezgai da. +
    Cherokee (and Cree, Ojibwa, Inuktitut, and other Native American languages): (NEEDED) +
    Garifuna: (NEEDED) +
    Gullah: (NEEDED) +
  132. Lojban: mi kakne le nu citka le blaci .iku'i le se go'i na xrani mi +
  133. Nórdicg: Ljœr ye caudran créneþ ý jor cẃran. +
+

+ +(Additions, corrections, completions, +gratefully accepted.) + +

+For testing purposes, some of these are repeated in a monospace font . . . +

+

    +
  1. Euro Symbol: €. +
  2. Greek: Μπορώ να φάω σπασμένα γυαλιά χωρίς να πάθω τίποτα. +
  3. Íslenska / Icelandic: Ég get etið gler án þess að meiða mig. + +
  4. Polish: Mogę jeść szkło, i mi nie szkodzi. +
  5. Romanian: Pot să mănânc sticlă și ea nu mă rănește. +
  6. Ukrainian: Я можу їсти шкло, й воно мені не пошкодить. +
  7. Armenian: Կրնամ ապակի ուտել և ինծի անհանգիստ չըներ։ +
  8. Georgian: მინას ვჭამ და არა მტკივა. +
  9. Hindi: मैं काँच खा सकता हूँ, मुझे उस से कोई पीडा नहीं होती. +
  10. Hebrew(2): אני יכול לאכול זכוכית וזה לא מזיק לי. +
  11. Yiddish(2): איך קען עסן גלאָז און עס טוט מיר נישט װײ. +
  12. Arabic(2): أنا قادر على أكل الزجاج و هذا لا يؤلمني. +
  13. Japanese: 私はガラスを食べられます。それは私を傷つけません。 +
  14. Thai: ฉันกินกระจกได้ แต่มันไม่ทำให้ฉันเจ็บ +
+

+ +Notes: + +

+

    + +
  1. The "I can eat glass" phrase and initial translations (about 30 of them) +were borrowed from Ethan Mollick's I Can Eat Glass page +(which disappeared on or about June 2004) and converted to UTF-8. Since +Ethan's original page is gone, I should mention that his purpose was to offer +travelers a phrase they could use in any country that would command a +certain kind of respect, or at least get attention. See Credits for the many additional contributions since +then. When submitting new entries, the word "hurt" (if you have a choice) +is used in the sense of "cause harm", "do damage", or "bother", rather than +"inflict pain" or "make sad". In this vein Otto Stolz comments (as do +others further down; personally I think it's better for the purpose of this +page to have extra entries and/or to show a greater repertoire of characters +than it is to enforce a strict interpretation of the word "hurt"!): + +

    + +
    + + +This is the meaning I have translated to the Swabian dialect. + +However, I just have noticed that most of the German variants +translate the "inflict pain" meaning. The German example should rather +read: + +

    +

    +"Ich kann Glas essen ohne mir zu schaden." +
    +

    + +(The comma fell victim to the 1996 orthographic reform, +cf. http://www.ids-mannheim.de/reform/e3-1.html#P76. + +

    + +You may wish to contact the contributors of the following translations +to correct them: + +

    +

      + +
    • Lëtzebuergescht / Luxemburgish: Ech kan Glas iessen, daat deet mir nët wei. +
    • Lausitzer Mundart ("Lusatian"): Ich koann Gloos assn und doas dudd merr ni wii. +
    • Sächsisch / Saxon: 'sch kann Glos essn, ohne dass'sch mer wehtue. +
    • Bayrisch / Bavarian: I koh Glos esa, und es duard ma ned wei. +
    • Allemannisch: I kaun Gloos essen, es tuat ma ned weh. +
    • Schwyzerdütsch: Ich chan Glaas ässe, das tuet mir nöd weeh. +
    +

    + +In contrast, I deem the following translations *alright*: + +

    +

      + +
    • Ruhrdeutsch: Ich kann Glas verkasematuckeln, ohne dattet mich wat jucken tut. +
    • Pfälzisch: Isch konn Glass fresse ohne dasses mer ebbes ausmache dud. +
    • Schwäbisch / Swabian: I kå Glas frässa, ond des macht mr nix! +
    +

    + +(However, you could remove the commas, on account of +http://www.ids-mannheim.de/reform/e3-1.html#P76 +and + +http://www.ids-mannheim.de/reform/e3-1.html#P72, respectively.) + +

    + +I guess, also these examples translate the wrong sense of "hurt", +though I do not know these languages well enough to assert them +definitely: + +

    +

      + +
    • Nederlands / Dutch: Ik kan glas eten; het doet mij geen +pijn. (This one has been changed) +
    • Kirchröadsj/Bôchesserplat: Iech ken glaas èèse, mer 't deet miech jing pieng. + +
    +

    + +In the Romanic languages, the variations on "fa male" (it) are probably +wrong, whilst the variations on "hace daño" (es) and "damaĝas" (Esperanto) are probably correct; "nocet" (la) is definitely right. + +

    + +The northern Germanic variants of "skada" are probably right, as are +the Slavic variants of "škodi/шкоди" (se); however the Slavic variants +of " boli" (hv) are probably wrong, as "bolena" means "pain/ache", IIRC. + + +

    +
    +

    + +The numbering of the samples is arbitrary, done only to keep track of how +many there are, and can change any time a new entry is added. The +arrangement is also arbitrary but with some attempt to group related +examples together. Note: All languages not listed are wanted, not just the +ones that say (NEEDED). + +

  2. Correct right-to-left display of these languages +depends on the capabilities of your browser. The period should +appear on the left. In the monospace Yiddish example, the Yiddish digraphs +should occupy one character cell. + +
  3. Yoruba: The third word is Latin letter small 'j' followed by +small 'e' with U+0329, Combining Vertical Line Below. This displays +correctly only if your Unicode font includes the U+0329 glyph and your +browser supports combining diacritical marks. The Indic examples +also include combining sequences. + +
  4. Includes Unicode 3.1 (or later) characters beyond Plane 0. + +
  5. The Classic Mongolian example should be vertical, top-to-bottom and +left-to-right. But such display is almost impossible. Also no font yet +exists which provides the proper ligatures and positional variants for the +characters of this script, which works somewhat like Arabic. + +
  6. Taiwanese is also known as Holo or Hoklo, and is related to Southern +Min dialects such as Amoy. +Contributed by Henry H. Tan-Tenn, who comments, "The above is +the romanized version, in a script current among Taiwanese Christians since +the mid-19th century. It was invented by British missionaries and saw use in +hundreds of published works, mostly of a religious nature. Most Taiwanese did +not know Chinese characters then, or at least not well enough to read. More +to the point, though, a written standard using Chinese characters has never +developed, so a significant minority of words are represented with different +candidate characters, depending on one's personal preference or etymological +theory. In this sentence, for example, "-tàng", "chia̍h", +"mā" and "bē" are problematic using Chinese characters. +"Góa" (I/me) and "po-lê" (glass) are as written in other Sinitic +languages (e.g. Mandarin, Hakka)." + +
  7. Wagner Amaral of Pinese & Amaral Associados notes that +the Brazilian Portuguese sentence for +"I can eat glass" should be identical to the Portuguese one, as the word +"machuca" means "inflict pain", or rather "injuries". The words "faz +mal" would more correctly translate as "cause harm". + +
  8. Burmese: In English the first person pronoun "I" stands for both +genders, male and female. In Burmese (except in the central part of Burma) +kyundaw (က္ယ္ဝန္‌တော္‌) for male and kyanma (က္ယ္ဝန္‌မ) for female. +Using here a fully-compliant Unicode Burmese font -- sadly one and only Padauk +Graphite font exists -- rendering using graphite engine. +CLICK HERE to test Burmese +characters. + +
+ +
+

The Quick Brown Fox

+ +The "I can eat glass" sentences do not necessarily show off the orthography of +each language to best advantage. In many alphabetic written languages it is +possible to include all (or most) letters (or "special" characters) in +a single (often nonsense) pangram. These were traditionally used in +typewriter instruction; now they are useful for stress-testing computer fonts +and keyboard input methods. Here are a few examples (SEND MORE): + +

+

    + +
  1. English: The quick brown fox jumps over the lazy dog. +
  2. Irish: "An ḃfuil do ċroí ag bualaḋ ó ḟaitíos an ġrá a ṁeall lena ṗóg éada ó +ṡlí do leasa ṫú?" +"D'ḟuascail Íosa Úrṁac na hÓiġe Beannaiṫe pór Éava agus Áḋaiṁ." +
  3. Dutch: Pa's wijze lynx bezag vroom het fikse aquaduct. +
  4. German: Falsches Üben von Xylophonmusik quält jeden +größeren Zwerg. (1) +
  5. German: Im finſteren Jagdſchloß am offenen Felsquellwaſſer patzte der affig-flatterhafte kauzig-höf‌liche Bäcker über ſeinem verſifften kniffligen C-Xylophon. (2) +
  6. Swedish: Flygande bäckasiner söka strax hwila på mjuka tuvor. +
  7. Icelandic: Sævör grét áðan því úlpan var ónýt. +
  8. Polish: Pchnąć w tę łódź jeża lub ośm skrzyń fig. +
  9. Czech: Příliš +žluťoučký kůň úpěl +ďábelské kódy. +
  10. Slovak: Starý kôň na hŕbe +kníh žuje tíško povädnuté +ruže, na stĺpe sa ďateľ +učí kvákať novú ódu o +živote. +
  11. Russian: В чащах +юга жил-был +цитрус? Да, +но +фальшивый +экземпляр! +ёъ. + +
  12. Bulgarian: Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон. + +
  13. Sami (Northern): Vuol Ruoŧa geđggiid leat máŋga luosa ja čuovžža. +
  14. Hungarian: Árvíztűrő tükörfúrógép. +
  15. Spanish: El pingüino Wenceslao hizo kilómetros bajo exhaustiva lluvia y frío, añoraba a su querido cachorro. +
  16. Portuguese: O próximo vôo à noite sobre o Atlântico, põe freqüentemente o único médico. (3) +
  17. French: Les naïfs ægithales hâtifs pondant à Noël où il gèle sont sûrs d'être +déçus et de voir leurs drôles d'œufs abîmés. + +
  18. Esperanto: Eĥoŝanĝo +ĉiuĵaŭde. + +
  19. Hebrew: זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן. + +
  20. Japanese (Hiragana):
    +いろはにほへど ちりぬるを
    +わがよたれぞ つねならむ
    +うゐのおくやま けふこえて
    +あさきゆめみじ ゑひもせず +(4) +
    + +
+

+Notes: +

+

    + +
  1. Other phrases commonly used in Germany include: "Ein wackerer Bayer +vertilgt ja bequem zwo Pfund Kalbshaxe" and, more recently, "Franz jagt im +komplett verwahrlosten Taxi quer durch Bayern", but both lack umlauts and +esszet. Previously, going for the shortest sentence that has all the +umlauts and special characters, I had +"Grüße aus Bärenhöfe +(und Óechtringen)!" +Acute accents are not used in native German words, so I was surprised to +discover "Óechtringen" in the Deutsche Bundespost +Postleitzahlenbuch: +

    +

    +Click for full-size image (2.8MB) +
    +

    +It's a small village in eastern Lower Saxony. +The "oe" in this case +turns out to be the Lower Saxon "lengthening e" (Dehnungs-e), which makes the +previous vowel long (used in a number of Lower Saxon place names such as Soest +and Itzehoe), not the "e" that indicates umlaut of the preceding vowel. +Many thanks to the Óechtringen-Namenschreibungsuntersuchungskomitee +(Alex Bochannek, Manfred Erren, Asmus Freytag, Christoph Päper, plus +Werner Lemberg who serves as +Óechtringen-Namenschreibungsuntersuchungskomiteerechtschreibungsprüfer) + +for their relentless pursuit of the facts in this case. Conclusion: the +accent almost certainly does not belong on this (or any other native German) +word, but neither can it be dismissed as dirt on the page. To add to the +mystery, it has been reported that other copies of the same edition of the +PLZB do not show the accent! UPDATE (March 2006): David Krings was +intrigued enough by this report to contact the mayor of Ebstorf, of which +Oechtringen is a borough, who responded: + +

    +

    +Sehr geehrter Mr. Krings,
    +wenn Oechtringen irgendwo mit einem Akzent auf dem O geschrieben wurde, +dann kann das nur ein Fehldruck sein. Die offizielle Schreibweise lautet +jedenfalls „Oechtringen“.
    +Mit freundlichen Grüssen
    +Der Samtgemeindebürgermeister
    +i.A. Lothar Jessel + +
    + + +

    +

  2. From Karl Pentzlin (Kochel am See, Bavaria, Germany): +"This German phrase is suited for display by a Fraktur (broken letter) +font. It contains: all common three-letter ligatures: ffi ffl fft and all +two-letter ligatures required by the Duden for Fraktur typesetting: ch ck ff +fi fl ft ll ſch ſi ſſ ſt tz (all in a +manner such they are not part of a three-letter ligature), one example of f-l +where German typesetting rules prohibit ligating (marked by a ZWNJ), and all +German letters a...z, ä,ö,ü,ß, ſ [long s] +(all in a manner such that they are not part of a two-letter Fraktur +ligature)." + +Otto Stolz notes that "'Schloß' is now spelled 'Schloss', in +contrast to 'größer' (example 4) which has kept its +'ß'. Fraktur has been banned from general use, in 1942, and long-s +(ſ) has ceased to be used with Antiqua (Roman) even earlier (the +latest Antiqua-ſ I have seen is from 1913, but then +I am no expert, so there may well be a later instance." Later Otto confirms +the latter theory, "Now I've run across a book “Deutsche +Rechtschreibung” (edited by Lutz Mackensen) from 1954 (my reprint +is from 1956) that has kept the Antiqua-ſ in its dictionary part (but +neither in the preface nor in the appendix)." + +

    + +

  3. Diaeresis is not used in Iberian Portuguese. + +

    + +

  4. From Yurio Miyazawa: "This poetry contains all the sounds in the +Japanese language and used to be the first thing for children to learn in +their Japanese class. The Hiragana version is particularly neat because it +covers every character in the phonetic Hiragana character set." Yurio also +sent the Kanji version: + +

    +

    +色は匂へど 散りぬるを
    +我が世誰ぞ 常ならむ
    +有為の奥山 今日越えて
    +浅き夢見じ 酔ひもせず +
    + +
+

+Accented Cyrillic: +

+ +(This section contributed by Vladimir Marinov.) + +

+ +In Bulgarian it is desirable, customary, or in some cases required to +write accents over vowels. Unfortunately, no computer character sets +contain the full repertoire of accented Cyrillic letters. With Unicode, +however, it is possible to combine any Cyrillic letter with any combining +accent. The appearance of the result depends on the font and the rendering +engine. Here are two examples. + +

+

    + +
  1. Той видя бялата коса́ по главата и́ и ко́са на рамото и́, и ре́че да и́ +рече́: "Пара́та по́ па́ри от па́рата, не ща пари́!", но си поми́сли: "Хей, +помисли́ си! А́ и́ река, а́ е скочила в тази река, която щеше да тече́, +а не те́че." + +

    + +

  2. По пъ́тя пъту́ват кю́рди и югославя́ни. + +
+ +
+

HTML Features

+ +Here is the Russian alphabet (uppercase only) coded in three +different ways, which should look identical: + +

+

    +
  1. АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ +  (Literal UTF-8) +
  2. АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ +  (Decimal numeric character reference) +
  3. АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ +  (Hexadecimal numeric character reference) +
+ +

+ +In another test, we use HTML language tags to distinguish Bulgarian, Russian, +and Serbian, +which have different italic forms for lowercase +б, г, д, п, and/or т: +

+

+ + + + +
Bulgarian:   +[ бгдпт ]   +бгдпт ]   + Мога да ям стъкло и не ме боли. +
Russian: +[ бгдпт ]   +бгдпт ]   +Я могу есть стекло, это мне не вредит. +
Serbian: +[ бгдпт ]   +бгдпт ]   + Могу јести стакло +а +да ми +не +шкоди. +
+
+

+ +


+

Credits, Tools, and Commentary

+ +
+
Credits:
+
+The "I can eat glass" phrase and the initial collection of translations: +Ethan Mollick. +Transcription / conversion to UTF-8: Frank da Cruz. +Albanian: Sindi Keesan. +Afrikaans: Johan Fourie, Kevin Poalses. +Anglo Saxon: Frank da Cruz. +Arabic: Najib Tounsi. +Armenian: Vaçe Kundakçı. +Belarusian: Alexey Chernyak. +Bengali: Somnath Purkayastha, Deepayan Sarkar. +Bislama: Dan McGarry. +Braille: Frank da Cruz. +Bulgarian: Sindi Keesan, Guentcho Skordev, Vladimir Marinov. +Burmese: "cetanapa". +Cabo Verde Creole: Cláudio Alexandre Duarte. +Catalán: Jordi Bancells. +Chinese: Jack Soo, Wong Pui Lam. +Chinook Jargon: David Robertson. +Cornish: Chris Stephens. +Croatian: Marjan Baće. +Czech: Stanislav Pecha, Radovan Garabík. +Dutch: Peter Gotink. Pim Blokland, Rob Daniel, Rob de Wit. +Erzian: Jack Rueter. +Esperanto: Franko Luin, Radovan Garabík. +Estonian: Meelis Roos. +Farsi/Persian: Payam Elahi. +Finnish: Sampsa Toivanen. +French: Luc Carissimo, Anne Colin du Terrail, Sean M. Burke. +Galician: Laura Probaos. +Georgian: Giorgi Lebanidze. +German: Christoph Päper, Otto Stolz, Karl Pentzlin, David Krings, +Frank da Cruz. +Gothic: Aurélien Coudurier. +Greek: Ariel Glenn, Constantine Stathopoulos, Siva Nataraja. +Hebrew: Jonathan Rosenne, Tal Barnea. +Hausa: Malami Buba, Tom Gewecke. +Hawaiian: na Hauʻoli Motta, Anela de Rego, Kaliko Trapp. +Hindi: Shirish Kalele. +Hungarian: András Rácz, Mark Holczhammer. +Icelandic: Andrés Magnússon, Sveinn Baldursson. +International Phonetic Alphabet (IPA): Siva Nataraja / Vincent Ramos. +Irish: Michael Everson, Marion Gunn, James Kass, Curtis Clark. +Italian: Thomas De Bellis. +Japanese: Makoto Takahashi, Yurio Miyazawa. +Kirchröadsj: Roger Stoffers. +Kreyòl: Sean M. Burke. +Korean: Jungshik Shin. +Langenfelder Platt: David Krings. +Lëtzebuergescht: Stefaan Eeckels. +Lithuanian: Gediminas Grigas. +Lojban: Edward Cherlin. +Lusatian: Ronald Schaffhirt. +Macedonian: Sindi Keesan. +Malay: Zarina Mustapha. +Manx: Éanna Ó Brádaigh. +Marathi: Shirish Kalele. +Marquesan: Kaliko Trapp. +Middle English: Frank da Cruz. +Milanese: Marco Cimarosti. +Mongolian: Tom Gewecke. +Napoletano: Diego Quintano. +Navajo: Tom Gewecke. +Nórdicg: +Yẃlyan Rott. +Norwegian: Herman Ranes. +Odenwälderisch: Alexander Heß. +Old Irish: Michael Everson. +Old Norse: Andrés Magnússon. +Papiamentu: Bianca and Denise Zanardi. +Pashto: N.R. Liwal. +Pfälzisch: Dr. Johannes Sander. +Picard: Philippe Mennecier. +Polish: Juliusz Chroboczek, Paweł Przeradowski. +Portuguese: "Cláudio" Alexandre Duarte, Bianca and Denise +Zanardi, Pedro Palhoto Matos, Wagner Amaral. +Québécois: Laurent Detillieux. +Roman: Pierpaolo Bernardi. +Romanian: Juliusz Chroboczek, Ionel Mugurel. +Ruhrdeutsch: "Timwi". +Russian: Alexey Chernyak, Serge Nesterovitch. +Sami: Anne Colin du Terrail, Luc Carissimo. +Sanskrit: Siva Nataraja / Vincent Ramos. +Sächsisch: André Müller. +Schwäbisch: Otto Stolz. +Scots: Jonathan Riddell. +Serbian: Sindi Keesan, Ranko Narancic, Boris Daljevic, Szilvia Csorba. +Slovak: G. Adam Stanislav, Radovan Garabík. +Slovenian: Albert Kolar. +Spanish: Aleida +Muñoz, Laura Probaos. +Swahili: Ronald Schaffhirt. +Swedish: Christian Rose, Bengt Larsson. +Taiwanese: Henry H. Tan-Tenn. +Tagalog: Jim Soliven. +Tamil: Vasee Vaseeharan. +Tibetan: D. Germano, Tom Gewecke. +Thai: Alan Wood's wife. +Turkish: Vaçe Kundakçı, Tom Gewecke, Merlign Olnon. +Ukrainian: Michael Zajac. +Urdu: Mustafa Ali. +Vietnamese: Dixon Au, +[James] Đỗ Bá Phước +杜 伯 福. +Walloon: Pablo Saratxaga. +Welsh: Geiriadur Prifysgol Cymru (Andrew). +Yiddish: Mark David, +Zeneise: Angelo Pavese. + +

+ +

Tools Used to Create This Web Page:
+ +
The UTF8-aware Kermit 95 terminal emulator on +Windows, to a Unix host with the EMACS text editor. Kermit +95 displays UTF-8 and also allows keyboard entry of arbitrary Unicode BMP +characters as 4 hex digits, as shown HERE. Hex codes +for Unicode values can be found in The Unicode +Standard (recommended) and the online code charts. When +submissions arrive by email encoded in some other character set (Latin-1, +Latin-2, KOI, various PC code pages, JEUC, etc), I use the TRANSLATE command +of C-Kermit on the Unix host (where I read my mail) to convert the character set to +UTF-8 (I could also use Kermit 95 for this; it has the same TRANSLATE +command). That's it -- no "Web authoring" tools, no locales, no "smart" +anything. It's just plain text, nothing more. By the way, there's nothing +special about EMACS -- any text editor will do, providing it allows entry of +arbitrary 8-bit bytes as text, including the 0x80-0x9F "C1" range. EMACS 21.1 +actually supports UTF-8; earlier versions don't know about it and display the +octal codes; either way is OK for this purpose. + +

+ +

Commentary: +
Date: Wed, 27 Feb 2002 13:21:59 +0100
+From: "Bruno DEDOMINICIS" <b.dedominicis@cite-sciences.fr>
+Subject: Je peux manger du verre, cela ne me fait pas mal. + +

+ +I just found out your website and it makes me feel like proposing an +interpretation of the choice of this peculiar phrase. + +

+ +Glass is transparent and can hurt as everyone knows. The relation between +people and civilisations is sometimes effusional and more often rude. The +concept of breaking frontiers through globalization, in a way, is also an +attempt to deny any difference. Isn't "transparency" the flag of modernity? +Nothing should be hidden any more, authority is obsolete, and the new powers +are supposed to reign through loving and smiling and no more through +coercion... + +

+ +Eating glass without pain sounds like a very nice metaphor of this attempt. +That is, frontiers should become glass transparent first, and be denied by +incorporating them. On the reverse, it shows that through globalization, +frontiers undergo a process of displacement, that is, when they are not any +more speakable, they become repressed from the speech and are therefore +incorporated and might become painful symptoms, as for example what happens +when one tries to eat glass. + +

+ +The frontiers that used to separate bodies one from another tend to divide +bodies from within and make them suffer.... The chosen phrase then appears +as a denial of the symptom that might result from the destitution of +traditional frontiers. + +

+Best,
+Bruno De Dominicis, Paris, France +

+ +

+Other Unicode pages onsite: +

+

+Unicode samplers offsite: +

+

+Unicode fonts: +

+ +

+[ Kermit 95 ] +[ K95 Screen Shots ] +[ C-Kermit ] +[ Kermit Home ] +[ Display Problems? ] +[ The Unicode Consortium ] +


+
+UTF-8 Sampler / The Kermit Project / +Columbia University / +kermit@columbia.edu +
+ + diff --git a/test/files/week9.html b/test/files/week9.html new file mode 100644 index 0000000..932e2da --- /dev/null +++ b/test/files/week9.html @@ -0,0 +1,1723 @@ + + + +NFL Football Scores - CBS SportsLine.com + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+
+ + + +
+ +
Scoreboard presented by
XXLXXL
XXL
+
+
+ + + + +
+ + + + +
+ PARTNER LINKS   NFL.com  PGATOUR.com  NCAAsports.com   +
+
+
+
+
+ + + + + +
+ + + + + + + + + + + + + +
  Register · Help 
+
+ + + + +
+ + + + + + + + + + + + + + +
|  powered by Google
+ +
+
+
+ + + + + + + + + + +
CBS SportsLine.comNFL Football Sports News
+ +
+
+ + + + + +
+
 Home  NFL  NBA  MLB  NHL  Coll FB  Coll BK  PGA TOUR  Autos  Tennis  Horses  More  
+
+ + + + + + + + +
 Fantasy  Mobile  Games  Contests  Shop 
+
+
+ +
+ +
+ + +
+· Home
+· NFL
+· NCAA
+· MLB
+· NBA
+· NHL
+· Fantasy + +
+ + +
+ + + + + + + + + + +
+ +
 NFL HomeScoreboardStandings | Schedules | Stats | Teams | Players | Transactions | Injuries | Fantasy News
+
+ + + + + + + + + + + + + +
  + + + + +
+ Scoreboard + + + + +
+

+ + + + + + + + + + + +
   + +
+
+
+ + + + + + + +
ALERT:
+
+
+
+ +
+ +
Preseason WeekHall of Fame · 1 · 2 · 3 · 4 +
+Week1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 · 9 · 10 · 11 · 12 · 13 · 14 · 15 · 16 · 17 +
+
+
+ + + + + +
+
+ +
 
+ + + + + +
Open Date: Arizona, Carolina, N.Y. Jets, PhiladelphiaAll times are US/Eastern
+ +
 
+ +
+
+
+ +
 
+ +
Sunday, November 5, 2006
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
Ford Field
+ +
Atlanta (5-3-0)770014
Detroit  (2-6-0) «10731030
+
+ + + + + + +
+ + + +
+ + Game Leaders
ATL: M. Vick (17-32, 163), M. Vick (10-80)
DET: J. Kitna (20-32, 321), R. Williams (6-138) +
+
+
+ + +
Recap · GameCenter · Live Commentary (Glog)
+
+
 
+ +
Soldier Field
+ +
Miami  (2-6-0) «01471031
Chicago (7-1-0)373013
+
+ + + + + + +
+ + + +
+ + Game Leaders
MIA: J. Harrington (16-32, 137), R. Brown (29-157)
CHI: R. Grossman (18-42, 210), T. Jones (20-69) +
+
+
+ + +
Recap · GameCenter · Live Commentary (Glog)
+
+
 
+ +
Ralph Wilson Stadium
+ +
Green Bay (3-5-0)007310
Buffalo  (3-5-0) «3701424
+
+ + + + + + +
+ + + +
+ + Game Leaders
GB: B. Favre (28-47, 287), A. Green (23-122)
BUF: J. Losman (8-15, 102), A. Thomas (20-95) +
+
+
+ + +
Recap · GameCenter · Live Commentary (Glog)
+
+
 
+ +
M&T Bank Stadium
+ +
Cincinnati (4-4-0)0731020
Baltimore  (6-2-0) «1436326
+
+ + + + + + +
+ + + +
+ + Game Leaders
CIN: C. Palmer (12-26, 195), C. Henry (2-79)
BAL: S. McNair (21-31, 245), T. Heap (4-84) +
+
+
+ + +
Recap · GameCenter · Live Commentary (Glog)
+
+
 
+ +
FedEx Field
+ +
Dallas (4-4-0)0127019
Washington  (3-5-0) «5701022
+
+ + + + + + +
+ + + +
+ + Game Leaders
DAL: T. Romo (24-36, 284), P. Crayton (4-84)
WAS: M. Brunell (14-23, 192), C. Portis (23-84) +
+
+
+ + +
Recap · GameCenter · Live Commentary (Glog)
+
+
 
+ +
Raymond James Stadium
+ +
New Orleans  (6-2-0) «14314031
Tampa Bay (2-6-0)0140014
+
+ + + + + + +
+ + + +
+ + Game Leaders
NO: D. Brees (24-32, 314), M. Colston (11-123)
TB: B. Gradkowski (18-31, 185), J. Galloway (4-97) +
+
+
+ + +
Recap · GameCenter · Live Commentary (Glog)
+
+
 
+ +
Edward Jones Dome
+ +
Kansas City  (5-3-0) «7170731
St. Louis (4-4-0)0107017
+
+ + + + + + +
+ + + +
+ + Game Leaders
KC: D. Huard (10-15, 148), L. Johnson (27-172)
STL: M. Bulger (31-42, 354), S. Jackson (13-133) +
+
+
+ + +
Recap · GameCenter · Live Commentary (Glog)
+
+
 
+ +
Giants Stadium
+ +
Houston (2-6-0)037010
NY Giants  (6-2-0) «700714
+
+ + + + + + +
+ + + +
+ + Game Leaders
HOU: D. Carr (21-30, 176), A. Johnson (9-83)
NYG: E. Manning (17-28, 179), T. Barber (17-115) +
+
+
+ + +
Recap · GameCenter · Live Commentary (Glog)
+
+
 
+ +
ALLTEL Stadium
+ +
Tennessee (2-6-0)00077
Jacksonville  (5-3-0) «14617037
+
+ + + + + + +
+ + + +
+ + Game Leaders
TEN: V. Young (15-36, 163), B. Scaife (5-70)
JAC: D. Garrard (12-22, 177), F. Taylor (13-79) +
+
+
+ + +
Recap · GameCenter · Live Commentary (Glog)
+
+
 
+ +
Monster Park
+ +
Minnesota (4-4-0)30003
San Francisco  (3-5-0) «06039
+
+ + + + + + +
+ + + +
+ + Game Leaders
MIN: B. Johnson (21-31, 136), C. Taylor (26-96)
SF: A. Smith (13-21, 105), F. Gore (19-41) +
+
+
+ + +
Recap · GameCenter · Live Commentary (Glog)
+
+
 
+ +
Qualcomm Stadium
+ +
Cleveland (2-6-0)3901325
San Diego  (6-2-0) «3771532
+
+ + + + + + +
+ + + +
+ + Game Leaders
CLE: C. Frye (25-43, 236), K. Winslow (11-78)
SD: P. Rivers (19-28, 211), L. Tomlinson (18-172) +
+
+
+ + +
Recap · GameCenter · Live Commentary (Glog)
+
+
 
+ +
Heinz Field
+ +
Denver  (6-2-0) «14071031
Pittsburgh (2-6-0)0107320
+
+ + + + + + +
+ + + +
+ + Game Leaders
DEN: J. Plummer (16-27, 227), J. Walker (6-134)
PIT: B. Roethlisberger (38-54, 433), H. Ward (7-127) +
+
+
+ + +
Recap · GameCenter · Live Commentary (Glog)
+
+
 
+ +
Gillette Stadium
+ +
Indianapolis  (8-0-0) «7107327
New England (6-2-0)0143320
+
+ + + + + + +
+ + + +
+ + Game Leaders
IND: P. Manning (20-36, 326), M. Harrison (8-145)
NE: T. Brady (20-35, 201), L. Maroney (13-63) +
+
+
+ + +
Recap · GameCenter · Live Commentary (Glog)
+
+
 
 

Monday, November 6, 2006
+
+ + + + + +
+ +
Qwest Field
+ +
Oakland (2-6-0)00000
Seattle  (5-3-0) «1030316
+
+ + + + + + +
+ + + +
+ + Game Leaders
OAK: A. Walter (16-35, 166), R. Moss (6-76)
SEA: S. Wallace (18-30, 176), M. Morris (30-138) +
+
+
+ + +
Recap · GameCenter · Live Commentary (Glog)
+
+
 
 

+ +
+ + + + + + + + + + + + +
Key:
possession = Possession
« = Game Winner
 = Red Zone
 = New Play
+
+ + +
 
+ +
+ + + + + + + + +
 
 
+ +
+ + + + + + + + + + + + + + +
+Fantasy Football at CBS SportsLine.com +
+ + + + + +
+Help · +User Comments · +Site Index · +Privacy Policy · +About Us · +Terms of Service +
+CBS.com · +CBSNews.com · +TheShowBuzz.com · +CBS Corporation · +Advertise With Us +
+CBS Sports Store · +The INSIDER · +Entertainment Tonight +
+ + + +
+Copyright © 1995 - 2006 SportsLine.com, Inc. All rights reserved. SportsLine is a registered service mark of SportsLine.com, Inc.
+CBS "eye device" is a registered trademark of CBS Broadcasting, Inc. + +
+ + + + diff --git a/test/files/why.xml b/test/files/why.xml new file mode 100644 index 0000000..3dd71fb --- /dev/null +++ b/test/files/why.xml @@ -0,0 +1,19 @@ + + + why the lucky stiff + http://whytheluckystiff.net + hex-editing reality to give us infinite grenades!! + en-us + + 2007-01-16T22:39:04+00:00 + + hourly + 1 + 2000-01-01T12:00+00:00 + 1.3http://whytheluckystiff.net/quatrains/1.3.htmlquatrains/1.3@http://whytheluckystiff.netquatrainsquatrainswhy the lucky stiff2007-01-14T08:47:05+00:00<blockquote> + <p>That cadillac of yours and that driver of yours!<br />You and your teacups rattling away in the back seat!<br />You always took the mike, oh, and all those cowboys you shot!<br />I held your hand! And I&#8217;ll shoot a cowboy one day!</p> + </blockquote> + <blockquote> + <p>You said, &#8220;Let&#8217;s run into the woods like kids!&#8221; <br />You said, &#8220;Let&#8217;s rub our hands together super-hot!&#8221; <br />And we scalded the trees and left octagons, I think that was you and<br />You threw parties on the roof!</p> + </blockquote> + diff --git a/test/load_files.rb b/test/load_files.rb new file mode 100644 index 0000000..d18559a --- /dev/null +++ b/test/load_files.rb @@ -0,0 +1,7 @@ +module TestFiles + Dir.chdir(File.dirname(__FILE__)) do + Dir['files/*.{html,xhtml,xml}'].each do |fname| + const_set fname[%r!/(\w+)\.\w+$!, 1].upcase, IO.read(fname) + end + end +end diff --git a/test/test_alter.rb b/test/test_alter.rb new file mode 100644 index 0000000..d220299 --- /dev/null +++ b/test/test_alter.rb @@ -0,0 +1,77 @@ +#!/usr/bin/env ruby + +require 'test/unit' +require 'hpricot' +require 'load_files' + +class TestAlter < Test::Unit::TestCase + def setup + @basic = Hpricot.parse(TestFiles::BASIC) + end + + def test_before + test0 = "" + @basic.at("link").before(test0) + assert_equal 'test0.css', @basic.at("link").attributes['href'] + end + + def test_after + test_inf = "" + @basic.search("link")[-1].after(test_inf) + assert_equal 'test_inf.css', @basic.search("link")[-1].attributes['href'] + end + + def test_wrap + ohmy = (@basic/"p.ohmy").wrap("
") + assert_equal 'wrapper', ohmy[0].parent['id'] + assert_equal 'ohmy', Hpricot(@basic.to_html).at("#wrapper").children[0]['class'] + end + + def test_add_class + first_p = (@basic/"p:first").add_class("testing123") + assert first_p[0].get_attribute("class").split(" ").include?("testing123") + assert (Hpricot(@basic.to_html)/"p:first")[0].attributes["class"].split(" ").include?("testing123") + assert !(Hpricot(@basic.to_html)/"p:gt(0)")[0].attributes["class"].split(" ").include?("testing123") + end + + def test_change_attributes + all_ps = (@basic/"p").attr("title", "Some Title") + all_as = (@basic/"a").attr("href", "http://my_new_href.com") + all_lb = (@basic/"link").attr("href") { |e| e.name } + assert_changed(@basic, "p", all_ps) {|p| p.attributes["title"] == "Some Title"} + assert_changed(@basic, "a", all_as) {|a| a.attributes["href"] == "http://my_new_href.com"} + assert_changed(@basic, "link", all_lb) {|a| a.attributes["href"] == "link" } + end + + def test_remove_attr + all_rl = (@basic/"link").remove_attr("href") + assert_changed(@basic, "link", all_rl) { |link| link['href'].nil? } + end + + def test_remove_class + all_c1 = (@basic/"p[@class*='last']").remove_class("last") + assert_changed(@basic, "p[@class*='last']", all_c1) { |p| p['class'] == 'final' } + end + + def test_remove_all_classes + all_c2 = (@basic/"p[@class]").remove_class + assert_changed(@basic, "p[@class]", all_c2) { |p| p['class'].nil? } + end + + def test_xml_casing + doc = Hpricot.XML("text") + (doc/:root/:wildCat).after("gravity") + assert_equal doc.to_s, "textgravity" + + frag = Hpricot.XML do + b { i "A bit of HTML" } + end + (frag/:b).after("gravity") + assert_equal frag.to_s, "A bit of HTMLgravity" + end + + def assert_changed original, selector, set, &block + assert set.all?(&block) + assert Hpricot(original.to_html).search(selector).all?(&block) + end +end diff --git a/test/test_builder.rb b/test/test_builder.rb new file mode 100644 index 0000000..57be7e9 --- /dev/null +++ b/test/test_builder.rb @@ -0,0 +1,37 @@ +#!/usr/bin/env ruby + +require 'test/unit' +require 'hpricot' + +class TestBuilder < Test::Unit::TestCase + def test_escaping_text + doc = Hpricot() { b "" } + assert_equal "<a"b>", doc.to_html + assert_equal %{}, doc.at("text()").to_s + end + + def test_no_escaping_text + doc = Hpricot() { div.test.me! { text "" } } + assert_equal %{
}, doc.to_html + assert_equal %{}, doc.at("text()").to_s + end + + def test_latin1_entities + doc = Hpricot() { b "\200\225" } + assert_equal "€•", doc.to_html + assert_equal "\342\202\254\342\200\242", doc.at("text()").to_s + end + + def test_escaping_attrs + text = "Some text" + assert_equal "Some text", + Hpricot(text).to_html + end + + def test_korean_utf8_entities + # a = '한글' + a = "\xed\x95\x9c\xea\xb8\x80" + doc = Hpricot() { b a } + assert_equal "한글", doc.to_html + end +end diff --git a/test/test_parser.rb b/test/test_parser.rb new file mode 100644 index 0000000..4c77adf --- /dev/null +++ b/test/test_parser.rb @@ -0,0 +1,386 @@ +#!/usr/bin/env ruby + +require 'test/unit' +require 'hpricot' +require 'load_files' + +class TestParser < Test::Unit::TestCase + def test_set_attr + @basic = Hpricot.parse(TestFiles::BASIC) + @basic.search('//p').set('class', 'para') + assert_equal 4, @basic.search('//p').length + assert_equal 4, @basic.search('//p').find_all { |x| x['class'] == 'para' }.length + end + + # Test creating a new element + def test_new_element + elem = Hpricot::Elem.new(Hpricot::STag.new('form')) + assert_not_nil(elem) + assert_not_nil(elem.attributes) + end + + def test_scan_text + assert_equal 'FOO', Hpricot.make("FOO").first.content + end + + def test_filter_by_attr + @boingboing = Hpricot.parse(TestFiles::BOINGBOING) + + # this link is escaped in the doc + link = 'http://www.youtube.com/watch?v=TvSNXyNw26g&search=chris%20ware' + assert_equal link, @boingboing.at("a[@href='#{link}']")['href'] + end + + def test_filter_contains + @basic = Hpricot.parse(TestFiles::BASIC) + assert_equal 'Sample XHTML', @basic.search("title:contains('Sample')").to_s + end + + def test_get_element_by_id + @basic = Hpricot.parse(TestFiles::BASIC) + assert_equal 'link1', @basic.get_element_by_id('link1')['id'] + assert_equal 'link1', @basic.get_element_by_id('body1').get_element_by_id('link1').get_attribute('id') + end + + def test_get_element_by_tag_name + @basic = Hpricot.parse(TestFiles::BASIC) + assert_equal 'link1', @basic.get_elements_by_tag_name('a')[0].get_attribute('id') + assert_equal 'link1', @basic.get_elements_by_tag_name('body')[0].get_element_by_id('link1').get_attribute('id') + end + + def test_get_elements_by_tag_name_star + simple = Hpricot.parse("

First

Second

") + assert_equal 3, simple.get_elements_by_tag_name("*").size + assert_equal 1, simple.get_elements_by_tag_name("div").size + assert_equal 2, simple.get_elements_by_tag_name("p").size + end + + def test_output_basic + @basic = Hpricot.parse(TestFiles::BASIC) + @basic2 = Hpricot.parse(@basic.inner_html) + scan_basic @basic2 + end + + def test_scan_basic + @basic = Hpricot.parse(TestFiles::BASIC) + scan_basic @basic + end + + def scan_basic doc + assert_kind_of Hpricot::XMLDecl, doc.children.first + assert_not_equal doc.children.first.to_s, doc.children[1].to_s + assert_equal 'link1', doc.at('#link1')['id'] + assert_equal 'link1', doc.at("p a")['id'] + assert_equal 'link1', (doc/:p/:a).first['id'] + assert_equal 'link1', doc.search('p').at('a').get_attribute('id') + assert_equal 'link2', (doc/'p').filter('.ohmy').search('a').first.get_attribute('id') + assert_equal (doc/'p')[2], (doc/'p').filter(':nth(2)')[0] + assert_equal (doc/'p')[2], (doc/'p').filter('[3]')[0] + assert_equal 4, (doc/'p').filter('*').length + assert_equal 4, (doc/'p').filter('* *').length + eles = (doc/'p').filter('.ohmy') + assert_equal 1, eles.length + assert_equal 'ohmy', eles.first.get_attribute('class') + assert_equal 3, (doc/'p:not(.ohmy)').length + assert_equal 3, (doc/'p').not('.ohmy').length + assert_equal 3, (doc/'p').not(eles.first).length + assert_equal 2, (doc/'p').filter('[@class]').length + assert_equal 'last final', (doc/'p[@class~="final"]').first.get_attribute('class') + assert_equal 1, (doc/'p').filter('[@class~="final"]').length + assert_equal 2, (doc/'p > a').length + assert_equal 1, (doc/'p.ohmy > a').length + assert_equal 2, (doc/'p / a').length + assert_equal 2, (doc/'link ~ link').length + assert_equal 3, (doc/'title ~ link').length + assert_equal 5, (doc/"//p/text()").length + assert_equal 6, (doc/"//p[a]//text()").length + assert_equal 2, (doc/"//p/a/text()").length + end + + def test_positional + h = Hpricot( "

one

two

" ) + assert_equal "

one

", h.search("//div/p:eq(0)").to_s + assert_equal "

one

", h.search("//div/p:first").to_s + assert_equal "

one

", h.search("//div/p:first()").to_s + end + + def test_pace + doc = Hpricot(TestFiles::PACE_APPLICATION) + assert_equal 'get', doc.at('form[@name=frmSect11]')['method'] + # assert_equal '2', doc.at('#hdnSpouse')['value'] + end + + def test_scan_boingboing + @boingboing = Hpricot.parse(TestFiles::BOINGBOING) + assert_equal 60, (@boingboing/'p.posted').length + assert_equal 1, @boingboing.search("//a[@name='027906']").length + assert_equal 10, @boingboing.search("script comment()").length + assert_equal 3, @boingboing.search("a[text()*='Boing']").length + assert_equal 1, @boingboing.search("h3[text()='College kids reportedly taking more smart drugs']").length + assert_equal 0, @boingboing.search("h3[text()='College']").length + assert_equal 60, @boingboing.search("h3").length + assert_equal 59, @boingboing.search("h3[text()!='College kids reportedly taking more smart drugs']").length + assert_equal 17, @boingboing.search("h3[text()$='s']").length + assert_equal 129, @boingboing.search("p[text()]").length + assert_equal 211, @boingboing.search("p").length + end + + def test_reparent + doc = Hpricot(%{
}) + div1 = doc.search('#blurb_1') + div1.before('
') + + div0 = doc.search('#blurb_0') + div0.before('
') + + assert_equal 'div', doc.at('#blurb_1').name + end + + def test_siblings + @basic = Hpricot.parse(TestFiles::BASIC) + t = @basic.at(:title) + e = t.next_sibling + assert_equal 'test1.css', e['href'] + assert_equal 'title', e.previous_sibling.name + end + + def test_css_negation + @basic = Hpricot.parse(TestFiles::BASIC) + assert_equal 3, (@basic/'p:not(.final)').length + end + + def test_remove_attribute + @basic = Hpricot.parse(TestFiles::BASIC) + (@basic/:p).each { |ele| ele.remove_attribute('class') } + assert_equal 0, (@basic/'p[@class]').length + end + + def test_abs_xpath + @boingboing = Hpricot.parse(TestFiles::BOINGBOING) + assert_equal 60, @boingboing.search("/html/body//p[@class='posted']").length + assert_equal 60, @boingboing.search("/*/body//p[@class='posted']").length + assert_equal 18, @boingboing.search("//script").length + divs = @boingboing.search("//script/../div") + assert_equal 1, divs.length + imgs = @boingboing.search('//div/p/a/img') + assert_equal 15, imgs.length + assert_equal 17, @boingboing.search('//div').search('p/a/img').length + assert imgs.all? { |x| x.name == 'img' } + end + + def test_predicates + @boingboing = Hpricot.parse(TestFiles::BOINGBOING) + assert_equal 2, @boingboing.search('//link[@rel="alternate"]').length + p_imgs = @boingboing.search('//div/p[/a/img]') + assert_equal 15, p_imgs.length + assert p_imgs.all? { |x| x.name == 'p' } + p_imgs = @boingboing.search('//div/p[a/img]') + assert_equal 18, p_imgs.length + assert p_imgs.all? { |x| x.name == 'p' } + assert_equal 1, @boingboing.search('//input[@checked]').length + end + + def test_tag_case + @tenderlove = Hpricot.parse(TestFiles::TENDERLOVE) + assert_equal 2, @tenderlove.search('//a').length + assert_equal 3, @tenderlove.search('//area').length + assert_equal 2, @tenderlove.search('//meta').length + end + + def test_alt_predicates + @boingboing = Hpricot.parse(TestFiles::BOINGBOING) + assert_equal 1, @boingboing.search('//table/tr:last').length + + @basic = Hpricot.parse(TestFiles::BASIC) + assert_equal "

The third paragraph

", + @basic.search('p:eq(2)').to_html + assert_equal '

THE FINAL PARAGRAPH

', + @basic.search('p:last').to_html + assert_equal 'last final', @basic.search('//p:last-of-type').first.get_attribute('class') + end + + def test_insert_after # ticket #63 + doc = Hpricot('
') + (doc/'div').each do |element| + element.after('

Paragraph 1

Paragraph 2

') + end + assert_equal doc.to_html, '

Paragraph 1

Paragraph 2

' + end + + def test_insert_before # ticket #61 + doc = Hpricot('
') + (doc/'div').each do |element| + element.before('

Paragraph 1

Paragraph 2

') + end + assert_equal doc.to_html, '

Paragraph 1

Paragraph 2

' + end + + def test_many_paths + @boingboing = Hpricot.parse(TestFiles::BOINGBOING) + assert_equal 62, @boingboing.search('p.posted, link[@rel="alternate"]').length + assert_equal 20, @boingboing.search('//div/p[a/img]|//link[@rel="alternate"]').length + end + + def test_stacked_search + @boingboing = Hpricot.parse(TestFiles::BOINGBOING) + assert_kind_of Hpricot::Elements, @boingboing.search('//div/p').search('a img') + end + + def test_class_search + # test case sent by Chih-Chao Lam + doc = Hpricot("
abc
") + assert_equal 1, doc.search(".xyz").length + doc = Hpricot("
abc
xyz
") + assert_equal 1, doc.search(".xyz").length + assert_equal 4, doc.search("*").length + end + + def test_kleene_star + # bug noticed by raja bhatia + doc = Hpricot("1
2
3
4") + assert_equal 2, doc.search("*[@class*='small']").length + assert_equal 2, doc.search("*.small").length + assert_equal 2, doc.search(".small").length + assert_equal 2, doc.search(".large").length + end + + def test_empty_comment + doc = Hpricot("

") + assert doc.children[0].children[0].comment? + doc = Hpricot("

") + assert doc.children[0].children[0].comment? + end + + def test_body_newlines + @immob = Hpricot.parse(TestFiles::IMMOB) + body = @immob.at(:body) + {'background' => '', 'bgcolor' => '#ffffff', 'text' => '#000000', 'marginheight' => '10', + 'marginwidth' => '10', 'leftmargin' => '10', 'topmargin' => '10', 'link' => '#000066', + 'alink' => '#ff6600', 'hlink' => "#ff6600", 'vlink' => "#000000"}.each do |k, v| + assert_equal v, body[k] + end + end + + def test_nested_twins + @doc = Hpricot("
Hi
there
") + assert_equal 1, (@doc/"div div").length + end + + def test_wildcard + @basic = Hpricot.parse(TestFiles::BASIC) + assert_equal 3, (@basic/"*[@id]").length + assert_equal 3, (@basic/"//*[@id]").length + end + + def test_javascripts + @immob = Hpricot.parse(TestFiles::IMMOB) + assert_equal 3, (@immob/:script)[0].inner_html.scan(/
}, + %{
}, + %{
}, + %{
}]. + each do |str| + doc = Hpricot(str) + assert_equal 1, (doc/:form).length + assert_equal '/units/a/login/1,13088,779-1,00.html', doc.at("form")['action'] + end + end + + def test_procins + doc = Hpricot("\n") + assert_equal "php", doc.children[0].target + assert_equal "blah='blah'", doc.children[2].content + end + + def test_buffer_error + assert_raise Hpricot::ParseError, "ran out of buffer space on element , starting on line 3." do + Hpricot(%{

\n\n\n\n

}) + end + end + + def test_youtube_attr + str = <<-edoc + + Lorem ipsum. Jolly roger, ding-dong sing-a-long + + + + + + + Check out my posting, I have bright mice in large clown cars. + + + + + + + + HAI + edoc + assert_equal "HAI", doc.at("body").inner_text + end + + # Reported by Jonathan Nichols on the Hpricot list (24 May 2007) + def test_self_closed_form + doc = Hpricot(<<-edoc) + +
+ +
+ + edoc + assert_equal "button", doc.at("//form/input")['type'] + end + + def test_filters + @basic = Hpricot.parse(TestFiles::BASIC) + assert_equal 0, (@basic/"title:parent").size + assert_equal 3, (@basic/"p:parent").size + assert_equal 1, (@basic/"title:empty").size + assert_equal 1, (@basic/"p:empty").size + end + + def test_keep_cdata + str = %{} + assert_equal str, Hpricot(str).to_html + end + + def test_namespace + chunk = <<-END + + hi + + END + doc = Hpricot::XML(chunk) + assert (doc/"//t:sam").size > 0 # at least this should probably work + # assert (doc/"//sam").size > 0 # this would be nice + end +end diff --git a/test/test_paths.rb b/test/test_paths.rb new file mode 100644 index 0000000..4313c9b --- /dev/null +++ b/test/test_paths.rb @@ -0,0 +1,25 @@ +#!/usr/bin/env ruby + +require 'test/unit' +require 'hpricot' +require 'load_files' + +class TestParser < Test::Unit::TestCase + def test_roundtrip + @basic = Hpricot.parse(TestFiles::BASIC) + %w[link link[2] body #link1 a p.ohmy].each do |css_sel| + ele = @basic.at(css_sel) + assert_equal ele, @basic.at(ele.css_path) + assert_equal ele, @basic.at(ele.xpath) + end + end + def test_attr_brackets + doc = Hpricot('') + assert_equal 1, (doc/'input[@name^="vendor[porkpies]"]').length + assert_equal 1, (doc/'input[@name="vendor[porkpies]"]').length + assert_equal 0, (doc/'input[@name$="]]]]]"]').length + + doc = Hpricot('') + assert_equal 1, (doc/'input[@name^="vendor[porkpies][meaty]"]').length + end +end diff --git a/test/test_preserved.rb b/test/test_preserved.rb new file mode 100644 index 0000000..673e980 --- /dev/null +++ b/test/test_preserved.rb @@ -0,0 +1,66 @@ +#!/usr/bin/env ruby + +require 'test/unit' +require 'hpricot' +require 'load_files' + +class TestPreserved < Test::Unit::TestCase + def assert_roundtrip str + doc = Hpricot(str) + yield doc if block_given? + str2 = doc.to_original_html + [*str].zip([*str2]).each do |s1, s2| + assert_equal s1, s2 + end + end + + def assert_html str1, str2 + doc = Hpricot(str2) + yield doc if block_given? + assert_equal str1, doc.to_original_html + end + + def test_simple + str = "

Hpricot is a you know uh fine thing.

" + assert_html str, str + assert_html "

Hpricot is a you know uh fine thing.

", str do |doc| + (doc/:p).set('class', 'new') + end + end + + def test_parent + str = "Test

Paragraph one.

Paragraph two.

" + assert_html str, str + assert_html "

Paragraph one.

Paragraph two.

", str do |doc| + (doc/:head).remove + (doc/:div).set('id', 'all') + (doc/:p).wrap('
') + end + end + + def test_escaping_of_contents + doc = Hpricot(TestFiles::BOINGBOING) + assert_equal "Fukuda\342\200\231s Automatic Door opens around your body as you pass through it. The idea is to save energy and keep the room clean.", doc.at("img[@alt='200606131240']").next.to_s.strip + end + + def test_files + assert_roundtrip TestFiles::BASIC + assert_roundtrip TestFiles::BOINGBOING + assert_roundtrip TestFiles::CY0 + end + + def test_escaping_of_attrs + # ampersands in URLs + str = %{Google} + link = (doc = Hpricot(str)).at(:a) + assert_equal "http://google.com/search?q=hpricot&l=en", link['href'] + assert_equal "http://google.com/search?q=hpricot&l=en", link.attributes['href'] + assert_equal "http://google.com/search?q=hpricot&l=en", link.get_attribute('href') + assert_equal "http://google.com/search?q=hpricot&l=en", link.raw_attributes['href'] + assert_equal str, doc.to_html + + # alter the url + link['href'] = "javascript:alert(\"AGGA-KA-BOO!\")" + assert_equal %{Google}, doc.to_html + end +end diff --git a/test/test_xml.rb b/test/test_xml.rb new file mode 100644 index 0000000..ac9306d --- /dev/null +++ b/test/test_xml.rb @@ -0,0 +1,28 @@ +#!/usr/bin/env ruby + +require 'test/unit' +require 'hpricot' +require 'load_files' + +class TestParser < Test::Unit::TestCase + # normally, the link tags are empty HTML tags. + # contributed by laudney. + def test_normally_empty + doc = Hpricot::XML("this is titlehttp://fake.com") + assert_equal "this is title", (doc/:rss/:channel/:title).text + assert_equal "http://fake.com", (doc/:rss/:channel/:link).text + end + + # make sure XML doesn't get downcased + def test_casing + doc = Hpricot::XML(TestFiles::WHY) + assert_equal "hourly", (doc.at "sy:updatePeriod").inner_html + assert_equal 1, (doc/"guid[@isPermaLink]").length + end + + # be sure tags named "text" are ok + def test_text_tags + doc = Hpricot::XML("City PoisonedRita Lee has poisoned Brazil.") + assert_equal "City Poisoned", (doc/"title").text + end +end