You own a piece of equipment that has the private key used to decode content encrypted for you. This will typically be a display device. It can also be a dongle for a transcoding device.
It's public key is, well, public, so anyone can encrypt content for you. Such public keys have to be signed, though, by a key authority: the whole scheme hinges on the owner of the decrypting device not having the private key -- it would do not good to generate your own key pair, send the public key to a content provider, and then freely decrypt that content to redistribute it.
Of course, such private keys can be kept in escrow, so as to be installed on a controlled number of playback devices you own, or could be transfereed or duplicated a limited number of times between a small number of devices. This solves the problem of loss. In fact, there is no requirement for key escrow, though it might offer convenience: one merely has to keep enough backup devices. Upon satisfactory proof of destruction of others, any such device could be instructed, by the appropriate content authority to permit some number of additional key copies to be made.
This scheme is not without it's problems, though:
1. Fair use. Fair use is not absolutely defined. New fair uses may be identified over time, and a "friendly" DRM system has to accomodate them. Of course, legsislation authorizing DRM should require content providers to "quickly" accomodate new recognized fair uses in the playback devices they require. Thus, the inconvenience and infrastructure costs of a DRM scheme are properly borne by those that rely on it.
2. Rebuilding via extraction. If one fair use is limited extraction and redistribution of content (say for a critique), many such extractions can be aggregated to make a duplicate. It may take collusion among a number of individuals to pull this off (since individual extraction devices may limit how much can be excerpted how fast and how often), but the internet removes this impediment. The only attack remaining is a legall one: if DRM becomes widespread, plaintext will be rare and stick out like a sorre thumb. Content encrypted with the wrong keys could be easily detected if it became too widespread.
Boy, that sounds like a slooow way to replace a lookup table. Programmatically it may be more elegant, but certainly not equivalent speed-wise, which is the real purpose of a lookup table.
You appear to miss the point. It may very well be slow, and probably is, but it is slow at compile time, and generates the fast table for you to use at run time.
In practice, I've written some knarly templates, and have not found the compile speed to be all that bad.
You can write template metaprograms in it. In particular, you can, in theory, write *any* program in it, to be interpreted by the compiler. The output of such "programs" is, of course, normal text that the compiler compiles.
Look at "Modern C++ Design," by Andrei Alexandrescu for a greater discussion of the topic. It is fascinating.
Consider a simple example:
You need a table of sines and cosines to some degree of resolution for fast lookup. The compiler will not evaluate sin(some_constant) for you at compile time, but it can add, subtract, multiply, and divide constants at compile time. In the "old days", you'd write a separate program to compute the table and spit it out as a C/C++ variable initializer, and incude that in your "real" program. You could even compile, generate, include, and compile again in one big make. We all did this. Those of us in telecom did a lot of this to generate fast CRC "helper" tables (i.e. look up the next data byte in the table, shift the running CRC, and xor it with the table lookup; rinse, lather, repeat). With a Turing-complete template metalanguage, it's different.
You use the recursive capabilities of template definitions, with partial and full template specialization (i.e. T<int i, int j> is defined in terms of T<i, j-1>, with T<i, 0> specially defined, that is, partially specialised to end the recursion) to generate, at compile time, expressions of constants that, when computed by the compiler, will result in T<i, series_steps> expanding to a constant expression that approximates sin(i/some_resolution).
...lack of a turing-complete templating system?
There was a real chance to develop a two-level language with better generics syntax than the C++ template monstrosity.
Yeah, but one needed long fingers to do that in general with one parallel 10-way keypress. In practice, one probably needed three parallel keypresses of the low, middle, and high digit sets, and doing that would take some skill.
It weighed about 40 lbs. (about 18 kg.) and had lots of mechanical buttons, circular mechanical readouts (think car's odomoeter), and gears, all housed in a neat, if heavy desktop box. It was about the size of a manual typewriter (though it has an AC power cord).
It could add, but arguably, some fast humans could probably add faster in their heads.
I remember on once ordering a Macallan at the bar in the Mickleover Hotel in Derbyshire, and the barmaid asking me if I wanted it "on the rocks". She quickly recovered from my look of absolute horror, and said, "So sorry, from your accent, I'd thought you were American. Neat it is, then. Very good."
Indeed. When I lived in Texas, in a 3200 square foot house, I had two zones of A/C totalling 7 ton: 5 ton for the bottom floor, and 2 ton for the smaller top floor.
My electricity bill in July was around $350 extra just for the A/C to keep the house at a cool 80 degrees Farenheit (daytime outside temperature easily reached 100F and sometimes 110F).
I actually do/ want to do CSS as late as possible in the copy/playback chain, ideally at the playback client, for the reasons I mentioned. In fact, I'd prefer a stronger cryptosystem for that purpose.
In my case I am concerned about being charged with contributory copyright infringment through neglect by leaving unencrypted copies on a home network that is connected to the internat at large (albeit via a dedicated firewall). If someone hacks in and copies off video with CSS intact, it isn't my fault if the encryption wasn't secure enough and they crack and redisistribute it.
This does not copy the title keys or disk key since that is only available via the DVDROM drive key exchange mechanism. So, you're not copying the whole DVD.
You don't need to decrypt, either: libdvdread, if it finds libdvdcss will use it to crack the iso image (which, IIRC, has to be an image because the sector number matter in decrypting, thought that might only be the case with a non-brute force decrypt) as necesary at run-time, and cache the resulting keys for next time.
Now, IIRC, one can build libdvdcss without the brute-force decryption that does not use the drive key exchange, so, to read a ripped, but not decrypted DVD, you'd either need to have the cached title and disk keys (from a previous decryption attempt), or the DVD in a DVDROM and enter into a key exchange.
Personally, I like to keep my title and disk keys playback-client side, and not on my server: if my network is hacked, and decrypted copies of my DVDs were to leak out and be distributed, I could be charged with contributory copyright infringement or at least negigence for failing to keep copyright material as secure as the copyright holder intended. Yes, that's a grey legal area: rather like the responsibility one has to keep one's firearms under lock and key lest a burgler steal them and kill someone with one of them. But, better safe than sorry.
Besides, it has the nice property of a playback client around the house not being able to playback a DVD image without having first "seen" the DVD.
As others will no doubt note, vlc and xine will happily process DVD menus on loopback-mounted copies of ISO images (libDVDCSS will crack them without a drive exchange). I suppose one could NFS-export them over a fast-enough network.
Socialised healthcare (EU and Canada) = Universal healthcare
Capitalist healthcare (USA, most developing nations) = non-universal healthcare
Not quite.
Socialised healthcare (EU and Canada) = Governnment promises what it does not deliver to all, i.e. getting care is like winning a lottery.
Capitalist healthcare (USA, most developing nations) if you have money, you can buy what you need.
Canada's waiting period will kill you, literaly. And, even if you had the money to pay for care, it would be illegal for you (if you were a Canadian citizen) to do so.
It took me two years to recover financially from that 8 week period.
First, I could not collect unemployment, because I was not "employable" in the U.S. (I'm told that Texas has an agreement with Canada pursuant to NAFTA to exempt Canadians from this burden, but haven't verified it).
Second, I had to move. FAST. As in, if you're not out of the U.S. the day you're layed off, you are in violation of your visa and subject to arrest. In practice, one can file an request for a change of status to a B2 visitor's visa to buy two or three months to settle one's affairs, but that request has to be postmarked the day one is layed off. The INS can refuse that request, and
will if one meats the post mark reqirement by even a day.
Third, I could see the real estate market going down the tubes locally fast -- there had been rapid development, and we were smack in the middle of the telecom corridor in Texas: Richardson, Plano, Allen (we lived in Allen). So, I priced the house to sell: basically eating the comission to sell it. An offer came within two weeks, but it was $5k below my lower limit. The clincher: the buyer was unrepresented so I'd only have to pay half the commission. Adjusted, he met my lower limit price. I accepted the offer, to the shock of my neighbors, some of which were in the same boat, in January. Of course, a cascade had begun, with more and more homes coming on to the market. Colin county had the nation's highest rate of foreclosures. House prices fell like a stone. I was wise to sell when I did.
Fourth, I had to effectively abandon my 1990 Ford Thunderbird: it was illegal to import it into Canada. That meant buying a car in Canada. I also had to start planning for moving expenses. In the end I collapsed a 401(k) with around 16k in it. Remember, this was early in the year, and I would have no U.S. source income, so the 10% penalty and 10% tax were not overly unbearable. I should have had greater savings outside the plan, to be sure, but the tax deduction and employer match were too good to pass up. The 10% penalty risk in case of emergency seamed reasonable.
Fifth, I was lucky and managed to land a job Dec. 24, 2002 in Toronto. Yeah, sometimes luck plays a part, but remember that I was applying to all jobs in Canada and the U.S. (my H1B was transferrable, but finding an employer who had not layed off Americans recently was difficult) for which I was qualified. I had already made plans to move and rent a place for up to a year while I looked for work cross-Canada. No, landlords will not rent to the unemployed... unless they can put the entire amount of the annual lease in escrow up front. I had some of my moving expenses paid, but had to start finding a house. Downpayments are 25% in Canada, not 20%. Toronto and the surrounding area were enjoying a boom. (This proved fortunate a year later when I sold the house and moved back to the U.S.).
Sixth, it cost a lot to get a car. Buying the car wasn't the problem: getting it off the lot was -- I needed an Ontario drivers license to do that. And I still had my Texas one, which had no issue date, only an expiration date. So, I had to contact Texas and Illinois DMV to get proof of my driving and license history (for insurance and licensing purposes). Rental car tick, tick, ticking at $250 a week until that got sorted out.
Seventh, with any move, there are ancillary expenses. Yes, my Canadian employer paid for much of the move that I was going to, but it turned out they used a mover three times expensive than the one I had lined up. That became important when I had to reimburse them a prorated portion when I quit before two years were up to return to the U.S. (We were tired of moving, but the whole family was sick of the schools, lousy healthcare, and crime in the area so when a recruiter contacted me, I was interested and the rest is history.) But, as with any move, there were ancillary expenses: long distances, essentials until one unpacks, etc.
Eighth, cost of living. Mortgage interest is not deduct
I dunno, I've been 95-98% employed most of my life with the longest gap being 8 weeks (after the telecom bust). Of course, I was willing to work anywhere in Canada or the U.S. when I did become unemployed, and INS regs required me to leave the U.S. promptly when the telecom bust happened. Fair enuf: I knew the risks when I came (though having the LC (not LCA), and having to leave because the green card was still pending AOS because the INS were slow was maddening -- I've been able to return but have to start all over). I suppose if I didn't want to move, or was picky about where in Canada I wanted to work, I'd be unemployed longer.
There's a new "fast track" LC application in the works, so I am hopeful: I do not wish my American-born son to have to suffer in Canada (lousy schools, no health care, etc.) again.
It burns me when some foreigners or unscrupulous employers cheat or bend the INS rules -- it gives all of us a bad name. I've always been paid well above the local market wage, have satisfied the "there is no American that can do the job" test for the LC (even with the present glut). I would suggest denouncing employers that abuse the market rate requirement for LCAs.
Actually, I used incompetents to mean those that are not competent to perform their assigned tasks.
Of course, when management is unqualified to tell the wheat from the chaff, the bullshitter can always tell a better lie. And this goes up the chain to the VC.
Outsourcing works only for commodity labour - implementation, perhaps, but not design (at least not complex design). That's an oversimplificartion, of course, but at some level, you need control over the execution of a plan to remain domestic, otherwise you're at the mercy of forces you can't control. The true costs of outsourcing are only now starting to be realised and many firms are getting burned by doing so overzealously.
There is a glut of unqualified programmers in the U.S., degreed and certified, perhaps, but "in it for the money" -- a product of the internet bubble -- who couldn't code an O(n log n) sort to save their lives (or an O(n^2) bubble sort, for that matter). Sometimes the qualified ones get swept along with the idiots when plans fall apart. Is outsourced labour better qualified at a cheaper price? Compared to those fools, yes. But, the quality of the end product is still not good enough without real talent and dedication applied. And, that skill will cost more, whether outsourced or not (eliminating any monetary advantages to outsourcing -- the really good foreigners come to the U.S. for the standard of living and don't stay home).
The law requires that an American be preferred over a foreigner, that the foreigner be paid a market wage (so as to not depress the market). While some unscrupulous employers will cheat, I've never worked for one.
Luck... skill... neither hurts, but one should not plan for good luck and try to see bad luck on the horizon (or rather bad planning which, when executed and fails will look like bad luck).
In the past 10 years or so, I've never not been offered a job when I landed an interview, but I've turned down many offers, often because I believed either the management skill wasn't there, the funding wasn't adequate, or the technical skill was inadequate. I've turned down offers because interviews were "too easy", and happily accepted them when the interviews were "killers" (as described by others - I remember one job where the hiring decision came down to three final interview candidates - one "gave up", one "left in tears", and I "clicked" with the rest of the team).
So, luck helps, but don't ascribe too much credit to it. (And I've had my share of "bad luck" too - the telecom bust sent me packing back to Canada for 18 months).
The North American technical workforce isn't being replaced by outsourced talent en masse - the incompetents are. There isn't enough real talent to fill the jobs. Of course, the few good people on an underfunded doomed project surrounded by incompetents are going to be swept out with the trash, and it sucks when that happens.
Besides, "skills lists" are for the benefit of the automated resume filters (though one certainly should have the skills one claims). What really matters is a proven record of getting product to market and making money.
Alcohol is produced naturally in the body when metabolizing sugary and starchy foods: like potatos, for example. (Your gut is a regular vodka factory:-)).
The body produces alcohol dehydrogenase to compensate and metabolize it. Production is increased when you eat, which is why you feel the effects of alcohol more on an empty stomach -- more is available top be absorbed into the blood stream, and it's harder on the lining of the stomach (whereas naturally produced alcohol is produced in the gut).
Clearly some people produce more alcohol dehydrogenase than others (I've read studies that women produce less statistically than men). This is why some "hold their liquor" better than others -- I've known people who get hammered after two drinks with dinner. It is not unreasonable to consider the possibility that, due to a metabolic defect, there may be people who produce none.
Of course, in most jurusdictions this would mean that they could not drive for many hours after eating since it's the BAC that counts and not if any alcohol was consumed.
Once there is no more alcohol dehydrogenase left, only oxydization will metabolize the alcohol -- this means time (or breathing an oxygen-rich atmosphere).
From this we have a 16% Canadian Federal tax on the first CA$35,596, and 22% on the rest to $71,190. So, for CA$37,500, that's CA$5695.36 plus 22% of CA$1904 or CA$418.88 for a total of CA$6114.24. Now, lets take into account the non-refundable tax credits. For a single person, that would be 16% of CA$8,012 or CA$1,281.92. If you're married to a non-working spouse, you get an additional 16% of CA$6,083 or CA$973.28 for a total of CA$2,255.20. Thus, the Canadian Federal tax burden for a single person earning CA$37,500 is CA$4,832.32. For a married person, with a non-working spouse, it's CA$3,859.04.
The Ontario tax is computed similarly. From this, we see that the Ontario tax is 6.05% on the first CA$34,009 and 9.15% on CA$34,010 to CA$68,020. For someone earning CA$37,500 that's $2057.54 plus 9.15% of CA$3,491 or CA$319.43 for a total Ontario tax of CA$2376.97. There is no surtax at this level (20% additional tax on the tax over $CA$3,939, and an additional 16% tax on the tax over CA$4957). The Ontario non-refundable tax credits are 6.05% on $CA8,044 for singles, and an additional 6.05% on $CA6,830 for a credit of CA$522.86 for singles and CA$936.08 for marrieds supporting a non-working spouse. So the Ontario tax for a single earning CA$37,500 is CA$1,854.11, and for a married supporting a non-working spouse is CA$1,440.89.
There is a Federal Canada Pension Plan, requiring contributions of 4.7% of income to CA$37,400, with the first CA$3,500 exempted. So 4.7% of CA$33,900 is CA$1593.30.
So, total Federal tax, Ontario tax, Ontario health premium, Federal Canada Pension Plan, and Federal Employment Insurance for a single total CA$9,400.98. If you're married, supporting a non-working spouse, it's CA$8,014.48.
If you had no other bona-fide deductions and only paid CA$4,000 in Federal and Ontario taxes including CPP, EI, and Ontario HPP, you underpaid by some CA$5,400.
I suspect your CA$4k figure comes from only considering Federal tax.
You own a piece of equipment that has the private key used to decode content encrypted for you. This will typically be a display device. It can also be a dongle for a transcoding device. It's public key is, well, public, so anyone can encrypt content for you. Such public keys have to be signed, though, by a key authority: the whole scheme hinges on the owner of the decrypting device not having the private key -- it would do not good to generate your own key pair, send the public key to a content provider, and then freely decrypt that content to redistribute it.
Of course, such private keys can be kept in escrow, so as to be installed on a controlled number of playback devices you own, or could be transfereed or duplicated a limited number of times between a small number of devices. This solves the problem of loss. In fact, there is no requirement for key escrow, though it might offer convenience: one merely has to keep enough backup devices. Upon satisfactory proof of destruction of others, any such device could be instructed, by the appropriate content authority to permit some number of additional key copies to be made.
This scheme is not without it's problems, though:
1. Fair use. Fair use is not absolutely defined. New fair uses may be identified over time, and a "friendly" DRM system has to accomodate them. Of course, legsislation authorizing DRM should require content providers to "quickly" accomodate new recognized fair uses in the playback devices they require. Thus, the inconvenience and infrastructure costs of a DRM scheme are properly borne by those that rely on it.
2. Rebuilding via extraction. If one fair use is limited extraction and redistribution of content (say for a critique), many such extractions can be aggregated to make a duplicate. It may take collusion among a number of individuals to pull this off (since individual extraction devices may limit how much can be excerpted how fast and how often), but the internet removes this impediment. The only attack remaining is a legall one: if DRM becomes widespread, plaintext will be rare and stick out like a sorre thumb. Content encrypted with the wrong keys could be easily detected if it became too widespread.
It really appears as if template Turing-completeness in C++ was an accident. The syntax really does not lend itself well to it.
You appear to miss the point. It may very well be slow, and probably is, but it is slow at compile time, and generates the fast table for you to use at run time.
In practice, I've written some knarly templates, and have not found the compile speed to be all that bad.
Look at "Modern C++ Design," by Andrei Alexandrescu for a greater discussion of the topic. It is fascinating.
Consider a simple example:
You need a table of sines and cosines to some degree of resolution for fast lookup. The compiler will not evaluate sin(some_constant) for you at compile time, but it can add, subtract, multiply, and divide constants at compile time. In the "old days", you'd write a separate program to compute the table and spit it out as a C/C++ variable initializer, and incude that in your "real" program. You could even compile, generate, include, and compile again in one big make. We all did this. Those of us in telecom did a lot of this to generate fast CRC "helper" tables (i.e. look up the next data byte in the table, shift the running CRC, and xor it with the table lookup; rinse, lather, repeat). With a Turing-complete template metalanguage, it's different.
You use the recursive capabilities of template definitions, with partial and full template specialization (i.e. T<int i, int j> is defined in terms of T<i, j-1>, with T<i, 0> specially defined, that is, partially specialised to end the recursion) to generate, at compile time, expressions of constants that, when computed by the compiler, will result in T<i, series_steps> expanding to a constant expression that approximates sin(i/some_resolution).
...lack of a turing-complete templating system? There was a real chance to develop a two-level language with better generics syntax than the C++ template monstrosity.
Yeah, but one needed long fingers to do that in general with one parallel 10-way keypress. In practice, one probably needed three parallel keypresses of the low, middle, and high digit sets, and doing that would take some skill.
It weighed about 40 lbs. (about 18 kg.) and had lots of mechanical buttons, circular mechanical readouts (think car's odomoeter), and gears, all housed in a neat, if heavy desktop box. It was about the size of a manual typewriter (though it has an AC power cord).
It could add, but arguably, some fast humans could probably add faster in their heads.
I don't f-ing think so.
I remember on once ordering a Macallan at the bar in the Mickleover Hotel in Derbyshire, and the barmaid asking me if I wanted it "on the rocks". She quickly recovered from my look of absolute horror, and said, "So sorry, from your accent, I'd thought you were American. Neat it is, then. Very good."
My electricity bill in July was around $350 extra just for the A/C to keep the house at a cool 80 degrees Farenheit (daytime outside temperature easily reached 100F and sometimes 110F).
"The Professor and... / Mary Ann" wasn't added until the second season.
Lesse...
Bob Denver Alan Hale Jim Backus Nathalie Shaefer Tina Louise ??? Dawn Wells.
If I cheated, I'd know that the Professor was played by Russell Johnson, but sadly, I could not remember that.
Personally, I always preferred Mary Ann to Ginger.
I actually do/ want to do CSS as late as possible in the copy/playback chain, ideally at the playback client, for the reasons I mentioned. In fact, I'd prefer a stronger cryptosystem for that purpose.
In my case I am concerned about being charged with contributory copyright infringment through neglect by leaving unencrypted copies on a home network that is connected to the internat at large (albeit via a dedicated firewall). If someone hacks in and copies off video with CSS intact, it isn't my fault if the encryption wasn't secure enough and they crack and redisistribute it.
('course I rather liked the Supreme Being somewhat more..., well quite a bit more..., alright a lot more!)
You don't need to decrypt, either: libdvdread, if it finds libdvdcss will use it to crack the iso image (which, IIRC, has to be an image because the sector number matter in decrypting, thought that might only be the case with a non-brute force decrypt) as necesary at run-time, and cache the resulting keys for next time.
Now, IIRC, one can build libdvdcss without the brute-force decryption that does not use the drive key exchange, so, to read a ripped, but not decrypted DVD, you'd either need to have the cached title and disk keys (from a previous decryption attempt), or the DVD in a DVDROM and enter into a key exchange.
Personally, I like to keep my title and disk keys playback-client side, and not on my server: if my network is hacked, and decrypted copies of my DVDs were to leak out and be distributed, I could be charged with contributory copyright infringement or at least negigence for failing to keep copyright material as secure as the copyright holder intended. Yes, that's a grey legal area: rather like the responsibility one has to keep one's firearms under lock and key lest a burgler steal them and kill someone with one of them. But, better safe than sorry.
Besides, it has the nice property of a playback client around the house not being able to playback a DVD image without having first "seen" the DVD.
As others will no doubt note, vlc and xine will happily process DVD menus on loopback-mounted copies of ISO images (libDVDCSS will crack them without a drive exchange). I suppose one could NFS-export them over a fast-enough network.
Capitalist healthcare (USA, most developing nations) = non-universal healthcare
Not quite.
Socialised healthcare (EU and Canada) = Governnment promises what it does not deliver to all, i.e. getting care is like winning a lottery.
Capitalist healthcare (USA, most developing nations) if you have money, you can buy what you need.
Canada's waiting period will kill you, literaly. And, even if you had the money to pay for care, it would be illegal for you (if you were a Canadian citizen) to do so.
I'd have no problems with the "stooge law" you'd propose.
First, I could not collect unemployment, because I was not "employable" in the U.S. (I'm told that Texas has an agreement with Canada pursuant to NAFTA to exempt Canadians from this burden, but haven't verified it).
Second, I had to move. FAST. As in, if you're not out of the U.S. the day you're layed off, you are in violation of your visa and subject to arrest. In practice, one can file an request for a change of status to a B2 visitor's visa to buy two or three months to settle one's affairs, but that request has to be postmarked the day one is layed off. The INS can refuse that request, and will if one meats the post mark reqirement by even a day.
Third, I could see the real estate market going down the tubes locally fast -- there had been rapid development, and we were smack in the middle of the telecom corridor in Texas: Richardson, Plano, Allen (we lived in Allen). So, I priced the house to sell: basically eating the comission to sell it. An offer came within two weeks, but it was $5k below my lower limit. The clincher: the buyer was unrepresented so I'd only have to pay half the commission. Adjusted, he met my lower limit price. I accepted the offer, to the shock of my neighbors, some of which were in the same boat, in January. Of course, a cascade had begun, with more and more homes coming on to the market. Colin county had the nation's highest rate of foreclosures. House prices fell like a stone. I was wise to sell when I did.
Fourth, I had to effectively abandon my 1990 Ford Thunderbird: it was illegal to import it into Canada. That meant buying a car in Canada. I also had to start planning for moving expenses. In the end I collapsed a 401(k) with around 16k in it. Remember, this was early in the year, and I would have no U.S. source income, so the 10% penalty and 10% tax were not overly unbearable. I should have had greater savings outside the plan, to be sure, but the tax deduction and employer match were too good to pass up. The 10% penalty risk in case of emergency seamed reasonable.
Fifth, I was lucky and managed to land a job Dec. 24, 2002 in Toronto. Yeah, sometimes luck plays a part, but remember that I was applying to all jobs in Canada and the U.S. (my H1B was transferrable, but finding an employer who had not layed off Americans recently was difficult) for which I was qualified. I had already made plans to move and rent a place for up to a year while I looked for work cross-Canada. No, landlords will not rent to the unemployed... unless they can put the entire amount of the annual lease in escrow up front. I had some of my moving expenses paid, but had to start finding a house. Downpayments are 25% in Canada, not 20%. Toronto and the surrounding area were enjoying a boom. (This proved fortunate a year later when I sold the house and moved back to the U.S.).
Sixth, it cost a lot to get a car. Buying the car wasn't the problem: getting it off the lot was -- I needed an Ontario drivers license to do that. And I still had my Texas one, which had no issue date, only an expiration date. So, I had to contact Texas and Illinois DMV to get proof of my driving and license history (for insurance and licensing purposes). Rental car tick, tick, ticking at $250 a week until that got sorted out.
Seventh, with any move, there are ancillary expenses. Yes, my Canadian employer paid for much of the move that I was going to, but it turned out they used a mover three times expensive than the one I had lined up. That became important when I had to reimburse them a prorated portion when I quit before two years were up to return to the U.S. (We were tired of moving, but the whole family was sick of the schools, lousy healthcare, and crime in the area so when a recruiter contacted me, I was interested and the rest is history.) But, as with any move, there were ancillary expenses: long distances, essentials until one unpacks, etc.
Eighth, cost of living. Mortgage interest is not deduct
I dunno, I've been 95-98% employed most of my life with the longest gap being 8 weeks (after the telecom bust). Of course, I was willing to work anywhere in Canada or the U.S. when I did become unemployed, and INS regs required me to leave the U.S. promptly when the telecom bust happened. Fair enuf: I knew the risks when I came (though having the LC (not LCA), and having to leave because the green card was still pending AOS because the INS were slow was maddening -- I've been able to return but have to start all over). I suppose if I didn't want to move, or was picky about where in Canada I wanted to work, I'd be unemployed longer.
There's a new "fast track" LC application in the works, so I am hopeful: I do not wish my American-born son to have to suffer in Canada (lousy schools, no health care, etc.) again.
It burns me when some foreigners or unscrupulous employers cheat or bend the INS rules -- it gives all of us a bad name. I've always been paid well above the local market wage, have satisfied the "there is no American that can do the job" test for the LC (even with the present glut). I would suggest denouncing employers that abuse the market rate requirement for LCAs.
Of course, when management is unqualified to tell the wheat from the chaff, the bullshitter can always tell a better lie. And this goes up the chain to the VC.
Outsourcing works only for commodity labour - implementation, perhaps, but not design (at least not complex design). That's an oversimplificartion, of course, but at some level, you need control over the execution of a plan to remain domestic, otherwise you're at the mercy of forces you can't control. The true costs of outsourcing are only now starting to be realised and many firms are getting burned by doing so overzealously.
There is a glut of unqualified programmers in the U.S., degreed and certified, perhaps, but "in it for the money" -- a product of the internet bubble -- who couldn't code an O(n log n) sort to save their lives (or an O(n^2) bubble sort, for that matter). Sometimes the qualified ones get swept along with the idiots when plans fall apart. Is outsourced labour better qualified at a cheaper price? Compared to those fools, yes. But, the quality of the end product is still not good enough without real talent and dedication applied. And, that skill will cost more, whether outsourced or not (eliminating any monetary advantages to outsourcing -- the really good foreigners come to the U.S. for the standard of living and don't stay home).
The law requires that an American be preferred over a foreigner, that the foreigner be paid a market wage (so as to not depress the market). While some unscrupulous employers will cheat, I've never worked for one.
In the past 10 years or so, I've never not been offered a job when I landed an interview, but I've turned down many offers, often because I believed either the management skill wasn't there, the funding wasn't adequate, or the technical skill was inadequate. I've turned down offers because interviews were "too easy", and happily accepted them when the interviews were "killers" (as described by others - I remember one job where the hiring decision came down to three final interview candidates - one "gave up", one "left in tears", and I "clicked" with the rest of the team).
So, luck helps, but don't ascribe too much credit to it. (And I've had my share of "bad luck" too - the telecom bust sent me packing back to Canada for 18 months).
The North American technical workforce isn't being replaced by outsourced talent en masse - the incompetents are. There isn't enough real talent to fill the jobs. Of course, the few good people on an underfunded doomed project surrounded by incompetents are going to be swept out with the trash, and it sucks when that happens.
I'm very good at what I do.
Besides, "skills lists" are for the benefit of the automated resume filters (though one certainly should have the skills one claims). What really matters is a proven record of getting product to market and making money.
Alcohol is produced naturally in the body when metabolizing sugary and starchy foods: like potatos, for example. (Your gut is a regular vodka factory :-)).
The body produces alcohol dehydrogenase to compensate and metabolize it. Production is increased when you eat, which is why you feel the effects of alcohol more on an empty stomach -- more is available top be absorbed into the blood stream, and it's harder on the lining of the stomach (whereas naturally produced alcohol is produced in the gut).
Clearly some people produce more alcohol dehydrogenase than others (I've read studies that women produce less statistically than men). This is why some "hold their liquor" better than others -- I've known people who get hammered after two drinks with dinner. It is not unreasonable to consider the possibility that, due to a metabolic defect, there may be people who produce none.
Of course, in most jurusdictions this would mean that they could not drive for many hours after eating since it's the BAC that counts and not if any alcohol was consumed.
Once there is no more alcohol dehydrogenase left, only oxydization will metabolize the alcohol -- this means time (or breathing an oxygen-rich atmosphere).
From this we have a 16% Canadian Federal tax on the first CA$35,596, and 22% on the rest to $71,190. So, for CA$37,500, that's CA$5695.36 plus 22% of CA$1904 or CA$418.88 for a total of CA$6114.24. Now, lets take into account the non-refundable tax credits. For a single person, that would be 16% of CA$8,012 or CA$1,281.92. If you're married to a non-working spouse, you get an additional 16% of CA$6,083 or CA$973.28 for a total of CA$2,255.20. Thus, the Canadian Federal tax burden for a single person earning CA$37,500 is CA$4,832.32. For a married person, with a non-working spouse, it's CA$3,859.04.
The Ontario tax is computed similarly. From this, we see that the Ontario tax is 6.05% on the first CA$34,009 and 9.15% on CA$34,010 to CA$68,020. For someone earning CA$37,500 that's $2057.54 plus 9.15% of CA$3,491 or CA$319.43 for a total Ontario tax of CA$2376.97. There is no surtax at this level (20% additional tax on the tax over $CA$3,939, and an additional 16% tax on the tax over CA$4957). The Ontario non-refundable tax credits are 6.05% on $CA8,044 for singles, and an additional 6.05% on $CA6,830 for a credit of CA$522.86 for singles and CA$936.08 for marrieds supporting a non-working spouse. So the Ontario tax for a single earning CA$37,500 is CA$1,854.11, and for a married supporting a non-working spouse is CA$1,440.89.
Now, Ontario has a health insurance premium. For someone earning CA$37,500, it's CA$390.
There is a Federal Canada Pension Plan, requiring contributions of 4.7% of income to CA$37,400, with the first CA$3,500 exempted. So 4.7% of CA$33,900 is CA$1593.30.
There is a Federal Employment Insurance premium requiring 1.95% of income to a maximum of premium of CA$760.50 Someone earning CA$37,500 would pay EI of CA$731.25.
So, total Federal tax, Ontario tax, Ontario health premium, Federal Canada Pension Plan, and Federal Employment Insurance for a single total CA$9,400.98. If you're married, supporting a non-working spouse, it's CA$8,014.48.
If you had no other bona-fide deductions and only paid CA$4,000 in Federal and Ontario taxes including CPP, EI, and Ontario HPP, you underpaid by some CA$5,400.
I suspect your CA$4k figure comes from only considering Federal tax.
My calculations included CPP and EI (and Social Security and Medicare on the U.S. side). But, I will double check them for accuracy.