Having worked on the AEGIS Weapon's System (the computer system that controls naval destroyers) I can say with a great deal of certainity that this is bullshit.
The captain controls the ship from the CEC and all the equipment in the CEC is massive. The thing is, there are about a dozen operators required to control the ship. It's not something that one person can do off of a PDA.
Now, ships do have connections to the outside world. Mostly used for email and such. This connection is physically isolated from the rest of the ships computer systems. The wireless is simply for internet access. It's just so the captain can get his email off the toliet.
Can we get the turnkey single-channel Linux PVR first?:-)
Word to developers - what you've done so far is great, but if you want to unseat MSFT, you've gotta make it so that Grandma can install it.
Am I not the only one who absolutely hates these patronizing comments? They are just so typical from users of free software that wish to contribute nothing yet do nothing but pester for features. I take it the above poster has posted many a time to developer lists or developer IRC channels the "HELP! IT DOESN'T WORK" posts without reading any of the docus or anything.
Well, here's a bit of a news flash: OS developers do not give a rat's ass about unseating MSFT (why you have to use the stock symbol, I do not know). We like to code! That's it. For most of us, it's not any kind of religious thing. Sure, we want people to use the software and benefit from it, but we personally care less if Grandma (or you for that matter) can install it without doing any sort of due diligence.
User Interfaces are a myth. The Windows interface is only intuitive because they give you no other choice than to learn it. OS developers give you an option not to use it, and you bitch because it doesn't behave exactly as MS's version does. If you really care, either 1) do it yourself or 2) send someone else money to do it if you don't have the skills.
BTW: As far as I'm concerned, mocking script kiddie speak is just as bad as speaking it.
First off I'm not sure whether to give this any weight. We have an article quoting a guy who doesn't even claim to have much inside knowledge about what is going on. The only thing I can throw in is that the head of Microsoft language development is looking for languages that handle niche problems much better than high performance general purpose languages even at the cost of drastically reduced performance;
Am I the only one that notices the irony of you saying this guy has no basis to make such claims when you in fact are making more claims when you also have no basis?:)
C is a great language in terms of performance, its a terrible language in terms of just about everything else:
I would argue this for a lot of reasons. Namely, the simply fact that C's only form of code organization is functions which are inherently expensive to call (ignore inline for the moment since its new to C99). Also, recursive algorithms often have to be rethought since C-recursive is very expensive.
write_to_file(filename,(data_structure_dump(docume nt_data_structure)); Where data_structure_dump was generic (like Perl's datadumper) and part of the language.
As oppossed to:
ofstream(filename) << docnt_data_struct;
In C++, every data structure can specialize the ostream insertion operator and get the above for free. If you really wanted to get a default (which for most structures is utterly useless), simply inherent from a common base class.
Finally this is a minor point but C, C++ and JAVA all have terrible terrible string manipulation. Why can't they have native to_data("Jan 1, 1983") or at least have: string a = string("76" + 23)// a = "7623" int x = int("76" + 23);// x = 99
Umm, its called boost::lexical_cast() or boost::date();
As for the second examples, that's just ambiguous. Try:
std::string a = std::string("76") + boost::lexical_cast(23); int x = boost::lexical_cast("76") + 23;
What you are arguing for, is a weakly typed language that assumes the programmer is never going to do anything interesting. Anyone who's tryed to develop a reasonably sized project in such a language knows better.
And BTW, regardding this comment:
the same way that Visual Basic opened people's mind to event driven programming.
Event driven paradigms where driven simply because MS implemented Win31 with that model (long before VB ever existed). Event driven paradigms are absolutely horrible. Managing more than one thing via events is terribly difficult.
Signal/slots are a much more compelling model. MS is already caused enough damage to the programming community, I can just imagine what will come next...
Now, this particular site probably marks up a little not to mention that you could find all this stuff on sale. Moreover, most of the above (including the VIA board and case) are available at brick-and-mortor shops today. In fact, I've been eying a VIA board over at Fry's for the past month or two.
All in all, I really don't see the value-add that this would offer. With the GeForce card, one could probably play most PC games too.
Typically the clinical definitions of when any signs of a pyschological disorder becomes a "problem" is if the disorder leads to a decreased quality of life and persists for 6 months.
See HeapAlloc and friends in Win32 for proper implementation.
At any rate, there are better ways to make sure one never leaks memory problems:
1) always set a freed pointer to 0. Most architectures have a predictable behavior in dereferencing a 0 (throws an exceptions).
2) Limit all malloc/free pairs to the same function. If a function just has to allocate and return some buffer, give it a meaningful name to that effect and all a corresponding free version. Then, you can follow the above rule.
3) assert()s are your friend. Use them religiously. They can always be shut off.
4) Use memory tracking software (purify) before ship.
Yes, it's easier to shoot yourself in the foot with C, but you'll gain a huge performance increase. It's all about using the right tool for the right job.
You see, the existance of swap is merely because RAM is costly. A RAM drive for the purpose of swap doesn't make sense because one could simply just add more RAM to one's system and disable swap.
Now, having two types of RAM (a bunch on a faster bus--say DDR, and then a bunch more on a slower bus like PC100) would be rather interesting... It may not be as cost effective as it would seem but it would allow for some interesting caching algorithms.
Good point... Although, one has to imagine that this would be a fatal flaw of the weapon.
If it takes a few seconds to heat up, then it's reasonable to implement a mechanism in the missle to detect heat and to do something to subvert the lazer. Presumably, the lazer is going to be difficult to aim (or at least lock in on) as you need ultra-fine precision when dealing with such small angles over a large distance.
A simply mechanism to throw the missle randomly off course and then correct should wreck havoc on this weapon...
I'm suprised no one else caught this. The initial description of "concentrated light energy photons" made me a little wary, but then I noticed:
"the laser tracked, locked onto and fired a burst of concentrated light energy photons at the speeding shell... Seconds later, at a point well short of its intended destination, the projectile was destroyed"
I dunno what kind of crazy trajectory that laser had, but at 300km a second, this thing must have been pretty darn far away...
One would think that "instantly, the projectile was destroyed" would sound even better--and more importantly, have been accurate.
Having worked on Active Directory interoperability in Linux along with giving a presentation at the recent CIFS conference on the topic, I can speak to this issue with a certain degree of confidence.
My understand of the OS X client is that it doesn't contain true Active Directory client support. Instead, it relies on the fact that most AD installations are in mixed-mode where they still accept old client logins. In fact, only the bleeding edge versions of Samba actually support true Active Directory client login as it erquires some pretty obscure protocols that only recently have been understood (LDAP over UDP and other various nonsense).
Chances are, your network is in native-mode. That would kill your chances of using the native OS X CIFS clients (although Samba should allow you to access network resources if you use a beta 3.0 version).
Nah, this is South Jersey. North and South Jersey have very different accents. The Northern accent is derived from a New York accent whereas the Southern accent is derived from a Philadephia accent.
The canonical word for the South is wooder (water).
I agree with you to a certain extent, however a user of a piece of software is just that, a user.
Yes, but that is the misconception; that free software is the same as a piece of commerical software.
It's like being in a development environment and working on a tool with a bunch of other developers. It reaches a point where it's reasonably stable and one may start using it beyond just testin. One would do so though entirely at his own discretion. He would never think of complaining that it doesn't work.
There is the weird notion that with Open Source software, there is such a thing as users and developers and that the users are somehow customers to the developers.
Anyone who uses a piece of Open Source software is a developer of that software. It's the nature of Open Source software. That's the price you pay for using the software. The "user" is just as responsible for product quality as the author.
Keep this in mind when you want to submit a bug report. If you take a consumer mentality and simply say, "Feature x doesn't work like feature y does in program z," you will be ignored; as you deserve to be.
Instead, try to do the most you can do to fix the problem. Isolate the problem, figure out what are all the constraints that it occurs under. If you have worked with code before, take a look at the code and see what's going on. Then once you've reached your limit, if the problem still isn't fixed, transition what you've learned to another developer.
The last thing you should ever do is send a frantic "URGENT" bug-report.
No, unfortunately I think they're just for IBM publicity... They are made as T-Shirts and have a big penguin head on the front (white shirt, black images) and then the Peace, Love, and Linux.
Try contacting your local IBM Linux Technology Center and see if someone can help you out.
To begin with, tridge is a great guy--having the pleasure of working with him recently--and I'm glad to see some press about him because it's well deserved.
The SMB is a standard protocol (originally designed and created by IBM). SMB is merely a pipe and messaging mechanism (sort of like IPC for networks). CIFS is an RPC mechanism that sits on top of SMB. The SNIA workgroup has published a standard for CIFS that Microsoft has contributed to.
Unfortunately, one of the big problems is that if the Windows implementation is broken, everyone else has to be too. Furthermore, Windows is always adding new calls to CIFS that of course are undocumented.
Samba is not an emulator. It is as much of a CIFS server as a Windows machine is.
To support your point you will need to show that NO portion of the DMCA is making you "the agent of injustice to another".
To be the agent of injustice to another, one must take part in voliating that individuals natural rights. Natural rights include life, liberty, and the security in possession. To break a particular law, I would need to establish that by me _not_ breaking the law, I would have took away one of these things from another.
Security in possession is along the lines of search and seisure; not fair use.
"If you don't extend civil disobedience further then what the quote says, you also don't justify Martin Luther King's boycott of segregated busses."
Since when does boycotting a private industry have any relationship to breaking a law? I have no agreement or obligation with a busing company that I would be breaking by not partaking in their service.
What MLK did was a simple exercise in capitalism. It had nothing to do with civil disobedience.
So I think you are taking his quote on voting out of context (and I question the accuracy of the quote anyway as I cannot find it).
At any rate, this all breaks down to natural rights and the idea of individual preference as discussed by Mill. In society, the role of government is to protect individuals natural rights. That is the social contract. One obeys laws (regardless of personal opinion) because it is assumed that these laws will never be so bad that they violate natural rights. In the case they do, the social contract is broken and one is no longer obliged to follow the laws.
In Thoreau's case, he no longer considered the social contract intact because the natural rights of his fellow man were being violated.
The law is flawed, but government is also imperfect. We agree to follow imperfect laws to maintain order as long as these laws do not violate a self's natural rights.
If you read the quote I referenced more closely, you would notice the part referring to "the necessary friction of the machine of government." This is merely an example of the necessary friction of the machine of government.
The term civil disobedience was made popular through a speech by Henry David Thoreau which later influence MLK and Gandhi. Gandhi took a slightly different approach which he also gave a separate name.
The best way to explain civil disobedience is with the words of Thoreau himself:
"If the injustice is part of the necessary friction of the machine of government let it go, let it go; perchance it will wear smooth. Certainly, the machine will wear out. If the injustice has a spring or a pulley or a rope or a crank exclusively for itself, then perhaps you may consider whether the remedy is worse than the evil. But if it is of such a nature that it requires you to be the agent of injustice to another then I say break the law. Let your life be a counter-friction to stop the machine. What I must do is to see, at any rate, that I do not lend myself to the wrong which I condemn."
Obviously, not being able to copy movies surely doesn't constistute as making you "the agent of injustice to another." Instead of breaking the law, go out and vote for god's sake. How many of everyone hear complaining has 1) voted in the previous presidental and congressional elections and 2) attempted to educate fellow voters about the evils of laws like this?
If you really care, do something about it. Don't try to pretend that you are doing something about it by breaking the law.
The problem in reality is that most resumes are reviewed for language experience and not conceptual areas.
I sort of agree with your sentiment that a learning a particular language is trivial once one learns the concepts of software engineering.
To become an expert in a language though, is a non-trivial task. In the real world, it is very important to have a good amount of experience in a particular language. Simply knowing certain design patterns is not enough because each language has it's own traits that affect which patterns should be used.
From a software engineering standpoint, a project should be architected in two completely different ways depending on whether its being implemented in Java or C++. Why? Each language allows for a different degree of object orientedness.
OpenDirectory is more akin to ADSI in that it is an abstraction for accessing resources within a directory. It still relies on OpenLDAP for X.500 directory stuff.
While not really announced yet, there's been a lot of talk about future integration of various components to create a much better open source directory services offering. Keep an eye on Samba and IBM in the future.
Having worked on the AEGIS Weapon's System (the computer system that controls naval destroyers) I can say with a great deal of certainity that this is bullshit.
First of all, crew size is not being reduced on destroyers. The navy just awarded a contract called DD(x). This new generation of warship's are much smaller (hence--smaller crew size) and meant for latorial battle (close to shore).
The captain controls the ship from the CEC and all the equipment in the CEC is massive. The thing is, there are about a dozen operators required to control the ship. It's not something that one person can do off of a PDA.
Now, ships do have connections to the outside world. Mostly used for email and such. This connection is physically isolated from the rest of the ships computer systems. The wireless is simply for internet access. It's just so the captain can get his email off the toliet.
because of the increase in obesity? shouldn't we be borrowing the Naval physical training regime instead of their technology?
;-)
What's the use of technology if it doesn't let us be lazy
I just finished installing the new bios...
:-(
It only outputs PAL right now. So all those in the states are SOL.
Including me
Can we get the turnkey single-channel Linux PVR first? :-)
Word to developers - what you've done so far is great, but if you want to unseat MSFT, you've gotta make it so that Grandma can install it.
Am I not the only one who absolutely hates these patronizing comments? They are just so typical from users of free software that wish to contribute nothing yet do nothing but pester for features. I take it the above poster has posted many a time to developer lists or developer IRC channels the "HELP! IT DOESN'T WORK" posts without reading any of the docus or anything.
Well, here's a bit of a news flash: OS developers do not give a rat's ass about unseating MSFT (why you have to use the stock symbol, I do not know). We like to code! That's it. For most of us, it's not any kind of religious thing. Sure, we want people to use the software and benefit from it, but we personally care less if Grandma (or you for that matter) can install it without doing any sort of due diligence.
User Interfaces are a myth. The Windows interface is only intuitive because they give you no other choice than to learn it. OS developers give you an option not to use it, and you bitch because it doesn't behave exactly as MS's version does. If you really care, either 1) do it yourself or 2) send someone else money to do it if you don't have the skills.
BTW: As far as I'm concerned, mocking script kiddie speak is just as bad as speaking it.
std::string a = std::string("76") + boost::lexical_cast(23);
int x = boost::lexical_cast("76") + 23;
Note: that lexical_cast should be boost::lexical_cast<int>("76"). HTML is surely not C++ friendly...
First off I'm not sure whether to give this any weight. We have an article quoting a guy who doesn't even claim to have much inside knowledge about what is going on. The only thing I can throw in is that the head of Microsoft language development is looking for languages that handle niche problems much better than high performance general purpose languages even at the cost of drastically reduced performance;
:)
e nt_data_structure));
// x = 99
Am I the only one that notices the irony of you saying this guy has no basis to make such claims when you in fact are making more claims when you also have no basis?
C is a great language in terms of performance, its a terrible language in terms of just about everything else:
I would argue this for a lot of reasons. Namely, the simply fact that C's only form of code organization is functions which are inherently expensive to call (ignore inline for the moment since its new to C99). Also, recursive algorithms often have to be rethought since C-recursive is very expensive.
write_to_file(filename,(data_structure_dump(docum
Where data_structure_dump was generic (like Perl's datadumper) and part of the language.
As oppossed to:
ofstream(filename) << docnt_data_struct;
In C++, every data structure can specialize the ostream insertion operator and get the above for free. If you really wanted to get a default (which for most structures is utterly useless), simply inherent from a common base class.
Finally this is a minor point but C, C++ and JAVA all have terrible terrible string manipulation. Why can't they have native to_data("Jan 1, 1983") or at least have:
string a = string("76" + 23)// a = "7623"
int x = int("76" + 23);
Umm, its called boost::lexical_cast() or boost::date();
As for the second examples, that's just ambiguous. Try:
std::string a = std::string("76") + boost::lexical_cast(23);
int x = boost::lexical_cast("76") + 23;
What you are arguing for, is a weakly typed language that assumes the programmer is never going to do anything interesting. Anyone who's tryed to develop a reasonably sized project in such a language knows better.
And BTW, regardding this comment:
the same way that Visual Basic opened people's mind to event driven programming.
Event driven paradigms where driven simply because MS implemented Win31 with that model (long before VB ever existed). Event driven paradigms are absolutely horrible. Managing more than one thing via events is terribly difficult.
Signal/slots are a much more compelling model. MS is already caused enough damage to the programming community, I can just imagine what will come next...
- VIA EPIA 800 - $110.71
- 256MB PC133 - $46.53
- Cubid 2688R Mini-ITX Case - $94.67
- Toshiba Slimline 8X DVD - $136.38
Total: $388.29Plus, if you really want to soup up your machine you could add:
Now, this particular site probably marks up a little not to mention that you could find all this stuff on sale. Moreover, most of the above (including the VIA board and case) are available at brick-and-mortor shops today. In fact, I've been eying a VIA board over at Fry's for the past month or two.
All in all, I really don't see the value-add that this would offer. With the GeForce card, one could probably play most PC games too.
http://www.rational.com/products/pqc/pplus_lx.jsp
Typically the clinical definitions of when any signs of a pyschological disorder becomes a "problem" is if the disorder leads to a decreased quality of life and persists for 6 months.
See HeapAlloc and friends in Win32 for proper implementation.
At any rate, there are better ways to make sure one never leaks memory problems:
1) always set a freed pointer to 0. Most architectures have a predictable behavior in dereferencing a 0 (throws an exceptions).
2) Limit all malloc/free pairs to the same function. If a function just has to allocate and return some buffer, give it a meaningful name to that effect and all a corresponding free version. Then, you can follow the above rule.
3) assert()s are your friend. Use them religiously. They can always be shut off.
4) Use memory tracking software (purify) before ship.
Yes, it's easier to shoot yourself in the foot with C, but you'll gain a huge performance increase. It's all about using the right tool for the right job.
This sort of defeats the purpose of swap :)
You see, the existance of swap is merely because RAM is costly. A RAM drive for the purpose of swap doesn't make sense because one could simply just add more RAM to one's system and disable swap.
Now, having two types of RAM (a bunch on a faster bus--say DDR, and then a bunch more on a slower bus like PC100) would be rather interesting... It may not be as cost effective as it would seem but it would allow for some interesting caching algorithms.
Good point... Although, one has to imagine that this would be a fatal flaw of the weapon.
If it takes a few seconds to heat up, then it's reasonable to implement a mechanism in the missle to detect heat and to do something to subvert the lazer. Presumably, the lazer is going to be difficult to aim (or at least lock in on) as you need ultra-fine precision when dealing with such small angles over a large distance.
A simply mechanism to throw the missle randomly off course and then correct should wreck havoc on this weapon...
I'm suprised no one else caught this. The initial description of "concentrated light energy photons" made me a little wary, but then I noticed:
"the laser tracked, locked onto and fired a burst of concentrated light energy photons at the speeding shell... Seconds later, at a point well short of its intended destination, the projectile was destroyed"
I dunno what kind of crazy trajectory that laser had, but at 300km a second, this thing must have been pretty darn far away...
One would think that "instantly, the projectile was destroyed" would sound even better--and more importantly, have been accurate.
Having worked on Active Directory interoperability in Linux along with giving a presentation at the recent CIFS conference on the topic, I can speak to this issue with a certain degree of confidence.
My understand of the OS X client is that it doesn't contain true Active Directory client support. Instead, it relies on the fact that most AD installations are in mixed-mode where they still accept old client logins. In fact, only the bleeding edge versions of Samba actually support true Active Directory client login as it erquires some pretty obscure protocols that only recently have been understood (LDAP over UDP and other various nonsense).
Chances are, your network is in native-mode. That would kill your chances of using the native OS X CIFS clients (although Samba should allow you to access network resources if you use a beta 3.0 version).
Nah, this is South Jersey. North and South Jersey have very different accents. The Northern accent is derived from a New York accent whereas the Southern accent is derived from a Philadephia accent.
The canonical word for the South is wooder (water).
I agree with you to a certain extent, however a user of a piece of software is just that, a user.
Yes, but that is the misconception; that free software is the same as a piece of commerical software.
It's like being in a development environment and working on a tool with a bunch of other developers. It reaches a point where it's reasonably stable and one may start using it beyond just testin. One would do so though entirely at his own discretion. He would never think of complaining that it doesn't work.
There is the weird notion that with Open Source software, there is such a thing as users and developers and that the users are somehow customers to the developers.
Anyone who uses a piece of Open Source software is a developer of that software. It's the nature of Open Source software. That's the price you pay for using the software. The "user" is just as responsible for product quality as the author.
Keep this in mind when you want to submit a bug report. If you take a consumer mentality and simply say, "Feature x doesn't work like feature y does in program z," you will be ignored; as you deserve to be.
Instead, try to do the most you can do to fix the problem. Isolate the problem, figure out what are all the constraints that it occurs under. If you have worked with code before, take a look at the code and see what's going on. Then once you've reached your limit, if the problem still isn't fixed, transition what you've learned to another developer.
The last thing you should ever do is send a frantic "URGENT" bug-report.
No, unfortunately I think they're just for IBM publicity... They are made as T-Shirts and have a big penguin head on the front (white shirt, black images) and then the Peace, Love, and Linux.
Try contacting your local IBM Linux Technology Center and see if someone can help you out.
To begin with, tridge is a great guy--having the pleasure of working with him recently--and I'm glad to see some press about him because it's well deserved.
The SMB is a standard protocol (originally designed and created by IBM). SMB is merely a pipe and messaging mechanism (sort of like IPC for networks). CIFS is an RPC mechanism that sits on top of SMB. The SNIA workgroup has published a standard for CIFS that Microsoft has contributed to.
Unfortunately, one of the big problems is that if the Windows implementation is broken, everyone else has to be too. Furthermore, Windows is always adding new calls to CIFS that of course are undocumented.
Samba is not an emulator. It is as much of a CIFS server as a Windows machine is.
To support your point you will need to show that NO portion of the DMCA is making you "the agent of injustice to another".
To be the agent of injustice to another, one must take part in voliating that individuals natural rights. Natural rights include life, liberty, and the security in possession. To break a particular law, I would need to establish that by me _not_ breaking the law, I would have took away one of these things from another.
Security in possession is along the lines of search and seisure; not fair use.
"If you don't extend civil disobedience further then what the quote says, you also don't justify Martin Luther King's boycott of segregated busses."
Since when does boycotting a private industry have any relationship to breaking a law? I have no agreement or obligation with a busing company that I would be breaking by not partaking in their service.
What MLK did was a simple exercise in capitalism. It had nothing to do with civil disobedience.
So I think you are taking his quote on voting out of context (and I question the accuracy of the quote anyway as I cannot find it).
At any rate, this all breaks down to natural rights and the idea of individual preference as discussed by Mill. In society, the role of government is to protect individuals natural rights. That is the social contract. One obeys laws (regardless of personal opinion) because it is assumed that these laws will never be so bad that they violate natural rights. In the case they do, the social contract is broken and one is no longer obliged to follow the laws.
In Thoreau's case, he no longer considered the social contract intact because the natural rights of his fellow man were being violated.
The law is flawed, but government is also imperfect. We agree to follow imperfect laws to maintain order as long as these laws do not violate a self's natural rights.
If you read the quote I referenced more closely, you would notice the part referring to "the necessary friction of the machine of government." This is merely an example of the necessary friction of the machine of government.
The term civil disobedience was made popular through a speech by Henry David Thoreau which later influence MLK and Gandhi. Gandhi took a slightly different approach which he also gave a separate name.
The best way to explain civil disobedience is with the words of Thoreau himself:
"If the injustice is part of the necessary friction of the machine of government let it go, let it go; perchance it will wear smooth. Certainly, the machine will wear out. If the injustice has a spring or a pulley or a rope or a crank exclusively for itself, then perhaps you may consider whether the remedy is worse than the evil. But if it is of such a nature that it requires you to be the agent of injustice to another then I say break the law . Let your life be a counter-friction to stop the machine. What I must do is to see, at any rate, that I do not lend myself to the wrong which I condemn."
Obviously, not being able to copy movies surely doesn't constistute as making you "the agent of injustice to another." Instead of breaking the law, go out and vote for god's sake. How many of everyone hear complaining has 1) voted in the previous presidental and congressional elections and 2) attempted to educate fellow voters about the evils of laws like this?
If you really care, do something about it. Don't try to pretend that you are doing something about it by breaking the law.
The problem in reality is that most resumes are reviewed for language experience and not conceptual areas.
I sort of agree with your sentiment that a learning a particular language is trivial once one learns the concepts of software engineering.
To become an expert in a language though, is a non-trivial task. In the real world, it is very important to have a good amount of experience in a particular language. Simply knowing certain design patterns is not enough because each language has it's own traits that affect which patterns should be used.
From a software engineering standpoint, a project should be architected in two completely different ways depending on whether its being implemented in Java or C++. Why? Each language allows for a different degree of object orientedness.
No, this is a little different.
OpenDirectory is more akin to ADSI in that it is an abstraction for accessing resources within a directory. It still relies on OpenLDAP for X.500 directory stuff.
While not really announced yet, there's been a lot of talk about future integration of various components to create a much better open source directory services offering. Keep an eye on Samba and IBM in the future.