Creating a Unix Application Using the Win32 API (1998)
linux.cz
linux.cz
On X-Windows, you can configure your system such that the focus follows the mouse. That is, when you move the mouse to a window, the focus automatically moves to that window.
It seems most early UNIX systems I used were configured this way, and it was extremely irritating since I was accustomed to "parking" the pointer out of the way, somewhere else on the screen, when doing things like filling in text fields.
This setting is built into Windows [1] and if you don't like the way it works, you can also do it with a few lines of AutoHotKey code.
[1] - http://winaero.com/blog/turn-on-xmouse-active-window-trackin...
> They will also get auto raised, meaning the window on which the mouse hovers which be brought to the foreground.
If you don't want autoraise you have to hack the registry. And even then it works very badly. A lot of apps, at least back when I was using XMouse on XP, assume that if they have the focus they're at the top of the stack, and some (mostly the Microsoft ones!) will autoraise themselves regardless of the registry setting.
Focus-follows-mouse on Windows isn't, or at least wasn't, much of a success. It was marginally less annoying than click-to-focus, IMO, but only marginally.
https://github.com/cuviper/mousewinx
I won't try to compare this to the Winaero tools. Mine is definitely in the hobbyist-scratches-an-itch class of software, but hey, it's open source too!
That's sad, actually, but not unexpected. Security has a habit of sucking fun out of everything.
Maybe we need a flavour of UAC that allows you to put random junk apps in sandboxes while the others talk happily among each other.
Regarding window focus, I use i3wm in which generally focus is switched with keyboard. Though (especially in configuration greater than 2 monitors), a quick mouse motion is even faster. Then I switch back out of my VM for the .1% of the time my work computer needs OSX, and I have to make the effort not to "rage to heart attack" over the most hateful UI paradigm in the universe - click once to focus window - then click AGAIN to focus widget.
Today, if you want to write Unix applications using Win32, the obvious choice would be WINE.
The MacTech archives have some interesting historical info:
http://www.mactech.com/articles/mactech/Vol.13/13.06/Jun97Fa... http://www.macmod.com/articles/mactech/Vol.14/14.01/Jan98Fac... http://www.mactech.com/articles/mactech/Vol.14/14.02/Feb98Fa...
Softimage is now declared dead by their current owners, Autodesk.
edit: Sorry forgot to make the point. Paul Graham says it in the Pycon 08' talk, it was built for guys at Bell labs to ask one another to get lunch. The people on the early internet were often scientists, engineers and academics and thus had mutual respect for one another. Stallman talks about not even having passwords on stuff, these were academics who were personally or professionally friendly so security wasn't at the forefront of the design.
[0]https://www.ted.com/talks/danny_hillis_the_internet_could_cr...
That would be Symbolics, the best known Lisp Machine company: https://en.wikipedia.org/wiki/Symbolics
Which he personally did not like at all due to its role in suppressing use of Macsyma outside of its machines.
Per Wikipedia his Thinking Machines "think.com" was 3rd, per http://interwebs.top5.com/then-and-now-5-oldest-domain-names... BBN, which helped build a lot of the ARPANET and Internet was 2nd, think.com was followed by the MMC consortium and DEC.
As for the security, it was actually quite unusual that the ITS operating system machines he, Stallman, etc. used had essentially no security, just obscurity, although a password system did have to be added by the end of the '70s. The threat environment was certainly much much less back then, but computer time was very dear, and the most common paradigm required explicit budgeting, accounts that kept track of each CPU second used, etc. One reason PCs became so popular, their bigger engineering workstation brothers, etc. And plenty of people were thinking about security, e.g. see the Multics project.
That was indeed the culture of ITS, but it was mediated by very competent and humane admins. The nature of AI research meant that there were times some would need to pretty much take over the machine to do something hard, or quasi-real time (e.g. robotics, or a demo). So this was allowed, but e.g. I remember ... Jeff Schiller, I think it was, telling about how someone upped the priority of a long computation on MIT-MC too high, and rather than kill it and lose what it had accomplished up to that point, they set it to a lower priority (which, I note, anyone with the requisite system knowledge could do) so it wouldn't interfere with other users, and then educated the user about how to politely accomplish his goals (e.g. MIT-MC had a lot of spare cycles at times, it was bloody fast by the time dawn broke, and logged in from the VT-52 in the middle of it I could see lights advance every time I typed in a character).
> Which he personally did not like at all due to its role in suppressing use of Macsyma outside of its machines.
Symbolics offered Macsyma on other platforms.
Anyway Hillis' problems with Symbolics can't have been very deep, since Thinking Machines used Symbolics Lisp Machines extensively and offered them commercially as frontends for the Connection Machine.
> As for the security, it was actually quite unusual that the ITS operating system machines he, Stallman, etc. used had essentially no security
Stallman was reading other people's mails and he was threatening to sabotage other people, wasn't he?
Eventually, I assume. But when they got the licence they tracked down every copy of VAXSYMA and demanded the org stop using it and return/destroy all of the IP. And while I'm not familiar with the long term history of Macsyma at Symbolics, there's lots of talk about the reluctance of those outside its unit to sell or push it on non-Symbolics Lisp Machine platforms. As far as I know, it wasn't available for LMI's LAMBDA or TI's Explorer, although perhaps that changed as Symbolics' fortunes declined.
My reading on Danny's take on Symbolics comes from when I was working for LMI in the September 1982 to June 1983 period. Due to the ADL/Symbolics single source licencing scam (which also, I'll note, cut out Joel Moses, the "father" of it and others, something he was still unhappy about at the end of the '80s), he didn't want to buy from Symbolics, and asked me if there was any chance LMI could deliver in the time frame he needed for the founding of Thinking Machines, which was incorporated in 1993.
I regretfully had to tell him there was no way that would happen (success was not even in the picture until I recruited a extremely talented classmate right after he graduated in 1983), so they bought ~6 3600s to get the company off the ground (in part limited by the power available in their interim Watham office), and as you note, it was one of the front ends you could buy for the original formula Connection Machines (in black trade dress to fit with their stunning industrial design). Understandably, he wasn't willing to give up on his Comnection Machine dream because of Symbolics's behavior at that time.
Stallman was reading other people's mails and he was threatening to sabotage other people, wasn't he?
"Everybody" read other's emails, Joel Moses' was particularly fascinating. Of course there was an ethos about what you'd do with that information, and one I can see RMS violating.
But the only sabotage rumor I heard was WRT to a conflict he was said to have with Dan Weinreb. As the story went, on the basis of a technical dispute WRT to the Lisp Machine's software, RMS threatened to not only delete all live copies of this bit of Dan's code, but also their copies on backup tapes. Dan's response was to accept a job in Livermore, CA to work on the ambitious S-1 project (this looks good, just skimmed a bit of it: https://forum.stanford.edu/wiki/index.php/S1_project), which had very strong connections with this MIT community (the Chaosnet actually extended all the way over to it, I forget which is which, the other end was the most geographically east node in the MIT EECS machine room, one Trantor, the other Terminus), and for example GCC started with a failed port of its Pastel compiler.
When Dan returned, he flatly denied the rumor, and I found him credible, especially since threatening to mess with ITS backup tapes like that was a cardinal sin.
Lessor methods of sabotage, certainly obstruction, would certainly fit with RMS's style, but I can't remember hearing of any significant examples. And I'll note his response to all this craziness was to do GNU/the FSF, which was ideologically aggressive, but otherwise constructive. We are, after all, people who make things, not destroy them.
Note on my (claimed) credibility: I was on first name business with all of the people I've named in this post, was even a roommate of RMS when he launched the GNU Project.
Does anyone have any more information on this? This is presented/worded as the nature of DLL globals being shared across processes is why they they have to ensure they don't conflict, but this seems somewhat obvious if the globals are not namespaced within the library in some sense.
The more interesting question is how the DLLs' data was visible across processes such that this mattered at all, since this kind of sharing isn't available in the UNIX process or shared object model at all by default.
How does WINE account for this?
If the claim were true at face value, it would mean that if two programs use, say, MSVCRT.DLL (Microsoft's Visual C run-time), if one program reads from stdin or writes to stdout, it interferes with the other.
MSDN: https://msdn.microsoft.com/en-us/library/windows/desktop/aa3...
Been years since I used this stuff.
Global variables in Win32 dynamic-link libraries (DLLs) are visible across processes
with
Global variables in Win32 dynamic-link libraries (DLLs) are visible across loaded libraries
(or however it might be labeled) makes more sense than the word "processes".