"Surely You're Joking, Mr. Feynman!": Adventures of a Curious Character and What Do You Care What Other People Think? both by Richard P. Feynman et al.
Hackers: Heroes of the Computer Revolution by Steven Levy
All three of these books I happened to have read between my sophomore and junior year of high school.
These books changed my life because they provided accounts of people (geeks) pursuing their love of science/technology in a fiercely dedicated and independent way, all at a young age (you get early accounts of folks like Stallman, Gates, Jobs, Woz, etc. as 20-somethings in "Hackers") , and ended up making huge contributions to research/industry. You also get to hear about the enormous sacrifices, regrets, and risks taken (some succeeding, some failing), and ultimately an important perspective on the lives of some very smart and important characters in a way that I think is still relevant to graduating high school kids today.
I have the (full) teacher/student version. I get the mailbox lock error constantly for my IMAP account. I have it checking for new mail every 5 minutes, and about half the time I get an error.
On the web, people have suggested unchecking "send commands simultaneously" from the Account configuration menu (just google for it). But that doesn't seem to help. Any other suggestions?
Also, the "live sync" option for IMAP accounts doesn't seem to work. I expect to be notified immediately when I get new mail, but it only notifies me when I'm actively doing something with Entourage (reading old messages, etc.).
Finally, if you have "live sync" on AND have the account included in your "send & receive" schedule, Entourage seems to get the mail twice, resulting in duplicate mails appearing in my inbox. And then you can only "delete" one of them. To get rid of the second one, you have drag it to the trash.
I ran into all these problems the first hour of using Entourage. Very disappointing.
The wrong thing to do is to assign something where the result of their work is a bunch of printed text.
Something along the lines of RoboCode would be ideal:
http://www-106.ibm.com/developerworks/java/libra ry / -robocode/
But since you're doing this in C++, you'll have to roll your own.
Basically, whatever it is that they're doing, make it something that can take input from some external source, and have its output be read by something that can transform the output into something fun. This means a *lot* of work for the teaching staff, since they'll be writing lots of libraries and/or server/client code.
For example:
output for their code are integers ranging from 0 to 2^16. These integers are fed into a digital to analog converter and the students get hear the result. Student will go from producing a single tone (they'll have to create a sine wave, or even a triangle wave is fine) to chords and melodies in no time! lots of good programming and SIMPLE programming meat to chew on.
students could write a black jack player. the input will be integers representing the value of their card, and they'll output if they want to hit or stay. then the staff (you) could write a nice gui and driver around the thing and the students can play black jack (or any other card game...) against a program that they wrote. you could also make the programs play against each other.
Microsoft is sinking to new lows in my eyes... something that I thought was "technically impossible".:)
But seriously, when it comes down to it, this is about money. Has anyone thought of trying to show Microsoft a way that it can make *more* money by building (or rather, allowing people to take advantage of) a modular Windows? I don't expect there to be too many responses, since I'm sure (well, not that sure) that MS has put some thought into this. But just looking to generate some discussion.
Really, dealing with MS is like dealing with a spoiled 5 year old. At this, I'm just trying to think of ways that one might "reason" with such a child.:)
Idea number 1: Wear all black and a gas mask. Bust into people's classrooms and offices commando-style and do a spot check on why they're using 1 Mbs of bandwidth. Be sure to have two or three other guys with you to get every thing on camera. Post footage on the net.
Idea number 2: Every week email the entire administration the top 10 bandwidth (ab)users. Award the #1 user a giant dunce cap. Encourage the students to wager who's going to make #1 the up-coming week.
Idea number 3: Send out an email saying that you've volunteered the school to participate in a survey on internet usage at K-12 schools, conducted by the FBI, and that people shouldn't be worried about the invisible key-stroke-loggers that have been installed on all computers the night before. Also note that in exchange for the school's cooperation, the FBI has generously agreed to install numerous tiny hidden cameras around campus to help with campus security.
How to introduce new policies to supervisors? Reread what you said in the story you posted. You outlined the core issues regarding the inappropriate use of bandwidth and its affect on the network and potential liabilities for the school. Done.
Keep it simple. Don't be afraid of "offending" or "alienating" people. They are bandwidth abusers.
But here's a question. Do the bandwidth abusers include people who are "over-your-head?" If so, just go straight to the principal. Be candid.
Just one thing. Don't let yourself fall into the role of "bandwidth police". It sucks and everyone will hate you.
This has been said several times, but must be said again and again. Madnick is not a computer science professor at MIT!!!! I find this frustrating, especially having graduated from MIT in CS. I'm so sad that this guy is spoiling the reputation of the MIT CS department.
name: Madnick, Stuart E email: smadnick@MIT.EDU phone: (617) 253-6671 address: E53-321 department: School Of Mgmt title: J N Maguire Prof Of Info Tech url: http://mit.edu/smadnick/www/home.html alias: S-madnick
This is more than just a language question. It looks like you're starting to get the standard responses already for Java, C++, etc.
But all of these opinions presume that you're fairly experienced in these languages. Ignore them.
Language experience/familiarity is THE factor here, so don't discount it. Someone who has been eating and breathing Java would likely produce speedier code than someone who is just learning C, for example.
Your employer/client wants SPEED. This project involves hairy and complicated bit fiddling. I would suggest NOT using this project to learn a new language, for the risks outweigh the rewards in this situation.
If you choose to use a new langauge for this critical job, you're setting yourself up for disappoint. Do not forget that you're going to have to go through the all the growing pains associated with a new langauge. You're going to spend weekends tracking down (and learning from) all the newbie mistakes one makes with a new langauge. You are going to encounter new and unfamiliar bugs at all levels - logical design, physical design, semantic, syntactic.
Do you really want to spend your nights and weekends figuring out what the heck is throwing some particular JAVA exception seamingly at random? Why your C++ function template specialization is being ignored?
Learning a new language is exhilarating, but that will quickly turn to FRUSTRATION when you run into that weekend-long show-stopper bug.
With your product being measured by performance, and with deadlines looming... When it comes down to crunch-time, I think the choice is OBVIOUS!!
Choose a different, fun project to learn a new language. But for this product you're delivering, I would encourage you to stick with the tools you know and love.
Linux SMP kernel does the right thing as far as cache synchronization, according to the text Understanding the Linux Kernel published by O'Reilly, in reference to kernel 2.2:
The section "Hardware Cache" in Chapter 2, Memory Addressing, explained that the contents of the hardware cache and the RAM maintain their consistency at the hardware level. The same approach holds in the case of a dual processor.... But now updating becomes more time-consuming: whenever a CPU modifies its hardware cache it must check whether the same data is contained in the other hardware cache and, if so, notify the other CPU to update it with the proper value. This activity is often called cache snooping. Luckily, all this is done at the hardware level and is of no concern to the kernel.
1. The Linux Penguin, Tux: note the black feathers and beak.
2. The BSD Daemon: note the fork. (Officially it has no name according to the copyright holder Marshall Kirk McKusick. But some call it Beastie -- 'bsd'.)
3. The Free Software Foundation mascot, GNU: note the horns.
4. The GNOME "G": note the feet.
I just happened to turn the TV on, which was on MTV, and caught the middle of the the Star Wars music video at around 6pm Eastern!! Did anyone happen to tape it and encode it into an mpeg movie?
I'm sure they'll be playing the video a few more times before the movie comes out...:)
"Surely You're Joking, Mr. Feynman!": Adventures of a Curious Character
and What Do You Care What Other People Think? both by Richard P. Feynman et al.
Hackers: Heroes of the Computer Revolution by Steven Levy
All three of these books I happened to have read between my sophomore and junior year of high school.
These books changed my life because they provided accounts of people (geeks) pursuing their love of science/technology in a fiercely dedicated and independent way, all at a young age (you get early accounts of folks like Stallman, Gates, Jobs, Woz, etc. as 20-somethings in "Hackers") , and ended up making huge contributions to research/industry. You also get to hear about the enormous sacrifices, regrets, and risks taken (some succeeding, some failing), and ultimately an important perspective on the lives of some very smart and important characters in a way that I think is still relevant to graduating high school kids today.
Best,
Andrew
I have the (full) teacher/student version. I get the mailbox lock error constantly for my IMAP account. I have it checking for new mail every 5 minutes, and about half the time I get an error.
On the web, people have suggested unchecking "send commands simultaneously" from the Account configuration menu (just google for it). But that doesn't seem to help. Any other suggestions?
Also, the "live sync" option for IMAP accounts doesn't seem to work. I expect to be notified immediately when I get new mail, but it only notifies me when I'm actively doing something with Entourage (reading old messages, etc.).
Finally, if you have "live sync" on AND have the account included in your "send & receive" schedule, Entourage seems to get the mail twice, resulting in duplicate mails appearing in my inbox. And then you can only "delete" one of them. To get rid of the second one, you have drag it to the trash.
I ran into all these problems the first hour of using Entourage. Very disappointing.
-Andrew
The wrong thing to do is to assign something where the result of their work is a bunch of printed text.
a ry / -robocode/
Something along the lines of RoboCode would be ideal:
http://www-106.ibm.com/developerworks/java/libr
But since you're doing this in C++, you'll have to roll your own.
Basically, whatever it is that they're doing, make it something that can take input from some external source, and have its output be read by something that can transform the output into something fun. This means a *lot* of work for the teaching staff, since they'll be writing lots of libraries and/or server/client code.
For example:
output for their code are integers ranging from 0 to 2^16. These integers are fed into a digital to analog converter and the students get hear the result. Student will go from producing a single tone (they'll have to create a sine wave, or even a triangle wave is fine) to chords and melodies in no time! lots of good programming and SIMPLE programming meat to chew on.
students could write a black jack player. the input will be integers representing the value of their card, and they'll output if they want to hit or stay. then the staff (you) could write a nice gui and driver around the thing and the students can play black jack (or any other card game...) against a program that they wrote. you could also make the programs play against each other.
etc., etc.
Best,
andrew
Microsoft is sinking to new lows in my eyes... something that I thought was "technically impossible". :)
:)
But seriously, when it comes down to it, this is about money. Has anyone thought of trying to show Microsoft a way that it can make *more* money by building (or rather, allowing people to take advantage of) a modular Windows? I don't expect there to be too many responses, since I'm sure (well, not that sure) that MS has put some thought into this. But just looking to generate some discussion.
Really, dealing with MS is like dealing with a spoiled 5 year old. At this, I'm just trying to think of ways that one might "reason" with such a child.
-Captain Abstraction
Turn it into a game.
:)
Idea number 1: Wear all black and a gas mask. Bust into people's classrooms and offices commando-style and do a spot check on why they're using 1 Mbs of bandwidth. Be sure to have two or three other guys with you to get every thing on camera. Post footage on the net.
Idea number 2: Every week email the entire administration the top 10 bandwidth (ab)users. Award the #1 user a giant dunce cap. Encourage the students to wager who's going to make #1 the up-coming week.
Idea number 3: Send out an email saying that you've volunteered the school to participate in a survey on internet usage at K-12 schools, conducted by the FBI, and that people shouldn't be worried about the invisible key-stroke-loggers that have been installed on all computers the night before. Also note that in exchange for the school's cooperation, the FBI has generously agreed to install numerous tiny hidden cameras around campus to help with campus security.
Do people have more ideas?
-Captain Abstraction.
How to introduce new policies to supervisors? Reread what you said in the story you posted. You outlined the core issues regarding the inappropriate use of bandwidth and its affect on the network and potential liabilities for the school. Done.
Keep it simple. Don't be afraid of "offending" or "alienating" people. They are bandwidth abusers.
But here's a question. Do the bandwidth abusers include people who are "over-your-head?" If so, just go straight to the principal. Be candid.
Just one thing. Don't let yourself fall into the role of "bandwidth police". It sucks and everyone will hate you.
Let us know how things turn out.
-Captain Abstraction
This has been said several times, but must be said
again and again. Madnick is not a computer
science professor at MIT!!!! I find this
frustrating, especially having graduated from MIT
in CS. I'm so sad that this guy is spoiling the
reputation of the MIT CS department.
He teaches management!!!!!!!!!!!!!!!!
[686 parkerlocal@waikiki Documentation]$ finger madnick@mit.edu
[mit.edu]
...
There was 1 match to your request.
name: Madnick, Stuart E
email: smadnick@MIT.EDU
phone: (617) 253-6671
address: E53-321
department: School Of Mgmt
title: J N Maguire Prof Of Info Tech
url: http://mit.edu/smadnick/www/home.html
alias: S-madnick
This is more than just a language question. It looks like you're starting to get the standard responses already for Java, C++, etc.
But all of these opinions presume that you're fairly experienced in these languages. Ignore them.
Language experience/familiarity is THE factor here, so don't discount it. Someone who has been eating and breathing Java would likely produce speedier code than someone who is just learning C, for example.
Your employer/client wants SPEED. This project involves hairy and complicated bit fiddling. I would suggest NOT using this project to learn a new language, for the risks outweigh the rewards in this situation.
If you choose to use a new langauge for this critical job, you're setting yourself up for disappoint. Do not forget that you're going to have to go through the all the growing pains associated with a new langauge. You're going to spend weekends tracking down (and learning from) all the newbie mistakes one makes with a new langauge. You are going to encounter new and unfamiliar bugs at all levels - logical design, physical design, semantic, syntactic.
Do you really want to spend your nights and weekends figuring out what the heck is throwing some particular JAVA exception seamingly at random? Why your C++ function template specialization is being ignored?
Learning a new language is exhilarating, but that will quickly turn to FRUSTRATION when you run into that weekend-long show-stopper bug.
With your product being measured by performance, and with deadlines looming... When it comes down to crunch-time, I think the choice is OBVIOUS!!
Choose a different, fun project to learn a new language. But for this product you're delivering, I would encourage you to stick with the tools you know and love.
Best,
Captain Abstraction
15 months is a non-issue. It's so far out that your plans could just as well change. This needn't even be on the radar at this point.
Linux SMP kernel does the right thing as far as cache synchronization, according to the text Understanding the Linux Kernel published by O'Reilly, in reference to kernel 2.2:
... But now updating becomes more time-consuming: whenever a CPU modifies its hardware cache it must check whether the same data is contained in the other hardware cache and, if so, notify the other CPU to update it with the proper value. This activity is often called cache snooping. Luckily, all this is done at the hardware level and is of no concern to the kernel.
The section "Hardware Cache" in Chapter 2, Memory Addressing, explained that the contents of the hardware cache and the RAM maintain their consistency at the hardware level. The same approach holds in the case of a dual processor.
Hope this helps
Cheers,
Andrew
It looks to me like the logo is a merge of:
1. The Linux Penguin, Tux: note the black feathers and beak.
2. The BSD Daemon: note the fork. (Officially it has no name according to the copyright holder Marshall Kirk McKusick. But some call it Beastie -- 'bsd'.)
3. The Free Software Foundation mascot, GNU: note the horns.
4. The GNOME "G": note the feet.
Cheers,
Andrew
I just happened to turn the TV on, which was on
:)
MTV, and caught the middle of the the Star Wars
music video at around 6pm Eastern!! Did anyone happen to tape it and encode it into an mpeg
movie?
I'm sure they'll be playing the video a few more
times before the movie comes out...
Captain Abstraction