Legalities aside, I'd prefer this wasn't done. It will induce confusion
as there will be some people who think it's associated with the Django
project. Having a description that says it implements the same
templating language as XYZ is simply descriptive, but making it clear in
the name that it's a different project would sit more comfortably with
me.
(Note: I have no actual say here, but that's my opinion as a reasonable
human being.)
[...]
> P.S.: Since I haven't look at the Django source yet: What the hell
> does "iriencode" do?
Encodes IRI's, obviously. As documented. :-)
Seriously, it implements section 3.1 of RFC 3987, with the exception of
international domain name handling (which is consistently not part of
Django yet, but most likely will be before 1.1).
Regards,
Malcolm
It's very easy: you just don't call it that. Why does it require
"change"?
> But I can make a
> statement that this has nothing to do with the Djangoproject into the
> namespace description. That one can be seen everywhere the name is
> displayed.
> It would be annoying for any user to write
> use
> Django::Templates::which::do::not::have::anything::to::do::with::djangoproject
> into every script :)
> I wanted to call it Template::Django or Template::Like::Django, but
> Template::Toolkit blocks the whole Template:: namespace. So the perl
> list gurus told me to call it Django::Template
All of this is predicated on using the word "Django" in the name, which
is the bit I have a problem with. Choose a different name for it. If you
implement a web server in Perl are you going to call it "Apache::*", if
it does some of the same things as Apache (e.g. using the HTTP
protocol)? No, you're going to find a proper name and then mention in
the docs that it does some of the same things as Apache, or in similar
ways to Apache. That avoids any confusion between your product and the
actual Apache product.
Malcolm
> Changing the namespace is not that easy, sadly. But I can make a
> statement that this has nothing to do with the Djangoproject into the
> namespace description. That one can be seen everywhere the name is
> displayed.
Um... I know you registered your namespace with CPAN, but as far as I
can tell, CPAN *really* doesn't care if you call it something else
(you don't even need to register a module to have it working on
CPAN...).
> I wanted to call it Template::Django or Template::Like::Django, but
> Template::Toolkit blocks the whole Template:: namespace. So the perl
> list gurus told me to call it Django::Template
Now this is just wrong. If you call it Template::WhateverIWant and
create the write Makefile.PL, the Makefile will install it into the
right place. There is no place that states A owns A::*.
PERL and CPAN can be accused of many things, but being strict---
especially w.r.t. naming ---is not one of them.
Cheers,
Mike
How is this different from, e.g., any of these?
http://code.google.com/hosting/search?q=django-
> Choose a different name for it. If you implement a web server in Perl
> are you going to call it "Apache::*", if it does some of the same things
> as Apache (e.g. using the HTTP protocol)? No, you're going to find a
> proper name and then mention in the docs that it does some of the same
> things as Apache, or in similar ways to Apache. That avoids any
> confusion between your product and the actual Apache product.
http://search.cpan.org/search?query=Apache&mode=module
Arien
So the problem that you are now mentioning is that you registered the
name first and decided to ask check if there might be a problem only
afterwards. I'm really not trying to be a hard-ass here, but that's not
a motivating factor. The solution is still simple. You just don't upload
anything. You pick a better, different name and use that. You tell the
CPAN guys you made a mistake in registering the original name. What
happens if somebody makes a typo in the name of their package, for
example? There must be plenty of cases of accidental registration.
> > Choose a different name for it. If you
> > implement a web server in Perl are you going to call it "Apache::*", if
> > it does some of the same things as Apache (e.g. using the HTTP
> > protocol)? No, you're going to find a proper name and then mention in
> > the docs that it does some of the same things as Apache, or in similar
> > ways to Apache. That avoids any confusion between your product and the
> > actual Apache product.
> It called it that, because it provides a template language like
> Django, but if this is a problem I will call it something else.
> Apache is a bad example, since many modules that _use_ Apache are also
> in the Apache:: Namespace, like Apache::Template and such.
No, Apache is a good example and I chose it with good reason. You are
not writing something that uses Django or wraps Django to provide a Perl
interface or is used in conjunction to extend Django. You are
reimplementing it entirely independently, just as if you writing a
different webserver. It just happens to use the same syntax.
> So where would you look for a template system to work with your
> existing Django templates?
In Django. Why would I have Django templates and then want to switch to
Perl, would be the more relevant question. I doubt the cross-over
audience is you primary base here.
Not having Django in the name is not the show-stopper for searches in
any case. Any decent search engine is going to index the description
that will include sentences like "uses a syntax similar to Django
templates".
As I said, I don't really have any power of decision here. I'd be
disappointed if the name Django was used in the Perl module name and
there are precisely no technical reasons why it's required.
Malcolm
Take your pick:
(a) It's not, really. People could do a much better job of naming their
packages.
(b) All of those packages are designed to run using Django, the Python
web framework.
>
> > Choose a different name for it. If you implement a web server in Perl
> > are you going to call it "Apache::*", if it does some of the same things
> > as Apache (e.g. using the HTTP protocol)? No, you're going to find a
> > proper name and then mention in the docs that it does some of the same
> > things as Apache, or in similar ways to Apache. That avoids any
> > confusion between your product and the actual Apache product.
>
> http://search.cpan.org/search?query=Apache&mode=module
Already answered in early mails.
Malcolm
Actually, they call their package "dojox.dtl". Their documentation
explains that it implements the Django template language.
--
"Bureaucrat Conrad, you are technically correct -- the best kind of correct."
> It called it that, because it provides a template language like
> Django, but if this is a problem I will call it something else.
> Apache is a bad example, since many modules that _use_ Apache are also
> in the Apache:: Namespace, like Apache::Template and such.
>
> So where would you look for a template system to work with your
> existing Django templates?
Just for the sake of completeness, there is a PHP5 clone of the Django
template system called "Calypso DTL":
http://www.beberlei.de/calypso/
--
Jannis Leidel
jezdez.com
Yep: http://dojotoolkit.org/book/dojo-book-0-9/part-5-dojox/dojox-dtl
> Even still, at a local Python meetup a little over a month ago,
> someone raised their hand and asked a question that went something
> like this: "I saw that Django switched over to being JavaScript now,
> and is part of Dojo. Why would they do that?" The fact that it even
> referenced the name Django confused more than zero people.
Some people are blessed with being naturally confused without external
factors.
Personally I like DTL --- it is a short memorable to-the-point acronym
that pays homage to Django, yet distinctive enough from everything else.
It doesn't play on subtle associations nor obscure music trivia, yet it
doesn't hide its heritage.
If I was to do a Perl port of DTL, I'll choose ... the DTL namespace, if
it is not taken yet.
Thanks,
Eugene
Indeed. Documenting that something implements the same format as
Django templates will only confuse people who were already going to be
confused anyway (e.g., showing them a Python implementation of
Markdown or Textile would have the same effect). So I don't see any
problem there.
> Personally I like DTL --- it is a short memorable to-the-point acronym
> that pays homage to Django, yet distinctive enough from everything else.
> It doesn't play on subtle associations nor obscure music trivia, yet it
> doesn't hide its heritage.
I like it, especially since there's prior art.
A link is fine.
Jacob
In addition to DojoX DTL, there's an Erlang library: ErlyDTL (
http://code.google.com/p/erlydtl/ ), and a PHP library: Calypso DTL
just an FYI that there are at least three other "DTL"s out there, so
<something>DTL would have some company.
Barry
The real tragedy here is that the Django Template system is great, but
it's name is "tightly coupled" to the Django Project.
I think DTL is a great and common standard and what people will be looking for.
What's wrong with template::dtl or template::perlDTL? People are
going to recognize it for what it is now that DTL is the common name
for the django template library.
This should be easier than naming a kid.
Adam
Because it wouldn't make any sense; the point of 'ifchanged' is to say
"I have a special thing which only needs to happen when this other
thing changes", not to set up complex chains of conditionals.
Because it wouldn't make any sense; the point of 'ifchanged' is to say
On Fri, Dec 26, 2008 at 11:36 AM, Maluku <marc.l...@googlemail.com> wrote:
> Kind of different question: Why is there no {% else %} in {% ifchanged
> %}, I think it might be a help to some people.
"I have a special thing which only needs to happen when this other
thing changes", not to set up complex chains of conditionals.