There is no syntax, no redundancy, no typing. There are no errors that can be detected. Forth uses postfix, there are no parentheses. No indentation. Comments are deferred to the documentation. No hooks, no compatibility. Words are never hyphenated. There’s no heirarchy. No files. No operating system.
I’ve never really been very “organized” about anything (those who know me a bit can vouch for this), but I’ve had to get crap done recently, so I’ve been forced to come up with some, uh, systems and processes.
Basically, the three ingredients I feel you need are reminders, lists and some keep-track-and-dump-stuff-thingie (the technical term for such things). I happened to pick on the default Reminders app, Wunderlist and Trello respectively for these, but really anything else will do.
Wunderlist is frequently used, mostly to keep track of recurring things to do weekly/monthly, and for shopping lists, or stuff that’s running out (no more bread? add it to the “Buy list”!)
Trello is lightly used, to keep track of both vague long home projects, and vacation planning, and a catch-all “miscellaneous” board with the standard ‘To Do’, ‘Doing’ and ‘Done’ stacks.
Finally, the basic Reminders app is most heavily used, since I throw in whatever comes to mind, even it’s something like “mail this letter”.
Nothing fancy, all free tools, and I’ve been feeling way less cognitive load for the last couple of months or so.
The point is, git doesn’t depend on GitHub. GitHub adds value to git. But to most people, the major difference between git and Subversion is that there’s a web site attached to git.
After a few years of this system, the results percolated through to my office. I could see the results in the lecture hall, but the procession of students who walked into my office and said “Dr Tarver, I need to do a final year project but I can’t do any programming”… well, they are more than I can remember or even want to remember. And the thing was that the School was not in a position to fail these students because, crudely, we needed the money and if we didn’t take it there were others who would. Hence failing students was frowned upon. By pre-1990 standards about 20% of the students should have been failed.
Ever notice how often writers use the word “priesthood” to describe the operations teams in charge of mainframes? Neither the Spanish, nor the Roman, nor any other national or ecclesiastical Inquisition was anywhere in sight of the development of mainframes, yet people keep resurrecting anti-clerical tropes from the Black Legends in order to impugn them. For example, in Accidental Empires, Robert X. Cringely described IBM’s PS/2 line as an attempt to make the computer industry “return to Holy Mother Church.”
Everything that was good about mainframes does still exist, and is popular, we just call it “the cloud” now.
No general procedure for bug checks will do.
Now, I won’t just assert that, I’ll prove it to you.
I will prove that although you might work till you drop,
you cannot tell if computation will stop.
You can never find general mechanical means
for predicting the acts of computing machines;
it’s something that cannot be done. So we users
must find our own bugs. Our computers are losers!
In short, computer security appears to have its very own parallel
to Arthur Clarke’s observation that “Any sufficiently advanced
technology is indistinguishable from magic,” namely, “Any
sufficiently complex input format is indistinguishable from
bytecode; the code receiving it is indistinguishable from a virtual
It’s natural for programmers to view the executable binary
generated from their programs through the prism of their source
code. In that view, functions do not get jumped into sideways,
nor are they called from locations other than their explicit call
sites; variables retain their values unless assigned to by name or
by reference; assembly instructions cannot spring into existence
unless somehow implied by the code’s semantics; and so on.