Let me understand this. This guys harddrive failed. So he fixed it. _Then_ he goes out and buys the deadharddrive.com domain name to post his story? This is the top level page on that domain.
I can understand it if he writes the story and posts it somewhere. But getting a domain name for it?
What's the reason? Do people really want a web site with hits on that much?
Well, no disrespect, if he enjoys it, more power to him. I just don't understand.
They aren't going to make more money by dividing their development resources between Netware and Linux. So there will be less development work done on Netware.
They are saying this to try to calm their customers so that they "abandon" netware as slowly as possible, giving Novell time to build up a platform and revenue stream based on Linux.
It is simple business strategy and it is very transparent.
Don't just accept what they say. Read between the lines.
It is popularly believed that SCO's strategy is to cause IBM so much trouble that they would rather buy SCO than fight them.
Another popular opinion is that IBM can continue this battle until SCO runs out of money and thereby winning this case.
Lets say that SCO's claims actually were worth 3 billion, and that IBM can delay a verdict in this case for 5 years and that SCO only has money to process this for 3 years.
Well, if I had as much money as, lets say Microsoft, I'd buy SCO 2 years from now and wrap things up and cash in $3 billion 3 years later.
They wouldn't even have to wait 3 more years. If it is inevitable that SCO will win, given enough time, and it has the money to win. Then SCO is worth $3 billion to IBM. So Microsoft (or Walmart) can buy SCO, tell IBM that they will litigate until they win, however long it takes, and offer IBM to buy SCO for $2.9 billion.
It could be because Unix (Linux) people in general are more knowledgeable and can figure out how USENET works.
If Microsoft makes a push to make it more visible by just adding an icon in the start menu and by helping a user to choose a few good news groups then that will change.
Aaaah, and then a few news groups will be hosted on msn, oh and a few of those groups can only be read if you are an MSN subscriber. The excuse used will be that that is the only way "we" can control spam.
And that was actually the point I was trying to make. What does auto generated keys have to do with our discussion about whether NULLs are a poison pill or not?
This is true, but generally, most fields aren't auto-generated ID's. And auto generated ID's are most definitely not NULL.
If all else fails, then use another Boolean field to indicate if something is missing.
Below you say that using coalesce would bloat the code, yet you suggest that a second column should be used and handled separately in your code?
Yes, but sometimes the DBA or you forget that rule, and Nulls sneak in. Note that you also have to remember to add a default value, or else you need to include something for each slot on INSERT.
This is true, but for most cases the best way to solve that is to make that column not nullable in retrospect. If there already are null values there and you wan't them to be the empty string, or something else, then that can be fixed with a simple update statement.
I am not sure it is standard/common. Each dialect seems to have a different de-nulling function. Plus, it bloats up the SQL code.
coalesce is standard and is supported by at least DB2, Oracle, Mimer SQL Engine and MS SQL Server.
Where I come from, 0 is also a number that is used, for instance, when you count your apples and you have no apples. Wait, you say, then use -1, well, that is what we use when we owe someone an apple. Whatever number you come up with, that is conceivably how many apples someone has or owes to someone else.
NULL is used to denote that the value is undefined. It is consistent for all data types.
In reply to the parent post (by MattRog) of your post, how on earth can a fully normalized database save you from not having to use NULLs? I'm sorry, I just can't follow your point.
I'd like to suggest that you follow the advice of at_kernel_99. If you don't want a value to be NULL, declare the column as not null. Problem solved.
Finally, to the parent post of at_kernel_99, if a NULL value can ruin a string, and you can't solve it by using at_kernel_99's excellent advice of declaring your string columns not null, why don't you use the SQL standard function called coalesce.
Instead of writing str1 + str2 and watch it be destroyed because one of them is null, write this
coalesce(str1, '') + coalesce(str2, '') --'' <-- this is actully two single quotes
Coalesce replaces the first argument with the second argument if it is null. In fact, you can give it any number of arguments and it will walk forward in the argument list until it finds a non null value.
A normal desktop machine can do about 100 transactions per second. This is limitied by the number of random writes an IDE drive can do per second.
And this system will probably be limited by disk writes, not by C# or web serving.
Anyway, 100 transactions per second and a normal user makes maybe one transaction per 10 seconds And he stays for maybe 5 minutes. During that period he causes 30 transactions. The system can therefor handle 3.33 users "per second".
This in turn means that the system can handle about 1200 visitors per hour.
If they can't make enough money off of 1200 visitors per hour to buy a second machine they shouldn't be building the first machine to begin with.
I'm guessing that the person that made up the requirements is a bit clueless and decided to play it safe.
You aren't exactly wrong regarding databases...
on
Can .NET Really Scale?
·
· Score: 3, Insightful
But you aren't exactly right either.
You are simplifying when you say to not 'embed applications' in the DB. I will interpret 'embedding applications' in the DB as doing business logic in the database.
Many times it is more resource efficient for the _database server_ to perform some of the business logic in the _database server_.
It can be more efficient for the database to do some operations which results in a relatively small result set rather than pushing a lot of data up to the application server.
The bottleneck will usually not be the CPU on the database server, it will be the disks. And the disks are better utilized when you do the manipulation inside the DB server itself.
This breaks the separation of the business logic tier, data access layer-paradigm. Design that is easy to maintain and design that is efficient to execute don't always go hand in hand.
I'm a pragmatist. I say, make an n-tier application. Make an object oriented design. But don't be rigid, break the rules if it suits your purposes. Hey, I even use a goto every once in a while when it makes my code faster or simpler.
What if everyone you know read the article and go "Hmm... maybe he _is_ a pervert?". Would you not feel bad? Would you try to defend yourself? If you defended yourself, would you then think it was unfair if someone said it was "Drama!!!".
It doesn't matter that it is about a game. This guy was violated.
If I roll a dice and keep it hidden from you and ask you to guess what number that came up and then show you the dice.
Or if I ask you to pick a number and then roll the dice before your eyes.
In both those cases you have the same chance of picking the right number.
If you have a machine emulate that and pick one of those two methods it will behave differently if you run the program from a memory state saved just before you picked your number.
In the first case the number was already generated, in the other case it will become different every time you run the program.
They don't know what method the fruit machines use.
That article proves nothing.
Also they state that they have a number between 1 and 12 and they can get it to a state where it gives you a number and whether you pick lower or higher, you loose. Well, guess what. That is perfectly logical. One in 12 rolls the number will be the same as the number showed to you and then both higher and lower will be wrong. You shouldn't have tried to win the bonus round.
I visited the Hoover Dam and they said that the life expectancy for it was about 1800 years and they said it was considered being hugely over engineered.
Also, apparently the concrete in the middle hasn't quite finished baking yet so it is still emitting a lot of heat.
It is also interesting that Las Vegas only gets about 4% of its power from the Hoover dam, which is interesting since it is so close to the dam. It turns out that when they built the dam they wrote long term contracts for who would get the electricity. The officials of Las Vegas thought they got their share, it was just that they had no idea that Las Vegas would grow so fast.
I didn't mean that Microsoft owns the server room right now. I was explaining my (conspiracy) theory on how what I think Microsofts strategy is to own the server room _in the future_.
I think that they are _almost_ in a situation where they can dictate what protocols and what services a server must provide, due to their control of the desktop.
So that was the idea in my previous post, the only other entity I know that would have a desktop/server combination powerful enough to challenge Microsoft (considering maturity, money and usability) is the Apple/Sun combination.
Linux with all its backers may get there in the future butit isn't there yet. Not until it has a strong foothold on the desktop.
1) Microsoft owns the desktop
2) Microsoft introduces.net, which makes Windows the only viable server platform if you want to use.net clients.
2.5) (you can argue that any web services platform can be used for.net clients and while that might be somewhat true it is less convenient. Also, how long will it be true?)
3) step 3, Microsoft owns the server room
The Sun and Apple combination are, put together, the two only companies that can challenge that.
In the long term there is a possibility that IBM with Linux may challenge Microsoft but that day is not even close.
Well, that is my take on it.
Some people just want to own their favorite movies. Now, VOD may put a dent into the movie rental business though.
The VOD is in a way very similar to the previous DVD standard called DIVX where you'd "buy" a movie but after you started watching it you had to finish watching it within 24 hours and after that it was locked up. The DIVX players had to be connected to the phone line for that very reason.
And DIVX disappeared. Although I believe that he is right in saying that VOD will be very important in the years to come I believe DVD (or some HDTV successor) will continue to thrive too.
An improvement can be designed to make the product better.
It can also be designed to make the product cheaper to produce, even if there is some kind of trade off.
At the end of the day, some executive is going to look at a suggested change and think: "will this help us make more money?"
So the latest version is always the best for the company, but is it the best for you? You can't be sure of that.
OK,
Let me understand this. This guys harddrive failed. So he fixed it. _Then_ he goes out and buys the deadharddrive.com domain name to post his story? This is the top level page on that domain.
I can understand it if he writes the story and posts it somewhere. But getting a domain name for it?
What's the reason? Do people really want a web site with hits on that much?
Well, no disrespect, if he enjoys it, more power to him. I just don't understand.
Hahaha...
This is wonderful.
Sir, you obviously belong in the group that doesn't understand binary numbers.
They aren't going to make more money by dividing their development resources between Netware and Linux. So there will be less development work done on Netware.
They are saying this to try to calm their customers so that they "abandon" netware as slowly as possible, giving Novell time to build up a platform and revenue stream based on Linux.
It is simple business strategy and it is very transparent.
Don't just accept what they say. Read between the lines.
It is popularly believed that SCO's strategy is to cause IBM so much trouble that they would rather buy SCO than fight them.
Another popular opinion is that IBM can continue this battle until SCO runs out of money and thereby winning this case.
Lets say that SCO's claims actually were worth 3 billion, and that IBM can delay a verdict in this case for 5 years and that SCO only has money to process this for 3 years.
Well, if I had as much money as, lets say Microsoft, I'd buy SCO 2 years from now and wrap things up and cash in $3 billion 3 years later.
They wouldn't even have to wait 3 more years. If it is inevitable that SCO will win, given enough time, and it has the money to win. Then SCO is worth $3 billion to IBM. So Microsoft (or Walmart) can buy SCO, tell IBM that they will litigate until they win, however long it takes, and offer IBM to buy SCO for $2.9 billion.
It could be because Unix (Linux) people in general are more knowledgeable and can figure out how USENET works.
If Microsoft makes a push to make it more visible by just adding an icon in the start menu and by helping a user to choose a few good news groups then that will change.
Aaaah, and then a few news groups will be hosted on msn, oh and a few of those groups can only be read if you are an MSN subscriber. The excuse used will be that that is the only way "we" can control spam.
World domination all over again.
"Build it and they will come"
I don't see how this relates to the discussion.
And that was actually the point I was trying to make. What does auto generated keys have to do with our discussion about whether NULLs are a poison pill or not?
Generally, auto-generated ID's are not zero or -1
This is true, but generally, most fields aren't auto-generated ID's. And auto generated ID's are most definitely not NULL.
If all else fails, then use another Boolean field to indicate if something is missing.
Below you say that using coalesce would bloat the code, yet you suggest that a second column should be used and handled separately in your code?
Yes, but sometimes the DBA or you forget that rule, and Nulls sneak in. Note that you also have to remember to add a default value, or else you need to include something for each slot on INSERT.
This is true, but for most cases the best way to solve that is to make that column not nullable in retrospect. If there already are null values there and you wan't them to be the empty string, or something else, then that can be fixed with a simple update statement.
I am not sure it is standard/common. Each dialect seems to have a different de-nulling function. Plus, it bloats up the SQL code.
coalesce is standard and is supported by at least DB2, Oracle, Mimer SQL Engine and MS SQL Server.
Where I come from, 0 is also a number that is used, for instance, when you count your apples and you have no apples. Wait, you say, then use -1, well, that is what we use when we owe someone an apple. Whatever number you come up with, that is conceivably how many apples someone has or owes to someone else.
NULL is used to denote that the value is undefined. It is consistent for all data types.
In reply to the parent post (by MattRog) of your post, how on earth can a fully normalized database save you from not having to use NULLs? I'm sorry, I just can't follow your point.
I'd like to suggest that you follow the advice of at_kernel_99. If you don't want a value to be NULL, declare the column as not null. Problem solved.
Finally, to the parent post of at_kernel_99, if a NULL value can ruin a string, and you can't solve it by using at_kernel_99's excellent advice of declaring your string columns not null, why don't you use the SQL standard function called coalesce.
Instead of writing str1 + str2 and watch it be destroyed because one of them is null, write this
coalesce(str1, '') + coalesce(str2, '') --'' <-- this is actully two single quotes
Coalesce replaces the first argument with the second argument if it is null. In fact, you can give it any number of arguments and it will walk forward in the argument list until it finds a non null value.
coalesce(mayBeNull1, mayBeNull2, mayBeNull3, ' IGiveUp')
I apologize in advance for stepping on your toes. I had a bad day at work (where I program in SQL, among other things, for a living).
Here's a table that summarizes the standards compliance for a few database systems.
I'm not happy that this is required either but there you are.
Discipline
It is even worse. I am clueless too.
It should be _12000_ users per hour.
Fortunately, it only makes my point even more valid.
A normal desktop machine can do about 100 transactions per second. This is limitied by the number of random writes an IDE drive can do per second.
And this system will probably be limited by disk writes, not by C# or web serving.
Anyway, 100 transactions per second and a normal user makes maybe one transaction per 10 seconds And he stays for maybe 5 minutes. During that period he causes 30 transactions. The system can therefor handle 3.33 users "per second".
This in turn means that the system can handle about 1200 visitors per hour.
If they can't make enough money off of 1200 visitors per hour to buy a second machine they shouldn't be building the first machine to begin with.
I'm guessing that the person that made up the requirements is a bit clueless and decided to play it safe.
But you aren't exactly right either.
You are simplifying when you say to not 'embed applications' in the DB. I will interpret 'embedding applications' in the DB as doing business logic in the database.
Many times it is more resource efficient for the _database server_ to perform some of the business logic in the _database server_.
It can be more efficient for the database to do some operations which results in a relatively small result set rather than pushing a lot of data up to the application server.
The bottleneck will usually not be the CPU on the database server, it will be the disks. And the disks are better utilized when you do the manipulation inside the DB server itself.
This breaks the separation of the business logic tier, data access layer-paradigm. Design that is easy to maintain and design that is efficient to execute don't always go hand in hand.
I'm a pragmatist. I say, make an n-tier application. Make an object oriented design. But don't be rigid, break the rules if it suits your purposes. Hey, I even use a goto every once in a while when it makes my code faster or simpler.
Riddle me this Batman, why is it an outrage when something like this happens in windows but when it happens in an alternate OS it is an overreaction.
Is it possible that you (and many others here) have double standards?
if you were slandered in the New York Times?
What if everyone you know read the article and go "Hmm... maybe he _is_ a pervert?". Would you not feel bad? Would you try to defend yourself? If you defended yourself, would you then think it was unfair if someone said it was "Drama!!!".
It doesn't matter that it is about a game. This guy was violated.
If I roll a dice and keep it hidden from you and ask you to guess what number that came up and then show you the dice.
Or if I ask you to pick a number and then roll the dice before your eyes.
In both those cases you have the same chance of picking the right number.
If you have a machine emulate that and pick one of those two methods it will behave differently if you run the program from a memory state saved just before you picked your number.
In the first case the number was already generated, in the other case it will become different every time you run the program.
They don't know what method the fruit machines use.
That article proves nothing.
Also they state that they have a number between 1 and 12 and they can get it to a state where it gives you a number and whether you pick lower or higher, you loose. Well, guess what. That is perfectly logical. One in 12 rolls the number will be the same as the number showed to you and then both higher and lower will be wrong. You shouldn't have tried to win the bonus round.
Well, no, I'm not making it up.
And I didn't mean it as criticism. I'm thinking that people 200 years from now will be happy that it wasn't built to last 300 years.
And if I was en engineer without a computer and was asked to build a dam that size. You can be damn sure that I'd be overengineering it.
I'd rather be safe than sorry.
No, you got it wrong. They are using bits of Eunuchs. Ewww, that was bad.
I visited the Hoover Dam and they said that the life expectancy for it was about 1800 years and they said it was considered being hugely over engineered.
Also, apparently the concrete in the middle hasn't quite finished baking yet so it is still emitting a lot of heat.
It is also interesting that Las Vegas only gets about 4% of its power from the Hoover dam, which is interesting since it is so close to the dam. It turns out that when they built the dam they wrote long term contracts for who would get the electricity. The officials of Las Vegas thought they got their share, it was just that they had no idea that Las Vegas would grow so fast.
For one, it would be fun to know. Secondly, we know the name of the guy to blame everytime we see that lame joke.
Maybe we will feel better if we can spam the original joker every time we see a beowulf joke.
So he talks about how you can implement that Map function on a list.
:: Map f t;
//prepare the vector
//And here we map sqrt on all elements in the vector
//And this is another type of mapping to print the vector
fun Map f [] = []
| Map f (h::t) = f h
And this is beautiful. I love functional languages. But just for completeness, this can also be done in C++.
The following code should compile with the proper headers on any platform that supports C++
vector<float> v_i;
v_i.push_back(1);
v_i.push_back(3);
v_i.push_back(5);
transform(v_i.begin(), v_i.end(), v_i.begin(), sqrt);
copy(v_i.begin(), v_i.end(), ostream_iterator<float>(cout, ", "));
I didn't mean that Microsoft owns the server room right now. I was explaining my (conspiracy) theory on how what I think Microsofts strategy is to own the server room _in the future_.
I think that they are _almost_ in a situation where they can dictate what protocols and what services a server must provide, due to their control of the desktop.
So that was the idea in my previous post, the only other entity I know that would have a desktop/server combination powerful enough to challenge Microsoft (considering maturity, money and usability) is the Apple/Sun combination.
Linux with all its backers may get there in the future butit isn't there yet. Not until it has a strong foothold on the desktop.
Just my 2 cents.
1) Microsoft owns the desktop 2) Microsoft introduces .net, which makes Windows the only viable server platform if you want to use .net clients.
2.5) (you can argue that any web services platform can be used for .net clients and while that might be somewhat true it is less convenient. Also, how long will it be true?)
3) step 3, Microsoft owns the server room
The Sun and Apple combination are, put together, the two only companies that can challenge that.
In the long term there is a possibility that IBM with Linux may challenge Microsoft but that day is not even close.
Well, that is my take on it.
Some people just want to own their favorite movies. Now, VOD may put a dent into the movie rental business though.
The VOD is in a way very similar to the previous DVD standard called DIVX where you'd "buy" a movie but after you started watching it you had to finish watching it within 24 hours and after that it was locked up. The DIVX players had to be connected to the phone line for that very reason.
And DIVX disappeared. Although I believe that he is right in saying that VOD will be very important in the years to come I believe DVD (or some HDTV successor) will continue to thrive too.