Depends on how good the database is. If they bought one of the real contenders (I guess Sybase is the last one that might be buyable.....), then it could be quite worth it.
Though I agree that the OS DB world has become too balkanized. There is really only need for a few of the OSS databases. I would say that HSQL, Derby, Postgres, and Firebird would pretty much cover the spectrum.
Be a little careful what you say, you are treading dangerously close to the bounds of being outright wrong.
First of all, in the past global cooling would have been more of an issue, as engines were more prone to release particulates, which tend to cool the earth. Now that devices of all sorts produce much less particulate pollution (but about the same quanitity of CO2), it seems reasonable that the problem will shift.
True there is no absolute consensus, but the general trend looks highly anomalous (look at a graph of temperatures, it's hard to deny what's happening), the mechanism is reasonably well understood, and the whole scenario is far beyond plausible. It is highly likely that CO2 is heating our planet. Nobody has really proven very well exactly what this means, or even whether or not it'g a good thing, but it is certainly dangerous to tread into unknown territory so quickly with so little understanding. The primary reason for restraint is not that we know what will happen, but rather that we don't know, but we strongly suspect that something is going to happen, and it is not likely to be good.
You fall into all the same fallacies. Just because people were wrong before, doesn't mean they're wrong now. Furthermore, you didn't even show that they were wrong, as far as I know, if we had continued to use 1960s era technology to the present day, perhaps global cooling would still be the more likely scenario.
It is true that a few anecdotes don't make data, but wake up. It is hard to deny that the weather has been unusually harsh lately. The global temperatures are rising (easily enough verified by satelites and simple record keeping). In Idaho (where I grew up) it is undeniable that the weather was shifting, and this was 10 years ago, it's even more clear now.
Even if the odds of global warming are only 50-50 (and evidence indicates that it's at least 90-10 in favor, most scientists claim more certainty than that), the cost to reduce it is not so great, and the possible consequences are huge. We should at least attempt to mitigate the situation, whether we truly believe or not.
Nuclear reactors don't generally run on Weapons grade fuel. You would need to enrich the fuel to make it weapons grade, which would really be as difficult as starting from natural Uranium, which is easy to get. There is no reason to shoot your way through all those guards in order to steal some (possibly used) fuel that is (if used) highly radioactive, and no more useful for creating weapons than natural Uranium that you can get for a few hundred $ per pound.
They would have a much easier time just dismantling old smoke detectors and using the Uranium in them to make a bomb or reactor. Hell, some HS kid did exactly this, it's much easier than shooting your way into a reactor where you can....what exactly? Steal something useless and then fight your way out through the US military?
Top of the list maybe, but what would they use to attack them? The containment domes are designed to withstand airliners, and the nuclear waste is its own best defense. You can't just walk in and grab some and walk you, you wouldn't make it 50 feet before the radiation killed you.
What exactly is your plausible scenario of attack? Something that doesn't rely on the terrorists having an organized military (no military strike craft, no tanks, no month long occupation to extract the materials.....), in short, something that could actually happen.
I actually always wondered why people don't partition their problem space a little more.
It seems like it wouldn't be killer to have two DB setups. Have an Oracle or similar setup for the "It has to work, huge volumes of data, must not go down, very difficult queries, etc...." database, and then use Postgres for everything else. Might save a bit of money on some databases, let oracle do what it's really good at (what you're paying for), and let something free and decent clean up the scraps.
Is ant a possibility here? I know that we use ant to compile some of our C projects. It's not really the intended use, but it might help your portability a little bit if you are able to count on the fact that at least it'll be the same program running your build scripts on all the architectures, rather than having to try to detect which make version is running, and what features it supports.
"As horrible as the idea may be, there are a number of CS departments that made the Java switch during the big Java boom of the late 90s. My alma mater did the switch, though luckily I was always at least a semester ahead of Java changes."
You missed my sarcasm apparently.
Also, what's wrong with swing? It seems to work fine on OS X, Windows, and Linux, as far as I can tell. Looking at JEdit, NetBeans, Limewire, some of our vendor apps, and our own internal apps at work, it seems fine to me.
Perhaps you're a little more particular though. Pretty much all of those apps are snappeir than OOO and Mozilla/Firefox, as far as I can tell.
Partially true, but the X11 port is pretty sucky. It doesn't feel like an OSX application, and has verious other problems due to its alien nature. I don't think they get more than 1/2 credit for the X11 port.
Compare this to something like Limewire that works beautifully on every platform, and integrates wonderfully into most of them. They surely wrote some native code, but I'm sure it wasn't much, and you can always download the jar if you want it clean of such things.
Not that I've ever heard of, but why do you want to turn something generic into something not generic? I guess I can see why someone might want to do that, but once you go that route you have the same "We depend on exacly these versions of these libraries, and woe betide the fool who attempts to use a newer or older one..." thing going on.
I guess I"m a bit cynical, as I deal with vendors all day, and they give me the same BS that all the OSS zealots do about native code. I can't tell you how many times we've had a box go down only to find that the sort of hardware/software that can actually run this POS program just doesn't exist anymore. We must have 30 different system configurations at work, I know we've got a few one-offs just specifically to run some native program that a vendor gave us a couple years back.
What happens if one of those one-of-a-kind boxes goes down? Can you get an old US-II running a 3 year old version of solaris with exactly these 50 libraries, and can you get it quickly enough that the company doesn't go out of business before you can bring that thing up? This is probably the single biggest problem with native code, it's HELL to support, but it's even worse if you have to try to integrate with it programatically.
We never have exactly the same compilers/libraries as our stupid vendors, so we can never programatically integrate with thier software, it always gets reduced to passing around files and socket calls, I don't have to tell you what a hoot that is. It's actually possible (and not that hard) to integrate with these things through CORBA, but our sucky vendors usually make that impossible. Even then, it solves the second problem but not the first one.
So, the choice is clear. If we let our vendors give us native code, then we need to plan on having 50 system configurations, and a couple of EXACT duplicate spares of each, as well as dozens of different development environments perfectly suited to each sucky program, or a horrible file based API.
Alternatively we can just require that it's Java or it doesn't get in the door, and then all these problems are gone. If a box goes down, we just replace it with any equivalent hardware and are pretty confident that it'll work. We can also call the APIs directly, as we won't have compiler/library/calling convention mismatches. Even better, if it crashes, we might get a useful stack trace as opposed to merely a core dump and a dead program.
I also must say that the shops that write in JAVA are hugely more cluefull than those that don't. I've worked with and worked at both types, you either understand the above situation, or you don't. You never want to work with or for anybody who can't understand the scenarios layed out above. At work, we are (fortunately) doing a good job of keeping native code out, though there's still a little bit here and there. We are going to add another piece of native code it looks like, but it's either that or buy something from Reuters, and in this case it appears that going native by not-reuters is better than getting anything from Reuters.
"But C is portable, why are they having portability problems when C is sooooooo portable? Thank god they didn't do it in Java, because java isn't really portable, not like C, and it'd be slow if it was in java, even slower than it's already glacial performance, and it might use lots of RAM, more than that 100 MB it uses now. It'd also slow downt he probject, because C is easier to write than Java, everybody knows C, but there aren't any CS departments that base their courses on Java, who cares about java...."
Seriously, we really need a suite of JAVA tools, like word processors, spreadsheets, web browsers, etc... No more of this "well, it works on Windows, if you want it on Linux or Mac though we'll have to sit down and write it all over again, and probably introduce a ton of bugs....." stuff.
What good is a program that depends on exact versions of 50 libraries (yeah, like I'll be able to reinstall that in 5 years and have even an outside shot at it working) and only works on a couple platforms, if you're lucky. Portability isn't an advantage, it's a requirement. If you're portable spatially (to different platforms) today, then you'll probably be portable temporally (to different time periods) tomorrow. If you can't even get it to run on most of the platforms that exist TODAY, then what makes you think it'll run on the newfangled computer that is going to come out 5 years from now? You've just given you work a lifespan of only a couple years, why would you do such a thing. I know I don't get up in the morning and say to myself "I think I'll do something excruciatingly difficult, and I'll do it in such a way that I'm guaranteed to have to come back and do it again in a couple of years".
Let the C loving rants begin. I'm sure there will be several responders who say "But C is portable and fast" utterly ignoring the ponderous quantity (OOO, Mozilla, virtually every game ever made, etc..) of evidence indicating that the difficulty faced in porting is immense, and when you make your own custom hacked windowing system to speed the process (Mozilla), it ends up being a slow RAM hog, even more so than it would be if it was written in JAVA, or another portable language to begin with.
I really just wish lots more programmers would grow up, then there'd be more good toys to play with.
When you stare at a CRT, you're staring at the business end of a particle accelerator. Those things produce X-rays, they produce magnetic and RF interference. The glass used to make them is loaded with lead (to stop the X-rays), they're big, heavy, and energy inefficient. They flicker, and my personal experience indicates that this is very bad for (my) eyes, possibly they cause accumulated costs (cancer, lead poisoning, diminished eyesight, RF interference, energy consumption, pollution, etc...) to the users and society as a whole dramatically in excess of the price differential between them and LCDs.
Say what you will, but the fact that the picture quality is not better does not make it an "emotional" purchase.
This actually reminds me of what one hack once said about organically grown food. He said it was an emotional purchase, and people were wasting money because organic food hasn't been proven to be any healthier.
That may or may not be true, but organic food has been proven to be dramatically better for the environment, and probably much better for the farmers who grow it, and it is probably healthier too (fewer pesticides, hormones, and antibiotics). To write it off as an "emotional" decision is to ignore the vast majority of the (very valid) reasoning behind the decision by simply writing off anything that isn't an immediate instant-gratification style gain as "emotion". This was coming from an economist, and people wonder why poverty persists with people like that calling the shots....
Outlook is a surprisingly good program, but Exchange is ghastly beyond all comprehension. It is clearly the weak link. This is why things like the JBoss Mail API are so important.
The proper way to handle email/calendaring/contacts/etc.... is clearly by using an appserver on top of a relational database. This is a textbook place for a good appserver. Just use EJB (or whatever) to represent all the objects (mail messages, etc...), and make all the functionality available through session beans and web services. This is quite easy (compared to managing the terror that is Exchange). Then if you need to, make a custom connector to communicate over whatever braindead language the various clients use, it can just convert that to the native session bean calls.
The primary advantage is this.... It inherits essentially everything from the appserver. Clustering is available, so is every imaginable sort of backup (through the DB). Enterprises already need to manage appservers, so there's no additional piece of software. Also, all the data goes into the SQL database of your choice, just like all the other data in the company. No more priesthood of people desperately trying to keep exchange running an stable, it's just another appserver like everything else, and its data lives wherever you want it to live.
In addition, a simple API like communication protocol would be available to anyone who could run Java (that is, everyone), and if that's not good enough, then you can use IMAP or whatever....
The whole mess could be just one large jar file. I've seen apps distributed like this (iTracker is an example). For those of us who just want something set up quickly, it has an express install that is just one huge blob of java (Jboss + libraries + the app itself + HSQL database), that you just untar and run on any platform. If you need more, then minimal configuration adds whatever else you need. That's how software is supposed to be.
Lets not ignore the fact that Oracle is really good.
As much as I hate to say it, Oracle is fantastic, here's my rough assessment of the field.
1) HSQL, good toy database, can't scale.
2) mySQL, bad toy database, can't scale.
3) Postgres, good solid database. Badly misoptimizes some queries (Don't dare say VACCUUM, I did all that, I read the explain output, I changed every setting, it just screws up some queries, end of story).
4) MSSQL, decent database, userfriendly, not exceptional. Expensive, windows only.
5) Cloudbase, not sure. Probably about the same as Postgres, lets hope they have a better query optimizer.
6) Sybase, all around decent.
7) DB2, supposedly solid, have heard bad things.
8) Oracle, seems to be the best, but horrifyingly expensive. In my experience, far better than MS SQL.
You're right though, it really only makes sense for the large firms, where you can use one box to hold 50 or more schemas. At that point, holding huge volumes of data, the price makes much less difference when the hardward (and manpower) costs millions.
If you've got alittle development box, then Postgress or (maybe) cloudbase is the way to go, no need to pay for a DB unless you have the hardware, expertise, and need to get the most out of it.
But, this is the beauty of the portability of C? Clearly making OOO run on OS X just requires a recompile, if anyone with half a brain wrote the code, because C is portable, right? Oh, wait a minute. You're telling me that it can run on Linux, but can't even be run (with the proper UI) on a closely related UNIX without extensive architectural changes? Good thing it's in C, so it's blazingly fast. What's that, it's pretty slow, well ok then.
They should have done something similar to ThinkFree office from the beginning. They've spent so much time screwing around and porting, if they had just written it in java the first time, they'd be far better off.
Also, open source projects would actually work quite well as a webstart script. Just fire off the script, use it to make sure you have everything you need, and there you go. This gives you all the auto-update technology essentially for free. Since the project is open, there's not licensing hassels around upgrading, so people should be notified of newer versions and given the option.
I don't know who they are, but no politician is elected without wall street money. This thing isn't going anywhere, especially as it is no doubt groundless anyway.
Yeah, ok. Compare a windmill that produces a few kilowatts against a nuclear waste facility that services several terrawatt years of nuclear energy. This is what we refer to as basic math, and it can be helpful.
In order to provide for all our energy needs, we'd need something like a billion windmills (simple math will confirm this), which is approximately one ever 100 meters in every direction over the entire surface of the country. Where would you propose we put them, where shall we get the materials to build them, who will maintain them, how many power lines do you really want, and most importantly, what happens on a relatively calm day? Just a few non-trivial questions.....
However, you do have a good point, it doesn't take much to be better than coal, but comparing it to nuclear is a much tougher proposition.
Reminds me of all teh LED light manufacturers, they compare their bulbs against incandescents, even though they are really competing against CF bulbs which are dramatically better.
"If these 'prompt' neutrons were enough to sustain criticality, then the number of fission events would increase geometrically. Since the time between generations is about a millionth of a section, this means that a reactor core that's 'prompt-critical' would quickly escalate in temperature until the structural integrity of the core failed, and you have a molten slag of Uranium - which is exactly what happened at Chernobyl. "
I doubt Chernobyl went prompt critical. The power output surged to more than 100 times the rated capacity when the Xenon burned off, but it still didn't go prompt critical, it just had a "catastrophic power surge". If it had gone prompt critical it would probably have been a multi-kiloton explosion, at least.
Anyway, good response, though I think a lot of liquid metal reactors would want to use Lead as well.
I don't know, extremely safe compared to a process that has provided 20% of our electricity for 50 years and never killed anyone in the US? That's pretty safe.
However, be a little careful claiming that a fusion reactor is completely safe, considering that nobody has yet to build one. That's the same thing the fission guys said, and if a fission reactor is constructed carefully, it is safe, but there have always been careless and stupid people around. I'm not really sure what your rationale for claiming a fusion reactor cannot explode is, as a fusion reactor appears to me (a mere physics major admittedly, not a nuclear physicist) to have both very low thermal inertia, and also a very strong positive feedback with increasing temperature. I'm not claiming that a fusion reactor could go all mushroom cloud, but "catastrophic power surge" similar to the one that destroyed Chyrnoble (spelling, I know), seems well within the realm of possibility.
Fission reactors are primarily safe because they are not critical on propmt neutrons alone, so the "cycle time" between each generation of reactions is on the order of seconds, long enough that mechanical control systems and passive safety can come into play. The cycle time between generations in a fusion reaction seems to be on the order of microseconds to me, so a catastrophic power surge could spin out of control long before the plasma could dissipate, on those timescales the inertia alone of the plasma could act as sufficient containment to maintain the reaction if the reactor isn't designed carefully.
However, the average percentage of the population with college degrees in the blue states is substatially higher than the percentage in the red states. This is the world we live in.
There is a degree of truth to this. Also, if you divided up the US like you divide up Europe, then it would be far more fair. The North east would match the best that any country had to offer, and the deep south would be ghastly. Lump all of Europe or all of Asia together, and then do a comparison, see how that one goes. I also might add that the blue states absolutely carry the red states in this matter, by a huge margin.
Don't blame this phenomenon on the Lawyers, it's the Republicans who are driving it. They do away with regulation claiming that "the free market will solve it, if someone harms you, you take them to court, don't rely on regulation....", and then they are shocked, SHOCKED I SAY, when there are swarms of lawsuits because the coal plant down the street decided against installing pollution control and gave a whole town black lung. Amazing how that works. Of course the next step is utterly predictable.... "It's the lawyers causing all these lawsuits, we should ban lawsuits so that people can't impoverish wrecklessly irresponsible corporations..."
It was all a plan from the very beginning to make corporations, CEOs, Doctors, etc... totally immune to any liability no matter how careless or flat our murderous their actions.
For instance, take another simple example, malpractice lawsuits. I ask you this, if I'm a civil engineer, and I design a building that is faulty, it falls over one day and kills someone, what happens? At the very least I get sued, and with very high probability I get a criminal case against me and I go to jail. Now this sort of thing is more of a risk for doctors (they play with life and death every day), so they get the BENEFIT of going to civil court rather than criminal court if they kill someone. Of course the republican party would love to get rid of that too so that your local HMO could hire Dr. Nick of the Hollywood medical school and ice cream shop, and not have any worries about his incompetence causing lawsuits. This has been the goal all along.
It seems that there are two choices. Either effective regulation to prevent mistakes, or lots of lawsuits to punish the screwups. You can't have a system where corporations are immune to regulation by the government, and immune to lawsuits from private citizens. They are already effectively immune to criminal prosecution, so what's left? Why wouldn't your local firm dump pure cyanide in the river if it knew that nobody on earth could make them pay one solitary cent for killing off a whole town?
As I said before, don't blame the trial lawyers. This caricature of justice was created by the republicans specifically so they could dismantle the whole system by pointing to how sucky it is.
I can't tell you how many times it's happened. I read a dozen reviews online to hear that a game is great (baldur's gate for mac was a classic example), so I buy said game, and WHAM severe bug. Every time you try to rest (in certain circumstances, which occur about half the time) the game just crashes completely. This now fundamentally changes the nature of the game. Rather than trying to fight bad guys, your primary mission is to find a way to rest without crashing the game, the actual plot of the game becomes secondary to working around the bugs in the game.
Once the game has been out for a little while, this is all over the bulletin boards, nearly everybody (or maybe actually everybody) has this bug, so..... How did the reviewer not know? Did he even play the game? Did he think that a single bug that crashed the game 5 times an hour was insignificant? What exactly is going on here?
For reviewers, first and foremost, actual obvious bugs should be the first thing to look for. If you play the game for a whole day and it ever crashes, that should go in the very first sentence of the review. In addition, include a full list of the bugs you saw, and any game with more than a few obscure bugs (or god forbid a single crasher or severe bug) should get the thumbs down automatically.
I can't stand the reviewers ignoring obvious deficiencies and claiming "this game played like a dream......" when it is a scientific fact that they couldn't have played more than 10 minutes without having a complete crash.
I have an excellent degree and an excellent job, but I don't think one led to the other. My first job sucked, the second job sucked less, and this job rocks.
When I look at resumes, I don't really care what's on there. As long as it isn't "I know every POS that microsoft ever made, and i can program in Excel...." that virtually guaranteees an idiot (we're about 5/5 on this score so far, I usually phone interview them anyway for comic relief). Basically anything even moderately reasonable will get a phone interview. The only ones that are throw out are the pure MS drones and those that have every buzzword on their resume without any actual content.
Beyond that, a degree in something other than CS is kindof nice, as it opens up some interesting interview questions and makes our sideline discussions at work so much more interesting.
Really, if you know how to program well, and can think straight and quickly, that's about all you need, I think. Of course your mileage may vary.
Agreed, and KNOW BASIC MATH!!!!! If you don't know that 10^30 is a "large number" then you aren't going to do so well on a technical interview. Without any appreciation of scale it's hard to tell where performance problems are coming from. If you're always mindful of the rough scale of numbers and the data structures involved, you'll have much less reason to use a profiler as your software will perform well the first time.
OK, so not all US programmers are especially competent, but nor are all foreigners. The only reason companies use H1B visas is so they can pay way less than the going rate for skilled labor and demote their own employees to the status of fast food workers.
Any company that claims there just aren't enough skilled workers in the US is flat out lying, and I know, I'm interviewing people almost every day. It's a real pain to find someone who actually knows half of what they claim to know, but the batting average of non US citizens is vastly worse, not better. On average, the applicants who were born in the US tend to be dramatically better than those who were not, on average. Draw your own conclusions about why that is, possibly because a lot of countries with a lot of people (India) are churning out a lot of bad programmers because no other skill will get people into the US, perhaps.
Depends on how good the database is. If they bought one of the real contenders (I guess Sybase is the last one that might be buyable.....), then it could be quite worth it.
Though I agree that the OS DB world has become too balkanized. There is really only need for a few of the OSS databases. I would say that HSQL, Derby, Postgres, and Firebird would pretty much cover the spectrum.
Be a little careful what you say, you are treading dangerously close to the bounds of being outright wrong.
First of all, in the past global cooling would have been more of an issue, as engines were more prone to release particulates, which tend to cool the earth. Now that devices of all sorts produce much less particulate pollution (but about the same quanitity of CO2), it seems reasonable that the problem will shift.
True there is no absolute consensus, but the general trend looks highly anomalous (look at a graph of temperatures, it's hard to deny what's happening), the mechanism is reasonably well understood, and the whole scenario is far beyond plausible. It is highly likely that CO2 is heating our planet. Nobody has really proven very well exactly what this means, or even whether or not it'g a good thing, but it is certainly dangerous to tread into unknown territory so quickly with so little understanding. The primary reason for restraint is not that we know what will happen, but rather that we don't know, but we strongly suspect that something is going to happen, and it is not likely to be good.
You fall into all the same fallacies. Just because people were wrong before, doesn't mean they're wrong now. Furthermore, you didn't even show that they were wrong, as far as I know, if we had continued to use 1960s era technology to the present day, perhaps global cooling would still be the more likely scenario.
It is true that a few anecdotes don't make data, but wake up. It is hard to deny that the weather has been unusually harsh lately. The global temperatures are rising (easily enough verified by satelites and simple record keeping). In Idaho (where I grew up) it is undeniable that the weather was shifting, and this was 10 years ago, it's even more clear now.
Even if the odds of global warming are only 50-50 (and evidence indicates that it's at least 90-10 in favor, most scientists claim more certainty than that), the cost to reduce it is not so great, and the possible consequences are huge. We should at least attempt to mitigate the situation, whether we truly believe or not.
Lets also remember from scenario #1.....
Nuclear reactors don't generally run on Weapons grade fuel. You would need to enrich the fuel to make it weapons grade, which would really be as difficult as starting from natural Uranium, which is easy to get. There is no reason to shoot your way through all those guards in order to steal some (possibly used) fuel that is (if used) highly radioactive, and no more useful for creating weapons than natural Uranium that you can get for a few hundred $ per pound.
They would have a much easier time just dismantling old smoke detectors and using the Uranium in them to make a bomb or reactor. Hell, some HS kid did exactly this, it's much easier than shooting your way into a reactor where you can....what exactly? Steal something useless and then fight your way out through the US military?
Top of the list maybe, but what would they use to attack them? The containment domes are designed to withstand airliners, and the nuclear waste is its own best defense. You can't just walk in and grab some and walk you, you wouldn't make it 50 feet before the radiation killed you.
What exactly is your plausible scenario of attack? Something that doesn't rely on the terrorists having an organized military (no military strike craft, no tanks, no month long occupation to extract the materials.....), in short, something that could actually happen.
I actually always wondered why people don't partition their problem space a little more.
It seems like it wouldn't be killer to have two DB setups. Have an Oracle or similar setup for the "It has to work, huge volumes of data, must not go down, very difficult queries, etc...." database, and then use Postgres for everything else. Might save a bit of money on some databases, let oracle do what it's really good at (what you're paying for), and let something free and decent clean up the scraps.
Is ant a possibility here? I know that we use ant to compile some of our C projects. It's not really the intended use, but it might help your portability a little bit if you are able to count on the fact that at least it'll be the same program running your build scripts on all the architectures, rather than having to try to detect which make version is running, and what features it supports.
"As horrible as the idea may be, there are a number of CS departments that made the Java switch during the big Java boom of the late 90s. My alma mater did the switch, though luckily I was always at least a semester ahead of Java changes."
You missed my sarcasm apparently.
Also, what's wrong with swing? It seems to work fine on OS X, Windows, and Linux, as far as I can tell. Looking at JEdit, NetBeans, Limewire, some of our vendor apps, and our own internal apps at work, it seems fine to me.
Perhaps you're a little more particular though. Pretty much all of those apps are snappeir than OOO and Mozilla/Firefox, as far as I can tell.
Partially true, but the X11 port is pretty sucky. It doesn't feel like an OSX application, and has verious other problems due to its alien nature. I don't think they get more than 1/2 credit for the X11 port.
Compare this to something like Limewire that works beautifully on every platform, and integrates wonderfully into most of them. They surely wrote some native code, but I'm sure it wasn't much, and you can always download the jar if you want it clean of such things.
Not that I've ever heard of, but why do you want to turn something generic into something not generic? I guess I can see why someone might want to do that, but once you go that route you have the same "We depend on exacly these versions of these libraries, and woe betide the fool who attempts to use a newer or older one..." thing going on.
I guess I"m a bit cynical, as I deal with vendors all day, and they give me the same BS that all the OSS zealots do about native code. I can't tell you how many times we've had a box go down only to find that the sort of hardware/software that can actually run this POS program just doesn't exist anymore. We must have 30 different system configurations at work, I know we've got a few one-offs just specifically to run some native program that a vendor gave us a couple years back.
What happens if one of those one-of-a-kind boxes goes down? Can you get an old US-II running a 3 year old version of solaris with exactly these 50 libraries, and can you get it quickly enough that the company doesn't go out of business before you can bring that thing up? This is probably the single biggest problem with native code, it's HELL to support, but it's even worse if you have to try to integrate with it programatically.
We never have exactly the same compilers/libraries as our stupid vendors, so we can never programatically integrate with thier software, it always gets reduced to passing around files and socket calls, I don't have to tell you what a hoot that is. It's actually possible (and not that hard) to integrate with these things through CORBA, but our sucky vendors usually make that impossible. Even then, it solves the second problem but not the first one.
So, the choice is clear. If we let our vendors give us native code, then we need to plan on having 50 system configurations, and a couple of EXACT duplicate spares of each, as well as dozens of different development environments perfectly suited to each sucky program, or a horrible file based API.
Alternatively we can just require that it's Java or it doesn't get in the door, and then all these problems are gone. If a box goes down, we just replace it with any equivalent hardware and are pretty confident that it'll work. We can also call the APIs directly, as we won't have compiler/library/calling convention mismatches. Even better, if it crashes, we might get a useful stack trace as opposed to merely a core dump and a dead program.
I also must say that the shops that write in JAVA are hugely more cluefull than those that don't. I've worked with and worked at both types, you either understand the above situation, or you don't. You never want to work with or for anybody who can't understand the scenarios layed out above. At work, we are (fortunately) doing a good job of keeping native code out, though there's still a little bit here and there. We are going to add another piece of native code it looks like, but it's either that or buy something from Reuters, and in this case it appears that going native by not-reuters is better than getting anything from Reuters.
"But C is portable, why are they having portability problems when C is sooooooo portable? Thank god they didn't do it in Java, because java isn't really portable, not like C, and it'd be slow if it was in java, even slower than it's already glacial performance, and it might use lots of RAM, more than that 100 MB it uses now. It'd also slow downt he probject, because C is easier to write than Java, everybody knows C, but there aren't any CS departments that base their courses on Java, who cares about java...."
Seriously, we really need a suite of JAVA tools, like word processors, spreadsheets, web browsers, etc... No more of this "well, it works on Windows, if you want it on Linux or Mac though we'll have to sit down and write it all over again, and probably introduce a ton of bugs....." stuff.
What good is a program that depends on exact versions of 50 libraries (yeah, like I'll be able to reinstall that in 5 years and have even an outside shot at it working) and only works on a couple platforms, if you're lucky. Portability isn't an advantage, it's a requirement. If you're portable spatially (to different platforms) today, then you'll probably be portable temporally (to different time periods) tomorrow. If you can't even get it to run on most of the platforms that exist TODAY, then what makes you think it'll run on the newfangled computer that is going to come out 5 years from now? You've just given you work a lifespan of only a couple years, why would you do such a thing. I know I don't get up in the morning and say to myself "I think I'll do something excruciatingly difficult, and I'll do it in such a way that I'm guaranteed to have to come back and do it again in a couple of years".
Let the C loving rants begin. I'm sure there will be several responders who say "But C is portable and fast" utterly ignoring the ponderous quantity (OOO, Mozilla, virtually every game ever made, etc..) of evidence indicating that the difficulty faced in porting is immense, and when you make your own custom hacked windowing system to speed the process (Mozilla), it ends up being a slow RAM hog, even more so than it would be if it was written in JAVA, or another portable language to begin with.
I really just wish lots more programmers would grow up, then there'd be more good toys to play with.
When you stare at a CRT, you're staring at the business end of a particle accelerator. Those things produce X-rays, they produce magnetic and RF interference. The glass used to make them is loaded with lead (to stop the X-rays), they're big, heavy, and energy inefficient. They flicker, and my personal experience indicates that this is very bad for (my) eyes, possibly they cause accumulated costs (cancer, lead poisoning, diminished eyesight, RF interference, energy consumption, pollution, etc...) to the users and society as a whole dramatically in excess of the price differential between them and LCDs.
Say what you will, but the fact that the picture quality is not better does not make it an "emotional" purchase.
This actually reminds me of what one hack once said about organically grown food. He said it was an emotional purchase, and people were wasting money because organic food hasn't been proven to be any healthier.
That may or may not be true, but organic food has been proven to be dramatically better for the environment, and probably much better for the farmers who grow it, and it is probably healthier too (fewer pesticides, hormones, and antibiotics). To write it off as an "emotional" decision is to ignore the vast majority of the (very valid) reasoning behind the decision by simply writing off anything that isn't an immediate instant-gratification style gain as "emotion". This was coming from an economist, and people wonder why poverty persists with people like that calling the shots....
Outlook is a surprisingly good program, but Exchange is ghastly beyond all comprehension. It is clearly the weak link. This is why things like the JBoss Mail API are so important.
The proper way to handle email/calendaring/contacts/etc.... is clearly by using an appserver on top of a relational database. This is a textbook place for a good appserver. Just use EJB (or whatever) to represent all the objects (mail messages, etc...), and make all the functionality available through session beans and web services. This is quite easy (compared to managing the terror that is Exchange). Then if you need to, make a custom connector to communicate over whatever braindead language the various clients use, it can just convert that to the native session bean calls.
The primary advantage is this.... It inherits essentially everything from the appserver. Clustering is available, so is every imaginable sort of backup (through the DB). Enterprises already need to manage appservers, so there's no additional piece of software. Also, all the data goes into the SQL database of your choice, just like all the other data in the company. No more priesthood of people desperately trying to keep exchange running an stable, it's just another appserver like everything else, and its data lives wherever you want it to live.
In addition, a simple API like communication protocol would be available to anyone who could run Java (that is, everyone), and if that's not good enough, then you can use IMAP or whatever....
The whole mess could be just one large jar file. I've seen apps distributed like this (iTracker is an example). For those of us who just want something set up quickly, it has an express install that is just one huge blob of java (Jboss + libraries + the app itself + HSQL database), that you just untar and run on any platform. If you need more, then minimal configuration adds whatever else you need. That's how software is supposed to be.
Lets not ignore the fact that Oracle is really good.
As much as I hate to say it, Oracle is fantastic, here's my rough assessment of the field.
1) HSQL, good toy database, can't scale.
2) mySQL, bad toy database, can't scale.
3) Postgres, good solid database. Badly misoptimizes some queries (Don't dare say VACCUUM, I did all that, I read the explain output, I changed every setting, it just screws up some queries, end of story).
4) MSSQL, decent database, userfriendly, not exceptional. Expensive, windows only.
5) Cloudbase, not sure. Probably about the same as Postgres, lets hope they have a better query optimizer.
6) Sybase, all around decent.
7) DB2, supposedly solid, have heard bad things.
8) Oracle, seems to be the best, but horrifyingly expensive. In my experience, far better than MS SQL.
You're right though, it really only makes sense for the large firms, where you can use one box to hold 50 or more schemas. At that point, holding huge volumes of data, the price makes much less difference when the hardward (and manpower) costs millions.
If you've got alittle development box, then Postgress or (maybe) cloudbase is the way to go, no need to pay for a DB unless you have the hardware, expertise, and need to get the most out of it.
But, this is the beauty of the portability of C? Clearly making OOO run on OS X just requires a recompile, if anyone with half a brain wrote the code, because C is portable, right? Oh, wait a minute. You're telling me that it can run on Linux, but can't even be run (with the proper UI) on a closely related UNIX without extensive architectural changes? Good thing it's in C, so it's blazingly fast. What's that, it's pretty slow, well ok then.
They should have done something similar to ThinkFree office from the beginning. They've spent so much time screwing around and porting, if they had just written it in java the first time, they'd be far better off.
Also, open source projects would actually work quite well as a webstart script. Just fire off the script, use it to make sure you have everything you need, and there you go. This gives you all the auto-update technology essentially for free. Since the project is open, there's not licensing hassels around upgrading, so people should be notified of newer versions and given the option.
I don't know who they are, but no politician is elected without wall street money. This thing isn't going anywhere, especially as it is no doubt groundless anyway.
Yeah, ok. Compare a windmill that produces a few kilowatts against a nuclear waste facility that services several terrawatt years of nuclear energy. This is what we refer to as basic math, and it can be helpful.
In order to provide for all our energy needs, we'd need something like a billion windmills (simple math will confirm this), which is approximately one ever 100 meters in every direction over the entire surface of the country. Where would you propose we put them, where shall we get the materials to build them, who will maintain them, how many power lines do you really want, and most importantly, what happens on a relatively calm day? Just a few non-trivial questions.....
However, you do have a good point, it doesn't take much to be better than coal, but comparing it to nuclear is a much tougher proposition.
Reminds me of all teh LED light manufacturers, they compare their bulbs against incandescents, even though they are really competing against CF bulbs which are dramatically better.
"If these 'prompt' neutrons were enough to sustain criticality, then the number of fission events would increase geometrically. Since the time between generations is about a millionth of a section, this means that a reactor core that's 'prompt-critical' would quickly escalate in temperature until the structural integrity of the core failed, and you have a molten slag of Uranium - which is exactly what happened at Chernobyl. "
I doubt Chernobyl went prompt critical. The power output surged to more than 100 times the rated capacity when the Xenon burned off, but it still didn't go prompt critical, it just had a "catastrophic power surge". If it had gone prompt critical it would probably have been a multi-kiloton explosion, at least.
Anyway, good response, though I think a lot of liquid metal reactors would want to use Lead as well.
I don't know, extremely safe compared to a process that has provided 20% of our electricity for 50 years and never killed anyone in the US? That's pretty safe.
However, be a little careful claiming that a fusion reactor is completely safe, considering that nobody has yet to build one. That's the same thing the fission guys said, and if a fission reactor is constructed carefully, it is safe, but there have always been careless and stupid people around. I'm not really sure what your rationale for claiming a fusion reactor cannot explode is, as a fusion reactor appears to me (a mere physics major admittedly, not a nuclear physicist) to have both very low thermal inertia, and also a very strong positive feedback with increasing temperature. I'm not claiming that a fusion reactor could go all mushroom cloud, but "catastrophic power surge" similar to the one that destroyed Chyrnoble (spelling, I know), seems well within the realm of possibility.
Fission reactors are primarily safe because they are not critical on propmt neutrons alone, so the "cycle time" between each generation of reactions is on the order of seconds, long enough that mechanical control systems and passive safety can come into play. The cycle time between generations in a fusion reaction seems to be on the order of microseconds to me, so a catastrophic power surge could spin out of control long before the plasma could dissipate, on those timescales the inertia alone of the plasma could act as sufficient containment to maintain the reaction if the reactor isn't designed carefully.
You forgot Virginia, etc....
However, the average percentage of the population with college degrees in the blue states is substatially higher than the percentage in the red states. This is the world we live in.
There is a degree of truth to this. Also, if you divided up the US like you divide up Europe, then it would be far more fair. The North east would match the best that any country had to offer, and the deep south would be ghastly. Lump all of Europe or all of Asia together, and then do a comparison, see how that one goes. I also might add that the blue states absolutely carry the red states in this matter, by a huge margin.
Don't blame this phenomenon on the Lawyers, it's the Republicans who are driving it. They do away with regulation claiming that "the free market will solve it, if someone harms you, you take them to court, don't rely on regulation....", and then they are shocked, SHOCKED I SAY, when there are swarms of lawsuits because the coal plant down the street decided against installing pollution control and gave a whole town black lung. Amazing how that works. Of course the next step is utterly predictable.... "It's the lawyers causing all these lawsuits, we should ban lawsuits so that people can't impoverish wrecklessly irresponsible corporations..."
It was all a plan from the very beginning to make corporations, CEOs, Doctors, etc... totally immune to any liability no matter how careless or flat our murderous their actions.
For instance, take another simple example, malpractice lawsuits. I ask you this, if I'm a civil engineer, and I design a building that is faulty, it falls over one day and kills someone, what happens? At the very least I get sued, and with very high probability I get a criminal case against me and I go to jail. Now this sort of thing is more of a risk for doctors (they play with life and death every day), so they get the BENEFIT of going to civil court rather than criminal court if they kill someone. Of course the republican party would love to get rid of that too so that your local HMO could hire Dr. Nick of the Hollywood medical school and ice cream shop, and not have any worries about his incompetence causing lawsuits. This has been the goal all along.
It seems that there are two choices. Either effective regulation to prevent mistakes, or lots of lawsuits to punish the screwups. You can't have a system where corporations are immune to regulation by the government, and immune to lawsuits from private citizens. They are already effectively immune to criminal prosecution, so what's left? Why wouldn't your local firm dump pure cyanide in the river if it knew that nobody on earth could make them pay one solitary cent for killing off a whole town?
As I said before, don't blame the trial lawyers. This caricature of justice was created by the republicans specifically so they could dismantle the whole system by pointing to how sucky it is.
I can't tell you how many times it's happened. I read a dozen reviews online to hear that a game is great (baldur's gate for mac was a classic example), so I buy said game, and WHAM severe bug. Every time you try to rest (in certain circumstances, which occur about half the time) the game just crashes completely. This now fundamentally changes the nature of the game. Rather than trying to fight bad guys, your primary mission is to find a way to rest without crashing the game, the actual plot of the game becomes secondary to working around the bugs in the game.
Once the game has been out for a little while, this is all over the bulletin boards, nearly everybody (or maybe actually everybody) has this bug, so..... How did the reviewer not know? Did he even play the game? Did he think that a single bug that crashed the game 5 times an hour was insignificant? What exactly is going on here?
For reviewers, first and foremost, actual obvious bugs should be the first thing to look for. If you play the game for a whole day and it ever crashes, that should go in the very first sentence of the review. In addition, include a full list of the bugs you saw, and any game with more than a few obscure bugs (or god forbid a single crasher or severe bug) should get the thumbs down automatically.
I can't stand the reviewers ignoring obvious deficiencies and claiming "this game played like a dream......" when it is a scientific fact that they couldn't have played more than 10 minutes without having a complete crash.
I have an excellent degree and an excellent job, but I don't think one led to the other. My first job sucked, the second job sucked less, and this job rocks.
When I look at resumes, I don't really care what's on there. As long as it isn't "I know every POS that microsoft ever made, and i can program in Excel...." that virtually guaranteees an idiot (we're about 5/5 on this score so far, I usually phone interview them anyway for comic relief). Basically anything even moderately reasonable will get a phone interview. The only ones that are throw out are the pure MS drones and those that have every buzzword on their resume without any actual content.
Beyond that, a degree in something other than CS is kindof nice, as it opens up some interesting interview questions and makes our sideline discussions at work so much more interesting.
Really, if you know how to program well, and can think straight and quickly, that's about all you need, I think. Of course your mileage may vary.
Agreed, and KNOW BASIC MATH!!!!! If you don't know that 10^30 is a "large number" then you aren't going to do so well on a technical interview. Without any appreciation of scale it's hard to tell where performance problems are coming from. If you're always mindful of the rough scale of numbers and the data structures involved, you'll have much less reason to use a profiler as your software will perform well the first time.
OK, so not all US programmers are especially competent, but nor are all foreigners. The only reason companies use H1B visas is so they can pay way less than the going rate for skilled labor and demote their own employees to the status of fast food workers.
Any company that claims there just aren't enough skilled workers in the US is flat out lying, and I know, I'm interviewing people almost every day. It's a real pain to find someone who actually knows half of what they claim to know, but the batting average of non US citizens is vastly worse, not better. On average, the applicants who were born in the US tend to be dramatically better than those who were not, on average. Draw your own conclusions about why that is, possibly because a lot of countries with a lot of people (India) are churning out a lot of bad programmers because no other skill will get people into the US, perhaps.