it's customers that drive the market, not developers.
In the case of a company like Intel who's pushing a new technology, the developers are the customers. It's not Joe Consumer who's going to be buying into Intel's technology. (At least not until there are games that support it.) It's going to be the developers. Developers who will be taking a gamble on a next generation technology in hopes that they lead the pack. And as history has proven, the first out of the gate often earns the most money. (At least in the short term.)
Of course, history has also proven that new technologies often fail. Thus the risk is commiserate with the reward. There may be a lot to gain, but there is also a lot to lose. A lot of dollar signs, that is.
Only once the prosecution demonstrates that the evidence points to a crime (beyond reasonable doubt) in the first place.
An IP pointing to MediaSentry's network is pretty strong evidence and will most likely be admitted into testimony. Of course, there's still the problem of solidly documenting what that IP was doing, but that isn't the argument at hand.
I don't think you understand how evidence works. Evidence is a collection of facts that can be used to demonstrate one's guilt in a court of law. It is up to the defense to provide reasonable explanations for that evidence, such that the conclusions no longer point to the crime being tried. If the defense fails to defend against the evidence, then the Judge/Jury may find against the defendant.
Geez, don't they teach you kids anything in school these days?
It is fully possible, however unlikely, that MediaSentry upon being blocked from doing investigations in Mass., rented out a VPN line to a company that was, in fact, allowed to do so.
In which case MediaSentry could produce documentation to that effect, thus making the evidence inadmissible. Otherwise, MediaSentry is still on the hook. (Whether the use was sanctioned or unsanctioned.)
In less time than it would take a beam of light to travel from your knuckle to your fingertip, the new IBM chip would complete one task and start looking for the next, he said
I do believe that's a (rather poorly executed) reference to Admiral Grace Hopper and her "nanoseconds".:-)
Or perhaps the parents of today remember the whole Edutainment boom and what a load of crock it was? We tried the idea of mixing games and education. Save for a few specific instances*, the games did a much poorer job at teaching over traditional methods.
And I think that's where part of the problem lies. The summary suggests that some teachers are having wonderful results with games. Yet I guarantee you that with that game time, a Blue Back Speller, and a few sheets of number tables, I could teach those kids far more than the game will ever teach them.
Of course, my methods may not appeal to the "new math" crowd, or the anti-phonetics crowd. None the less, I've seen the results of a variety of methods, and the traditional, straight-to-the-point methods of phonics and number tables are far more effective.
I'm not against the idea of games as teaching aides, I simply haven't seen very many effective implementations of the concept. And besides, most kids can be excited by practical applications of their knowledge over trying to make the learning process more "fun". Give them a reason to learn, and you'd be surprised how fast they soak up that knowledge!
* I did have good luck with my son both on Fraction Fever and Odell Lake. (Though we used the latter as reading practice.)
High resolution, sure, but antialiasing, not so much. If you have to blur a font to make it look good on the screen, that means it's a lousy font for the screen.
Anti-aliasing and blurring are not the same thing. I know a lot of people think "blurring" when they hear "anti-aliasing", but they're usually using it incorrectly. True anti-aliasing is when you take the high-resolution vector information and use it to produce pixel samples that would be more consistent with what a photograph would show. (e.g. alpha'ed pixels around the edges where the actual resolution of the letter protrudes slightly into certain pixels) This gives a much higher apparent resolution.
This is different from using filtering on an image during a resize. Filtering does soften the image, but it often does so at the expense of information. (Which is the exact opposite of what anti-aliasing does.) The exception to this is anisotropic filtering which attempts to use information from a much larger image to produce anti-aliasing-type effects in a smaller image. The result works fairly well, and is (in effect) a "poor man's" anti-aliasing. Of course, the quality only goes as high as the texture quality. If the source textures are of a lower resolution than the larger target image prior to anisotropic filtering, then the results will look poor.
You are focusing on a tiny, tiny, tiny piece of the problem. There are almost certainly a ton of ways in which you could reduce eyestrain by gigantic amounts in comparison without bothering with something as trivial as font colour.
Indeed. I'm surprised the poster didn't consider increasing the font size and/or switching to a high-resolution, anti-aliased font. While you may get a smidge less screen space out of it, just increasing the font size can do wonders for your eyes and focal system.
I cannot find evidence of any ISPs being recognized as common carriers. There might be a few, but it's the exception, not the rule.
DCMA Section 202, Sub-Section 512, Paragraph (a) provides for common carrier status in all but name. Which I'm not really applies to this case. The summary (and article) are both somewhat confusing, but it sounds like the issue is a violation of Intellectual Property Rights by Friendster and Adult Friend Finder. They were using an image of "Jane Doe's" that they didn't have the rights to. The difficulty of the case is that Jane Doe also filed suit that her "rights of publicity" were being violated. Which is a far more nebulous concept than IP Rights.
Where things get really confusing, though, is that the article suggest that Jane Doe's "rights of publicity" arguments were denied. Instead, the judge is treating it as a pure IP violation case. Which seems only right and proper in my mind. Yet the article appears to be suggesting that this would set a rather negative precedent across the industry. Which makes very little sense to me.
Perhaps someone more in the know could shed some light on the exact problem? (Or if one even exists?)
Re:panzer tank ???
on
The DIY Tank
·
· Score: 2, Informative
The kid called it a half-scale replica of a Tiger I in the video. Just so there's no confusion.:-)
"A decade ago we couldn't even conceive of... YouTube," Google Inc.'s video-sharing service, said Greg Butz, Comcast's vice president for marketing and product development.
Oh my goodness! Not YouTube! Never mind services like iTunes, Amazon Unboxed, and XBox Movies which provide legal, multi-GB movie files that will happily chew through your bandwidth cap in no time flat. The real concern at hand is... YouTube.
Executives always have a way of cracking me up.:-)
As another poster mentioned, it's caused by Flash movies. (Usually advertisements.) Just find the tab that has a Flash movie running (like Slashdot!) and try navigating away. If you found the right tab, the CPU should drop back to nothing.
In the case of Slashdot, I have found that some of the ads are worse than others. Just refreshing the page is sometimes enough to clear it.
Technically, all batteries "generate" power through a chemical reaction
'Tis true, but generally when we refer to batteries, we're referring to something you "store" energy in by moving it from a lower chemical state to a higher chemical state. You can then retrieve that energy at a later time, minus the entropic losses.
I don't want to split "potential" hairs with you;)
Dude, you're killing me here. Really. I'm on the floor, dying from the uber-groan I just let out. Help! Auuuuugggggghhhhhhhhh---
So what you're saying is, 20+ years of power-source* life isn't good enough for your iPhone? Quick! Yell at Steve Jobs! How DARE he make phones that need a trained professional to replace the power unit after 20 years! I mean, so what if the last GSM tower will be removed by the time the battery peters out? So what if the screen shatters, the touch area goes dead, and the sound becomes fuzzy? It's the principle of the thing I tell you!
Um. Yeah.:-/
* I say "power-source" because nuclear batteries are not actually batteries. They are long-lasting power generators that cannot be turned off.
Note I said software architect, and I specifically stated I was not talking about system architects. Big difference between the two.
Not really. A software architect represents a division of labor between the guys who build the hardware and the guys who build the software. The software architect obviously deals with the software aspect of the system (and when I say system, I mean a complete, large-scale application) and is thus responsible for how the code will be organized and constructed. You simply can't do away with that leadership aspect.
But during one connection, there's a LOT of things that can be split... Especially in these days of clouds and SOA. All the waiting on web services, all of the waiting on databases...its all time wasted.
Modern systems tend to work on poll/select rather than outright blocking the thread. If the thread is blocked, the system keeps itself busy doing other things.
Start a worker thread with a callback. Bing bang poof.
Welcome to AJAX 101. Obviously, there are inherent difficulties in running event handlers in an HTTP Request/Response. That's why we're pushing some of the parallelism to the client. By making many smaller calls, the application can provide a fully parallel experience to many clients, keeping both the client and the server busy performing useful work.
To date the only frameworks I know of that allow fully asynchronous efficient processing of requests and database queries (so that you don't need to spawn a new thread/process for every request) is ASP.NET, WCF (SOAPish stuff in.NET), and some of.NET's database APIs.
How do you see that as different from what Java J2EE does? Most J2EE servers these days use pools of threads to handle requests. These threads are then utilized based on poll/select APIs so that one thread can handle many requests depending on the availability of data. Database connections are similarly pooled and reused, though any optimization on the blocking level would need to be done by the JDBC driver.
In an ideal world where programmers know how to do the -basics- of their job, software architects would be an obsolete job
Not really. The structure of a large system still has to be defined by someone. The key difference is that the architect would get a lot more feedback from his team, and could possibly even farm out high-level pieces of the design to be further architected by other developers.
I'm a.NET and Java dev, and those languages, while it could be better, make parallel programming relatively simple (at least, it is definately within the grasp of a code monkey). Yet, I have -never ever ever-seen any async/parallel code in anything but my own code, everywhere I worked (and I'm doing consulting, so I worked in a lot of places in a short amount of time).
That's because parallel code is the job of the J2EE or IIS server. Programmers develop modules that are loaded by the app server and run asynchronously. Granted, things are divided along he lines of one connection == one thread (though some app servers use poll/select for more granular control), but that's good enough to where systems like Sun's T1 "Niagara" processor can churn through a web load WAY faster than the single-threaded monstrosities we've been using to date.
And before you try to tell me that "application servers don't count", ask any parallel computing researcher if he thinks the threaded programming model is a good idea. You'll almost always get a resounding, "NO". Most of the parallel computing folks I've spoken with rave on and on about lambda and the inherent parallel nature of lambda functions.
The thing is, once parallelism takes off (if one can reasonable argue that it hasn't already), coding will be more about creating parallelizable modules rather than creating threads. The theory will be that the platform running the modules knows more about its resources and how to balance them than the code does. So by exposing areas where parallelism can occur, a language exposes the opportunity to split execution across many processors.
Let's take an ideal example: Let's say you create a raytracing function to cast a ray. Well, that function is inherently parallel in nature. All you need is to map a list of rays to the function and let the platform work out how to balance that function across many processing units.
A slightly less ideal (yet still parallelizable) example is collision detection in a video game. Collision detection is a matrix of objects that can interact. In general, that means that you want to test two objects against each other to see if they have collided or not. If they have, trigger an event to update the state of those objects. (e.g. explode, reverse direction, etc.) Once again, you can have a collision function that takes two items and works out if they have collided or not. A very parallelizable situation. Even firing any resulting events can be done in parallel, as long as the platform is careful not to dispatch multiple events on the same object in parallel. (That creates an out-of-order code issue which can be a bit tricky to resolve.)
Long story short: Parallelism is hard; expect the solution to be as invisible as possible.
Bah, you think that's good? How about Communist Mutants from Space? What's bizarre is that it was actually a good game! One of the best shmups on the 2600, in fact. I often wonder if the name wasn't an attempt to get kids to do double-takes at the store.
"Lemme see, Atlantis, Chopper Command, Demon Attack, Enduro, Communist Mutants from Space, Moonswe-- wait... what?"
Of course, it probably backfired at the register:
"Mommy, mommy! Can I buy Communist Mutants from Space? Please, please, pleeeeease?"
Yeah, you can already see the look on "mommy"'s face.:-P
* Yeah, the fact that the game also required the Supercharger doesn't help anything.
But even if it works as planned...this new browser is going to enter the market and who is going to download it?
Depends. If it's integrated into the popular web browser shells (e.g. FF, IE, Opera, Webkit), then everyone. Which is ultimately how all web technologies are introduced.
You laugh, but a coworker of mine took one of those Apple stickers and stuck it over the logo on the back of his company-provided Dell. There was always a moment of confusion when you saw his Dell, because it looked like a PC, but the Apple logo appeared to be built-in.
He eventually moved on, but the person who inherited the laptop still has that sticker on there!:P
So you think you know Javascript, eh? Sounds just like 99% of the candidates I interview.
"On a scale of 1 to 10, how would you rate yourself with Javascript?"
"I'd say about an 8."
"Okay, can you write a simple Javascript object on the whiteboard for me?"
"..."
Lucky for them, I mostly looking for smart people I can train. I've only met one other person IRL who even knew how to code Javascript properly.
Javascript makes it really quick to hack together a dynamic page.
Funny, my Javascript tends to be well structured, object oriented, and reusable.
The #1 problem with Javascript is that everyone "learned" it from cutesy little toolbar/cursor scripts rather than actually learning the language. As a result, it's not immediately obvious to most coders how to use the language. Thus they tend to run into variant typing issues and write a procedural mess of spaghetti code. Which is silly, because Javascript has some of the best features of functional languages like LISP!
Netscape published an excellent guide to the language over a decade ago (now maintained by Mozilla.org). I'm going to take a wild guess and say... you've never read it, have you? If you had, you might be bemoaning the lack of good Javascript knowledge in the market rather than placing blame on the language itself.;-)
How they ever came to be more prevalent than palm - I don't know- the ease of using with exchange maybe?
I think it has more to do with a lack of updates from Palm. They effectively stood still for so long that hardware finally reached a point where WinCE could be run at a reasonable speed. When device makers looked at the (non-existent) multimedia features of PalmOS and the (competent) multimedia features of WinCE, they chose WinCE almost by default.
Now if Cobalt had been pushed out the door, maybe things would have been different. But instead, Cobalt sits on the shelf with not a single device maker using it. Not even Palm hardware.
Sure, the language stayed relatively constant. (Save for the constant pain of getting the right runtime DLLs.) So did Microsoft C++. What changed regularly was the APIs. Do it this way this week. No! We changed our minds! Do it that way now. Oh wait! We're really going to get it right this time! Nope, sorry. We lied.
It's by no means comprehensive, but it should give you some insight into my experiences. I've used Mono more since then and I can tell you, it's really quite terrible.
And on their website they state "Its [mono's] objective is to enable UNIX developers to build and deploy cross-platform.NET Applications." And "Our current focus is on inter-operating with the Microsoft SDK." Sure sounds like the goal is.Net compatibility to me.
Someone is feeding you a line of BS. The intent of Mono was to create a modern managed code environment for Linux. To that end, a lot of focus has been on Linux-specific APIs and not on.NET compatibility. There have been some efforts to make Mono compliant, but nothing that actually makes it usable (Trust me, I've tried. Oh, and XSP is not worth your time.) I really don't have the time or energy to look up the developer's quotes right now, so you'll have to settle for an OnLamp article:
In the case of a company like Intel who's pushing a new technology, the developers are the customers. It's not Joe Consumer who's going to be buying into Intel's technology. (At least not until there are games that support it.) It's going to be the developers. Developers who will be taking a gamble on a next generation technology in hopes that they lead the pack. And as history has proven, the first out of the gate often earns the most money. (At least in the short term.)
Of course, history has also proven that new technologies often fail. Thus the risk is commiserate with the reward. There may be a lot to gain, but there is also a lot to lose. A lot of dollar signs, that is.
An IP pointing to MediaSentry's network is pretty strong evidence and will most likely be admitted into testimony. Of course, there's still the problem of solidly documenting what that IP was doing, but that isn't the argument at hand.
I don't think you understand how evidence works. Evidence is a collection of facts that can be used to demonstrate one's guilt in a court of law. It is up to the defense to provide reasonable explanations for that evidence, such that the conclusions no longer point to the crime being tried. If the defense fails to defend against the evidence, then the Judge/Jury may find against the defendant.
Geez, don't they teach you kids anything in school these days?
In which case MediaSentry could produce documentation to that effect, thus making the evidence inadmissible. Otherwise, MediaSentry is still on the hook. (Whether the use was sanctioned or unsanctioned.)
I do believe that's a (rather poorly executed) reference to Admiral Grace Hopper and her "nanoseconds".
Or perhaps the parents of today remember the whole Edutainment boom and what a load of crock it was? We tried the idea of mixing games and education. Save for a few specific instances*, the games did a much poorer job at teaching over traditional methods.
And I think that's where part of the problem lies. The summary suggests that some teachers are having wonderful results with games. Yet I guarantee you that with that game time, a Blue Back Speller, and a few sheets of number tables, I could teach those kids far more than the game will ever teach them.
Of course, my methods may not appeal to the "new math" crowd, or the anti-phonetics crowd. None the less, I've seen the results of a variety of methods, and the traditional, straight-to-the-point methods of phonics and number tables are far more effective.
I'm not against the idea of games as teaching aides, I simply haven't seen very many effective implementations of the concept. And besides, most kids can be excited by practical applications of their knowledge over trying to make the learning process more "fun". Give them a reason to learn, and you'd be surprised how fast they soak up that knowledge!
* I did have good luck with my son both on Fraction Fever and Odell Lake. (Though we used the latter as reading practice.)
Anti-aliasing and blurring are not the same thing. I know a lot of people think "blurring" when they hear "anti-aliasing", but they're usually using it incorrectly. True anti-aliasing is when you take the high-resolution vector information and use it to produce pixel samples that would be more consistent with what a photograph would show. (e.g. alpha'ed pixels around the edges where the actual resolution of the letter protrudes slightly into certain pixels) This gives a much higher apparent resolution.
This is different from using filtering on an image during a resize. Filtering does soften the image, but it often does so at the expense of information. (Which is the exact opposite of what anti-aliasing does.) The exception to this is anisotropic filtering which attempts to use information from a much larger image to produce anti-aliasing-type effects in a smaller image. The result works fairly well, and is (in effect) a "poor man's" anti-aliasing. Of course, the quality only goes as high as the texture quality. If the source textures are of a lower resolution than the larger target image prior to anisotropic filtering, then the results will look poor.
Indeed. I'm surprised the poster didn't consider increasing the font size and/or switching to a high-resolution, anti-aliased font. While you may get a smidge less screen space out of it, just increasing the font size can do wonders for your eyes and focal system.
DCMA Section 202, Sub-Section 512, Paragraph (a) provides for common carrier status in all but name. Which I'm not really applies to this case. The summary (and article) are both somewhat confusing, but it sounds like the issue is a violation of Intellectual Property Rights by Friendster and Adult Friend Finder. They were using an image of "Jane Doe's" that they didn't have the rights to. The difficulty of the case is that Jane Doe also filed suit that her "rights of publicity" were being violated. Which is a far more nebulous concept than IP Rights.
Where things get really confusing, though, is that the article suggest that Jane Doe's "rights of publicity" arguments were denied. Instead, the judge is treating it as a pure IP violation case. Which seems only right and proper in my mind. Yet the article appears to be suggesting that this would set a rather negative precedent across the industry. Which makes very little sense to me.
Perhaps someone more in the know could shed some light on the exact problem? (Or if one even exists?)
The kid called it a half-scale replica of a Tiger I in the video. Just so there's no confusion. :-)
Oh my goodness! Not YouTube! Never mind services like iTunes, Amazon Unboxed, and XBox Movies which provide legal, multi-GB movie files that will happily chew through your bandwidth cap in no time flat. The real concern at hand is... YouTube.
Executives always have a way of cracking me up.
As another poster mentioned, it's caused by Flash movies. (Usually advertisements.) Just find the tab that has a Flash movie running (like Slashdot!) and try navigating away. If you found the right tab, the CPU should drop back to nothing.
In the case of Slashdot, I have found that some of the ads are worse than others. Just refreshing the page is sometimes enough to clear it.
http://akaimbatman.intelligentblogger.com/wordpress/archives/date/2006/02/
(Who writes auuuggghhhh when they're dying?
So what you're saying is, 20+ years of power-source* life isn't good enough for your iPhone? Quick! Yell at Steve Jobs! How DARE he make phones that need a trained professional to replace the power unit after 20 years! I mean, so what if the last GSM tower will be removed by the time the battery peters out? So what if the screen shatters, the touch area goes dead, and the sound becomes fuzzy? It's the principle of the thing I tell you!
:-/
Um. Yeah.
* I say "power-source" because nuclear batteries are not actually batteries. They are long-lasting power generators that cannot be turned off.
Not really. A software architect represents a division of labor between the guys who build the hardware and the guys who build the software. The software architect obviously deals with the software aspect of the system (and when I say system, I mean a complete, large-scale application) and is thus responsible for how the code will be organized and constructed. You simply can't do away with that leadership aspect.
Modern systems tend to work on poll/select rather than outright blocking the thread. If the thread is blocked, the system keeps itself busy doing other things.
Welcome to AJAX 101. Obviously, there are inherent difficulties in running event handlers in an HTTP Request/Response. That's why we're pushing some of the parallelism to the client. By making many smaller calls, the application can provide a fully parallel experience to many clients, keeping both the client and the server busy performing useful work.
How do you see that as different from what Java J2EE does? Most J2EE servers these days use pools of threads to handle requests. These threads are then utilized based on poll/select APIs so that one thread can handle many requests depending on the availability of data. Database connections are similarly pooled and reused, though any optimization on the blocking level would need to be done by the JDBC driver.
Not really. The structure of a large system still has to be defined by someone. The key difference is that the architect would get a lot more feedback from his team, and could possibly even farm out high-level pieces of the design to be further architected by other developers.
That's because parallel code is the job of the J2EE or IIS server. Programmers develop modules that are loaded by the app server and run asynchronously. Granted, things are divided along he lines of one connection == one thread (though some app servers use poll/select for more granular control), but that's good enough to where systems like Sun's T1 "Niagara" processor can churn through a web load WAY faster than the single-threaded monstrosities we've been using to date.
And before you try to tell me that "application servers don't count", ask any parallel computing researcher if he thinks the threaded programming model is a good idea. You'll almost always get a resounding, "NO". Most of the parallel computing folks I've spoken with rave on and on about lambda and the inherent parallel nature of lambda functions.
The thing is, once parallelism takes off (if one can reasonable argue that it hasn't already), coding will be more about creating parallelizable modules rather than creating threads. The theory will be that the platform running the modules knows more about its resources and how to balance them than the code does. So by exposing areas where parallelism can occur, a language exposes the opportunity to split execution across many processors.
Let's take an ideal example: Let's say you create a raytracing function to cast a ray. Well, that function is inherently parallel in nature. All you need is to map a list of rays to the function and let the platform work out how to balance that function across many processing units.
A slightly less ideal (yet still parallelizable) example is collision detection in a video game. Collision detection is a matrix of objects that can interact. In general, that means that you want to test two objects against each other to see if they have collided or not. If they have, trigger an event to update the state of those objects. (e.g. explode, reverse direction, etc.) Once again, you can have a collision function that takes two items and works out if they have collided or not. A very parallelizable situation. Even firing any resulting events can be done in parallel, as long as the platform is careful not to dispatch multiple events on the same object in parallel. (That creates an out-of-order code issue which can be a bit tricky to resolve.)
Long story short: Parallelism is hard; expect the solution to be as invisible as possible.
Bah, you think that's good? How about Communist Mutants from Space? What's bizarre is that it was actually a good game! One of the best shmups on the 2600, in fact. I often wonder if the name wasn't an attempt to get kids to do double-takes at the store.
:-P
"Lemme see, Atlantis, Chopper Command, Demon Attack, Enduro, Communist Mutants from Space, Moonswe-- wait... what?"
Of course, it probably backfired at the register:
"Mommy, mommy! Can I buy Communist Mutants from Space? Please, please, pleeeeease?"
Yeah, you can already see the look on "mommy"'s face.
* Yeah, the fact that the game also required the Supercharger doesn't help anything.
Depends. If it's integrated into the popular web browser shells (e.g. FF, IE, Opera, Webkit), then everyone. Which is ultimately how all web technologies are introduced.
You laugh, but a coworker of mine took one of those Apple stickers and stuck it over the logo on the back of his company-provided Dell. There was always a moment of confusion when you saw his Dell, because it looked like a PC, but the Apple logo appeared to be built-in.
:P
He eventually moved on, but the person who inherited the laptop still has that sticker on there!
Javascript is a "real language". If you were as good of a coder as you claim to be, you never would have made such a silly statement.
"On a scale of 1 to 10, how would you rate yourself with Javascript?"
"I'd say about an 8."
"Okay, can you write a simple Javascript object on the whiteboard for me?"
"..."
Lucky for them, I mostly looking for smart people I can train. I've only met one other person IRL who even knew how to code Javascript properly.
Funny, my Javascript tends to be well structured, object oriented, and reusable.
The #1 problem with Javascript is that everyone "learned" it from cutesy little toolbar/cursor scripts rather than actually learning the language. As a result, it's not immediately obvious to most coders how to use the language. Thus they tend to run into variant typing issues and write a procedural mess of spaghetti code. Which is silly, because Javascript has some of the best features of functional languages like LISP!
Netscape published an excellent guide to the language over a decade ago (now maintained by Mozilla.org). I'm going to take a wild guess and say... you've never read it, have you? If you had, you might be bemoaning the lack of good Javascript knowledge in the market rather than placing blame on the language itself.
I think it has more to do with a lack of updates from Palm. They effectively stood still for so long that hardware finally reached a point where WinCE could be run at a reasonable speed. When device makers looked at the (non-existent) multimedia features of PalmOS and the (competent) multimedia features of WinCE, they chose WinCE almost by default.
Now if Cobalt had been pushed out the door, maybe things would have been different. But instead, Cobalt sits on the shelf with not a single device maker using it. Not even Palm hardware.
Sure, the language stayed relatively constant. (Save for the constant pain of getting the right runtime DLLs.) So did Microsoft C++. What changed regularly was the APIs. Do it this way this week. No! We changed our minds! Do it that way now. Oh wait! We're really going to get it right this time! Nope, sorry. We lied.
I have a primer right here: http://slashdot.org/~AKAImBatman/journal/171365
It's by no means comprehensive, but it should give you some insight into my experiences. I've used Mono more since then and I can tell you, it's really quite terrible.
Someone is feeding you a line of BS. The intent of Mono was to create a modern managed code environment for Linux. To that end, a lot of focus has been on Linux-specific APIs and not on
http://www.onlamp.com/pub/a/onlamp/2004/03/11/mono.html