Domain: drissman.com
Stories and comments across the archive that link to drissman.com.
Comments · 7
-
Isn't anyone going to answer the question?Has anyone seen an application that has a UI that made you sit up and stare in amazement at the simplicity and effectiveness of it?
iTunes (all of the iLife apps, actually), Excel, Jewish Calendar...
Actually, if you're a Mac user, you're accustomed to sitting down in front of a new app and instantly grasping it. For whatever reason, the sensibility that that is important has never taken hold in the Windows world, let alone in Linux.
The gem I encountered recently, though, is Windows/Linux: HelixTree for genetic analysis. Not trivial, but given the complexity of what it does, an incredibly intuitive UI.
-
Re:Nah... now HERE's an epoch for Apple
>> Pretty much *everything* in the Newton will get screwed up. There are hacks in the works to get around this, but none are very satisfactory.
Well, just send it back to Apple, and I'm sure they'll be happy to charge you $250 for a refurb!
;-) -
The Newton blows up in 2010.Its epoch is midnight 01-Jan-1904 and it uses an unsigned 32-bit integer to count seconds since then. That means it will run out at 06:28:15 09-Feb-2040.
Wrong.
The Newton has two clocks: minutes from 1904, and seconds from 1/1/1993. In addition, integers are only 30 bits wide. And signed.
I wrote a system patch called Fix2010 for the Newton to deal with this problem. Let me quote from the readme:
The main guts of this patch is obviously the patch to Time. Let me explain to you what I'm doing, and you'll understand better.
The real-time clock that runs the Newton runs from 1993 through 2010. This is due to the fact that NewtonScript integers are 30 bits, and signed. 2^29 seconds after 1993 is 2010--the end of the Seconds world. The time system, however, is based on minutes from 1904. That won't run out until 2920. Then we'll really be screwed.
That means that the clock has a 17-year life. After that, the clock will have to be made to repeat some Seconds values. I've defined a term called a hexade. A hexade is a block of 16 years. Hexade 0 is from 1993 (1/1/93, 12AM) to 2009 (1/1/09, 12AM). Hexade 1 is the 16-year block after 2009, and so on. I suppose we could deal with the negative hexades too, but I really don't care, and I don't think anyone else does either.
The function Time is patched out to read the current hexade (GetUserConfig('hexade)--don't touch that value!), read the RTC, bring the time into the current hexade, and return it. Remember, the RTC thinks we're in hexade 0.
The function TimeInSeconds is not patched out. I felt this was best for compatibility. This means two things: first, the Seconds timebase is no longer 1993; it is the first year of the current hexade. Secondly, you'd better not rely on Seconds values being consistent.
Here is a list of functions, and some notes on how they're changed by the installation of Fix2010. (Not all of them are patched; but some rely on patched routines.)
AddAlarm
The alarm soup is slightly hacked up. Please use only documented functions to do alarms. Please don't screw around with them yourself. Oh, yeah--AddAlarm works fine.AddAlarmInSeconds
This works, as long as you remember that the Seconds base is the first year of the current hexade, and not necessarily 1993. Or, if you're not sure, just pass in a date frame.DateFromSeconds
Works fine--just remember the new Seconds timebase.GetAlarm
Use it--just follow the advice of the Newton Programming Reference manual (14-11): Do not touch the returned frame. The new slot in the frame is a hexade slot, holding the hexade of the alarm. I know that it's not really necessary, since it can be computed from the time and timeInSeconds slots, but I'm lazy.SetTime
Ah, very important. Pass in any date from 1904 to 2920, with no problem. Or a date frame. See SetTimeInSeconds, below, for more details.SetTimeInSeconds
Just remember that if you pass in a seconds value, you cannot change the date from this hexade. If you want to do so, you'll need to pass a date frame. This function, as well as SetTime, checks the hexade of the new date. If it is different, then it changes to the new hexade, and walks and adjusts the system alarm soup before setting the RTC.Time
Returns the current time. Any time from 1904 to 2920.TimeInSeconds
This is not patched; it returns the value from the RTC. Just keep in mind the Seconds timebase.TimeInSecondsToTime
Just remember the new Seconds timebase. This, like all the other Seconds functions, uses the new base.TimeToTimeInSeconds
Once again, keep the new timebase in mind.TotalSeconds
Works, but just remember the new Seconds timebase. TotalSeconds(0) is not necessarily 1993.Version History
Version 1.0a1 (28 September 1998)
Initial release for sick, demented alpha-ve -
Re:Not true
Wrong. Tuvak loves his Apple Studio Display.
http://www.drissman.com/avi/misc/voyagerapple/ -
Wrong date
My Newton's going to have a problem in 2010. The ReadMe says the clock stops for the last time in 2920, but I'll probably have a HUD by then.
Damn, I feel like I've been Newton trolling all day or something.
-
Wrong date
My Newton's going to have a problem in 2010. The ReadMe says the clock stops for the last time in 2920, but I'll probably have a HUD by then.
Damn, I feel like I've been Newton trolling all day or something.
-
Re:Newton remains *useful*Actually, the 2010 problem was fixed a while ago.