HTML 3D library for Web developers; down

If you make Web pages, you may find this interesting. – A public domain JavaScript library for easing
the development of HTML 3D applications. I’ve worked on this lately, and it now
has extensive documentation and examples. – Displays an HTML canvas-based background
that draws boxes in about the same color as the background color. An easy-to-use background
for your Web sites. View the demo:


The site is down. Please donate to help my pay my expenses
for restoring it, which are not my only expenses. Visit:

“allow to do” something, “remind to do” something

To say that something “allows to do something” is not the usual form in English. In my experience, this appears to be a common mistake of non-native English speakers, since a similar construction does occur in some other languages, such as Spanish (permitir hacerlo and not permitir haciéndolo)

Much more common is adding the somebody to the expression. “Allows you to do something” or “Allows many people to do something”. Or use a gerund (doing) instead of an infinitive (to do): “Allows doing something”.

A similar construction that’s potentially problematic is the form “remind to do something” (such as “This program reminds to eat right every day”). The verb remind in English always requires saying which person is being reminded. This is also unlike other languages. For instance, in Spanish using the verb recordar: Esta aplicación recuerda comer bien. Incidentally, the verb recordar also means “to remember”. But the verb remember means something slightly different: “I remember to eat well” means “I remind myself to eat well”. Saying “This program remembers to eat right” would mean “This program reminds itself to eat right”, so the meaning would be different.

Accordingly the correct form is “This program reminds you (or me, or people) to eat right every day.”

Don’t confuse “setup” with “set up”, or “shutdown” with “shut down”

“Setup” and “shutdown” are nouns. “Set up” and “shut down” are verbs, or more precisely, phrasal verbs. But frequently, these verbs in particular, and perhaps any verb with the same base and participle form (such as “put”, “set”, “read”, and others), are incorrectly compounded into one word:

  • *”Things were setup in some way” (say “things were set up” instead).
  • *”I’ll shutdown the computer” (say “I’ll shut down the computer”).

They should only be compounded when used as nouns:

  • “It was all a setup.”
  • “The recent shutdown of operations”.

Note that we don’t say *”all firedup” or *”they’ve takenover the land”, so we shouldn’t say *”I’ll shutdown the computer” or *”things were setup in some way”.

CBOR C# library released

I have released version a new CBOR library in C#.

Source code repository: Download:


A C# implementation of Concise Binary Object Representation (RFC 7049). CBOR is a general-purpose binary data format designed by Carsten Bormann, and its data model “is an extended version of the JSON data model”, supporting many more types of data than JSON. “CBOR was inspired by MessagePack”, but “is not intended as a version of or replacement for MessagePack.”

LESS CSS functions for beautiful Web typography

I’ve put together a set of LESS CSS functions for enabling beautiful typography in Web pages. It defines a set of common fonts used on the Web for sans-serif, serif, and monospaced styles, and sets font features as appropriate for a beautiful look. The functions are released to the Public Domain under CC0:

I use this library to help generate the style sheet now used in my site, The Ultimate Pokémon Center.


The unofficial term “generation”

I’ve eliminated the Pokémon term “generation” from UPC’s Web pages (as in “generation 2″, “generation 5″, and so on), mostly because it’s still a rather unofficial term. At most, official sources speak of “the next generation” or “a new generation” of Pokémon rather than classify Pokémon titles based on their release cycles. However, many people find this term useful when talking about the Pokémon series, so I define it here for convenience.

Generation 1: Has 151 Pokémon, began with Pokémon Red Version and Pokémon Blue Version/Pocket Monsters Green. Began in Japan in 1995, in North America in 1998, and in Europe in 1999.

Generation 2: Has 251 Pokémon, began with Pokémon Gold Version and Pokémon Silver Version. Began in Japan in 1999, in North America in 2000.

Generation 3: Has 386 Pokémon, began with Pokémon Ruby Version and Pokémon Sapphire Version. Began in Japan in 2002, in North America in 2003.

Generation 4: Has 493 Pokémon, began with Pokémon Diamond Version and Pokémon Pearl Version. Began in Japan in 2006, in North America in 2007.

Generation 5: Has 649 Pokémon, began with Pokémon Black Version and Pokémon White Version. Began in Japan in 2010, in North America in 2011.

Generation 6: Will begin with Pokémon X and Pokémon Y in 2013.

Articles and pages by the owner of The Ultimate Pokemon Center