Voder-Vocoder

The Log of Hal Canary

Navigation: Home | THE LOG | Log Archives | Resume | Contact Info | Public Key | SSL | Math Applets | Site Map | WP Backend | RSS2 | Atom

Archive for 2007-10

number reform

Well, if we were really starting from scratch, I would go with a base 16 numbering system (already in use by programmers everywhere).

One would have to throw out SI units, which would cease to make sense. It would also give us an opportunity to throw out the base 360/60/60 system (degrees/minutes/seconds) and 24/60/60 (hours/minutes/seconds) that the Babylonians saddled us with.

The proposal: The sixteen digits 0123456789abcdef. Integers would be written

dd,dddd,dddd

with four digit groups (16 bits each). Mixed numbers would be witten

dd,dddd,dddd.ddd

and a decimal separating fractions. Floating-point numbers (or numbers in scientific notation) would always be written

d.dddPdd

or

d.dddP-dd

where “xPy” means “x × 16y” (P for exPonent.)

The new minute would be 1/256 th of an average day. (5.625 old-minutes) The new second would be 1/65536 th of a day (1.318 old-seconds).

The new standard length would be around 9.202 centimeters. that would make the speed of light equal to an even 16^8 (new standard lengths/new seconds)

The new degree would simply be 1/256th of a circle.

Translating to and from binary would of course be trivial.

One would have to come up with new prefixes which mean "256 times", "1/256 times", "1/65536 times", and "65536 times"---like "kilo" means "1000 times".

Hal Canary | Computers & Code | 2007-10-31 13:46:45 UTC
Permanent Link | Comments Off

Not another calendar reform

A proposal for a better calendar. (If we didn't have the Gregorian calendar already and wanted to start from scratch.)

No      Name            Days
--      ----            ----
01      January         30
02      February        31
03      March           30
04      April           31
05      May             30
06      June            31
07      July            30
08      August          31
09      September       30
10      October         31
11      November        30
12      December        30 or 31

This would space out the months more equitably. Almost all two-month peroids would be exactly 61 days, the exception being December in non-leap years.

I would define January 1 to be the day after the Winter Solstice (at a fixed zero meridean). So all dates would be around ten days off fromthe Gregorain calendar.

As a result of this rule there would be around 8 leap days every 33 years, similar to how the Iranian/Persian/Jalāli Calendar works.

* * *

Of course the final calendar we will all come to accept millenia from now will probably simply be TAI with picosecond precision, expressed as a number of seconds since some fixed instant. Then calculating intervals become trivially simple, and we will just ignore where the sun is.

* * *

Additional, optional rules to make this a perpetual calendar: January 1 is always a Saturday. Then on 365-day years, you would get two Saturdays in a row:

12-29 12-30 | 01-01 01-02 01-03
 Fri   Sat  |  Sat   Sun   Mon

Or a double weekend on leap years:

12-29 12-30 12-31 | 01-01 01-02 01-03
 Fri   Sat   Sun  |  Sat   Sun   Mon

* * *

Note that one could make the existing Gregorian Calendar into a perpetual calendar by defining March 1 as always a Saturday.

02-27 02-28 | 03-01 03-02 03-03
 Fri   Sat  |  Sat   Sun   Mon
02-27 02-28 02-29 | 03-01 03-02 03-03
 Fri   Sat   Sun  |  Sat   Sun   Mon

* * *

UPDATE 2008-10-25: Here's very simple python code to give the month, day, and week, given the day of year.

# returns (month, day-of-month, weekday)
# given day-of-year
def dayandmonth(yday):
    assert (yday > 0) and (yday < 367)
    da = ((yday - 1) % 61) + 1
    mo = (((yday - 1) // 61 ) * 2) + 1
    if (da > 30):
        da = da - 30
        mo = mo + 1
    wd = (yday - 1) % 7 +1
    return (mo, da, wd)

And a leap year function:

# offset is determined by solar
# observations at the reference
# longitude
def isleapyear(y):
   offset = 2
   y = (y + offset) % 33
   if (y != 32) and ((y % 4) == 0):
        return True
   else:
        return False

Every 10,000 years, the offset may need to be changed. After 100,000 years, a new algorithm will likely be necessary

Hal Canary | New Standards | 2007-10-26 16:45:39 UTC
Permanent Link | Comments Off

the future

Set up my 401k today. I'm now saving for the future again.

I am not saving for retirement. Retirement is for people who plan on eventually dying.

Hal Canary | Life | 2007-10-13 16:55:07 UTC
Permanent Link | Comments Off

Copyright 1997-2007 by Hal Canary.
mailto: h3 at halcanary dot org
xmpp:halcanary@jabber.org
aim:halwcanary
http://halcanary.org