I've heard good things about using a company like Thoughtworks or Valtech for this kind of thing. They like to do mentoring too, so you can slowly build up your own team while building a product.
Since I am a Bank of America customer, I decided to go to their website to read their official statement about the breach. I was surprised to find no mention of the incident. There is a Privacy and Security section as well as a news room.
I recently learned that more than 670,000 bank customers may have had their account information stolen, and that at least 60,000 were customers of Bank of America. It is alarming that I can find no mention of the incident anywhere on your web site. It would be reassuring to hear an official company statement explaining the nature and the severity of the breach.
Here is the URL of the news article I read: http://money.cnn.com/2005/05/23/news/fortune500/ba nk_info/index.htm
If they reply with anything substantial I'll try to follow up here.
The Codehaus hosts a couple decent.NET projects, although it does have a heavy java bias at present. Neo is an entity persistence framework for.NET, and Boo is a new language for the CLI supporting things like macros and closures.
So we should be able to buy RPGs and Kalashnikovs and carry them around the streets? What about small nuclear devices? They're all arms, and there's no distinction in the Constitution as to what kind of arms.
I don't think a militia would have much of a chance without RPGs or similarly powerful weapons. Try to remember why our constitution included a provision for armed militia. These pressures were not unique to the 18th century.
He didn't just wave his hands and suggest that the Market will Cure All. He also mentioned his intention to place responsibility for corporate actions with the people who decided to take them. The consequences in your scenario would be jail time for some suits in upper management.
Many developers have strong convictions about which license they wish to use when releasing their code. However, I think that they'd often rather reuse and extend an existing library that does not use their license of choice than be burdened with re-implementing that functionality within their products or creating a new project with their license-of-choice. These kinds of incompatibilities encourage duplication of effort and discourage collaboration on many projects.
I often wonder whether this problem could be mitigated or even solved by some creative license language. I'd like to license my software in such a way that it could be reused by projects using any of a majority of the other open source licenses. Also, I'd like to modularize it so that it could take advantage of high quality software released under otherwise incompatible licenses.
Honestly, I just don't see a mass exodus from java nor the desperate moves by Sun (#1, #9) as likely scenarios.
I have no good arguments against Python's imminent dominance, except my personal experience with it. I am involved in quite a few open source java projects, and have also recently spent several hours looking into the source for moinmoin, an open source python wiki engine. Granted, my lack of python experience may color my judgment. Although there seems to be some OO design at work, the architecture appears to be mainly procedural. Perhaps I just need a different project to look at.
Not sure I'm with you on pass by value, it's already done with RMI/Serializable Objects for instance.
Big +1 on generics, I can't wait until 1.5! Also, Java 1.5 attributes will make themselves useful in some situations, but they are already here in several open source libraries.
I'd take C# as an option in a real solution (read: billable) only in two scenarios: 1. I have a MS only client (I do!) or 2. The open source community gets a lot more excited about it.
To elaborate, the fact that Java has such a rich open source landscape eclipses C#'s marginal feature wins. There has been a compiler supporting generics for quite a while now. Attributes and real AOP have several open source projects implementing them in different ways. These types of things are on the fringes of the java open source community.
There are so many mature java open source projects that provide real benefits to a programming team that I am about to be absolutely unfair by naming some. The C# community is a long way away from boasting these achievements.
Useful stuff for most or all projects
Apache Maven goes beyond build automation to provide open source project management, dependency management, documentation, code metrics, application server deloyment, and a lot more.
Hibernate provides true database independence and allows one to address persistence requirements independent of the object model
Apache's Jakarta Commons is a thriving community providing small useful components that end up being useful in more situations than you expect. Some of the components in here loosely correspond to more coarse-grained things in the Microsoft.NET Class Library. Examples: HttpClient, dbcp (database connection pooling), betwixt (System.Xml.Serialization)
Some much more coarse grained application components are around as well:
Drools provides a rules engine complete with a modification of the Rete algorithm for Objects
blissed is a workflow library based on finite state machines.
Apache
Cocoon is much more than an XML pipeline framework. It enables multi-format publishing and also serves as a web application framework.
As many programmers will protest, my list above is far from representative; also, it shows my Apache and Codehaus bias. My point is exactly that; not only is the list far from representative, most or all of the components I mentioned have competitors! The advantage this bestows on java over.NET is significant.
I do not mean to argue that java is the only language that enjoys these advantages; I hear CPAN is a boon to perl hackers, and I have the impression that there is a lot going on in the open source python world. My utter lack of experience with C/C++ prevents me from commenting on the similarity of that situation, but the existence of glibc suggests some open source activity.
In summary:.NET is young, and suffers from a lack of a thriving open source community.
I made the switch from Netbeans 3.4 to Eclipse 3.0M2 (which has some serious issues). I currently use Eclipse 3.0M6, and I probably program java 50+ hours a week (though not all of them are "in the flow"). There are a couple things that I absolutely love about Eclipse, but keep in mind I haven't seen Netbeans 3.5.
Refactoring tools, which is first on the list for a reason. I hope someone has written some for Netbeans by now, they are simply wonderful. One example, renaming a class or method can be done quickly and confidently without breaking your flow, and all references to it (even in non-java files) are updated!
Closely related, the semantically rich search features are great. You can locate all references to a particular method, class, field, or variable. You can jump directly to its declaration. You can quickly view the type hierarchy of a class. You can open a call hierarchy, which (I learned) is a tree of callers (who calls this method? Who calls those? etc.)
The way multiple Projects are handled. After I spent a few days reorganizing my projects for Eclipse, I can confidently say I liked Eclipse's way better. Since then, I have been able to segment my work into many small projects, where in Netbeans for some reason my projects were much fewer and more complex. It is possible that this change in my development strategy is due to Maven which I picked up about the same time.
Perspectives. I haven't really taken full advantage of this yet, but its a way to have presets for types of activities. You can switch to the CVS Repository perspective while hunting for a module, then to the Java perspective to code a while, then to the Debug perspective to step through something. You can also make your own, but I haven't used that.
Code assist and code formatting. I honestly don't remember what Netbeans had in this regard, but I have made plenty of use of the extensive configuration options for these. I customized my default javadoc all over the place, turned off automatic insertion of ) and }, and replaced all tabs with spaces. For open source stuff, you can customize these settings per project, for example to include the license at the top of every file.
For Maven users, the eclipse plugin automatically sets up your project's build path based on the project.xml dependencies, using the jars in your local repository. In comparison with my ant-based projects, this saves me plenty of tedious project maintenance when changing dependencies, especially just bumping a version number!
And no, I am not affiliated with Eclipse at all, unless you count posting a single bug report:)
I have been scouring the comments for the first person to point out this choice quote, since I am joining the discussion late. Whoever posed this question has absolutely no understanding of open source or what makes it successful.
Your response is well put, but I would also add that presumably the "participating vendors" are participating because they see the project as furthering their "business interests". It is important not to reverse that logic; if the project is not furthering your business interests, stop participating. From personal experience, the objectives of an open source project are set by the individuals doing the work. To paraphrase, if you want to set objectives, start coding and participate in the project.
Hey, Sun, here's an idea. You want plug-ins to work in several IDEs, try coding one. Instead of trying to hypothesize a "specification" for it, make an add-in and start trying to integrate it with IDEA, Eclipse, Netbeans, emacs, jEdit, and/or whatever else you feel like. Then, code another plug-in. Integrate it all around, and look for patterns. Perhaps you could even program your Eclipse adapter as an Eclipse plug-in!:)
I suppose the reason this letter aroused my interest to such an extent is that I am uncomfortable with people trying to get everyone else to do things their way instead of just doing things. Time spent evangelizing is valuable programming (or related activities) time wasted. If your idea is a good one, it will spread on its own merit. For example, take Eclipse and SWT.
You're not kidding. Sales and marketing has been the hardest part of my business, which is about to be four years old. Luckily, I started with a client and was able to sustain that business while I slowly gained others, mostly through word of mouth.
I set up shop in February 2000, and since then have gone from two business partners to none, re-incorporated once, moved 1200 miles, and changed my core business model several times.
Through it all, the only sure way to get business was word of mouth advertising. You simply have to maintain a reputation and talk to lots of people.
I'm not so sure we should be dancing in the streets just yet. The wording of the GPL can get pretty complex at times, and all we know is that they are distributing under a modified version of the GPL under which their claims are supported.
Perhaps they just changed the license on the files they think are theirs. Perhaps they added an extra clause to the GPL saying something to the effect that the linux codebase contains intellectual property owned by SCO. I can't see how that would violate the GPL in any way.
Anyone have access to the actual license? Does it force you not to show anyone else the text?
This matters because it is a much better way to do "karma". The usenet client would have access to an information repository about the people posting in a thread. You or I could then tell Mozilla to "filter out messages from spammers" or "filter out messages from flame warriors who post more than 5 times per day".
Honestly, I am more excited about this than paranoid about my privacy. I already knew that posting to usenet was giving away my e-mail address to thousands of spammers.
If MS eventually sells this as a web service, I would pay per use.
Re:Internal Pyramid Scheme?
on
Inside SAIC
·
· Score: 1
As a matter of fact, I would argue the opposite. Any experienced programmer who is not using a "framework" or thinking about design patterns is a hack who is shortchanging his management and/or customers. Without the "meta-coders" you so malign, the software industry would be in a much worse state than it already is.
Oh, and I am a committer on the Apache XML-RPC project, which is written in Java.
Also, read about Aspect oriented Programming, which "modularize[s] crosscutting aspects of a system" by allowing a programmer to specify "aspects" of a class or component such as logging, security, remotability, and more.
I've heard good things about using a company like Thoughtworks or Valtech for this kind of thing. They like to do mentoring too, so you can slowly build up your own team while building a product.
Since I am a Bank of America customer, I decided to go to their website to read their official statement about the breach. I was surprised to find no mention of the incident. There is a Privacy and Security section as well as a news room.
In the end I decided to ask them about it:
If they reply with anything substantial I'll try to follow up here.
How on earth does NotProud.com possibly relate to the topic of the book?!
The Codehaus hosts a couple decent .NET projects, although it does have a heavy java bias at present. Neo is an entity persistence framework for .NET, and Boo is a new language for the CLI supporting things like macros and closures.
Kind of like antivirus software? Or the pharmaceutical industry? :)
I don't think a militia would have much of a chance without RPGs or similarly powerful weapons. Try to remember why our constitution included a provision for armed militia. These pressures were not unique to the 18th century.
RTFA
He didn't just wave his hands and suggest that the Market will Cure All. He also mentioned his intention to place responsibility for corporate actions with the people who decided to take them. The consequences in your scenario would be jail time for some suits in upper management.
Many developers have strong convictions about which license they wish to use when releasing their code. However, I think that they'd often rather reuse and extend an existing library that does not use their license of choice than be burdened with re-implementing that functionality within their products or creating a new project with their license-of-choice. These kinds of incompatibilities encourage duplication of effort and discourage collaboration on many projects.
I often wonder whether this problem could be mitigated or even solved by some creative license language. I'd like to license my software in such a way that it could be reused by projects using any of a majority of the other open source licenses. Also, I'd like to modularize it so that it could take advantage of high quality software released under otherwise incompatible licenses.
Wow, talk about pessimism!
Honestly, I just don't see a mass exodus from java nor the desperate moves by Sun (#1, #9) as likely scenarios.
I have no good arguments against Python's imminent dominance, except my personal experience with it. I am involved in quite a few open source java projects, and have also recently spent several hours looking into the source for moinmoin, an open source python wiki engine. Granted, my lack of python experience may color my judgment. Although there seems to be some OO design at work, the architecture appears to be mainly procedural. Perhaps I just need a different project to look at.
All good points, but I think your post needs to have the word "yet" appended.
Not sure I'm with you on pass by value, it's already done with RMI/Serializable Objects for instance.
Big +1 on generics, I can't wait until 1.5! Also, Java 1.5 attributes will make themselves useful in some situations, but they are already here in several open source libraries.
I'd take C# as an option in a real solution (read: billable) only in two scenarios: 1. I have a MS only client (I do!) or 2. The open source community gets a lot more excited about it.
To elaborate, the fact that Java has such a rich open source landscape eclipses C#'s marginal feature wins. There has been a compiler supporting generics for quite a while now. Attributes and real AOP have several open source projects implementing them in different ways. These types of things are on the fringes of the java open source community.
There are so many mature java open source projects that provide real benefits to a programming team that I am about to be absolutely unfair by naming some. The C# community is a long way away from boasting these achievements.
As many programmers will protest, my list above is far from representative; also, it shows my Apache and Codehaus bias. My point is exactly that; not only is the list far from representative, most or all of the components I mentioned have competitors! The advantage this bestows on java over .NET is significant.
I do not mean to argue that java is the only language that enjoys these advantages; I hear CPAN is a boon to perl hackers, and I have the impression that there is a lot going on in the open source python world. My utter lack of experience with C/C++ prevents me from commenting on the similarity of that situation, but the existence of glibc suggests some open source activity.
In summary: .NET is young, and suffers from a lack of a thriving open source community.
I made the switch from Netbeans 3.4 to Eclipse 3.0M2 (which has some serious issues). I currently use Eclipse 3.0M6, and I probably program java 50+ hours a week (though not all of them are "in the flow"). There are a couple things that I absolutely love about Eclipse, but keep in mind I haven't seen Netbeans 3.5.
And no, I am not affiliated with Eclipse at all, unless you count posting a single bug report :)
Perhaps he was referring to the JVM, since Kaffe is not at 1.0?
Thank you!
I have been scouring the comments for the first person to point out this choice quote, since I am joining the discussion late. Whoever posed this question has absolutely no understanding of open source or what makes it successful.
Your response is well put, but I would also add that presumably the "participating vendors" are participating because they see the project as furthering their "business interests". It is important not to reverse that logic; if the project is not furthering your business interests, stop participating. From personal experience, the objectives of an open source project are set by the individuals doing the work. To paraphrase, if you want to set objectives, start coding and participate in the project.
Hey, Sun, here's an idea. You want plug-ins to work in several IDEs, try coding one. Instead of trying to hypothesize a "specification" for it, make an add-in and start trying to integrate it with IDEA, Eclipse, Netbeans, emacs, jEdit, and/or whatever else you feel like. Then, code another plug-in. Integrate it all around, and look for patterns. Perhaps you could even program your Eclipse adapter as an Eclipse plug-in! :)
I suppose the reason this letter aroused my interest to such an extent is that I am uncomfortable with people trying to get everyone else to do things their way instead of just doing things. Time spent evangelizing is valuable programming (or related activities) time wasted. If your idea is a good one, it will spread on its own merit. For example, take Eclipse and SWT.
You're not kidding. Sales and marketing has been the hardest part of my business, which is about to be four years old. Luckily, I started with a client and was able to sustain that business while I slowly gained others, mostly through word of mouth.
I set up shop in February 2000, and since then have gone from two business partners to none, re-incorporated once, moved 1200 miles, and changed my core business model several times.
Through it all, the only sure way to get business was word of mouth advertising. You simply have to maintain a reputation and talk to lots of people.
Definitely, I bought the laptop sleeve and have been happy ever since.
That was a risky play. Don't try this at home kids, you could end up with legal problems. Criminal and civil.
I'm not so sure we should be dancing in the streets just yet. The wording of the GPL can get pretty complex at times, and all we know is that they are distributing under a modified version of the GPL under which their claims are supported.
Perhaps they just changed the license on the files they think are theirs. Perhaps they added an extra clause to the GPL saying something to the effect that the linux codebase contains intellectual property owned by SCO. I can't see how that would violate the GPL in any way.
Anyone have access to the actual license? Does it force you not to show anyone else the text?
This matters because it is a much better way to do "karma". The usenet client would have access to an information repository about the people posting in a thread. You or I could then tell Mozilla to "filter out messages from spammers" or "filter out messages from flame warriors who post more than 5 times per day".
Honestly, I am more excited about this than paranoid about my privacy. I already knew that posting to usenet was giving away my e-mail address to thousands of spammers.
If MS eventually sells this as a web service, I would pay per use.
Sell early, sell often.
Generics are planned for Java 1.5, and a beta compiler is already available.
It may not be a new idea, but it is being used in new and interesting applications.
As a matter of fact, I would argue the opposite. Any experienced programmer who is not using a "framework" or thinking about design patterns is a hack who is shortchanging his management and/or customers. Without the "meta-coders" you so malign, the software industry would be in a much worse state than it already is.
Oh, and I am a committer on the Apache XML-RPC project, which is written in Java.
Check out the Avalon project. If is a framework encompassing the ideas of Component Oriented Programming and Separation of Concerns.
Also, read about Aspect oriented Programming, which "modularize[s] crosscutting aspects of a system" by allowing a programmer to specify "aspects" of a class or component such as logging, security, remotability, and more.
Caching MD5 sums for every block? Well, this may ease the load on your processor but I hope you have plenty of RAM!