The US, on the other hand, has metropolitan areas (ranging in size/density of course) dotted across much of its land mass, with vast spaces of land in between. And not nearly as much of that land is as sparsely populated as Canada's northern wilderness. It will take a lot more work to reach as much of a majority of homes.
Then explain to me why my brother, who lives almost 8 hours north of the US border, 1.5 hours away from the nearest "city" (city of 5,000 people) in a town of less than 1,000 people can get broadband access, and how all these centres in the US cannot? Hell, the largest city in our province is about 200,000 people, and that's about 4 hours away!
I don't think any of us were talking about non first world countries...US, England...etc.
Hmmmm....I'll bite.
I thought that's what this whole article was about. Did you read the article? To quote the slashbox:
One way to stem piracy is to offer consumers in emerging countries a low-cost PC, Ballmer said. "There has to be...a $100 computer to go down-market in some of these countries. [Emphasis mine]
Or to quote the article:
(Microsoft) has five times as many Hotmail users in India and China than there are PCs because of this
PCs are not selling to the lower end of the population in China and India
He even goes so far as to say "People buying machines there are relatively affluent."
Are you more affluent than most of the 2+ billion people in China and India?
Yes, you certainly are wealthy. I don't think I've seen a non-wealthy person today.
Look at per-capita GDP. 155 of the 230 countries in the CIA World Factbook have a per-capita GDP of less than $10,000. They represent 81.7% of the population of the world.
67% of the people live in countries with per capita GDP of less than $5000.
38% of the people live in countries with per capita GDP of less than $3000.
Look at the people in your country. No, not the people you know and socialize with. Go look at the unwashed masses. People are not as wealthy as you are. Almost everyone reading Slashdot will be highly advantaged in society.
Don't kid yourself.
Spend some of that money and go to a third world country. Go to a country with a per capita GDP of $600.
I agree with you completely. I don't think Ballmer was talking about the industry in general. He was talking about things from Microsoft's perspective. The situation I describe may not make any difference to the average software house, but Microsoft isn't the average software house. Their position, once again, is more enviable than their counterparts...because their software is a bar to entry, and they have a virtual monopoly in that arena.
The difference is we can't reproduce matter for effectively zero cost.
Let's say Microsoft sells a Windows license with 80% of computers sold. Remind yourself that the world is a triangle: a few rich people at the top, with more and more and more people as you descend the triangle. If you can drop the price of a computer from $500 to $100, how many more computers will you sell? A lot more. You're selling not only to more people, but the people higher on the triangle can purchase multiple computers with relative ease. One in the living room, one in the bedroom, one in the kitchen, one in the car...So...Let's say computers now become a viable purchase for the disposable income of 10 times as many people (there are over two billion people in China and India alone, remember), and the people that can already afford them buy five times as many (or buy more often). Microsoft can now offer their $300 retail software for $20 retail, and maintain their revenue torrent.
Let's say they only lower the price to $25. They've had a 25% revenue increase, all other things being equal. That's nothing to sneeze at.
As the expense of purchasing software approaches the cost of stealing software, fewer and fewer copies (as a percentage) will be stolen.
I accessed it from the hotel office here...the Serengeti Serena Lodge. It was so freakin' slow that I couldn't bear to do much of anything. I had to stop.
On the plus side, there are Internet Cafe's on every street corner in Dar Es Salaam (the capital) and in Zanzibar! The connections there weren't fabulous, but they weren't awful either.
What it really means is that the programmers won't
program exactly the way Dij wants them to do.
Or perhaps he means exactly what he says: Exposure to BASIC, or the
programming idioms of languages like BASIC, teaches the unwary new
programmer far too many bad habits. Those habits may take years to
unlearn.
Personally, I'm 20+ years into programming, including many using
BASIC. Then many using Pascal. Then many using C. And dozens of other languages. BASIC introduced me to programming as a concept. But truly, it
took years to unlearn the bad habits I learned. I still see code that
is rife with bad habits.
But, back to Dijkstra. Would it, for example, be easier to learn
functional languages with having first learned BASIC? I'd argue it's
probably easier without it. The concept of state, and it's
implications is something that I am still battling with, as are a lot
of developers around me: whether they recognize it or not.
It is not "good" or "bad": just
different.
I would agree. A gun is neither good nor bad. However, putting a gun
in someone's hands with no context, no understanding and no guidance
is a recipe for causing harm. Perhaps the kind of irreparable harm
Dijkstra was speaking of.
Programming should not be a straitjacket: the more
options and the more different ways to do thing, the
better.
But this does not seem to be born out. If this were the case, then
programmers would find a language like Lisp (or it's dialects) and
would never return. A language so devoid of syntax and yet so
ammenable to customization that it is commonly associated with the
phrase programmable programming language. Perhaps that's why
some of the most influential courses on the fundamental aspects of
computer science (like Structured Interpretation of Computer Programs)
use dialects of Lisp: it allows the student to focus on programming
fundamentals, laying an incredible foundation for their growth as a
programmer.
When you decompose a system into a set of objects, you do so according to what some call the dominant decomposition. By virtue of consolidating various (I hesitate to use this word here in this context) aspects of your program into these object classes, various other aspects of your program get scattered to the wind. (This is called the tyranny of the dominant decomposition.)
AOP allows you to consolidate these portions of your program into a independent entities: aspects. An aspect will encapsulate a certain feature of your program into one location where you can easily modify, extend or replace it.
Wrote an application and would like to insert ACL checks for security prior to accessing data sources? Encapsulate this in an aspect. Maintain that aspect independently. If you want a version of your application with security, compile it with the security aspect included. Want a version without security, compile it without the security aspect.
Want to add security to another portion of your program? Where do you add it? Do you add it the security calls to the applicable methods of classes X, Y and Z? Or do you extend the set of join points to which your aspect is applicable? That is, do you add the security-layer calls all over hells-creation, or do you add it to the consolidated list recorded in your security aspect?
The more I look at AOP and the more I see, the more I think this will revolutionize development.
Von Nuemann and the others you mentioned were theorists, people on the science side of computer science, who developed new theories. They changed the way people think about the whole field.
I couldn't have said it better myself.
The closest I would come to Linus would possibly be Kernighan and Ritchie, perhaps not so much for C, but for their contribution to Operating Systems.
Some names that come to my mind as important:
Alonso Church
Alan Turing
Edsger Dijkstra
Grace Hooper
Donald Knuth
Marvin Minsky
John McCarthy
Edgar Codd
John Backus
John von Neumann
Stephen Cook
I'm curious to see how people justify Linus or Stallman or Wall or Gosling and leave out the giants that built and discovered the very foundations of Computer Science.
the Verner Vinge (sp?) story that I can't remember the name of.
Vernor Vinge's True Names. It's a little strange to read now, as it's sense of an internetwork and it's vocabulary is different than ours, but a seminal work in Artifical Intelligence and cyberspace nonetheless. It was written in 1979-80.
Introduction to Algorithms - Cormen, Leiserson and Rivest
- Great book, little bit of everything.
Code Complete - Steve McConnell
- Must read for anyone serious about programming. Read it.
Advanced Programming in the UNIX Environment - Richard Stevens
- Still one of the best UNIX programming books I've seen.
Since the advent of the web, though, I've come of the opinion that language agnostic books are the important ones. Books on particular languages ("Learn Foo in 21 days", "Practical Programming in BarBaz") or technologies date way too quickly. The web is the best source for information like this.
I think we're thankfully seeing more books like "Pragmatic Programmer", the "Extreme Programming" series, "Design Patterns", "Refactoring", "Death March" and other books that transcend particular languages and technologies.
That's MD5. Reply with your lowercase version of the hash, please.
Reread my posting.
You asserted that Microsoft was storing your password encrypted. I said there was an algorithm that could convert your encrypted password from being case sensitive to being case insensitive. I said nothing about decoding your encrypted password. Important difference.
No, I cannot decode your encrypted password. But I could convert it to being case insensitive algorithmically if I wanted to change from a case sensitive password scheme to a case insensitive password scheme. Conversion routines could be put in place to convert your password on a subsequent login.
Your assertion that Microsoft must be storing your password in plain text may be correct, but it also may not be.
What makes you think it isn't? Nothing about this scenario implies it is being stored unencrypted...
Three seconds of thought and I came up with an algorithm to convert even encrypted passwords to their case-insensitive version. If I can do it in three seconds, I'm sure Microsoft's advanced research labs have at least as good a solution.
The conversion could only be done when you log in (using the case sensitive password), though....but after that initial conversion, case insensitive passwords would be in effect...
Maybe they were storing them in plain text. My point is, the scenario your describe does not imply that they were storing them unencrypted.
In my first year CS class at the University of Saskatchewan the assignment used to drive home the concept of recursion was, given a set of characters, produce a set of all the possible permutated strings with those characters. There was the "eureka!" moment when the concept of recusion finally clicked.
Then there was the assignment where we had to write a program that produced itself as output...that made my head explode the first time I tried to figure out how to approach it....
Your suggestion is clearly different than what most students will be expecting their course to be. (I think it is very interesting and holds promise.) You should be up front about what you are going to do, and why. I think many students will be very frustrated otherwise.
Show them a couple of very simple constructs (like an if statement and a while loop), then show them the corresponding code in as many languages as you can. Build up in their mind that a computer language is just a tool to solve the problem.
The language you use to solve problems isn't irrelevent (some languages are better at certain tasks than others), but at this point in their programming career, it largely is.
The person I was responding to said SCSI was faster. My point was that "being faster" can be a moot point if both are "good enough" to accomplish what you desire.
If having a network file server is what you're after, a RAID system with 3 IDE drives may indeed by sufficient, saturate your network connection and pose no real benefits over SCSI.
I'm not disputing that there are usage patterns where SCSI would kick IDEs ass. I was simply saying that arguing one is, in a raw sense, faster is not necessarily the only, or even the most important factor to consider. The case you cite is indeed valid.
Use cases and usage patterns are very very important.
ut in multiple drive machines where IDE drives share controllers,
SCSI will always be faster
On the surface, I would agree with you. However, the planned usage of the disk space in question becomes an important point.
I had this conversation with Greg Oster, a friend from University, who wrote the NetBSD RAIDframe implementation. We were considering setting up a large network server. After doing some number crunching, something became very very very clear: unless we were going to be moving to Gigabit Ethernet, 3 IDE disks in a RAID configuration were going to be more than sufficient to fill our 100MB LAN.
The point is, whether IDE will be "good enough" depends on what you're using it for. For a large fileserver, IDE RAID may well be good enough, depending on you local LAN. For video editting and other purposes where the data is used on the machine where the disks reside, SCSI's command queueing may be the better choice.
I just saw it tonight after watching the first one this weekend.
The first one oozed style, flair, pinache....whatever word you want to use for it. It was amazing. This one tried to capture the same sense. Didn't work.
This one had a better plot, IMO. Sure, they both require suspension of disbelief, but c'mon, it's a movie based on a comic book. I can suspend my disbelief.
The first one had a mild love interest that was believable, as Blade drew parallels between the doctor in the movie and his mother. This movie had an apparently much more important love interest for Blade. Why? Damned if I know. That wasn't explained or developed. Maybe it's those damn phermones.
The fight scenes were done quite poorly, IMO. They were shot all close in with lots of fast cuts. I haven't been this disappointed with action sequences since Romeo Must Die. C'mon, some of these people can do martial arts (Snipes is a 5th degree black belt, if I remember correctly), so why weren't they allowed to do their stuff. This whole 5 cuts a second crap is ridiculous. It's genuinely hard to watch and make sense of.
Overall, I was disappointed. The first one was more enjoyable...
I got the 4 port Vista, it doesn't come with USB or audio, but it does support 1600x1200x24bpp @ 75Hz nicely. I purchased mine from a distributor here in Canada and it came with four high quality KVM cables (3 cables moulded into one) (I think the cables were included by the distributor, and didn't come directly from Rose Electronics). I haven't noticed any ghosting on my 21" monitor at all.
The keyboard switching is nice (you tap a control key, and then the computer number (1-4) in the next 2 seconds and viola! You're there.) The only place the keyboard switching was annoying was while playing Diablo II: "No, I meant to stop running and drink a potion, not switch over to BSD!". (It'd be nice to have a switch on the unit to disable keyboard switching.)
Overall, I am very very pleased with the Rose Electronics Vista. Their customer service was exceptional (I had an odd video issue early on).
The CBC's radio science program Quirks and Quarks interviewed one of the researchers on this topic. You can listen to the MP3 here. Other stories this week had to do with the Spider Goats, among others.
Summary: The majority of the Anarctic continent is isolated from the rest of the world when it comes to weather patterns. Most research stations aren't in the isolated part, they are in the most northerly portions of the continent. They are warming. The isolated part of Antarctica is cooling. It's basically a re-analysis of existing data that has resulted in this conclusion.
Then explain to me why my brother, who lives almost 8 hours north of the US border, 1.5 hours away from the nearest "city" (city of 5,000 people) in a town of less than 1,000 people can get broadband access, and how all these centres in the US cannot? Hell, the largest city in our province is about 200,000 people, and that's about 4 hours away!
Brad
Hmmmm....I'll bite.
I thought that's what this whole article was about. Did you read the article? To quote the slashbox:
Or to quote the article:
He even goes so far as to say "People buying machines there are relatively affluent."
Are you more affluent than most of the 2+ billion people in China and India?
Look at per-capita GDP. 155 of the 230 countries in the CIA World Factbook have a per-capita GDP of less than $10,000. They represent 81.7% of the population of the world.
67% of the people live in countries with per capita GDP of less than $5000.
38% of the people live in countries with per capita GDP of less than $3000.
Look at the people in your country. No, not the people you know and socialize with. Go look at the unwashed masses. People are not as wealthy as you are. Almost everyone reading Slashdot will be highly advantaged in society.
Don't kid yourself.
Spend some of that money and go to a third world country. Go to a country with a per capita GDP of $600.
I did.
I agree with you completely. I don't think Ballmer was talking about the industry in general. He was talking about things from Microsoft's perspective. The situation I describe may not make any difference to the average software house, but Microsoft isn't the average software house. Their position, once again, is more enviable than their counterparts...because their software is a bar to entry, and they have a virtual monopoly in that arena.
Do you honestly believe this analogy holds water?
The difference is we can't reproduce matter for effectively zero cost.
Let's say Microsoft sells a Windows license with 80% of computers sold. Remind yourself that the world is a triangle: a few rich people at the top, with more and more and more people as you descend the triangle. If you can drop the price of a computer from $500 to $100, how many more computers will you sell? A lot more. You're selling not only to more people, but the people higher on the triangle can purchase multiple computers with relative ease. One in the living room, one in the bedroom, one in the kitchen, one in the car...So...Let's say computers now become a viable purchase for the disposable income of 10 times as many people (there are over two billion people in China and India alone, remember), and the people that can already afford them buy five times as many (or buy more often). Microsoft can now offer their $300 retail software for $20 retail, and maintain their revenue torrent.
Let's say they only lower the price to $25. They've had a 25% revenue increase, all other things being equal. That's nothing to sneeze at.
As the expense of purchasing software approaches the cost of stealing software, fewer and fewer copies (as a percentage) will be stolen.
On the plus side, there are Internet Cafe's on every street corner in Dar Es Salaam (the capital) and in Zanzibar! The connections there weren't fabulous, but they weren't awful either.
Brad
Personally, I'm 20+ years into programming, including many using BASIC. Then many using Pascal. Then many using C. And dozens of other languages. BASIC introduced me to programming as a concept. But truly, it took years to unlearn the bad habits I learned. I still see code that is rife with bad habits.
But, back to Dijkstra. Would it, for example, be easier to learn functional languages with having first learned BASIC? I'd argue it's probably easier without it. The concept of state, and it's implications is something that I am still battling with, as are a lot of developers around me: whether they recognize it or not.
I would agree. A gun is neither good nor bad. However, putting a gun in someone's hands with no context, no understanding and no guidance is a recipe for causing harm. Perhaps the kind of irreparable harm Dijkstra was speaking of. But this does not seem to be born out. If this were the case, then programmers would find a language like Lisp (or it's dialects) and would never return. A language so devoid of syntax and yet so ammenable to customization that it is commonly associated with the phrase programmable programming language. Perhaps that's why some of the most influential courses on the fundamental aspects of computer science (like Structured Interpretation of Computer Programs) use dialects of Lisp: it allows the student to focus on programming fundamentals, laying an incredible foundation for their growth as a programmer.The interview is available in OGG, MP3 and Real Audio.
When you decompose a system into a set of objects, you do so according to what some call the dominant decomposition. By virtue of consolidating various (I hesitate to use this word here in this context) aspects of your program into these object classes, various other aspects of your program get scattered to the wind. (This is called the tyranny of the dominant decomposition.)
AOP allows you to consolidate these portions of your program into a independent entities: aspects. An aspect will encapsulate a certain feature of your program into one location where you can easily modify, extend or replace it.
Wrote an application and would like to insert ACL checks for security prior to accessing data sources? Encapsulate this in an aspect. Maintain that aspect independently. If you want a version of your application with security, compile it with the security aspect included. Want a version without security, compile it without the security aspect.
Want to add security to another portion of your program? Where do you add it? Do you add it the security calls to the applicable methods of classes X, Y and Z? Or do you extend the set of join points to which your aspect is applicable? That is, do you add the security-layer calls all over hells-creation, or do you add it to the consolidated list recorded in your security aspect?
The more I look at AOP and the more I see, the more I think this will revolutionize development.
If you read the slashbox, it says:
Therefore, he original poster is precisely correct. Good attempt to discredit, though.
I couldn't have said it better myself.
The closest I would come to Linus would possibly be Kernighan and Ritchie, perhaps not so much for C, but for their contribution to Operating Systems.
Some names that come to my mind as important:
- Alonso Church
- Alan Turing
- Edsger Dijkstra
- Grace Hooper
- Donald Knuth
- Marvin Minsky
- John McCarthy
- Edgar Codd
- John Backus
- John von Neumann
- Stephen Cook
I'm curious to see how people justify Linus or Stallman or Wall or Gosling and leave out the giants that built and discovered the very foundations of Computer Science.Vernor Vinge's True Names. It's a little strange to read now, as it's sense of an internetwork and it's vocabulary is different than ours, but a seminal work in Artifical Intelligence and cyberspace nonetheless. It was written in 1979-80.
Introduction to Algorithms - Cormen, Leiserson and Rivest
- Great book, little bit of everything.
Code Complete - Steve McConnell
- Must read for anyone serious about programming. Read it.
Advanced Programming in the UNIX Environment - Richard Stevens
- Still one of the best UNIX programming books I've seen.
Since the advent of the web, though, I've come of the opinion that language agnostic books are the important ones. Books on particular languages ("Learn Foo in 21 days", "Practical Programming in BarBaz") or technologies date way too quickly. The web is the best source for information like this.
I think we're thankfully seeing more books like "Pragmatic Programmer", the "Extreme Programming" series, "Design Patterns", "Refactoring", "Death March" and other books that transcend particular languages and technologies.
Reread my posting.
You asserted that Microsoft was storing your password encrypted. I said there was an algorithm that could convert your encrypted password from being case sensitive to being case insensitive. I said nothing about decoding your encrypted password. Important difference.
No, I cannot decode your encrypted password. But I could convert it to being case insensitive algorithmically if I wanted to change from a case sensitive password scheme to a case insensitive password scheme. Conversion routines could be put in place to convert your password on a subsequent login.
Your assertion that Microsoft must be storing your password in plain text may be correct, but it also may not be.
What makes you think it isn't? Nothing about this scenario implies it is being stored unencrypted...
Three seconds of thought and I came up with an algorithm to convert even encrypted passwords to their case-insensitive version. If I can do it in three seconds, I'm sure Microsoft's advanced research labs have at least as good a solution.
The conversion could only be done when you log in (using the case sensitive password), though....but after that initial conversion, case insensitive passwords would be in effect...
Maybe they were storing them in plain text. My point is, the scenario your describe does not imply that they were storing them unencrypted.
In my first year CS class at the University of Saskatchewan the assignment used to drive home the concept of recursion was, given a set of characters, produce a set of all the possible permutated strings with those characters. There was the "eureka!" moment when the concept of recusion finally clicked.
Then there was the assignment where we had to write a program that produced itself as output...that made my head explode the first time I tried to figure out how to approach it....
Show them a couple of very simple constructs (like an if statement and a while loop), then show them the corresponding code in as many languages as you can. Build up in their mind that a computer language is just a tool to solve the problem .
The language you use to solve problems isn't irrelevent (some languages are better at certain tasks than others), but at this point in their programming career, it largely is.
There is an online version of that story.
The person I was responding to said SCSI was faster. My point was that "being faster" can be a moot point if both are "good enough" to accomplish what you desire.
If having a network file server is what you're after, a RAID system with 3 IDE drives may indeed by sufficient, saturate your network connection and pose no real benefits over SCSI.
I'm not disputing that there are usage patterns where SCSI would kick IDEs ass. I was simply saying that arguing one is, in a raw sense, faster is not necessarily the only, or even the most important factor to consider. The case you cite is indeed valid.
Use cases and usage patterns are very very important.
On the surface, I would agree with you. However, the planned usage of the disk space in question becomes an important point.
I had this conversation with Greg Oster, a friend from University, who wrote the NetBSD RAIDframe implementation. We were considering setting up a large network server. After doing some number crunching, something became very very very clear: unless we were going to be moving to Gigabit Ethernet, 3 IDE disks in a RAID configuration were going to be more than sufficient to fill our 100MB LAN.
The point is, whether IDE will be "good enough" depends on what you're using it for. For a large fileserver, IDE RAID may well be good enough, depending on you local LAN. For video editting and other purposes where the data is used on the machine where the disks reside, SCSI's command queueing may be the better choice.
The first one oozed style, flair, pinache....whatever word you want to use for it. It was amazing. This one tried to capture the same sense. Didn't work.
This one had a better plot, IMO. Sure, they both require suspension of disbelief, but c'mon, it's a movie based on a comic book. I can suspend my disbelief.
The first one had a mild love interest that was believable, as Blade drew parallels between the doctor in the movie and his mother. This movie had an apparently much more important love interest for Blade. Why? Damned if I know. That wasn't explained or developed. Maybe it's those damn phermones.
The fight scenes were done quite poorly, IMO. They were shot all close in with lots of fast cuts. I haven't been this disappointed with action sequences since Romeo Must Die. C'mon, some of these people can do martial arts (Snipes is a 5th degree black belt, if I remember correctly), so why weren't they allowed to do their stuff. This whole 5 cuts a second crap is ridiculous. It's genuinely hard to watch and make sense of.
Overall, I was disappointed. The first one was more enjoyable...
The CBC Radio science program, Quirks and Quarks had an article about the space elevator on November 3rd, 2001. An MP3 of the article is available. Check it out!
The keyboard switching is nice (you tap a control key, and then the computer number (1-4) in the next 2 seconds and viola! You're there.) The only place the keyboard switching was annoying was while playing Diablo II: "No, I meant to stop running and drink a potion, not switch over to BSD!". (It'd be nice to have a switch on the unit to disable keyboard switching.)
Overall, I am very very pleased with the Rose Electronics Vista. Their customer service was exceptional (I had an odd video issue early on).
Summary: The majority of the Anarctic continent is isolated from the rest of the world when it comes to weather patterns. Most research stations aren't in the isolated part, they are in the most northerly portions of the continent. They are warming. The isolated part of Antarctica is cooling. It's basically a re-analysis of existing data that has resulted in this conclusion.
I think it was posted yesterday. It just didn't reach the front page.
That article had many more references, too...