Why does one use max_length of CharField equal to 2^n whilst others use 2^n-1?
For example:
in django.contrib.gis.db.backends.postgis.models (django 1.3):
class SpatialRefSys(models.Model, SpatialRefSysMixin): srtext = models.CharField(max_length=2048)
in django_openid_auth.models (djano-openid-auth 0.3):
class Nonce(models.Model): server_url = models.CharField(max_length=2047)
Although it is not scientific measure, 2048 seems to be more popular than 2047, but 255 is more popular than 256. Django documentation says, that in MySQL max_length is restricted to 255 characters if you are using unique=True. But why would I use 2^n-1 instead od 2^n in other cases?