Embedded programming requires a certain mind set. Board support packages, memory organization, interrupt handling schemes, latency management, working around chip set bugs/oddities, reverse engineering, close collaboration with hardware designers for field programmable gate arrays or ASICs, bootstrapping, and system integration are NOT taught in any school I have discovered. The closest I have found is Computer Engineering programs that offer robotics or some other courses/projects that include interfaces to controllers and sensors.
Smart programmers can learn all of this, but it is a very different environment than the application level programming with "managed" languages that most students learn. Compilers often don't work seamlessly. A little machine language (let alone assembly language) is often needed to get development started. If you have never done any assembly language programming, that is a good skill to develop.
I added the "chase Apple" zing in order to get the submission accepted by slashdot. There is a recipe. Deliberately omit important details from the summary, include something slightly inaccurate, and end with a zing.
It drives responses. People post to add the missing important detail. People post to correct or clarify the slight inacuracy. People post in response to the "zing." I have been doing this for years. Follow the recipe any your submissions will be accepted too.
Nokia is suing 5 companies and is being sued by 2.
Kodak is suing 5 companies and is being sued by none.
Microsoft is suing 2 companies and is being sued by none.
Apple is suing 2 companies and is being sued by 3.
Motorola is suing nobody and is being sued by three companies.
Sharp is suing nobody and is being sued by 3 companies.
LG and HTC are being sued 2 times apiece.
So, is Nokia the worst offender as it watches its profits tank in response to fierce competition?
Is Kodak, the king of failed business models overtaken my new technology, the next worst offender?
When companies start suing, it seems to be because they have stopped competing.
You definitely want Quaternions and Euler Angles:
The story behind Quaternions justifies permanent ink if any math theorem ever did: http://en.wikipedia.org/wiki/Quaternion
http://www.usgovernmentspending.com/us_20th_century_chart.html
Irrespective of military spending and the reduction of the progressive tax burden, the federal government now spends more than 40% of the US GDP every year. Back in the supposed heyday of science funding, the fed spent less than 30% of GDP. The REAL reason that science funding isn't higher is the entitlement state. Medicare alone costs more annually that the entire budget of NSF, NEA, DARPA, and DOE inception to date. NIH is funded in the Medicare budget.
"With an annual budget of about US $6.87 billion (fiscal year 2010), the NSF funds approximately 20 percent of all federally supported basic research" http://en.wikipedia.org/wiki/National_Science_Foundation NSF budget is currently the highest it has ever been even adjusted for inflation.
Medicare cost under existing law are $489.3 billion; the figure for Medicaid is $264.5 billion. Both will raise $58 billion in 2011.
Yes. iPhone OS uses the Quartz 2D graphics system which uses the PDF "imaging model."
See the following explanation for WHY two stage initialization: http://www.informit.com/articles/article.aspx?p=1339553
It was possible to write Openstep (now known as Cocoa) applications on Windows before it was possible on Mac.
See http://en.wikipedia.org/wiki/OpenStep#OPENSTEP_Enterprise
There are real problems and objections to "code behind" a.k.a. click to code. In short, code behind encourages violation of "separation of concerns" and promotes placing application logic in the user interface. Cocoa uses the Model View Controller design by default, and Interface Builder reflects that.
http://dotnetaddict.dotnetdevelopersjournal.com/exploring_the_mvc_pattern_in_wpf.htm
http://dotnetaddict.dotnetdevelopersjournal.com/ide_greenerpastures.htm
http://dotnetaddict.dotnetdevelopersjournal.com/tags/?/cocoa
http://dotnetaddict.dotnetdevelopersjournal.com/iphone_sdk_negative_response.htm
Apple's Cocoa frameworks started out as NeXTstep in 1988 (22 years ago) and have changed only incrementally since. Microsoft should have been embarrassed to ship Win16 let alone Win32.
Grand Central Dispatch is a high level C based technique for distributing computation of heterogenous cores such as GPUs and CPUs. It is open source, but having vendor support from MS might be the key to wide adoption and standardization.
To do nothing is to be nothing.