Someone should start a Kickstarter for a professionally done documentary of Terry Davis and TempleOS. He's such an interesting person. I'd watch it. It would probably be an amazing documentary if done well and assuming Terry Davis would be OK with it.
Yeah, it's not every day you see someone with the persistence to roll their own OS like that, and really he has a lot of neat ideas there; guy seems like quite a character, I'm sure there's probably something for all of us to take away, and I'd sure watch it too. It would be really interesting to see the world, for a moment, through his eyes.
It sounds like a security nightmare and I'm not sure about how efficient it can be for not user oriented tasks. But the ubiquity of the system is like what XML pretended to be but never was.
It is multiprocessing, but not fair sharing. I like to call it single-process multiple thread. There is no difference between "task", "Process" or "thread". It is single address map. Paging in not used, basically.
I think an admin has to approve his comments because he has been shadowbanned.
In the past he made racist and homophobic remarks and got shadowbanned. His mental illness is hard to understand at times. The same thing happened to him on Reddit. He has to use multiple accounts to get around the shadowbans.
I think he is like Brandon Eich who donated to the wrong charity, made good contributions and solid programming work, but holds opinions that are not socially acceptable.
I don't think many people today realise how profoundly this can affect an OS (despite the many challenges). AmigaOS was the same, and it allowed a lot of hacks that are much more challenging to replicate in efficient ways on more modern OSs.
I can't reply to you directly. I didn't mean to imply that TempleOS is not multiprocessing. From what I gather there is only one user (with multiple processes) and that user owns all the files, hence no file permissions that say "this file belongs to user X" and "this file belongs to user Y", only user X can read/write/execute X's files, and the same for user Y. The author of the article linked to here states that TempleOS is a single user (but multiprocess!) system.
I wonder why you haven't implemented threads? Not enough of a benefit in your opinion? Aren't threads supported by modern CPUs. Don't they allow faster context switching than switching context for processes? Though I guess Erlang disagrees!
There's no memory protection, so like for other multitasking systems without memory protection (like AmigaOS...) the process/thread distinction doesn't matter.
Un-hellban Terry. It's a very rude and condescending way to treat the mentally ill. It's no different than trying not to make eye-contact with someone on the street because you think they're scary.
Wow, theres actually a lot of cool stuff in that. HolyC[0] also has some very nice features and is much more practical than I had previously thought, although I'm not sure I could last for long with it -- a lack of type checking is somewhat brutal.
Every time I read something about TempleOS, I was amazed by its concepts and Terry's dedication. I wonder if one day we could see something like "doom source code review" on TempleOS.
I really like watching the code reviews Terry has put on youtube. Watching him use his own creation to navigate, test and explain his own creation is very interesting.
I understand he has an interesting technique for putting together those code reviews, too: he uses a random number generator to randomly pick a piece of the code, then starts walking through whatever it chooses.
It is very interesting to see some comparisons you did. You mentioned Oberon[1], which has an explicit reference to Doug Engelbart. Seeing some TempleOS highlights reminds me a lot of those ideas, including LightTable[2].
That's nice. Glad to see it on here. I remember this guy and his OS back when people on Reddit were mean to him because he has a mental disorder. His dedication to this project is admirable.
To be fair, I'm not sure it was simply because he had a mental disorder -- Davis has gotten very combative (or at least ended productive conversations with vulgar non-arguments) on many occasions. Yes, it's probably almost exclusively because of his condition(s?), but it wasn't just "Hey look a guy with a weird brain! HA!"
No, people are not mean to him because he has a mental disorder. People are mean to him because he posts things like this:
A nigger respects complicated programs. The more complicated the more the little niggers respect it. Ask a nigger to design a operating system task scheduler! It's hilarious watching a nigger make priority schedulers.
I make my programs simple.
I have an electrical engineering degree. I am a master of differential equations.
Physics>Engineer>Computer Science> Psychology.
The nigger standard model is 20 pages instead of two and it's really really complicated.
When a computer scientist builds something he says, "What all features might we possibly need?"
When I design I make it as simple as possible.
Hello world joke: http://www.infiltec.com/j-h-wrld.htm
Look at what the nigger did to graphic files formats: http://en.wikipedia.org/wiki/BMP_file_format
Sound file formats: http://en.wikipedia.org/wiki/WAV
Any nigger can make it complicated. A nigger makes it as complicated as possible. I am a genius. I make it simple.
There are plenty of people who are not "sane" who don't hold and espouse those opinions, and I doubt anyone would take such umbrage with those people, so it's unreasonable and disingenuous to suggest that people are "mean to him because he has a mental disorder".
Do you really think the quote you posted has the slightest thing to do with race? I realize that in it he repeatedly uses a very bad word, but, bad as it may be, it is merely a word; I should like to hope some allowance might be made for the very plain fact that the man's mind isn't right, to say nothing of the minor point that, allowing for differences in phrasing and style, even a luminary like Paul Graham might well make the very same argument about unnecessary complexity.
Then again, when even a luminary like Paul Graham has to be careful about what he can and can't say [1], I suppose it's not too surprising that people should care more about the style of Mr. Davis's remarks than about their substance.
If someone you didn't know were posting these things as, say, YouTube comments, it would still be immediately apparent that their "mind isn't right", as you put it, but of course it would be perfectly acceptable to write them off. The allowance you're making is really because he's inside the group that HN readers have an interest in. If he wasn't a programmer, he would be just another religious nut to you.
I can't tell if you're saying "people shouldn't have to hear racism around them even if the person is mentally ill" (so shadowban it or whatever) or if you're saying "mental illness is not the reason that person's racist" (so I am free to pass moral judgment on them.)
Neither. I'm saying that people are responding to the words in his posts, rather than the underlying cause of those words. They're not saying, "Ugh, a mentally ill person, hate", they're saying "Wow, that's pretty offensive, hate".
In contrast, when the artwork of a schizophrenic gets posted (there's a particular one that pops up from time to time), people mostly respond with fascination.
But that's just the point. The words in question aren't any more charged with racialist intent than would be an equivalent work by the same person in a nonverbal medium, but one of those words in particular is linked to a reflex response called "offense", which apparently is so exceptional as to preclude any further analysis whatsoever even in people who don't fall within the group for whom the reflex-trigger word is a slur, and who therefore by definition cannot be insulted by its use.
I don't know, maybe it's just me. But when I see a lot of different people who've all apparently been trained to react identically and without thought or consideration to a given set of triggers, regardless of any context in which those triggers occur, it creeps me out just a little.
When you say the post is disingenuous, you are implying intent on the part of the poster. I don't see that (I don't disagree with your point that the characterization is inaccurate though).
How literal is your meaning when you say "Wow, that's pretty offensive, hate" below? Because I think hatred directed at a bigot is sort of a not very fruitful response to bigotry. In that sense, people being nasty because someone is saying offensive things isn't a huge improvement over people being nasty because someone is mentally ill.
I do see some need to deal with people that are being disruptive (whether intentionally or not), but I don't see much justification to do it with rancor.
That account was made 5 months ago. I remember this guy from at least 2 years ago when his project got attention on Reddit. Is it really him with that 5 month old account?
In any case, I don't know much about the guy. I just remember his posts being a little off... that might explain it but he is suffering from schizophrenia if I remember it correctly.
Really? You think that that change would make him likeable?
> Do try and use the brain God gave you.
Sorry, but I don't understand the purpose of that snarky comment. Do you disagree that the kind of post in the example I gave is why people are mean to him? It makes not a jot of difference that you "fixed" his post here (for whose benefit, I don't know), because he posts what he posts, and people read what he posts, and make their judgements based on that.
People are mean to him because people are rude jerks, and probably unlike Terry, have opted to be purposefully mean to somebody.
It's really annoying to me to see people get so caught up in the phrasing of an otherwise intelligible statement (due to trigger words or blatant racism or whatever) that they can't respond to it on its own merits.
Also, at this point, anybody who believes Terry is genuinely racist is obviously too incompetent to do research--it's pretty easy to find if you do any searching on the topic.
> People are mean to him because people are rude jerks
Yes, but the issue was why people are mean to him (as in, what are they responding to?), not why people are mean in general.
It's a fact of life that you will be judged on how you present yourself. And quite reasonably so -- you can't realistically expect that people are going to search the Internet for clues to every poster's mental health history before they form an opinion of them. That's simply not their responsibility. If at this point I were to call you something unpleasant, you would immediately form an opinion of me without doing any searching on the topic of my mental health. The evidence suggests you might even respond rudely.
Back before his project was called TempleOS, back when it was LoseThos, I didn't know his state of mind. Ran into some of the more disjoint and horribly worded statements on his sites and had no problems sussing out the wheat from the chaff.
In short, you don't need research to know when someone is off a bit. Our minds are great at pattern matching, but we get /lots/ of false positives. It's up to the higher level bits of our consciousness to figure out which is which. You just need to know what real tolerance and understanding is and fight off the urge to react to things on the surface.
Literally no-one in their right minds are going to write like that and expect to be taken seriously. Outright overt racism like what you claim you see in his posts just doesn't make sense in the contexts of code.
Now it looks like a perfectly sane and predictably off-putting piece of self-aggrandization. "I have a degree that is in a superior discipline relative to computer science." "Unlike most other programmers, I know my differential equations." "My ideas and approaches are better than those of all these other idiots." "I am a genius compares to those who invent complex solutions."
Of course people hate this, even without the random sprinkling of "nigger".
And the choice of that word reveals obvious racism. It says, I dislike blacks to the point that a word denoting them serves me as metaphor for other groups of people or concepts I revile.
Deep-rooted dislike or not, it is certainly disregard. Using that word, and in those ways, shows disregard for how a person of African descent might feel who reads that comment.
It'd be interesting to think about this from the inside out rather than the outside in as is normally done.
So imagine if you wanted to fire up a Python REPL and use it as your shell. What the shell essentially does is treat bare words as external command/executable invocations. Every dynamic language treats bare words as internal function/method invocations. That would mean that any executable looked up in $PATH (a global variable that holds a list of directories) would supersede any internal method in that scope! Is this workable? Why not try it and see? Also if you created a Shell library for Python (in C ;-)) then it could be used by Ruby and Perl and Node (or whatever they're calling it nowadays) and ...
It is interesting to imagine not having to context switch to shell-speak to interact with your machine. If you are a Pythonista just speak Python, a Rubyist the same ...
The article proves your point, even Linux with its openness is still very much tied to years of tradition.
And what if the shell output wasn't line-oriented but a live hypertext doc, say HTML5?
And while that page doesn't really highlight it, it works pretty well out of the box:
% ipython
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
Type "copyright", "credits" or "license" for more information.
IPython 2.3.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: pwd
Out[1]: u'/private/tmp'
In [2]: ls
KSOutOfProcessFetcher.0.r55jifrBu08ZlGAfPLYXKgYad4c=/ lein-trampoline-M8eCP9ASjLYqO
KSOutOfProcessFetcher.501.r55jifrBu08ZlGAfPLYXKgYad4c=/ lein-trampoline-i3aRyHVGcm1Fr
com.apple.launchd.QiAYKXJLr7/ snow-nic1.pcap
com.apple.launchd.iNBrDiEeE8/ snow-nic2.pcap
com.apple.launchd.z0Zss1uMx6/
In [3]:
I was about to suggest you could do this easily in Ruby, but it turns out that getting a catch-all method_missing at the top level to work is quite annoying - too many things in both Irb and Pry (the two main Ruby REPLs) seem to rely on trying method calls and catching the exceptions in ways that broke horribly with my most naive attempts.
But something like this works of-sorts in Ruby:
module Sh
def method_missing sym, *args
bin = ENV["PATH"].split(":").collect do |path|
full = File.join(path,sym.to_s)
File.exists?(full) ? full : nil
end.compact[0] rescue nil
if !bin
raise NameError.new(sym.to_s)
else
bin = system(bin,*args.collect{|a| a.to_s})
end
end
end
self.extend Sh
Pry can't handle it very well, probably as it relies extensively on method_missing "magic" itself, but Irb seems do do fine with it.
I'm sure there are ways to do the above in much cleaner ways, and even in Ruby syntax still gets in the way. E.g. you need to do 'ps :aux' or 'ps "aux"' instead of "ps aux" or the options will get interpreted as a method (though you could conceivably try to handle that by capturing NameError exceptions and applying really horribly nasty hacks, there would be a special place in hell for you if you were to do that; even the above is likely to break all kinds of stuff).
> And what if the shell output wasn't line-oriented but a live hypertext doc, say HTML5?
There have been all kinds of attempts at that, notably XmlTerm from Mozilla ca. 2000 [1]. It turns out to be a hard problem to get it right enough to make people use it. Basically to get that working at all I suspect you need to start with a good terminal emulator + a good shell, and make small enhancements rather than go the other way which most of these kind of projects have done.
I think even in HolyC you'll be fully quoting all paths. With general purpose languages, they're going to need either a recognised-shorthand-expanding preprocessor, or unfettered "reader" macros to be able approach Bourne shell style unadorned text that does process and file wrangling.
I think that's something every programmer dreams of sooner or later. It seems like anything I've worked on that's larger than a utility script eventually results in fudging around with multiple tools trying to get them to cooperate.
And every time, I'm like "I've got some fing code and they've given me some fing code and all I want is for them to run together."
Powershell can call code in .Net assemblies and I imagine there's a way to pass C# or some other .Net code in but it probably requires a fat command.
The true beauty here, I think isn't just the way the Command Line acts as an interpreter but that all the code on the system is exposed at all times through a simple, common interface.
Right? Imagine if you wanted to, I dunno, render HTML in a window in your application for some reason, and you could just easily pull up the running copy of Firefox on your system and call one of its functions, in real time, in your application. Done, now you've got an HTML renderer in your software.
You can actually do that in most modern GUI toolkits. It's usually called something like a WebView widget. See also the Chromium Embedding Framework. None of these talk to a separate running browser, to be fair.
I'm honestly curious, and not trolling here. I've followed some of what Terry Davis has developed, and seen him pop up here frequently as a subject of interest to many. In every thread here, I've seen something like:
Person A: TempleOS is amazing, written by just one guy! I'd love to know more about Terry, someone should do a documentary!
Person B: Terry has a mental disorder, a documentary would just end up [making fun of him|causing more mental issues]
As I understand it he does not believe he has mental issues, but does believe everything he's doing is directly influenced by an entity he perceives to be his God. Any of his supposed mental issues can just as easily be explained as issues of deep faith, a faith most/all of us are incompatible with.
Maybe I'm missing something essential here but what's the difference between Terry Davis and anyone else who believes their lives are being influenced/led by the invisible forces that are part of their religion? If he's crazy, is his brand of crazy significantly different from that of the pope or anyone else who claims to be regularly spoken to by their God?
I think it's fair to say that he's influence by the same thing that created religion in the first place. So yes God is speaking to him, just as God has spoken to all the mentally ill before him and told them to do things that have affected the world in various ways.
As for Terry being racist, so what... He's so far out there, and so far gone, that that's just another flaw in him that we have to accept/overlook.
We should simply accept him without judgment and take from his work whatever we feel like... Just as we do from religion or any other work of technology... People are free to do what they want, and it's not our right to get in the way of whatever they are attempting to accomplish, guided by whatever is out there or in here.
You may be honestly curious, but I don't think this is a very good topic for discussion here. The question "What is the difference between religion and mental illness?" is something that has been rehashed thousands of times both by famous philosophers and legions of Internet atheists. The short version of one useful answer is "The line is somewhat blurry, and obviously there have been many people who were both religious and mentally ill, but it's usually obvious because most religious people are able to function just fine in society and clearly do not have a crippling mental illness." To go further than that would be pretty far off-topic.
I also feel like it's somewhat in bad taste to attempt to debate this in the explicit context of a member here.
In his Vice interview [1] he does seem to acknowledge his mental illness and his diagnosis. But that does not mean he can't also (whether because of the mental illness or not) believe he is influenced by God.
But it's pretty clear that "his brand of crazy" is quite distinct from just deep belief. Most people with deepheld religious beliefs don't have manic episodes or start seeing people following them.
The claim to be regularly spoken to by God is extremely rare among the religious; I know of no modern Pope or other comparable mainstream religious figure who has publicly made such a claim.
I enjoy reading the source code of TempleOS. Its simple and down to earth. No gimmicks or traces of someone trying to show off. The kind of code you just sit down to read whenever the daily grind of battling technical debt gets to you.
While not very familiar to many, this is highly similar to the old Lisp Machine environments. Those were similarly a clean break from prior OSes, with:
- a powerful REPL to call either apps, inline tools, or direct commands
- interactive shells made up of mouse-interactable graphical components being
printed to the screen
- compilation of source code directly into the running image
etc.
They were also single-user, but did networking as well. People logged into a machine remotely could have the same interactive graphical sessions in their own context.
Given the history of computing from the 50s - 80s, this desktop architecture idea comes naturally to a lot of people. The major OSes, however, all have their ancestral lineage which prevents major rethinking. But another issue is that these ideas are at least power-user oriented.
While the mobile market did some major rethinks about the UIs, they're still *nix inspired descendants underneath, and don't expose anything but pre-baked applications to their users.
Windows NT is sad for its missed opportunity. MS could have done something inspired by these newer architectures. They did depart from Unix, but to do something in no way better and in many ways worse.
It's like COBOL. Or COM. There's nothing in any way pleasant about it. It's undeniable that it works, and perhaps gets things done in a practical manner.
A Lisp Machine is a real computer with a Lisp OS, applications, libraries and tools. An editor is just a part of that experience. But not the central part. Typically the environment of Lisp Machines was NOT written around the editor. They had a window/mouse/GUI oriented user interface with a lot of support for keyboard use. If you take for example the Lisp Listener in Symbolics Genera, it is not a Zmacs application and it does not use Zmacs in any way - other than that you can switch to Zmacs windows.
GNU Emacs is an editor written in some more primitive Lisp with extensive libraries and applications. It lacks the extensive low-level features, multi-threading, Flavors/CLOS etc of Zetalisp or Interlisp. GNU Emacs implements all their applications inside the editor. Lisp Machines did not do that.
If you've ever used a Lisp Machine, the look&feel was quite different from GNU Emacs.
For a while I was running Perl as my shell, it bakes in most common unix commands as top level functions and its easy to call ones that aren't built in using system calls. Perl is pretty nice for file manipulations out of the box if you know what you are doing.
The C shell does not come close. It's just a shell with a C-ish syntax. Fundamentally different than having a C compiler (or interpreter) as your shell
Probably not quite what you're looking for (I'd like to know more about the documentary, too), but here's a 1h49m Youtube video of the author giving an overview of Platform Masters: https://www.youtube.com/watch?v=rzjW0xsW7_A
Great article. I really like this kind of open-minded "everything can teach us something" attitude.
I'm not sure I really want to use TemplOS, but if you look at it as a research OS like the article suggests, lots of the ideas here are very compelling. DolDoc sounds like something I wish I had today.
I kind of wonder what could be created if these ideas were filtered through more modern design ideas?
A lot of the capabilities described for DolDoc, and for TempleOS documents in general, also exist in Emacs' org-mode, albeit of course in a rather different style -- inline images, hyperlinks to live searches as well as static content, and the like.
You can also embed code fragments of arbitrary length, in any or all of dozens of languages, and execute them inline with arbitrary input, including both other sections of the same document and the output of other code snippets therein. (TempleOS seems to have a similar capability, but of course only for the single language in which everything to do with it is implemented.)
It's a cliche, but Emacs really is almost like a LISP operating system disguised as a text editor. It's easily possible to use a computer productively using nothing else, if you devote a bit of time to learning how.
Some of TempleOS actually reminded me of the MOAD[1], and even the Acme[2] editor a bit. The beauty of plain text is that it's trivial to interpret though (not unicode so much). Anything else and you need to start to worry about backward/forward compatibility, byte orders, etc... I imagine it's probably easier when you only have only one platform to think about though.
I liked the index concept. There have been more than one (successful) efforts to build a filesystem that fully supports indexing content, but they're generally implicit indexes. Explicit indexing via file content might be interesting.
I'm not sure what the real justification for running everything in Ring-0 is. I can't think of many reasons for anything more than minimal privileges to be a benefit.
I actually pitched that idea to Rob Pike regarding a future for Go. I think that having an environment shell like that, baked into ChromeOS, would both promote the OS and the language. He didn't seem all that impressed, but TempleOS is very close to what I had in mind.
What stops someone from creating files that exploit memory safety or other security issues, then sending them to a TempleOS user? Sure, they have to load the file into the system, but if they're using the OS it'd be safe to assume there's a way to do this.
Exploiting a non-networked machine isn't very useful. There's no practical way to get any data back, to use it as a bot worker, or to send spam, so what's the point?
Smuggle data out in whatever format the user saves data? Corrupt calculations so the user ends up destroying expensive equipment? It's the same issue as attacking airgapped networks.
>> If a crash in one users’ programs could take down all the others, then obviously that would be bad. But for a personal computer, with just one user, this makes no sense. Instead the OS should empower the single user and not get in their way.
My PC doesn't have 100 users, it has 100 processes serving one user. It's nice that they can't stomp all over each other.
But I hear you on the low level access. For me it was a Tandy Color Computer, and then a Columbia 8088 luggable, and finally a 80286. All those systems ran DOS or something similar to it in real mode, and I had fun poking bytes into RAM too :).
When I got to the part where the article dismisses memory protection, I just thought "wow someone never used any of the Windows 9x operating systems." Because in that space the lack of memory protection most certainly WAS user impacting, even single user...
The problem is that software is buggy, and without memory protections a buggy piece of code in one process can cause unpredictable things to happen in another. Essentially it turns a process which executes in a "knowable way" into one that executes in a arbitrary way.
Windows 9x suffered from this with drivers in particular, where a single buffer bug in one driver could cause other drivers to seemingly crash, and the root cause was incredibly difficult to track down.
TempleOS would appear to be a computer from "before the fall" - ie, before error crept in, in the form of viruses and badly-behaved programs... in the same way that the architecure of an IRL temple is designed to be a representation of heaven on earth.
I understand his perspective - computing in the 1980s was very much an age of innocence. The programmer's God/Genius is telling him to build a modern, developed version of the environment that he spent his healthy youth in. I don't suppose it's entirely beyond the realm of possibility that it might hold a key to resolving his problems and coming to terms with his illness.
It may be a trite comment, but in an environment where these conditions are treated as "holy madness" or shamanism, the sufferers have more of a place in society.
cf. John Nash, although Schizophrenia is a scale of greys.
It's funny you mention lack of memory protection in Win9x, because they did have memory protection. They just sadly didn't have it for one critical segment.
When you have cheap VMs like modern environments do, you don't need memory protection as bad. Just run a dozen of TempleOS instances. Of course there should be some intranet between them.
So instead of using a virtual memory system you use full blown virtual machines with a host system that'll do the virtual memory management for the guests? What exactly do you gain from that?
.. and if those processes come from different vendors, then you effectively have 100 different admins and one user. This is the prevailing situation on mobile devices, where the priority is protecting the single user from potentially malicious vendors.
173 comments
[ 5.8 ms ] story [ 250 ms ] threadIt might have landed (either in closed beta or I don't have enough karma to do it). Or maybe it was simply revived by an admin...
In the past he made racist and homophobic remarks and got shadowbanned. His mental illness is hard to understand at times. The same thing happened to him on Reddit. He has to use multiple accounts to get around the shadowbans.
I think he is like Brandon Eich who donated to the wrong charity, made good contributions and solid programming work, but holds opinions that are not socially acceptable.
I'd take HolyC over Javascript any day.
I can't reply to you directly. I didn't mean to imply that TempleOS is not multiprocessing. From what I gather there is only one user (with multiple processes) and that user owns all the files, hence no file permissions that say "this file belongs to user X" and "this file belongs to user Y", only user X can read/write/execute X's files, and the same for user Y. The author of the article linked to here states that TempleOS is a single user (but multiprocess!) system.
I wonder why you haven't implemented threads? Not enough of a benefit in your opinion? Aren't threads supported by modern CPUs. Don't they allow faster context switching than switching context for processes? Though I guess Erlang disagrees!
What TempleOS calls “processes” is what you are used to calling “threads”.
You are currently shadow banned.
[0] http://www.templeos.org/Wb/Doc/HolyC.html
[1]: http://ignorethecode.net/blog/2009/04/22/oberon/ [2]: http://lighttable.com/
A nigger respects complicated programs. The more complicated the more the little niggers respect it. Ask a nigger to design a operating system task scheduler! It's hilarious watching a nigger make priority schedulers. I make my programs simple. I have an electrical engineering degree. I am a master of differential equations. Physics>Engineer>Computer Science> Psychology. The nigger standard model is 20 pages instead of two and it's really really complicated. When a computer scientist builds something he says, "What all features might we possibly need?" When I design I make it as simple as possible. Hello world joke: http://www.infiltec.com/j-h-wrld.htm Look at what the nigger did to graphic files formats: http://en.wikipedia.org/wiki/BMP_file_format Sound file formats: http://en.wikipedia.org/wiki/WAV Any nigger can make it complicated. A nigger makes it as complicated as possible. I am a genius. I make it simple.
Then again, when even a luminary like Paul Graham has to be careful about what he can and can't say [1], I suppose it's not too surprising that people should care more about the style of Mr. Davis's remarks than about their substance.
[1] http://www.paulgraham.com/say.html
In contrast, when the artwork of a schizophrenic gets posted (there's a particular one that pops up from time to time), people mostly respond with fascination.
I don't know, maybe it's just me. But when I see a lot of different people who've all apparently been trained to react identically and without thought or consideration to a given set of triggers, regardless of any context in which those triggers occur, it creeps me out just a little.
How literal is your meaning when you say "Wow, that's pretty offensive, hate" below? Because I think hatred directed at a bigot is sort of a not very fruitful response to bigotry. In that sense, people being nasty because someone is saying offensive things isn't a huge improvement over people being nasty because someone is mentally ill.
I do see some need to deal with people that are being disruptive (whether intentionally or not), but I don't see much justification to do it with rancor.
As for the racial slurs, they obviously are not racial in this context.
Otherwise, perhaps he's a bit immodest or incorrect. OTOH, he's brighter than most so...
In any case, I don't know much about the guy. I just remember his posts being a little off... that might explain it but he is suffering from schizophrenia if I remember it correctly.
There, I fixed it. Do try and use the brain God gave you.
Really? You think that that change would make him likeable?
> Do try and use the brain God gave you.
Sorry, but I don't understand the purpose of that snarky comment. Do you disagree that the kind of post in the example I gave is why people are mean to him? It makes not a jot of difference that you "fixed" his post here (for whose benefit, I don't know), because he posts what he posts, and people read what he posts, and make their judgements based on that.
It's really annoying to me to see people get so caught up in the phrasing of an otherwise intelligible statement (due to trigger words or blatant racism or whatever) that they can't respond to it on its own merits.
Also, at this point, anybody who believes Terry is genuinely racist is obviously too incompetent to do research--it's pretty easy to find if you do any searching on the topic.
Yes, but the issue was why people are mean to him (as in, what are they responding to?), not why people are mean in general.
It's a fact of life that you will be judged on how you present yourself. And quite reasonably so -- you can't realistically expect that people are going to search the Internet for clues to every poster's mental health history before they form an opinion of them. That's simply not their responsibility. If at this point I were to call you something unpleasant, you would immediately form an opinion of me without doing any searching on the topic of my mental health. The evidence suggests you might even respond rudely.
In short, you don't need research to know when someone is off a bit. Our minds are great at pattern matching, but we get /lots/ of false positives. It's up to the higher level bits of our consciousness to figure out which is which. You just need to know what real tolerance and understanding is and fight off the urge to react to things on the surface.
Literally no-one in their right minds are going to write like that and expect to be taken seriously. Outright overt racism like what you claim you see in his posts just doesn't make sense in the contexts of code.
Of course people hate this, even without the random sprinkling of "nigger".
And the choice of that word reveals obvious racism. It says, I dislike blacks to the point that a word denoting them serves me as metaphor for other groups of people or concepts I revile.
Nice armchair psychology--maybe it's chosen because it's considered taboo, instead of because of some deep-seated dislike of blacks?
So imagine if you wanted to fire up a Python REPL and use it as your shell. What the shell essentially does is treat bare words as external command/executable invocations. Every dynamic language treats bare words as internal function/method invocations. That would mean that any executable looked up in $PATH (a global variable that holds a list of directories) would supersede any internal method in that scope! Is this workable? Why not try it and see? Also if you created a Shell library for Python (in C ;-)) then it could be used by Ruby and Perl and Node (or whatever they're calling it nowadays) and ...
It is interesting to imagine not having to context switch to shell-speak to interact with your machine. If you are a Pythonista just speak Python, a Rubyist the same ...
The article proves your point, even Linux with its openness is still very much tied to years of tradition.
And what if the shell output wasn't line-oriented but a live hypertext doc, say HTML5?
https://ipython.org/ipython-doc/dev/interactive/shell.html
And while that page doesn't really highlight it, it works pretty well out of the box:
1. http://xonsh.org/
But something like this works of-sorts in Ruby:
Pry can't handle it very well, probably as it relies extensively on method_missing "magic" itself, but Irb seems do do fine with it.I'm sure there are ways to do the above in much cleaner ways, and even in Ruby syntax still gets in the way. E.g. you need to do 'ps :aux' or 'ps "aux"' instead of "ps aux" or the options will get interpreted as a method (though you could conceivably try to handle that by capturing NameError exceptions and applying really horribly nasty hacks, there would be a special place in hell for you if you were to do that; even the above is likely to break all kinds of stuff).
> And what if the shell output wasn't line-oriented but a live hypertext doc, say HTML5?
There have been all kinds of attempts at that, notably XmlTerm from Mozilla ca. 2000 [1]. It turns out to be a hard problem to get it right enough to make people use it. Basically to get that working at all I suspect you need to start with a good terminal emulator + a good shell, and make small enhancements rather than go the other way which most of these kind of projects have done.
[1] http://www.xml.com/pub/a/2000/06/07/xmlterm/index.html
> ls
It worked pretty well, I even added getters for directories, and they had getters for their subdirectories, etc.
At the end of the day though, having to wrap all arguments in () is a bit annoying.
And every time, I'm like "I've got some fing code and they've given me some fing code and all I want is for them to run together."
Powershell can call code in .Net assemblies and I imagine there's a way to pass C# or some other .Net code in but it probably requires a fat command.
The true beauty here, I think isn't just the way the Command Line acts as an interpreter but that all the code on the system is exposed at all times through a simple, common interface.
Person A: TempleOS is amazing, written by just one guy! I'd love to know more about Terry, someone should do a documentary!
Person B: Terry has a mental disorder, a documentary would just end up [making fun of him|causing more mental issues]
As I understand it he does not believe he has mental issues, but does believe everything he's doing is directly influenced by an entity he perceives to be his God. Any of his supposed mental issues can just as easily be explained as issues of deep faith, a faith most/all of us are incompatible with.
Maybe I'm missing something essential here but what's the difference between Terry Davis and anyone else who believes their lives are being influenced/led by the invisible forces that are part of their religion? If he's crazy, is his brand of crazy significantly different from that of the pope or anyone else who claims to be regularly spoken to by their God?
As for Terry being racist, so what... He's so far out there, and so far gone, that that's just another flaw in him that we have to accept/overlook.
We should simply accept him without judgment and take from his work whatever we feel like... Just as we do from religion or any other work of technology... People are free to do what they want, and it's not our right to get in the way of whatever they are attempting to accomplish, guided by whatever is out there or in here.
I also feel like it's somewhat in bad taste to attempt to debate this in the explicit context of a member here.
But it's pretty clear that "his brand of crazy" is quite distinct from just deep belief. Most people with deepheld religious beliefs don't have manic episodes or start seeing people following them.
[1] http://motherboard.vice.com/read/gods-lonely-programmer
https://root.cern.ch/drupal/content/cling
It's amazing. He has a whole bunch of videos of his programs. It's fascinating how much stuff he puts out there!
They were also single-user, but did networking as well. People logged into a machine remotely could have the same interactive graphical sessions in their own context.
Given the history of computing from the 50s - 80s, this desktop architecture idea comes naturally to a lot of people. The major OSes, however, all have their ancestral lineage which prevents major rethinking. But another issue is that these ideas are at least power-user oriented.
While the mobile market did some major rethinks about the UIs, they're still *nix inspired descendants underneath, and don't expose anything but pre-baked applications to their users.
It's like COBOL. Or COM. There's nothing in any way pleasant about it. It's undeniable that it works, and perhaps gets things done in a practical manner.
But there's no love in it. Just my 2c though.
GNU Emacs is an editor written in some more primitive Lisp with extensive libraries and applications. It lacks the extensive low-level features, multi-threading, Flavors/CLOS etc of Zetalisp or Interlisp. GNU Emacs implements all their applications inside the editor. Lisp Machines did not do that.
If you've ever used a Lisp Machine, the look&feel was quite different from GNU Emacs.
For a while I was running Perl as my shell, it bakes in most common unix commands as top level functions and its easy to call ones that aren't built in using system calls. Perl is pretty nice for file manipulations out of the box if you know what you are doing.
and the author's website:
http://www.ulillillia.us/mainindex.shtml
I'm not sure I really want to use TemplOS, but if you look at it as a research OS like the article suggests, lots of the ideas here are very compelling. DolDoc sounds like something I wish I had today.
I kind of wonder what could be created if these ideas were filtered through more modern design ideas?
You can also embed code fragments of arbitrary length, in any or all of dozens of languages, and execute them inline with arbitrary input, including both other sections of the same document and the output of other code snippets therein. (TempleOS seems to have a similar capability, but of course only for the single language in which everything to do with it is implemented.)
I liked the index concept. There have been more than one (successful) efforts to build a filesystem that fully supports indexing content, but they're generally implicit indexes. Explicit indexing via file content might be interesting.
I'm not sure what the real justification for running everything in Ring-0 is. I can't think of many reasons for anything more than minimal privileges to be a benefit.
[1] https://www.youtube.com/watch?v=yJDv-zdhzMY
[2] http://acme.cat-v.org/
Exploiting a non-networked machine isn't very useful. There's no practical way to get any data back, to use it as a bot worker, or to send spam, so what's the point?
>> If a crash in one users’ programs could take down all the others, then obviously that would be bad. But for a personal computer, with just one user, this makes no sense. Instead the OS should empower the single user and not get in their way.
My PC doesn't have 100 users, it has 100 processes serving one user. It's nice that they can't stomp all over each other.
But I hear you on the low level access. For me it was a Tandy Color Computer, and then a Columbia 8088 luggable, and finally a 80286. All those systems ran DOS or something similar to it in real mode, and I had fun poking bytes into RAM too :).
The problem is that software is buggy, and without memory protections a buggy piece of code in one process can cause unpredictable things to happen in another. Essentially it turns a process which executes in a "knowable way" into one that executes in a arbitrary way.
Windows 9x suffered from this with drivers in particular, where a single buffer bug in one driver could cause other drivers to seemingly crash, and the root cause was incredibly difficult to track down.
I understand his perspective - computing in the 1980s was very much an age of innocence. The programmer's God/Genius is telling him to build a modern, developed version of the environment that he spent his healthy youth in. I don't suppose it's entirely beyond the realm of possibility that it might hold a key to resolving his problems and coming to terms with his illness.
It may be a trite comment, but in an environment where these conditions are treated as "holy madness" or shamanism, the sufferers have more of a place in society.
cf. John Nash, although Schizophrenia is a scale of greys.
Couldn't agree more, and something I'm going to try to keep in mind more often.