Linux is in spirit a monolithic design, and MacOS is in spirit a mach-based microkernel design.
In reality, though, both MacOS X and Linux have departed from the architectures in mostly pragmatic ways. OS X is not a "pure" microkernel in the mach sense.
Good question. Unfortunately, what constitutes "good" depends a great deal on what the system is.
Assuming that you have a separate set of requirements in some form, a set of design documentation should answer questions like this:
How is the software structured, at a high level? What are the logical pieces, the chunks of functionality that make up system behavior? What are the languages / platforms used?
How is the software physically structured? What does it "look like" when deployed?
What are the key points of contact between components and systems? How are they integrated (API, protocol, etc...)?
How are the core business requirements implemented? Which components collaborate to implement key algorithms?
How do the logical layers of the system fit together?
What additional technical requirements surfaced when creating a design to meet the business requirements? How did these technical requirements constrain the design?
Were are the data stored and in what format? Database schemas, XML schemas, etc...
What surprises surfaced during design? Why were key design decisions made, particularly where something was implemented in a more complex way than would seem necessary?
Are there any sample data that will help explain the system behavior?
Additional technical documentation for the problem domain (e.g. hardware interfaces, non-standard protocols, etc...).
My bias is that structure and interaction is best described with UML. My preference for technical documentation is a word doc that walks technical staff through key points of the model, with snippets of the model incorporated into the document. The word docs and the UML models work together to specify the system. This depends a great deal on the kind of software you are designing. A three-tier Java system will reqire quite different documentation than a COM-based desktop app. Some documentation just doesn't apply to one or the other.
UML is best kept at an analysis or logical level; in most cases, code is its own best physical documentation.
Assuming the system has a reasonable set of UML diagrams describing the structure and dynamic behavior, a walk-through document with good explanations can make things a lot clearer.
That is exactly what they are saying. This camera produces images of similar quality to 120 film. Depending on how you calculate resolution, 120 film may score higher. But side-by-side comparisons of actual captured detail is very, very close.
I think it would be fascinating to see an honest, relatively unbiased study of the quality of work in a domestic vs. offshore development team.
Look at the differences in process, communication with the client, code quality, documentation and specification, ability to hit deadlines, etc...
Contrast that information with the difficulty of the project at hand.
I suspect that a good outsourcing company would have far better process and documentation than the domestic team, but that the US developers would manage clients better, and would be able to react more quickly to changes or ambiguity.
My experience with US developers is that they are dedicated hard-working people, but are often underskilled and undereducated (leftovers from the dot-com days), and are often very poorly managed. My experience with outsourcers is that they are very smart and have excellent process, but are terribly rigid and lack some common sense.
I'd love to see a pointer to this project once finished.
Ansel Adams would, without a doubt, love what is going on with digital. He was a total photography geek. He was always trying the newest camera, lens, film, meter, and darkroom technique, and he loved sharing the things he learned with his students.
Stop into a good book store and flip through The Camera and The Negative, two of his books. He had an inquisitive, scientific mind, and deeply understood the chemistry of development and the physics of light. He is the prototypical hacker, focusing on photography.
While he was ultimately concerned with creating a print of the utmost quality, he was not the least bit conservative in his tools or technique.
Ansel Adams would have been first on line for each new generation of digital camera.
Microsoft has a huge push going on in education. Campus reps, steep tool discounts, and curriculum suggestions to get Microsoft technology into undergrad and grad school course materials. Ask any CS professor what kind of contact they've had with Microsoft reps.
Java and Linux have become very large forces in education. Java has very nearly become the de facto teaching language, and Linux has become a popular instruction platform. Microsoft is trying very hard to counter this motion with C# and the.Net runtime.
Several commercial UNIXen have management consoles that allow you to commit and roll back changes made to a system. Sort of configuration management at the system level.
Others have better resource control, with nice tools to restict users to certain levels of resource usage (memory, CPU, etc...).
More advanced logical volume management (though Linux is catching up here).
Through acquisition, Symantec has access to several firms that have deployed "sensors" in many locations around the 'net. These sensors relay actvity information back to a central location.
Symantec correlates this information, and determines threats. They then relay this information to customers of the subscription service.
Geeks can be complete slobs, lacking even basic hygiene and fashion sense.
Having people dress acceptably for work is a sign of respect. It also weeds out the morons. Save the occasional odd genius (which, if you are reading this, you are not), requiring a clean appearance with matching colors weeds out the multitude of borderline retarded MCSE / Visual Basic developers wandering aimlessly in the world, writing crappy code.
If people aren't able to dress with some semblance of style, they should go work somewhere else, somewhere less demanding (would you like fries with that?).
Ximian's installer is, indeed, quite slick. What seems to be ignored, though, is that I upgrade my software far more often than do I perform clean installs.
Ximian does a great job of pushing out periodic updates and upgrades, but no one seems to handle major upgrades (e.g. RedHat 6.2->7.0, SuSe 7->8) well, except for Debian and some of the BSDs. A major upgrade leaves all kind of binary cruft all over the place, and tend to screw up configuration files. Yuck.
I hope that after getting in initial installs correct, Ximian and the distribution companies turn their attention to making upgrades smooth.
One nice start would be to move to a common, structured configuration file format, perhaps a set of XML schemas / DTDs. That would make transformations from version to version a bit easier.
Decide early if you want a trade, or a career in the tech industry.
College will give you an opportunity to think, learn, and develop research skills. Certification won't teach you anything.
I don't want anyone working for me who just knows how to be a sys admin. I want thinkers, people who understand that systems exist to benefit the business. Just about anyone can learn what it takes to be a good admin; not everyone can learn to think.
Technology is not the end; certifications and trade school won't teach you that.
If you are in the New York City area, an organization that I help run, Voluntech, might interest you. We are a technical volunteering group, seeking to provide assitance to community-based organizations that can't afford Wall Street-rate consultants or staff. We provide free technical assistance for any non-profit, school, etc... There are many others, including Compumentor, TechCorps, NY Connects, that do similar things.
I'm not sure that XNU is like Monsanto, but I'd sure like to see that interpretive dance. Might even slip a fiver in your G-string.
Linux is in spirit a monolithic design, and MacOS is in spirit a mach-based microkernel design.
In reality, though, both MacOS X and Linux have departed from the architectures in mostly pragmatic ways. OS X is not a "pure" microkernel in the mach sense.
Block Google and news sites, but let hack attempts and spam right through. Thanks a lot, China.
Good question. Unfortunately, what constitutes "good" depends a great deal on what the system is.
Assuming that you have a separate set of requirements in some form, a set of design documentation should answer questions like this:
My bias is that structure and interaction is best described with UML. My preference for technical documentation is a word doc that walks technical staff through key points of the model, with snippets of the model incorporated into the document. The word docs and the UML models work together to specify the system. This depends a great deal on the kind of software you are designing. A three-tier Java system will reqire quite different documentation than a COM-based desktop app. Some documentation just doesn't apply to one or the other.
UML is best kept at an analysis or logical level; in most cases, code is its own best physical documentation.
Assuming the system has a reasonable set of UML diagrams describing the structure and dynamic behavior, a walk-through document with good explanations can make things a lot clearer.
That is exactly what they are saying. This camera produces images of similar quality to 120 film. Depending on how you calculate resolution, 120 film may score higher. But side-by-side comparisons of actual captured detail is very, very close.
I think it would be fascinating to see an honest, relatively unbiased study of the quality of work in a domestic vs. offshore development team.
Look at the differences in process, communication with the client, code quality, documentation and specification, ability to hit deadlines, etc...
Contrast that information with the difficulty of the project at hand.
I suspect that a good outsourcing company would have far better process and documentation than the domestic team, but that the US developers would manage clients better, and would be able to react more quickly to changes or ambiguity.
My experience with US developers is that they are dedicated hard-working people, but are often underskilled and undereducated (leftovers from the dot-com days), and are often very poorly managed. My experience with outsourcers is that they are very smart and have excellent process, but are terribly rigid and lack some common sense.
I'd love to see a pointer to this project once finished.
Ansel Adams shot on 8x10, 4x5, 35mm, and other formats. He didn't focus on negative size, rather on using the correct format for the job at hand.
Ansel Adams would, without a doubt, love what is going on with digital. He was a total photography geek. He was always trying the newest camera, lens, film, meter, and darkroom technique, and he loved sharing the things he learned with his students.
Stop into a good book store and flip through The Camera and The Negative, two of his books. He had an inquisitive, scientific mind, and deeply understood the chemistry of development and the physics of light. He is the prototypical hacker, focusing on photography.
While he was ultimately concerned with creating a print of the utmost quality, he was not the least bit conservative in his tools or technique.
Ansel Adams would have been first on line for each new generation of digital camera.
What is that on his head?
Microsoft has a huge push going on in education. Campus reps, steep tool discounts, and curriculum suggestions to get Microsoft technology into undergrad and grad school course materials. Ask any CS professor what kind of contact they've had with Microsoft reps.
.Net runtime.
Java and Linux have become very large forces in education. Java has very nearly become the de facto teaching language, and Linux has become a popular instruction platform. Microsoft is trying very hard to counter this motion with C# and the
Management tools.
Several commercial UNIXen have management consoles that allow you to commit and roll back changes made to a system. Sort of configuration management at the system level.
Others have better resource control, with nice tools to restict users to certain levels of resource usage (memory, CPU, etc...).
More advanced logical volume management (though Linux is catching up here).
Through acquisition, Symantec has access to several firms that have deployed "sensors" in many locations around the 'net. These sensors relay actvity information back to a central location.
Symantec correlates this information, and determines threats. They then relay this information to customers of the subscription service.
This may be what they are referring to.
Geeks can be complete slobs, lacking even basic hygiene and fashion sense.
Having people dress acceptably for work is a sign of respect. It also weeds out the morons. Save the occasional odd genius (which, if you are reading this, you are not), requiring a clean appearance with matching colors weeds out the multitude of borderline retarded MCSE / Visual Basic developers wandering aimlessly in the world, writing crappy code.
If people aren't able to dress with some semblance of style, they should go work somewhere else, somewhere less demanding (would you like fries with that?).
Yes, you are correct. I should be careful what I say. I may lose my AOL privileges. That would be a disaster.
The Win32 / 8.0 version of the AOL client does use Gecko as the rendering engine.
Ximian's installer is, indeed, quite slick. What seems to be ignored, though, is that I upgrade my software far more often than do I perform clean installs.
Ximian does a great job of pushing out periodic updates and upgrades, but no one seems to handle major upgrades (e.g. RedHat 6.2->7.0, SuSe 7->8) well, except for Debian and some of the BSDs. A major upgrade leaves all kind of binary cruft all over the place, and tend to screw up configuration files. Yuck.
I hope that after getting in initial installs correct, Ximian and the distribution companies turn their attention to making upgrades smooth.
One nice start would be to move to a common, structured configuration file format, perhaps a set of XML schemas / DTDs. That would make transformations from version to version a bit easier.
Decide early if you want a trade, or a career in the tech industry.
College will give you an opportunity to think, learn, and develop research skills. Certification won't teach you anything.
I don't want anyone working for me who just knows how to be a sys admin. I want thinkers, people who understand that systems exist to benefit the business. Just about anyone can learn what it takes to be a good admin; not everyone can learn to think.
Technology is not the end; certifications and trade school won't teach you that.
Am I missing something? GNU / Darwin is the base OS in Apple's MacOS X; it is not linux.
Looks cool...
If you are in the New York City area, an organization that I help run, Voluntech, might interest you. We are a technical volunteering group, seeking to provide assitance to community-based organizations that can't afford Wall Street-rate consultants or staff. We provide free technical assistance for any non-profit, school, etc... There are many others, including Compumentor, TechCorps, NY Connects, that do similar things.