You're right: this didn't come any sooner than any of the others.
- A Comprehensive ARG Report from the PMs: "However despite the great critical success of MeiGeist the producers [of the ARG] have been left without anything to show financially for what was in effect a twelve-month project with global impact. Having said that, there is a postscript - the increased reputation gained from the game’s success has drawn in valuable commercial work for the producers."
- 10 Books That Began Your Journey Down the Rabbit-hole: "Maybe they were the books that sparked your search for the truth about JFK or some other world event, about yourself or about that whole elusive thing called Reality. Perhaps these are the ten books that got you questioning all the received truths fed to you in school, by the media and by the well-meaning and equally deluded folks around you. Or maybe these are the ten books that brought you to that jaw-drop moment." Some of these now reside on my reading list.
- The 8 Most Needlessly Detailed Wikipedia Entries: "Unlike the wordy, full-of-itself recap of 7th Heaven, this series manages to sum itself up in a mere 6,787 words, and, it should be noted, seven of those words are "ass," and three of them are "hooker." Can you guess how many times 7th Heaven mentions ass? Not nearly as many times as it does "church," we can tell you that." This, and the other entries, are pretty hilarious.
- Adventures in particpatory, interactive, rock'n'roll storytelling.: Great writeup. "Let's talk about this sort of meta-, user-generated-content for a second. In a very real sense, it is a significant and valuable part of the experience. If you joined the Perplex City experience a year in, the only way to conveniently catch up was to consult the player-created resources. Baudrillard once said "the territory no longer precedes the map." Well, in this case, it's more accurate to say "that the map is a big part of the territory itself." If you can encourage your readers to make this sort of content, they aren't just doing something "about" the fiction, they're adding to the experience of the fiction - whether you like it or not."
- Who Owns Hues?: "Until recently, the importance of color as a brand identity wasn’t a big legal issue and the courts were lenient. It was an open question whether trademark law protected distinctive colors that had become strongly associated with a particular product or manufacturer. Today a color war is exploding and the use of color is generating unprecedented lawsuits ... Here are four examples of true "color" trademark infringement lawsuits."
- Add new comment
- 27 reads
My second daughter, Scarlett Emily, was born April 16th, 2008.
Julia meets her new sister.
Scarlett, wide awake and physical, is suspicious of the butterfly.
- 7 comments
- 442 reads
All in all, the response to Drupal Tough Love, the new code reviewing blog from chx and I, has been quite favorable, and we've already got a queue of at least a dozen submitted modules to look over. I had a grande chuckle at Amy Stephen's post on it over at OpenSourceCommunity.org:
I lift this service up because it's a perfect example of a functioning community ... What I am trying to say to those of you who are considering this service, but are not quite in touch with the inner geek inside, is this --> don't ask these guys if they think you are fat if you have your box of big clothes out and your skinny clothes are pushed in the back of the closet. It would be just like asking Simon Cowell if you can sing ... Károly and Morbus are not only acknowledged for who they are, and they are not only accepted for who they are, but who they are is celebrated. So, rock on, Drupal community!
We all make mistakes; that's how we learn. Sometimes, though, we need someone to point out our mistakes, to sift through the chaos that is Drupal's contributions repository. Inspired by jpoesen's comment on my code quality entry, chx and I have taken up the task of giving some tough love to Drupal's greatest strength: the army of developers using its APIs. Want your own code publicly reviewed at DrupalToughLove.com? Let us know!
- 2 comments
- 961 reads
I'm pretty critical about code quality, be it for my own projects or those of others, and have become known as giving harsh code reviews for the Drupal community. Hearing "ask Morbus, but be prepared to cry" pleases me, and I have little impetus to stop doing things I enjoy, regardless of what people think. Recently, someone suggested the reason my reviews seem "assholish" is because I state "you" a lot. I agree with this, I think, and have made an attempt to lessen my usage, though not my anality.
I define code quality via a number of different hard-to-describe metrics. In the case of Drupal, following the code style guidelines is certainly key, but also following Drupal core patterns as well - doing things "like core" is pretty high up there. This could be as simple as using the same documentation string for Drupal hooks, using the same pattern for the null option of a select box, et cetera. Using coder.module (a Drupal lint) to correct 90% of your mistakes should be required and, sometime in the future, tests from something like SimpleTest should be too.
I also think that, if you're going to "take over" a module, or otherwise release one, it should make an attempt at meeting the highest level of code quality. One could argue that "release early, release often" dissuades us from this, but I disagree: there's a difference between "doing it right" and "continuing to suck". I have no problem with weekly releases if you make an attempt to maintain or improve code quality. Hearing "A lot of strings have been lingering in incorrect forms ... as I try to prevent translations from breaking" isn't a legitimate excuse: Drupal core doesn't care about backwards compatibility, and it highlights your own inability to spell-, grammar-, or read-aloud check your strings (while also calling into question the quality of translators who have converted your broken documentation without complaint). I didn't release "my" version of Case Tracker until I considered it of high quality, and I made sure to provide explanation for what I was doing.
Since I've stopped working on Case Tracker, the CHANGELOG.txt hasn't been updated but, more importantly, it hasn't been removed either. This is just the first of a dozen "heading back to crap" problems that Case Tracker is suffering under, as I watch the new maintainer commit style error after style error. I don't give two shits if you're a certain type of programmer, or if you've coded this way "for years": if you're committing a Drupal contribution, you should follow the goals and styles of the parent project. Anything else is utter failure. If you don't want to, get the hell out of contrib, because it's already a sodding mess and you'll only make it worse. Requiring developers to read even the most basic of code practice books should be a guideline for access into any repository. "What is the name of the checklist on page 579 of Code Complete First Edition?", and other "you must have the book" tests, would be awesome.
This lack of quality control is the same reason Steven Wittens (UnConeD) left. He and I have gotten into a number of arguments, certainly, and he coined "The Morbus Effect" but, ideally, we're after the same thing: the best the code can offer, and an attention to research, detail, and testing that is, at times, incredibly boring.
Which all leads us into the blanket response to any criticism of code: "Where's the patch?". The overuse of the "code is golden, talk is not" ideology is as frustrating as anything else. I have no problem with contributing patches to Drupal modules which have made an attempt at code quality. There's a difference in "your code is good, but this needs fixing" vs. "holy crap, everything about this module is wrong". If you make an attempt to write good code, I'll put forth the effort to make it even better. If you don't, then I'm not going to waste my time improving your code: it just needs to start over. Make a new file and port things carefully, rewriting and organizing them properly. Or, do it in the same file and separate the good stuff from the bad by gigantic swathes of whitespace. Until you make the effort to show you care about your code and the parent project it belongs to, I'm not going to either.
Quality is one of the prime reasons I wrote an (unreleased) Achievements module as opposed to installing User Points. Ignoring the different approaches of "achievements" vs. "accumulate[d] points" (which I'll probably touch on in a later post), the 2.0 version of User Points failed at nearly everything. Besides showing, to me, a lack of quality, it actually didn't work properly, further exasperated because it shipped with a number of modules that were never maintained. I sent an email or two stating my dislike, and marveled privately about how so much crap could make it into a "2.0" release, especially one that was proudly presented and ballyhooed at various Drupal conventions. This is why I don't mind complaining about it publicly - it positions itself as something great, but I've yet to see any indication of that. I don't think I'd be as aggressive if it were a new module or developer innocently asking for help - there's no marketing, ego, or pride to provoke my ire.
Inevitably, I got into a chat about it on IRC, and that ever-nefarious "patch?" lament appeared. To me, User Points 2.0 was an example of wrong from the ground up, with duplicate data in the database, a UI that didn't work (functionally or architecturally), shipped modules that no developer cared about anymore, and crazy code patterns that drove me up a wall. The same conversation promised a new developer had taken up the reins of 3.0 with lots of rewrites, and I should check it out. Hating duplicate functionality and the whole "Not Invented Here" problem that often plagues plugin-driven development, I told myself that I would.
I'm embarking on such a journey now, as I find a need for my Achievements module once again. And, still, as I look at the very first lines of User Points 3.0, I find myself clucking disapprovingly. I don't see much improvement but, certainly, it requires more effort to truly make the decision (to their credit, they did remove all the unmaintained contributed modules). For what it's worth, my first 15 minutes of discontent equate to:
- Abuse of constants: User Points defines its permissions and other strings inside constants. This isn't only wrong (Drupal core doesn't do such a thing) but serves no discernible purpose besides being an additional layer of abstraction - perhaps the developer's IDE supports constant completion? If you're not manually and anally testing every line of code (which would root out misspellings or typos, one of a few rationales for code completion in an IDE), then your module isn't up to par. Gladly, SimpleTest integration in the future will indicate more obvious dedication to testing and non-laziness but, of course, that presumes properly written and maintained tests, which is probably too much to ask and could lull one into a false sense of complacency.
- String retardation: Administration permissions in Drupal core are always in the form of "administer something", but User Points happily uses "admin userpoints". It also doesn't know what the hell it's called: the module's page has "User Points", but usage within the code indicate it could be "Userpoints" or "userpoints" and that it could integrate with "e-commerce" or "ecommerce". These are all things I consider easy and obvious indications of quality control - most module interaction is only ever to an end-user, and if you can't perfect the most visible output of your effort, then the actual code isn't getting any love either.
At a 15 minute glance, if someone yelled out "patch?", I'd decline. This is a module that is showing the same problems I lamented privately about for 2.0, and just needs to spend an entire release cycle worrying about quality not functionality. With that said, note that this is, literally, 15 minutes of glancing at the source. I've yet to actually install the new 3.0 and there's still a good chance I'll find it usable enough to merge with my achievements code. "Not Invented Here" syndrome is a sign of laziness too but, as jsled remarked after reading an early draft of this entry, "at some point, learning how to use a tool is more costly than just writing a special-purpose tool".
One suggestion for improving module visibility in Drupal is to offer module ratings. I wouldn't support this idea unless there were two distinct metrics: the end-user metric (does this module do what I want it to do?) and the developer metric (does this module's code live up to the code we ship in Drupal core?). To me, a module's quality equates to a combination of both, and any rating system that attempts to merge the two, or leaves one out, isn't adequately asserting overall health.
- 13 comments
- 2294 reads
Oh, it has been so long since I've spewed some dumpages.
- Five Prescriptions for Viral Games: "Virality ... must be incorporated into a game while the rules are being designed and the technical architecture is being established. It is about making games that players feel invested in, that they want to share with friends--games they’ll go out of their way to show to others. When designing a game, developers should begin asking themselves not only "how will this make the game more fun?" but also "how will this encourage players to share the game with others?"
- The Forgotten Delicious: "The essence of the criticism boils down to two main issues: First, some (including myself) believe that these applications are not only pretty for the sake of pretty, but they also sacrifice functionality in the pursuit of form. Second, and an issue that has become more evident in recent months, the developers of many of these Delicious apps seem to follow a fairly consistent pattern of huge amounts of pre-release hype, 1.0 release with lots of fanfare (and sales), followed by not a whole lot else."
- Banner Blindness: Old and New Findings: "Users rarely look at display advertisements on websites. Of the four design elements that do attract a few ad fixations, one is unethical and reduces the value of advertising networks." Of particular note because it came out in August 2007; I'm 9 months behind!
- The Elements of Typographic Style Applied to the Web: "In order to allay some of the myths surrounding typography on the web, I have structured this website to step through Bringhurst's working principles [from The Elements of Typographic Style], explaining how to accomplish each using techniques available in HTML and CSS. The future is considered with coverage of CSS3, and practicality is ever present with workarounds, alternatives and compromises for less able browsers."
- ARG Stats: "The following list provides information about the uptake, impact and awards garnered from ‘alternate reality games’ (ARGs). I have gathered this information from published sources, preferencing of course information provided by the producers of the projects. Rather than list ‘top ARGs’, I’ve included whatever ARG I was able to find data on. I list them alphabetically because any grading of ARGs will be according to a set of criteria that is highly subjective. It is not a definitive list, but hopes to provoke one."
- Add new comment
- 735 reads
This has been sitting on my desktop for a while. Just posting it for searchability.
- Use MacTheRipper to rip the DVD to your hard drive. This not only removes encryption that prevents you from using your purchased media as you'd like, but also allows faster encoding times since you're not reading from a slow(er) disc drive.
- Launch ffmpegX and "Open" the VIDEO_TS directory MacTheRipper created.
- Choose an ffmpegX "Quick Preset". I like "XviD mencoder".
- Under the Video tab, first choose the "Title" and "Chapter" of the DVD content to encode. The default is usually enough for the main feature (i.e., the entire movie), but you can choose bonus material by opening the DVD in Apple's DVD Player, showing the Window > Navigation toolbar, and then browsing to the material you'd like. The proper Title and Chapter will be displayed and you'd enter those values into ffmpegX.
- Next, play around with the "Video parameters". Common ratios are 2.35:1 for a feature movie, 16:9 for widescreen video and 4:3 for standard, though you may have to do some test encodes with "5 sec test clip" under ffmpegX's Options tab to make sure you get it right.
- We're going to temporarily skip over the "Bitrate calculator" and head to the Audio tab. I tend to use 80 kbit/s and VBR but, in some cases, this depends on your output - if your output is a 700 MB CD, you may want to give more space to the video encode by setting the audio bitrate to 64 kbit/s. Depending on the source or length, you could use AC3 as opposed to MP3 for a higher quality audio - like for a 60 minute video or a LORD OF THE RINGS.
- Under the Filters tab is a handy "Autocrop"er which can shave off the black borders around your video. Simply click the "Autocrop" button and a preview window will appear with ffmpegX's suggestion. If it works, move on to Options, otherwise, tweak the four boxes (top, bottom, left, right). Unfortunately, if you do need to tweak the cropping, you'll have to do some test encodes to ensure accuracy.
- For a higher quality encode, there are a few things you'll want to turn on under the Options tab. "High Quality", "Use B-frames", "Two-pass encoding", "Trellis quantization" and "Scaling method" "bilinear" are all recommended. You'll also see the "5 sec test clip" option here if you'd like to experiment with your settings before queuing up a few hours of processing time.
- Back to the "Bitrate calculator" under Video. If you're looking for the best bitrate regardless of file size and based on your video size and framerate, click the "Best" button. Alternatively, you can define the number of minutes in your movie and the source destination (such as a CD or DVD) and click "Auto" to calculate the best value. For small clips, like movie trailers, I've decided on "5 MB for every 30 seconds" - a 1 minute 17 second clip would be entered into ffmpegX as "1.50 min" kept in "15 MB" of space. After clicking "Auto", the "Video Bitrate" is set and the "Video Size" ratio is recalculated to match my file size restrictions. Note that if you change any other setting under any tab, always come back here and click "Auto" again - you may be able to get a better bitrate and size.
- 5 comments
- 1926 reads
60 Blank White Cards is dead; long live Video Underbelly.
It has taken me 11 years, I think, to come to a simple conclusion: I prefer building resources over services. I define a "resource" as content you may be able to interact with; a "service", on the other hand, is primarily something you interact with, with content as complementary. When Disobey first started in 1997, it was all resources: I held high the mantra of "content is king", and produced as much of it as I could. As I became a programmer, I moved closer to services, building software that re-purposed content in ways the user desired. Most of my modern-day Perl scripts continue to do this. While the years wore on, though, I think I found myself building software for the sake of building software - why I rewrote Case Tracker, I don't really know.
Services tend to have shorter lifespans than resources: when everyone is making map APIs, social networks, and photo and video sharing, they crash and coalesce into one, stranding Site B's complementary content or sub-services when Site A takes the cake. Good content, however, good information, tends to be copied and passed around, living forever, never requiring a specific API or site or service.
I'd still like to make 60 Blank White Cards (perhaps as a Noteworthy or Lexicon; interested?) but, when it's over six months after launch, will anyone really remember it three years later? Will it even still be operational? When I'm working on something else and a new vulnerability is found, do I really want to drop everything to upgrade and then ensure it still runs with API changes I haven't been monitoring for years? Especially when no one cares about it anymore (save me, aghast at the idea of removing it from the net entirely)? When no one else but me can provide an upgrade path, do I really want to keep doing so ten years down the line?
Resources last longer than services because they tend to stand alone - there's little custom code involved when your entire intent is to just make content. One could lament "well, hey, you're using MediaWiki, and you've got to upgrade that continually!", but the difference is that that's pre-packaged software, much like PHP, Apache, Linux, and ever upwards - other people depend on it, so it'll just get done. Custom code for a project that has a finite life-span, or has been made irrelevant by new advances, just doesn't have the same life-support.
Years ago I asked where was my Lord of the Rings? Fiction, content with no custom code, tends to have a finite life-span for the author, but never for the reader. A service may have an intended finite life-span for the programmer, but when your goal is to make something available forever, technology and software just doesn't work that way. Whilst my goals for 60 Blank White Cards were to create a large body of interactive fiction, it was too ensorcelled inside custom, and nearly non-reusable, code whose public (or open sourced) release would actively prevent the mystery necessary for a game of its type. This is quite different from, say, Ghyll, which required no custom code, but was still an immense and enjoyable game of fictional tendencies. 60BWC's content was what I wanted, but there was too much "maintenance always required" to make it work. I was building a service with content as complement, and that's as bad as adding puzzles "just because" that's what ARGs are supposed to have.
I want to build resources that require little technology to operate and that are still important years from now. If that just means a reader is enjoying an encyclopedia last authored in 2005 and which, at any moment, could be expanded upon by the sole act of writing, I'm OK with that.
Video Underbelly took a few weeks to finalize some ideas, but is already "up and running", awaiting new and improved content. It is a resource for films that are often disregarded as unimportant or with no redeeming qualities. This is exactly why the site exists: it is a resource that needs to be retained, not a service that could be replaced. Its existence continues through mere copy and paste, not APIs or upgrades. It doesn't require six months of planning for the next "feature" or the next "version" - it just requires little trickles, each week, applying continuous torture to the rocks that line its shores. You never notice a rock being rounded - you only appreciate the patience it took to get there.
I'd much rather be trickling at creation than treading water with maintenance.
- 2 comments
- 12829 reads
The historical documents hint that the Hittites – whose empire stretched from modern-day Turkey to northern Syria – sent diseased rams to their enemies to weaken them with tularemia, a devastating bacterial infection that remains a potential bioterror threat even today, says the review.
The Arzawans took the sheep to their villages and used them for livestock breeding. Soon after, though, they began to suspect a link between the appearance of the animals and the terrible disease ravaging their communities ... "They started wondering 'Why do these rams start showing up on the road?'" says Trevisanato. He believes that among the Hittites, "somebody must have had the bright idea" to send diseased rams over to their Arzawan enemies.
- 1 comment
- 3758 reads
With Delicious Library 2 releasing sometime this holiday season, I may actually start using it for my library catalog. What has stopped me in the past was its lack of expandability - with no AppleScript support, I couldn't add in new data scraping functionality myself (though, if I were truly bothered, I'd've done custom imports). Thankfully, Delicious Library 2 fully supports AppleScript and I'm hoping I'll be able to hook into new item creation, as I'd love to store my comic and magazine collections (and maybe even weirder things like collectible card games, but that'd be ReAaALly stretchin' it).
With the prospect of doing comic importing "the right way" (meaning "type in a title and have it Work" vs. "prepare an external file for importing"), I decided to see if I could get the current release, version 1.6.6, doing "the right thing" the wrong way - getting it to Work via an amalgamation of hacks. I succeeded, but I'm not going to spend a lot of time walking through this: I'll assume you're willing to wait until version 2 is out and this all gets rewritten properly (hopefully... if it's not possible, this hack will be fleshed out in more quality-assured detail).
To get this going, you're going to need:
- The ability to modify the normally hidden
/etc/hostsfile. - The built-in Apache web server enabled (via System Preferences > Sharing).
- Leopard. There's a 99% chance it'll work on Tiger too, but I'm not checking.
- The comic book ID you'd like to import from the Grand Comic Database.
Be forewarned: this is a hack in the earliest stages! I'm sure there are plenty of things that can go wrong (like DL loading up the wrong URL for grey arrow clicks, bad scrapes from GCD due to unexpected formatting, the ability to add in other "matching" items from other Amazon sites, release dates that expect the exact day, etc.). I'm hoping all this stuff can be cleaned up a bit more in DL2, but DL is pretty tightly tied to Amazon's Web Services, so pulling data from other sources may always be kludgey like this.
Step 1: Intercept Delicious Library Lookups
The first thing we're going to do is tell Delicious Library to use Amazon Japan for data lookups (in Library > Preferences > Load Details From). I chose the Japan site because I don't think I'll ever legitimately visit there (much less use its Web Services), and the first step of the hack involves redirecting all requests sent to that site from your computer back to your computer. This will trick Delicious Library into thinking it's communicating with Amazon Japan, but instead, it'll be communicating with a script we'll install down in step 2.
To redirect all our Amazon Japan traffic, you'll need to edit /etc/hosts with an authenticating text editor (like BBEdit, or sudo vi, or whatever). Add the following to the bottom of the file, making sure that the whitespace between the two columns is created with a tab:
127.0.0.1 webservices.amazon.co.jp
Once you save the file, you should be able to access http://webservices.amazon.co.jp/ within your web browser and see that it is most definitely not the Amazon site - it should be whatever page you would normally see if you loaded http://127.0.0.1/ (by default, Apache's "Seeing this instead of the website you expected?").
Step 2: Responding to Delicious Library Lookups
Next, we have to install our script to respond to these lookups. If you attempted to add an item to your Library now, you'll notice that it should still work - it appears DL will default to Amazon US if there are no relevant results on your selected site (Japan, now being redirected back to your computer). The first step to responding correctly is creating a new directory at /Library/WebServer/Documents/onca/. Within this directory, we're going to create a text file called xml which will contain our custom script for loading comic books. This path mimicks the Amazon Web Services lookup that DL requests.
The new file will need to be set to 755 (chmod 755 /Library/WebServer/Documents/onca/xml) so that it is executable. We'll also tell Apache to let this script be executable from the web; to do so, add the following to /etc/apache2/users/username.conf and then restart the web server with sudo apachectl restart:
ScriptAlias /onca/ /Library/WebServer/Documents/onca/
Comics.org will be our comic book data source. We'll return data only if we actually find a comic book on that site... otherwise, we'll return nothing, which will force Delicious Library to use Amazon US for your regular scanning needs. Replace your xml file with this final version (renamed to xml), then run through the steps below:
- Find your comic on the Grand Comic Database.
- Get the comic ID from the URL (such as 13825 for Batman #111).
- Add a new item to DL, and add the comic ID to the "Find by #" field.
- Preface the comic ID with "B0" and then a series of "x"s until it turns into "Find by ASIN".
- For Batman #111 (13825), you'd use B0xxx13825.
- Click the "Find by ASIN" button.
If everything works, you should see something like:
There's plenty more to be done; I just hope I can do it better in DL2.
- 5 comments
- 5490 reads
I am a judge in Adrian Hon's newest project, Let's Change the Game. From his announcement:
... together with Cancer Research UK, I’m launching a new project, Let’s Change the Game, that will develop an ARG whose aim is to raise money for cancer research. Like other serious games, the ARG will also educate people about cancer and raise awareness of it, but unlike other serious games, its success will be measured directly on how much real change it can cause, through fundraising.
Let’s Change the Game is a competition where teams from anywhere in the world can submit their own game designs. The team behind the winning design, as chosen by judges who include Sean Stewart, Rhianna Pratchett and James Wallis, will then be invited to develop the game. They’ll have guidance and advice from the judges, plus the full resources of Cancer Research UK; that’s over 600 stores, monthly TV ads, hundreds of races and live events, and mailings going out to over 20 million people. It could be the biggest ARG, ever - and we’re giving new designers the chance to create it.
- Add new comment
- 5094 reads
Teaser 3 is up, previewing the 60BWC achievement system:
An achievement whore is the moniker taken by those who strive to earn every Xbox 360 achievement possible. For those unaware, every Xbox 360 retail game ships with 1000 points that can be earned by mundane, impossible, odd, or merely random gameplay. These points accumulate into a total gamer score that represents all the games you've played. To "ace" a game means you've earned all the points possible: ace your first five games and you'll have a total of 5000 points. Achievement whores obsess for days and weeks over the smallest point value or most useless task, in an ever-deepening delirium to see their scores climb ever higher. Some receive the scorn of fellow whores as they cheat their way forward with game saves and other nefarious activity.
- Add new comment
- 5935 reads
There's new teaser content over at my newest project 60 Blank White Cards, including ruminations about one (of four) inspirations for the game, as well as some very early sketches from our resident artist. Check it out!
Perplex City was an alternate reality game (ARG) with purchasable, but optional, puzzle cards, as well as a cash prize for the first player to find the stolen Cube. While other ARGs have toyed with physical items earned or found by players, as well as "prizes" (like playing Halo 2 before anyone else), none have yet replicated Perplex City's particular approach. I tend to think this is for two reasons: the mystery and the money.
- Add new comment
- 5890 reads
Pirate ships exist mostly in legend, but a real one - the Whydah - was discovered off Cape Cod by Barry Clifford in 1984. It's the only authenticated pirate ship ever found, and just like in legends, it was laden with treasure. Clifford and his team have just recovered a new collection of artifacts from the ship ... "The pirates testified in court in Boston, and their testimonies were recorded," Clifford said. "They said that the treasure was laid in one heap, that the money was kept in bags, in chests, between decks. And there was about four to five tons just from the Whydah."
- Add new comment
- 5745 reads
A fungus that is devastating amphibian populations around the world is a relatively new disease that is spreading rapidly ... Worse, not only is the fungus being spread by infected water, it may also be transmitted in the form of spores carried on the wind or birds' feathers ... B. dendrobatidis was formally identified as a frog-killer in 1998, though it has been found on museum specimens dating back to the 1930s. It affects frogs on every continent they are found and is considered one of the three major reasons - along with habitat destruction and trade - for the decline in global amphibian populations since the early 1980s.
- Add new comment
- 5704 reads
