The parentheses just disappear after you've coded Lisp for a while. Also, try paredit.el for Emacs. With that turned on, you don't edit text, but sexps. It's wonderful, once you get used to it.
As for Lisp itself, well, 20 years ago did for the first time many of the things that mainstream languages today are just beginning to obtain, like closures, arbitrary lexical scoping, highly dynamic data structures, and (in Scheme's case) call/cc. One thing gcc just implemented is per-function compiler optimization settings. Common Lisp has had a facility for that since the beginning of time.
One thing that still isn't matched by other languages, however, is Lisp's macro system. It's far more powerful than C macros. You can define new control structures, implement sub-languages, and construct any higher-language construct you want. And these features you build all look just like native language constructs.
And don't even get me started o CLOS, which is one of the very few object-oriented systems to provide a clean multimethod dispatch solution.
I haven't used Self, but going by my experience with Javascript, prototype-based languages suck compared to conventional class/metaclass based ones. The problem is that parents of types must be *instances* of their parent types, and there isn't always a suitable kind of instance to use as a prototype. Either you end up coding around the prototype system and emulating conventional constructors, or you end up specifying special uninitialized states for base classes.
Prototype languages make it easy to use the GoF prototype design pattern, true, but I find myself thinking "hrm, I need a new type" far more often than "Hrm, I need a prototype system for object initialization."
Also, Python and CLOS style metaclasses give you all the flexibility of a prototype system.
I'm all ears for any advantages the latter might have.
What's the difference? The problems governments face are the same whether you deal with them at the state, city, or federal level. Human nature is universal from coast to coast. At least a big, central government has economies of scale on its side that just aren't available to a government smaller than New York or California's.
First of all, that's simply not true. A well-designed client can handle the server connection going away and then coming back. Most toolkits don't bother, but that's not the fault of the protocol and server. (Incidentally, Emacs does just fine in that area.)
Second, the graphics driver is always a single point of failure. It's actually worse under some other operating systems. At least, if the X server dies or locks up, it's usually possible to ssh into the machine and save what you can.
Re:Mebbe I should try it some time
on
OpenBSD 4.4 Released
·
· Score: 4, Informative
Yes, OpenBSD's performance is behind that of Linux and FreeBSD (which are neck-and-neck.) However, performance is still quite adequate. OpenBSD has a kind of austere simplicity, however, that makes it a pleasure to administer. It certainly has a niche.
I'd do farm work if I were paid enough. Crops rotting on fields isn't a sign that we need more immigration: it just means we're not paying farm workers enough.
That illegal immigrants generally do this work anyway is evidence that illegal immigration distorts the employment market. It would be far, far better to expand legal immigration and allow the market to find the correct price for legal farm work.
Other nations have managed to farm using legal labor. Why can't we?
xfs is useful, but xfs should be used with a UPS. Sure, the filesystem metadata is safe on power failure, but files with outstanding uncommitted blocks at the time may be zeroed out when the system comes back up.
The exact failure mode involves a file's metadata being updated before its data blocks are committed. You hit this problem frequently when doing the write-new-file-then-atomic-rename dance if you don't fsync the new file before the rename; most applications neglect that technically-required fsync because things just work on non-xfs filesystems.
In other respects, xfs is excellent. I just wish it were more robust against dataloss.
I'm definitely in the layered-design-is-good, ZFS-is-an-abomination camp. But I do have to point out that mlockall would keep a userspace filesystem server from being swapped out, and with realtime priority, the process could even have some guaranteed CPU time. Userspace isn't that bad.
Various limits can be increased easily be increasing the sizes of the relevant fields. The underlying code and design doesn't need to change much at all.
We're looking for a replacement for canvas in IE. excanvas sucks. We could use flash, but the Javascriptflash interface is very slow. (It serializes to XML twice.) Is Silverlight's any better?
The fifth amendment expresses (but does not grant!) a natural right of people. The citizens of Britain have the same right regardless of whether the government recognizes it.
There are many people to whom the UK's system is perfectly reasonable.
Earlier tonight, I had an argument tonight with this woman who favors censoring YouTube. It went like this:
Her: I can't believe people put videos of woman being raped up on YouTube. They should stop that.
Me: Well, they'll take them down, and they're usually taken down pretty damn fast.
Her: Thousands of people can see the videos on the meantime. YouTube should screen all videos before putting them up. If they won't do it, they should be forced.
Me: Ugh. That would break YouTube. The expense would be huge. It'd drive YouTube out of business. Would you really rather have no YouTube at all?
Her: Then we'll have the government pay for it, or even set up an agency to review the videos.
Me: The cost to society would still be astronomical. And doing that would provide a very easy avenue for the government to censor anything anyone finds offensive. It's dangerous. If you want to go down that route, why not pass a law stipulating some huge fine for posting videos of rape? Then YouTube will at least be forced to comply on its own.
Her, crying by this point: I don't care. Fines aren't good enough. People might still see the videos. We have to filter them all.
[cut argument about my supposedly not knowing when to stop debating]
Her: It's not about 'cost to society', it's about protecting women. I'm appalled that you would put not being censored ahead of that. I don't know if I can care about someone who doesn't want to protect women. You should go.
Keep in mind this woman will have a doctorate in less than a year. *sigh*
It's like a two-engined aircraft. Some people imagine that a two-engined aircraft is twice as reliable as a single-engined one. That's not true. In fact, they're half as reliable. If one could fly with one engine, it'd have one engine. But it needs two, so it has two, with twice as many parts that can fail. And if one engine fails, it's just as bad for the entire plane as a single engine failing.
You want to cite a source buddy? Although in principle every field of science is reducible to physics, it's often not feasible or useful to do so. Economics falls under that category. Economics doesn't even refer to physics, so how can you tell me it uses invalidated physical equations? Economics is simply applied game theory.
And as for not giving economic weight to the environment or ignoring the fact that resources aren't finite: you're confusing economics with Republicans, buddy. The central idea of economics is scarcity: all you need to do is factor in the scarcity in the correct way, and out on the other end come its effects. You can't blame economics for the failed policies of the goons in power who actively ignore and discredit it.
This country did the best it ever did when it was run by Keynesian economists.
Good riddance. America was built on the backs of common people, not European aristocrats, and it wasn't until the world wars that Europe realized the danger of an established elite. If your drinking men leave, not only factory will go, not one software developer, and not one damn person who actually fuels the economy. Only brokers of futures contracts and CDOs and $500-a-session therapy sessions will go, and I say don't let the fucking door hit you on the way out.
You're foolish if you do any real work in a signal handler; what you should do instead of send a simple message to the main event loop (traditionally by writing a byte to a pipe) and handle the event that generated the signal in normal program context.
Obviously, video will use a lot of bandwidth; that's why we have Xshm. That's all beside the point.
Typical systems, especially those written by people who ask Slashdot about threading books, don't have parts that need to share a lot of information. They might process a lot of information, but it's localized to one segment of the program. (Consider a CD burning application: the GUI doesn't need to know the bytes written to disk, but only how many of them there are.)
For this kind of workload, IPC really is dirt cheap. We're not talking about discrete event simulations; we're talking about programs that spend 99% of the time sleeping.
Really, if you have to ask whether you need threads, the answer is "no". If you still think you do, you actually need to use several communicating processes.
The parentheses just disappear after you've coded Lisp for a while. Also, try paredit.el for Emacs. With that turned on, you don't edit text, but sexps. It's wonderful, once you get used to it.
As for Lisp itself, well, 20 years ago did for the first time many of the things that mainstream languages today are just beginning to obtain, like closures, arbitrary lexical scoping, highly dynamic data structures, and (in Scheme's case) call/cc. One thing gcc just implemented is per-function compiler optimization settings. Common Lisp has had a facility for that since the beginning of time.
One thing that still isn't matched by other languages, however, is Lisp's macro system. It's far more powerful than C macros. You can define new control structures, implement sub-languages, and construct any higher-language construct you want. And these features you build all look just like native language constructs.
And don't even get me started o CLOS, which is one of the very few object-oriented systems to provide a clean multimethod dispatch solution.
I haven't used Self, but going by my experience with Javascript, prototype-based languages suck compared to conventional class/metaclass based ones. The problem is that parents of types must be *instances* of their parent types, and there isn't always a suitable kind of instance to use as a prototype. Either you end up coding around the prototype system and emulating conventional constructors, or you end up specifying special uninitialized states for base classes.
Prototype languages make it easy to use the GoF prototype design pattern, true, but I find myself thinking "hrm, I need a new type" far more often than "Hrm, I need a prototype system for object initialization."
Also, Python and CLOS style metaclasses give you all the flexibility of a prototype system.
I'm all ears for any advantages the latter might have.
Like the ediff we've had in Emacs for 14 years? :-)
What's the difference? The problems governments face are the same whether you deal with them at the state, city, or federal level. Human nature is universal from coast to coast. At least a big, central government has economies of scale on its side that just aren't available to a government smaller than New York or California's.
NX wouldn't even be possible if the core X11 protocol weren't there for it to compress.
gconf is a nice system; too bad it's not network-transparent.
That said, you can neatly sidestep the problem by NFS-mounting your home directory.
First of all, that's simply not true. A well-designed client can handle the server connection going away and then coming back. Most toolkits don't bother, but that's not the fault of the protocol and server. (Incidentally, Emacs does just fine in that area.)
Second, the graphics driver is always a single point of failure. It's actually worse under some other operating systems. At least, if the X server dies or locks up, it's usually possible to ssh into the machine and save what you can.
Yes, OpenBSD's performance is behind that of Linux and FreeBSD (which are neck-and-neck.) However, performance is still quite adequate. OpenBSD has a kind of austere simplicity, however, that makes it a pleasure to administer. It certainly has a niche.
The OP's point is that lawyers or not, product vendors shouldn't be allowed to stop this kind of use.
I'd do farm work if I were paid enough. Crops rotting on fields isn't a sign that we need more immigration: it just means we're not paying farm workers enough.
That illegal immigrants generally do this work anyway is evidence that illegal immigration distorts the employment market. It would be far, far better to expand legal immigration and allow the market to find the correct price for legal farm work.
Other nations have managed to farm using legal labor. Why can't we?
xfs is useful, but xfs should be used with a UPS. Sure, the filesystem metadata is safe on power failure, but files with outstanding uncommitted blocks at the time may be zeroed out when the system comes back up.
The exact failure mode involves a file's metadata being updated before its data blocks are committed. You hit this problem frequently when doing the write-new-file-then-atomic-rename dance if you don't fsync the new file before the rename; most applications neglect that technically-required fsync because things just work on non-xfs filesystems.
In other respects, xfs is excellent. I just wish it were more robust against dataloss.
I'm definitely in the layered-design-is-good, ZFS-is-an-abomination camp. But I do have to point out that mlockall would keep a userspace filesystem server from being swapped out, and with realtime priority, the process could even have some guaranteed CPU time. Userspace isn't that bad.
You do realize that some cruel person is going to code up "lsgrepsortfind" in Perl and inflict it on the world, right? :-)
Various limits can be increased easily be increasing the sizes of the relevant fields. The underlying code and design doesn't need to change much at all.
I've been able to do this forever with LVM snapshots under Linux.
No. SVG is no good for what we need. Also, its cross-browser support is actually poorer, and performance is abysmal.
We're looking for a replacement for canvas in IE. excanvas sucks. We could use flash, but the Javascriptflash interface is very slow. (It serializes to XML twice.) Is Silverlight's any better?
So what if Huckleberry Finn were a racist book? That wouldn't be a reason to censor it either. Nothing should be censored, ever.
The fifth amendment expresses (but does not grant!) a natural right of people. The citizens of Britain have the same right regardless of whether the government recognizes it.
There are many people to whom the UK's system is perfectly reasonable.
Earlier tonight, I had an argument tonight with this woman who favors censoring YouTube. It went like this:
Her: I can't believe people put videos of woman being raped up on YouTube. They should stop that.
Me: Well, they'll take them down, and they're usually taken down pretty damn fast.
Her: Thousands of people can see the videos on the meantime. YouTube should screen all videos before putting them up. If they won't do it, they should be forced.
Me: Ugh. That would break YouTube. The expense would be huge. It'd drive YouTube out of business. Would you really rather have no YouTube at all?
Her: Then we'll have the government pay for it, or even set up an agency to review the videos.
Me: The cost to society would still be astronomical. And doing that would provide a very easy avenue for the government to censor anything anyone finds offensive. It's dangerous. If you want to go down that route, why not pass a law stipulating some huge fine for posting videos of rape? Then YouTube will at least be forced to comply on its own.
Her, crying by this point: I don't care. Fines aren't good enough. People might still see the videos. We have to filter them all.
[cut argument about my supposedly not knowing when to stop debating]
Her: It's not about 'cost to society', it's about protecting women. I'm appalled that you would put not being censored ahead of that. I don't know if I can care about someone who doesn't want to protect women. You should go.
Keep in mind this woman will have a doctorate in less than a year. *sigh*
It's like a two-engined aircraft. Some people imagine that a two-engined aircraft is twice as reliable as a single-engined one. That's not true. In fact, they're half as reliable. If one could fly with one engine, it'd have one engine. But it needs two, so it has two, with twice as many parts that can fail. And if one engine fails, it's just as bad for the entire plane as a single engine failing.
Same way with incomes.
You want to cite a source buddy? Although in principle every field of science is reducible to physics, it's often not feasible or useful to do so. Economics falls under that category. Economics doesn't even refer to physics, so how can you tell me it uses invalidated physical equations? Economics is simply applied game theory.
And as for not giving economic weight to the environment or ignoring the fact that resources aren't finite: you're confusing economics with Republicans, buddy. The central idea of economics is scarcity: all you need to do is factor in the scarcity in the correct way, and out on the other end come its effects. You can't blame economics for the failed policies of the goons in power who actively ignore and discredit it.
This country did the best it ever did when it was run by Keynesian economists.
Good riddance. America was built on the backs of common people, not European aristocrats, and it wasn't until the world wars that Europe realized the danger of an established elite. If your drinking men leave, not only factory will go, not one software developer, and not one damn person who actually fuels the economy. Only brokers of futures contracts and CDOs and $500-a-session therapy sessions will go, and I say don't let the fucking door hit you on the way out.
You're foolish if you do any real work in a signal handler; what you should do instead of send a simple message to the main event loop (traditionally by writing a byte to a pipe) and handle the event that generated the signal in normal program context.
Obviously, video will use a lot of bandwidth; that's why we have Xshm. That's all beside the point.
Typical systems, especially those written by people who ask Slashdot about threading books, don't have parts that need to share a lot of information. They might process a lot of information, but it's localized to one segment of the program. (Consider a CD burning application: the GUI doesn't need to know the bytes written to disk, but only how many of them there are.)
For this kind of workload, IPC really is dirt cheap. We're not talking about discrete event simulations; we're talking about programs that spend 99% of the time sleeping.
Really, if you have to ask whether you need threads, the answer is "no". If you still think you do, you actually need to use several communicating processes.