Dialectizer Shut Down
endisnigh writes: "Another fun, interesting and innovative online resource goes the way of corporate ignorance - due to threats of legal action, the author of the dialectizer, a Web page that dynamically translates another Web page's text into an alternate 'dialect' such as 'redneck' or 'Swedish Chef' and displays the result, has packed up his dialectizer and gone home - see the notice here."
Here's a description from Micro Star v. Formgen Inc.:
As the site argues, the dialectizer only offers another means of viewing publicly accessible web documents. It uses its own rules to redisplay a public copy. What's next, an argument that all web browsers infringe because they don't follow HTML specs and so display the pages differently from the page authors' intent?(I had these cites handy because I've been waiting to see the same misguided challenge raised against ThirdVoice or my poky annotation engine for offering web page annotation.)
-- Openlaw: Fighting for fair use and the public domain
Does this mean something like Babelfish would be in violation of copyright laws? And dosen't copyright law allow for parodies of sites?
Just a thought, but wouldn't stuff like that be considered a parody, and thus fair use?
-- Dr. Eldarion --
It's not what it is, it's something else.
Really he says it much better than I can:
l ect= redneck&url=http%3A%2F%2Fwww.rinkworks.com%2Fdiale ct%2Fcopyr.shtml
http://www.rinkworks.com/dialect/dialectp.cgi?dia
--
blue
i browse at -1 because they're funnier than you are.
#!/usr/bin/perl
#
# Really simple dialectifying Perl script.
# Written by Christopher Thomas
#
# This can be transformed into a CGI very easily. Sample code for this
# has been included but commented out.
#
# This code may be freely used, distributed, and modified.
#
#
# Libraries.
#
# use whatever_cgi_library; # CGI
use strict;
#
# Translation tables.
#
# Make up a set of these tables for each dialect you want to produce.
# Remember that this is case-sensitive.
#
#
# Jar-Jar table.
#
# I've set this translation table up to mimic the "Jar-Jargonizer" that
# was featured in Quickies a while back.
# I've forgotten many of the suffix translations the original script did.
# No great loss.
#
# Translate prefixes of words.
my (%jarjar_prefix_trans);
%jarjar_prefix_trans =
(
);
# Translate suffixes of words.
my (%jarjar_suffix_trans);
%jarjar_suffix_trans =
(
"'re"=>"sa be"
);
# Translate whole words.
my (%jarjar_word_trans);
%jarjar_word_trans =
(
"me"=>"meesa",
"I"=>"meesa",
"you"=>"yousa",
"am"=>"be",
"I'm"=>"meesa be",
"are"=>"be",
"people"=>"Gungans",
"person"=>"Gungan",
"microsoft"=>"the Sith"
);
#
# Translation table hook pointers.
#
my (%jarjar_table);
%jarjar_table =
(
"prefix"=>\%jarjar_prefix_trans,
"suffix"=>\%jarjar_suffix_trans,
"word"=>\%jarjar_word_trans
);
#
# Master table indexing hook tables.
#
my (%dialect_tables);
%dialect_tables =
(
"jarjar"=>\%jarjar_table
);
#
# Utility functions.
#
#
# This function translates the specified list according to the specified
# dialect rules.
#
# Arg 1 is an array reference pointing to the text to modify.
# Arg 2 is a hash reference pointing to a dialect hook table.
#
# Returns 0 if successful and an error code if not.
sub translate
{
my ($text_p, $htable_p);
my ($prefix_p, $suffix_p, $word_p);
my ($errcode);
my ($this_line);
my ($index);
my ($key);
# Default to success.
$errcode = 0;
# Read arguments.
$text_p = $_[0];
$htable_p = $_[1];
# Sanity check.
if ((!(defined $text_p)) || (!(defined $htable_p)))
{
# Bad arguments.
$errcode = 1;
}
else
{
# Extract hook pointers.
$prefix_p = $$htable_p{prefix};
$suffix_p = $$htable_p{suffix};
$word_p = $$htable_p{word};
# Blithely assume that these hook pointers are valid.
# Translate.
for ($index = 0; defined ($this_line = $$text_p[$index]); $index++)
{
# Pad the string, to make life easier.
$this_line = " $this_line";
# Replace prefixes.
foreach $key (keys %$prefix_p)
{
# Take precautions against munching HTML tags.
$this_line =~ s/([^\w\])/$$suffix_p{$key}$1/g;
}
# Replace words.
foreach $key (keys %$word_p)
{
# Take precautions against munching HTML tags.
$this_line =~ s/([^\w\])/$1$$word_p{$key}$2/g;
}
# Remove padding.
$this_line =~ s/^.//;
# Store this line back in the array.
$$text_p[$index] = $this_line;
}
}
# Return the result.
return $errcode;
}
#
# Main program.
#
my ($target_URL);
my ($dialect_choice);
my (@page_text);
my ($hook_p);
my ($index);
# OUTPUT CONTENT-TYPE HEADER HERE # CGI
# Get arguments.
# CGI READING GOES HERE # CGI
$target_URL = $ARGV[0];
$dialect_choice = "jarjar";
# Get a table to the hook table for this dialect.
$hook_p = $dialect_tables{$dialect_choice};
# Sanity check.
if (!(defined $hook_p))
{
# No such dialect.
print "ERROR: Can't find dialect \"$dialect_choice\".\n";
}
else
{
# Try to read the specified web page.
@page_text = `lynx -source $target_URL`;
# Blithely assume that this worked.
# Translate the page.
translate(\@page_text, $hook_p);
# Dump the page contents to standard output.
for ($index = 0; defined $page_text[$index]; $index++)
{
# Don't add newlines; we've kept the old ones.
print $page_text[$index];
}
# Print a trailing newline, just in case the web source didn't have one
# and a human is viewing the output.
print "\n";
}
What does this mean for:
--
--
fat lenny's gonna lick your brain today.
I dunno about you guys, but I for one am glad to see this thing gone. Who wants "jive" speak anyway? Do you really think seeing "slap ma' fro" all the time is funny? Do you think that real people of African descent talk that way? I'm glad I wasn't raised on 70's blaxploitation films.
And what about "redneck"? Southern-Americans have it bad enough, what with the Yankess harassing them about the flag they flew in the War of Northern Aggression. I don't think making fun of the way that they say "y'all" is very proper.
And lastly, the Swedish chef. Can we really tolerate the amount of anti-Scandinavian bigotry which we are bombarded with daily in the media? Linus himself was of Swedish extraction, and it is no secret that his father was a chef. Granted, he had a tendency to throw chickens around wildly and make noises that can't quite be described as speech, but that's no reason to rub salt in old wounds.
Shame on you Slashdot, for supporting this monstrosity.
Good point. Is this really any different than babelfish?
Or the jesus translator (sorry lost the link), or the candaianizer and all the rest (there are a LOT of these things).
Bablefish is probably the best example though, it is doing the same thing that this guys was.
The bablefish doesn't do the same thing this guy was at all. Though the technological process may be similar, the transformation of the work is completely different.
The bablefish takes a peice of text and changes the language that it is written in. The content, and more importantly, the context of the message is unchanged. A political rallying call in french is still a political rallying call when translated to english. A bunch of blond joke in spanish are still blond jokes in english. (though puns would just sound dumb). A health alert in english is still a health alert in portuguese. Ad nauseum.
But the entire point of these dialect "translaters" is to change, not preserve context. Any text read through it becomes a joke. A person who writes on political topics might be perfectly happy for people to read them in other languages, but annoyed to have them turned into a swedish chef joke by someone who isn't even creative enough to do the "parody" on their own.
Again, this is not a legal argument, so save those flames for someone else. But there is a reason that this guy has been flooded with requests to not link to people's sites while bablefish likely hasn't recieved any such requests. They aren't the same thing and people who have worked hard on a site know the difference. If you don't recognize that (possibly non-legal) difference, you won't understand the context of this announcement.
-Kahuna Burger
...will work for Chick tracts...
But in all seriousness, releasing the code to the dialiectizer would allow us to enjoy it without putting rinkworks at risk of lawsuit, and without overloading rinkworks' server. Not having thoroughly examined their site, I don't know that they don't offer the code -- I just didn't see it upon casual inspection.
Alternatively, perhaps recoding it as a plug-in would be a good idea. Same benefits, plus it'd be seamless -- just click a "dialectize" button.
Christopher A. Bohn
cb
Oooh! What does this button do!?
So they're going to pay Lawyers $$$$, threaten freedom of speech, and look like complete idiots whereas they could have achieved what they wanted by just adding this line to httpd.conf:
Deny from rinkworks.com
Fucking clueless corporate bullies. Too bad stupidity is not lethal.
Uses That Are Generally Fair Uses Subject to some general limitations discussed later in this article, the following types of uses are usually deemed fair uses:
Seems like fair use under the parody clause but we all know that he with the lawyer and the money wins. Call the ACLU.
Ever hear of the CBLDF, Comic Book Legal Defense Fund? It's a fund to help comic book writers targeted by ridiculous legal action, mainly independent titles.
We need one for Internet sites facing this kind of bizarre legal harassment. We need an organization of people banded together (and taking donations, lets face it, it takes money), to help people fight this blossoming ridiculous legal activity.
My guess is lawyers are now engaged in preventative-and-predatory maneuvers, first strikes against any possible percieved threat no matter how bizarre or untrue. I've seen legal departments go on automatic before, and it seems this is happening more and more often on the net.
So, it's time to band together and fight.
"The Sage treasures Unity and measures all things by it" - Lao Tzu