You made some very good points. At first glance, my impression is that part one is really the travelling salesman problem, so some kind of branch-and-bound might do a good job, which you could initialize with a greedy algorithm to get a good upper bound.
You could then just reuse your greedy for part two, but your observation that you need to take into account the other squirrels is correct. Maybe you could just modify your greedy to get you to the first nut that is closest to you than to any other squirrel (as opposed to just the closest nut), but there won't always be such a thing... Hmmm...
Wish I had time to participate in this, it sounds fun.
One thing I've started doing to manage my huge inbox is to create yearly archives instead of using project-specific subfolders. I figure that searching by sender in the corresponding archive is fast enough not to bother with classifying all my email.
Now to get to the topic of this thread, I think the same idea could be applied to the file system as well. Create a very simple directory hierarchy (work, fun...) that includes a "archives" subdir.
"archives" would contain subdirs named after the year of the files inside, and each such subdirs contains the same directory hierarchy as your main one. Every year, just sort by date, move the old files to a new archive, back them up, and forget about them.
"Refactoring to Patterns" gotta be my favorite software book of the year (assuming it was indeed published in 2004). Finally someone who makes the connection between test-driven development and design patterns!
You know, it's your post that should have made the Slashdot story, not that piece of marketing crap we were given.
I'd say we're getting there with respect to support for refactoring (Eclipse does a good job, and I hear IDEA is even better). But spatial code browsing and replay debugging, if done well, would definitely revolutionize development.
Publish-subscribe is just a design pattern, and fully supported in modern OO languages (think event model), nobody's stopping you from using it!
I have a bit of experience with tuple-spaces, and although the concept is appealing, tracing and debugging can become hell very quickly as the size of the program increases. This is an area where very smart debuggers would be needed to make the concept practical, in a way it's the same problem I have with Prolog-type languages.
Social documentation should be supported directly in the IDE, and in a contextual manner, i.e. a right-click or an Eclipse "light-bulb" away. And no, this doesn't mean I want full web browser support in my already bloated IDE. Text and maybe hyperlinks are good enough.
As for your last point, allow me to connect it with social documentation. Let's integrate calendaring and RSS with TODOs in IDEs, and be able to track everybody's progress. Now that might help with project estimation issues.
While I'd agree with most other posts that skimming is important, I'd say you should still read thoroughly at least 1 GOOD scientific article in your general field per month, if you are interested in research that is. By reading thoroughly I mean that you should try to understand, as much as possible, everything about that paper.
It doesn't matter if it is old or recent. What matters is to get you very familiar with a particular research domain, related work, proof technique and experimental methodology.
What this does to you is broaden your horizon, and get you to think hard about a problem (hard to do in a ADD world!).
How to find such an article? Citeseer is a good start, use it to see which references in your domain are the most cited.
Interestingly enough, one of the benefits of doing this is that it'll help you read less important papers much faster, as you'll already be familiar with the techniques that are used and the general ideas that are discussed.
A cousin and I used to play the same game, but using Lego engine in the cars (yeah, those were some expensive sets, but our parents spoiled us). So we'd run the cars against each other using the remote. My cousin would come up with the most impressive trucks, and he always won. Funnily enough though, I was the one who ended up an engineer.
But one reason the basic user hesitates to use the command line is the fear of making mistakes. The "find" command you used as an example is a case in point. What if there's a mistake or a typo in your command, and you end up wiping out the wrong files? You better be sure that you know what you're doing!
On the other hand GUI solutions usually provide an "undo" button, which is a nice safety net to have. Now I'm no command line guru, and there might also be an undo command somewhere in Unix, but if there is, I'm willing to bet most average users don't know about it either.
I say both metaphors are useful, and I'm happy I have the option to use either.
I can't see why you couldn't just embed encoded binary data between/* and */
...or links! I really like the grandparent's idea, but you should go even further: why turn the recording into text? Just cut it into small MP3, and make links to them within your comments. The code editor would just need to handle links properly - for example it would play back the MP3 when you hover your mouse on it.
So I guess our difference in opinion comes from the fact that to me, a human being can also be thought of as a complicated machine. Intelligence is always an "illusion", as long as the machinery behind it is undiscovered.
As computers solve more and more difficult problems (beating humans at chess, learning to filter spam, semi-autonomously exploring space...) we become blase with our achievements and our ambitions raise. But let's not forget that when those problems were defined, we said that if a computer could solve them it would exhibit a sign of intelligence. It shouldn't matter that the way the problem was solved was different from the way a human being would have done it. Different illusions/heuristics, that's all.
I agree though that we are far far away from a general purpose, all-sensing, self-programming intelligent agent. Maybe, in fact, it is just better this way.
The beauty of google (not that I love google, but they did hit a nail on the head) is that it requires no effort or "machine intelligence", beyond a very simple algorithm that depends not on AI but rather real, tangible relationships between words and documents (proximity and links). This is something that computers can be really good at.
And that's the curse of AI right there. Because you happen to know the algorithm underneat Google, you don't think of it as "intelligent". But to the average Joe it can certainly seem that way.
We used to say that the day a chess program could beat a human, it'd be proof that machines can be intelligent. But now that we know how to build such a system it has lost its magic, and therefore shouldn't count as AI?
... and they would serve ads that are dependent on the web page that you are currently browsing. Opera's business model and Google's adSense could indeed be a match made in heaven.
Well, nobody in this thread seems to care so far, but the question is indeed valid: does this mean that Jabber just beat SIMPLE? How will the IETF accommodate these two competing standards?
I think the issue is more with the timing. Bush Sr. could have finished the job and everybody would have supported it. Attacking Iraq in the middle of the "war on terror", with no worldwide support, with or without WMDs, just does not make sense.
Use Wiki Wiki to discuss design decisions, keep track of bugs and various issues, post GUI snapshots, maintain documentation...
The good thing with Wiki, compared to forums, is that the information will be better organized, easier to search, and you can use your CVS server to maintain a history.
There are many good Wiki Wiki implementations available, just google for TWiki or Kwiki as a start...
You made some very good points. At first glance, my impression is that part one is really the travelling salesman problem, so some kind of branch-and-bound might do a good job, which you could initialize with a greedy algorithm to get a good upper bound.
You could then just reuse your greedy for part two, but your observation that you need to take into account the other squirrels is correct. Maybe you could just modify your greedy to get you to the first nut that is closest to you than to any other squirrel (as opposed to just the closest nut), but there won't always be such a thing... Hmmm...
Wish I had time to participate in this, it sounds fun.
One thing I've started doing to manage my huge inbox is to create yearly archives instead of using project-specific subfolders. I figure that searching by sender in the corresponding archive is fast enough not to bother with classifying all my email.
Now to get to the topic of this thread, I think the same idea could be applied to the file system as well. Create a very simple directory hierarchy (work, fun...) that includes a "archives" subdir.
"archives" would contain subdirs named after the year of the files inside, and each such subdirs contains the same directory hierarchy as your main one. Every year, just sort by date, move the old files to a new archive, back them up, and forget about them.
"Refactoring to Patterns" gotta be my favorite software book of the year (assuming it was indeed published in 2004). Finally someone who makes the connection between test-driven development and design patterns!
You know, it's your post that should have made the Slashdot story, not that piece of marketing crap we were given.
I'd say we're getting there with respect to support for refactoring (Eclipse does a good job, and I hear IDEA is even better). But spatial code browsing and replay debugging, if done well, would definitely revolutionize development.
Publish-subscribe is just a design pattern, and fully supported in modern OO languages (think event model), nobody's stopping you from using it!
I have a bit of experience with tuple-spaces, and although the concept is appealing, tracing and debugging can become hell very quickly as the size of the program increases. This is an area where very smart debuggers would be needed to make the concept practical, in a way it's the same problem I have with Prolog-type languages.
Social documentation should be supported directly in the IDE, and in a contextual manner, i.e. a right-click or an Eclipse "light-bulb" away. And no, this doesn't mean I want full web browser support in my already bloated IDE. Text and maybe hyperlinks are good enough.
As for your last point, allow me to connect it with social documentation. Let's integrate calendaring and RSS with TODOs in IDEs, and be able to track everybody's progress. Now that might help with project estimation issues.
While I'd agree with most other posts that skimming is important, I'd say you should still read thoroughly at least 1 GOOD scientific article in your general field per month, if you are interested in research that is. By reading thoroughly I mean that you should try to understand, as much as possible, everything about that paper.
It doesn't matter if it is old or recent. What matters is to get you very familiar with a particular research domain, related work, proof technique and experimental methodology.
What this does to you is broaden your horizon, and get you to think hard about a problem (hard to do in a ADD world!).
How to find such an article? Citeseer is a good start, use it to see which references in your domain are the most cited.
Interestingly enough, one of the benefits of doing this is that it'll help you read less important papers much faster, as you'll already be familiar with the techniques that are used and the general ideas that are discussed.
A cousin and I used to play the same game, but using Lego engine in the cars (yeah, those were some expensive sets, but our parents spoiled us). So we'd run the cars against each other using the remote. My cousin would come up with the most impressive trucks, and he always won. Funnily enough though, I was the one who ended up an engineer.
But one reason the basic user hesitates to use the command line is the fear of making mistakes. The "find" command you used as an example is a case in point. What if there's a mistake or a typo in your command, and you end up wiping out the wrong files? You better be sure that you know what you're doing!
On the other hand GUI solutions usually provide an "undo" button, which is a nice safety net to have. Now I'm no command line guru, and there might also be an undo command somewhere in Unix, but if there is, I'm willing to bet most average users don't know about it either.
I say both metaphors are useful, and I'm happy I have the option to use either.
Wow, thought that you were joking (made me think of the Simpson's Halloween special for some reason), but the article seems legit.
Well, maybe we're better off if they take over the world, they can't do worse than we are, can they?
Well, Slashdot stories are sometimes hyperlinked to death that way...
Maybe Skype uses BitTorrent to push porn spam? I think I covered all the bases.
Guess what, Swedish brunettes are EVEN HOTTER than the blondes. Scary...
Great site! But Firefox didn't like it, I had to run IE to get it to work for me.
Well, maybe that's what the founder had it mind when he named his company "Keyhole" (what kind of crazy name is that BTW)?
Well, if they were all great people in Denmark, surely they wouldn't need such an ad?
"180 if it's an Oliver Stone film"
Your previous comments in this thread got me close, but that's it, now I'm laughing like an idiot at my monitor. Thanks!
There is one, but it's called SACEM (Societe des Auteurs Compositeurs Editeurs de Musique). And they can be just as obnoxious when they want to.
So I guess our difference in opinion comes from the fact that to me, a human being can also be thought of as a complicated machine. Intelligence is always an "illusion", as long as the machinery behind it is undiscovered.
As computers solve more and more difficult problems (beating humans at chess, learning to filter spam, semi-autonomously exploring space...) we become blase with our achievements and our ambitions raise. But let's not forget that when those problems were defined, we said that if a computer could solve them it would exhibit a sign of intelligence. It shouldn't matter that the way the problem was solved was different from the way a human being would have done it. Different illusions/heuristics, that's all.
I agree though that we are far far away from a general purpose, all-sensing, self-programming intelligent agent. Maybe, in fact, it is just better this way.
And that's the curse of AI right there. Because you happen to know the algorithm underneat Google, you don't think of it as "intelligent". But to the average Joe it can certainly seem that way.
We used to say that the day a chess program could beat a human, it'd be proof that machines can be intelligent. But now that we know how to build such a system it has lost its magic, and therefore shouldn't count as AI?
Well, nobody in this thread seems to care so far, but the question is indeed valid: does this mean that Jabber just beat SIMPLE? How will the IETF accommodate these two competing standards?
I fail to see how his personal matters, and him lying about them, should be our business in the first place.
I think the issue is more with the timing. Bush Sr. could have finished the job and everybody would have supported it. Attacking Iraq in the middle of the "war on terror", with no worldwide support, with or without WMDs, just does not make sense.
Use Wiki Wiki to discuss design decisions, keep track of bugs and various issues, post GUI snapshots, maintain documentation...
The good thing with Wiki, compared to forums, is that the information will be better organized, easier to search, and you can use your CVS server to maintain a history.
There are many good Wiki Wiki implementations available, just google for TWiki or Kwiki as a start...