I'm not sure what kind of bizarro world that you live in, but around here it's considered good when you know what your problems are.
Yeah. What I should have said was "a few people at Microsoft clearly have a clue about why the iPod succeeded, but they'll have a hard time getting past the majority of marketers there."
This video demonstrates that at least one person in Microsoft believes that their standard bury-the-customer-in-feature-lists approach (which works well selling complex software suites) isn't well-suited to portable music players. This person clearly feels that Apple's minimalist approach would never get past a Microsoft marketing review, which is why Microsoft will not be able to displace the iPod.
Can't you hear the marketing people at MS watching this video and saying, "Yes! That's what we need to do!"
... is that it was made by Microsoft marketing. They know what their problems are, and they essentially admit they haven't a chance in hell of fixing them. That's why they'll never develop an iPod killer, much less an iPod/DS/PSP killer.
Small example - symbolic links are not in the POSIX standard, even though every Unix since BSD 4.x (4.2? I forget...) has had them. Nobody's Unix compatibility system for Windows does symbolic links, because they're not a good fit for the Windows file system - the closest you can come is linking to a directory, not a file.
Windows has a POSIX-compliant subsystem, and has had it for years, but it doesn't do symbolic links, not completely. How many non-trivial Unix applications don't use symbolic links, either at build time or run time?
You can become a decent programmer starting from any language, as long as you ultimately:
* learn several languages
* learn languages with widely differing characteristics
* learn them well enough, i.e. you don't know a language until you've used it for at least one non-trivial task
* take a data structures and analysis of algorithms course, after you know at least two languages
Most of the people I would consider bad programmers know only one language, or know one well and others very superficially, like the engineers who can write Fortran in any language*.
To show what it's possible to overcome, I started out with BASIC in high school. BASIC does not cause permanent brain damage, if you limit your exposure to it.
Before college I had moved out to assembly (PDP8); in college I was exposed to COBOL, FORTRAN, PL/I and 360 assembler. In graduate school I moved up to Pascal and C, but I also finally took a decent algorithms and data structures course - and learned Lisp. Those last two things were probably as important as all the previous experience in making me the hacker I am today.
* This is not meant to be a slur on all engineers who program when necessary - just the ones who do it badly, over and over again.
It is the head of NASA who makes the budget the way it is.
And the head of NASA reports directly to the President. And NASA is definitely part of the executive branch of the US government. If the President says "jump" to NASA, it responds "How High, Sir?".
If the scientists had been in control, we would have shot the International Space Station and the Shuttle years ago. Together they suck up most of NASA's budget, and return little or nothing in new data.
You are correct, NASA's budget is not being globally cut. However, because most of it is directed towards the ISS and Shuttle, there's not much left for support of small science or new manned vehicle design.
Congress needs to take its lumps for this mess, too. The ISS and Shuttle are popular because they spend money in most of the states.
Before we get into any discussions about replacing {coal/oil} with {nuclear/solar/wind/biomass} in the US, everybody look at the chart here.
The biggest thing that jumps out at you from this chart is that increasing nuclear power won't decrease our use of oil. Current rhetoric from the Bush administration about nuclear power aiding energy independence is just that, rhetoric, and that won't change without massive restructuring of the US energy system. Similar rhetoric about replacing oil with solar or wind power is also nonsense.
What it will do is reduce our use of coal, and maybe allow some natural gas to be shifted away from electricity towards heating and industrial use.
I missed the secunia.mov file because my desktop is a mess (and it's usually completely covered by emacs X windows), but it's there and just as innocuously evil as you said.
Get Info on secunia.mov says it's a Terminal document. So apparently you can hard-code OS X metadata in a zip file, and that metadata can differ from the extension's. Yecch!
I just tried the test with Firefox, and it doesn't appear to matter which browser you use. If you open the file after it downloads, the calculator app appears.
I just tried the following:
Safari + open safe downloads ON - Terminal and Calculator opened automatically
Safari + open safe downloads OFF - file downloads, opening it from the Downloads window does nothing
OS X 10.4.5, Safari 2.0.3, everything up to date from Software Update.
This is a nasty one, but turning Open Safe Downloads off seems to pull its fangs.
1972. High school. Teletype and acoustic modem to a PDP-8E with 8K of RAM and 256K disk. Learned BASIC, FOCAL and assembler on it. That machine wasn't "mine" though, because we had to share it, and access was at the whims of the phone company - we were in Spartanburg SC, and the machine was in the engineering department at Clemson, 70 miles away.
The first machine I got to sit in front of was a PDP-8. About the size of a small refrigerator, with a tape drive next to it about the same size. The peripheral I really liked, though was the 1024x1024 monochrome oscilloscope display. My senior science project in 1974 was a spacewar program, written at home on the timeshared machine, then punched to paper tape, driven to the stand alone 8, and debugged in Friday night marathons. The program actually displayed a moving, orbiting object the first time - I had no idea how astonishing that was!
Sadly, the programming language cannot be changed due to reasons of efficiency and availability of core libraries.
I can all but guarantee you that said libraries will have undocumented memory usage "features" that will conflict with whatever careful programming model you put together in your code. Very, very few C++ libraries are designed with long-term memory usage sanity in mind. If I were you, I would not trust any code that I hadn't read in detail.
The C++ code I posted is straight STL, which calls a function in the Xerces-C++ library - it has a major bug in it as posted because Slashdot ate a critical '<'. See this posting for the details.
I object to the C++ STL method of denoting function objects because it's verbose, and it's verbose without being enlightening. In C++, this kind of stuff happens routinely because of having to avoid new syntax and new keywords that might conflict with old C code. Is 'operator()' clear and intuitive to you?
The second line is only cryptic if you don't know Lisp at all. It's short for
(function string<)
and is the standard Common Lisp notation for reference-to-function. In the Scheme dialect, the (function...) wrapper isn't needed, but the name of the string comparison function is different:
string<?
The last one in normal Lisp source would be indented like this: (lambda (s1 s2)
(declare (string s1 s2))
(string< s1 s2))
It's closer to the C++ because of the (optional in Common Lisp, for speed only) declaration in the second line.
None of this stuff is tricky Lisp - it's just a notation you're unfamiliar with.
On the subject of verbosity, one of the real gurus of Common Lisp, Richard Gabriel, agrees with you. See the "Abstraction Descant" chapter in his book Patterns of Software. Great book if you're at all into software patterns, BTW.
when I wanted to map a bunch of Xerces tags to corresponding standard C filenames. There is probably a better way to do this using Boost, but I believe it's the canonical way of using the STL in this instance. This program has to live inside libraries that barely use the STL, much less "exotic" stuff like Boost.
Some of the ugliness here probably comes from Xerces - that's where the STD above came from.
Actually, it's a bit more elegant than lisp *gasp*:
_1 - _2
Assuming you actually meant:
_2 - _1
which is what my example did, that does look interesting. It also shows why numbered positional parameters are probably a bad idea, if they require you to trade terseness for readability.
Don't underestimate 'hip'
on
Java Is So 90s
·
· Score: 1
These articles are just a joke. That they would even use the term "hip" shows that this is far from a serious study.
If they mean 'hip' as in 'the new cool technology that all the leet hackers are using these days', you're right, this won't affect how large business projects are done.
If they mean 'hip' as in 'which environment will the PHBs choose for the next project when they shoot from the hip', then studies like this are important. After all, those people are probably susceptible to the 'Google doesn't use Java' argument.
The last time I actually tried the DC Metro Trip Planner (about a year ago), it was useless:
It didn't recognize addresses outside of the District proper
It would punt altogether if there was no bus or rail service within a mile of your starting point.
These two together broke the service for about half the area covered by Metrorail.
It has apparently improved on the first point, but still loses on the second. If you tell it you're starting from a suburban Metro station, it works pretty well getting you into and out of DC.
Patenting the idea will discourage others from using it for this purpose. I like the idea of, say, having an RFID tag in your hospital bracelet, but this is just a way for advertisers to get their hooks even more deeply into us.
... for Massachusetts to pay Freedom Scientific to customize JAWS to work with Open Office. This would cost a very small fraction of their current statewide Office licensing fees. It could be justified as part of making their state document processing environment compliant with the ADA and section 508.
Once the major modification effort was done, it would have to be maintained and updated in parallel with Open Office. Freedom Scientific could afford to do that, paid for out of licensing and support fees from Open Office/JAWS users.
So you guys can now do what I could do 30 years ago in APL. Hey, I guess you're starting to catch up!
Yeah, we had this like three levels up the thread. Edit/resume in a COMPILED language. 30 years ago you interpreted APL and that's why you had edit/continue.
Edit/resume has been available in compiled Lisp environments since at least 1982. That's when I first used it in Franz Lisp on a VAX, and it was available on Lisp machines before that, in 1979/80. Not 30 years, granted - will you settle for 25?
* one for the anti-virus suite
* one for my use
Yeah. What I should have said was "a few people at Microsoft clearly have a clue about why the iPod succeeded, but they'll have a hard time getting past the majority of marketers there."
This video demonstrates that at least one person in Microsoft believes that their standard bury-the-customer-in-feature-lists approach (which works well selling complex software suites) isn't well-suited to portable music players. This person clearly feels that Apple's minimalist approach would never get past a Microsoft marketing review, which is why Microsoft will not be able to displace the iPod.
Can't you hear the marketing people at MS watching this video and saying, "Yes! That's what we need to do!"
... is that it was made by Microsoft marketing. They know what their problems are, and they essentially admit they haven't a chance in hell of fixing them. That's why they'll never develop an iPod killer, much less an iPod/DS/PSP killer.
Small example - symbolic links are not in the POSIX standard, even though every Unix since BSD 4.x (4.2? I forget...) has had them. Nobody's Unix compatibility system for Windows does symbolic links, because they're not a good fit for the Windows file system - the closest you can come is linking to a directory, not a file.
Windows has a POSIX-compliant subsystem, and has had it for years, but it doesn't do symbolic links, not completely. How many non-trivial Unix applications don't use symbolic links, either at build time or run time?
... the Maytag repariman.
* learn several languages
* learn languages with widely differing characteristics
* learn them well enough, i.e. you don't know a language until you've used it for at least one non-trivial task
* take a data structures and analysis of algorithms course, after you know at least two languages
Most of the people I would consider bad programmers know only one language, or know one well and others very superficially, like the engineers who can write Fortran in any language*.
To show what it's possible to overcome, I started out with BASIC in high school. BASIC does not cause permanent brain damage, if you limit your exposure to it.
Before college I had moved out to assembly (PDP8); in college I was exposed to COBOL, FORTRAN, PL/I and 360 assembler. In graduate school I moved up to Pascal and C, but I also finally took a decent algorithms and data structures course - and learned Lisp. Those last two things were probably as important as all the previous experience in making me the hacker I am today.
* This is not meant to be a slur on all engineers who program when necessary - just the ones who do it badly, over and over again.
If the scientists had been in control, we would have shot the International Space Station and the Shuttle years ago. Together they suck up most of NASA's budget, and return little or nothing in new data.
You are correct, NASA's budget is not being globally cut. However, because most of it is directed towards the ISS and Shuttle, there's not much left for support of small science or new manned vehicle design.
Congress needs to take its lumps for this mess, too. The ISS and Shuttle are popular because they spend money in most of the states.
Phoney was primarily a con man - that isn't too far removed from a marketspeaking CEO, though.
Before we get into any discussions about replacing {coal/oil} with {nuclear/solar/wind/biomass} in the US, everybody look at the chart here.
The biggest thing that jumps out at you from this chart is that increasing nuclear power won't decrease our use of oil. Current rhetoric from the Bush administration about nuclear power aiding energy independence is just that, rhetoric, and that won't change without massive restructuring of the US energy system. Similar rhetoric about replacing oil with solar or wind power is also nonsense.
What it will do is reduce our use of coal, and maybe allow some natural gas to be shifted away from electricity towards heating and industrial use.
I missed the secunia.mov file because my desktop is a mess (and it's usually completely covered by emacs X windows), but it's there and just as innocuously evil as you said.
Get Info on secunia.mov says it's a Terminal document. So apparently you can hard-code OS X metadata in a zip file, and that metadata can differ from the extension's. Yecch!
I just tried the following:
Safari + open safe downloads ON - Terminal and Calculator opened automatically
Safari + open safe downloads OFF - file downloads, opening it from the Downloads window does nothing
OS X 10.4.5, Safari 2.0.3, everything up to date from Software Update.
This is a nasty one, but turning Open Safe Downloads off seems to pull its fangs.
Let's see, drop the output power by a factor of 20 or so, and project the image on the inside of my glasses...
Yep, that ought to do it!
1972. High school. Teletype and acoustic modem to a PDP-8E with 8K of RAM and 256K disk. Learned BASIC, FOCAL and assembler on it. That machine wasn't "mine" though, because we had to share it, and access was at the whims of the phone company - we were in Spartanburg SC, and the machine was in the engineering department at Clemson, 70 miles away.
The first machine I got to sit in front of was a PDP-8. About the size of a small refrigerator, with a tape drive next to it about the same size. The peripheral I really liked, though was the 1024x1024 monochrome oscilloscope display. My senior science project in 1974 was a spacewar program, written at home on the timeshared machine, then punched to paper tape, driven to the stand alone 8, and debugged in Friday night marathons. The program actually displayed a moving, orbiting object the first time - I had no idea how astonishing that was!
I can all but guarantee you that said libraries will have undocumented memory usage "features" that will conflict with whatever careful programming model you put together in your code. Very, very few C++ libraries are designed with long-term memory usage sanity in mind. If I were you, I would not trust any code that I hadn't read in detail.
... and my family tree does too branch, thankyouverymuch.
The C++ code I posted is straight STL, which calls a function in the Xerces-C++ library - it has a major bug in it as posted because Slashdot ate a critical '<'. See this posting for the details.
...) wrapper isn't needed, but the name of the string comparison function is different:
I object to the C++ STL method of denoting function objects because it's verbose, and it's verbose without being enlightening. In C++, this kind of stuff happens routinely because of having to avoid new syntax and new keywords that might conflict with old C code. Is 'operator()' clear and intuitive to you?
The second line is only cryptic if you don't know Lisp at all. It's short for
(function string<)
and is the standard Common Lisp notation for reference-to-function. In the Scheme dialect, the (function
string<?
The last one in normal Lisp source would be indented like this:
(lambda (s1 s2)
(declare (string s1 s2))
(string< s1 s2))
It's closer to the C++ because of the (optional in Common Lisp, for speed only) declaration in the second line.
None of this stuff is tricky Lisp - it's just a notation you're unfamiliar with.
On the subject of verbosity, one of the real gurus of Common Lisp, Richard Gabriel, agrees with you. See the "Abstraction Descant" chapter in his book Patterns of Software. Great book if you're at all into software patterns, BTW.
The admittedly ugly code I posted was cut-and-pasted from a recent program I wrote using the STL and Xerces-C++. The money line should have been:
;-)
return XMLString::compareString(s1, s2) < 0;
(Slashdot ate the <. I fixed it in the Lisp code, but didn't notice it in the C++ - wonder why...
That nasty little wrapper around XMLString::compareString allowed me to write:
STD map<const XMLCh*, const char*, ltXMLCh> label2filename;
when I wanted to map a bunch of Xerces tags to corresponding standard C filenames. There is probably a better way to do this using Boost, but I believe it's the canonical way of using the STL in this instance. This program has to live inside libraries that barely use the STL, much less "exotic" stuff like Boost.
Some of the ugliness here probably comes from Xerces - that's where the STD above came from.
Assuming you actually meant:
_2 - _1
which is what my example did, that does look interesting. It also shows why numbered positional parameters are probably a bad idea, if they require you to trade terseness for readability.
Can you imagine what a C++ lambda construct would have to look like?
(lambda (x y) (- y x))
would turn into a mess like:
int lambda(int x, int y) { return y - x; }
And that's a trivial one...
They don't have writers the caliber of Guy Steele or Kent Pitman, so it'll still read like gargling razor blades
Their legacy syntax straightjacket will insure the code stays verbose and hard to read. Compare:
struct ltXMLCh {
bool operator() (const XMLCh* s1, const XMLCh* s2) const
{
return XMLString::compareString(s1, s2) 0;
};
};
with
#'string<
or (comparing apples to apples):
(lambda (s1 s2) (declare (string s1 s2)) (string< s1 s2))
If they mean 'hip' as in 'the new cool technology that all the leet hackers are using these days', you're right, this won't affect how large business projects are done.
If they mean 'hip' as in 'which environment will the PHBs choose for the next project when they shoot from the hip', then studies like this are important. After all, those people are probably susceptible to the 'Google doesn't use Java' argument.
It didn't recognize addresses outside of the District proper
It would punt altogether if there was no bus or rail service within a mile of your starting point.
These two together broke the service for about half the area covered by Metrorail.
It has apparently improved on the first point, but still loses on the second. If you tell it you're starting from a suburban Metro station, it works pretty well getting you into and out of DC.
Patenting the idea will discourage others from using it for this purpose. I like the idea of, say, having an RFID tag in your hospital bracelet, but this is just a way for advertisers to get their hooks even more deeply into us.
... for Massachusetts to pay Freedom Scientific to customize JAWS to work with Open Office. This would cost a very small fraction of their current statewide Office licensing fees. It could be justified as part of making their state document processing environment compliant with the ADA and section 508.
Once the major modification effort was done, it would have to be maintained and updated in parallel with Open Office. Freedom Scientific could afford to do that, paid for out of licensing and support fees from Open Office/JAWS users.
Edit/resume has been available in compiled Lisp environments since at least 1982. That's when I first used it in Franz Lisp on a VAX, and it was available on Lisp machines before that, in 1979/80. Not 30 years, granted - will you settle for 25?