In most states (if not all), companies cannot lay claim to anything produced outside the office, off the time clock, unless the product is directly related to the business at the time of its conception (so if an employee makes something cool then the business decides to move in that direction they can't claim it). They cannot under any circumstances claim work created before employment began, no matter how similar it is to the business, unless the employee chooses to integrate that work into the products of the business. Some states may even require that the relevant law be quoted in the contract, as the last employee agreement I signed had such a law attached as an appendix.
I read it all over several times to make sure I would still be able to develop my Open Source projects that I started before employment began, as well as new projects that aren't related to the business.
Wouldn't it be nice if the ACLU was as politically powerful as the NRA?
No, because the ACLU frequently takes cases/causes that are based on bogus claims.
Consider one case, where a woman left her church because her son was abused by a grossly misbehaving member of that church. The ACLU then steps in, and a lawsuit is filed for three million dollars, stating that the church did not live up to its responsiblity to keep the man away from her son, also stating that the man was a high official in the church, when he was just another member. In fact, the woman had invited the man to stay at her house! Note that I may be incorrect on some of the details of this case, but the general idea is the same.
Another case: in Salt Lake City, the LDS church purchased a small street that borders Temple Square to create a safer environment for pedestrians visiting the square. The ACLU then decides to argue that the LDS church is violating free speech (!) by not allowing protestors to harass pedestrians while on the LDS church's private property! There is still plenty of public sidewalk outside of the church's private property where protestors can gather.
So you see, while the ACLU does much good, it also does much bad. It is a lot like most other political organizations. No organization should have significant political power over any other.
It may have been done to force a separation of blocks of code, so that the compiler wouldn't optimize them together (though I don't know how MSVC's optimizer works).
If I remember correctly there are similar tricks used in the Linux kernel to prevent out-of-order evaluation in places like interrupt handlers where it can cause problems.
There are also cases where do {...} while(0) is used in macros. See this thread of a mailing list discussion describing such usage.
I wonder if SCO is claiming ownership of tricks like these, or common code patterns. Or, maybe, they're saying, "Hey look! Their PCI code accesses the PCI bus! Their register write/reads look awfully similar to ours! There's no way they could be accessing the PCI bus without copying our code! The fact that the same registers have to be used no matter the OS is insignificant!"
There are similarities: in both scenarios, an arm gets blown off. The difference is in whose arm it is.
I can only shoot a single-barelled 12 gauge shotgun with the weakest shells for about 5 or 6 shells before my shoulder starts to hurt. A wimpy shotgun is a different matter; there are those shotguns that kick about as much as a.22 (I think called a four twenty or something like that).
You know, I used to read Fravia when I was in junior high. I strongly dislike the way the GNU philosophy is associated with "warez" and software cracking on that site. Yes, reverse engineering and disassembling are important tools, but they are not to be used to steal software, but to understand how software works, and thereby implement a free version using similar but superior algorithms and ideas.
One really good reason I haven't seen mentioned yet is writing a Linux driver for a piece of hardware only supported in Windows, such as the DXR3/Hollywood+ or the MyHD/WinTV-HD/etc. For these projects where the hardware manufacturers either can't or won't offer any help, the only way to support the hardware is by disassembling the Windows driver and figuring out the algorithms used by reading the disassembly and/or watching the interactions between the driver and the code. Fortunately for the MyHD driver project, the MyHD software is distributed without any EULA.
BTW: Nice job getting all those responses with two lines...
Thanks for the info. With tens of acres of fields around (Though not all contiguous -- the average house spacing on my street is 150-200 yards) I'd probably have to get all my neighbors to regularly mow their pastures and cover their irrigation ditches. There's also a ditch that runs along the street that would have to be covered. There are trucks that drive by about once a week or once every other week spraying some kind of pesticide into the air from the road, but that seems to have little or no effect. I can walk outside at the right time of day and walk back in with at least 30 bites in 5 minutes. It seems a DEET repellant is still the best option, though unfortunately the smell is also repulsive to humans.
I live in an area surrounded by pasture and ditches. The mosquitos during the summer are terrible. There has to be some farm chemical or something in them that isn't in mosquitos elsewhere, because when I get a mosquito bite here, I get a 1.5 inch diameter red spot around the bite, but elsewhere I just get the usual small bump. It's really a pain when trying to do anything outside during the summer.
A week or two ago there was an ad in the paper for an outdoor ultrasonic insect repellant that claimed one acre range on flies, mosquitos, and "no-see-ums" (I think they're brine flies or some kind of gnat), all three of which are a problem here. So, does anybody know if the large devices are effective against mosquitoes, flies, and gnats? It would really make my life a lot easier if I could go outside during twilight without smelling like insect repellant spray. My yard is very open, so line-of-sight isn't a problem.
If the ultrasonic devices don't work, is there some other way to cover at least a half acre without placing mosquito coils in a grid all over?
I'm wondering if they, instead of relying on the air to break it down, fill the DVD package with an inhibitor which is released when the package is opened. That way, the only way to preserve the disc would be to find out what the inhibitor is and make a chamber filled with it.
Re:Hopefully
on
Ogg Now An RFC
·
· Score: 3, Informative
Grip is absolutely the most awesome separate ripper I've ever used. It has database lookup, support for lame/bladeenc/oggenc and I think a few others, fully customizable file naming/directory structure, and the UI is actually pretty decent (once you get used to the "tabs-within-tabs" stuff that one of my former coworkers would always get really peeved about).
I'm not aware of any jukebox-like software for Linux, but with grip it's less necessary, as it sorts rips by album and artist if you want it to.
Linux then is entirely an exception to the rule, as whenever backward compatibility is broken, it's because it's based on newer technology than previous versions.
Re:A bug in a deprecated GCC extension
on
GCC 3.3 Released
·
· Score: 1
The patch in the original bug post looks like this:
- ConfigItem** ip = &(ConfigItem*)menu->data; + ConfigItem* i=(ConfigItem*)menu->data; + ConfigItem** ip =
So I guess you're right; the & operator would use an lvalue. One could code *(void*)5, but not &(void*)5.
The way I would've coded that particular code in one line is: ConfigItem** ip = (ConfigItem**)&(menu->data);/* Can't remember if & or -> is evaluated first, so I added () */
Or the (unsigned int *) example case you gave as:
voidpointer = (void *)uintpointer;
So, I really don't see this extension as anything more than a potential way for increasing gratuitous obfuscation for the purpose of the obfuscated C contest.
Re:A bug in a deprecated GCC extension
on
GCC 3.3 Released
·
· Score: 1
That's a gcc extension? I've been using that in my code for years! Of course, all my code is compiled on gcc... Code like this:
*(unsigned int *)(voidpointer) = intval;
isn't valid C/C++? Or do you mean gcc allows something like this:
SCO is only going to release the code to a few "industry experts" of their choice under NDA. There are only two reasons for them to do this:
They're bluffing.
They want to cause as much damage as possible to Linux by keeping the code in use as long as possible.
Personally I think it's sick. They know that within a few days of releasing the violations, they would be fixed, and patches made by vendors for all previous versions of products they still support. They can't do that though, because they want to take us to the proverbial cleaners.
Nah, it's not BS. MacOS before X just plain sucked for the kind of work he's trying to do. It sucked at copying files from place to place on the same disk. It really sucked at virtual memory. MacOS 9 multitasking was horrible. You could do one thing, and one thing only. This guy's got Netscape, BBEdit, file transfer, music playing, etc.. Something that OS 9 just can't do. Watch a DVD, and the DVD gets 100% of the freaking CPU, and yet the sound still loses sync. Nope, it won't drop a few frames here and there to let your background processes run.
Thankfully, MacOS X, with its new architecture based on open systems and open standards, is much, much better.
Konqueror is fully capable of loading Mozilla plugins. See the "Netscape Plugins" section in the Configure Konqueror dialog. Unfortunately due to some unknown mistake made when compiling my custom KDE build in Gentoo nspluginlauncher always crashes for me. Distros usually tend to get it right, though. In LindowsOS, for example, Flash 6 is rendered just fine in Konqueror using the Mozilla/Netscape plugin.
Oh, BTW: fonts on Linux don't suck. That's a really old and obsolete argument. Just install those free bitstream fonts, or the MS TT Core Fonts for the Web (most of which were designed by Monotype, not Microsoft) with the Freetype renderer. I will say I prefer Qt3/KDE3 font rendering over Gtk+2, but I don't know what the difference is.
..
What's with the missing Post Anonymously checkbox???
Do you or anyone know of tutorials on setting up basic rules like this in postfix? I'm using postfix for my personal mail server (hosted on a static IP, but with reverse lookup pointing to the ISP, not my domain), but it's been so long since I set it up I don't remember how the configuration file works. I recall it took forever to read through the standard docs, so I was wondering if there's a refresher tutorial just for setting up DNS-based restrictions like these.
You can control the lights at a party with a setup like this (yes, I've done it with relays) with this cool Open Source XMMS plugin: Palace. I'm working on a circuit that uses a 1-in-16 demux and 16 74ls373's on the 4 control pins to run 128 LED's (though I haven't had much time to spend on it).
Disclaimer: I wrote Palace. It used to be based on XPLSISNJASP (can't reach its project page anymore), but most or all of that old code has been ripped out and/or rewritten.
I'd recommend DVD-Low (352x480) or SVCD (480x480) resolution to keep as much information as the VHS stores, and use a 1-2mbit/s bitrate with a nice MPEG-4 codec like XviD or Divx 5.
Then, if you're worried about format obsolescence, buy a DVD player with MPEG-4 capability, make sure your codec settings work with the DVD player, and burn everything to DVD's. Then, lock everything up (the DVD player and the DVD's) in a low dust, cool (67-72F probably), dry place.
I think you mean brush size cursors. Gimp already has precise cursors, though I don't recall enjoying them. Brush size cursors would require drawing a circle of the appropriate size and hiding or changing the X mouse cursor. It could probably be done in the same place the marching ants are drawn. In fact, if someone more familiar with the Gimp code base pointed me to the location of the X event loop, the code where current brush size is stored, and the marching ants drawing routine, I'd probably be able to pull off brush-size cursors for circular brushes in about an hour. Precise outlines for irregular brushes would be as easy as creating a temporary surface, scaling to the current zoom level if necessary, and using the marching ants code to trace the outline of the brush. That would require not more than a few hours from someone with lots of Gimp internals experience.
Photoshop is frequently used for other things beside print. Gimp is really slow at handling huge images (4kx4k pixels) with its default configuration (I don't know if increasing the tile cache to 1/2 the RAM size like Photoshop uses would improve that). But, Gimp doesn't suck. Patents on color spaces and color matching and color systems like Pantone are what suck.
I understand people being defensive about software investments. However, I would love it if an Open Source package came along that could replace Acid Pro 4 and its Dolby Digital encoder (a rather large investment for someone who only writes music and makes movies as a hobby).
Most CEO's aren't aware of the details of their engineering departments. Their primary purpose is dealing with the overall direction of the company and any really big decisions. The words/phrases "uses, calls, shares code, links, loads, accesses" probably all mean the same thing (i.e. nothing) to most people. What I'm sure Mr. Robertson means is that Click-N-Run is virtually independent of apt-get.
I'd have to say that a digital projector in any case is going to beat out a direct view CRT or rear projection CRT (unless you're talking about a 19" computer monitor). Only the most expensive 8" and 9" front projection CRT's can equal or outperform a nice digital projector. DLP projectors are the best bet in my opinion. They have perfectly square pixels with very little space between them (i.e. no screen door effect). DLP's do have their downsides, like reduced color saturation at low luminosity, the RGB flickering effect visible when moving your eyes around quickly (this is reduced significantly by projectors with 6-segment color wheels and/or higher color wheel rotation speed), and the "DLP crawlie effect" caused by the dithering done to convert the high bandwidth signal to the (binary?) range of the DMD; this effect is most visible when displaying a dim image with lots of similar colors next to each other, and standing right next to the screen and moving your head toward and away from the screen. Still, for the increased lifetime over LCD projectors, I'd always recommend DLP front projection for almost any application. I bought my projector 3-years used, and it still has perfect image quality. Bulbs are about 20-50 cents per hour of usage, so if you always have friends over to watch movies/TV, you can have them pay you a quarter each and recover your bulb costs.
In short, an XGA or WXGA DLP projector will probably suit your needs. For digital viewing, an HDTV tuner that can scale to 1024x768p (or 1365x768p) will be fine (I recommend the MyHD PCI card), and for analog viewing, Dscaler does a great job. For Linux, there's tvtime, but tvtime seems to delay the video more than Dscaler, so you might need to add a delay to the audio to compensate. For DVD, Ogle or Xine is best for NTSC titles.
Just as C lived on long beyond its usefull life, for some applications, and managed to give us a cornucopia of exploits which could have been easily avoided with a sane language...
Yeah, this is probably a troll... but I feel it's necessary to point out, for the sake of those that might read that and believe it, that the fault lies not with the language, but the programmer. C is the best language where object oriented design is not necessary, and direct control over memory and hardware is essential. Just always remember to use the bound-limited versions of library calls, i.e. snprintf vs. sprintf.
In most states (if not all), companies cannot lay claim to anything produced outside the office, off the time clock, unless the product is directly related to the business at the time of its conception (so if an employee makes something cool then the business decides to move in that direction they can't claim it). They cannot under any circumstances claim work created before employment began, no matter how similar it is to the business, unless the employee chooses to integrate that work into the products of the business. Some states may even require that the relevant law be quoted in the contract, as the last employee agreement I signed had such a law attached as an appendix.
I read it all over several times to make sure I would still be able to develop my Open Source projects that I started before employment began, as well as new projects that aren't related to the business.
Wouldn't it be nice if the ACLU was as politically powerful as the NRA?
No, because the ACLU frequently takes cases/causes that are based on bogus claims.
Consider one case, where a woman left her church because her son was abused by a grossly misbehaving member of that church. The ACLU then steps in, and a lawsuit is filed for three million dollars, stating that the church did not live up to its responsiblity to keep the man away from her son, also stating that the man was a high official in the church, when he was just another member. In fact, the woman had invited the man to stay at her house! Note that I may be incorrect on some of the details of this case, but the general idea is the same.
Another case: in Salt Lake City, the LDS church purchased a small street that borders Temple Square to create a safer environment for pedestrians visiting the square. The ACLU then decides to argue that the LDS church is violating free speech (!) by not allowing protestors to harass pedestrians while on the LDS church's private property! There is still plenty of public sidewalk outside of the church's private property where protestors can gather.
So you see, while the ACLU does much good, it also does much bad. It is a lot like most other political organizations. No organization should have significant political power over any other.
It may have been done to force a separation of blocks of code, so that the compiler wouldn't optimize them together (though I don't know how MSVC's optimizer works).
If I remember correctly there are similar tricks used in the Linux kernel to prevent out-of-order evaluation in places like interrupt handlers where it can cause problems.
There are also cases where do {...} while(0) is used in macros. See this thread of a mailing list discussion describing such usage.
I wonder if SCO is claiming ownership of tricks like these, or common code patterns. Or, maybe, they're saying, "Hey look! Their PCI code accesses the PCI bus! Their register write/reads look awfully similar to ours! There's no way they could be accessing the PCI bus without copying our code! The fact that the same registers have to be used no matter the OS is insignificant!"
There are similarities: in both scenarios, an arm gets blown off. The difference is in whose arm it is.
.22 (I think called a four twenty or something like that).
I can only shoot a single-barelled 12 gauge shotgun with the weakest shells for about 5 or 6 shells before my shoulder starts to hurt. A wimpy shotgun is a different matter; there are those shotguns that kick about as much as a
You know, I used to read Fravia when I was in junior high. I strongly dislike the way the GNU philosophy is associated with "warez" and software cracking on that site. Yes, reverse engineering and disassembling are important tools, but they are not to be used to steal software, but to understand how software works, and thereby implement a free version using similar but superior algorithms and ideas.
One really good reason I haven't seen mentioned yet is writing a Linux driver for a piece of hardware only supported in Windows, such as the DXR3/Hollywood+ or the MyHD/WinTV-HD/etc. For these projects where the hardware manufacturers either can't or won't offer any help, the only way to support the hardware is by disassembling the Windows driver and figuring out the algorithms used by reading the disassembly and/or watching the interactions between the driver and the code. Fortunately for the MyHD driver project, the MyHD software is distributed without any EULA.
BTW: Nice job getting all those responses with two lines...
The Simpsons Episode featuring this flower was on a few days ago. It was also the episode where Moe becomes a sort of second father for Maggie.
Thanks for the info. With tens of acres of fields around (Though not all contiguous -- the average house spacing on my street is 150-200 yards) I'd probably have to get all my neighbors to regularly mow their pastures and cover their irrigation ditches. There's also a ditch that runs along the street that would have to be covered. There are trucks that drive by about once a week or once every other week spraying some kind of pesticide into the air from the road, but that seems to have little or no effect. I can walk outside at the right time of day and walk back in with at least 30 bites in 5 minutes. It seems a DEET repellant is still the best option, though unfortunately the smell is also repulsive to humans.
I live in an area surrounded by pasture and ditches. The mosquitos during the summer are terrible. There has to be some farm chemical or something in them that isn't in mosquitos elsewhere, because when I get a mosquito bite here, I get a 1.5 inch diameter red spot around the bite, but elsewhere I just get the usual small bump. It's really a pain when trying to do anything outside during the summer.
A week or two ago there was an ad in the paper for an outdoor ultrasonic insect repellant that claimed one acre range on flies, mosquitos, and "no-see-ums" (I think they're brine flies or some kind of gnat), all three of which are a problem here. So, does anybody know if the large devices are effective against mosquitoes, flies, and gnats? It would really make my life a lot easier if I could go outside during twilight without smelling like insect repellant spray. My yard is very open, so line-of-sight isn't a problem.
If the ultrasonic devices don't work, is there some other way to cover at least a half acre without placing mosquito coils in a grid all over?
I'm wondering if they, instead of relying on the air to break it down, fill the DVD package with an inhibitor which is released when the package is opened. That way, the only way to preserve the disc would be to find out what the inhibitor is and make a chamber filled with it.
Grip is absolutely the most awesome separate ripper I've ever used. It has database lookup, support for lame/bladeenc/oggenc and I think a few others, fully customizable file naming/directory structure, and the UI is actually pretty decent (once you get used to the "tabs-within-tabs" stuff that one of my former coworkers would always get really peeved about).
I'm not aware of any jukebox-like software for Linux, but with grip it's less necessary, as it sorts rips by album and artist if you want it to.
Linux then is entirely an exception to the rule, as whenever backward compatibility is broken, it's because it's based on newer technology than previous versions.
The patch in the original bug post looks like this:
/* Can't remember if & or -> is evaluated first, so I added () */
- ConfigItem** ip = &(ConfigItem*)menu->data;
+ ConfigItem* i=(ConfigItem*)menu->data;
+ ConfigItem** ip =
So I guess you're right; the & operator would use an lvalue. One could code *(void*)5, but not &(void*)5.
The way I would've coded that particular code in one line is:
ConfigItem** ip = (ConfigItem**)&(menu->data);
Or the (unsigned int *) example case you gave as:
voidpointer = (void *)uintpointer;
So, I really don't see this extension as anything more than a potential way for increasing gratuitous obfuscation for the purpose of the obfuscated C contest.
That's a gcc extension? I've been using that in my code for years! Of course, all my code is compiled on gcc... Code like this:
*(unsigned int *)(voidpointer) = intval;
isn't valid C/C++? Or do you mean gcc allows something like this:
(unsigned char)(longval) = charval;
?
Personally I think it's sick. They know that within a few days of releasing the violations, they would be fixed, and patches made by vendors for all previous versions of products they still support. They can't do that though, because they want to take us to the proverbial cleaners.
Nah, it's not BS. MacOS before X just plain sucked for the kind of work he's trying to do. It sucked at copying files from place to place on the same disk. It really sucked at virtual memory. MacOS 9 multitasking was horrible. You could do one thing, and one thing only. This guy's got Netscape, BBEdit, file transfer, music playing, etc.. Something that OS 9 just can't do. Watch a DVD, and the DVD gets 100% of the freaking CPU, and yet the sound still loses sync. Nope, it won't drop a few frames here and there to let your background processes run.
Thankfully, MacOS X, with its new architecture based on open systems and open standards, is much, much better.
Oh, BTW: fonts on Linux don't suck. That's a really old and obsolete argument. Just install those free bitstream fonts, or the MS TT Core Fonts for the Web (most of which were designed by Monotype, not Microsoft) with the Freetype renderer. I will say I prefer Qt3/KDE3 font rendering over Gtk+2, but I don't know what the difference is.
What's with the missing Post Anonymously checkbox???
Do you or anyone know of tutorials on setting up basic rules like this in postfix? I'm using postfix for my personal mail server (hosted on a static IP, but with reverse lookup pointing to the ISP, not my domain), but it's been so long since I set it up I don't remember how the configuration file works. I recall it took forever to read through the standard docs, so I was wondering if there's a refresher tutorial just for setting up DNS-based restrictions like these.
You can control the lights at a party with a setup like this (yes, I've done it with relays) with this cool Open Source XMMS plugin: Palace. I'm working on a circuit that uses a 1-in-16 demux and 16 74ls373's on the 4 control pins to run 128 LED's (though I haven't had much time to spend on it).
Disclaimer: I wrote Palace. It used to be based on XPLSISNJASP (can't reach its project page anymore), but most or all of that old code has been ripped out and/or rewritten.
I'd recommend DVD-Low (352x480) or SVCD (480x480) resolution to keep as much information as the VHS stores, and use a 1-2mbit/s bitrate with a nice MPEG-4 codec like XviD or Divx 5.
Then, if you're worried about format obsolescence, buy a DVD player with MPEG-4 capability, make sure your codec settings work with the DVD player, and burn everything to DVD's. Then, lock everything up (the DVD player and the DVD's) in a low dust, cool (67-72F probably), dry place.
I think you mean brush size cursors. Gimp already has precise cursors, though I don't recall enjoying them. Brush size cursors would require drawing a circle of the appropriate size and hiding or changing the X mouse cursor. It could probably be done in the same place the marching ants are drawn. In fact, if someone more familiar with the Gimp code base pointed me to the location of the X event loop, the code where current brush size is stored, and the marching ants drawing routine, I'd probably be able to pull off brush-size cursors for circular brushes in about an hour. Precise outlines for irregular brushes would be as easy as creating a temporary surface, scaling to the current zoom level if necessary, and using the marching ants code to trace the outline of the brush. That would require not more than a few hours from someone with lots of Gimp internals experience.
Photoshop is frequently used for other things beside print. Gimp is really slow at handling huge images (4kx4k pixels) with its default configuration (I don't know if increasing the tile cache to 1/2 the RAM size like Photoshop uses would improve that). But, Gimp doesn't suck. Patents on color spaces and color matching and color systems like Pantone are what suck.
I understand people being defensive about software investments. However, I would love it if an Open Source package came along that could replace Acid Pro 4 and its Dolby Digital encoder (a rather large investment for someone who only writes music and makes movies as a hobby).
Most CEO's aren't aware of the details of their engineering departments. Their primary purpose is dealing with the overall direction of the company and any really big decisions. The words/phrases "uses, calls, shares code, links, loads, accesses" probably all mean the same thing (i.e. nothing) to most people. What I'm sure Mr. Robertson means is that Click-N-Run is virtually independent of apt-get.
I'd have to say that a digital projector in any case is going to beat out a direct view CRT or rear projection CRT (unless you're talking about a 19" computer monitor). Only the most expensive 8" and 9" front projection CRT's can equal or outperform a nice digital projector. DLP projectors are the best bet in my opinion. They have perfectly square pixels with very little space between them (i.e. no screen door effect). DLP's do have their downsides, like reduced color saturation at low luminosity, the RGB flickering effect visible when moving your eyes around quickly (this is reduced significantly by projectors with 6-segment color wheels and/or higher color wheel rotation speed), and the "DLP crawlie effect" caused by the dithering done to convert the high bandwidth signal to the (binary?) range of the DMD; this effect is most visible when displaying a dim image with lots of similar colors next to each other, and standing right next to the screen and moving your head toward and away from the screen. Still, for the increased lifetime over LCD projectors, I'd always recommend DLP front projection for almost any application. I bought my projector 3-years used, and it still has perfect image quality. Bulbs are about 20-50 cents per hour of usage, so if you always have friends over to watch movies/TV, you can have them pay you a quarter each and recover your bulb costs.
In short, an XGA or WXGA DLP projector will probably suit your needs. For digital viewing, an HDTV tuner that can scale to 1024x768p (or 1365x768p) will be fine (I recommend the MyHD PCI card), and for analog viewing, Dscaler does a great job. For Linux, there's tvtime, but tvtime seems to delay the video more than Dscaler, so you might need to add a delay to the audio to compensate. For DVD, Ogle or Xine is best for NTSC titles.
Just as C lived on long beyond its usefull life, for some applications, and managed to give us a cornucopia of exploits which could have been easily avoided with a sane language ...
Yeah, this is probably a troll... but I feel it's necessary to point out, for the sake of those that might read that and believe it, that the fault lies not with the language, but the programmer. C is the best language where object oriented design is not necessary, and direct control over memory and hardware is essential. Just always remember to use the bound-limited versions of library calls, i.e. snprintf vs. sprintf.