What I dislike more is the technical people who misuse an acronym or word because it is the "in thing" and makes them look current to managers. Like the guy who told me I could just get the connection hand-off from the LDAP. Or the people who say "Just write it in EJB" or "Why do we need JMS when we already send email?"... it works both ways.
We need to understand that being able to drive your own car is a privilage not a right. Normal people have chauffeurs.
We need to understand that being able to eat a sandwich is a privilage not a right. Normal people date and number sandwiches and store them in plastic bags in boxes, between Punisher War Journal 1 and Spiderman 100.
We need to understand that voting is a privilage not a right. Normal people don't vote.
Do you really think that you should be allowed to misuse something you own? Shoot, I need to get home throw out some AOL discs, otherwise the consumer-police may arrest me for using them as coasters.
We are still in a world where an attack like the slammer worm combined with a PC BIOS eraser or disk locking tool could wipe out half the PCs exposed
First off, the Slammer worm is a buffer overflow exploit for MS SQLServer, it hampers the internet, but if you are not running SQLServer... Basically, while there are plenty of vulnerable areas, this is incorrect.
More importantly, buffer overflows are due to unchecked C string copy calls: Java has size limits to Strings, making this harder to do. Java also looks different on the execution stack. C can be disassembled to find these vulnerabilities. So the parent actually has a point, because Java does not go down to assembly, it is harder to see the weaknesses AND since Strings are bound, you don't get buffer overflows in the execution stack.
So they found more exploits to FF. FF is also newer. Does this mention the hundreds of IE exploits in the back catalog? Does this mention some of the fatal flaws that MS has not repaired since IE 5? I know because I have had to hack fixes for web apps in IE... never had to do it for Firefox. Read through MSDN and count all the bugs, then read through Bugzilla.
Any new product will have more flaws found per month than an existing product. This is common sense. The difference with FF is the turn around of the fixes. You could imply as much from the article. 40 down to 11. Notice how IE6 has the same amount still found (10 and 6 are alot closer than 40 and 11), and it is a product that has been on the market how long( 4 years)?
There is no news here, just FUD and a normal software lifecycle. This is perfectly normal.
I have used JUnitEE for some time. It provides a Servlet runtime for your tests/test suites. It makes JUnit alot easier to deal with for some type of testing.
Of course, if you are smart you will write an Ant script that will fire off tests for you (using conventional JUnit)... but that only works for some things and it depends on how well you write your tests.
While it is an interesting topic, controlled conditions are required for this to work correctly.
They use a deterministic method to find the next probable character for a given sequence. Deterministic in that if I type 't' and then type 'h' and there are only so many combinations available after that (this is the Markov chain part). Er basically a sort of decision coverage. That is used with the spell check dictionaries they mention for English text recognition. It is interesting too that they are using a neural network (though appropriate) to recognize the patterns. But because they did not make their own, the details are a bit brief.
The problem I see is that the password detection is not flushed out enough and based upon what they state, it is not as powerful as it sounds. The deterministic method won't work for all passwords (as they typically are not English). Their "analysis" is basically a speed up on a dictionary hack (it helps to know the size of the password from the keystrokes), eliminating possibilities by way of possible patterns. But what about special characters, does a shift+key sound that different? Mixed cases, etc? And the deterministic approach does not work if the password is random AND the network has to be trained for THAT persons typing style and keyboard. Is that likely?
I would be curious to know how the newer edition stands up to the old edition. OpenGL programming is very math ("maths" for the UK) intensive (canonical view volumes, vectors, etc). Of course, game mechanics are complicated enough.
If you are trying to learn OpenGL, Neon Helium is more useful (I have an older edition of the red book).
I've patented this system, you rollup soft paper on a cardboard cylinder thereby allowing its convenient dispensing when user has the need to clean up after defacating.
Yes, I think I will patent toilet paper.
Now/. users and the rest of humanity has to pay me to wipe their rear ends.
MS accepts that it must compete against Linux, but I think that Mr Cohen is trying to point out some of the dumber MS practices, in regards to interoperability.
In my experience alot of this is related to how MS wants to integrate it's enterprise level products into the OS. The two biggest examples I can think of are:
SQLServer
.NET
Basically they both run as services (IIS, I think) on Windows OSs, making them inherently incompatible with Linux or any other OS. It's all part and parcel to this Microsoft mentality that to make the most money, we need to be an end-to-end solution; for everything.
So what is my point? Well, if MS was really about making the best product you could run it on a multitude of OSs. Because if SQLServer and the.NET (web apps) were really that good they could be more OS agnostic. The alternatives, Oracle, J2EE, PHP, etc run almost anywhere. It would also be nice to see Active Directory provide full LDAP support.
And it isn't even the end-to-end solution that bothers me. It is also the lock out of everyone else (but, I guess Microsoft can always say, "Look how well we play with ourselves";-) ). This also seems to be half of what causes all of the OS security problems and release delays. Instead of having each app provide its own services (to some extent), the OS comes with bits and pieces for other MS apps. Some of these bits don't seem to get used much, but everyone gets them. This all adds to the complexity of the OS. While Bill and Balmer spout that it makes "everything easier to do", I disagree. I would rather set up a cluster of app servers for J2EE than attempt that nonsense for.NET using the built in configuration options (from the control panel).
I think it is possible that Vista/Longhorn will not be that sucessful. Then MS will have to make SQLServer and.NET web apps run on something else... like everything else in the world. That is just conjecture (or wishful thinking, perhaps), but that will be the only way MS can hold its ground in the long run (at least in the business IT world). Ceterus Peribus.
As an SA (SomethingAwful) goon... I have to agree. Uwe Boll is a horrible director. He has no taste and his movies are abysmal. He ruined Alone in the Dark; if you read the SA story, you will see why. The story on SA was written by the original screenwriter of the script and explains why he gave up on working with Uwe Boll (and with good reason).
Good to see we can expect more quality cinema in the future.
there just aren't enough good programmers in the world
There is a world of difference between being a good programmer/developer and being a good game designer. Some of the lamest games can have the slickest, best designed, best performing code. That has nothing at all to do with it.
Could the problem be that everyone is gaga for 3d games that could all run off of the same engine (not really, but close)? Could it be the desire to sell a game that looks super slick and retails for $50-$60?
I don't really think that a crash (like the 83 crash) is going to happen. The world is a different place. I think enough people play games now that they will keep buying new systems.
OTOH, I think it is sad that most games are the same thing over and over again. That is the one thing in common with the game industry in the early 80s. The games all looked and played the same (or similar). The real problems are that the 3d "revolution" doesn't encapsulate enough genres and that many of us, who grew up with games, see the newer games as old hat. For me, with a few exceptions, nothing has really changed (aside from graphics/physics) in the last 10 years or so.
But, you have to realize that some of that is just growing up and having different priorities (i.e getting bored with games)... and some of it is that there are not enough new kinds of games.
I don't know that I agree. My sisters both use the dashboard alot. They are not super tech saavy (or any more than girls growing up in an engineer family would be), but they find it useful.
I still like Tiger better than XP, even if work and research dictated that I use XP and Cygwin (it is my last IBM-comp... I am convinced of that now). Features that I love having in Tiger and wish were in XP:
F9 -> this is better than the way XP/Windows sorts your open windows... much better
Networking. Aside from some glitches in the built in FTP stuff, Mac networking is alot easier. Hell, if my little sisters can figure out how to set up a network, it is easy.
Darwin console. Ok I am a unix nerd at heart and Cygwin doesn't always do it for me.
Sharing the top bar. That makes software more standard. You always know where to go for stuff.
Did i mention the F9 view... stupid windows.
...
This guy is a fan boy for MS and I will give him credit: he gives Tiger something of a fair shake... kind of. Some of his claims are a bit crazy. Does he actually expect us to believe that MS had the idea for desktop search before Google, etc? I call shenanigans! He claims that the screenshot in here
and a 30 second Bill Gates clip Bill Gates clip serve as evidence of MS and desktop search. Yeah right!
Windows had a search, and a crappy one at that. Search is not a new idea, exactly. But Google and others did it differently because the MS way was broken. And despite his review, Windows desktop search is NOT as good as Google (it builds a bigger cache and you can't pick where it goes...grumble). WinFS is/sounds like XML based meta data for files and database related ideas for searching on that meta data. This does not imply "building an index" as much as it implies a hashing schema for file structures. I.e. certain meta data allowing lookups based on hash values for the file.
WinFS is going to be slower... precaching is what makes Google Desktop fast.
But like I said, because Longhorn is so far from release and OS X is four gens deep, these are not even good comparos. Also consider that Darwin runs on multiple CPUs well. With the multi-core processors on the horizon, this is really the future of computing. I think/hope Longhorn/Vista is a disaster and helps to break the MS stranglehold a bit.
So, do you really think Google will be selling our info out to the government?
I do think that our rights have been sold out by our elected officials ("All hail the all ighty ollar!"). I guess I just wanted to believe that Google was different. P.T. Barnum was right... a sucker every minute.
I did the SCJP and it taught me alot about some nooks and crannies I never used. That may be different from an MCSE or MCSD in some regards. The SCJP has you learn a bunch about garbage collection, some nitty gritty JVM details, etc. Nothing you could not learn on your own. It is also the gateway test to the other Java exams. Some of those actually do indicate if you are a decent developer: the Sun Certified Java Developer exam requires you to develop a business type app NEARLY FROM SCRATCH (no J2EE, etc) and then they review your design as part of that process. That is alot different than just memorizing details.
But for the most part, certifications for a language do not mean you are a good developer, but if you really are good they should be like icing on the cake.
Now if you hate all people who have certifications (and ignore their resumes... like an earlier posts states), I think you might have some personal issues...
I have heard this opinion off and on, but I have also heard this from people who either did not fully grasp the entire framework that is J2EE or from people who did and thought it was a waste of time for various reasons.
No matter how you build your framework, good OO design dictates that you seperate business logic from the presentation, control layers (commonly called MVC and idea as old as Smalltalk 80). If you stick with Servlets and JSPs you should at least have some type of BusinessObject that does the real work...
Now I don't know anything about what kind of apps you build, but I have worked on banking software, data processing intensive (math, parsing), apps, etc and they NEEDED EJBs. Especially MDBs (because some of those operations are hardcore math, i.e. long and must be done asynchronously with Transaction encapsulation/management).
EJBs are definitely not a silver bullet, and like anything they can be overused. But on the flipside, I have worked on more PHP styled apps that did everything in JSPs and Servlets, and they were awful to maintain!
EJBs are not all the same either, CMP Entity beans have more overhead, SLSBs are pretty light weight (especially if you preload the ejb container on deployment). You can make the nasty details pretty transparent, especially if you are smart enough to use SessionFacade and Composite patterns. And using DTOs, factories, and Entity beans can also mean that your real-time app objects can be worlds different than the DB.
For big systems, this is pretty important. It is well established by both SEI and IEEE that maintenance is 80% of the cost of a software system. So, if you build a multi-tier system correctly it can eb easy to understand and maintain.
That is all with the caveat that you have used the right set of tools for the job. A system that tracks data for a small company is alot different than banking software that manages billing for subcontractors, customers, accountants involving billions of dollars. Big systems like that will be in service for years, and enough hands touch it that a strong OO design can really help when someone else has to look at it.
Basically, it is extremely heavy-handed to make claims of J2EE dying. I don't speak for everyone either, but I know there are alot of big systems using EJBs that will be around for a long time. As they say, J2EE is the new COBOL.
FWIW, JSPs and Servlets are part of J2EE. They may run in the web container vs the ejb container, but they are all part of the same concept. Not all app servers support all J2EE features, but that is another matter (and that is the way it should be). And I do like Hibernate and Spring, but I try to use the right tools for the right job.
It also depends on what you mean by "commercial". If you mean for commercial use, then yes. But if you mean that it is for sale... yes and no. You can use JBoss free (or could) and buy support. So really, the author is correct.
Proprietary is incorrect, though. It is not an applicable term to a J2EE app server. Or if it is correct, it applies to all of the other big app servers: Weblogic, Websphere, and Oracle. I can run these on many OSs and I can use different databases, different JVMs, etc, etc.
As to the review, anyone who has used one of the big name app servers for any length of time, would not find a single book to be a sufficient resource. It is good to see the reviewer point this out. Oddly enough, having had to use Oracles app server for a few years (and being dumbfounded at their horrid/incorrect/blatant lies documentation) I have found one of the best general resources to actually be BEA's dev2dev site. It contains good articles and detailed documentation on some of the steps others abstract away (especially concerning deployment descriptors for ejbs and jms).
Of course, Weblogic and Websphere still have the lion's share of the market... but I would love to see more JBoss (and less Oracle... ick).
It seems from TFA that this is really the place where the Cell proc would excell.
But for more centralized processing, it seems like the world at large is not quite ready for this sort of multi-processing. I have only written assembly for single CPU multi threaded code, but locking problems are enough of a headache in that environ.
A little O/T perhaps, but with the hope to use multicore procs as CPUs, does Vista/Longhorn seem even more... I don't know, maybe under-developed? From my limited experience, even with a CPU mutli-proc system coded properly you are really just speeding up locking problems (i.e. the same problems exist for synchronus bits of code, it just does it alot faster), like for I/O or HD access. Again, my experience with working at that low a level in a multi-proc environ are limited (basically non-existent).
I guess my question is, wouldn't the SW world need to do some rethinking to develop consumer level apps that use multi-proc capabilities? That of course assumes that you could compile "multi-proc" code for the Cell or multi-core systems (perhaps this is me misunderstanding the cell proc).
Then, aside from Linux or Darwin (I assume Darwin would work as multi-proc G5s are shipping now), what OS could hack it at a consumer level?
(This may get modded as O/T, but I think it's related to the Cell as a signal proc discussion.)
To further ammend that, the problem is not code reviews, it's the MS design (or lack thereof). Alot of MS exploits are not issues where the code was defective as much as where the design was defective. Take, for example, the Slammer worm. You would ask the SQlServer instance for a database (directory service over UDP), then get a good old buffer overflow by making a bad request (not formatted properly). (My memory is a bit rusty on the details, check out wired for a slightly closer look.)
Code reviews, usually find the "duh" type of bugs. As in, poor control structures, misuse of class/methods. The security type flaws can only be fixed by: better design (what could someone do to this) or having people hack at your solution as part of testing (aha, look what I can do). Now the slammer fix could (and probably was) as simple as a check on the length of the request.
Now (knowing that), if I worked at Microsoft, I would be checking for that in code reviews... I mean they have been bitten by this numerous times and a buffer overflow attack is one of the oldest tricks in the book. And yet this is also a process thing: the guys who wrote the code that performs the search probably don't know alot about low level details, and those guys didn't know the restrictions, which points back to design.
Not only do CS students not learn an O.S. explicity (aside from a C in Unix class, O.S from the Tennenbaum book, etc), but half of the problem is that C.S. students aren't the only people who could be tapped. IS students can do alot of that work (and in some ways should) and they are the ones who usually get practical training vs theoretical science.
That basically makes this article a piece of bad journalism.
I recieved my settlement form for the suit this summer. I have an early 3g model. I was given the option of either a replacement battery or a $50 credit. As I also had an extended warranty, I took the $50 credit. Am I not going to get that credit now?
I agree with the reply: I am sure that is true at some schools, but all of the people I have worked with who earned a degree from an ABET accredited CS program seem to get the more hardcore education. This includes a large variety of schools (University of Colorado at CS, Bucknell, MIT, etc).
On the other hand, alot of non-ABET CS programs are rubbish. I have worked with those people in the real world and they are utterly clueless.
As to the point of this article/discussion? Silly and misguided. CS is just as all of my peers seem to point out: science or more to the point mathematics. Maybe not the exact same kind of science as physics (minor #2), but close.
What is odd is the attitude of people to the hardcore CS cirriculum. As a grad student and a full time software engineer I see both sides of the fence. I work with the "Give me practical or give me death people" and hardcore CS people. In what I have seen (in 2 years of J2EE work and 2 years of C++, etc work) the practical people are not very clever.
After finishing a small project that used a clever bit of recursive parsing (like building a lexical analyzer), one of these people asked me if I took a class on "Java" and learned that. A few months later he lamented that he wanted a several semester class on J2EE. This guy is senior level and gets paid way more than I do, yet he is such a dolt that I wouldn't let him touch any of my code with a stick.
As everyone has already said (insert dead equine and pummel), CS is about theory and pushing the boundries of your mind. You can learn a language from a book... that is just a matter of translating ideas. But learning compiler design, architecture, algorithms, calculus, EM, neural nets, etc... even if you don't learn it, it trains you think non-linearly. At my Uni, people dropped CS left and right for IS degrees after a couple of semesters because they "just wanted to program".
Now I am not claiming that ABET accredidation means anything. I am just saying that those that I have worked with who were clever went to those kinds of schools. I have also worked with people who went to my school (I think they have the same degree, but it is a decent sized school, so I didn't run into them) who I can hardly believe graduated.
All I was trying to say:
Don't base everything on your experience alone.
Good Computer Scientists may in fact, be born and not made.
While search engines are great, bookmarks are not obsolete. I use RSS feeds to keep up on anything that is serialized that I might care about. FF is great for that.
I still use a few regular bookmarks (like the URL that logs me into/.). Or for development servers with obscene URLs. That is the kind of thing that a search engine won't find. Especially if you have to deploy to a few web servers (this is the WebLogic machine, this is the OAS machine, etc). I have even bookmarked LDAP strings for testing.
More to the point of TFR, I would be intereseted in learning more about OSS search engines. It would be great to set one up on my own net... hmmm. As an aside, can Lucene be used for local searches? It would be cool to make my own desktop search. What kind of licensing does it have?
Hmmm that might have been it. I do remember using a few... I want to say one was called "Tools on Top" or something? I know some were more stable than others. I remember it made it alot easier to do common Windows things.
But Apple lost their step there in the mid-90s, and were turning out crap computers (exploding and cracking PowerBook 5300s anyone?) and couldn't get out a next-gen O/S to save their life -- literally!
Everyone seems to forget how bleak things were in 95. Macs were crap in those days (see some apple history). People were running early NT or (for the most part) Windows 3.11. 624k conventional memory: remember that? Win95 was at least better than that. Even if it still crashed alot and didn't support half of your games. You could still run in DOS, which you had to do in 3.11 anyway. It had a better interface and it was a first step away from the crap they had before, even if it was flawed.
I have to confess that I did like it better than OS/2. FWIW I am not thinking about what I was running in 1999 (Linux and Win98, biotch!). Apple would have died had NeXT not come along in 1997 followed by the return of Jobs. Have you all never suffered the pain of using a Performa or Quadra before? Those things were horrible!
It's easy to diss MS now, but back then Win95 seemed light years better than 3.11 (I was skeptical then too). Unless (in 95) you were running a SPARCStation with Solaris and those wicked cool optical mice... the ones with the reflective pads! But I was just a kid so I was lucky to get to touch the one's in my old man's office.
What I dislike more is the technical people who misuse an acronym or word because it is the "in thing" and makes them look current to managers. Like the guy who told me I could just get the connection hand-off from the LDAP. Or the people who say "Just write it in EJB" or "Why do we need JMS when we already send email?"... it works both ways.
It seems like he forgot a few "privilages"
Do you really think that you should be allowed to misuse something you own? Shoot, I need to get home throw out some AOL discs, otherwise the consumer-police may arrest me for using them as coasters.
First off, the Slammer worm is a buffer overflow exploit for MS SQLServer, it hampers the internet, but if you are not running SQLServer... Basically, while there are plenty of vulnerable areas, this is incorrect.
More importantly, buffer overflows are due to unchecked C string copy calls: Java has size limits to Strings, making this harder to do. Java also looks different on the execution stack. C can be disassembled to find these vulnerabilities. So the parent actually has a point, because Java does not go down to assembly, it is harder to see the weaknesses AND since Strings are bound, you don't get buffer overflows in the execution stack.
So they found more exploits to FF. FF is also newer. Does this mention the hundreds of IE exploits in the back catalog? Does this mention some of the fatal flaws that MS has not repaired since IE 5? I know because I have had to hack fixes for web apps in IE... never had to do it for Firefox. Read through MSDN and count all the bugs, then read through Bugzilla.
Any new product will have more flaws found per month than an existing product. This is common sense. The difference with FF is the turn around of the fixes. You could imply as much from the article. 40 down to 11. Notice how IE6 has the same amount still found (10 and 6 are alot closer than 40 and 11), and it is a product that has been on the market how long( 4 years)?
There is no news here, just FUD and a normal software lifecycle. This is perfectly normal.
I have used JUnitEE for some time. It provides a Servlet runtime for your tests/test suites. It makes JUnit alot easier to deal with for some type of testing.
Of course, if you are smart you will write an Ant script that will fire off tests for you (using conventional JUnit)... but that only works for some things and it depends on how well you write your tests.
While it is an interesting topic, controlled conditions are required for this to work correctly.
They use a deterministic method to find the next probable character for a given sequence. Deterministic in that if I type 't' and then type 'h' and there are only so many combinations available after that (this is the Markov chain part). Er basically a sort of decision coverage. That is used with the spell check dictionaries they mention for English text recognition. It is interesting too that they are using a neural network (though appropriate) to recognize the patterns. But because they did not make their own, the details are a bit brief.
The problem I see is that the password detection is not flushed out enough and based upon what they state, it is not as powerful as it sounds. The deterministic method won't work for all passwords (as they typically are not English). Their "analysis" is basically a speed up on a dictionary hack (it helps to know the size of the password from the keystrokes), eliminating possibilities by way of possible patterns. But what about special characters, does a shift+key sound that different? Mixed cases, etc? And the deterministic approach does not work if the password is random AND the network has to be trained for THAT persons typing style and keyboard. Is that likely?
I would be more worried about Van Eck Phreaking.
I would be curious to know how the newer edition stands up to the old edition. OpenGL programming is very math ("maths" for the UK) intensive (canonical view volumes, vectors, etc). Of course, game mechanics are complicated enough.
If you are trying to learn OpenGL, Neon Helium is more useful (I have an older edition of the red book).
What is this toilet paper you speak of?
MS accepts that it must compete against Linux, but I think that Mr Cohen is trying to point out some of the dumber MS practices, in regards to interoperability.
In my experience alot of this is related to how MS wants to integrate it's enterprise level products into the OS. The two biggest examples I can think of are:
- SQLServer
- .NET
Basically they both run as services (IIS, I think) on Windows OSs, making them inherently incompatible with Linux or any other OS. It's all part and parcel to this Microsoft mentality that to make the most money, we need to be an end-to-end solution; for everything.So what is my point? Well, if MS was really about making the best product you could run it on a multitude of OSs. Because if SQLServer and the .NET (web apps) were really that good they could be more OS agnostic. The alternatives, Oracle, J2EE, PHP, etc run almost anywhere. It would also be nice to see Active Directory provide full LDAP support.
And it isn't even the end-to-end solution that bothers me. It is also the lock out of everyone else (but, I guess Microsoft can always say, "Look how well we play with ourselves" ;-) ). This also seems to be half of what causes all of the OS security problems and release delays. Instead of having each app provide its own services (to some extent), the OS comes with bits and pieces for other MS apps. Some of these bits don't seem to get used much, but everyone gets them. This all adds to the complexity of the OS. While Bill and Balmer spout that it makes "everything easier to do", I disagree. I would rather set up a cluster of app servers for J2EE than attempt that nonsense for .NET using the built in configuration options (from the control panel).
I think it is possible that Vista/Longhorn will not be that sucessful. Then MS will have to make SQLServer and .NET web apps run on something else... like everything else in the world. That is just conjecture (or wishful thinking, perhaps), but that will be the only way MS can hold its ground in the long run (at least in the business IT world). Ceterus Peribus.
Mod up parent!
As an SA (SomethingAwful) goon... I have to agree. Uwe Boll is a horrible director. He has no taste and his movies are abysmal. He ruined Alone in the Dark; if you read the SA story, you will see why. The story on SA was written by the original screenwriter of the script and explains why he gave up on working with Uwe Boll (and with good reason).
I hope that was sarcasm...
Yeah, I know how that goes. Now everyone else knows what you meant too.
There is a world of difference between being a good programmer/developer and being a good game designer. Some of the lamest games can have the slickest, best designed, best performing code. That has nothing at all to do with it.
Could the problem be that everyone is gaga for 3d games that could all run off of the same engine (not really, but close)? Could it be the desire to sell a game that looks super slick and retails for $50-$60?
I don't really think that a crash (like the 83 crash) is going to happen. The world is a different place. I think enough people play games now that they will keep buying new systems.
OTOH, I think it is sad that most games are the same thing over and over again. That is the one thing in common with the game industry in the early 80s. The games all looked and played the same (or similar). The real problems are that the 3d "revolution" doesn't encapsulate enough genres and that many of us, who grew up with games, see the newer games as old hat. For me, with a few exceptions, nothing has really changed (aside from graphics/physics) in the last 10 years or so.
But, you have to realize that some of that is just growing up and having different priorities (i.e getting bored with games)... and some of it is that there are not enough new kinds of games.
I don't know that I agree. My sisters both use the dashboard alot. They are not super tech saavy (or any more than girls growing up in an engineer family would be), but they find it useful.
I still like Tiger better than XP, even if work and research dictated that I use XP and Cygwin (it is my last IBM-comp... I am convinced of that now). Features that I love having in Tiger and wish were in XP:
This guy is a fan boy for MS and I will give him credit: he gives Tiger something of a fair shake... kind of. Some of his claims are a bit crazy. Does he actually expect us to believe that MS had the idea for desktop search before Google, etc? I call shenanigans! He claims that the screenshot in here and a 30 second Bill Gates clip Bill Gates clip serve as evidence of MS and desktop search. Yeah right!
Windows had a search, and a crappy one at that. Search is not a new idea, exactly. But Google and others did it differently because the MS way was broken. And despite his review, Windows desktop search is NOT as good as Google (it builds a bigger cache and you can't pick where it goes...grumble). WinFS is/sounds like XML based meta data for files and database related ideas for searching on that meta data. This does not imply "building an index" as much as it implies a hashing schema for file structures. I.e. certain meta data allowing lookups based on hash values for the file.
WinFS is going to be slower... precaching is what makes Google Desktop fast.
But like I said, because Longhorn is so far from release and OS X is four gens deep, these are not even good comparos. Also consider that Darwin runs on multiple CPUs well. With the multi-core processors on the horizon, this is really the future of computing. I think/hope Longhorn/Vista is a disaster and helps to break the MS stranglehold a bit.
So, do you really think Google will be selling our info out to the government?
I do think that our rights have been sold out by our elected officials ("All hail the all ighty ollar!"). I guess I just wanted to believe that Google was different. P.T. Barnum was right... a sucker every minute.
Now, where is my hat?
Word.
I did the SCJP and it taught me alot about some nooks and crannies I never used. That may be different from an MCSE or MCSD in some regards. The SCJP has you learn a bunch about garbage collection, some nitty gritty JVM details, etc. Nothing you could not learn on your own. It is also the gateway test to the other Java exams. Some of those actually do indicate if you are a decent developer: the Sun Certified Java Developer exam requires you to develop a business type app NEARLY FROM SCRATCH (no J2EE, etc) and then they review your design as part of that process. That is alot different than just memorizing details.
But for the most part, certifications for a language do not mean you are a good developer, but if you really are good they should be like icing on the cake.
Now if you hate all people who have certifications (and ignore their resumes... like an earlier posts states), I think you might have some personal issues...
I have heard this opinion off and on, but I have also heard this from people who either did not fully grasp the entire framework that is J2EE or from people who did and thought it was a waste of time for various reasons.
No matter how you build your framework, good OO design dictates that you seperate business logic from the presentation, control layers (commonly called MVC and idea as old as Smalltalk 80). If you stick with Servlets and JSPs you should at least have some type of BusinessObject that does the real work...
Now I don't know anything about what kind of apps you build, but I have worked on banking software, data processing intensive (math, parsing), apps, etc and they NEEDED EJBs. Especially MDBs (because some of those operations are hardcore math, i.e. long and must be done asynchronously with Transaction encapsulation/management).
EJBs are definitely not a silver bullet, and like anything they can be overused. But on the flipside, I have worked on more PHP styled apps that did everything in JSPs and Servlets, and they were awful to maintain!
EJBs are not all the same either, CMP Entity beans have more overhead, SLSBs are pretty light weight (especially if you preload the ejb container on deployment). You can make the nasty details pretty transparent, especially if you are smart enough to use SessionFacade and Composite patterns. And using DTOs, factories, and Entity beans can also mean that your real-time app objects can be worlds different than the DB.
For big systems, this is pretty important. It is well established by both SEI and IEEE that maintenance is 80% of the cost of a software system. So, if you build a multi-tier system correctly it can eb easy to understand and maintain.
That is all with the caveat that you have used the right set of tools for the job. A system that tracks data for a small company is alot different than banking software that manages billing for subcontractors, customers, accountants involving billions of dollars. Big systems like that will be in service for years, and enough hands touch it that a strong OO design can really help when someone else has to look at it.
Basically, it is extremely heavy-handed to make claims of J2EE dying. I don't speak for everyone either, but I know there are alot of big systems using EJBs that will be around for a long time. As they say, J2EE is the new COBOL.
FWIW, JSPs and Servlets are part of J2EE. They may run in the web container vs the ejb container, but they are all part of the same concept. Not all app servers support all J2EE features, but that is another matter (and that is the way it should be). And I do like Hibernate and Spring, but I try to use the right tools for the right job.
It also depends on what you mean by "commercial". If you mean for commercial use, then yes. But if you mean that it is for sale... yes and no. You can use JBoss free (or could) and buy support. So really, the author is correct.
Proprietary is incorrect, though. It is not an applicable term to a J2EE app server. Or if it is correct, it applies to all of the other big app servers: Weblogic, Websphere, and Oracle. I can run these on many OSs and I can use different databases, different JVMs, etc, etc.
As to the review, anyone who has used one of the big name app servers for any length of time, would not find a single book to be a sufficient resource. It is good to see the reviewer point this out. Oddly enough, having had to use Oracles app server for a few years (and being dumbfounded at their horrid/incorrect/blatant lies documentation) I have found one of the best general resources to actually be BEA's dev2dev site. It contains good articles and detailed documentation on some of the steps others abstract away (especially concerning deployment descriptors for ejbs and jms).
Of course, Weblogic and Websphere still have the lion's share of the market... but I would love to see more JBoss (and less Oracle... ick).
It seems from TFA that this is really the place where the Cell proc would excell.
But for more centralized processing, it seems like the world at large is not quite ready for this sort of multi-processing. I have only written assembly for single CPU multi threaded code, but locking problems are enough of a headache in that environ.
A little O/T perhaps, but with the hope to use multicore procs as CPUs, does Vista/Longhorn seem even more... I don't know, maybe under-developed? From my limited experience, even with a CPU mutli-proc system coded properly you are really just speeding up locking problems (i.e. the same problems exist for synchronus bits of code, it just does it alot faster), like for I/O or HD access. Again, my experience with working at that low a level in a multi-proc environ are limited (basically non-existent).
I guess my question is, wouldn't the SW world need to do some rethinking to develop consumer level apps that use multi-proc capabilities? That of course assumes that you could compile "multi-proc" code for the Cell or multi-core systems (perhaps this is me misunderstanding the cell proc).
Then, aside from Linux or Darwin (I assume Darwin would work as multi-proc G5s are shipping now), what OS could hack it at a consumer level?
(This may get modded as O/T, but I think it's related to the Cell as a signal proc discussion.)
To further ammend that, the problem is not code reviews, it's the MS design (or lack thereof). Alot of MS exploits are not issues where the code was defective as much as where the design was defective. Take, for example, the Slammer worm. You would ask the SQlServer instance for a database (directory service over UDP), then get a good old buffer overflow by making a bad request (not formatted properly). (My memory is a bit rusty on the details, check out wired for a slightly closer look.)
Code reviews, usually find the "duh" type of bugs. As in, poor control structures, misuse of class/methods. The security type flaws can only be fixed by: better design (what could someone do to this) or having people hack at your solution as part of testing (aha, look what I can do). Now the slammer fix could (and probably was) as simple as a check on the length of the request.
Now (knowing that), if I worked at Microsoft, I would be checking for that in code reviews... I mean they have been bitten by this numerous times and a buffer overflow attack is one of the oldest tricks in the book. And yet this is also a process thing: the guys who wrote the code that performs the search probably don't know alot about low level details, and those guys didn't know the restrictions, which points back to design.
Yar!
Not only do CS students not learn an O.S. explicity (aside from a C in Unix class, O.S from the Tennenbaum book, etc), but half of the problem is that C.S. students aren't the only people who could be tapped. IS students can do alot of that work (and in some ways should) and they are the ones who usually get practical training vs theoretical science.
That basically makes this article a piece of bad journalism.
I recieved my settlement form for the suit this summer. I have an early 3g model. I was given the option of either a replacement battery or a $50 credit. As I also had an extended warranty, I took the $50 credit. Am I not going to get that credit now?
I agree with the reply: I am sure that is true at some schools, but all of the people I have worked with who earned a degree from an ABET accredited CS program seem to get the more hardcore education. This includes a large variety of schools (University of Colorado at CS, Bucknell, MIT, etc).
On the other hand, alot of non-ABET CS programs are rubbish. I have worked with those people in the real world and they are utterly clueless.
As to the point of this article/discussion? Silly and misguided. CS is just as all of my peers seem to point out: science or more to the point mathematics. Maybe not the exact same kind of science as physics (minor #2), but close.
What is odd is the attitude of people to the hardcore CS cirriculum. As a grad student and a full time software engineer I see both sides of the fence. I work with the "Give me practical or give me death people" and hardcore CS people. In what I have seen (in 2 years of J2EE work and 2 years of C++, etc work) the practical people are not very clever.
After finishing a small project that used a clever bit of recursive parsing (like building a lexical analyzer), one of these people asked me if I took a class on "Java" and learned that. A few months later he lamented that he wanted a several semester class on J2EE. This guy is senior level and gets paid way more than I do, yet he is such a dolt that I wouldn't let him touch any of my code with a stick.
As everyone has already said (insert dead equine and pummel), CS is about theory and pushing the boundries of your mind. You can learn a language from a book... that is just a matter of translating ideas. But learning compiler design, architecture, algorithms, calculus, EM, neural nets, etc... even if you don't learn it, it trains you think non-linearly. At my Uni, people dropped CS left and right for IS degrees after a couple of semesters because they "just wanted to program".
Now I am not claiming that ABET accredidation means anything. I am just saying that those that I have worked with who were clever went to those kinds of schools. I have also worked with people who went to my school (I think they have the same degree, but it is a decent sized school, so I didn't run into them) who I can hardly believe graduated.
All I was trying to say:
While search engines are great, bookmarks are not obsolete. I use RSS feeds to keep up on anything that is serialized that I might care about. FF is great for that.
I still use a few regular bookmarks (like the URL that logs me into /.). Or for development servers with obscene URLs. That is the kind of thing that a search engine won't find. Especially if you have to deploy to a few web servers (this is the WebLogic machine, this is the OAS machine, etc). I have even bookmarked LDAP strings for testing.
More to the point of TFR, I would be intereseted in learning more about OSS search engines. It would be great to set one up on my own net... hmmm. As an aside, can Lucene be used for local searches? It would be cool to make my own desktop search. What kind of licensing does it have?
Hmmm that might have been it. I do remember using a few... I want to say one was called "Tools on Top" or something? I know some were more stable than others. I remember it made it alot easier to do common Windows things.
Everyone seems to forget how bleak things were in 95. Macs were crap in those days (see some apple history). People were running early NT or (for the most part) Windows 3.11. 624k conventional memory: remember that? Win95 was at least better than that. Even if it still crashed alot and didn't support half of your games. You could still run in DOS, which you had to do in 3.11 anyway. It had a better interface and it was a first step away from the crap they had before, even if it was flawed.
I have to confess that I did like it better than OS/2. FWIW I am not thinking about what I was running in 1999 (Linux and Win98, biotch!). Apple would have died had NeXT not come along in 1997 followed by the return of Jobs. Have you all never suffered the pain of using a Performa or Quadra before? Those things were horrible!
It's easy to diss MS now, but back then Win95 seemed light years better than 3.11 (I was skeptical then too). Unless (in 95) you were running a SPARCStation with Solaris and those wicked cool optical mice... the ones with the reflective pads! But I was just a kid so I was lucky to get to touch the one's in my old man's office.