Can't target implement an interface (e.g. in you example an interface named Plugin)? The code would become:
if (target instanceof Bar)
result = ((Plugin) target).processingFoo(aFoo);
More readability, more performance. If plugins for you application can implements many different optionnal functionnalities just define more interfaces...
Really you seem to have serious design problem... Almost the only case introspection is needed for something else than a debugger or some other programmer helping tool is when you don't know the name of the method to invoke, e.g. the JUnit case where it will invoke all method named testSomething() returning void and taking no params.
If you already know the method's name, make it part of an interface and your life will be easier. I'd be interrested to know why you need introspection in your case.
It's not exactly like there are 2^8192 8192 bits RSA keys, because, well, they have a little structure. Not only product of two primes but in order to achieve the rigt level of security product of two 4096 bit primes. So we are really well under 2^8192 here. I don't have numbers at hand for 8192 but to achieve 128 bits of security you must use 1620 bit long RSA keys (from http://www.rsasecurity.com/rsalabs/node.asp?id=208 8).
Extrapolating from here you 8192bit RSA key is likely at most "only" as expensive to crack as a 1024 symetric key.
But using that kind of key is really having CPU to spare, it is beyond pananoia and well into moronism.
And that you still need to handle differently each style of image capturing technology... If DNG doesn't lose any info, that's it... RAW from the captor is a different thing from without using lossy compression...
It's like saying TIFF is a format, it isn't. More of a metaformat and handling one kind does not mean much for your ability to read others, ergo not really a format, but a container...
The biggest problem with Michel Rocard is that he is too intelligent.
That's a family thing, his father Yves Rocard was the father of the French atomic bomb (dual PhD maths and physics, really smart guy). His son becoming a top state servant must have been almost a disappointment.
This is very common to have utility functions in a.c file and to not want them cluttering the namespace. This kind of perfectly valid construct would obviously not work includin,g.c files if ther is any symbol collision. And since in C symbols are lookd up only on name and not on type or signature differing args could not save you...
Someone yelling "fire!" in a crowded theater is trying to get people hurt, this guy wasn't.
And frankly I doubt the story of the temporary blinded pilot, it's hard enough to keep a laser pointer to a small target a few feet away keeping focused on a moving plane a few thousands yard away is just not doable handheld...
Can you honestly say that you understand what is does? I tried and al I got was a headache...
The sad fact is that it's likely more work to get into CVS than to rewrite one cleanly.
It is supposed to be a protocol anyway, not just a program, another reimplementation (I don't know if CVSNT is a CVS descendant) will at least give the benefit of better documentation for the protocol...
Passing the course would have been easier for the student had they used OpenBSD to compile the software they audited...
The mplayer exploit for example is easy to find just by compiling using OpenBSD patched gcc that by default activate the -Wbounded warning that does bound checking on selected functions, read() being one of them. (no magic involved, attributes in includes says wether a parameter to a function is the size for a buffer, hence the include must be adapted for gcc being able to perform the check. gcc then can warn if he knows the size for the buffer (no dynamic alloc I'm afraid) and the if length passed is bigger). See gcc-local, the documentation on gcc extensions introduced by OpenBSD.
-Wbounded was written by OpenBSD's Anil Madhavapeddy and has not (yet?) been integrated to the gcc trunk, for God knows why reasons...
Unless you use NetBSD's somewhat arbitrary definition of a platform. Either way, Linux runs on more CPU architectures than NetBSD does.
Well, having support for the CPU is nice but each platform needs its bootloader, often specific system utilities (NVRAM manipulation, disk-partitionning...) and more importantly support for everything around the CPU (also kernel init is often slightly different depending on the platform, CPU being equal. Starting up a Mac68k and a Sun3 is not exactly done the same way).
e.g. a kernel supporting SPARC without supporting SBus and the common SBus peripherals (framebuffers, NICs) would be at best useless.
I really think the NetBSD definition of a platform is the right one, because having a kernel supporting your CPU don't mean you'll be able to run it on your computer using that CPU, or if it runs that you'll be able to do anything useful with it, because you may lack platform support.
You must be joking. It's not even true for the kernel (there are some forks, mostly for supporting more or less obscure platforms, but more so because some distribution patch the official kernel really heavily) but if you consider the complete Operating System then you must consider the distributions and not the kernel, and those everyone stopped to count long ago...
You also fail to take notice of the fact that even if the three major BSDs follow a different path there is still a very high level of blood mixing, a good thing appearing on one of them quickly make its way to the others, as well as countless bugfixes and small improvements.
Wrong : OpenBSD has sticked to its schedule of a release every 6 months (November 1 and May 1) since years, and the OpenBSD 3.6 release won't be any different (CD already started to ship to those who pre-ordered by the way).
The platter diameter in fast rotating disks have been smaller and smaller (thus explaining the not so great capacity compared to ATA drive that use full 3"5 platers, not rotating fast).
The common platter size went from 3"5 to 3" to 2"6 to 1"8, it was only a matter of time that they decided to package it in a smaller enclosure, the 1U market explains a lot...
See that very old review (Y2K) or that Seagate whitepaper (pdf) about why smaller is faster...
In a not posted version of my comment the interface was named Bar, but since we were speaking plugin I could as well call it Plugin.
And there was some issues with my R key, I meant "your" instead of "you" at least twice in the parent comment ;-)
Can't target implement an interface (e.g. in you example an interface named Plugin)? The code would become:
More readability, more performance. If plugins for you application can implements many different optionnal functionnalities just define more interfaces...
Really you seem to have serious design problem... Almost the only case introspection is needed for something else than a debugger or some other programmer helping tool is when you don't know the name of the method to invoke, e.g. the JUnit case where it will invoke all method named testSomething() returning void and taking no params.
If you already know the method's name, make it part of an interface and your life will be easier. I'd be interrested to know why you need introspection in your case.
They added a Montgomery multiplier on their chip recently. Useful to implement fast RSA.
For an American programmer to be paid $60k/year for what an Indian is willing to do for $8k/year...
Choose your poison, you can't have it both ways...
Birds are likely an ofshoot of dinosaurs, but...
Pterosaurs weren't even dinosaurs...They are extinct without descendant....
It's not exactly like there are 2^8192 8192 bits RSA keys, because, well, they have a little structure. Not only product of two primes but in order to achieve the rigt level of security product of two 4096 bit primes. So we are really well under 2^8192 here. I don't have numbers at hand for 8192 but to achieve 128 bits of security you must use 1620 bit long RSA keys (from http://www.rsasecurity.com/rsalabs/node.asp?id=208 8).
Extrapolating from here you 8192bit RSA key is likely at most "only" as expensive to crack as a 1024 symetric key.
But using that kind of key is really having CPU to spare, it is beyond pananoia and well into moronism.
Flash memory has a write limit per cell of memory, not per memory card. And those days it's more like a million write per cell that 100,000.
And Linux with PaX too.
Raising kids on junk food finally made its effect
http://news.bbc.co.uk/2/hi/health/3625031.stm
And that you still need to handle differently each style of image capturing technology... If DNG doesn't lose any info, that's it... RAW from the captor is a different thing from without using lossy compression...
It's like saying TIFF is a format, it isn't. More of a metaformat and handling one kind does not mean much for your ability to read others, ergo not really a format, but a container...
That there is more than bit depth that vary. Bayer based camera and Foveon based are so different that they can't really share a format...
That's a family thing, his father Yves Rocard was the father of the French atomic bomb (dual PhD maths and physics, really smart guy). His son becoming a top state servant must have been almost a disappointment.
The very fixed IP of one of my MXs ended up on a Dialup List. They were cool about removing it thought...
From every person that I know that got the "privilege" to meet RMS in person the expression "smelling nice" usually is not in their description...
Neither is "smelling like the wino down the street" but still...
What about
static void init(); static void cleanup();
This is very common to have utility functions in a .c file and to not want them cluttering the namespace. This kind of perfectly valid construct would obviously not work includin,g .c files if ther is any symbol collision. And since in C symbols are lookd up only on name and not on type or signature differing args could not save you...
Guillermito is a biologist...
Someone yelling "fire!" in a crowded theater is trying to get people hurt, this guy wasn't.
And frankly I doubt the story of the temporary blinded pilot, it's hard enough to keep a laser pointer to a small target a few feet away keeping focused on a moving plane a few thousands yard away is just not doable handheld...
What kind of message would that be... Time to start shooting cop on sight?
Show me that guys victims, if he get any jail time then truely the US is not a democracy anymore...
Can you honestly say that you understand what is does? I tried and al I got was a headache...
The sad fact is that it's likely more work to get into CVS than to rewrite one cleanly.
It is supposed to be a protocol anyway, not just a program, another reimplementation (I don't know if CVSNT is a CVS descendant) will at least give the benefit of better documentation for the protocol...
Passing the course would have been easier for the student had they used OpenBSD to compile the software they audited...
The mplayer exploit for example is easy to find just by compiling using OpenBSD patched gcc that by default activate the -Wbounded warning that does bound checking on selected functions, read() being one of them. (no magic involved, attributes in includes says wether a parameter to a function is the size for a buffer, hence the include must be adapted for gcc being able to perform the check. gcc then can warn if he knows the size for the buffer (no dynamic alloc I'm afraid) and the if length passed is bigger). See gcc-local, the documentation on gcc extensions introduced by OpenBSD.
-Wbounded was written by OpenBSD's Anil Madhavapeddy and has not (yet?) been integrated to the gcc trunk, for God knows why reasons...
Well, having support for the CPU is nice but each platform needs its bootloader, often specific system utilities (NVRAM manipulation, disk-partitionning...) and more importantly support for everything around the CPU (also kernel init is often slightly different depending on the platform, CPU being equal. Starting up a Mac68k and a Sun3 is not exactly done the same way).
e.g. a kernel supporting SPARC without supporting SBus and the common SBus peripherals (framebuffers, NICs) would be at best useless.
I really think the NetBSD definition of a platform is the right one, because having a kernel supporting your CPU don't mean you'll be able to run it on your computer using that CPU, or if it runs that you'll be able to do anything useful with it, because you may lack platform support.
You must be joking. It's not even true for the kernel (there are some forks, mostly for supporting more or less obscure platforms, but more so because some distribution patch the official kernel really heavily) but if you consider the complete Operating System then you must consider the distributions and not the kernel, and those everyone stopped to count long ago...
You also fail to take notice of the fact that even if the three major BSDs follow a different path there is still a very high level of blood mixing, a good thing appearing on one of them quickly make its way to the others, as well as countless bugfixes and small improvements.
Wrong : OpenBSD has sticked to its schedule of a release every 6 months (November 1 and May 1) since years, and the OpenBSD 3.6 release won't be any different (CD already started to ship to those who pre-ordered by the way).
The platter diameter in fast rotating disks have been smaller and smaller (thus explaining the not so great capacity compared to ATA drive that use full 3"5 platers, not rotating fast).
The common platter size went from 3"5 to 3" to 2"6 to 1"8, it was only a matter of time that they decided to package it in a smaller enclosure, the 1U market explains a lot... See that very old review (Y2K) or that Seagate whitepaper (pdf) about why smaller is faster...
Plenty of boxes ship with modified embedded Linux without the sources, if you ask the sources you are laughed at.
Try to get the kernel modification for Check Point SecurePlatform for example.
Your point is moot as the GPL is just not respected...