The entire point of LLVM is that it provides an easy-to-target machine (it's basically a RISC instruction set)
No it isn't. It's static-single-assignment, which is an entirely different architecture to RISC. LLVM instructions are basically nodes in a computation data flow graph; it's very similar to the intermediate representation used by gcc.
Only because Python uses a refcounting garbage collector
Not only that: the standard data structures (i.e., lists and dictionaries) guarantee atomicity of operations. The last attempt locked them at every method call, which is somewhat suboptimal. Lock-free implementations would be a serious win here.
That's funny, because os.fork() etc. work fine on my version of python.
Yes, but then the overhead of serializing data structures to communicate between your two processes is a killer. Unless you can keep the communication to a minimum (i.e., you're working on an embarassingly parallel problem), this is a serious problem.
The key is to find the right balance of granularity in locking. A big giant mutex is always a bad idea, but having tens of thousands of little mutexes can also be bad due to footprint bloat and the extra time needed to lock all those locks. The right balance is usually somewhere in the middle. Each lock should have a moderate level of contention---not too little contention or else you're wasting too much time in locking and unlocking the mutex relative to the time spent doing the task---not too much contention or else you're likely wasting time waiting for somebody else that is doing something that wouldn't really have interfered with what you're doing at all. Oh, and reader-writer locks for shared resources can be a real win, too, in some cases.
The other thing that the last attempt lacked is escape analysis: any object that is created and used entirely in a local scope that's only accessible to one thread doesn't need locking at all. This is easy to show in many cases via static analysis of the compiled bytecode, but this optimisation was ignored last time around.
Windows 95 was a LOT more than "a DOS shell". It handled hardware drivers, memory management, CPU scheduling, user interaction, provided APIs, etc, etc. In fact, it did everything any textbook would consider to define an OS.
Yes, except under all that, DOS was still running, and the OS would occasionally call it, suspending everything else until it returned.
Wrong. Windows95 had full preemptive multitasking.
Yes and no. It supported preempting for most things, but it thunked to 16-bit drivers for some system calls and preempting was disabled while it did this (which often involved waiting for IO to complete). So it multitasked fine, as long as none of the jobs you were multitasking needed hardware that was accessed via the 16-bit subsystem, at which point it just fucked it up.
IIRC, the line in the article you're quoting was talking about Amiga OS. Amiga had fully preemptive multitasking from the beginning, and its drivers were all completely interruptible, so you never had to wait for anything in another task.
This doesn't change the fact that NT 3.51 was fully preemptive and released in -- what, 94?
I'd consider the Archimedes RISC OS to have been more significant than something like GEOS.
I'm guessing you're in the UK. RISCOS had almost no market penetration outside of the UK. Sure, over here it was considered on a par with Amiga OS, but elsewhere almost nobody has heard of it.
386BSD was the first true Open Source UNIX-like OS for the PC, yet never gets a mention.
And because it was forked into FreeBSD (IIRC) you can't really call it dead, so it doesn't meet the requirements of the article.
MSX was trashy, but was the first effort to get a truly cross-vendor platform
I never used MSX, but I understood it was based on MSDOS? Am I wrong about that?
Back when Windows 3.x had no notion of preemption, there were OS' for the PC (Desqview and GEM) that were at least going in the right direction.
Agreed. Both of those would have been interesting additions, and both are more relevant to most people's experience than GEOS.
Although GNU's HURD gets a brief mention, MACH is more than HURD and the fate of the original HURD cannot be understood without understanding the fate of MACH.
MACH isn't dead, though. Derivitives of it are still in use, most notably in MacOSX (although the same can be said of NeXTstep, which is included).
Plan 9's fate is also unmentioned, although it likely had a major influence on the way people imagine clusters and cloud computing today.
Almost nobody used Plan9, is the problem. The author is trying to evoke people's memories of these systems, but Plan9 was and probably always will be a research system, and is just as alive for that purpose today as it ever has been.
Here's the thing I noticed the first time around, as a Philosophy major. Take your average community college, and, say Harvard. Have a look at your typical philosophy class. Say, Critique of Pure Reason, or Platonic dialogs. Same. Fucking. Books. So what sets them apart? Well, it _should_ be the quality of the professor, right?
But this gap isn't as big as you'd think.
No, the real difference is the quality of your fellow students. These are the people you'll be networking with, forming start-up businesses with, and so on. Go to Harvard and a huge proportion of them are going to be successful; go to an unmemorable backwater school that nobody's heard of and you'll be lucky if any of them are particularly successful. Working alongside people like that helps develop your own skills, not to mention the fact that it can give you an 'in' to a top level of a successful business at a later stage of life.
People have grown tired of these "young whippersnappers" fresh outa college with their executable UML and agile methodologies.
It's worth noting who invented those agile methodologies:
* Kent Beck, coinventor of extreme programming. No date-of-birth generally known, but worth noting he has been a professional developer since at least the late eighties. I'd guess he's in his late 40s by now. * Ward Cunningham, coinventor of extreme programming, inventor of the wiki. 59 years old. * Ron Jeffries, coinventor of extreme programming. No published date of birth, but has been programming professionally since 1962, so I'd imagine he's around 65. * Ken Schwaber, coinventor of scrum. No publicised date of birth, but "a 30-year veteran" of the development industry. * Jeff Sutherland, coinventor of scrum. No publicised date of birth, but a vietnam vet, so must be around 60 by now. * Alistair Cockburn, inventor of crystal. No publicised date of birth, probably the youngest of this bunch as he looks mid-thirties in his photos.
Agile methodologies are far from being a young person's game, and looking at this bunch shows what over-35s can achieve.
"The people I see being squeezed out are the ones that are over 50 with no upward aspirations"
That should actually give them an advantage since they won't be moping around like the younger ones are when the company fails to satisfy those aspirations.
A 50-year-old with no upward aspirations probably hasn't learned a new language since FORTRAN-70 was released.
What is stopping you from following your own suggestion? It should be easy. Right?
Not really, no. Whether or not writing a good screenplay is easy (it's harder than it looks, but doable for somebody with a good understanding of how cinema works as a medium), actually selling said screenplay to hollywood is more than a little difficult. Hollywood producers receive a huge number of proposals for scripts each and every day, so they've developed a system to cut down the number they have to consider:
* First, ignore anything that isn't coming from a WGA West member, unless it has come with a recommendation or something specifically has caught your attention (e.g. you've met the writer and were impressed with them). To become a WGA West member, you'll have to have already worked as a screenwriter, either having had a feature-length movie produced from your work, or several TV episodes, or equivalent. * If you aren't a WGA West member, things get a little harder. You'll have to short circuit the process somehow. Possibilities include: write a best-selling novel and sell the movie rights to it (i.e., do what the OP was complaining too many movies these days are: rehashes of old material), try to become part of the Hollywood social scene (which really protects itself from outsiders) meet a producer and pitch your idea to him (which will only work for 'big idea' stories), or you can try to convince an agent that it's a good script (finding a good agent with enough time to represent you is also hard, but easier than approaching a producer directly), at which point the agent will sign an exclusive contract with you and try to sell the script to the producers he has an 'in' with: note that this is not all producers, and by signing with an agent you may be limiting your potential market to just those that trust that particular agent.
Even once you've sold the rights to your script, that's no guarantee that it will be filmed. Once the rights are sold, it has to compete for financing and attracting the attention of a director. If it's an original script (as the OP wanted, because he was tired of the lack of originality) then it will find competing with sequels and novel adaptations hard (as these have an inbuilt market which makes them more likely to be successful than something completely new). The quality of the script is almost irrelevant at this point, and a lot of really good scripts fail at this stage. Even adaptations of really good, successful novels (the kind of project Hollywood loves more than anything except sequels) often fail at this stage: we've been waiting for the best part of a decade for filming of Ender's Game to begin, and it doesn't look any closer now than it did in 2003.
Re the sorbet recipe: dry ice should work just as well, and is easier to get hold of than liquid nitrogen. Just be sure to break it up into small bits first.
But it's theft, as an aggregate term connoting use without payment.
None of the dictionaries I have here contain that definition of theft. They all say something like "taking without permission and with the intent to deprive the rightful owner of use" or "larceny".
Second, this girl is 19 now. She was 13 when this happened. What happened to the concept of "statute of limitations"? Why wasn't the case brought up when she was 13?
First, the statute of limitations usually bars bringing cases based on events that happened longer ago than 7 years. It doesn't apply yet. Second, in most jursidictions limitation periods do not start until the aggrieved party reaches the age of 18 (because they may not be capable of understanding how they were aggrieved until that age). Third, limitation runs to the date court action is commenced; the original case that this is an appeal from was heard in September 2007, which probably means it was commenced in late 2006 or early 2007. That's just how long the courts take to do their job.
She was accused of carrying prescription drugs, which (A) is not illegal, (B) is not "dealing", and (C) NEVER HAPPENED.
Actually, she was accused of giving prescription drugs to another student who presumably did not have a prescription for them. I believe this is illegal, and technicaly would be considered dealing. This doesn't change the fact that it didn't happen.
You should be aware that, in terms of asshat-ery in schools, there is a lot worse going on in the US than in the UK. IIRC, in UK schools they're much more likely to get the official process involved sooner which is at least less open to these sorts of abuses.
In most respects I agree with you, but on the other hand I don't think US schools have started to go as far as to search students' lunch packs in order to remove any unhealthy foods they may have brought onto the premises with them, as at least one UK school has started doing.
We each have our own brand of asshattery. I think the US brand is worse, but perhaps not by as far as we'd like to think.
While it's syntactically valid, it's a violation of the appropriate semantics:
"The COPYRIGHT relationship identifies a hypertext link to a copyright notice." (source).
The GPL isn't a copyright notice, it's a license grant. A copyright notice must identify the copyright holder and should include the date of publication.
[Vendor lock-in]'s a valid concern, it's not hard to understand, and it's not easy to dismiss either. The fingers-in-the-ears-going-la-la-la tactic seems to be the standard approach for a lot of people.
Yes, but being able to change the client side while being able to do nothing at all about the server side of a web app will achieve precisely nothing to prevent it.
The problem only becomes more severe if the RMS-compliant browser has worse security management of its local javascript-repository than it does of its own executable code.
Which is a likely scenario. The local JS repository would probably be modifiable by unpriveleged users; the browser's executable code presumably requires admin priveleges to update.
Greasemonkey also provides a solution to RMS's issue to an extent. It is not as accessible as he might like, and it doesn't solve the problem of programmatically determining whether you have the developer's permission to modify his code, but people are currently using it to make changes
It also raises the question of whether -- in a totally dynamic environment like javascript where injected code can freely change anything, including the behaviour of existing code -- you actually need the developer's permission to modify it.
OTOH, there's an interesting case for free speech here. This test is sometimes used to "determine" if somebody suing for personal injury compensation is lying about their medical complaints. The validity of this use is disputed. Being able to discuss the questions and how they influence the outcome in these cases is an important public policy issue.
I ran my first VM on a 386SX-16, not the point really. This guy wants a SAN and to run Oracle RAC on it.
Which also doesn't require special hardware. He could set up a virtual disk and attach it to all of the machines using the Linux kernel's network block device support. Sure, it won't be (anywhere near) as fast as a fibre channel setup, but it'll do the job (i.e., allowing him to share a single [virtual] disk between multiple [virtual] machines in order to test the software and do development work).
I believe Boost supports multithreading, and is considered a semi-standard for C++ development these days; in fact, I understand that the next version of the C++ standard will incorporate a number of libraries from Boost. Not sure if the threading library is one of them, though.
The entire point of LLVM is that it provides an easy-to-target machine (it's basically a RISC instruction set)
No it isn't. It's static-single-assignment, which is an entirely different architecture to RISC. LLVM instructions are basically nodes in a computation data flow graph; it's very similar to the intermediate representation used by gcc.
Only because Python uses a refcounting garbage collector
Not only that: the standard data structures (i.e., lists and dictionaries) guarantee atomicity of operations. The last attempt locked them at every method call, which is somewhat suboptimal. Lock-free implementations would be a serious win here.
That's funny, because os.fork() etc. work fine on my version of python.
Yes, but then the overhead of serializing data structures to communicate between your two processes is a killer. Unless you can keep the communication to a minimum (i.e., you're working on an embarassingly parallel problem), this is a serious problem.
The key is to find the right balance of granularity in locking. A big giant mutex is always a bad idea, but having tens of thousands of little mutexes can also be bad due to footprint bloat and the extra time needed to lock all those locks. The right balance is usually somewhere in the middle. Each lock should have a moderate level of contention---not too little contention or else you're wasting too much time in locking and unlocking the mutex relative to the time spent doing the task---not too much contention or else you're likely wasting time waiting for somebody else that is doing something that wouldn't really have interfered with what you're doing at all. Oh, and reader-writer locks for shared resources can be a real win, too, in some cases.
The other thing that the last attempt lacked is escape analysis: any object that is created and used entirely in a local scope that's only accessible to one thread doesn't need locking at all. This is easy to show in many cases via static analysis of the compiled bytecode, but this optimisation was ignored last time around.
Windows 95 was a LOT more than "a DOS shell". It handled hardware drivers, memory management, CPU scheduling, user interaction, provided APIs, etc, etc. In fact, it did everything any textbook would consider to define an OS.
Yes, except under all that, DOS was still running, and the OS would occasionally call it, suspending everything else until it returned.
Wrong. Windows95 had full preemptive multitasking.
Yes and no. It supported preempting for most things, but it thunked to 16-bit drivers for some system calls and preempting was disabled while it did this (which often involved waiting for IO to complete). So it multitasked fine, as long as none of the jobs you were multitasking needed hardware that was accessed via the 16-bit subsystem, at which point it just fucked it up.
IIRC, the line in the article you're quoting was talking about Amiga OS. Amiga had fully preemptive multitasking from the beginning, and its drivers were all completely interruptible, so you never had to wait for anything in another task.
This doesn't change the fact that NT 3.51 was fully preemptive and released in -- what, 94?
I'd consider the Archimedes RISC OS to have been more significant than something like GEOS.
I'm guessing you're in the UK. RISCOS had almost no market penetration outside of the UK. Sure, over here it was considered on a par with Amiga OS, but elsewhere almost nobody has heard of it.
386BSD was the first true Open Source UNIX-like OS for the PC, yet never gets a mention.
And because it was forked into FreeBSD (IIRC) you can't really call it dead, so it doesn't meet the requirements of the article.
MSX was trashy, but was the first effort to get a truly cross-vendor platform
I never used MSX, but I understood it was based on MSDOS? Am I wrong about that?
Back when Windows 3.x had no notion of preemption, there were OS' for the PC (Desqview and GEM) that were at least going in the right direction.
Agreed. Both of those would have been interesting additions, and both are more relevant to most people's experience than GEOS.
Although GNU's HURD gets a brief mention, MACH is more than HURD and the fate of the original HURD cannot be understood without understanding the fate of MACH.
MACH isn't dead, though. Derivitives of it are still in use, most notably in MacOSX (although the same can be said of NeXTstep, which is included).
Plan 9's fate is also unmentioned, although it likely had a major influence on the way people imagine clusters and cloud computing today.
Almost nobody used Plan9, is the problem. The author is trying to evoke people's memories of these systems, but Plan9 was and probably always will be a research system, and is just as alive for that purpose today as it ever has been.
Here's the thing I noticed the first time around, as a Philosophy major. Take your average community college, and, say Harvard. Have a look at your typical philosophy class. Say, Critique of Pure Reason, or Platonic dialogs. Same. Fucking. Books. So what sets them apart? Well, it _should_ be the quality of the professor, right?
But this gap isn't as big as you'd think.
No, the real difference is the quality of your fellow students. These are the people you'll be networking with, forming start-up businesses with, and so on. Go to Harvard and a huge proportion of them are going to be successful; go to an unmemorable backwater school that nobody's heard of and you'll be lucky if any of them are particularly successful. Working alongside people like that helps develop your own skills, not to mention the fact that it can give you an 'in' to a top level of a successful business at a later stage of life.
People have grown tired of these "young whippersnappers" fresh outa college with their executable UML and agile methodologies.
It's worth noting who invented those agile methodologies:
* Kent Beck, coinventor of extreme programming. No date-of-birth generally known, but worth noting he has been a professional developer since at least the late eighties. I'd guess he's in his late 40s by now.
* Ward Cunningham, coinventor of extreme programming, inventor of the wiki. 59 years old.
* Ron Jeffries, coinventor of extreme programming. No published date of birth, but has been programming professionally since 1962, so I'd imagine he's around 65.
* Ken Schwaber, coinventor of scrum. No publicised date of birth, but "a 30-year veteran" of the development industry.
* Jeff Sutherland, coinventor of scrum. No publicised date of birth, but a vietnam vet, so must be around 60 by now.
* Alistair Cockburn, inventor of crystal. No publicised date of birth, probably the youngest of this bunch as he looks mid-thirties in his photos.
Agile methodologies are far from being a young person's game, and looking at this bunch shows what over-35s can achieve.
"The people I see being squeezed out are the ones that are over 50 with no upward aspirations"
That should actually give them an advantage since they won't be moping around like the younger ones are when the company fails to satisfy those aspirations.
A 50-year-old with no upward aspirations probably hasn't learned a new language since FORTRAN-70 was released.
Just sayin'.
What is stopping you from following your own suggestion? It should be easy. Right?
Not really, no. Whether or not writing a good screenplay is easy (it's harder than it looks, but doable for somebody with a good understanding of how cinema works as a medium), actually selling said screenplay to hollywood is more than a little difficult. Hollywood producers receive a huge number of proposals for scripts each and every day, so they've developed a system to cut down the number they have to consider:
* First, ignore anything that isn't coming from a WGA West member, unless it has come with a recommendation or something specifically has caught your attention (e.g. you've met the writer and were impressed with them). To become a WGA West member, you'll have to have already worked as a screenwriter, either having had a feature-length movie produced from your work, or several TV episodes, or equivalent.
* If you aren't a WGA West member, things get a little harder. You'll have to short circuit the process somehow. Possibilities include: write a best-selling novel and sell the movie rights to it (i.e., do what the OP was complaining too many movies these days are: rehashes of old material), try to become part of the Hollywood social scene (which really protects itself from outsiders) meet a producer and pitch your idea to him (which will only work for 'big idea' stories), or you can try to convince an agent that it's a good script (finding a good agent with enough time to represent you is also hard, but easier than approaching a producer directly), at which point the agent will sign an exclusive contract with you and try to sell the script to the producers he has an 'in' with: note that this is not all producers, and by signing with an agent you may be limiting your potential market to just those that trust that particular agent.
Even once you've sold the rights to your script, that's no guarantee that it will be filmed. Once the rights are sold, it has to compete for financing and attracting the attention of a director. If it's an original script (as the OP wanted, because he was tired of the lack of originality) then it will find competing with sequels and novel adaptations hard (as these have an inbuilt market which makes them more likely to be successful than something completely new). The quality of the script is almost irrelevant at this point, and a lot of really good scripts fail at this stage. Even adaptations of really good, successful novels (the kind of project Hollywood loves more than anything except sequels) often fail at this stage: we've been waiting for the best part of a decade for filming of Ender's Game to begin, and it doesn't look any closer now than it did in 2003.
Re the sorbet recipe: dry ice should work just as well, and is easier to get hold of than liquid nitrogen. Just be sure to break it up into small bits first.
But it's theft, as an aggregate term connoting use without payment.
None of the dictionaries I have here contain that definition of theft. They all say something like "taking without permission and with the intent to deprive the rightful owner of use" or "larceny".
That's why I run the keygens on somebody else's computer.
This is marked as funny, but I have a VMware instance with no network connections and no permanent storage set up for just this kind of purpose.
Second, this girl is 19 now. She was 13 when this happened. What happened to the concept of "statute of limitations"? Why wasn't the case brought up when she was 13?
First, the statute of limitations usually bars bringing cases based on events that happened longer ago than 7 years. It doesn't apply yet. Second, in most jursidictions limitation periods do not start until the aggrieved party reaches the age of 18 (because they may not be capable of understanding how they were aggrieved until that age). Third, limitation runs to the date court action is commenced; the original case that this is an appeal from was heard in September 2007, which probably means it was commenced in late 2006 or early 2007. That's just how long the courts take to do their job.
She was accused of carrying prescription drugs, which (A) is not illegal, (B) is not "dealing", and (C) NEVER HAPPENED.
Actually, she was accused of giving prescription drugs to another student who presumably did not have a prescription for them. I believe this is illegal, and technicaly would be considered dealing. This doesn't change the fact that it didn't happen.
You should be aware that, in terms of asshat-ery in schools, there is a lot worse going on in the US than in the UK. IIRC, in UK schools they're much more likely to get the official process involved sooner which is at least less open to these sorts of abuses.
In most respects I agree with you, but on the other hand I don't think US schools have started to go as far as to search students' lunch packs in order to remove any unhealthy foods they may have brought onto the premises with them, as at least one UK school has started doing.
We each have our own brand of asshattery. I think the US brand is worse, but perhaps not by as far as we'd like to think.
For the former, all of the following are valid in both HTML 4.01 Strict and XHTML 1.0:
<link rel="copyright" href="http://www.gnu.org/licenses/gpl.html" />
While it's syntactically valid, it's a violation of the appropriate semantics:
"The COPYRIGHT relationship identifies a hypertext link to a copyright notice." (source).
The GPL isn't a copyright notice, it's a license grant. A copyright notice must identify the copyright holder and should include the date of publication.
[Vendor lock-in]'s a valid concern, it's not hard to understand, and it's not easy to dismiss either. The fingers-in-the-ears-going-la-la-la tactic seems to be the standard approach for a lot of people.
Yes, but being able to change the client side while being able to do nothing at all about the server side of a web app will achieve precisely nothing to prevent it.
The problem only becomes more severe if the RMS-compliant browser has worse security management of its local javascript-repository than it does of its own executable code.
Which is a likely scenario. The local JS repository would probably be modifiable by unpriveleged users; the browser's executable code presumably requires admin priveleges to update.
Greasemonkey also provides a solution to RMS's issue to an extent. It is not as accessible as he might like, and it doesn't solve the problem of programmatically determining whether you have the developer's permission to modify his code, but people are currently using it to make changes
It also raises the question of whether -- in a totally dynamic environment like javascript where injected code can freely change anything, including the behaviour of existing code -- you actually need the developer's permission to modify it.
OTOH, there's an interesting case for free speech here. This test is sometimes used to "determine" if somebody suing for personal injury compensation is lying about their medical complaints. The validity of this use is disputed. Being able to discuss the questions and how they influence the outcome in these cases is an important public policy issue.
I ran my first VM on a 386SX-16, not the point really. This guy wants a SAN and to run Oracle RAC on it.
Which also doesn't require special hardware. He could set up a virtual disk and attach it to all of the machines using the Linux kernel's network block device support. Sure, it won't be (anywhere near) as fast as a fibre channel setup, but it'll do the job (i.e., allowing him to share a single [virtual] disk between multiple [virtual] machines in order to test the software and do development work).
Said text was a post-hoc joke added to the picture after it had already been doing the rounds for about 6 months.
The entire thing's a fake, anyway. Children don't draw like that.
I believe Boost supports multithreading, and is considered a semi-standard for C++ development these days; in fact, I understand that the next version of the C++ standard will incorporate a number of libraries from Boost. Not sure if the threading library is one of them, though.