🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: comp.sys.ti.explorer
1 messages
1 total messages Started by Jamie Zawinski Fri, 13 Oct 1989 20:40
neat hack
#116
Author: Jamie Zawinski
Date: Fri, 13 Oct 1989 20:40
61 lines
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