When I was an intern in a company building satellites and rockets, local gurus told me that gyroscopes, with all their complex pieces moving fast, are the most failure-prone part of most satellites, and that's the reason why they usually have 4 gyros while only 3 are needed for normal operation, and 2 are enough for "degraded mode". Now one gyroscope of the ISS is out: granted, it's a bit early, but it is also a bit early to worry about the ISS's future. Remember Hubble: at the beginning, it sounded like the mission would be a complete failure... In the end, Hubble could be repaired, and it is now considered a complete success. Don't be too hasty when bashing space missions: this IS rocket science after all.
BTW, if you consider Win2k TSE servers, small Linux boxes (ie. all you need is X running) with the free (GPL) and lightweight rdesktop client are a very nice option: it is very close to using PCs as X terminals. I even found rdesktop very nice and comfortable to use over my 512kbps ADSL connection.:-)
TIM: I warned you! But did you listen to me? Oh, no, you knew it all, didn't you? Oh, it's just a harmless little bunny, isn't it? Well, it's always the same, I always--
...and may take a long time to complete: according to their paper here, the port to Linux is not finished since "Problems with thread suspend and continue have been encountered, and are as yet unresolved".
It is no easy task, because the handling of SIGSTOP and SIGCONT under Linux does not follow POSIX. Hope they'll succeed anyway.
This package is more security oriented, but Tripwire is the way to go, since you have no standard way of monitoring events on the file system under Un*x.
A friend of mine and I have developed a patch for the Linux 2.4 kernel that can, amongst other interesting things, rewrite the ISN of connexions to routed machines. In particular, it can generate truly random ISNs. A release for the 2.4.2 kernel should be available soon on the project's website :
http://ippersonality.sourceforge.net/
I've had a quick look at their protocol, looks like they want to maintain connexions over UDP... So will they do it better that the deisgners of TCP over IP ? Not sure.:-P
nevrax.com is the corporate web site, nevrax.org is the developers' community web site.
Nevrax will not release their game under the GPL because it's a dead project: they chose to do so from the very beginning (event though I think they first intended to keep the server code proprietary).
Nevrax is a real company, funded by real investors, and they intend to make real money, so I guess that they have anticipated attacks from cheaters. The future will tell us if they have chosen the good option, but at least they have probably some good ideas in mind to prevent cheating.
And I'll add that I wish the best to the Nevrax team, such a project needs courage and a lot of work to succed.
Well, the design and coding principles advocated by Abrash simply apply to any field where you need performant and robust software : games, scientific computing, but also operating systems (don't forget that your OS does *all* what your apps don't want to do), real time systems, etc.
And as some others said, this article is not particularly brilliant. It can be useful to young programmers eager to develop their first game and seeking for advice, but in the end, it is mostly the common sense you acquire after a few years of experience in (serious) software development.
That being said, I do have a lot of respect for Mike Abrash, especially for his work in Quake and BSP trees.:)
"...in the final analysis, each person has only as much freedom as he or she can personally enforce. Guns (or any other weapon) are an effective means of doing so.."
This sounds very much like the American individualistic attitude described above (no offense here): you don't trust your government, not even your mighty and omnipresent police, so you consider that you must protect yourself the same way they did back in the ol' days...
Personnally, I perceive this as a traditionalist or conservative attitude, which makes you forget that (a) the sherif doesn't have to leave the town and ride for 3 days to catch criminals anymore, and (b) the current proliferation of weapons is probably more dangerous than regulating the sales of guns, even if it works only for honest citizens.
And as far as individual freedom is concerned, I consider it dangerous for mine if my stupid but honest neighbour can easily buy a gun, because his gun may be a danger in his hands or in the hands of his kid for example: I do have a right to feel safe! And I feel much safer if I know that only a handful of criminals and our police have the possibility to carry a gun in our streets. Even criminals will use their guns less often if they feel they are not in danger...
Who says the US has ever been the best place for safety, freedom, and quality of life ???
For freedom, you may choose the Netherlands.
For safety, move to Monaco (omnipresent police, security cameras everywhere).
For quality of life... The obvious choice is France of course.:) Best food, beautiful country.
I am not 100% sure (coz I am too lazy to read the whole article), but this sounds very much like the "SYN cookie" solution now available in the Linux kernel. See this article for a discussion of the principles behind.
There's an interesting solution I heard of recently : OpenH323 is an open source implementation of the H323 specifications (it covers several audio and video conferencing protocols and codecs).
I don't know if the poster of this question really masters this field, but it does make some sense to me. I have friends whose job is to validate satellites : they have a *huge* checklist, and each component is validated when the whole list is ok for this component. Since this includes satellite avionics, i.e. attitude and orbit control systems, they have to simulate in real-time the behaviour of the satellite : this is done whith a fast workstation that computes a complex physical model, and it must be done under hard real-time constraints. For instance, I saw them use a Sun Ultra5 operating in a real-time mode to simulate some parts of a satellite (I heard that you can load your own software and switch from Solaris to a priviledged environment with a certain syscall). I know that they also use Alpha boxes for their most CPU intensive needs.
If you're fond of astronomy pictures, you should know this wonderful site : Astronomy Picture Of the Day. Every day, it presents a picture related to astronomy, along with a small paragraph that gives some explanation. All previous pictures are still available. This site is a must see !:-)
When I was an intern in a company building satellites and rockets, local gurus told me that gyroscopes, with all their complex pieces moving fast, are the most failure-prone part of most satellites, and that's the reason why they usually have 4 gyros while only 3 are needed for normal operation, and 2 are enough for "degraded mode".
Now one gyroscope of the ISS is out: granted, it's a bit early, but it is also a bit early to worry about the ISS's future. Remember Hubble: at the beginning, it sounded like the mission would be a complete failure... In the end, Hubble could be repaired, and it is now considered a complete success. Don't be too hasty when bashing space missions: this IS rocket science after all.
BTW, if you consider Win2k TSE servers, small Linux boxes (ie. all you need is X running) with the free (GPL) and lightweight rdesktop client are a very nice option: it is very close to using PCs as X terminals. I even found rdesktop very nice and comfortable to use over my 512kbps ADSL connection. :-)
Just my 0.02 euros.
TIM: I warned you! But did you listen to me? Oh, no, you knew it all, didn't you? Oh, it's just a harmless little bunny, isn't it? Well, it's always the same, I always--
ARTHUR: Oh, shut up!
(VIVE LES LAPEINS)
...and may take a long time to complete: according to their paper here, the port to Linux is not finished since "Problems with thread suspend and continue have been encountered, and are as yet unresolved".
It is no easy task, because the handling of SIGSTOP and SIGCONT under Linux does not follow POSIX. Hope they'll succeed anyway.
This package is more security oriented, but Tripwire is the way to go, since you have no standard way of monitoring events on the file system under Un*x.
A friend of mine and I have developed a patch for the Linux 2.4 kernel that can, amongst other interesting things, rewrite the ISN of connexions to routed machines. In particular, it can generate truly random ISNs. A release for the 2.4.2 kernel should be available soon on the project's website :
http://ippersonality.sourceforge.net/
I've had a quick look at their protocol, looks like they want to maintain connexions over UDP... So will they do it better that the deisgners of TCP over IP ? Not sure. :-P
nevrax.com is the corporate web site, nevrax.org is the developers' community web site.
Nevrax will not release their game under the GPL because it's a dead project: they chose to do so from the very beginning (event though I think they first intended to keep the server code proprietary).
Nevrax is a real company, funded by real investors, and they intend to make real money, so I guess that they have anticipated attacks from cheaters. The future will tell us if they have chosen the good option, but at least they have probably some good ideas in mind to prevent cheating.
And I'll add that I wish the best to the Nevrax team, such a project needs courage and a lot of work to succed.
Well, the design and coding principles advocated by Abrash simply apply to any field where you need performant and robust software : games, scientific computing, but also operating systems (don't forget that your OS does *all* what your apps don't want to do), real time systems, etc.
:)
And as some others said, this article is not particularly brilliant. It can be useful to young programmers eager to develop their first game and seeking for advice, but in the end, it is mostly the common sense you acquire after a few years of experience in (serious) software development.
That being said, I do have a lot of respect for Mike Abrash, especially for his work in Quake and BSP trees.
I love the way Ballmer has to make fun of Sun and Oracle: "look guys, let's face it: you are not as tough as Linux as competitors". ;-)
;-p
Now if someone more objective could say this... BTW, I didn't know that the Linux 2.4 included a complex RDBMS like Oracle.
"...in the final analysis, each person has only as much freedom as he or she can personally enforce. Guns (or any other weapon) are an effective means of doing so.."
This sounds very much like the American individualistic attitude described above (no offense here): you don't trust your government, not even your mighty and omnipresent police, so you consider that you must protect yourself the same way they did back in the ol' days...
Personnally, I perceive this as a traditionalist or conservative attitude, which makes you forget that (a) the sherif doesn't have to leave the town and ride for 3 days to catch criminals anymore, and (b) the current proliferation of weapons is probably more dangerous than regulating the sales of guns, even if it works only for honest citizens.
And as far as individual freedom is concerned, I consider it dangerous for mine if my stupid but honest neighbour can easily buy a gun, because his gun may be a danger in his hands or in the hands of his kid for example: I do have a right to feel safe! And I feel much safer if I know that only a handful of criminals and our police have the possibility to carry a gun in our streets. Even criminals will use their guns less often if they feel they are not in danger...
Who says the US has ever been the best place for safety, freedom, and quality of life ???
:) Best food, beautiful country.
For freedom, you may choose the Netherlands.
For safety, move to Monaco (omnipresent police, security cameras everywhere).
For quality of life... The obvious choice is France of course.
I am not 100% sure (coz I am too lazy to read the whole article), but this sounds very much like the "SYN cookie" solution now available in the Linux kernel. See this article for a discussion of the principles behind.
There's an interesting solution I heard of recently : OpenH323 is an open source implementation of the H323 specifications (it covers several audio and video conferencing protocols and codecs).
I don't know if the poster of this question really masters this field, but it does make some sense to me. I have friends whose job is to validate satellites : they have a *huge* checklist, and each component is validated when the whole list is ok for this component. Since this includes satellite avionics, i.e. attitude and orbit control systems, they have to simulate in real-time the behaviour of the satellite : this is done whith a fast workstation that computes a complex physical model, and it must be done under hard real-time constraints. For instance, I saw them use a Sun Ultra5 operating in a real-time mode to simulate some parts of a satellite (I heard that you can load your own software and switch from Solaris to a priviledged environment with a certain syscall). I know that they also use Alpha boxes for their most CPU intensive needs.
If you're fond of astronomy pictures, you should know this wonderful site : Astronomy Picture Of the Day. Every day, it presents a picture related to astronomy, along with a small paragraph that gives some explanation. All previous pictures are still available. This site is a must see ! :-)