I actually have a dual-core machine at work and the only single program I have ever seen use more than one CPU at a time was written in Java. Even the single-threaded Java programs use like 110% CPU as the garbage collector (or whatever) runs in parallel (this was the genome benchmark from language shootout iirc). As in, "cpu time 110s, wall clock time 100s". Java is already ahead on multi-core.
Basically you are smoking crack thinking that compiled languages are going to thrive on multi-core. They aren't. Hell it's hard enough to keep data access correct with just a single thread. And with a "safe" language like Java the compile *knows* there are no aliases for an array, so some kinds of access can automatically be done in parallel, whereas in a separately compiled/linked language like C there are few ways for the compiler to know this. When there's not enough active threads per core the other core's can GC the inactive programs. Safe languages have huge advantages on multi-core.
Blizzard's success is because they don't make the graphics top-notch and they don't have the best story and they don't have the the original ideas. What they do have down to a science is addicting people.
I mean hell, the people in this thread are saying it's because of years of support, or the awesome graphics, or the original story line... no, that's just excuses made up to rationalize the addiction. To this day I still have to restrain myself from breaking out Diablo II and playing it again after going through the same game a dozen times. It's not for the ten-year-old graphics, or to hear the voice acting when Flavie says she can hardly believe I've defeated Blood Raven, or to click though quests without reading because I've memorized them.
* makes calls * has a list of numbers * has caller id * has voicemail of some kind
That's it. Well there is one other thing... I want it to be a wireless USB drive. That would be so useful to be able to go to any computer and type \\myphone\ and access whatever I had put on there. Without having to plug anything in, mess with cables, go through some service, etc.
I couldn't give a rat's ass about learning how to edit word/excel documents using a tiny numeric keypad. Or watch movies on a 1" screen. Or whatever else these newfangled phones are doing these days.
Does radio free america or whatever have a call-in show from north korea? No, because you call in and They come and get you. So what's up with all these systems like freenet or this thing where the person you are trying to get info to needs to 'talk back'?
The thing to do is to have somebody in the (so-called) free world have a bunch of information to get into china and then broadcast it. Send random packets with information to each computer in china. Then the only thing they need to do is listen to it, not request it. For example if you have a special apache plug in it sends spoofed packets that only the end-user computer can tell are not the right next packet (based on tcp window or something). So then they get the real next packet plus a bogus packet with banned info in it. And everybody in china gets it by doing nothing so nobody can be held responsible.
Somebody in china should be able to do tcpdump | some small script and just get a continuous stream of info to look at. Without having to send out anything. Sure, they can firewall whatever packets, but then just broadcast on some connections they allow.
The RIAA's fundamental problem is that sharing mp3's is like the 6-degrees of bacon... User A & B copy each other's music then they each have a copy so A has A+B and B has A+B. Then B does this with C and now C has A+B+C. And so on until Kevin Bacon has all the music every published. That's their real problem.
Sharing of files 'on demand' like in direct connect or bittorrent or kazaa or *mule or whatever is just convenient. But mp3's are too small and drives are too large these days so with actual swapping by actual people in person (which at least previously was considered fair use) you could just copy everything. A single optical disk will be able to hold a month's worth of continuous music just this year. So the real problem for everybody not RIAA is how to know what to play.
I thought it would be something cool like the glasses had a HUD showing the waveform it is hearing. That would be really useful because sometimes there are loud sounds that my father simple cannot hear no matter how amplified they are (back then they didn't wear hearing protectors in the army). So being able to see a huge spike at 14k could be very helpful. Or something that folds the higher frequencies into lower ones (maybe everybody sound like barry white). Or eventually glasses hooked up to a computer that does 'closed captioning' of normal conversation.
I do the same thing (only with SuSE 10). The only thing you really need 100% performance for rather than say 90% in VMWare is games. I tried dual-booting, but in the end it was too much trouble to reboot even for just 30 minute of unreal tournament. And inevitably you want to switch to the browser to look something up, so you have firefox installed. And you want to check your mail. And get IMs.
The best thing for Linux would be something like a free VMWare player image of a bare-bones Ubuntu configured to save everything else to an expandable file on the user's drive. Who wants to buy partition magic, repartition, burn the installer CDs, say "Yes" to "This operation may totally screw you", then dual boot -OR- totally ditch Windows in one go? Just so they can see what Linux is all about, or run OSS apps the right way, or get extra security for web browsing, etc? Nobody, and that's why Linux destop adoption is so poor.
Reflection in a modern JVM is about 1/2 speed of a normal call if you are using a cached Method instance. The JVM actually compiles Method objects into actual classes and dynamically loads them. Typically the invocation of a method is far less time than the body of the method and events happen less than say a hundred times a second anyway, so effectively there is no slowdown to using reflection this way in a graphics toolkit. It's a good choice to reduce the complexity of the API, especially given a more complicated but faster API that people can use if necessary.
What I'm suggesting is changing some flags/options in the ip or tcp/udp headers so that data is automatically encrypted. So just add this to the open source protocol stacks and most connection you make will be encrypted to some degree automatically... you wouldn't know that you were talking to the proper site, but you would at least know that your connections would be much more difficult to be intercepted automatically.
There would be some configuration that say you want lots of throughput (xtea) versus lots of encryption so a server can do like 5% more overhead but make it millions of times harder to read the traffic. The normal exchange, tcp syn with reply of syn,ack, provides enough steps to construct a shared 'secret' key, so your experience wouldn't need to be slowed down or degraded at all. It would just be much harder to intercept en masse.
Of course, this will be hard to use unless your language supports closures. Sadly, most imperative languages (e.g. Java) do not. But, hey, I'm a functional language person so I'm not going to try to defend them.
Java supports closures just fine, as objects. A java anonymous class is a closure. If that really offends you, try calling them multi-closures, since they combine multiple functions with a lexical scope instead of being limited to just one function.
In some languages you have a closure of just one function, but that goes against the "strict constructionists" as in Eiffel since you have objects with no state (Meyer would throw down, as if anybody would care). Or you have the problem of being only weakly object oriented, since every closure is the same type (for example you can't get a closure object and perform a meaningful instanceof operation). For these reasons, Java's anonymous inner classes make the most sense for a closure in an OO language... if only the syntax was a bit less.
Why do C++ people use the acronym RAII "resource acquisition is initialiation" to talk about when the object is uninitialized? The acronym is just completely wrong, because languages like Java are far more "RAII" than C++ (in C++ you can actually allocate resources without initializing them). It really should be something more like RAIS, "resource acquisition is scope", or LSILS "lexical scope is logical scope", or ODOL "object destroyed on leaving", or RROL "resource released on leaving", or something that actually makes sense. To me it just sounds like more arbitrary complexity and nonsense, so basically like everything else C++.
You have people attend the voting, watch the people get their voting cards and walk to the private booth, watch them come out and put their card in the box. Repeat until the end of voting, then watch as the boxes are emptied and counted. Then the dictrict totals are printed in the paper. If they don't match, the people watching raise a fuss. Have people in lots of precints doing this, or all of them for that matter, and any cheating is easily prevented.
Countries like Canada have this system. Their elections are completely verifiable by voters, but still anonymous. My polling place usually has about 500 people vote, and I *would* verify the polls, but here in Virginia a normal voter *cannot* watch the voting take place and *cannot* be there to watch the count. It's illegal and you will get arrested for insisting that you should be allowed to verify your local polling. There is no legitimate reason why. The only reasons that aren't nefarious and still make sense are the pollers are lazy and the people want instant results.
And you wonder why it's legal to download music in Canada, or any of the other ways where Canada is a better America than America.
Re:Intellisense #1 feature, pay Bram to add it
on
Vim 6.4 Released
·
· Score: 1
I'd actually like to see a Java port of vim. I looked at the source code and it doesn't seem too hard. The vast majority of code is ifdef's for various architectures; this could all be replaced with one straight implementation in Java. The rest of the code seems fairly well encapsulated in object-like structures, so it should be somewhat easy.
This would make integrating jvim into eclipse and adding intellisense into it much easier. Of course it would be slower and hunkier, but it would still be cool to see all that code in Java. It would make a fun port imo.
I won't really be worried about bird flu in humans until Rove is indicted and Bush needs a really bad catastrophe to distract everyone's attention or just declare martial law over.
1. Spread bird flu 2. Declare martial law 4. Grand jury records destroyed in 'restoration' attempt. 5.... 6. Exxon profits
The real fix is to have the clients tell the server what data they sent by sending it a list of hashes from each block. This could be a very weak / short hash and still be effective in mitigating cheaters. It would also help identify clients (*IAA) trying to poison the torrent (they would have to report their stats or be isolated from the main part of the torrent).
People used to die all the time. And they still do, in car crashes and victims of poverty or drugs. It was 3k people that died here and what a couple hundred in britain? It's small potatoes. Maybe that offends somebody that knows somebody who died but people die all the time regardless.
An exploding subway is annoying and scary, but it's not a serious threat to our way of life. But taking away our democracy is a serious threat to our way of life. The only actual solution to a biological or nuclear threat is to restructure our society into islands with less interaction. Kinda like a jail with a village in each cell. You might know your neighbors too and you wouldn't even have to rat on them! It might be a good thing, if only that's what we were talking about instead of more politburos.
Have you ever noticed how Bush is taking the blame for this from every single angle imagineable?
And it's about time, that.
He was responsible for the global warming that caused the hurricane
Bush cut alternative energy research and gave handouts to oil companies. He cut targets for efficient vehicles and ceded our leadership in fuel cells europe and asia. He allowed more pollution from power plants. So yeah, he's is partly responsible for the global warming.
he was responsible for not immediately sending in the military
Yep, he sure is. They're in Iraq, and they certainly didn't get in there very fast (ie not until FOX news even had to start calling it a damn shame).
he is being blamed for the guns in the hands of criminals
Bush did cut gun checks, so sure I guess he deserves a little blame for that one too.
for the toxic chemicals in the water
Bush cut funding for repairing and upgrading the levies. Bush also cut support for restoring wetlands, which act as a huge sink for the hurricane's power. So you are right again, he is to blame for this.
for the gas panic
We've been down a million barrels a day for 2 years due to Iraq being largely off-line. There's probably also a conspiracy to keep refinement low to jack up prices (hey it worked for Enron v. California why not try again?). but that's just idle speculation. So score another one for Bush.
for the fact that most of the refugees in the superdome were black
When your policies are to favor the have's and crap on the have-not's, then it ends up where the poor, of which a lot are black, don't even have enough money for a ride out of the city (or didn't even hear about it because they don't have cable, internet, etc). Cutting the estate tax, cutting the income tax (which people making 10k don't pay anyway) put more into the hands of the rich and less to the poor from goverment services. Raising the cost of drugs by not letting the government negotiate for a good price also makes the poor poorer. Etc. So score another one for Bush.
for causing a shortage of personnel to to the Iraq war
Nearly 50% of the guard is overseas, so yes this is another legitimate criticism of Bush.
every single angle of this is being blamed on Bush even though things are pretty much the same way they've been for years
Yeah five years of decline. It's catching up to the point where things are starting to fall apart all over. But you also forgot:
* Diverting money from homeland safety to haliburtonesque cronies.
* Ensuring us that Trent Lott will have a fabulous new mansion again.
* Telling local new orleans people to go to the local underwater salvation army store to get clothers.
* Saying nobody could have predicted a hurricane attacking us.
* Appointing a show-pony manager, literally, as FEMA director.
* Moving a proven effective FEMA from a self-contained disaster response into a giant spy and everything else agency.
and years and New Orleans is run by democrats.
Gee and you don't think that could have anything to do with it? I mean jesus, if you can't tell that Bush is being criticized for these things because they are true and Bush is responsible then there's really no words to describe how pathetic that is.
Bush is a classic mis-manager. He focuses on one problem at a time at the cost of others. He takes a LOT of time off. He makes decisions on problems he doesn't remotely understand. He surrounds himself with yes-men and cronies. He doesn't fire anybody no matter how incompetent... nobody has been held accountable in his administration for any of the crap that's happened. He goes to great lengths to hide everything in case something bad gets out, instead of owning the problems and fixing them.
But what can you expect? Bush literally failed at everything in his life except 'frater
Right because religion has changed so much since 200 years ago. The only significant thing that has really changed in that time is that now ignorant blowhards can post to slashdot instead of to the town billboard. Or get on FOX News and 'balance' out some more facts with faith. Now the whole world can know how stupid you are! Now the rationale layed out by the founding fathers is written in Greek! Olde English, that's Greek right? Yay I can celebrate my ignorance by ignoring history... err what was that saying again?
Those who ignore history are doomed to ignorance? Something like that. Nevermind though, the person who said is long dead now, so they must suck.
1) Computers don't speak natural languages. Computers are exact and natural languages are not, so a computer language that pretends to be a natural language is trying to make water run uphill. It's solving the wrong problem. Make a language that we can understand as something exact, don't try to make a vague imprecise thing like a natural language translate to computer exactness. It's dumb.
2) Existing programming models (C#, Java) "allow smalltalk-like abstration". C# and Java do not know addresses and such before the program runs. They aren't linked like C++ programs, where the code has already been emitted and addresses just need to be relocated. They don't even have fixed offsets for most things since classes can and (at least for Java) are subsequently loaded that cuase any dispatch or offset table to be rewritten at runtime. In contrast, Smalltalk does know all the offsets and addresses ahead of time since it compiled things during development into an monolithic image. So really smalltalk is more like C/C++ in terms of knowing addresses, which is basically a straw-man issue. Having everything be an object has nothing to do with knowing addresses or not, but everything to do with Smalltalk being a really, really poor choice for any non-trivial mathematics whereas C# and Java fairly decent choices for math.
3) "It is very essential to be able to add some methods in base classes in the development of a program" or it "makes a program more complicated." True, if you think changing the core library and environment isn't more complex. It is more complex... you have to know the entire system to know how your change to a core class may affect something else (even if you just add a method, another part could expect that method *not* to exist). It also makes it hard to merge several such programs together. And it makes it hard to upgrade to a newer version of the core classes. In short, it's an idea that makes sense to intelligent programmers, in the short term. It's just not practical in the long run or for the masses. It's a drawback for smalltalk.
Smalltalk died because it solved the problem with elegance instead of practicality. It's the same reason why BSD is being killed by Linux (ie/bin,/usr/bin,/usr/local/bin, etc ad nuseum scheme makes sense but isn't practical as just dumping everything in/usr/bin).
Sure, the Smalltalk language fits on a postcard and is mostly self-consistent, but only zealots actually care about that because people are perfectly capable of using complex syntax if it's more practical. For example, operator precedence was invented way before computer languages, and it was invented for a reason -- it helps people understand the equations. In each decade the languages derived from algol and simula syntax (C, C++, Java) have dominated everything but scripting because they appeal to how we think even though they are most certainly not {elegant;}!
Another elegant but not practical solution is to make everything an object. Just making a few non-object types makes interpreted Java faster than highly optimized, JIT'd Smalltalk. Smalltalk can't be used for significant numerical work whereas Java isn't a great choice but is rarely over 30% slower (vs typically 4-20 times slower for the fastest Smalltalks).
And finally, the third major nail for Smalltalk is that the whole system is changable. This is the elegant solution since you can solve some large problems by making just a few minor tweaks. But the industrial revolution replaced customized individual parts with completely interchangable parts. You don't custom engineer the bolts in a suspension bridge to make them just so, you slap in the cheapest pre-designed ones that have the qualities you need. In Java you can't change a system object or really even patch any object if you don't have the source, but this is far more practical because there are no surprises. You don't have to know the entire class library to know how redefining Object's equals method is going to affect some obscure part (that maybe you aren't even using in your software... yet).
And it's not like Java doesn't also suffer from this... C# delegates are a crappy idea in terms of elegance or 'good OO' (they are essentially function pointers)... Java's inner classes actually make sense, but they just aren't as practical as delegates.
I use Reiser 4 fs on gentoo and can assure you that it does indeed suck big time in some ways. It's way faster than pretty much any other filesystem, but every so often anything IO related freezes for maybe 5-10 seconds while reiserfs is, I assume, rebalancing the filesystem tree. The CPU monitor shows constant IO and the drive light is flickering during that time, so it's actually actively doing something.
What happens is that you do a bunch of stuff and then ":wq" in vi and have to every so often have to wait a considerable time. I suppose part of the problem is gentoo's 120+ thousand files for portage and 40k files for the metadata cache. Reiser 3 was actually much better in this regard as it didn't pause for anywhere near as long.
So I can see why they wouldn't encourage people to use a filesystem that is deprecated (reiser 3, ext2, etc) or one that is not gentoo friendly like reiser 4. Maybe it should be an option on the installer, but either way it's not a big deal since JFS is almost as fast and certainly more reliable.
I'm sure anyone who has ever used a smalltalk system can hardly deny its simplicity, and elegance, compared to that of C++ or even Java. The problem really existed in the fact that smalltalk wasn't available cheaply. It was heavily controlled by Xerox, and compilers for it tended to be far too expensive for novice programmers, or startup companies, to afford.
Mostly that was true for all languages. You had to pay for pascal and C compilers for the Amiga for instance, so people wrote free compilers for them. Despite Smalltalk's syntactic simplicity it is a LOT more work to make a free Smalltalk than a free C compiler. For eample, even with massive effort into performance moderm Smalltalks are around 1/4th the speed of normally optimized C code at best. Some free version written by a few people is going to be very slow. For classic Smalltalk you also need the entire environment for it to be useful (gc, classes, editors). That's a huge hurdle compared to writing a simple compiler.
So add that to a long list of other problems and it's easy to see why it fails. Things like lack of precedence for operators. Requiring a monolithic environment for what is essentially a scripting language (as contrasted to for example SmallScript). Having a program-modifiable core set of classes which means there are no guarentees of what core classes do, but more importantly it means that often two sets of code cannot be combined into the same program due to conflicting changes.
By far the worst thing about Smalltalk is that it is too simple and too elegant. How can that be? A lot of times people have to be able to understand the elegce and beauty of something or they end up just basically pissing all over it. So what happens when you mix a bunch of below-average developers with Smalltalk and you get all sorts of inventive ways to totally destroy all the benefits of Smalltalk. Which basically sucks big time if you are in the group that 'gets it'.
Also, just a few corrections: Java anonymous classes are actually "better OO" since they are classes that are specific to the usage and they can group related methods together as that type -- that's the point of OO in the first place. Note that Simula invented objects way before Smalltalk (simula also had sub-objects akin to inner classes). Java also indirectly inherits the highly successful fundamental syntax from there. Also, Smalltalk supports generic programming but not generics... it lacks the static typing information of List<String> for instance. Whether that's a good thing or not depends on what kind of code you are writing of course...
These people would beg to get the credit they deserve: http://jxos.org/.
Micosoft Research can't credit this as their inspiration because of the four-letter word (ie Java).
I actually have a dual-core machine at work and the only single program I have ever seen use more than one CPU at a time was written in Java. Even the single-threaded Java programs use like 110% CPU as the garbage collector (or whatever) runs in parallel (this was the genome benchmark from language shootout iirc). As in, "cpu time 110s, wall clock time 100s". Java is already ahead on multi-core.
Basically you are smoking crack thinking that compiled languages are going to thrive on multi-core. They aren't. Hell it's hard enough to keep data access correct with just a single thread. And with a "safe" language like Java the compile *knows* there are no aliases for an array, so some kinds of access can automatically be done in parallel, whereas in a separately compiled/linked language like C there are few ways for the compiler to know this. When there's not enough active threads per core the other core's can GC the inactive programs. Safe languages have huge advantages on multi-core.
Blizzard's success is because they don't make the graphics top-notch and they don't have the best story and they don't have the the original ideas. What they do have down to a science is addicting people.
I mean hell, the people in this thread are saying it's because of years of support, or the awesome graphics, or the original story line... no, that's just excuses made up to rationalize the addiction. To this day I still have to restrain myself from breaking out Diablo II and playing it again after going through the same game a dozen times. It's not for the ten-year-old graphics, or to hear the voice acting when Flavie says she can hardly believe I've defeated Blood Raven, or to click though quests without reading because I've memorized them.
No, it's to get the click fix.
I want a cell phone that:
* makes calls
* has a list of numbers
* has caller id
* has voicemail of some kind
That's it. Well there is one other thing... I want it to be a wireless USB drive. That would be so useful to be able to go to any computer and type \\myphone\ and access whatever I had put on there. Without having to plug anything in, mess with cables, go through some service, etc.
I couldn't give a rat's ass about learning how to edit word/excel documents using a tiny numeric keypad. Or watch movies on a 1" screen. Or whatever else these newfangled phones are doing these days.
Does radio free america or whatever have a call-in show from north korea? No, because you call in and They come and get you. So what's up with all these systems like freenet or this thing where the person you are trying to get info to needs to 'talk back'?
The thing to do is to have somebody in the (so-called) free world have a bunch of information to get into china and then broadcast it. Send random packets with information to each computer in china. Then the only thing they need to do is listen to it, not request it. For example if you have a special apache plug in it sends spoofed packets that only the end-user computer can tell are not the right next packet (based on tcp window or something). So then they get the real next packet plus a bogus packet with banned info in it. And everybody in china gets it by doing nothing so nobody can be held responsible.
Somebody in china should be able to do tcpdump | some small script and just get a continuous stream of info to look at. Without having to send out anything. Sure, they can firewall whatever packets, but then just broadcast on some connections they allow.
The FCC is the new FEMA.
The RIAA's fundamental problem is that sharing mp3's is like the 6-degrees of bacon... User A & B copy each other's music then they each have a copy so A has A+B and B has A+B. Then B does this with C and now C has A+B+C. And so on until Kevin Bacon has all the music every published. That's their real problem.
Sharing of files 'on demand' like in direct connect or bittorrent or kazaa or *mule or whatever is just convenient. But mp3's are too small and drives are too large these days so with actual swapping by actual people in person (which at least previously was considered fair use) you could just copy everything. A single optical disk will be able to hold a month's worth of continuous music just this year. So the real problem for everybody not RIAA is how to know what to play.
I thought it would be something cool like the glasses had a HUD showing the waveform it is hearing. That would be really useful because sometimes there are loud sounds that my father simple cannot hear no matter how amplified they are (back then they didn't wear hearing protectors in the army). So being able to see a huge spike at 14k could be very helpful. Or something that folds the higher frequencies into lower ones (maybe everybody sound like barry white). Or eventually glasses hooked up to a computer that does 'closed captioning' of normal conversation.
I do the same thing (only with SuSE 10). The only thing you really need 100% performance for rather than say 90% in VMWare is games. I tried dual-booting, but in the end it was too much trouble to reboot even for just 30 minute of unreal tournament. And inevitably you want to switch to the browser to look something up, so you have firefox installed. And you want to check your mail. And get IMs.
The best thing for Linux would be something like a free VMWare player image of a bare-bones Ubuntu configured to save everything else to an expandable file on the user's drive. Who wants to buy partition magic, repartition, burn the installer CDs, say "Yes" to "This operation may totally screw you", then dual boot -OR- totally ditch Windows in one go? Just so they can see what Linux is all about, or run OSS apps the right way, or get extra security for web browsing, etc? Nobody, and that's why Linux destop adoption is so poor.
Reflection in a modern JVM is about 1/2 speed of a normal call if you are using a cached Method instance. The JVM actually compiles Method objects into actual classes and dynamically loads them. Typically the invocation of a method is far less time than the body of the method and events happen less than say a hundred times a second anyway, so effectively there is no slowdown to using reflection this way in a graphics toolkit. It's a good choice to reduce the complexity of the API, especially given a more complicated but faster API that people can use if necessary.
That means Bush will survive the apocalypse! Huzzah!
What I'm suggesting is changing some flags/options in the ip or tcp/udp headers so that data is automatically encrypted. So just add this to the open source protocol stacks and most connection you make will be encrypted to some degree automatically... you wouldn't know that you were talking to the proper site, but you would at least know that your connections would be much more difficult to be intercepted automatically.
There would be some configuration that say you want lots of throughput (xtea) versus lots of encryption so a server can do like 5% more overhead but make it millions of times harder to read the traffic. The normal exchange, tcp syn with reply of syn,ack, provides enough steps to construct a shared 'secret' key, so your experience wouldn't need to be slowed down or degraded at all. It would just be much harder to intercept en masse.
Of course, this will be hard to use unless your language supports closures. Sadly, most imperative languages (e.g. Java) do not. But, hey, I'm a functional language person so I'm not going to try to defend them.
Java supports closures just fine, as objects. A java anonymous class is a closure. If that really offends you, try calling them multi-closures, since they combine multiple functions with a lexical scope instead of being limited to just one function.
In some languages you have a closure of just one function, but that goes against the "strict constructionists" as in Eiffel since you have objects with no state (Meyer would throw down, as if anybody would care). Or you have the problem of being only weakly object oriented, since every closure is the same type (for example you can't get a closure object and perform a meaningful instanceof operation). For these reasons, Java's anonymous inner classes make the most sense for a closure in an OO language... if only the syntax was a bit less.
Why do C++ people use the acronym RAII "resource acquisition is initialiation" to talk about when the object is uninitialized? The acronym is just completely wrong, because languages like Java are far more "RAII" than C++ (in C++ you can actually allocate resources without initializing them). It really should be something more like RAIS, "resource acquisition is scope", or LSILS "lexical scope is logical scope", or ODOL "object destroyed on leaving", or RROL "resource released on leaving", or something that actually makes sense. To me it just sounds like more arbitrary complexity and nonsense, so basically like everything else C++.
You have people attend the voting, watch the people get their voting cards and walk to the private booth, watch them come out and put their card in the box. Repeat until the end of voting, then watch as the boxes are emptied and counted. Then the dictrict totals are printed in the paper. If they don't match, the people watching raise a fuss. Have people in lots of precints doing this, or all of them for that matter, and any cheating is easily prevented.
Countries like Canada have this system. Their elections are completely verifiable by voters, but still anonymous. My polling place usually has about 500 people vote, and I *would* verify the polls, but here in Virginia a normal voter *cannot* watch the voting take place and *cannot* be there to watch the count. It's illegal and you will get arrested for insisting that you should be allowed to verify your local polling. There is no legitimate reason why. The only reasons that aren't nefarious and still make sense are the pollers are lazy and the people want instant results.
And you wonder why it's legal to download music in Canada, or any of the other ways where Canada is a better America than America.
I'd actually like to see a Java port of vim. I looked at the source code and it doesn't seem too hard. The vast majority of code is ifdef's for various architectures; this could all be replaced with one straight implementation in Java. The rest of the code seems fairly well encapsulated in object-like structures, so it should be somewhat easy.
This would make integrating jvim into eclipse and adding intellisense into it much easier. Of course it would be slower and hunkier, but it would still be cool to see all that code in Java. It would make a fun port imo.
I won't really be worried about bird flu in humans until Rove is indicted and Bush needs a really bad catastrophe to distract everyone's attention or just declare martial law over.
...
1. Spread bird flu
2. Declare martial law
4. Grand jury records destroyed in 'restoration' attempt.
5.
6. Exxon profits
There is no step three.
The real fix is to have the clients tell the server what data they sent by sending it a list of hashes from each block. This could be a very weak / short hash and still be effective in mitigating cheaters. It would also help identify clients (*IAA) trying to poison the torrent (they would have to report their stats or be isolated from the main part of the torrent).
People used to die all the time. And they still do, in car crashes and victims of poverty or drugs. It was 3k people that died here and what a couple hundred in britain? It's small potatoes. Maybe that offends somebody that knows somebody who died but people die all the time regardless.
An exploding subway is annoying and scary, but it's not a serious threat to our way of life. But taking away our democracy is a serious threat to our way of life. The only actual solution to a biological or nuclear threat is to restructure our society into islands with less interaction. Kinda like a jail with a village in each cell. You might know your neighbors too and you wouldn't even have to rat on them! It might be a good thing, if only that's what we were talking about instead of more politburos.
Have you ever noticed how Bush is taking the blame for this from every single angle imagineable?
And it's about time, that.
He was responsible for the global warming that caused the hurricane
Bush cut alternative energy research and gave handouts to oil companies. He cut targets for efficient vehicles and ceded our leadership in fuel cells europe and asia. He allowed more pollution from power plants. So yeah, he's is partly responsible for the global warming.
he was responsible for not immediately sending in the military
Yep, he sure is. They're in Iraq, and they certainly didn't get in there very fast (ie not until FOX news even had to start calling it a damn shame).
he is being blamed for the guns in the hands of criminals
Bush did cut gun checks, so sure I guess he deserves a little blame for that one too.
for the toxic chemicals in the water
Bush cut funding for repairing and upgrading the levies. Bush also cut support for restoring wetlands, which act as a huge sink for the hurricane's power. So you are right again, he is to blame for this.
for the gas panic
We've been down a million barrels a day for 2 years due to Iraq being largely off-line. There's probably also a conspiracy to keep refinement low to jack up prices (hey it worked for Enron v. California why not try again?). but that's just idle speculation. So score another one for Bush.
for the fact that most of the refugees in the superdome were black
When your policies are to favor the have's and crap on the have-not's, then it ends up where the poor, of which a lot are black, don't even have enough money for a ride out of the city (or didn't even hear about it because they don't have cable, internet, etc). Cutting the estate tax, cutting the income tax (which people making 10k don't pay anyway) put more into the hands of the rich and less to the poor from goverment services. Raising the cost of drugs by not letting the government negotiate for a good price also makes the poor poorer. Etc. So score another one for Bush.
for causing a shortage of personnel to to the Iraq war
Nearly 50% of the guard is overseas, so yes this is another legitimate criticism of Bush.
every single angle of this is being blamed on Bush even though things are pretty much the same way they've been for years
Yeah five years of decline. It's catching up to the point where things are starting to fall apart all over. But you also forgot:
* Diverting money from homeland safety to haliburtonesque cronies.
* Ensuring us that Trent Lott will have a fabulous new mansion again.
* Telling local new orleans people to go to the local underwater salvation army store to get clothers.
* Saying nobody could have predicted a hurricane attacking us.
* Appointing a show-pony manager, literally, as FEMA director.
* Moving a proven effective FEMA from a self-contained disaster response into a giant spy and everything else agency.
and years and New Orleans is run by democrats.
Gee and you don't think that could have anything to do with it? I mean jesus, if you can't tell that Bush is being criticized for these things because they are true and Bush is responsible then there's really no words to describe how pathetic that is.
Bush is a classic mis-manager. He focuses on one problem at a time at the cost of others. He takes a LOT of time off. He makes decisions on problems he doesn't remotely understand. He surrounds himself with yes-men and cronies. He doesn't fire anybody no matter how incompetent... nobody has been held accountable in his administration for any of the crap that's happened. He goes to great lengths to hide everything in case something bad gets out, instead of owning the problems and fixing them.
But what can you expect? Bush literally failed at everything in his life except 'frater
Right because religion has changed so much since 200 years ago. The only significant thing that has really changed in that time is that now ignorant blowhards can post to slashdot instead of to the town billboard. Or get on FOX News and 'balance' out some more facts with faith. Now the whole world can know how stupid you are! Now the rationale layed out by the founding fathers is written in Greek! Olde English, that's Greek right? Yay I can celebrate my ignorance by ignoring history... err what was that saying again?
Those who ignore history are doomed to ignorance? Something like that. Nevermind though, the person who said is long dead now, so they must suck.
Preach on, Brother Beavis.
1) Computers don't speak natural languages. Computers are exact and natural languages are not, so a computer language that pretends to be a natural language is trying to make water run uphill. It's solving the wrong problem. Make a language that we can understand as something exact, don't try to make a vague imprecise thing like a natural language translate to computer exactness. It's dumb.
2) Existing programming models (C#, Java) "allow smalltalk-like abstration". C# and Java do not know addresses and such before the program runs. They aren't linked like C++ programs, where the code has already been emitted and addresses just need to be relocated. They don't even have fixed offsets for most things since classes can and (at least for Java) are subsequently loaded that cuase any dispatch or offset table to be rewritten at runtime. In contrast, Smalltalk does know all the offsets and addresses ahead of time since it compiled things during development into an monolithic image. So really smalltalk is more like C/C++ in terms of knowing addresses, which is basically a straw-man issue. Having everything be an object has nothing to do with knowing addresses or not, but everything to do with Smalltalk being a really, really poor choice for any non-trivial mathematics whereas C# and Java fairly decent choices for math.
3) "It is very essential to be able to add some methods in base classes in the development of a program" or it "makes a program more complicated." True, if you think changing the core library and environment isn't more complex. It is more complex... you have to know the entire system to know how your change to a core class may affect something else (even if you just add a method, another part could expect that method *not* to exist). It also makes it hard to merge several such programs together. And it makes it hard to upgrade to a newer version of the core classes. In short, it's an idea that makes sense to intelligent programmers, in the short term. It's just not practical in the long run or for the masses. It's a drawback for smalltalk.
Smalltalk died because it solved the problem with elegance instead of practicality. It's the same reason why BSD is being killed by Linux (ie /bin, /usr/bin, /usr/local/bin, etc ad nuseum scheme makes sense but isn't practical as just dumping everything in /usr/bin).
Sure, the Smalltalk language fits on a postcard and is mostly self-consistent, but only zealots actually care about that because people are perfectly capable of using complex syntax if it's more practical. For example, operator precedence was invented way before computer languages, and it was invented for a reason -- it helps people understand the equations. In each decade the languages derived from algol and simula syntax (C, C++, Java) have dominated everything but scripting because they appeal to how we think even though they are most certainly not {elegant;}!
Another elegant but not practical solution is to make everything an object. Just making a few non-object types makes interpreted Java faster than highly optimized, JIT'd Smalltalk. Smalltalk can't be used for significant numerical work whereas Java isn't a great choice but is rarely over 30% slower (vs typically 4-20 times slower for the fastest Smalltalks).
And finally, the third major nail for Smalltalk is that the whole system is changable. This is the elegant solution since you can solve some large problems by making just a few minor tweaks. But the industrial revolution replaced customized individual parts with completely interchangable parts. You don't custom engineer the bolts in a suspension bridge to make them just so, you slap in the cheapest pre-designed ones that have the qualities you need. In Java you can't change a system object or really even patch any object if you don't have the source, but this is far more practical because there are no surprises. You don't have to know the entire class library to know how redefining Object's equals method is going to affect some obscure part (that maybe you aren't even using in your software... yet).
And it's not like Java doesn't also suffer from this... C# delegates are a crappy idea in terms of elegance or 'good OO' (they are essentially function pointers)... Java's inner classes actually make sense, but they just aren't as practical as delegates.
I use Reiser 4 fs on gentoo and can assure you that it does indeed suck big time in some ways. It's way faster than pretty much any other filesystem, but every so often anything IO related freezes for maybe 5-10 seconds while reiserfs is, I assume, rebalancing the filesystem tree. The CPU monitor shows constant IO and the drive light is flickering during that time, so it's actually actively doing something.
What happens is that you do a bunch of stuff and then ":wq" in vi and have to every so often have to wait a considerable time. I suppose part of the problem is gentoo's 120+ thousand files for portage and 40k files for the metadata cache. Reiser 3 was actually much better in this regard as it didn't pause for anywhere near as long.
So I can see why they wouldn't encourage people to use a filesystem that is deprecated (reiser 3, ext2, etc) or one that is not gentoo friendly like reiser 4. Maybe it should be an option on the installer, but either way it's not a big deal since JFS is almost as fast and certainly more reliable.
I'm sure anyone who has ever used a smalltalk system can hardly deny its simplicity, and elegance, compared to that of C++ or even Java. The problem really existed in the fact that smalltalk wasn't available cheaply. It was heavily controlled by Xerox, and compilers for it tended to be far too expensive for novice programmers, or startup companies, to afford.
Mostly that was true for all languages. You had to pay for pascal and C compilers for the Amiga for instance, so people wrote free compilers for them. Despite Smalltalk's syntactic simplicity it is a LOT more work to make a free Smalltalk than a free C compiler. For eample, even with massive effort into performance moderm Smalltalks are around 1/4th the speed of normally optimized C code at best. Some free version written by a few people is going to be very slow. For classic Smalltalk you also need the entire environment for it to be useful (gc, classes, editors). That's a huge hurdle compared to writing a simple compiler.
So add that to a long list of other problems and it's easy to see why it fails. Things like lack of precedence for operators. Requiring a monolithic environment for what is essentially a scripting language (as contrasted to for example SmallScript). Having a program-modifiable core set of classes which means there are no guarentees of what core classes do, but more importantly it means that often two sets of code cannot be combined into the same program due to conflicting changes.
By far the worst thing about Smalltalk is that it is too simple and too elegant. How can that be? A lot of times people have to be able to understand the elegce and beauty of something or they end up just basically pissing all over it. So what happens when you mix a bunch of below-average developers with Smalltalk and you get all sorts of inventive ways to totally destroy all the benefits of Smalltalk. Which basically sucks big time if you are in the group that 'gets it'.
Also, just a few corrections: Java anonymous classes are actually "better OO" since they are classes that are specific to the usage and they can group related methods together as that type -- that's the point of OO in the first place. Note that Simula invented objects way before Smalltalk (simula also had sub-objects akin to inner classes). Java also indirectly inherits the highly successful fundamental syntax from there. Also, Smalltalk supports generic programming but not generics... it lacks the static typing information of List<String> for instance. Whether that's a good thing or not depends on what kind of code you are writing of course...