Illinois is one of the most anti-gun states, and Chicago has even more strict rules on top of that. It's almost as bad as Britain.
You say that as though Britain's gun laws are a bad thing. Oh wait, you're probably one of those NRA crackpots who has misinterpreted the right for a state to have a militia as the right for individuals to have guns. Ever wondered why gun crime in Europe is a tiny fraction of what it is in the States? The only country in Europe where even the militia can have guns in their own home is Switzerland, and those are chunky rifles which are not the armed criminals preferred (concealable, one handed) weapon.
Participation doesn't imply support, however it does indicate that they're interested parties. For instance, the British Library and Library Of Congress wouldn't want to sit idly by while a new format that's likely to be as much used as OOXML is approved, only to find it's a dead end format that's a nightmare to index or cross reference. Remember that both institutions no longer archive most material in the form of paper books, but as electronic copy instead.
Having worked on several drivers for things like conveyer scanners at a warehouse automation company, I've experienced what Torvalds seems to think is an adequate driver API and kernel module system. Based on that, I don't think he's qualified to speak about functionality or usability.
Java is a disaster and hardly used on the Linux desktop.
Every Linux developer I've worked with in the last three to four years must be using those special versions of Eclipse and NetBeans that aren't written in Java. Haven't been able to find where to download them myself though... Plus, that Repo trading system I worked on which is hosted on Linux and used by Bank of America, Barclays, and many others couldn't have been written in Java could it?
the French underground was instrumental in defeating Hitler.
Wrong. While there were some very brave resistance fighters in France, even after the Normandy invasion in 1944 it was little more than a token operation. The SOE (British intelligence agency tasked with things like operations in occupied Europe) only supported the resistance for its morale boosting and propaganda value - most actions in occupied France were carried out by British operatives. De Gaulle acknowledged how unimportant the resistance was, and quipped that if all the people who claimed to have been resitance fighters had been then the Germans would never have been able to occupy France in the first place. The high profile of the resistance in post war France was an attempt to disguise the level of collabaration with the German occupiers by most of the French populace - a classic case of the victors writing the history to favour themselves.
Poland bravely met the Nazis in open battle, and got wiped out.
As did the French in 1940. Had the French and British used similar tactics to the Germans (concentrated armoured attacks, units authorised to operate in a semi-autonomous manner rather than requesting orders from above at critical moments) then it is debatable whether German victory could be assured. It was the piece meal use of French armour (technically on a par with the Panzers of the Low Countries campaign) rather than in massed defensive actions and counter attacks, along with ineffective leadership from the high command that enabled the Germans to win such a stunning victory. It is clear that the Western Allies had learnt nothing from the Polish experience of Blitzkreig at this point.
if there are more than one Scheduler, and if someone could tell the difference, why isn't s/he using the ALTERNATE Scheduler and compiling their own custom, tweaked and totally tuned kernel?
Someone (Con Kolivas?) suggested a "pluggable" scheduler API. I think this was even backed up by patches to provide this functionality. Linus Torvalds rejected the proposal - I think he said that the benefits would be outweighed by the need to maintain multiple schedulers. My opinion is that the kernel could have included a single scheduler in the kernel.org tarballs, but by providing the pluggable API it would lower the bar for those who wish to develop or play with different schedulers.
There was a Debian project to put the GNU userland (such as glibc) on top of the NetBSD kernel - http://www.debian.org/ports/netbsd/. While it seems as though the whole project is dormant, it does suggest that Linux could be replaced as the kernel of the Debian operating system. It would be amusing to see the licensing issues that brings up, and whether RMS could justify calling it GNU/BSD, given that a lot of the code in what he currently calls GNU/Linux was not written for the GNU project or released under a GPL license.
The MiG 25 was a very crude machine, even when it first went into service. The electronics are 1960's vintage, and the weapons systems ineffective against agile opponents equipped with electronic counter measure systems. The engines chuck out so much heat that it is impossible for the MiG 25 to be in any way stealthy, making it very easy to track with surface to air or air to air missiles. The ability to make bursts of speed up to mach 2.8 are little defence against missile attack, as the typical missile acceleration is greater and of similar duration to the Mig 25 thanks to their smaller size and greater aerodynamic efficiency. Simply put, the Mig 25 was a single purpose interceptor intended to counter spy planes like the Valkyrie. Now the MiG 29 on the other hand is a very potent warplane...
PHP users seem to spend inordinate amounts of time worrying about the latest exploit in the PHP engine, or how easy it is to introduce exploits at the application level thanks to the awful library functions, while RoR users end up mulling over the lack of scalability in their apps once the initial prototype is complete. Meanwhile, "boring" Java apps continue to power large scale systems with increasing reliability and maintainability. Perhaps it's because neither PHP or RoR has the depth of experience or literature on best practices that J2EE now has. That's not to say that things have always been so rosy in the Java world - EJB conventions buggered up a lot of projects until a decent set of patterns were identified and people had bought into the ideas behind lightweight frameworks such as Spring.
Err, no. What is preventing the two-way sharing is (1) people using the GPL with (portions of) the code in a originally BSD-licensed project, and (2) the people in the original project not being willing to accept the GPL-ed code.
I has nothing to do with unwillingness to accept GPL code - by accepting it their formerly BSD licensed project would be a GPL licenses one. This is the intended "viral" aspect of the GPL, which is simply a way of getting more code under the GPL umbrella where it is only "free" in the FSF's concept of the term.
Can't agree. It's a pig to install, requiring dozens of Perl modules that stomp all over the filesystem and in FastCGI configuration at least it crashes regularly. It's also, as others have pointed out, more of a bug tracker rather than a support call tracker. If you need something akin to a bug tracker, then go with Bugzilla - it's also written in Perl, but it has fewer dependencies.
You do realise that Java grew out of Oak, which was a language and runtime environment for programming set-top boxes? There's also J2ME, which I have used to implement applications on handheld devices such as scanners.
For me, the most remarkable thing about those classic US cars you see on the streets of Havana is the way that many of them have been re-engined. As spares for the original engines are impossible to get hold of, they have been replaced with the blocks from Russian cars. I'm just amazed that the engine from the typical Lada can haul one of those old Chevys, Cadillacs and the like!
I have tried mainly Boundschecker and Purify, and they were usually quite slow and difficult to set up and produced lots of spurious results.
I found structure your code with Purify in mind, then you an avoid the spurious warnings and errors. This wasn't a bad things as it discourages use of globally declared pointers, often leading to more modular code. The only spurious warning that I'm usually left with is to do with leaks when adding environment variables, as this memory becomes "owned" by the environment array and is implicitly freed up when exiting.
it seems the preferred method for solving Mac computer problems is to buy your way out of it. Slow computer? Buy a new one.
Which other operating system can I use that doesn't require me to buy a new computer when this one feels too slow? If it's a lack of RAM that's slowing things down, then I'm just as likely to be able to chuck more memory into a Mac or a PC. If it's the hard drive, then again, I can put a whizzier one in regardless of whether it's a Mac or a PC.
Linus communicates very much like an academic. With him, it's not personal - it's Ideas.
Quite the opposite actually - he has often described developers of other operating systems as idiots. In particular, he has often described Solaris as being crap, even though he admits to knowing little about its architecture. Whi is quite ironic when you consider that Linux is evolving to resemble Solaris from an architectural point of view!
If they don't want addin support in the free edition, disable it in the product.
It is.
It isn't . The author of this plugin made it work, therefore by definition it in't disabled. If MS really didn't want plugins to work in the Express edition of VS, then they should have removed support for it entirely.
Mention that you've got facial tattoos. Or ask whether the client they are recruiting for has a metal detector at the office entrance. When they ask why, tell them in graphic detail about your genital piercings that are always setting off the detectors at airports.
I had a similar approach to junk mail surveys at my last apartment. I'd fill them in with the most preposterous answers, and my neighbours contact details (he was an student who had noisy parties into the early hours on weekdays). Eventually his postbox was overflowing with offers for dubious medical products such as surgical trusses and detox plans.
Oh fuck off you pedant. If we were to take your insistence on not calling a duck a duck, then we wouldn't be able to call a function a function - after all it's just syntactic sugar that really hides a machine instruction that modifies the program counter. Oh shit, I better not call it a program counter seeing as on some processors that's just a convention not even described in the accompanying documentation. In other words, get over it - a class can be modelled in C and it's still a sight more elegant than it is in some hack like Perl that supports classes "natively".
Really? Care to give a citation for that claim? Some features of Xenix were merged into SVR4 around 1990, but that's hardly 20 years ago, and I don't recall any mention of royalties being paid to Microsoft for using SVR4 source code. Anyway, Xenix would have required Microsoft to strike some sort of licensing deal with AT&T in the first place, as they owned the source code that Xenix was based on. I'm not sure what point SCO (old-SCO that is) ended their relationship with MicroSoft, but that may have predated the merging of Xenix features into AT&T's codebase anyway.
I can think of a number of ways of optimising exception handling, such that there's less code to execute when an exception isn't thrown, however they all involve storing a fairly hefty amount of data. Even so, I can see that it's possible to make code that predominantly uses exceptions for error handling perform a little better than C code that checks a return value almost every function call. However, you'd need to apply some forethought to ensure you don't end up with too many fine grained exception and try... catch blocks.
Perhaps it's the fact that C hasn't got classes which is stopping him.
There aren't any classes in glib because C doesn't support classes. This is why various supersets that add class support such as C++ and Objective-C were designed.
Try reading the GObject, GLib and GTK+ documentation and you'll see what I mean by OOP in C, or even try Googling for "object oriented c". In short, a programming language doesn't have to have support at the "keyword level" to take advantage of OOP techniques.
You're either a troll, or have been somehow isolated from everything that's been happening in programming over the last few decades, and therefore really don't know the difference between a class and a collection of functions. For your sake, I really do hope that it's the former.
I assume you're referring to overhead that adds important stuff for building _classes_ such as encapsulation, inheritance, and polymorphism, which C, through its virtue of having no direct support for _classes_, conveniently avoids.
C++ and Objective-C simply added syntactic sugar to C in order to implement classes - which is ultimately just a way of describing behaviour and state better by combining functions (methods) and data (members). There two common conventions for doing this in C, the simplest involves just using a struct to store the data, prefixing functions with the class name and passing a pointer to the "instance" struct as the first function argument. The second convention extends this to include a "class" struct as well as an instance struct, and uses function pointers in the class struct. This is what early C++ compilers (actually preprocessors that emitted C code) often did. Inheritance can be accomplished in either convention by making the superclass the first member of the "derived" class or instance struct, and is often enhanced with macros for compile time type checking.
If you'd like to see a simpler example of OOP in C than Glib, I suggest taking a look at an image metadata parser I wrote (http://www.chriswareham.demon.co.uk/software/iimp arser.html).
All C++ compilers in the market have ability to turn off exceptions, which is the only feature that inherently generates larger/slower code (but not slower than "if (e 0) goto cleanup" after every function call) even when not used.
Virtual methods add extra code which introduces indirection - the result is larger and slower code. Exceptions are slower than a conditional and goto (which are four or five assembler instructions), as they have to walk up the stack looking for a handler. Yup, it may be possible to optimise them at compile time, but I'd be surprised if any compiler does as by their very nature they're expected to be *exceptional* occurences - rare indications of a problem. Well written C code will always outperform C++, although other considerations may still sway your decision to use C++ over C (quality of libraries, developer familiarity, etc).
Illinois is one of the most anti-gun states, and Chicago has even more strict rules on top of that. It's almost as bad as Britain.
You say that as though Britain's gun laws are a bad thing. Oh wait, you're probably one of those NRA crackpots who has misinterpreted the right for a state to have a militia as the right for individuals to have guns. Ever wondered why gun crime in Europe is a tiny fraction of what it is in the States? The only country in Europe where even the militia can have guns in their own home is Switzerland, and those are chunky rifles which are not the armed criminals preferred (concealable, one handed) weapon.
Participation doesn't imply support, however it does indicate that they're interested parties. For instance, the British Library and Library Of Congress wouldn't want to sit idly by while a new format that's likely to be as much used as OOXML is approved, only to find it's a dead end format that's a nightmare to index or cross reference. Remember that both institutions no longer archive most material in the form of paper books, but as electronic copy instead.
Having worked on several drivers for things like conveyer scanners at a warehouse automation company, I've experienced what Torvalds seems to think is an adequate driver API and kernel module system. Based on that, I don't think he's qualified to speak about functionality or usability.
Java is a disaster and hardly used on the Linux desktop.
Every Linux developer I've worked with in the last three to four years must be using those special versions of Eclipse and NetBeans that aren't written in Java. Haven't been able to find where to download them myself though ... Plus, that Repo trading system I worked on which is hosted on Linux and used by Bank of America, Barclays, and many others couldn't have been written in Java could it?
the French underground was instrumental in defeating Hitler.
Wrong. While there were some very brave resistance fighters in France, even after the Normandy invasion in 1944 it was little more than a token operation. The SOE (British intelligence agency tasked with things like operations in occupied Europe) only supported the resistance for its morale boosting and propaganda value - most actions in occupied France were carried out by British operatives. De Gaulle acknowledged how unimportant the resistance was, and quipped that if all the people who claimed to have been resitance fighters had been then the Germans would never have been able to occupy France in the first place. The high profile of the resistance in post war France was an attempt to disguise the level of collabaration with the German occupiers by most of the French populace - a classic case of the victors writing the history to favour themselves.
Poland bravely met the Nazis in open battle, and got wiped out.
As did the French in 1940. Had the French and British used similar tactics to the Germans (concentrated armoured attacks, units authorised to operate in a semi-autonomous manner rather than requesting orders from above at critical moments) then it is debatable whether German victory could be assured. It was the piece meal use of French armour (technically on a par with the Panzers of the Low Countries campaign) rather than in massed defensive actions and counter attacks, along with ineffective leadership from the high command that enabled the Germans to win such a stunning victory. It is clear that the Western Allies had learnt nothing from the Polish experience of Blitzkreig at this point.
if there are more than one Scheduler, and if someone could tell the difference, why isn't s/he using the ALTERNATE Scheduler and compiling their own custom, tweaked and totally tuned kernel?
Someone (Con Kolivas?) suggested a "pluggable" scheduler API. I think this was even backed up by patches to provide this functionality. Linus Torvalds rejected the proposal - I think he said that the benefits would be outweighed by the need to maintain multiple schedulers. My opinion is that the kernel could have included a single scheduler in the kernel.org tarballs, but by providing the pluggable API it would lower the bar for those who wish to develop or play with different schedulers.
There was a Debian project to put the GNU userland (such as glibc) on top of the NetBSD kernel - http://www.debian.org/ports/netbsd/. While it seems as though the whole project is dormant, it does suggest that Linux could be replaced as the kernel of the Debian operating system. It would be amusing to see the licensing issues that brings up, and whether RMS could justify calling it GNU/BSD, given that a lot of the code in what he currently calls GNU/Linux was not written for the GNU project or released under a GPL license.
The MiG 25 was a very crude machine, even when it first went into service. The electronics are 1960's vintage, and the weapons systems ineffective against agile opponents equipped with electronic counter measure systems. The engines chuck out so much heat that it is impossible for the MiG 25 to be in any way stealthy, making it very easy to track with surface to air or air to air missiles. The ability to make bursts of speed up to mach 2.8 are little defence against missile attack, as the typical missile acceleration is greater and of similar duration to the Mig 25 thanks to their smaller size and greater aerodynamic efficiency. Simply put, the Mig 25 was a single purpose interceptor intended to counter spy planes like the Valkyrie. Now the MiG 29 on the other hand is a very potent warplane ...
PHP users seem to spend inordinate amounts of time worrying about the latest exploit in the PHP engine, or how easy it is to introduce exploits at the application level thanks to the awful library functions, while RoR users end up mulling over the lack of scalability in their apps once the initial prototype is complete. Meanwhile, "boring" Java apps continue to power large scale systems with increasing reliability and maintainability. Perhaps it's because neither PHP or RoR has the depth of experience or literature on best practices that J2EE now has. That's not to say that things have always been so rosy in the Java world - EJB conventions buggered up a lot of projects until a decent set of patterns were identified and people had bought into the ideas behind lightweight frameworks such as Spring.
Err, no. What is preventing the two-way sharing is (1) people using the GPL with (portions of) the code in a originally BSD-licensed project, and (2) the people in the original project not being willing to accept the GPL-ed code.
I has nothing to do with unwillingness to accept GPL code - by accepting it their formerly BSD licensed project would be a GPL licenses one. This is the intended "viral" aspect of the GPL, which is simply a way of getting more code under the GPL umbrella where it is only "free" in the FSF's concept of the term.
Can't agree. It's a pig to install, requiring dozens of Perl modules that stomp all over the filesystem and in FastCGI configuration at least it crashes regularly. It's also, as others have pointed out, more of a bug tracker rather than a support call tracker. If you need something akin to a bug tracker, then go with Bugzilla - it's also written in Perl, but it has fewer dependencies.
You do realise that Java grew out of Oak, which was a language and runtime environment for programming set-top boxes? There's also J2ME, which I have used to implement applications on handheld devices such as scanners.
For me, the most remarkable thing about those classic US cars you see on the streets of Havana is the way that many of them have been re-engined. As spares for the original engines are impossible to get hold of, they have been replaced with the blocks from Russian cars. I'm just amazed that the engine from the typical Lada can haul one of those old Chevys, Cadillacs and the like!
I have tried mainly Boundschecker and Purify, and they were usually quite slow and difficult to set up and produced lots of spurious results.
I found structure your code with Purify in mind, then you an avoid the spurious warnings and errors. This wasn't a bad things as it discourages use of globally declared pointers, often leading to more modular code. The only spurious warning that I'm usually left with is to do with leaks when adding environment variables, as this memory becomes "owned" by the environment array and is implicitly freed up when exiting.
it seems the preferred method for solving Mac computer problems is to buy your way out of it. Slow computer? Buy a new one.
Which other operating system can I use that doesn't require me to buy a new computer when this one feels too slow? If it's a lack of RAM that's slowing things down, then I'm just as likely to be able to chuck more memory into a Mac or a PC. If it's the hard drive, then again, I can put a whizzier one in regardless of whether it's a Mac or a PC.
Linus communicates very much like an academic. With him, it's not personal - it's Ideas.
Quite the opposite actually - he has often described developers of other operating systems as idiots. In particular, he has often described Solaris as being crap, even though he admits to knowing little about its architecture. Whi is quite ironic when you consider that Linux is evolving to resemble Solaris from an architectural point of view!
If they don't want addin support in the free edition, disable it in the product.
It is.
It isn't . The author of this plugin made it work, therefore by definition it in't disabled. If MS really didn't want plugins to work in the Express edition of VS, then they should have removed support for it entirely.
Mention that you've got facial tattoos. Or ask whether the client they are recruiting for has a metal detector at the office entrance. When they ask why, tell them in graphic detail about your genital piercings that are always setting off the detectors at airports.
I had a similar approach to junk mail surveys at my last apartment. I'd fill them in with the most preposterous answers, and my neighbours contact details (he was an student who had noisy parties into the early hours on weekdays). Eventually his postbox was overflowing with offers for dubious medical products such as surgical trusses and detox plans.
Oh fuck off you pedant. If we were to take your insistence on not calling a duck a duck, then we wouldn't be able to call a function a function - after all it's just syntactic sugar that really hides a machine instruction that modifies the program counter. Oh shit, I better not call it a program counter seeing as on some processors that's just a convention not even described in the accompanying documentation. In other words, get over it - a class can be modelled in C and it's still a sight more elegant than it is in some hack like Perl that supports classes "natively".
Really? Care to give a citation for that claim? Some features of Xenix were merged into SVR4 around 1990, but that's hardly 20 years ago, and I don't recall any mention of royalties being paid to Microsoft for using SVR4 source code. Anyway, Xenix would have required Microsoft to strike some sort of licensing deal with AT&T in the first place, as they owned the source code that Xenix was based on. I'm not sure what point SCO (old-SCO that is) ended their relationship with MicroSoft, but that may have predated the merging of Xenix features into AT&T's codebase anyway.
I can think of a number of ways of optimising exception handling, such that there's less code to execute when an exception isn't thrown, however they all involve storing a fairly hefty amount of data. Even so, I can see that it's possible to make code that predominantly uses exceptions for error handling perform a little better than C code that checks a return value almost every function call. However, you'd need to apply some forethought to ensure you don't end up with too many fine grained exception and try ... catch blocks.
Perhaps it's the fact that C hasn't got classes which is stopping him.
There aren't any classes in glib because C doesn't support classes. This is why various supersets that add class support such as C++ and Objective-C were designed.
Try reading the GObject, GLib and GTK+ documentation and you'll see what I mean by OOP in C, or even try Googling for "object oriented c". In short, a programming language doesn't have to have support at the "keyword level" to take advantage of OOP techniques.
You're either a troll, or have been somehow isolated from everything that's been happening in programming over the last few decades, and therefore really don't know the difference between a class and a collection of functions. For your sake, I really do hope that it's the former.
I assume you're referring to overhead that adds important stuff for building _classes_ such as encapsulation, inheritance, and polymorphism, which C, through its virtue of having no direct support for _classes_, conveniently avoids.
C++ and Objective-C simply added syntactic sugar to C in order to implement classes - which is ultimately just a way of describing behaviour and state better by combining functions (methods) and data (members). There two common conventions for doing this in C, the simplest involves just using a struct to store the data, prefixing functions with the class name and passing a pointer to the "instance" struct as the first function argument. The second convention extends this to include a "class" struct as well as an instance struct, and uses function pointers in the class struct. This is what early C++ compilers (actually preprocessors that emitted C code) often did. Inheritance can be accomplished in either convention by making the superclass the first member of the "derived" class or instance struct, and is often enhanced with macros for compile time type checking.
If you'd like to see a simpler example of OOP in C than Glib, I suggest taking a look at an image metadata parser I wrote (http://www.chriswareham.demon.co.uk/software/iimp arser.html).
"C++: A Cadillac made by nailing extra chrome to a Porsche." - Phlogisten Verdigris
All C++ compilers in the market have ability to turn off exceptions, which is the only feature that inherently generates larger/slower code (but not slower than "if (e 0) goto cleanup" after every function call) even when not used.
Virtual methods add extra code which introduces indirection - the result is larger and slower code. Exceptions are slower than a conditional and goto (which are four or five assembler instructions), as they have to walk up the stack looking for a handler. Yup, it may be possible to optimise them at compile time, but I'd be surprised if any compiler does as by their very nature they're expected to be *exceptional* occurences - rare indications of a problem. Well written C code will always outperform C++, although other considerations may still sway your decision to use C++ over C (quality of libraries, developer familiarity, etc).