Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Some logo for your OCaml related websites
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Brandon J. Van Every <vanevery@i...>
Subject: RE: [Caml-list] Some logo for your OCaml related websites
Olivier Grisel wrote:
> Benjamin Geer a écrit :
> >
> > I don't think it would help.  The shape of the camel face
> > (even without
> > the sunglasses) is what makes it Joe Camel.  This was the
> > intention of
> > the OCaml team when they chose this logo, apparently as a
> > joke (in very bad taste, I think).
> >
> > I think OCaml needs a completely new logo.

Yep.  The proferred logo is a clear violation of R.J.Reynolds Tobacco's
trademark.  It can't be used for serious marketing of OCaml, the legal
liabilities are obvious.  (N.B. My Dad was General Counsel for R.J.R.
Tobacco International for many years and retired as the arch spin
doctor!  Makin' the world safe for smoking since 1981.)

> > The problem of how to make it different from the Perl logo is
> > interesting.  Actually O'Reilly has a trademark on the use
> > of a camel to represent a programming language:
> >
> > http://perl.oreilly.com/usage

When I was working on various logo concepts for Python, we realized
there were 3 ways to treat an animal:

- realistically
- comically
- abstractly

We worked on graphical abstracitons of snakes because (1) we knew some
people would have negative associations with realistic snakes, (2) we
were trying to appeal to 'suits' and they wouldn't like cutesy stuff.
After many design iterations, we arrived at
http://www.pollenation.net/assets/public/python-main-oct05.png
The use of the snake is rather subtle.

I would suggest working on abstracitons of camels, so as to keep it
'clean' for suit consumption, and all the moreso because Functional
Programming is about providing better abstractions.

If anyone actually has digital art talent and wants to work on this, I'd
be happy to start a mailing list called 'ocaml-marketing'.  My own
digital art skills are exceedingly limited.  What I can offer is: I have
ok traditional art skills, a critical eye, and I've been through this
kind of logo creation process before.  My own bad logo submissions were
what got better artists to do real work to cough up real logos.  Sort of
a "put up or shut up" approach.

Getting INRIA's buy-in on any branding effort is key, as they probably
have legal control over how OCaml might be trademarked.  We utterly
failed to secure the Python Software Foundation's buy-in, and
consequently all our hard work was torpedoed.  I see securing the
blessing of the controlling organization as far more important than the
logo itself.  Given a blessing, an acceptable logo can always be arrived
at.  Without a blessing, all logo efforts are doomed.

> > Another alternative would be to make a logo that doesn't
> > represent a camel at all.

I think it would be a huge mistake to blow off the memorization value of
camels for OCaml.  What you want is a camel that doesn't cause any
confusion with regards to O'Reilly's trademark.  Again, try
abstractions.  For instance, you could use just the hump of a camel.

Now let's find out if the Bayesian filter is going to bitch and complain
about the oddness of this post compared to other caml-list posts.  Since
you're reading this, I guess not!  That leaves only the humans...


Cheers,                         www.indiegamedesign.com
Brand*n Van Every               S*attle, WA

Praise Be to the caml-list Bayesian filter! It blesseth
my postings, it is evil crap!  evil crap!  Bigarray!
Unboxed overhead group!  Wondering!  chant chant chant...

// return an array of 100 packed tuples
temps
  int $[tvar0][2*100]; // what the c function needs
  value $[tvar1]; // one int
  value $[tvar2]; // one tuple
  int $[tvar3] // loop control var
oncePre
eachPre
  $[cvar0]=&($[tvar0][0]);
eachPost
  $[lvar0] = alloc(2*100, 0 /*NB: zero-tagged block*/ );
  for(int $[tvar3]=0;$[tvar3]<100;$[tvar3]++) {
    $[tvar2] = alloc_tuple(2);
    $[tvar1] = Val_int($[cvar0][0+2*$[tvar3]]);
    Store_field($[tvar2],0,$[tvar1]);
    $[tvar1] = Val_int($[cvar0][1]);
    Store_field($[tvar2],1,$[tvar1+2*$[tvar3]]);
    Array_store($[lvar0],$[tvar3],$[tvar0]);
  }
oncePost

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners