My name isn't all that common, but even so this has happened to me. I first learned about a "john Sauter" in southern California who is some kind of medical doctor when he traveled to a conference and I got notices from his hotel. I told them that they had the wrong e-mail address, and thought no more about it. However, I kept getting other messages obviously intended for him. When there was a reply address available I would politely tell the sender that I am a computer programmer in New Hampshire, not a medical professional in southern California.
It got a little scary, though, when he sold his practice, and a lawyer sent me the legal paperwork. I don't know what kind of trouble you can get into by receiving legal papers intended for someone else—it would be easy to run afoul of the insider trading rules in the case of a public company, or HIPPA rules for medical information.
Note to Amazon: Please come to Maine. We could use the jobs. I'll happily pay sales tax on purchases made from you.
Better yet, come to New Hampshire. We don't tax sales of the things that Amazon sells. Your employees will also benefit: we don't tax wages either. Don't buy any property, though: there is a high property tax to make up for the lack of taxes on wages and most sales.
"Kepler also found six confirmed planets orbiting a sun-like star, Kepler-11. This is the largest group of transiting planets orbiting a single star yet discovered outside our solar system."
The qualification "outside our solar system" is unnecessary. There are only two transiting planets inside our solar system: Mercury and Venus.
Most monopolies don't. Even in areas where they have to compete against DSL, there's only a small segment of the population that can purchase service that rivals theirs in terms of advertised speed / service. And even then... who are they competing against? Well... the phone company, which has a stellar reputation when it comes to customer service...
The phone company's 100-year reputation isn't always a reliable predictor: I recently had an excellent experience with the local phone company. My Comcast download speed, advertised as “up to” 12 million bits per second, was actually between 6 and 7. I had been waiting for DSL to be available for years, and when it finally was, I invited Fairpoint, the local telco, to install it on 30 days approval.
They sent me a DSL modem, which I hooked up, and then waited for the service to be switched on. To my surprise, they dispatched a technician. I walked him around the property, showing him where the wires were buried, and he then followed the pair of wires that connected me to the neighborhood fibre termination point, making sure I had a straight run. When he was done I had an excellent signal to noise ratio, and was able to actually get the advertised 15 million bits per second of download speed.
The technician told me that mine was the first 15 million bits per second installation he had done, so that might be why he went the extra mile (literally—the neighborhood fibre termination point is a mile away) to make sure I got good service. Nevertheless, it shows that when you get down to the level of individuals, the reputation of the organization doesn't tell you much.
...our SVP of IT is just a gadget freak and willing to do cutting edge rather than an idiot like in your example. He hates vendors and actually listens to his technical people when they bring up legitimate technical concerns.
Care to tell those of us looking for work what company you work for?
If you find a file on my hard drive with data you can't readily decode, is it:
A) Compressed with an unknown compressor
B) Encrypted with an unknown encryptor
C) Random bytes used for an encryption process
D) Random bytes used for something else
I can't prove that answer D is wrong... but I don't have to because I know that 99% of the time, it's one of the other answers.....
OK, let's, as a community, add an (E). Everyone create a file on your laptop, in your home directory, named random.bin, as follows:
The actual value of the count isn't important, as long as it is large enough to create lots of random bits. If lots of people do this, we have “(E) Random bytes because Slashdot told me to”, providing plausible deniability for anyone who needs to use that file to encrypt something important.
Steganographic attempts are considered foiled if someone can detect that there is a secret message, they don't need to be able to retrieve the message in order for the attempt to be considered a failure. I did my Master's project on hiding data in the least significant bitplane of imagery. The trick is to "randomly" scatter your secret message throughout this plane. I showed methods that would allow you to do this so that the data was indistinguishable. You should always encrypt your secret message first so that it looks random, or better yet, shape the statistics of your encoded message to match the noise characteristics that were in the original LSB plane. If you use an image created from a very noisy source, such as a digital camera, and you encrypt the embedded message and scatter it using a reversible algorithm, and iteratively ensure that the statistics of the altered LSB plane look the same as the original LSB plane, I proved that it is not possible for someone to tell that there is a secret message hidden there. However, you need to be careful to use an original image you created yourself, and to destroy the original, because if someone ever compared the original to the one with the embedded message, they could definitely tell there was something altered by comparing the LSB planes.
Would you be kind enough to provide Slashdot readers with a pointer to your master's thesis? I would like to experiment with this.
What if you're training filtering applications to automatically discover and block child porn?...
I heard a story about a similar problem with a clever solution. According to the story, IBM wanted to eliminate all "bad words" from all of IBM's computer programs. The expectation, clearly, was that there might be bad words in the comments, which would offend IBM's customers. IBM has customers all over the world, and they read a large number of languages, so the directive was to eliminate all bad words in all of the languages used by IBM's customers.
The programmer given this task was not fluent in all of the languages used, so he asked IBM's field offices in each country to provide him with a list of the bad words in the local language. The field offices resisted, because even writing down the bad words offended them. Even if this were not a problem, there was the issue that the resulting program, and its data, would be IBM software, and therefore subject to itself.
The solution, according to the story, was to have the field offices send the bad words spelled backwards. This removed their offensive nature, and also solved the second problem. The program reversed each line it read, and then compared with all of the reversed bad words. The result: a program with no bad words that can detect the presence of bad words.
Application of this trick to the copyright problem is not so simple. A copyrighted work, reversed letter-for-letter, is a derived work of the original. Using ROT13 would have a similar problem. Child porn, on the other hand, isn't child porn any more if the image is not recognizable. You could do something like stretch the image horizontally until it becomes visually meaningless. Do the same for each input image and compare with the "neutered" child porn.
The issue for venues is liability for refunds. If you buy a ticket from a third party, and the event is canceled for some reason, the venue will refund you the face value of the ticket, even if that is far less than you paid. You won't get anything back from the scalper.
I suspect (though I cannot prove) that the venues get an under-the-table cut of the scalper's profits in exchange for early access to tickets.
I have been involved in this sort of competition twice. In one case my group won the competition, in the other we lost.
In the first case our group was developing the software for the DN60-series of communication processors for the
DECSYSTEM-10. Another group was developing equivalent software for the DECsystem-20. I whispered in the ear of the
product manager, telling him that if the other group failed to deliver, we could port our product to the DECsystem-20 in three weeks.
As it turned out, the other product was not satisfactory, so he told us to do the port, and we completed it on time. (Of course, we
had started preliminary work on the port weeks earlier, but that work would have been wasted if we had not gotten the go-ahead.)
The second time this happened to me was on the software for the PrintSystem40, a large-scale printer built out of a high-speed copier,
similar to a fully-expanded HP LaserJet 9000. Our group was in competition with another group for the on-board software and the print
spooler. The other group's software was chosen, I think because our on-board software required a floppy disk drive for error logging and theirs didn't. We offered to send them our spooler, but I don't recall if they used it.
So you were working on DEC. I have been waiting to ask this question to some DEC for long long time. The default behavior in DEC for any violation seems to be to crash the executable, without warning, without stack trace, nothing. Have to laboriously insert debug/print statements and find the location of the crash. It was a nightmare of a platform to work with. We were basically using DEC as our hardware bounds checker. If it runs on DEC, you don't have to run bounds checker, purify etc. But very painful to develop in that platform.
The behavior depends on the platform. My experience was with the PDP-10 and VAX systems. The PDP-10-based machines generally were very good for debugging, since the early software was written in assembler. There was no stack trace, since stack handling was an application convention, but there was a good debugger.
On the VAX systems the assembler-level debugger was not as good, probably because we were developing in a high-level (for the time) language by then. Exception handling was much better, though. An access violation got you a good message.
Were you using a PDP-8 or PDP-11 system? They were relatively primitive compared to the PDP-10 and the VAX.
I was told that people used the VAX Ada compiler, even when they did not intend to run the application on the VAX, because its compile-time diagnostics were so good. If I remember correctly, when it reported an error it described what was wrong in great detail, including quoting from the Ada standard by chapter and verse.
I can't even think of writing code without checks for every condition imaginable simply because when I started coding, I was learning among peers whose favorite thing to do was poke holes in your code in some way or another. I guess that's known today as "peer review" but it was more like peer pressure review when I was in school. The last thing I wanted was to have embarrassing or code that may be ridiculed. And I think that's what TRULY missing in today's development environments -- shame and ridicule.
At DEC we had a formal process known as “code review”. A bunch of us got copies of some code to review. We then all met together and went over the code line-by-line describing the flaws that we found. There was also statistics gathering and reporting, but the greatest value of the process was to the coder, who got feedback on his code. I had thought it would be hard to avoid getting upset at what were perceived as personal attacks (“that's my baby you're criticizing”) but, at least in the code reviews that I was involved in, that never happened. The whole thing was handled very professionally.
> I was so astonished by this statement that I didn't know how to respond
And that was your first mistake. By agreeing to this ridiculous statement you lost all leverage.
Some simple but effective ways of handling this:
(1) Tell her, "Let's try this again... I am going to leave the room, wait a for 30 seconds and come back in." That gives you some time to come up with a better response than "OK, I won't try."
(2) Pretend you never heard it.
(3) Tell her, "In that case this meeting is over." Turn around and leave the meeting.
(4) Ask her to put that opinion in writing. If you she won't put it in writing it means she's afraid of the repercussions from above.
If nothing else, appease her but make an ally of her boss and her boss' boss. And look for a new job.
Instead, you did nothing and you got everything you deserved. Sorry, but that's the truth of the matter.
In effect, I followed your recommendation #2: after my stupid remark I ignored what she had said. I don't think trying to make an ally of her boss would have worked. He didn't like me, and I think she was maneuvering her position so that she would be seen as in his camp, rather than mine. He laid me off at his first opportunity.
The company clearly had no idea what the job was worth, and your ability to step in and take over made them think it was worth much less than it really was. After you left, they found out how much it was worth when they hired someone. That person either cost what you were asking, or did a horrible job.
I dropped by a year after they let me go and learned it was the latter—my friends told me that the quality of service had declined. However, they did start obeying the part of the contract which
provides that people who are given temporary extra responsibilities get a temporary bump in pay.
(1)
Every time your boss hands you some new responsibility ask him "which of my current responsibilities should I push to the bottom of my prioritized list so that I can take on this new responsibility?" Be persistent... he needs to provide an answer. Explain that you can only make a small number of tasks (1-3) your "top priority" and everything else will either get worked on sporadically or fall by the wayside entirely. Force him to prioritize... that's his job. Be sure to get this in writing (email).
I used to work for Digital Equipment Corporation as a software engineer. Once when I arrived at a one-on-one
meeting with my supervisor, the first words out of her mouth were “You cannot persuade me that adding a
one-day task to your schedule lengthens your schedule by one day.” I was so astonished by this statement
that I didn't know how to respond. I think I said something inane, like “OK, I won't try.”
In my experience, management will usually either not provide an answer, and your persistence will be considered an annoyance, or they will provide a constantly-changing answer, which is, of course, as bad as no answer at all.
The exceptional case (which I also experienced at DEC) is the manager who maintains a stable list of priorities for
his people, and pushes back on his management when they try to jerk the department around.
A good phrase to use when saying No is “That horse has already left the gate.”
What's the moral of your story? Looks to me like that wasn't a place you would want to work no matter which way you look at it.
If I had been smarter, I would have found a way to return to persuade them that two people were required for the job: myself as the senior person, and a new hire as the junior person. After 10 years of training, I could have retired with a nice pension due to 20 years of service.
The nice thing about a long-term internal support job is you get to know all of your customers personally.
I hope my story will serve as a cautionary tale. In 1995 I was hired as the junior person in a two-person
IT department. My boss immediately began training me so I could cover for her during vacations and illnesses,
and of course she covered for me.
In 2005 she left abruptly. Because her departure was unexpected I naturally began to do her job in addition
to my own, just as I did when she took vacation. I also asked for a temporary salary bump to compensate me for
the added responsibility, until either (a) I got a promotion to the senior position and someone was hired into the
junion position, or (b) someone was hired to replace her. Because of our longevity we were both at the top of
our grade in salary, but the bottom of her grade was above the top of mine, so a bump to the bottom of her
grade would have meant an increase for me.
After six months of being rebuffed I concluded that they were happy with the status quo: they were getting what
had historically been a two-person job at the price of one junior salary. I felt put upon, because I was no longer
able to take vacation.
Here is where I made my mistake: I became obstinate, and declared that I would no longer do the jobs
that had historically been the responsibility of the senior person. Within a week I was unemployed.
Be smarter than I was. There is some good advice in this thread, which I wish had been available to me.
2. Use gthumb (note bug above) or the graphical file tool Nautilus. The top level menu item "Places" in Ubuntu starts Nautilus. Copy the files from the camera to the computer.
Rather than gthumb or Nautilus, I use the command-line tool rsync, as follows: rsync -avc (source) (destination), with the source being the flash memory card. When the copy is complete I remove the card, re-insert it, and run the command again. The "c" in "-avc" means to checksum the corresponding files, and copy them again if the checksums don't match. When this triggers a re-copying of a file I know that the card is failing, and discard it.
I bought a bunch of cheap cards when I first got my camera. After some bad experiences with losing pictures I now test each card that I buy, filling it with data and using the above technique to verify that I can get the same data from it twice running. If I can't, the card is discarded. If I ever buy cards locally, I will return bad ones for replacement instead of discarding them.
The most important quality of a good worker, at a software company or anywhere else, is that you show up. It doesn't matter how good your skills are if you aren't working. Wasn't it Woody Allen who said that 80% of life is just showing up?
Reminds me of way back when MA used to send state police to NH to stake out the parking lots of liquor stores. They'd record MA license plates and radio cops along the border to pull those vehicles over for not paying tax on the alcohol they purchased. NH didn't want to lose the sales, so they sent out our own state troopers to remove the MA police.
Of course, the NH state troopers needed an excuse to bust the guy reporting license plates. I heard that they arrested him for running a numbers racket.
New Hampshire believes in an environment where... property taxes pay for police and fire protection...
So if I'm visiting New Hampsire, and I get mugged or pickpocketed on the street, or my car bursts into flame on the highway, I should not expect to call any authorities and have them respond?
No, you will get the same service that a citizen gets, because the above description of New Hampshire's taxes is not perfectly accurate. There is a tax on things that tourists do, called the "Rooms and Meals tax". Since everyone from out-of-state is assumed to pay that tax, everyone gets the usual services.
Another thing that helps keep New Hamphire free is our large, underpaid legislature. In the lower house, each representative has so little power that professional politicians are not attracted to it, and gets so little compensation that greed is not an attraction. The result is that the lower house is dominated by "ordinary folks" , who are good at saying "no" to suggestions that we need a tax on wages or a general sales tax to fund the state government.
...I have a couple of friends in their 50's who joke about becoming obsolete. I associate this with actually getting tired of keeping up with an industry that reinvintents itself so often, and therefore, not keeping up. There's a trap there, too: a kind of local maxima where, for a while, being an expert in Cobol or IBM mainframes is not only easier than learning Java, but will pay more and more, as you become more and more rare. Until one day you look for your next job and it just... isn't there....
This is exactly what happened to me. I was a programmer at Digital Equipment Corporation from 1975 to 1992. I got used to DEC's languages and procedures, so when I was laid off I my skills were irrelavent to the market. I got a non-programming job supporting DEC products, and today I am a temp installing Microsoft Windows Vista on behalf of Hewlett Packard. I have taught myself the newer languages, but employers are looking for recent experience. A 64-year-old programmer with no non-DEC programming experience since 1975 is unemployable in the current market. Does anybody have a use for someone who remembers PDP-1 assembly language from 1963?
My name isn't all that common, but even so this has happened to me. I first learned about a "john Sauter" in southern California who is some kind of medical doctor when he traveled to a conference and I got notices from his hotel. I told them that they had the wrong e-mail address, and thought no more about it. However, I kept getting other messages obviously intended for him. When there was a reply address available I would politely tell the sender that I am a computer programmer in New Hampshire, not a medical professional in southern California.
It got a little scary, though, when he sold his practice, and a lawyer sent me the legal paperwork. I don't know what kind of trouble you can get into by receiving legal papers intended for someone else—it would be easy to run afoul of the insider trading rules in the case of a public company, or HIPPA rules for medical information.
Note to Amazon: Please come to Maine. We could use the jobs. I'll happily pay sales tax on purchases made from you.
Better yet, come to New Hampshire. We don't tax sales of the things that Amazon sells. Your employees will also benefit: we don't tax wages either. Don't buy any property, though: there is a high property tax to make up for the lack of taxes on wages and most sales.
"Kepler also found six confirmed planets orbiting a sun-like star, Kepler-11. This is the largest group of transiting planets orbiting a single star yet discovered outside our solar system."
The qualification "outside our solar system" is unnecessary. There are only two transiting planets inside our solar system: Mercury and Venus.
Arguably, no, they don't care.
Most monopolies don't. Even in areas where they have to compete against DSL, there's only a small segment of the population that can purchase service that rivals theirs in terms of advertised speed / service. And even then ... who are they competing against? Well ... the phone company, which has a stellar reputation when it comes to customer service ...
The phone company's 100-year reputation isn't always a reliable predictor: I recently had an excellent experience with the local phone company. My Comcast download speed, advertised as “up to” 12 million bits per second, was actually between 6 and 7. I had been waiting for DSL to be available for years, and when it finally was, I invited Fairpoint, the local telco, to install it on 30 days approval.
They sent me a DSL modem, which I hooked up, and then waited for the service to be switched on. To my surprise, they dispatched a technician. I walked him around the property, showing him where the wires were buried, and he then followed the pair of wires that connected me to the neighborhood fibre termination point, making sure I had a straight run. When he was done I had an excellent signal to noise ratio, and was able to actually get the advertised 15 million bits per second of download speed.
The technician told me that mine was the first 15 million bits per second installation he had done, so that might be why he went the extra mile (literally—the neighborhood fibre termination point is a mile away) to make sure I got good service. Nevertheless, it shows that when you get down to the level of individuals, the reputation of the organization doesn't tell you much.
...our SVP of IT is just a gadget freak and willing to do cutting edge rather than an idiot like in your example. He hates vendors and actually listens to his technical people when they bring up legitimate technical concerns.
Care to tell those of us looking for work what company you work for?
And thank you from me, also. If you aren't a physics teacher, you should be.
If you find a file on my hard drive with data you can't readily decode, is it:
A) Compressed with an unknown compressor
B) Encrypted with an unknown encryptor
C) Random bytes used for an encryption process
D) Random bytes used for something else
I can't prove that answer D is wrong... but I don't have to because I know that 99% of the time, it's one of the other answers.....
OK, let's, as a community, add an (E). Everyone create a file on your laptop, in your home directory, named random.bin, as follows:
dd if=/dev/urandom of=random.bin bs=4096 count=10000
The actual value of the count isn't important, as long as it is large enough to create lots of random bits. If lots of people do this, we have “(E) Random bytes because Slashdot told me to”, providing plausible deniability for anyone who needs to use that file to encrypt something important.
Steganographic attempts are considered foiled if someone can detect that there is a secret message, they don't need to be able to retrieve the message in order for the attempt to be considered a failure. I did my Master's project on hiding data in the least significant bitplane of imagery. The trick is to "randomly" scatter your secret message throughout this plane. I showed methods that would allow you to do this so that the data was indistinguishable. You should always encrypt your secret message first so that it looks random, or better yet, shape the statistics of your encoded message to match the noise characteristics that were in the original LSB plane. If you use an image created from a very noisy source, such as a digital camera, and you encrypt the embedded message and scatter it using a reversible algorithm, and iteratively ensure that the statistics of the altered LSB plane look the same as the original LSB plane, I proved that it is not possible for someone to tell that there is a secret message hidden there. However, you need to be careful to use an original image you created yourself, and to destroy the original, because if someone ever compared the original to the one with the embedded message, they could definitely tell there was something altered by comparing the LSB planes.
Would you be kind enough to provide Slashdot readers with a pointer to your master's thesis? I would like to experiment with this.
...I'd love to see it in a museum here, it's so much more than just history.
I would love to see it on public display in a museum on Mars.
What if you're training filtering applications to automatically discover and block child porn? ...
I heard a story about a similar problem with a clever solution. According to the story, IBM wanted to eliminate all "bad words" from all of IBM's computer programs. The expectation, clearly, was that there might be bad words in the comments, which would offend IBM's customers. IBM has customers all over the world, and they read a large number of languages, so the directive was to eliminate all bad words in all of the languages used by IBM's customers.
The programmer given this task was not fluent in all of the languages used, so he asked IBM's field offices in each country to provide him with a list of the bad words in the local language. The field offices resisted, because even writing down the bad words offended them. Even if this were not a problem, there was the issue that the resulting program, and its data, would be IBM software, and therefore subject to itself.
The solution, according to the story, was to have the field offices send the bad words spelled backwards. This removed their offensive nature, and also solved the second problem. The program reversed each line it read, and then compared with all of the reversed bad words. The result: a program with no bad words that can detect the presence of bad words.
Application of this trick to the copyright problem is not so simple. A copyrighted work, reversed letter-for-letter, is a derived work of the original. Using ROT13 would have a similar problem. Child porn, on the other hand, isn't child porn any more if the image is not recognizable. You could do something like stretch the image horizontally until it becomes visually meaningless. Do the same for each input image and compare with the "neutered" child porn.
Why don't venues scalp their own tickets?
The issue for venues is liability for refunds. If you buy a ticket from a third party, and the event is canceled for some reason, the venue will refund you the face value of the ticket, even if that is far less than you paid. You won't get anything back from the scalper.
I suspect (though I cannot prove) that the venues get an under-the-table cut of the scalper's profits in exchange for early access to tickets.
I have been involved in this sort of competition twice. In one case my group won the competition, in the other we lost.
In the first case our group was developing the software for the DN60-series of communication processors for the DECSYSTEM-10. Another group was developing equivalent software for the DECsystem-20. I whispered in the ear of the product manager, telling him that if the other group failed to deliver, we could port our product to the DECsystem-20 in three weeks. As it turned out, the other product was not satisfactory, so he told us to do the port, and we completed it on time. (Of course, we had started preliminary work on the port weeks earlier, but that work would have been wasted if we had not gotten the go-ahead.)
The second time this happened to me was on the software for the PrintSystem40, a large-scale printer built out of a high-speed copier, similar to a fully-expanded HP LaserJet 9000. Our group was in competition with another group for the on-board software and the print spooler. The other group's software was chosen, I think because our on-board software required a floppy disk drive for error logging and theirs didn't. We offered to send them our spooler, but I don't recall if they used it.
So you were working on DEC. I have been waiting to ask this question to some DEC for long long time. The default behavior in DEC for any violation seems to be to crash the executable, without warning, without stack trace, nothing. Have to laboriously insert debug/print statements and find the location of the crash. It was a nightmare of a platform to work with. We were basically using DEC as our hardware bounds checker. If it runs on DEC, you don't have to run bounds checker, purify etc. But very painful to develop in that platform.
The behavior depends on the platform. My experience was with the PDP-10 and VAX systems. The PDP-10-based machines generally were very good for debugging, since the early software was written in assembler. There was no stack trace, since stack handling was an application convention, but there was a good debugger.
On the VAX systems the assembler-level debugger was not as good, probably because we were developing in a high-level (for the time) language by then. Exception handling was much better, though. An access violation got you a good message.
Were you using a PDP-8 or PDP-11 system? They were relatively primitive compared to the PDP-10 and the VAX.
I was told that people used the VAX Ada compiler, even when they did not intend to run the application on the VAX, because its compile-time diagnostics were so good. If I remember correctly, when it reported an error it described what was wrong in great detail, including quoting from the Ada standard by chapter and verse.
.... that would be construed as unfair dismisal and your employer would have been liable.
As it turns out, it was, and they were.
I can't even think of writing code without checks for every condition imaginable simply because when I started coding, I was learning among peers whose favorite thing to do was poke holes in your code in some way or another. I guess that's known today as "peer review" but it was more like peer pressure review when I was in school. The last thing I wanted was to have embarrassing or code that may be ridiculed. And I think that's what TRULY missing in today's development environments -- shame and ridicule.
At DEC we had a formal process known as “code review”. A bunch of us got copies of some code to review. We then all met together and went over the code line-by-line describing the flaws that we found. There was also statistics gathering and reporting, but the greatest value of the process was to the coder, who got feedback on his code. I had thought it would be hard to avoid getting upset at what were perceived as personal attacks (“that's my baby you're criticizing”) but, at least in the code reviews that I was involved in, that never happened. The whole thing was handled very professionally.
> I was so astonished by this statement that I didn't know how to respond
And that was your first mistake. By agreeing to this ridiculous statement you lost all leverage.
Some simple but effective ways of handling this:
(1) Tell her, "Let's try this again... I am going to leave the room, wait a for 30 seconds and come back in." That gives you some time to come up with a better response than "OK, I won't try."
(2) Pretend you never heard it.
(3) Tell her, "In that case this meeting is over." Turn around and leave the meeting.
(4) Ask her to put that opinion in writing. If you she won't put it in writing it means she's afraid of the repercussions from above.
If nothing else, appease her but make an ally of her boss and her boss' boss. And look for a new job.
Instead, you did nothing and you got everything you deserved. Sorry, but that's the truth of the matter.
In effect, I followed your recommendation #2: after my stupid remark I ignored what she had said. I don't think trying to make an ally of her boss would have worked. He didn't like me, and I think she was maneuvering her position so that she would be seen as in his camp, rather than mine. He laid me off at his first opportunity.
The company clearly had no idea what the job was worth, and your ability to step in and take over made them think it was worth much less than it really was. After you left, they found out how much it was worth when they hired someone. That person either cost what you were asking, or did a horrible job.
I dropped by a year after they let me go and learned it was the latter—my friends told me that the quality of service had declined. However, they did start obeying the part of the contract which provides that people who are given temporary extra responsibilities get a temporary bump in pay.
(1) Every time your boss hands you some new responsibility ask him "which of my current responsibilities should I push to the bottom of my prioritized list so that I can take on this new responsibility?" Be persistent... he needs to provide an answer. Explain that you can only make a small number of tasks (1-3) your "top priority" and everything else will either get worked on sporadically or fall by the wayside entirely. Force him to prioritize... that's his job. Be sure to get this in writing (email).
I used to work for Digital Equipment Corporation as a software engineer. Once when I arrived at a one-on-one meeting with my supervisor, the first words out of her mouth were “You cannot persuade me that adding a one-day task to your schedule lengthens your schedule by one day.” I was so astonished by this statement that I didn't know how to respond. I think I said something inane, like “OK, I won't try.”
In my experience, management will usually either not provide an answer, and your persistence will be considered an annoyance, or they will provide a constantly-changing answer, which is, of course, as bad as no answer at all. The exceptional case (which I also experienced at DEC) is the manager who maintains a stable list of priorities for his people, and pushes back on his management when they try to jerk the department around. A good phrase to use when saying No is “That horse has already left the gate.”
What's the moral of your story? Looks to me like that wasn't a place you would want to work no matter which way you look at it.
If I had been smarter, I would have found a way to return to persuade them that two people were required for the job: myself as the senior person, and a new hire as the junior person. After 10 years of training, I could have retired with a nice pension due to 20 years of service.
The nice thing about a long-term internal support job is you get to know all of your customers personally.
I hope my story will serve as a cautionary tale. In 1995 I was hired as the junior person in a two-person IT department. My boss immediately began training me so I could cover for her during vacations and illnesses, and of course she covered for me.
In 2005 she left abruptly. Because her departure was unexpected I naturally began to do her job in addition to my own, just as I did when she took vacation. I also asked for a temporary salary bump to compensate me for the added responsibility, until either (a) I got a promotion to the senior position and someone was hired into the junion position, or (b) someone was hired to replace her. Because of our longevity we were both at the top of our grade in salary, but the bottom of her grade was above the top of mine, so a bump to the bottom of her grade would have meant an increase for me.
After six months of being rebuffed I concluded that they were happy with the status quo: they were getting what had historically been a two-person job at the price of one junior salary. I felt put upon, because I was no longer able to take vacation.
Here is where I made my mistake: I became obstinate, and declared that I would no longer do the jobs that had historically been the responsibility of the senior person. Within a week I was unemployed.
Be smarter than I was. There is some good advice in this thread, which I wish had been available to me.
2. Use gthumb (note bug above) or the graphical file tool Nautilus. The top level menu item "Places" in Ubuntu starts Nautilus. Copy the files from the camera to the computer.
Rather than gthumb or Nautilus, I use the command-line tool rsync, as follows: rsync -avc (source) (destination), with the source being the flash memory card. When the copy is complete I remove the card, re-insert it, and run the command again. The "c" in "-avc" means to checksum the corresponding files, and copy them again if the checksums don't match. When this triggers a re-copying of a file I know that the card is failing, and discard it.
I bought a bunch of cheap cards when I first got my camera. After some bad experiences with losing pictures I now test each card that I buy, filling it with data and using the above technique to verify that I can get the same data from it twice running. If I can't, the card is discarded. If I ever buy cards locally, I will return bad ones for replacement instead of discarding them.
The most important quality of a good worker, at a software company or anywhere else, is that you show up. It doesn't matter how good your skills are if you aren't working. Wasn't it Woody Allen who said that 80% of life is just showing up?
Reminds me of way back when MA used to send state police to NH to stake out the parking lots of liquor stores. They'd record MA license plates and radio cops along the border to pull those vehicles over for not paying tax on the alcohol they purchased. NH didn't want to lose the sales, so they sent out our own state troopers to remove the MA police.
Of course, the NH state troopers needed an excuse to bust the guy reporting license plates. I heard that they arrested him for running a numbers racket.
New Hampshire believes in an environment where... property taxes pay for police and fire protection...
So if I'm visiting New Hampsire, and I get mugged or pickpocketed on the street, or my car bursts into flame on the highway, I should not expect to call any authorities and have them respond?
No, you will get the same service that a citizen gets, because the above description of New Hampshire's taxes is not perfectly accurate. There is a tax on things that tourists do, called the "Rooms and Meals tax". Since everyone from out-of-state is assumed to pay that tax, everyone gets the usual services.
Another thing that helps keep New Hamphire free is our large, underpaid legislature. In the lower house, each representative has so little power that professional politicians are not attracted to it, and gets so little compensation that greed is not an attraction. The result is that the lower house is dominated by "ordinary folks" , who are good at saying "no" to suggestions that we need a tax on wages or a general sales tax to fund the state government.
...I have a couple of friends in their 50's who joke about becoming obsolete. I associate this with actually getting tired of keeping up with an industry that reinvintents itself so often, and therefore, not keeping up. There's a trap there, too: a kind of local maxima where, for a while, being an expert in Cobol or IBM mainframes is not only easier than learning Java, but will pay more and more, as you become more and more rare. Until one day you look for your next job and it just... isn't there....
This is exactly what happened to me. I was a programmer at Digital Equipment Corporation from 1975 to 1992. I got used to DEC's languages and procedures, so when I was laid off I my skills were irrelavent to the market. I got a non-programming job supporting DEC products, and today I am a temp installing Microsoft Windows Vista on behalf of Hewlett Packard. I have taught myself the newer languages, but employers are looking for recent experience. A 64-year-old programmer with no non-DEC programming experience since 1975 is unemployable in the current market. Does anybody have a use for someone who remembers PDP-1 assembly language from 1963?