I'll just throw out a radical idea that's entirely non-technical. Why not try real dancing? For example, swing dancing can be quite energetic and a lot of fun.
Most cities have dance studios - I would say sign up for some lessons. Usually the studio also has a "practice night" - an hour or two of dance music and willing partners. I know from my youth that I would shudder when I heard the words "dance lessons" bu they're not nearly as dweebish as they sound.
For me, the advantages are: 1) They're fun - much easier to go to something that's fun. 2) They're social - you get to meet people, make new friends 3) They give you a good amount of exercise even though it doesn't seem like it.
Well, although in theory someone could do this, I don't think it really gives them an advantage.
1) The malicious team would lose all chance at "best design." My personal experience suggests that THAT prize will be most valuable. 2) The overall prize ("best programmer") should be a composite score, including the design score of the team's phase 1 entry plus their combined maintenance scores of the other phases. Thus, the malicious team almost certainly gives up all chance of winning the overall score. 4) If there are more teams than rounds, then corrupting their own entry won't actually affect everyone else - so their advantage will be fairly small. 3) The entry must actually PASS phase 1 - so it has to actually work. To have the best chance of winning, it needs to be able to do phase 1 well (cf. ICFP 2003 goal of getting the car around the tracks quickly.) Although it's possible to write intentionally unmaintainable code, it's reasonably tough to write unmaintainable effective code. 4) Finally, based on my experience in the real world, there is some incredibly crappy, unmaintainable code out there. So maybe it will just be more like the real world.:)
I would love to see a contest where you judge the best "maintainer" of code. Because maintenance programming (taking someone else's code and improving/modifying it) is a totally different beast than orginal programming.
I think an interesting programming challenge would be a multi-phase contest, where each team works on a different team's program in each phase. For instance: * Phase 1, everyone creates a program to accomplish Goal 1. * Phase 2, everyone gets someone else's program and must modify it to accomplish goal 2. * Phase 3, each team takes yet another Phase 1 program and modifies to accomplish goal 3. * Phase 4, etc...
At the end of the contest, you could determine lots of things: * Who's the best designer (based on how a phase 1 design did in the later phases) * Who is the best maintainer (based on how well the team did on goals 2-4) * If you allow different languages, you might even be able to measure whether one language is more maintainable than other languages...
Just be aware that you may have to take the camera out of the bag to take pictures. Depending on the autofocus mechanism of the camera, it can get confused by the plastic bag and refuse to focus.
It's similar to the problem of trying to shoot through a window.
Actually, I am one of those who used to have high-speed and now I don't.
My logic is pretty simple: 1) I have high-speed at work for anything serious. 2) When at home, I really don't want to spend time on the Internet. I get to read, garden a little, talk to my wife, generally behave like a non-geek. 3) When I had high-speed internet, I would always be on. It's addicting.
So I discontinued my cable-modem. I can honestly say that I much more enjoy saving the $40 than the experience of high-speed internet (but maybe just because I get that at work.) Still, it's remarkable how much you can do on the Internet over a dialup. Google, for instance, is fast even on a dialup (as is the Google cache.)
I started wondering about how fast 5000 mph really is. From simple math, thatt's 1.38 miles per second. That is, in fact, faster than the fastest speeding bullet (how fast is a speeding bullet?) So what could you do with a vehicle that fast?
Well, my commute (from Brooklyn to Manhattan) takes 35 minutes to go 7.63 miles. I could cut that commute by 34 minutes and 54 seconds. On the other hand, if I didn't mind the commute but wanted to live a little further out from the city, I could live in Los Angeles - my commute to Manhattan would still be just 33 minutes.
actually, there's an interesting example of this idea in current use.
Several convicts have copyrighted their names and then sued the judges and prosecutors for not paying a ludicrous license fee (of $500,000 or more) per use of the name in court papers. Although it has no chance of surviving a court battle, they can use it to place liens on the judges and prosecutors until the case is resolved - and the lien goes on the person's credit history, causing them to be denied loans, mortgages, etc.
Since I haven't seen this written already, I thought I would write a little bit about keeping high standards. IMHO, a key aspect of being a good leader is to set high standards, follow them yourself, and make sure everyone else does. You can tolerate mistakes, but don't tolerate sloppiness or laziness.
One might think that it's better to be more "accepting" than "demanding" - but I don't think it is. There's nothing more demotivating for a good worker to see someone else get away with shoddy work (and as a team leader, you'll find your team gets less done with shoddy work.) And there's nothing more motivating than a team that seems to accomplish the impossible - but that's only possible if everyone is really pulling their own weight.
So my advice is to spend some time explicitly thinking about what standards you want to set. For example, if you're leading a software team: * Is it acceptable for someone to check in code which breaks the build? * Is it acceptable for someone to check in code without unit tests? * Is it acceptable if someone says that one of their tasks is "done" and it hasn't been?
There are obviously a lot more questions - When can people come in? Is arriving late a big issue? If someone is late on a task, how serious is that? - but it's best to figure out your policies up front. And then make SURE you communicate them clearly, and obviously make SURE you follow the same rules.
My (limited) background: I've been in Tech for 10+ years, some of it as a manager, VP, SVP. I've actually gone up the ladder, gone back to being technical (coder/architect) and gone back up to management. And I've had my share of people refuse 'promotions'. I disagree with the guy who said "you're obviously the wrong person for the job." Some of the most intelligent managers out there know when to avoid a mess. I personally would much prefer choosing someone who recognizes the mess over someone who is just excited to be managing.
The answer to your particular situation depends a lot on your corporate culture. The following questions might help clarify things:
* What happens to managers who fail in your company? Are they fired? Do they get another chance?
* Does the company routinely promote technical people into management? Or do they prefer bringing in outside people? Or do they just keep the managers they have? Or to put it another way, is this your last chance? Or will there be more opportunities?
* Are you highly valued? That is, if someone says "Hmmm... X, Y, and Z are great", are you X, Y, or Z? [A mediocre worker might need to seize at any opportunity. A great one will probably get several chances.]
Some other thoughts:
* If the team is really so dysfunctional, then it's unlikely that someone new to management will be able to fix it. It sounds like they need someone seasoned enough in management to be able to use their authority easily, discern whose opinions can be trusted, defuse the existing problems, etc. You might not be a good choice.
* Make SURE that you get the authority to remove people from the project. Without requiring someone else's approval. Otherwise, you might get stuck with a bad team and the inability to fix it. (Hiring the right people is really the greatest tool a manager has - everything else pales in comparison to having the right people on the team.)
* If you don't want to take the job, you need a good excuse why you shouldn't. 'The project isn't cool' is terrible - and, at least for me, would prevent you from ever getting considered for another promotion. I want managers I can depend on, even when the work is boring but necessary.
* A good excuse might be something like: "I appreciate the offer, but our team is really working well right now and I don't feel right about abandoning them at this crucial point." or "I think we're on the verge of some critical research right now, and I would really like to stay on the team." If you can subtly make the point "well, I could do it but I think there are other things that are more important for me to do", you would be in the best position.
* Finally, if you do take the position: There is absolutely nothing (in my opinion) so kickass as turning a dysfunctional team into a functional one. For me, it rivals any coding that I've ever done. The perception that "oh, THAT team will definitely get it done." is great - and when you know you turned it around, that's a bonus.
I just keep my Tivo unplugged from the phone line. Tivo can only transfer the data if you plug it in (to either the phone or the internet.)
Admittedly, my Tivo has been complaining forever that it needs to make a call - but that doesn't seem to affect anything. (They claim it needs to make a call to "get the latest updates and channel information" - but so far it hasn't been necessary)
We didn't get any TiVo packages (weren't available at the time) and I wish we did, I'd watch more TV I'm sure:)
You know, I think it's really interesting the effect that Tivo has had on my TV watching. You would think, with all the advantages that Tivo brings, that one would watch more TV. After all, you can watch shows at anytime you want, you can skip commercials, you can pause Live TV...but I've found that I actually watch less TV for one important reason: Tivo makes my bad habit of watching TV compete directly with my bad habit of procrastination.
It's a sad thing. I always have these great shows that I want to watch - but then I think I could always watch them tomorrow...
An interesting bias to articles like these is that the author is not threatened with the problem. I'm waiting for the time when journalists are outsourced...I think the tone of the articles will change.
And, just like all the other jobs, I think journalism can be outsourced. Just some things to consider: * Photographers submit their photos digitally * Columnists and reports submit their stories electronically. * No need to work through the night anymore - it's daytime in India when it's night here.
The only real problem is understanding American culture enough to report on it and covering stories remotely.
Others have already tackled the "this is really a training curriculum" problem, and talked about adding some courses on theory, algorithms, etc. I would like to add another set of courses (probably upper level) that I think would be interesting...
1) Debugging Techniques This course covers the art of debugging, basic and advanced debugging techniques, how to debug someone else's code, debugging client/server applications, debugging performance/load issues, debugging on high-volume systems, debugging technologies, etc.
2) Development Methodologies In today's environment, there are many development methodolgies in vogue. This survey class will cover not only specifics of the Waterfall model, Rational Unified Process, and agile methodologies (such as XP) - but will also cover the theorectical basics of what a methodology must address. Expect discussions of feature/requirements gathering, build/release/maintenance cycles, and other "non-programming" issues.
3) Building computer systems not programs This course covers how to build "computer systems" that consist of more than 1 program. Learn the types of system architectures (client/server, multi-tier, etc.), issues and design considerations for systems, maintenance considerations, debugging issues, etc. (Note: this could probably be broken into multiple courses. I would love to see a level 1 and a level 2)
4) Project Management for Programmers (Requirement: Development Methodologies) This course discusses the basics of project management, working with a team, breaking a large project into manageable tasks, estimating task length, choosing milestones, etc. Although not a substitute for a full Project Management curriculum, this course will give you a good overview of the basics of project management.
5) Technology Evaluation This course teaches the basics of "evaluating a technology." What makes a technology good? What makes a technology obsolete? This course will discuss the theorectical process for choosing development platforms, databases, software, development methodologies, etc. As the world changes, you'll need to figure out which changes to embrace. This course will show you how these decisions should be made.
Since I haven't seen this written elsewhere, I'm sure that it's probably impossible - but here's my idea:
A US corporation can only remain a US country if a majority of its employees are US citizens. So if HP, etc. start employing Indians or Chinese, they should be forced to become either an Indian or Chinese company (and listed on their stock exchanges as well...)
I just think that if HP is using mostly non-US labor, then they shouldn't be listed as an American company.
While working at a "dot com" way early in the boom, we decided to change from being an email-forwarding service to being a "web-based email" provider. Now, an experienced person might think about some of the consequences of that "small" change. For instance:
all mail needed to be stored on our servers, not just forwarded - we'll need a lot more space
we probably should have quotas for individual accounts
we should carefully consider what mailbox format we want to use
etc...
Not me, though. The CEO was really interested in building a customizable UI so we could sell it as a "co-branded" site. So I spent about a month perfecting the customized "tag language" for cobranding - and only about 2 days on the mail storage ("Hey, let's just store it in the database")
Needless to say, we moved to a new display system in about 6 months but used the email storage system for nearly 3 years. 3 years of painful, painful maintenance nightmares (migrations to bigger databases, indexes overrunning, no quotas, MIME decoding problems, etc.)
The worst part, of course, is that I'm still known as "the guy who built that stupid mail architecture." (despite the other, better things I've done.)
But does the website encrypt the password?
on
Real Security?
·
· Score: 3, Insightful
The article hints at one of my favorite problems with password security:
And speaking of security, don't you just love those websites that continue to ask you to enter in your requested password, all done in 128 bit encryption mode, with the characters blanked out so you can't see what you're writing, only to parrot it back to you in an email...?
Many websites store passwords in cleartext (hence, they can send it back to you in an email.) They do it for a variety of stupid reasons (a programmer couldn't figure out how to encrypt it, or perhaps customer service likes being able to login as a user, etc.).
So, unfortunately, you can have an extremely clever password, entirely uncrackable, but you give it to a website and it's now immediately compromised. And worst of all, you can't tell if it's stored securely or not.
Thus, I tend to have a password for trivial/unknown systems (ie, Slashdot, chat rooms, etc.) and a password for more secure systems (eTrade, online banking, etc.)
An alternative viewpoint: I've registered my cellphone number and I'm worried.
How do they distribute the "do-not-call" list? Do they send the numbers to the telemarketers? If so, my cell-phone number will soon become 'known'! (Really, doesn't everyone expect that the first thing the telemarketers will do is import the list into their databases so they have more numbers?)
Admittedly, the article is short on details but one line stood out for me:
The Direct Marketing Association sued to block the list shortly after Congress approved it in January, saying it would violate free-speech laws and discriminate against an industry that provides millions of jobs.
Since when is being "an industry that provides millions of jobs" relevant to the law? Can (drug dealers/prostitutes/sweatshops/pick your favorite bad guy) make the same argument?
If you don't have time to watch it within the first week, are you ever really going to watch it? I think you're trying to create the modern equivalent of the "dusty box of old videotapes that I meant to watch one day".
Actually, I think I've been quite accurate about my information. I am spending " only 50% of your time devoted to stuff that can make them money."
The rest is frittered away in maintenance and the general bureaucracy of business.
Since we happen to be an XP shop, we can tell how much time we're spending on "stuff that can make them money." because it only happens when we're pairing (we do our planning, programming, scheduling, etc. in pairs. Admittedly,you also have to factor in meetings.) I personally think it's a great side-effect of XP (and pair programming in particular) that you become much more time-aware. Since we know how much time gets taken doing things other than projects, our project timelines become MUCH more accurate.
As far the PHB goes, he would prefer if I simply multiplied all times/estimates by a factor of 2 and then pretended that I was working on projects 100% of the time. Although the numbers work out the same, it gives the fiction that I'm working on projects 100%
Interestingly, I'm having a discussion with my boss's boss who wants to know why we don't get more work done on projects. I've tracked our time and it comes out to about:
50% of work time on "projects"
30% of work time on "interrupts" - projects/requests/issues that aren't formally planned
20% of work time on email, project planning, organization, (reading slashdot), etc.
His response, predictably, was "Only 50% of time on projects? I can't believe you are only 50% efficient."
So, as a simple solution, we've started using RequestTracker It's a simple ticketing system, and everything in the "Interrupts" list goes into the system (otherwise we don't work on it.) And then each week I give a nice list of all the "other things" we worked on. It's been very useful defending my "efficiency."
I'll just throw out a radical idea that's entirely non-technical. Why not try real dancing? For example, swing dancing can be quite energetic and a lot of fun.
Most cities have dance studios - I would say sign up for some lessons. Usually the studio also has a "practice night" - an hour or two of dance music and willing partners. I know from my youth that I would shudder when I heard the words "dance lessons" bu they're not nearly as dweebish as they sound.
For me, the advantages are:
1) They're fun - much easier to go to something that's fun.
2) They're social - you get to meet people, make new friends
3) They give you a good amount of exercise even though it doesn't seem like it.
Well, although in theory someone could do this, I don't think it really gives them an advantage.
:)
1) The malicious team would lose all chance at "best design." My personal experience suggests that THAT prize will be most valuable.
2) The overall prize ("best programmer") should be a composite score, including the design score of the team's phase 1 entry plus their combined maintenance scores of the other phases. Thus, the malicious team almost certainly gives up all chance of winning the overall score.
4) If there are more teams than rounds, then corrupting their own entry won't actually affect everyone else - so their advantage will be fairly small.
3) The entry must actually PASS phase 1 - so it has to actually work. To have the best chance of winning, it needs to be able to do phase 1 well (cf. ICFP 2003 goal of getting the car around the tracks quickly.) Although it's possible to write intentionally unmaintainable code, it's reasonably tough to write unmaintainable effective code.
4) Finally, based on my experience in the real world, there is some incredibly crappy, unmaintainable code out there. So maybe it will just be more like the real world.
I would love to see a contest where you judge the best "maintainer" of code. Because maintenance programming (taking someone else's code and improving/modifying it) is a totally different beast than orginal programming.
I think an interesting programming challenge would be a multi-phase contest, where each team works on a different team's program in each phase. For instance:
* Phase 1, everyone creates a program to accomplish Goal 1.
* Phase 2, everyone gets someone else's program and must modify it to accomplish goal 2.
* Phase 3, each team takes yet another Phase 1 program and modifies to accomplish goal 3.
* Phase 4, etc...
At the end of the contest, you could determine lots of things:
* Who's the best designer (based on how a phase 1 design did in the later phases)
* Who is the best maintainer (based on how well the team did on goals 2-4)
* If you allow different languages, you might even be able to measure whether one language is more maintainable than other languages...
Just be aware that you may have to take the camera out of the bag to take pictures. Depending on the autofocus mechanism of the camera, it can get confused by the plastic bag and refuse to focus.
It's similar to the problem of trying to shoot through a window.
Actually, I am one of those who used to have high-speed and now I don't.
My logic is pretty simple:
1) I have high-speed at work for anything serious.
2) When at home, I really don't want to spend time on the Internet. I get to read, garden a little, talk to my wife, generally behave like a non-geek.
3) When I had high-speed internet, I would always be on. It's addicting.
So I discontinued my cable-modem. I can honestly say that I much more enjoy saving the $40 than the experience of high-speed internet (but maybe just because I get that at work.) Still, it's remarkable how much you can do on the Internet over a dialup. Google, for instance, is fast even on a dialup (as is the Google cache.)
I started wondering about how fast 5000 mph really is. From simple math, thatt's 1.38 miles per second. That is, in fact, faster than the fastest speeding bullet (how fast is a speeding bullet?) So what could you do with a vehicle that fast?
Well, my commute (from Brooklyn to Manhattan) takes 35 minutes to go 7.63 miles. I could cut that commute by 34 minutes and 54 seconds. On the other hand, if I didn't mind the commute but wanted to live a little further out from the city, I could live in Los Angeles - my commute to Manhattan would still be just 33 minutes.
Segway, shmegway! I want a personal scram jet!
actually, there's an interesting example of this idea in current use.
Several convicts have copyrighted their names and then sued the judges and prosecutors for not paying a ludicrous license fee (of $500,000 or more) per use of the name in court papers. Although it has no chance of surviving a court battle, they can use it to place liens on the judges and prosecutors until the case is resolved - and the lien goes on the person's credit history, causing them to be denied loans, mortgages, etc.
Since I haven't seen this written already, I thought I would write a little bit about keeping high standards. IMHO, a key aspect of being a good leader is to set high standards, follow them yourself, and make sure everyone else does. You can tolerate mistakes, but don't tolerate sloppiness or laziness.
One might think that it's better to be more "accepting" than "demanding" - but I don't think it is. There's nothing more demotivating for a good worker to see someone else get away with shoddy work (and as a team leader, you'll find your team gets less done with shoddy work.) And there's nothing more motivating than a team that seems to accomplish the impossible - but that's only possible if everyone is really pulling their own weight.
So my advice is to spend some time explicitly thinking about what standards you want to set. For example, if you're leading a software team:
* Is it acceptable for someone to check in code which breaks the build?
* Is it acceptable for someone to check in code without unit tests?
* Is it acceptable if someone says that one of their tasks is "done" and it hasn't been?
There are obviously a lot more questions - When can people come in? Is arriving late a big issue? If someone is late on a task, how serious is that? - but it's best to figure out your policies up front. And then make SURE you communicate them clearly, and obviously make SURE you follow the same rules.
My (limited) background: I've been in Tech for 10+ years, some of it as a manager, VP, SVP. I've actually gone up the ladder, gone back to being technical (coder/architect) and gone back up to management. And I've had my share of people refuse 'promotions'. I disagree with the guy who said "you're obviously the wrong person for the job." Some of the most intelligent managers out there know when to avoid a mess. I personally would much prefer choosing someone who recognizes the mess over someone who is just excited to be managing.
The answer to your particular situation depends a lot on your corporate culture. The following questions might help clarify things:
* What happens to managers who fail in your company? Are they fired? Do they get another chance?
* Does the company routinely promote technical people into management? Or do they prefer bringing in outside people? Or do they just keep the managers they have? Or to put it another way, is this your last chance? Or will there be more opportunities?
* Are you highly valued? That is, if someone says "Hmmm... X, Y, and Z are great", are you X, Y, or Z? [A mediocre worker might need to seize at any opportunity. A great one will probably get several chances.]
Some other thoughts:
* If the team is really so dysfunctional, then it's unlikely that someone new to management will be able to fix it. It sounds like they need someone seasoned enough in management to be able to use their authority easily, discern whose opinions can be trusted, defuse the existing problems, etc. You might not be a good choice.
* Make SURE that you get the authority to remove people from the project. Without requiring someone else's approval. Otherwise, you might get stuck with a bad team and the inability to fix it. (Hiring the right people is really the greatest tool a manager has - everything else pales in comparison to having the right people on the team.)
* If you don't want to take the job, you need a good excuse why you shouldn't. 'The project isn't cool' is terrible - and, at least for me, would prevent you from ever getting considered for another promotion. I want managers I can depend on, even when the work is boring but necessary.
* A good excuse might be something like: "I appreciate the offer, but our team is really working well right now and I don't feel right about abandoning them at this crucial point." or "I think we're on the verge of some critical research right now, and I would really like to stay on the team." If you can subtly make the point "well, I could do it but I think there are other things that are more important for me to do", you would be in the best position.
* Finally, if you do take the position: There is absolutely nothing (in my opinion) so kickass as turning a dysfunctional team into a functional one. For me, it rivals any coding that I've ever done. The perception that "oh, THAT team will definitely get it done." is great - and when you know you turned it around, that's a bonus.
I just keep my Tivo unplugged from the phone line. Tivo can only transfer the data if you plug it in (to either the phone or the internet.)
Admittedly, my Tivo has been complaining forever that it needs to make a call - but that doesn't seem to affect anything. (They claim it needs to make a call to "get the latest updates and channel information" - but so far it hasn't been necessary)
We didn't get any TiVo packages (weren't available at the time) and I wish we did, I'd watch more TV I'm sure :)
You know, I think it's really interesting the effect that Tivo has had on my TV watching. You would think, with all the advantages that Tivo brings, that one would watch more TV. After all, you can watch shows at anytime you want, you can skip commercials, you can pause Live TV...but I've found that I actually watch less TV for one important reason: Tivo makes my bad habit of watching TV compete directly with my bad habit of procrastination.
It's a sad thing. I always have these great shows that I want to watch - but then I think I could always watch them tomorrow...
An interesting bias to articles like these is that the author is not threatened with the problem. I'm waiting for the time when journalists are outsourced...I think the tone of the articles will change.
And, just like all the other jobs, I think journalism can be outsourced. Just some things to consider:
* Photographers submit their photos digitally
* Columnists and reports submit their stories electronically.
* No need to work through the night anymore - it's daytime in India when it's night here.
The only real problem is understanding American culture enough to report on it and covering stories remotely.
Others have already tackled the "this is really a training curriculum" problem, and talked about adding some courses on theory, algorithms, etc. I would like to add another set of courses (probably upper level) that I think would be interesting...
1) Debugging Techniques
This course covers the art of debugging, basic and advanced debugging techniques, how to debug someone else's code, debugging client/server applications, debugging performance/load issues, debugging on high-volume systems, debugging technologies, etc.
2) Development Methodologies
In today's environment, there are many development methodolgies in vogue. This survey class will cover not only specifics of the Waterfall model, Rational Unified Process, and agile methodologies (such as XP) - but will also cover the theorectical basics of what a methodology must address. Expect discussions of feature/requirements gathering, build/release/maintenance cycles, and other "non-programming" issues.
3) Building computer systems not programs
This course covers how to build "computer systems" that consist of more than 1 program. Learn the types of system architectures (client/server, multi-tier, etc.), issues and design considerations for systems, maintenance considerations, debugging issues, etc.
(Note: this could probably be broken into multiple courses. I would love to see a level 1 and a level 2)
4) Project Management for Programmers
(Requirement: Development Methodologies)
This course discusses the basics of project management, working with a team, breaking a large project into manageable tasks, estimating task length, choosing milestones, etc.
Although not a substitute for a full Project Management curriculum, this course will give you a good overview of the basics of project management.
5) Technology Evaluation
This course teaches the basics of "evaluating a technology." What makes a technology good? What makes a technology obsolete? This course will discuss the theorectical process for choosing development platforms, databases, software, development methodologies, etc. As the world changes, you'll need to figure out which changes to embrace. This course will show you how these decisions should be made.
Since I haven't seen this written elsewhere, I'm sure that it's probably impossible - but here's my idea:
A US corporation can only remain a US country if a majority of its employees are US citizens. So if HP, etc. start employing Indians or Chinese, they should be forced to become either an Indian or Chinese company (and listed on their stock exchanges as well...)
I just think that if HP is using mostly non-US labor, then they shouldn't be listed as an American company.
Not me, though. The CEO was really interested in building a customizable UI so we could sell it as a "co-branded" site. So I spent about a month perfecting the customized "tag language" for cobranding - and only about 2 days on the mail storage ("Hey, let's just store it in the database")
Needless to say, we moved to a new display system in about 6 months but used the email storage system for nearly 3 years. 3 years of painful, painful maintenance nightmares (migrations to bigger databases, indexes overrunning, no quotas, MIME decoding problems, etc.)
The worst part, of course, is that I'm still known as "the guy who built that stupid mail architecture." (despite the other, better things I've done.)
The article hints at one of my favorite problems with password security:
...?
And speaking of security, don't you just love those websites that continue to ask you to enter in your requested password, all done in 128 bit encryption mode, with the characters blanked out so you can't see what you're writing, only to parrot it back to you in an email
Many websites store passwords in cleartext (hence, they can send it back to you in an email.) They do it for a variety of stupid reasons (a programmer couldn't figure out how to encrypt it, or perhaps customer service likes being able to login as a user, etc.).
So, unfortunately, you can have an extremely clever password, entirely uncrackable, but you give it to a website and it's now immediately compromised. And worst of all, you can't tell if it's stored securely or not.
Thus, I tend to have a password for trivial/unknown systems (ie, Slashdot, chat rooms, etc.) and a password for more secure systems (eTrade, online banking, etc.)
An alternative viewpoint: I've registered my cellphone number and I'm worried.
How do they distribute the "do-not-call" list? Do they send the numbers to the telemarketers? If so, my cell-phone number will soon become 'known'! (Really, doesn't everyone expect that the first thing the telemarketers will do is import the list into their databases so they have more numbers?)
Since when is being "an industry that provides millions of jobs" relevant to the law? Can (drug dealers/prostitutes/sweatshops/pick your favorite bad guy) make the same argument?
My suggestion: watch less TV.
If you don't have time to watch it within the first week, are you ever really going to watch it? I think you're trying to create the modern equivalent of the "dusty box of old videotapes that I meant to watch one day".
Amazingly, three people all posted the answer to SSH within 1 minute, but you were first!
Congratulations! You win 4 points of karma!
The other players each lose a point each for being redundant. But they do get a copy of the home game!
Actually, I think I've been quite accurate about my information. I am spending " only 50% of your time devoted to stuff that can make them money."
The rest is frittered away in maintenance and the general bureaucracy of business.
Since we happen to be an XP shop, we can tell how much time we're spending on "stuff that can make them money." because it only happens when we're pairing (we do our planning, programming, scheduling, etc. in pairs. Admittedly,you also have to factor in meetings.) I personally think it's a great side-effect of XP (and pair programming in particular) that you become much more time-aware. Since we know how much time gets taken doing things other than projects, our project timelines become MUCH more accurate.
As far the PHB goes, he would prefer if I simply multiplied all times/estimates by a factor of 2 and then pretended that I was working on projects 100% of the time. Although the numbers work out the same, it gives the fiction that I'm working on projects 100%
Interestingly, I'm having a discussion with my boss's boss who wants to know why we don't get more work done on projects. I've tracked our time and it comes out to about:
His response, predictably, was "Only 50% of time on projects? I can't believe you are only 50% efficient."
So, as a simple solution, we've started using RequestTracker It's a simple ticketing system, and everything in the "Interrupts" list goes into the system (otherwise we don't work on it.) And then each week I give a nice list of all the "other things" we worked on. It's been very useful defending my "efficiency."
Slashdot shall not post a duplicate of a story until at least 5 seconds has passed?
At least someone got it! Perhaps it's not as funny as I originally thought.
Understand the protocol? Heck, I've been doing web development for 10 years and I can't even remember what the acronym means....
What does that second T stand for?