Mercurial > pidgin
view COPYRIGHT @ 12360:3153661f4d5c
[gaim-migrate @ 14664]
Faceprint is concerned about 2 things:
1)some of the random colors are very close together.
as best we can tell, there are two ways to fix this
1a) for each proposed color, iterate the entire list of selected
colors, looking to ensure that it is not too close to any of them.
this is an O(n^2) operation, with n >= 220 (the current number of
colors we look for)
1b) iterate the entire set of possible colors, skipping ahead by some
guess (rather than iterating by 1). this is an O(n^3) operation,
where n is 65535/(whatever we skip ahead by). This is not only a
more expensive operation, but because of the nature of the color
list, it is not _necessarily_ going to yield more predictable
results, skipping ahead 5 (or any other number) does not necessarily
guarantee that you've skipped 5 very similar colors.
2) as you can see, either solution to #1 is potentially a resource hog.
#1a is a random delay, #1b is inherently expensive. How often #1a will
exceed the bound #1b, if ever, is unknown.
rather than doing either of these, we settled on a middle course: a .h
file has been created containing a set of colors. currently the set we
were previously hard coded to. Gaim will search that list for usable
colors and start randomly looking only if that list does not contain
sufficient usable colors. ideally this list would be generated to have
colors that are known to be a "safe" distance appart, that is colors that
you can tell appart. and Ideally it would have a (small) multiple of the
number of colors we are searching for. This should ensure that IF we go
to randomly searching, we need do so only for a few colors.
Right now I have no good way to generate a "safe" list of colors though.
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Mon, 05 Dec 2005 21:46:47 +0000 |
parents | 5bc3d67ceb24 |
children | ee10d26f7fa9 |
line wrap: on
line source
Gaim Copyright (C) 1998-2005 by the following: If you have contributed to Gaim, you deserve to be on this list. Contact us (see: AUTHORS) and we'll add you. Dave Ahlswede Manuel Amador Matt Amato Daniel Atallah Paul Aurich Patrick Aussems John Bailey Luca Barbato Levi Bard Kevin Barry Derek Battams Martin Bayard Curtis Beattie Dave Bell Igor Belyi Brian Bernas Jonas Birmé Eric Blade Ethan Blanton Joshua Blanton Rainer Blessing Herman Bloggs David Blue Jason Boerner Graham Booker Craig Boston Chris Boyle Derrick J Brashear Matt Brenneke Jeremy Brooks Philip Brown Sean Burke Michael Carlson Julien Cegarra Cerulean Studios, LLC Jonathan Champ Ka-Hing Cheung Sadrul Habib Chowdhury Arturo Cisneros, Jr. Vincas Ciziunas Jonathan Clark Joe Clarke Eoin Coffey Jason Cohen Todd Cohen Nathan Conrad Felipe Contreras Alex Converse Irving Cordova Adam Cowell Palmer Cox Jeramey Crawford Balwinder Singh Dheeman Finlay Dobbie Mark Doliner Nuno Donato Jim Duchek Alex Duggan Tom Dyas Marc E. Andrew Echols John Eckerdal Sean Egan <sean.egan@binghamton.edu> Nelson Elhage Ignacio J. Elia Brian Enigma Stefan Esser Marc Etcheverry Larry Ewing Gábor Farkas Jesse Farmer Gavan Fantom (gavan) David Fiander Rob Flynn <gaim@robflynn.com> Rob Foehl (rwf) Alan Ford Nathan Fredrickson Chris J. Friesen Free Software Foundation Decklin Foster Francesco Fracassi Adam Fritzler Max G. François Gagné Evgueni V. Gavrilov Ignacy Gawedzki Richard Gobeille Michael Golden Charlie Gordon Ryan C. Gordon Miah Gregory Christian Hammond Erick Hamness Fred Hampton Casey Harkins Andy Harrison Andrew Hart (arhart) G. Sumner Hayes Michael R. Head Mike Heffner Benjamin Herrenschmidt Fernando Herrera Casey Ho Iain Holmes Joshua Honeycutt Nigel Horne Magnus Hult Karsten Huneycutt Rian Hunter Thomas Huriaux Henry Jen Benjamin Kahn Akuke Kok Cole Kowalski Gary Kramlich Patrik Kullman Tuomas Kuosmanen Tero Kuusela Richard Laager Scott Lamb Dennis Lambe Jr. Joe LaPenna Steve Láposi Daniel Larsson Peter Lawler Ho-seok Lee Moses Lei Ambrose C. Li Nicolas Lichtmaier Artem Litvinovich Syd Logan Lokheed Norberto Lopes Uli Luckas Matthew Luckie Mike Lundy Brian Macke Paolo Maggi Willian T. Mahan Kris Marsh Fidel Martinez Lalo Martins John Matthews Ryan McCabe Peter McCurdy Kurt McKee Torrey McMahon Robert McQueen Robert Mibus Benjamin Miller Kevin Miller Paul Miller Arkadiusz Miskiewicz Andrew Molloy Sergio Moretto Matthew A. Nicholson Szilard Novaki Novell Padraig O'Briain Christopher O'Brien (siege) Jon Oberheide Ruediger Oertel Gudmundur Bjarni Olafsson Nathan Owens (pianocomp81) Matt Pandina Ricardo Fernandez Pascual Riley Patterson Havoc Pennington Ted Percival Eduardo Pérez Joao Luís Marques Pinto Ari Pollak Robey Pointer Nathan Poznick Brent Priddy Federicco Mena Quintero Yosef Radchenko David Raeman Etan Reisner Kristian Rietveld Pekka Riikonen Tim Ringenbach Rhett Robinson Luciano Miguel Ferreira Rocha Andrew Rodland Jason Roth Jean-Francois Roy Arvind Samptur Sam S. Tom Samstag Neil Sanchala Alceste Scalas Carsten Schaar Luke Schierer Ralph Schmieder Evan Schoenberg Federico Schwindt Torrey Searle Peter Seebach Don Seiler Leonardo Serra Jim Seymour Joe Shaw Scott Shedden Ettore Simone John Silvestri Craig Slusher Alex Smith Malcolm Smith David Smock Phil Snowberger Eddie Sohn (tr1sk) Sony Computer Entertainment America, Inc. Mark Spencer Lex Spoon Kevin Stange Richard Stellingwerff David Stoddard Sun Microsystems Mårten Svantesson (fursten) Robert T. Brian Tarricone Peter Teichman Philip Tellis Arun A. Tharuvai Cestonaro Thilo Will Thompson Douglas Thrift (douglaswth) Andrew Tinney Jeffery To Warren Togami Stu Tomlinson Bill Tompkins Chris Toshok Ken Tossell Tom Tromey Todd Troxell Brad Turcotte Junichi Uekawa István Váradi Philip Van Hoof Kristof Vansant James Vega David Vermeille Sid Vicious Bjoern Voigt Nathan Walp Eric Warmenhoven Andrew Wellington Adam Wendt Dave West Daniel Westermann-Clark Andrew Whewell Dan Willemsen Jason Willis Matt Wilson Justin Wood Ximian Jared Yanovich Timmy Yee Nickolai Zeldovich Marco Ziech Piotr Zielinski Jaroen Zwartepoorte