Ok, I really hate to reply to my own comment, but I forgot to say something about viewports. A really important concept, especially for home pages, is the idea of "above the fold", taken from the newspaper world. It's the stuff that people see when first visiting your site that they don't have to scroll to see. It's where the really important stuff goes. Just because folks have 1024x768 screen resolution for their display doesn't mean that they'll see everything that you put out at that resolution. The good news is that over time, more and more people are maximizing their browser windows which brings the viewport closer to the screen resolution. It used to be that 800x600 meant something more like 600x400 in a browser window, but not any more. Anyway, here's our viewport data for all visitors:
62% = 1024x768 = 947x578 average viewport
24% = 800x600 = 755x419 average viewport
8% = 1280x1024 = 1150x797 average viewport
Also, I want to note that some of our site is designed for 800x600 because of layout issues. For the stuff that does resize, we don't allow it to resize below 800x600. It's hard enough to make things look good at low resolutions, and our theory is that below a certain resolution we'd rather have people scroll than have the site look like crap.
We run a commercial website and have similar stats. For all visitors, 1024x768 = 62%, 800x600 = 24%, 1280x1024 = 8%. We also track paying clients separately, and the numbers are 1024x768 = 55%, 800x600 = 26%, 1280x1024 = 10%. I'm always surprised to see the number of dual monitors that we see (2048x768), although the percentage of overall clients is really small.
So you punished students who grasped the material while it was being taught and didnt need to study from your lecture notes (not a requirement, just optional)?
I know that some students don't like it, but I judge them not only on their coding abilities but on their ability to follow instructions as well. When I say "I strongly encourage you to read the lecture notes", it should give them a pretty good hint that there's something important there. I had a similar policy with the textbook. While I didn't require them to read anything, I told them up front that I reserved the right to ask a question about anything in the text.
I should also note that I used extra credit very sparingly. My view was that if I assign work and you don't get it done, that's your problem. On 550 points in a quarter, I'd give anywhere from 5-10 points of extra credit. The 2 points that I gave in this case would not have had any real impact on grades, other than maybe push you up one bracket if you were right on the verge. But if a student is as good as you say and can grasp things the first time around, then they shouldn't need any extra credit anyway. But my experience was that the "gifted" students had a hard time pulling grades much better than a B, which was generally due to the fact that they didn't pay attention to the details. Too bad, really, because many of them could have easily have gotten an A.
I spent a year teaching, and found that giving exams is so much more interesting than taking them.:-)
I used to publish my lecture notes prior to a test and encouraged my students to read them. One time, in the middle of those notes, I put in a comment like this:
"For those of you willing to take the time to read these notes, I'm giving extra credit. I'm going to put a question on the test that reads 'What is the answer to the secret question?', to which you'll reply 'xyzzy'. Please don't tell anyone else in class about this, because you'll be giving them free credit when they don't deserve it."
I handed out the tests and sat back to watch. It was really interesting. The students who I knew would read the notes just smiled, while the students I knew who wouldn't have read my lecture notes just scratched their heads. It was quite an enjoyable experience for me, and taught a lesson to all.
I've been in the game for about 30 years now, and the skills that I learned in my youth on a DEC PDP and VIC-20 are as applicable today as they ever have been. Forget all the fancy IDEs and tools that promise to save you from having to do real work. The way to approach any problem is to look at the requirements, then shop for the right platform that will do the best job. In some cases this will be the latest and greatest programming language, but in many other cases the old standbys (or some variant) will do just fine. Don't abandon C or FORTRAN just because somebody tells you that you need Java or.Net. Just use the right tools for the job.
Personally, I changed over to web development about 10 years ago. I use PHP and MySQL for just about everything. With my background, neither was difficult to pick up, although living in a client/server world takes a little getting used to. I still use vi on a regular basis, and grep is still a better tool than any search functionality you'll find in any IDE because you can transform your results by using pipes. I while I like a GUI for reading Slashdot and news, I still get tons of work done from the command line.
I no longer have a choice to be risk adverse. I have a kid with cerebal palsy. I already have lost all right to have health insurance on myself because we couldn't afford it and they're calling my Asperger's a pre-existing condition; if we let his insurance lapse for any reason we'll never be able to get health insurance on him ever again.
I'm sorry to hear about your kid. For what it's worth, while I'm not a big believer in nationalized health care, I think that there are times that our society should collectively support those who are struggling with major diseases. I think that Social Security Disability is a great thing, but I'm not sure if it covers your situation or is adequate to help. (I found this [item #44] that talks about cerebal palsy but it seems that there's an income test.)
Anyway, thanks for bringing me up to speed on your situation. I now understand your aversion to risk and it makes total sense. I'd like to think that for every case like yours, there are a lot more where risk aversion is just a case of cold feet that can be fixed.
Before you leave, ask to use the bathroom. Seriously. It's amazing how much you can find out about how an employer treats their employees by looking at their bathrooms. That's because it's the one area of the company that's generally available to employees but not the public. If the bathrooms are clean and neat, you can be sure that you're going to be working for a first class operation. If the bathroom is trashed and there's graffiti on the wall, you can be guaranteed that your future employer will screw you because they don't care about their employees. It doesn't matter how well manicured the lawns are, or how nice the front desk is - if the bathrooms are a mess then your employer is a bum.
consider those who do to be failures regardless of what else they accomplish.
And it's precisely that attitude that will keep you locked into a dead-end job with no real future prospects. I think that your problem here is that you equate people who try something and fail with those who never try. You're right - if you go bankrupt because you sat on your ass all day long and watched Oprah and ate Cheetos then you're a loser, plain and simple. But if you put your time, energy, and sweat into an enterprise and it went belly up despite all your best efforts then your next step should be to try again. There's no shame in this kind of failure. If there was then no one would ever learn how to ride a bike.
My advice to you? Don't be so risk adverse. Take a chance on something you really have a passion for. Go skin a few knees and learn to ride that bike. I guarantee that even if you fail that you'll be happier than you are today waiting for someone to hand you that dream job.
Yup, sure have, and they work great for some stuff. In our application, we rely on mouse hover to get the user more information and expose the functionality more clearly. When you move your mouse over a day, it changes color. If someone is scheduled for that slot, we pop up a floating div showing all the other days and times that person is assigned so that you don't have to click anywhere to see it. IMHO, HTML is missing a clean way to do this type of thing, yet it's super useful functionality.
Speaking of divs, I am getting oh so tired of having to put iframe shims on my floating divs so that they work over selects in IE. Talk about lack of adherence to standards. Plus what person in their right mind thinks that this is good behavior? Microsoft should have fixed this a long time ago, and my fear is that they still won't get it right for IE 7.
No: you could just read the standards or documents written about them
First let me say thanks for the pointer.
My point still stands - If I write my page and assume one model then it will break in another browser. You can't just write to "the standard" because then your pages will look like crap. I can't tell my customer that "W3C says to do it this way, so sorry it looks like shit in IE". I agree that in a perfect world where everyone read and followed the spec that we could write to a single standard and we'd all be happy.
I'm curious - do you happen to know if the line you quoted was around when Microsoft made the decision to go another way? I guess what I'm asking is whether Microsoft ignored the standard or whether the standard was just incomplete at the time the implementation was done. I know in the early days there were definitely holes in the spec, and once you do an implementation and push it out the world that it's hard to go back and change it.
Mozilla, Konqueror/Safari and Opera 6 and lower follow W3C's standards.
Maybe on this one issue, but they are clearly different in other areas. Maybe it's just a timing thing and that they'll all eventually catch up to each other.
For that "0.001%" it may not look or act nice, but it can be quite helpful to have a page's content available even if your {script,flash,shockwave,applet,ActiveX control} UI doesn't work.
Well, we don't really have content in the traditional sense. We have an application that schedules people, and if you can't take an action on the schedule then it's pretty worthless. The idea of not "act[ing] nice" in our context means that we pretty much don't work at all. And what's surprising to me is that we're not really doing anything fancy. Mostly javascript that does onmouseover, onmouseout, and onclick on td elements. Some could probably be done with CSS, but not the onclick. So while we don't do any browser detection, we know that the experience will be so bad that no one will want to use it.
Standards are often silent on lots of details, and it's really up to the browser devs on how to do an implementation. For example, is padding included in the width of an element, or not? It depends on whether you're using IE or Mozilla. Go to the microsoft.com home page in IE and Firefox and see how the left nav behaves differently when you hover over an element. Which browser complies with the standards, or do they both? Well, that's anybody's guess.
I hate web sites telling me I can't use the UA of my choice.
And I hate the two guys that use Billy-Bobs-Web-Browser-That-He-Wrote-In-A-Weekend telling me that I should support his browser. Of course it's in our best interest to support the widest possible audience, but you have to weigh that off against the richness of the experience. I don't want to give 100% of the people a crappy UI because 0.001% of my potential market doesn't support a feature.
That being said, we would like to support another browser in the Linux/Mac space if possible. It will keep the Mozilla folks on their toes and get them to fix some really nasty problems like memory leaks.
Our experience has been that DHTML support on Konqueror is still far behind both Firefox and IE. We'd love to support it, but we spend enough time putting in hacks for the big two browsers that we really don't want to take the time to make Konqueror work right. It's also why we don't support Opera, although Opera seems to work better than Konqueror.
don't forget where Safari comes from
Last I'd read, there wasn't much cooperation between the teams. That makes a bad situation even worse. If we could target Linux/Mac in one step we'd think about supporting Konqueror. Our solution has been to tell our Mac customers to install Firefox and be happy. Most of them thank us for pointing them to a browser that works halfway decently on all sites.
That's what we settled on for my son. We also just converted my wife's phone. I've got one more phone left that I'm not sure what to do with. I like the ability to periodically PPP to the Internet from anywhere and conduct some business. If I can find a better way to do this that won't cost a fortune then I'd probably switch as well.
She couldn't put it in writing, because the legal definitions alone would've taken several pages.
How do you figure? My credit card company does it in a single paragraph. You shouldn't excuse the cell provider. Even if it was several pages, they could have offered it to me as an option, especially since I requested it.
That said, your advice to not trust (or partially discount) verbal promises is perfectly sound, of course, and applies to all business dealings.
I love watching The People's Court. At least half of the cases involve a contract dispute where somebody told somebody else something. The judge almost always rules with the holder of a written contract unless there's fraud, regardless of any verbal promises.
Why? The called to report her phone lost AFTER she came back and saw the 12k. Why not while she was there, the minute it was stolen?
The article seems to indicate that she discovered her phone had been stolen after the bill came. The way I read the article, she didn't necessarily have the phone with her. Based on what the article says, she could have easily returned home, picked up her mail (which would naturally be high on the list of things to do when returning home from a long trip), opened the "major" bills, then went looking for the phone after she saw the bill. I'm not saying that's for sure what happened, but it looks that way to me.
Cell phone companies are masters of telling you one thing but getting you to sign a contract that says something else. When I wanted to add my kid to my family share plan, I told my carrier (Verizon) that I wanted to limit the number of minutes that a phone could call in a month in case a friend stole the phone. They told me that they couldn't do that. Then, without asking, the rep said "but if your phone gets stolen then we'll waive the charges." I told her that I'd accept that if she's put it in writing, but she said she couldn't do that.
Here's my advice - never, ever, ever trust a cell phone company. Once they have your signed contract, they have no reason to let you off the hook. They love this kind of stuff because people often just pay the bill rather than taking on the expense of hiring a lawyer. In a case like this, I'd just threaten the cell phone company with a class action lawsuit on behalf of the thousands of people who have had this happen to them in the past. The cell phone company, if they are going to put you on the hook for the bill, then has a fiduciary obligation to protect your interests and do everything in their power to stop this kind of fraud. If they don't then they are negligent and share in responsibility to pay the bill.
If you're really worried about this, get a pay-as-you-go phone. There are plans out there today that compete very well with regular service and some even allow you to use your minutes for more than one or two months.
I've often had people ask me how many lines of code a certain project contains, and I tell them that we don't collect that metric as it's meaningless in oh so many ways. Like when I write code, I put function parameters on separate lines if there's more than two or three so that they don't scroll off the page. And most applications can be boiled down to one line of code if you glue all the lines together.
As you point out, the only metric that counts is whether the app does what it's supposed to do.
I was unemployed both in 1992 (mass layoff from Unisys) and 2002 (mass layoff from Northwest Airlines), and let me tell you it was a hell of a lot rougher finding work (both for myself and for my former cow orkers) the latter time around.
I graduated with a degree in CS back before programming was popular and it was a really, really tough job market compared to today. But that didn't mean that there weren't opportunities. You just had to find them. Anyone who thinks that there aren't opportunities is just doing themselves a huge disservice. You don't have a right to a job - every job must be earned in some way. Be an entreprenuer and you'll never be out of work. That's a timeless statement.
Oh I did that too- but a side job doesn't pay the bills, though it is a great way to keep the skills sharp. The fact of the matter is, the skills of a coder are very much oversupplied these days- most of the paying jobs are in Microsoft land or Java land, so those are the skills you need- but those are ALSO the skills that 50,000 new IIT graduates get EVERY SINGLE YEAR- and they don't have a family to feed or a mortgage to pay, and they will give their right arm to work in America, instead of giving managment a fight over deadlines and things that can't be accomplished.
I think your problem here is that you assume that every company will hire the cheapest labor regardless of the talent (or potential). Who cares about 50,000 new IT grads? If you're looking for jobs like this then you're really not looking in the right place. For example, we recently did a contract where we charged 16% more for the same services that were available elsewhere. To sell the service, I simply said "you get all the benefits of our experience, and in the long run it will cost you less to go with us than with someone who charges less". Smart people understand this, so if you're talking with companies who want cheap coders then you move on.
As for supporting a family and being unemployed, I totally understand. We had a four year old and two year old, and my Windows experience was limited. So I picked up a copy of the Windows SDK (Borland) and built my skills. Although I'm a Linux hacker today (returned to my roots), writing Windows code for ten years helped me get to a point where I could do other things. If things aren't working for you then you either have the choice to suck it up and take work on Windows, or make a new opportunity using the platform that you like. Once you grasp the realities of the situation and deal with them then you'll be able to move forward. Sending out lots of resumes and then complaining about why nobody hires you isn't going to change a thing.
A younger programmer is using everything at his/her disposal which was never available to you and when it became available, like an avalanche of new technologies/languages/libraries, you ignored it or never knew about it.
Actually, I'm very familiar with STL, and have used it on projects. It was a welcomed addition to my programming toolkit.
Now I'm going to tell you how STL sucks. I taught CS for a year at a local university and asked my students to implement a queue. Immediately I was asked if STL was an option. I told the students that I wanted them to understand how a queue worked and that the only was to do it was to write your own implementation. The sad fact, however, is that too many programmers, especially new programmers or those who didn't go to a theory-rich school, don't understand how things work under the covers. I know people who will argue that this doesn't matter, but these are the same guys who write really crappy code that doesn't perform well. I love it when you talk to a new hire about the difference between row and column matrix ordering and their effects on page faulting and get a blank stare back. You know, that old "deer in the headlights" look that tells you that they got cheated out of a good CS education.
Then make one. Find someone who has a problem and propose a solution. Update your skills. Go make something happen. When I moved to Seattle in 1992, I had no job and things weren't good for VAX programmers. While I was looking for work, I learned new skills on my own and turned those skills into something very successful. I think that one problem with today's programmers is that they believe that opportunities will just jump in their lap. I hate to tell you this, but those days are long gone. But if you row into lake in your boat and fish don't jump in, do you stop fishing? If you fish and don't catch anything, don't you buy better tackle?
62% = 1024x768 = 947x578 average viewport
24% = 800x600 = 755x419 average viewport
8% = 1280x1024 = 1150x797 average viewport
Also, I want to note that some of our site is designed for 800x600 because of layout issues. For the stuff that does resize, we don't allow it to resize below 800x600. It's hard enough to make things look good at low resolutions, and our theory is that below a certain resolution we'd rather have people scroll than have the site look like crap.
We run a commercial website and have similar stats. For all visitors, 1024x768 = 62%, 800x600 = 24%, 1280x1024 = 8%. We also track paying clients separately, and the numbers are 1024x768 = 55%, 800x600 = 26%, 1280x1024 = 10%. I'm always surprised to see the number of dual monitors that we see (2048x768), although the percentage of overall clients is really small.
I know that some students don't like it, but I judge them not only on their coding abilities but on their ability to follow instructions as well. When I say "I strongly encourage you to read the lecture notes", it should give them a pretty good hint that there's something important there. I had a similar policy with the textbook. While I didn't require them to read anything, I told them up front that I reserved the right to ask a question about anything in the text.
I should also note that I used extra credit very sparingly. My view was that if I assign work and you don't get it done, that's your problem. On 550 points in a quarter, I'd give anywhere from 5-10 points of extra credit. The 2 points that I gave in this case would not have had any real impact on grades, other than maybe push you up one bracket if you were right on the verge. But if a student is as good as you say and can grasp things the first time around, then they shouldn't need any extra credit anyway. But my experience was that the "gifted" students had a hard time pulling grades much better than a B, which was generally due to the fact that they didn't pay attention to the details. Too bad, really, because many of them could have easily have gotten an A.
I used to publish my lecture notes prior to a test and encouraged my students to read them. One time, in the middle of those notes, I put in a comment like this:
"For those of you willing to take the time to read these notes, I'm giving extra credit. I'm going to put a question on the test that reads 'What is the answer to the secret question?', to which you'll reply 'xyzzy'. Please don't tell anyone else in class about this, because you'll be giving them free credit when they don't deserve it."
I handed out the tests and sat back to watch. It was really interesting. The students who I knew would read the notes just smiled, while the students I knew who wouldn't have read my lecture notes just scratched their heads. It was quite an enjoyable experience for me, and taught a lesson to all.
Personally, I changed over to web development about 10 years ago. I use PHP and MySQL for just about everything. With my background, neither was difficult to pick up, although living in a client/server world takes a little getting used to. I still use vi on a regular basis, and grep is still a better tool than any search functionality you'll find in any IDE because you can transform your results by using pipes. I while I like a GUI for reading Slashdot and news, I still get tons of work done from the command line.
I'm sorry to hear about your kid. For what it's worth, while I'm not a big believer in nationalized health care, I think that there are times that our society should collectively support those who are struggling with major diseases. I think that Social Security Disability is a great thing, but I'm not sure if it covers your situation or is adequate to help. (I found this [item #44] that talks about cerebal palsy but it seems that there's an income test.)
Anyway, thanks for bringing me up to speed on your situation. I now understand your aversion to risk and it makes total sense. I'd like to think that for every case like yours, there are a lot more where risk aversion is just a case of cold feet that can be fixed.
Before you leave, ask to use the bathroom. Seriously. It's amazing how much you can find out about how an employer treats their employees by looking at their bathrooms. That's because it's the one area of the company that's generally available to employees but not the public. If the bathrooms are clean and neat, you can be sure that you're going to be working for a first class operation. If the bathroom is trashed and there's graffiti on the wall, you can be guaranteed that your future employer will screw you because they don't care about their employees. It doesn't matter how well manicured the lawns are, or how nice the front desk is - if the bathrooms are a mess then your employer is a bum.
And it's precisely that attitude that will keep you locked into a dead-end job with no real future prospects. I think that your problem here is that you equate people who try something and fail with those who never try. You're right - if you go bankrupt because you sat on your ass all day long and watched Oprah and ate Cheetos then you're a loser, plain and simple. But if you put your time, energy, and sweat into an enterprise and it went belly up despite all your best efforts then your next step should be to try again. There's no shame in this kind of failure. If there was then no one would ever learn how to ride a bike.
My advice to you? Don't be so risk adverse. Take a chance on something you really have a passion for. Go skin a few knees and learn to ride that bike. I guarantee that even if you fail that you'll be happier than you are today waiting for someone to hand you that dream job.
Yup, sure have, and they work great for some stuff. In our application, we rely on mouse hover to get the user more information and expose the functionality more clearly. When you move your mouse over a day, it changes color. If someone is scheduled for that slot, we pop up a floating div showing all the other days and times that person is assigned so that you don't have to click anywhere to see it. IMHO, HTML is missing a clean way to do this type of thing, yet it's super useful functionality.
Speaking of divs, I am getting oh so tired of having to put iframe shims on my floating divs so that they work over selects in IE. Talk about lack of adherence to standards. Plus what person in their right mind thinks that this is good behavior? Microsoft should have fixed this a long time ago, and my fear is that they still won't get it right for IE 7.
First let me say thanks for the pointer.
My point still stands - If I write my page and assume one model then it will break in another browser. You can't just write to "the standard" because then your pages will look like crap. I can't tell my customer that "W3C says to do it this way, so sorry it looks like shit in IE". I agree that in a perfect world where everyone read and followed the spec that we could write to a single standard and we'd all be happy.
I'm curious - do you happen to know if the line you quoted was around when Microsoft made the decision to go another way? I guess what I'm asking is whether Microsoft ignored the standard or whether the standard was just incomplete at the time the implementation was done. I know in the early days there were definitely holes in the spec, and once you do an implementation and push it out the world that it's hard to go back and change it.
Mozilla, Konqueror/Safari and Opera 6 and lower follow W3C's standards.
Maybe on this one issue, but they are clearly different in other areas. Maybe it's just a timing thing and that they'll all eventually catch up to each other.
Well, we don't really have content in the traditional sense. We have an application that schedules people, and if you can't take an action on the schedule then it's pretty worthless. The idea of not "act[ing] nice" in our context means that we pretty much don't work at all. And what's surprising to me is that we're not really doing anything fancy. Mostly javascript that does onmouseover, onmouseout, and onclick on td elements. Some could probably be done with CSS, but not the onclick. So while we don't do any browser detection, we know that the experience will be so bad that no one will want to use it.
Standards are often silent on lots of details, and it's really up to the browser devs on how to do an implementation. For example, is padding included in the width of an element, or not? It depends on whether you're using IE or Mozilla. Go to the microsoft.com home page in IE and Firefox and see how the left nav behaves differently when you hover over an element. Which browser complies with the standards, or do they both? Well, that's anybody's guess.
I hate web sites telling me I can't use the UA of my choice.
And I hate the two guys that use Billy-Bobs-Web-Browser-That-He-Wrote-In-A-Weekend telling me that I should support his browser. Of course it's in our best interest to support the widest possible audience, but you have to weigh that off against the richness of the experience. I don't want to give 100% of the people a crappy UI because 0.001% of my potential market doesn't support a feature.
That being said, we would like to support another browser in the Linux/Mac space if possible. It will keep the Mozilla folks on their toes and get them to fix some really nasty problems like memory leaks.
Our experience has been that DHTML support on Konqueror is still far behind both Firefox and IE. We'd love to support it, but we spend enough time putting in hacks for the big two browsers that we really don't want to take the time to make Konqueror work right. It's also why we don't support Opera, although Opera seems to work better than Konqueror.
don't forget where Safari comes from
Last I'd read, there wasn't much cooperation between the teams. That makes a bad situation even worse. If we could target Linux/Mac in one step we'd think about supporting Konqueror. Our solution has been to tell our Mac customers to install Firefox and be happy. Most of them thank us for pointing them to a browser that works halfway decently on all sites.
That's what we settled on for my son. We also just converted my wife's phone. I've got one more phone left that I'm not sure what to do with. I like the ability to periodically PPP to the Internet from anywhere and conduct some business. If I can find a better way to do this that won't cost a fortune then I'd probably switch as well.
How do you figure? My credit card company does it in a single paragraph. You shouldn't excuse the cell provider. Even if it was several pages, they could have offered it to me as an option, especially since I requested it.
That said, your advice to not trust (or partially discount) verbal promises is perfectly sound, of course, and applies to all business dealings.
I love watching The People's Court. At least half of the cases involve a contract dispute where somebody told somebody else something. The judge almost always rules with the holder of a written contract unless there's fraud, regardless of any verbal promises.
The article seems to indicate that she discovered her phone had been stolen after the bill came. The way I read the article, she didn't necessarily have the phone with her. Based on what the article says, she could have easily returned home, picked up her mail (which would naturally be high on the list of things to do when returning home from a long trip), opened the "major" bills, then went looking for the phone after she saw the bill. I'm not saying that's for sure what happened, but it looks that way to me.
Cell phone companies are masters of telling you one thing but getting you to sign a contract that says something else. When I wanted to add my kid to my family share plan, I told my carrier (Verizon) that I wanted to limit the number of minutes that a phone could call in a month in case a friend stole the phone. They told me that they couldn't do that. Then, without asking, the rep said "but if your phone gets stolen then we'll waive the charges." I told her that I'd accept that if she's put it in writing, but she said she couldn't do that.
Here's my advice - never, ever, ever trust a cell phone company. Once they have your signed contract, they have no reason to let you off the hook. They love this kind of stuff because people often just pay the bill rather than taking on the expense of hiring a lawyer. In a case like this, I'd just threaten the cell phone company with a class action lawsuit on behalf of the thousands of people who have had this happen to them in the past. The cell phone company, if they are going to put you on the hook for the bill, then has a fiduciary obligation to protect your interests and do everything in their power to stop this kind of fraud. If they don't then they are negligent and share in responsibility to pay the bill.
If you're really worried about this, get a pay-as-you-go phone. There are plans out there today that compete very well with regular service and some even allow you to use your minutes for more than one or two months.
As you point out, the only metric that counts is whether the app does what it's supposed to do.
Let me be the first to offer my condolences. :-)
You really are a pessimist, aren't you? I'd hate to have to live with someone who always sees the glass as half empty.
I graduated with a degree in CS back before programming was popular and it was a really, really tough job market compared to today. But that didn't mean that there weren't opportunities. You just had to find them. Anyone who thinks that there aren't opportunities is just doing themselves a huge disservice. You don't have a right to a job - every job must be earned in some way. Be an entreprenuer and you'll never be out of work. That's a timeless statement.
I think your problem here is that you assume that every company will hire the cheapest labor regardless of the talent (or potential). Who cares about 50,000 new IT grads? If you're looking for jobs like this then you're really not looking in the right place. For example, we recently did a contract where we charged 16% more for the same services that were available elsewhere. To sell the service, I simply said "you get all the benefits of our experience, and in the long run it will cost you less to go with us than with someone who charges less". Smart people understand this, so if you're talking with companies who want cheap coders then you move on.
As for supporting a family and being unemployed, I totally understand. We had a four year old and two year old, and my Windows experience was limited. So I picked up a copy of the Windows SDK (Borland) and built my skills. Although I'm a Linux hacker today (returned to my roots), writing Windows code for ten years helped me get to a point where I could do other things. If things aren't working for you then you either have the choice to suck it up and take work on Windows, or make a new opportunity using the platform that you like. Once you grasp the realities of the situation and deal with them then you'll be able to move forward. Sending out lots of resumes and then complaining about why nobody hires you isn't going to change a thing.
Actually, I'm very familiar with STL, and have used it on projects. It was a welcomed addition to my programming toolkit.
Now I'm going to tell you how STL sucks. I taught CS for a year at a local university and asked my students to implement a queue. Immediately I was asked if STL was an option. I told the students that I wanted them to understand how a queue worked and that the only was to do it was to write your own implementation. The sad fact, however, is that too many programmers, especially new programmers or those who didn't go to a theory-rich school, don't understand how things work under the covers. I know people who will argue that this doesn't matter, but these are the same guys who write really crappy code that doesn't perform well. I love it when you talk to a new hire about the difference between row and column matrix ordering and their effects on page faulting and get a blank stare back. You know, that old "deer in the headlights" look that tells you that they got cheated out of a good CS education.
Then make one. Find someone who has a problem and propose a solution. Update your skills. Go make something happen. When I moved to Seattle in 1992, I had no job and things weren't good for VAX programmers. While I was looking for work, I learned new skills on my own and turned those skills into something very successful. I think that one problem with today's programmers is that they believe that opportunities will just jump in their lap. I hate to tell you this, but those days are long gone. But if you row into lake in your boat and fish don't jump in, do you stop fishing? If you fish and don't catch anything, don't you buy better tackle?
I think that's what Viagra is for. :-)