Who the hell modded this up? The Mozilla source is GPL. The only time you might have to pay the developers is if you're wishing to distribute Mozilla as a closed source app, in which case you'd need to negotiate an alternate (non-GPL) license with each contributor to the codebase. Because it's GPL, Nokia can fork it all they want, call it Nokzilla or whatever, and code it up to their hearts content and they wouldn't have to pay anyone. The only caveat is that the GPL virus kicks in and they have to also release their source code to be GPL compliant.
Re:My experiences with Gmail invitations
on
Gmail in the News
·
· Score: 2, Funny
Silly wabbit, tricks are for kids.
Re:My experiences with Gmail invitations
on
Gmail in the News
·
· Score: 1
Well, I'm sure some enterprising soul will login to mailinator and grab it. In case you didn't get the reference (and the reason for the smiley), mailinator allows anyone to check email without using a password. So somebody will surely benefit from the invite.:)
Re:My experiences with Gmail invitations
on
Gmail in the News
·
· Score: 1
A bit late, but send it to gmail@mailinator.com:)
Heh, I don't need it... got an invite from Google about a week ago.:)
Yep. Wolfpack Empire seems to fit the bill here. It's also open source, not that that's really important... but the price is right! Here's the lengthy description from the "about" page:
Empire is a simulation game of unique proportions. While it concentrates mostly on the war simulation aspects, it also has economic, political, and other more subtle real-world parallels.
Empire is a game that is played against human opponents over a computer network, usually the internet. It is possible for a game to last from a few hours to many months. While the common goal of an Empire player is to "win", there is no clear cut definition of what winning is. Players may seak to achieve whatever goals they want to achieve.
Typically, a game is "won" by a player or group of players who make a "win declaration" and defy the world to oppose their declaration. Such declarations usually must stand unopposed either for 24 hours or by all players still playing in the game. If they are opposed, they typically wipe out the opposition and re-declare. However, it should be noted that even finishing a game with a viable country can be considered a victory (especially for a new player).
Short games, called blitzes, require an intense and concentrated amount of effort on the part of players participating. They are a tremendous amount of fun if played against a full set of active players. Such games can heavily task your physical stamina. After many hours, your hands are dying to be unattached from the keyboard, your stomach is screaming for some form of sustenance, your family (if you have one) will wonder what deamon has possesed you and your brain will turn to putty, to say nothing of your digestive system and its need to purge itself once in a while. Ahh, Empire at its best!
"Regular" games usually have some sort of sign up period lasting a week or three, and will have a well announced start date. Games typically last around two months, give or take a month though some games have been known to go for the better part of a year. "Updates", which you may learn about in other parts of this guide, typically occur once a day. It is usually a good idea to be on the game around updates, though not absolutely necessary.
Empire is complex. There is no denying that. There are hundreds of thousands of 'pieces' in the game ranging from civilians to satellites to single units of food. The computer removes most of the complexity of the game, and allows you to manage things more easily. However, if you want to be the best of the best players, it will require you to micro-manage your country, paying attention to every detail. Small advantages in the beginning of the game can pay big dividends later. It is hard to catch up.
The learning curve for the game is, as a result, rather steep. But it is far from impossible to become a good player in just a few games. Once in a while there are players who become great in a few games. It's a matter of how good you really are at such games combined with your knack for managing the environment of the game.
Empire is not for the light of heart, nor the weak of mind. But for those who tread in the tortured landscapes of Empire battlegrounds, you will no doubt enjoy yourself on some level, perhaps satisfying inner neo-lithic desires in the process.
Quite simply, in this writer's mind Empire is the best game ever. Bar none.
RAID 5 - better keep an extra drive Or you'll be down until the replacement arrives
Um, really? Software RAID 5 does require downtime, but hardware implemented RAID 5 allows for hot swapping out of the bad drive, assuming you have a decent controller card.
Am I missing something, or did you just suggest writing a JVM in Java? Which language will you use to implement the JVM that will run your Java-implemented JVM?
It's called bootstrapping. For example, the GCC compiler can compile its own source code. Of course, the initial version of GCC had to be compiled with something else... similar to how the initial JVM had to be written in something else.
I find it ironic that Winer was a big proponent of the Cluetrain Manifesto. Point 31 says:
Networked markets can change suppliers overnight. Networked knowledge workers can change employers over lunch. Your own "downsizing initiatives" taught us to ask the question: "Loyalty? What's that?"
Yep. Looks like loyalty just went out the window.:)
And what are the legal ramifications? AFAIK, the content of those blogs is still owned by the authors, if he's holding it so that it is inaccessible to them that amounts to theft, doesn't it?
Oh, give me a break. If I voluntarily upload my stuff to your server, how is that theft? I imagine if he started charging, it would then become extortion and kidnapping, right? That's about the lamest argument I've ever heard, which means that in a California court it'll probably work.
What would be really fun to see is an assembly version of quicksort. It would probably finish in about 10ms for 24,000 items.:)
But I think we've exhausted the bubble- to quick-sort comparison already. Even a bloated interpreted environment with all its overhead can hold up pretty well against optimized assembly given a sufficiently better algorithm.
The numbers I've seen thrown around are more like 0.01% response rate. Then again, the average order is around the $40 mark. So yeah... I don't think he's hurting too bad.
Yes. Version 1.x used port 30729. Version 2.0 introduced a new, more efficient network protocol and therefore changed the port number to port 6942, easily remberable by "Six times nine is fourtytwo".
Um... is it just me, or is memorizing a port number using an incorrect math calculation *not* intuitive?
They still don't have an anti-lock brake system and are still using a straight pan-head but they do have the best damn seat belts and air bags in the business. Too bad their utter lack of attention to common performance enhancment technologies means you'll never go fast enough to NEED those super duper safety features.
What? Since when is system security a function of performance? A better analogy might be having a Ferrari and a Honda. Doesn't matter how fast it goes, if you come under small arms fire you're just as dead. Or your computer is just as hacked. Adding bulletproof glass might slow the car down due to extra weight or something -- yeah, stretching the analogy real thin here. But if security is a concern to you as a sysadmin, would you rather have an insecure fast system or one that's potentially a bit slower but resistant to attacks?
Hrm, i must be confused about the term 'spatial'. Steve Jobs thinks it makes users janitors, but... i always thought the whole spatial concept was invented by Apple. The whole the-directory-is-a-folder-on-your-screen thing...? Am i confused, or has Jobs changed his tune, or what?:/
Very interesting. I changed around the numbers and re-ran the javascript version. In Opera, still on a 1.4GHz P4-M notebook, it finished with the following times:
3,000: ~580ms 12,000: ~3.9s 24,000: ~11.2s
Then I tried it under Internet Explorer:
3,000: ~610ms 12,000: ~5.8s 24,000: ~21.4s
And, the interesting part, under Netscape 7:
3,000: ~171ms 12,000: ~1s 24,000: ~2.8s
So it looks like Netscape has the best javascript implementation, whereas IE's is a real pig. I haven't tried Mozilla, Firefox, etc. but I'm guessing there's no real difference from Netscape.
Not bad, you certainly owned the assembly Bubblesort. However your program only manages 40,000 comparisons (compared to my 16,000,000) per second.
I knew it would be less performance. But it seems to validate my assertion that a better algorithm can do better than a hand-coded assembly poor algorithm even if it's far less than optimal.
No, my point all along is that it is essential for any good programmer to know how to program in assembly language, simply because it's necessary to really understand how the underlying hardware works so you can write effective code.
Sometimes knowledge of the underlying hardware is required. For most modern desktop systems, writing typical application software doesn't require this and it's completely unnecessary.
Your blind statement that your inefficient coding of what you're saying is an efficient algorithm is better than any possible efficient coding of a less efficient algorithm simply proves that point.
How's that? Your point is that it's necessary to really understand how the underlying hardware works. Okay, great. So if you write perfectly optimized assembly using an O(n!) algorithm, are you saying it'll be better performing than an O(n) algorithm written by somebody who doesn't really understand the hardware? That's absurd.
If you had a strong foundation in assembly, you wouldn't have made such a broad statement, because you'd understand the large demands quicksort has for system resources. Recursion is computationally very expensive to do, but in your high level ivory tower, that's all hidden from you. By choosing a platform that is incapable of the requried recursion, I just highlighted the point.
You shouldn't assume things you don't know. Given additional constraints, I would have selected a different algorithm. It's very rude of you to assume I'm such an idiot that I'd choose an algorithm which is impossible to implement on certain hardware. I mean, really. You should give people a little more credit than that before making such a stupid statement.
In any software project, part of planning includes an analysis of the target platform and what constraints will be imposed. In the case you mentioned, a simple microcontroller, I would likely also choose assembly for performance and due to size constraints. However, I probably wouldn't choose bubble sort as there are much more efficient algorithms available which don't consume much more additional resources and which would give much better performance. As for what I would choose, that's what detailed analysis is for.
Given modern desktop systems with sufficient resources, I'll take my high-level ivory tower, thank you. I've been in the dirty dungeons of assembly before and I'll take the tower over the dungeon whenever I can.
Here's some hacked together javascript, qsort implementation ripped from the web. On a P4-M 1.4GHz notebook, it takes 581ms while running in Opera under Windows XP. Slashcode screws up the formatting somewhat... the "&nb sp;" part gets incorrectly inserted.
function _pm_array_qsort(vec,lo,up,cmp_fun){
var i, j, t;
while(up > lo){
i = lo;
j = up;
t = vec[lo];
while(i < j){
while(cmp_fun(vec[j],t) > 0)
j -= 1;
vec[i] = vec[j];
while((i < j) && (cmp_fun(vec[i],t) <= 0))
i++;
vec[j] = vec[i];
}
vec[i] = t;
if(i - lo < up - i){
_pm_array_qsort(vec,lo,i-1,cmp_fun); lo = i+1;
} else {
_pm_array_qsort(vec,i+1,up,cmp_fun); up = i-1;
}
} } function _pm_array_defcmp(a,b){
return (a == b) ? 0 : (a > b) ? 1 : -1; } function pm_array_qsort(vec,lo,hi,cmp_fun){
if(vec == null){
return;
} else if(cmp_fun == null){
_pm_array_qsort(vec,lo,hi,_pm_array_defcmp); &nb sp; } else {
_pm_array_qsort(vec,lo,hi,cmp_fun);
} }
var x = new Array(3000);
for (var i = 0; i < 3000; i++) {
x[i] = Math.round(Math.random() * 255); // output initial array contents
document.write(x[i] + " "); }
Well, since terraforming is altering the land (terra = earth) then the equivalent for people would be bioforming.
If you fork, you have to pay developers.
Who the hell modded this up? The Mozilla source is GPL. The only time you might have to pay the developers is if you're wishing to distribute Mozilla as a closed source app, in which case you'd need to negotiate an alternate (non-GPL) license with each contributor to the codebase. Because it's GPL, Nokia can fork it all they want, call it Nokzilla or whatever, and code it up to their hearts content and they wouldn't have to pay anyone. The only caveat is that the GPL virus kicks in and they have to also release their source code to be GPL compliant.
Silly wabbit, tricks are for kids.
Well, I'm sure some enterprising soul will login to mailinator and grab it. In case you didn't get the reference (and the reason for the smiley), mailinator allows anyone to check email without using a password. So somebody will surely benefit from the invite. :)
A bit late, but send it to gmail@mailinator.com :)
:)
Heh, I don't need it... got an invite from Google about a week ago.
Empire is a game that is played against human opponents over a computer network, usually the internet. It is possible for a game to last from a few hours to many months. While the common goal of an Empire player is to "win", there is no clear cut definition of what winning is. Players may seak to achieve whatever goals they want to achieve.
Typically, a game is "won" by a player or group of players who make a "win declaration" and defy the world to oppose their declaration. Such declarations usually must stand unopposed either for 24 hours or by all players still playing in the game. If they are opposed, they typically wipe out the opposition and re-declare. However, it should be noted that even finishing a game with a viable country can be considered a victory (especially for a new player).
Short games, called blitzes, require an intense and concentrated amount of effort on the part of players participating. They are a tremendous amount of fun if played against a full set of active players. Such games can heavily task your physical stamina. After many hours, your hands are dying to be unattached from the keyboard, your stomach is screaming for some form of sustenance, your family (if you have one) will wonder what deamon has possesed you and your brain will turn to putty, to say nothing of your digestive system and its need to purge itself once in a while. Ahh, Empire at its best!
"Regular" games usually have some sort of sign up period lasting a week or three, and will have a well announced start date. Games typically last around two months, give or take a month though some games have been known to go for the better part of a year. "Updates", which you may learn about in other parts of this guide, typically occur once a day. It is usually a good idea to be on the game around updates, though not absolutely necessary.
Empire is complex. There is no denying that. There are hundreds of thousands of 'pieces' in the game ranging from civilians to satellites to single units of food. The computer removes most of the complexity of the game, and allows you to manage things more easily. However, if you want to be the best of the best players, it will require you to micro-manage your country, paying attention to every detail. Small advantages in the beginning of the game can pay big dividends later. It is hard to catch up.
The learning curve for the game is, as a result, rather steep. But it is far from impossible to become a good player in just a few games. Once in a while there are players who become great in a few games. It's a matter of how good you really are at such games combined with your knack for managing the environment of the game.
Empire is not for the light of heart, nor the weak of mind. But for those who tread in the tortured landscapes of Empire battlegrounds, you will no doubt enjoy yourself on some level, perhaps satisfying inner neo-lithic desires in the process.
Quite simply, in this writer's mind Empire is the best game ever. Bar none.
Geoff Cashman (Mithrilien)
RAID 5 - better keep an extra drive
Or you'll be down until the replacement arrives
Um, really? Software RAID 5 does require downtime, but hardware implemented RAID 5 allows for hot swapping out of the bad drive, assuming you have a decent controller card.
Yep, that'll kick javascript ass! :)
Am I missing something, or did you just suggest writing a JVM in Java? Which language will you use to implement the JVM that will run your Java-implemented JVM?
It's called bootstrapping. For example, the GCC compiler can compile its own source code. Of course, the initial version of GCC had to be compiled with something else... similar to how the initial JVM had to be written in something else.
Yep. Looks like loyalty just went out the window.
And what are the legal ramifications? AFAIK, the content of those blogs is still owned by the authors, if he's holding it so that it is inaccessible to them that amounts to theft, doesn't it?
Oh, give me a break. If I voluntarily upload my stuff to your server, how is that theft? I imagine if he started charging, it would then become extortion and kidnapping, right? That's about the lamest argument I've ever heard, which means that in a California court it'll probably work.
What would be really fun to see is an assembly version of quicksort. It would probably finish in about 10ms for 24,000 items. :)
But I think we've exhausted the bubble- to quick-sort comparison already. Even a bloated interpreted environment with all its overhead can hold up pretty well against optimized assembly given a sufficiently better algorithm.
The numbers I've seen thrown around are more like 0.01% response rate. Then again, the average order is around the $40 mark. So yeah... I don't think he's hurting too bad.
Ah, missed that -- I shall forgo wearing my geek hat for the day and meditate on whales and petunias.
Yes. Version 1.x used port 30729. Version 2.0 introduced a new, more efficient network protocol and therefore changed the port number to port 6942, easily remberable by "Six times nine is fourtytwo".
Um... is it just me, or is memorizing a port number using an incorrect math calculation *not* intuitive?
Same thing has been around for a while with www.mailinator.com.
They still don't have an anti-lock brake system and are still using a straight pan-head but they do have the best damn seat belts and air bags in the business. Too bad their utter lack of attention to common performance enhancment technologies means you'll never go fast enough to NEED those super duper safety features.
What? Since when is system security a function of performance? A better analogy might be having a Ferrari and a Honda. Doesn't matter how fast it goes, if you come under small arms fire you're just as dead. Or your computer is just as hacked. Adding bulletproof glass might slow the car down due to extra weight or something -- yeah, stretching the analogy real thin here. But if security is a concern to you as a sysadmin, would you rather have an insecure fast system or one that's potentially a bit slower but resistant to attacks?
It's three balls above a chessboard thing.
:)
Did you really need to render it to get that?
So let's just get this straight - there is no such system as the "Sega Deramcast."
Perhaps he also intends to include a P-P-P-Powerbook with the lot.
Hrm, i must be confused about the term 'spatial'. Steve Jobs thinks it makes users janitors, but... i always thought the whole spatial concept was invented by Apple. The whole the-directory-is-a-folder-on-your-screen thing...? Am i confused, or has Jobs changed his tune, or what? :/
Here's the background on what Steve Jobs said.
What would that be? A young bisexual lamb with a spatula stuck up its ass tied up and slow roasting over a charcoal pit?
Very interesting. I changed around the numbers and re-ran the javascript version. In Opera, still on a 1.4GHz P4-M notebook, it finished with the following times:
3,000: ~580ms
12,000: ~3.9s
24,000: ~11.2s
Then I tried it under Internet Explorer:
3,000: ~610ms
12,000: ~5.8s
24,000: ~21.4s
And, the interesting part, under Netscape 7:
3,000: ~171ms
12,000: ~1s
24,000: ~2.8s
So it looks like Netscape has the best javascript implementation, whereas IE's is a real pig. I haven't tried Mozilla, Firefox, etc. but I'm guessing there's no real difference from Netscape.
Not bad, you certainly owned the assembly Bubblesort. However your program only manages 40,000 comparisons (compared to my 16,000,000) per second.
I knew it would be less performance. But it seems to validate my assertion that a better algorithm can do better than a hand-coded assembly poor algorithm even if it's far less than optimal.
No, my point all along is that it is essential for any good programmer to know how to program in assembly language, simply because it's necessary to really understand how the underlying hardware works so you can write effective code.
Sometimes knowledge of the underlying hardware is required. For most modern desktop systems, writing typical application software doesn't require this and it's completely unnecessary.
Your blind statement that your inefficient coding of what you're saying is an efficient algorithm is better than any possible efficient coding of a less efficient algorithm simply proves that point.
How's that? Your point is that it's necessary to really understand how the underlying hardware works. Okay, great. So if you write perfectly optimized assembly using an O(n!) algorithm, are you saying it'll be better performing than an O(n) algorithm written by somebody who doesn't really understand the hardware? That's absurd.
If you had a strong foundation in assembly, you wouldn't have made such a broad statement, because you'd understand the large demands quicksort has for system resources. Recursion is computationally very expensive to do, but in your high level ivory tower, that's all hidden from you. By choosing a platform that is incapable of the requried recursion, I just highlighted the point.
You shouldn't assume things you don't know. Given additional constraints, I would have selected a different algorithm. It's very rude of you to assume I'm such an idiot that I'd choose an algorithm which is impossible to implement on certain hardware. I mean, really. You should give people a little more credit than that before making such a stupid statement.
In any software project, part of planning includes an analysis of the target platform and what constraints will be imposed. In the case you mentioned, a simple microcontroller, I would likely also choose assembly for performance and due to size constraints. However, I probably wouldn't choose bubble sort as there are much more efficient algorithms available which don't consume much more additional resources and which would give much better performance. As for what I would choose, that's what detailed analysis is for.
Given modern desktop systems with sufficient resources, I'll take my high-level ivory tower, thank you. I've been in the dirty dungeons of assembly before and I'll take the tower over the dungeon whenever I can.