Thread View: comp.sys.ti.explorer
1 messages
1 total messages
Started by Jamie Zawinski
Fri, 13 Oct 1989 20:40
neat hack
Author: Jamie Zawinski
Date: Fri, 13 Oct 1989 20:40
Date: Fri, 13 Oct 1989 20:40
61 lines
2960 bytes
2960 bytes
The following code will display an approximation of the US national debt
in the wholine. This (rather large) number will be displayed in the
file-state sheet when there are no open files, and it will update about
once a second. Setting the variable *WHOLINE-DISPLAY-NATIONAL-DEBT*
to NIL will make it go away (just the number, not the debt).
-- Jamie "Yow, am I socially conscious yet?" Zawinski
PS: I don't think it creates any garbage, since bignum consing happens
on the PDL, and this code reuses the string that is drawn.
PPS: There is little chance of this working on a microexplorer.
;;; -*- Mode:Lisp Syntax:Common-Lisp; Package:USER; -*-
;;; File "NATIONAL-DEBT".
;;; Display a running total of the US national debt in the wholine.
;;; Inspired by a similar program for the Amiga by Ron Charlton.
;;; Numbers come from the Survey of Current Business, 1989.
;;;
;;; 9 Oct 89 Jamie Zawinski Created.
(defconstant DEC-31-88-NATIONAL-DEBT 2707284000000
"The US National Debt as of Dec 31, 1988.")
(defconstant DEC-31-88-NATIONAL-DEBT-DELTA 7673.015L0
"The rate of increase of the US National Debt as of Dec 31, 1988 (in dollars per second).")
(defun national-debt-at (universal-time)
(let* ((dec-31-88 #.(encode-universal-time 0 0 24 31 12 1988))
(seconds-since-then (- universal-time dec-31-88))
(delta-since-then (truncate (* DEC-31-88-NATIONAL-DEBT-DELTA
seconds-since-then))))
(+ DEC-31-88-NATIONAL-DEBT delta-since-then)))
(defvar *wholine-national-debt-string*
(make-array 21 :element-type 'string-char :fill-pointer 0)
"A string which is reused when computing the national debt.")
(defvar *wholine-display-national-debt* t
"Whether the wholine file-state sheet should display the current US national debt when there is nothing else to show.")
(profile:define-profile-variable *wholine-display-national-debt* (:ucl)
:cvv-type :boolean)
(defmethod (tv:who-line-file-sheet :after :update) ()
"Display the national debt, if nothing else is there."
(declare (optimize (speed 3))) ; Turn on format-optimization.
(when (and *wholine-display-national-debt*
(eq tv:who-line-item-state 'tv:null))
(let ((string *wholine-national-debt-string*))
(declare (string string))
(setf (fill-pointer string) 1)
(setf (schar string 0) #\$)
(format string "~:D"
(the integer (national-debt-at (get-universal-time))))
(send self :clear-screen)
(send self :string-out-explicit string
(- (tv:sheet-inside-width) (send self :string-length string))))))
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads